From 00f6d9b305f78faead99be50e8e5baa762945420 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 10 Apr 2025 17:35:27 +0200 Subject: [PATCH 001/340] Rust: start preparing documentation changes --- docs/codeql/reusables/supported-versions-compilers.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 7d5a9bdb34a..2e2c6f4d096 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -25,6 +25,7 @@ JavaScript,ECMAScript 2022 or lower,Not applicable,"``.js``, ``.jsx``, ``.mjs``, ``.es``, ``.es6``, ``.htm``, ``.html``, ``.xhtm``, ``.xhtml``, ``.vue``, ``.hbs``, ``.ejs``, ``.njk``, ``.json``, ``.yaml``, ``.yml``, ``.raml``, ``.xml`` [7]_" Python [8]_,"2.7, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13",Not applicable,``.py`` Ruby [9]_,"up to 3.3",Not applicable,"``.rb``, ``.erb``, ``.gemspec``, ``Gemfile``" + Rust [13]_,"Rust editions 2021 and 2024","Rust compiler","``.rs``, ``Cargo.toml``" Swift [10]_,"Swift 5.4-6.0","Swift compiler","``.swift``" TypeScript [11]_,"2.6-5.8",Standard TypeScript compiler,"``.ts``, ``.tsx``, ``.mts``, ``.cts``" @@ -42,3 +43,4 @@ .. [10] Support for the analysis of Swift requires macOS. .. [11] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. .. [12] Support for GitHub Actions is in public preview. + .. [13] Support for Rust is in private preview and requires ``rustup`` and ``cargo`` to be installed. Features from nightly toolchains are not supported. From df427f7de834178b31c546743839602ec98c4daf Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 11 Apr 2025 11:53:27 +0200 Subject: [PATCH 002/340] Rust: add supported frameworks file --- .../codeql/reusables/supported-frameworks.rst | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 402a3b9ee3d..4ff4d8919fc 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -306,6 +306,39 @@ and the CodeQL library pack ``codeql/ruby-all`` (`changelog `__, `source `__) +and the CodeQL library pack ``codeql/rust-all`` (`changelog `__, `source `__). +All support is experimental. + +.. csv-table:: + :header-rows: 1 + :class: fullWidthTable + :widths: auto + :align: left + + Name, Category + alloc, Standard library + core, Standard library + `digest `__, Cryptography library + `futures-executor `__, Utility library + `hyper `__, HTTP library + `hyper-util `__, HTTP library + `libc `__, Utility library + `log `__, Logging library + `md5 `__, Utility library + `postgres `__, Database + proc_macro, Standard library + `regex `__, Utility library + `reqwest `__, HTTP client + `rusqlite `__, Database + std, Standard library + `tokio-postgres `__, Database + `url `__, Utility library + Swift built-in support ================================ From 33c857ce9f4a2fa31a0d086577940740adcdaa23 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 11 Apr 2025 12:01:24 +0200 Subject: [PATCH 003/340] Rust: update supported languages footnote --- docs/codeql/reusables/supported-versions-compilers.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/reusables/supported-versions-compilers.rst b/docs/codeql/reusables/supported-versions-compilers.rst index 2e2c6f4d096..818fe8cfa40 100644 --- a/docs/codeql/reusables/supported-versions-compilers.rst +++ b/docs/codeql/reusables/supported-versions-compilers.rst @@ -43,4 +43,4 @@ .. [10] Support for the analysis of Swift requires macOS. .. [11] TypeScript analysis is performed by running the JavaScript extractor with TypeScript enabled. This is the default. .. [12] Support for GitHub Actions is in public preview. - .. [13] Support for Rust is in private preview and requires ``rustup`` and ``cargo`` to be installed. Features from nightly toolchains are not supported. + .. [13] Support for Rust is experimental and requires ``rustup`` and ``cargo`` to be installed, as well as `CODEQL_ENABLE_EXPERIMENTAL_FEATURES=true` set in the environment. Features from nightly toolchains are not supported. From e2a86aaf939afe27adbcc9ba1fc5690b8b3b3829 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 2 May 2025 13:18:56 +0200 Subject: [PATCH 004/340] Rust: update supported libraries Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- docs/codeql/reusables/supported-frameworks.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 4ff4d8919fc..5f09ddb17a2 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -336,6 +336,8 @@ All support is experimental. `reqwest `__, HTTP client `rusqlite `__, Database std, Standard library + `sqlx `__, Database + `tokio `__, Asynchronous IO `tokio-postgres `__, Database `url `__, Utility library From 00f4bfdd2411e8de794ab56cb17f292d2395ce64 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 2 May 2025 13:20:02 +0200 Subject: [PATCH 005/340] Rust: add some more supported libraries Co-authored-by: Geoffrey White <40627776+geoffw0@users.noreply.github.com> --- docs/codeql/reusables/supported-frameworks.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 5f09ddb17a2..07afdce4de3 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -330,12 +330,14 @@ All support is experimental. `libc `__, Utility library `log `__, Logging library `md5 `__, Utility library + `poem `__, Web framework `postgres `__, Database proc_macro, Standard library `regex `__, Utility library `reqwest `__, HTTP client `rusqlite `__, Database std, Standard library + `rust-crypto `__, Cryptography library `sqlx `__, Database `tokio `__, Asynchronous IO `tokio-postgres `__, Database From 681f9af710806f92de060dc663b63b5742929199 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 3 Jun 2025 14:43:25 +0100 Subject: [PATCH 006/340] Fix MethodTypes test --- .../test/library-tests/semmle/go/Types/MethodTypes.expected | 5 ++++- go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected index f5af1c53e40..0306a98051e 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected +++ b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.expected @@ -31,12 +31,12 @@ | interface.go:101:6:101:8 | i19 | StringB | func() string | | interface.go:105:6:105:8 | i20 | StringB | func() string | | main.go:17:6:17:20 | EmbedsNameClash | NCMethod | func() | +| pkg1/embedding.go:8:6:8:9 | base | f | func() int | | pkg1/embedding.go:19:6:19:13 | embedder | f | func() int | | pkg1/embedding.go:22:6:22:16 | ptrembedder | f | func() int | | pkg1/embedding.go:22:6:22:16 | ptrembedder | g | func() int | | pkg1/embedding.go:25:6:25:14 | embedder2 | f | func() int | | pkg1/embedding.go:28:6:28:14 | embedder3 | f | func() int | -| pkg1/embedding.go:35:6:35:14 | embedder4 | f | func() int | | pkg1/interfaces.go:3:6:3:6 | A | m | func() | | pkg1/interfaces.go:7:6:7:6 | B | m | func() | | pkg1/interfaces.go:7:6:7:6 | B | n | func() | @@ -51,10 +51,13 @@ | pkg1/interfaces.go:31:6:31:7 | A2 | m | func() | | pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | Exported | func() | | pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | notExported | func() | +| pkg1/promotedStructs.go:4:6:4:6 | S | SMethod | func() interface { } | | pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | SMethod | func() interface { } | | pkg1/tst.go:5:6:5:6 | T | half | func() Foo | | pkg1/tst.go:16:6:16:7 | T3 | half | func() Foo | | pkg1/tst.go:21:6:21:7 | T4 | half | func() Foo | +| pkg1/tst.go:26:6:26:8 | Foo | half | func() Foo | | pkg1/tst.go:61:6:61:14 | NameClash | NCMethod | func() | | pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | Exported | func() | | pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | notExported | func() | +| pkg2/tst.go:16:6:16:14 | NameClash | NCMethod | func() | diff --git a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql index f9eae96b529..89a62ef2f65 100644 --- a/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql +++ b/go/ql/test/library-tests/semmle/go/Types/MethodTypes.ql @@ -1,7 +1,7 @@ import go -from DefinedType t, string m, Type tp +from Type t, string m, Type tp where exists(t.getEntity().getDeclaration()) and - t.getBaseType().hasMethod(m, tp) + t.hasMethod(m, tp) select t, m, tp.pp() From 40000840c1ad6fdb6b5d78fff335d6d98c3ff5da Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 3 Jun 2025 14:31:44 +0100 Subject: [PATCH 007/340] Fix definition of `DefinedType.getBaseType` --- go/ql/lib/semmle/go/Types.qll | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/go/ql/lib/semmle/go/Types.qll b/go/ql/lib/semmle/go/Types.qll index d6765f13662..df4c853cf79 100644 --- a/go/ql/lib/semmle/go/Types.qll +++ b/go/ql/lib/semmle/go/Types.qll @@ -1038,8 +1038,13 @@ deprecated class NamedType = DefinedType; /** A defined type. */ class DefinedType extends @definedtype, CompositeType { - /** Gets the type which this type is defined to be. */ - Type getBaseType() { underlying_type(this, result) } + /** + * Gets the type which this type is defined to be, if available. + * + * Note that this is only defined for types declared in the project being + * analyzed. It will not be defined for type declared in external packages. + */ + Type getBaseType() { result = this.getEntity().(DeclaredType).getSpec().getTypeExpr().getType() } override Method getMethod(string m) { result = CompositeType.super.getMethod(m) @@ -1049,7 +1054,7 @@ class DefinedType extends @definedtype, CompositeType { or // handle promoted methods exists(StructType s, Type embedded | - s = this.getBaseType() and + s = this.getUnderlyingType() and s.hasOwnField(_, _, embedded, true) and // ensure `m` can be promoted not s.hasOwnField(_, m, _, _) and @@ -1063,7 +1068,7 @@ class DefinedType extends @definedtype, CompositeType { ) } - override Type getUnderlyingType() { result = this.getBaseType().getUnderlyingType() } + override Type getUnderlyingType() { underlying_type(this, result) } } /** From 4711feb344e961df122ac40384cbd3175a1d2b52 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 3 Jun 2025 14:47:34 +0100 Subject: [PATCH 008/340] Add test for `DefinedType.getBaseType` --- .../go/Types/DefinedType_getBaseType.expected | 112 ++++++++++++++++++ .../go/Types/DefinedType_getBaseType.ql | 5 + 2 files changed, 117 insertions(+) create mode 100644 go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected create mode 100644 go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql diff --git a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected new file mode 100644 index 00000000000..49b252c157f --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected @@ -0,0 +1,112 @@ +| aliases.go:19:6:19:7 | S3 | struct { x int } | +| aliases.go:29:6:29:11 | MyType | struct { x MyTypeT } | +| cyclic.go:3:6:3:6 | s | struct { * s } | +| cyclic.go:7:6:7:6 | t | struct { * u; f int } | +| cyclic.go:12:6:12:6 | u | struct { t } | +| cyclic.go:16:6:16:6 | v | struct { s } | +| depth.go:5:6:5:6 | a | struct { b; c } | +| depth.go:10:6:10:6 | b | struct { f int } | +| depth.go:14:6:14:6 | c | struct { d } | +| depth.go:18:6:18:6 | d | struct { f string } | +| embedded.go:3:6:3:8 | Baz | struct { A string } | +| embedded.go:7:6:7:8 | Qux | struct { * Baz } | +| embedded.go:11:6:11:14 | EmbedsBaz | struct { Qux; Baz string } | +| generic.go:3:6:3:19 | GenericStruct1 | struct { valueField T; pointerField * T; arrayField [10]T; sliceField []T; mapField [string]T } | +| generic.go:11:6:11:27 | CircularGenericStruct1 | struct { pointerField * CircularGenericStruct1 } | +| generic.go:15:6:15:31 | UsesCircularGenericStruct1 | struct { root CircularGenericStruct1 } | +| generic.go:19:6:19:19 | GenericStruct2 | struct { structField GenericStruct1; mapField [S]T } | +| generic.go:24:6:24:20 | GenericStruct2b | struct { structField GenericStruct2 } | +| generic.go:28:6:28:27 | CircularGenericStruct2 | struct { pointerField * CircularGenericStruct2 } | +| generic.go:32:6:32:21 | GenericInterface | interface { GetT func() T } | +| generic.go:36:6:36:17 | GenericArray | [10]T | +| generic.go:37:6:37:19 | GenericPointer | * T | +| generic.go:38:6:38:17 | GenericSlice | []T | +| generic.go:39:6:39:16 | GenericMap1 | [string]V | +| generic.go:40:6:40:16 | GenericMap2 | [K]V | +| generic.go:41:6:41:19 | GenericChannel | chan<- T | +| generic.go:42:6:42:14 | MyMapType | [string]int | +| generic.go:43:6:43:19 | GenericDefined | MyMapType | +| generic.go:44:6:44:16 | MyFuncType1 | func(T) | +| generic.go:45:6:45:16 | MyFuncType2 | func(T1) T2 | +| generic.go:47:6:47:16 | MyInterface | interface { clone func() MyInterface; dummy1 func() [10]U; dummy11 func() GenericArray; dummy12 func() GenericPointer; dummy13 func() GenericSlice; dummy14 func() GenericMap1; dummy15 func() GenericMap2; dummy17 func() GenericChannel; dummy18 func() GenericDefined; dummy19 func() MyFuncType1; dummy2 func() * U; dummy20 func() MyFuncType2; dummy3 func() []U; dummy4 func() [U]U; dummy5 func() chan<- U; dummy6 func() MyMapType; dummy7 func() MyFuncType2 } | +| generic.go:67:6:67:22 | HasBlankTypeParam | struct { } | +| generic.go:68:6:68:23 | HasBlankTypeParams | struct { } | +| generic.go:84:6:84:21 | GenericSignature | func(T) T | +| interface.go:3:6:3:7 | i0 | comparable | +| interface.go:5:6:5:7 | i1 | interface { int } | +| interface.go:9:6:9:7 | i2 | interface { ~string } | +| interface.go:13:6:13:7 | i3 | interface { [5]int \| ~string } | +| interface.go:18:6:18:7 | i4 | interface { i1 \| i2 \| float32 } | +| interface.go:23:6:23:7 | i5 | interface { []uint8; int \| ~[]uint8 } | +| interface.go:28:6:28:7 | i6 | interface { ~[]int \| ~string; String func() string } | +| interface.go:34:6:34:7 | i7 | interface { [5]int \| ~string; ~string; String func() string } | +| interface.go:41:6:41:7 | i8 | interface { ~[]int \| ~string; String func() string; StringA func() string } | +| interface.go:47:6:47:7 | i9 | interface { ~[]int \| ~string; String func() string; StringB func() string } | +| interface.go:52:6:52:8 | i10 | interface { } | +| interface.go:57:6:57:8 | i11 | interface { [5]uint8 \| string; int } | +| interface.go:63:6:63:8 | i12 | interface { []uint8 \| string } | +| interface.go:69:6:69:8 | i13 | interface { []uint8 \| string } | +| interface.go:75:6:75:8 | i14 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringA func() string } | +| interface.go:81:6:81:8 | i15 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringB func() string } | +| interface.go:87:6:87:8 | i16 | interface { } | +| interface.go:91:6:91:8 | i17 | interface { StringA func() string } | +| interface.go:95:6:95:8 | i18 | interface { StringA func() string } | +| interface.go:101:6:101:8 | i19 | interface { StringB func() string } | +| interface.go:105:6:105:8 | i20 | interface { StringB func() string } | +| interface.go:114:6:114:19 | testComparable | struct { } | +| interface.go:115:6:115:20 | testComparable0 | struct { } | +| interface.go:116:6:116:20 | testComparable1 | struct { } | +| interface.go:117:6:117:20 | testComparable2 | struct { } | +| interface.go:118:6:118:20 | testComparable3 | struct { } | +| interface.go:119:6:119:20 | testComparable4 | struct { } | +| interface.go:120:6:120:20 | testComparable5 | struct { } | +| interface.go:121:6:121:20 | testComparable6 | struct { } | +| interface.go:122:6:122:20 | testComparable7 | struct { } | +| interface.go:123:6:123:20 | testComparable8 | struct { } | +| interface.go:124:6:124:20 | testComparable9 | struct { } | +| interface.go:125:6:125:21 | testComparable10 | struct { } | +| interface.go:126:6:126:21 | testComparable11 | struct { } | +| interface.go:127:6:127:21 | testComparable12 | struct { } | +| interface.go:128:6:128:21 | testComparable13 | struct { } | +| interface.go:129:6:129:21 | testComparable14 | struct { } | +| interface.go:130:6:130:21 | testComparable15 | struct { } | +| interface.go:131:6:131:21 | testComparable16 | struct { } | +| interface.go:132:6:132:21 | testComparable17 | struct { } | +| interface.go:133:6:133:21 | testComparable18 | struct { } | +| interface.go:134:6:134:21 | testComparable19 | struct { } | +| interface.go:135:6:135:21 | testComparable20 | struct { } | +| interface.go:136:6:136:21 | testComparable21 | struct { } | +| interface.go:137:6:137:21 | testComparable22 | struct { } | +| interface.go:138:6:138:21 | testComparable23 | struct { } | +| main.go:17:6:17:20 | EmbedsNameClash | struct { NameClash } | +| pkg1/embedding.go:8:6:8:9 | base | struct { } | +| pkg1/embedding.go:19:6:19:13 | embedder | struct { base } | +| pkg1/embedding.go:22:6:22:16 | ptrembedder | struct { * base } | +| pkg1/embedding.go:25:6:25:14 | embedder2 | struct { embedder } | +| pkg1/embedding.go:28:6:28:14 | embedder3 | struct { embedder } | +| pkg1/embedding.go:35:6:35:14 | embedder4 | struct { base; f int } | +| pkg1/interfaces.go:3:6:3:6 | A | interface { m func() } | +| pkg1/interfaces.go:7:6:7:6 | B | interface { m func() ; n func() } | +| pkg1/interfaces.go:12:6:12:6 | C | interface { n func() ; o func() } | +| pkg1/interfaces.go:17:6:17:14 | AEmbedded | interface { m func() } | +| pkg1/interfaces.go:21:6:21:7 | AC | interface { m func() ; n func() ; o func() } | +| pkg1/interfaces.go:26:6:26:14 | AExtended | interface { m func() ; n func() } | +| pkg1/interfaces.go:31:6:31:7 | A2 | interface { m func() } | +| pkg1/interfaces.go:35:6:35:24 | MixedExportedAndNot | interface { Exported func() ; notExported func() } | +| pkg1/promotedStructs.go:4:6:4:6 | S | struct { SField string } | +| pkg1/promotedStructs.go:13:6:13:6 | P | struct { PField string } | +| pkg1/promotedStructs.go:22:6:22:12 | SEmbedS | struct { S } | +| pkg1/promotedStructs.go:25:6:25:12 | SEmbedP | struct { P } | +| pkg1/tst.go:5:6:5:6 | T | struct { f int; Foo; Bar } | +| pkg1/tst.go:11:6:11:7 | T2 | struct { Foo Foo; Bar } | +| pkg1/tst.go:16:6:16:7 | T3 | struct { * Foo; * Bar } | +| pkg1/tst.go:21:6:21:7 | T4 | struct { * Foo; Bar Bar } | +| pkg1/tst.go:26:6:26:8 | Foo | struct { val int; flag bool } | +| pkg1/tst.go:31:6:31:8 | Bar | struct { flag bool } | +| pkg1/tst.go:61:6:61:14 | NameClash | struct { NameClash } | +| pkg2/tst.go:3:6:3:6 | T | struct { g int } | +| pkg2/tst.go:7:6:7:6 | G | struct { g int } | +| pkg2/tst.go:11:6:11:24 | MixedExportedAndNot | interface { Exported func() ; notExported func() } | +| pkg2/tst.go:16:6:16:14 | NameClash | struct { NCField string } | +| struct_tags.go:3:6:3:7 | S1 | struct { field1 int `tag1a`; field2 int `tag2a` } | +| struct_tags.go:8:6:8:7 | S2 | struct { field1 int `tag1b`; field2 int `tag2b` } | diff --git a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql new file mode 100644 index 00000000000..6b257110792 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.ql @@ -0,0 +1,5 @@ +import go + +from DefinedType dt, Type tp +where tp = dt.getBaseType() +select dt, tp.pp() From b2f310cda78e978a59601b574d76c38f77e8f3ed Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 3 Jun 2025 15:03:31 +0100 Subject: [PATCH 009/340] Add change note --- .../2025-06-03-fix-definedtype-getbasetype.md | 4 ++++ .../semmle/go/Types/DefinedType_getBaseType.expected | 10 +++++----- 2 files changed, 9 insertions(+), 5 deletions(-) create mode 100644 go/ql/lib/change-notes/2025-06-03-fix-definedtype-getbasetype.md diff --git a/go/ql/lib/change-notes/2025-06-03-fix-definedtype-getbasetype.md b/go/ql/lib/change-notes/2025-06-03-fix-definedtype-getbasetype.md new file mode 100644 index 00000000000..b58ebf64f09 --- /dev/null +++ b/go/ql/lib/change-notes/2025-06-03-fix-definedtype-getbasetype.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Previously, `DefinedType.getBaseType` gave the underlying type. It now gives the right hand side of the type declaration, as the documentation indicated that it should. diff --git a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected index 49b252c157f..123c6ac7a35 100644 --- a/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected +++ b/go/ql/test/library-tests/semmle/go/Types/DefinedType_getBaseType.expected @@ -42,17 +42,17 @@ | interface.go:34:6:34:7 | i7 | interface { [5]int \| ~string; ~string; String func() string } | | interface.go:41:6:41:7 | i8 | interface { ~[]int \| ~string; String func() string; StringA func() string } | | interface.go:47:6:47:7 | i9 | interface { ~[]int \| ~string; String func() string; StringB func() string } | -| interface.go:52:6:52:8 | i10 | interface { } | +| interface.go:52:6:52:8 | i10 | interface { comparable } | | interface.go:57:6:57:8 | i11 | interface { [5]uint8 \| string; int } | -| interface.go:63:6:63:8 | i12 | interface { []uint8 \| string } | -| interface.go:69:6:69:8 | i13 | interface { []uint8 \| string } | +| interface.go:63:6:63:8 | i12 | interface { comparable; []uint8 \| string } | +| interface.go:69:6:69:8 | i13 | interface { comparable; []uint8 \| string } | | interface.go:75:6:75:8 | i14 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringA func() string } | | interface.go:81:6:81:8 | i15 | interface { []uint8 \| string; ~[]int \| ~string; String func() string; StringB func() string } | | interface.go:87:6:87:8 | i16 | interface { } | | interface.go:91:6:91:8 | i17 | interface { StringA func() string } | -| interface.go:95:6:95:8 | i18 | interface { StringA func() string } | +| interface.go:95:6:95:8 | i18 | interface { comparable; StringA func() string } | | interface.go:101:6:101:8 | i19 | interface { StringB func() string } | -| interface.go:105:6:105:8 | i20 | interface { StringB func() string } | +| interface.go:105:6:105:8 | i20 | interface { comparable; StringB func() string } | | interface.go:114:6:114:19 | testComparable | struct { } | | interface.go:115:6:115:20 | testComparable0 | struct { } | | interface.go:116:6:116:20 | testComparable1 | struct { } | From 6a1cfb6aefb7f8e39457d4bfca573452d2110602 Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Tue, 3 Jun 2025 15:55:23 +0100 Subject: [PATCH 010/340] feat(js): Add Axios Instance support and add tests --- .../javascript/frameworks/ClientRequests.qll | 64 ++++++++++++++++++- .../ClientRequests/ClientRequests.expected | 9 +++ .../frameworks/ClientRequests/axios.ts | 33 ++++++++++ 3 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll index 673bdf2de33..afd2f4473f5 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll @@ -254,7 +254,7 @@ module ClientRequest { method = "request" and result = this.getOptionArgument(0, "data") or - method = ["post", "put"] and + method = ["post", "put", "patch"] and result = [this.getArgument(1), this.getOptionArgument(2, "data")] or method = ["postForm", "putForm", "patchForm"] and result = this.getArgument(1) @@ -289,6 +289,68 @@ module ClientRequest { } } + class AxiosInstanceRequest extends ClientRequest::Range, API::CallNode { + string method; + API::CallNode instance; + + // Instances of axios, e.g. `axios.create({ ... })` + AxiosInstanceRequest() { + instance = axios().getMember(["create", "createInstance"]).getACall() and + method = [httpMethodName(), "request", "postForm", "putForm", "patchForm", "getUri"] and + this = instance.getReturn().getMember(method).getACall() + } + + private int getOptionsArgIndex() { + (method = "get" or method = "delete" or method = "head") and + result = 0 + or + (method = "post" or method = "put" or method = "patch") and + result = 1 + } + + private DataFlow::Node getOptionArgument(string name) { + result = this.getOptionArgument(this.getOptionsArgIndex(), name) + } + + override DataFlow::Node getUrl() { + result = this.getArgument(0) or + result = this.getOptionArgument(urlPropertyName()) + } + + override DataFlow::Node getHost() { + result = instance.getOptionArgument(0, "baseURL") + } + + override DataFlow::Node getADataNode() { + method = ["post", "put", "patch"] and + result = [this.getArgument(1), this.getOptionArgument(2, "data")] + or + method = ["postForm", "putForm", "patchForm"] and result = this.getArgument(1) + or + result = this.getOptionArgument([0 .. 2], ["headers", "params"]) + } + + /** Gets the response type from the options passed in. */ + string getResponseType() { + exists(DataFlow::Node option | option = instance.getOptionArgument(0, "responseType") | + option.mayHaveStringValue(result) + ) + or + not exists(this.getOptionArgument("responseType")) and + result = "json" + } + + override DataFlow::Node getAResponseDataNode(string responseType, boolean promise) { + responseType = this.getResponseType() and + promise = true and + result = this + or + responseType = this.getResponseType() and + promise = false and + result = this.getReturn().getPromisedError().getMember("response").asSource() + } + } + /** An expression that is used as a credential in a request. */ private class AuthorizationHeader extends CredentialsNode { AuthorizationHeader() { diff --git a/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected b/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected index f787a7e6060..f84b3c0ca3e 100644 --- a/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected +++ b/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected @@ -5,6 +5,8 @@ test_ClientRequest | apollo.js:17:1:17:34 | new Pre ... yurl"}) | | apollo.js:20:1:20:77 | createN ... phql'}) | | apollo.js:23:1:23:31 | new Web ... wsUri}) | +| axios.ts:13:5:14:37 | api\\n ... repo}`) | +| axios.ts:25:5:26:45 | api\\n ... , data) | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | | puppeteer.ts:6:11:6:42 | page.go ... e.com') | @@ -111,6 +113,7 @@ test_ClientRequest | tst.js:349:5:349:30 | axios.g ... url }) | | tst.js:352:5:352:66 | axiosIn ... text"}) | test_getADataNode +| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:26:41:26:44 | data | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:15:18:15:55 | { 'Cont ... json' } | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:16:15:16:35 | {x: 'te ... 'test'} | | superagent.js:6:5:6:32 | superag ... st(url) | superagent.js:6:39:6:42 | data | @@ -159,6 +162,8 @@ test_getADataNode | tst.js:347:5:347:30 | axios.p ... , data) | tst.js:347:26:347:29 | data | | tst.js:348:5:348:38 | axios.p ... config) | tst.js:348:26:348:29 | data | test_getHost +| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:4:14:4:37 | "https: ... ub.com" | +| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:4:14:4:37 | "https: ... ub.com" | | tst.js:87:5:87:39 | http.ge ... host}) | tst.js:87:34:87:37 | host | | tst.js:89:5:89:23 | axios({host: host}) | tst.js:89:18:89:21 | host | | tst.js:91:5:91:34 | got(rel ... host}) | tst.js:91:29:91:32 | host | @@ -173,6 +178,8 @@ test_getUrl | apollo.js:17:1:17:34 | new Pre ... yurl"}) | apollo.js:17:26:17:32 | "myurl" | | apollo.js:20:1:20:77 | createN ... phql'}) | apollo.js:20:30:20:75 | 'https: ... raphql' | | apollo.js:23:1:23:31 | new Web ... wsUri}) | apollo.js:23:25:23:29 | wsUri | +| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:14:12:14:36 | `/repos ... {repo}` | +| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:26:14:26:38 | `/repos ... {repo}` | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:11:7:5 | {\\n ... ,\\n } | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:6:14:6:16 | url | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:11:17:5 | {\\n ... }\\n } | @@ -289,6 +296,8 @@ test_getUrl | tst.js:352:5:352:66 | axiosIn ... text"}) | tst.js:352:19:352:65 | {method ... "text"} | | tst.js:352:5:352:66 | axiosIn ... text"}) | tst.js:352:40:352:42 | url | test_getAResponseDataNode +| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:13:5:14:37 | api\\n ... repo}`) | json | true | +| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:25:5:26:45 | api\\n ... , data) | json | true | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | json | true | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | json | true | | superagent.js:4:5:4:26 | superag ... ', url) | superagent.js:4:5:4:26 | superag ... ', url) | stream | true | diff --git a/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts b/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts new file mode 100644 index 00000000000..c23c5824cd8 --- /dev/null +++ b/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts @@ -0,0 +1,33 @@ +import axios from "axios"; + +let api = axios.create({ + baseURL: "https://api.github.com", + timeout: 1000, + responseType: "json", + headers: { "X-Custom-Header": "foobar" } +}); + +export default api; + +export async function getRepo(owner: string, repo: string) { + api + .get(`/repos/${owner}/${repo}`) + .then((response) => { + console.log("Repository data:", response.data); + return response.data; + }) + .catch((error) => { + console.error("Error fetching user:", error); + }); +} + +export async function updateUser(owner: string, repo: string, data: any) { + api + .patch(`/repos/${owner}/${repo}`, data) + .then((response) => { + console.log("User updated:", response.data); + }) + .catch((error) => { + console.error("Error updating user:", error); + }); +} From 2eb5f10850ca1f131a54c909ea2490f39760b63f Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Tue, 3 Jun 2025 15:58:49 +0100 Subject: [PATCH 011/340] feat(js): Add Axios instance support change notes --- .../ql/lib/change-notes/2025-06-03-axios-instance-support.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md diff --git a/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md b/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md new file mode 100644 index 00000000000..baaf1611b77 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added support for Axios instances in the `axios` module. From 3b64bd48abb755987708d3d232fb80b14df4a20a Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Tue, 3 Jun 2025 15:59:32 +0100 Subject: [PATCH 012/340] style(js): Update Formatting --- .../ql/lib/semmle/javascript/frameworks/ClientRequests.qll | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll index afd2f4473f5..7476133b0b5 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll @@ -317,9 +317,7 @@ module ClientRequest { result = this.getOptionArgument(urlPropertyName()) } - override DataFlow::Node getHost() { - result = instance.getOptionArgument(0, "baseURL") - } + override DataFlow::Node getHost() { result = instance.getOptionArgument(0, "baseURL") } override DataFlow::Node getADataNode() { method = ["post", "put", "patch"] and From 79a72fc15bda4c9a7082970762b240e83388591e Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Tue, 3 Jun 2025 16:37:36 +0100 Subject: [PATCH 013/340] fix(js): Update tests --- .../ClientRequests/ClientRequests.expected | 18 ++++++------- .../frameworks/ClientRequests/axios.ts | 25 +++++++++---------- 2 files changed, 21 insertions(+), 22 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected b/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected index f84b3c0ca3e..fbbc8832d72 100644 --- a/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected +++ b/javascript/ql/test/library-tests/frameworks/ClientRequests/ClientRequests.expected @@ -5,8 +5,8 @@ test_ClientRequest | apollo.js:17:1:17:34 | new Pre ... yurl"}) | | apollo.js:20:1:20:77 | createN ... phql'}) | | apollo.js:23:1:23:31 | new Web ... wsUri}) | -| axios.ts:13:5:14:37 | api\\n ... repo}`) | -| axios.ts:25:5:26:45 | api\\n ... , data) | +| axios.ts:14:32:14:65 | api.get ... repo}`) | +| axios.ts:25:32:25:73 | api.pat ... , data) | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | | puppeteer.ts:6:11:6:42 | page.go ... e.com') | @@ -113,7 +113,7 @@ test_ClientRequest | tst.js:349:5:349:30 | axios.g ... url }) | | tst.js:352:5:352:66 | axiosIn ... text"}) | test_getADataNode -| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:26:41:26:44 | data | +| axios.ts:25:32:25:73 | api.pat ... , data) | axios.ts:25:69:25:72 | data | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:15:18:15:55 | { 'Cont ... json' } | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:16:15:16:35 | {x: 'te ... 'test'} | | superagent.js:6:5:6:32 | superag ... st(url) | superagent.js:6:39:6:42 | data | @@ -162,8 +162,8 @@ test_getADataNode | tst.js:347:5:347:30 | axios.p ... , data) | tst.js:347:26:347:29 | data | | tst.js:348:5:348:38 | axios.p ... config) | tst.js:348:26:348:29 | data | test_getHost -| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:4:14:4:37 | "https: ... ub.com" | -| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:4:14:4:37 | "https: ... ub.com" | +| axios.ts:14:32:14:65 | api.get ... repo}`) | axios.ts:4:14:4:37 | "https: ... ub.com" | +| axios.ts:25:32:25:73 | api.pat ... , data) | axios.ts:4:14:4:37 | "https: ... ub.com" | | tst.js:87:5:87:39 | http.ge ... host}) | tst.js:87:34:87:37 | host | | tst.js:89:5:89:23 | axios({host: host}) | tst.js:89:18:89:21 | host | | tst.js:91:5:91:34 | got(rel ... host}) | tst.js:91:29:91:32 | host | @@ -178,8 +178,8 @@ test_getUrl | apollo.js:17:1:17:34 | new Pre ... yurl"}) | apollo.js:17:26:17:32 | "myurl" | | apollo.js:20:1:20:77 | createN ... phql'}) | apollo.js:20:30:20:75 | 'https: ... raphql' | | apollo.js:23:1:23:31 | new Web ... wsUri}) | apollo.js:23:25:23:29 | wsUri | -| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:14:12:14:36 | `/repos ... {repo}` | -| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:26:14:26:38 | `/repos ... {repo}` | +| axios.ts:14:32:14:65 | api.get ... repo}`) | axios.ts:14:40:14:64 | `/repos ... {repo}` | +| axios.ts:25:32:25:73 | api.pat ... , data) | axios.ts:25:42:25:66 | `/repos ... {repo}` | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:11:7:5 | {\\n ... ,\\n } | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:6:14:6:16 | url | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:11:17:5 | {\\n ... }\\n } | @@ -296,8 +296,8 @@ test_getUrl | tst.js:352:5:352:66 | axiosIn ... text"}) | tst.js:352:19:352:65 | {method ... "text"} | | tst.js:352:5:352:66 | axiosIn ... text"}) | tst.js:352:40:352:42 | url | test_getAResponseDataNode -| axios.ts:13:5:14:37 | api\\n ... repo}`) | axios.ts:13:5:14:37 | api\\n ... repo}`) | json | true | -| axios.ts:25:5:26:45 | api\\n ... , data) | axios.ts:25:5:26:45 | api\\n ... , data) | json | true | +| axios.ts:14:32:14:65 | api.get ... repo}`) | axios.ts:14:32:14:65 | api.get ... repo}`) | json | true | +| axios.ts:25:32:25:73 | api.pat ... , data) | axios.ts:25:32:25:73 | api.pat ... , data) | json | true | | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | axiosTest.js:4:5:7:6 | axios({ ... \\n }) | json | true | | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | axiosTest.js:12:5:17:6 | axios({ ... \\n }) | json | true | | superagent.js:4:5:4:26 | superag ... ', url) | superagent.js:4:5:4:26 | superag ... ', url) | stream | true | diff --git a/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts b/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts index c23c5824cd8..7099e3889b9 100644 --- a/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts +++ b/javascript/ql/test/library-tests/frameworks/ClientRequests/axios.ts @@ -10,24 +10,23 @@ let api = axios.create({ export default api; export async function getRepo(owner: string, repo: string) { - api - .get(`/repos/${owner}/${repo}`) - .then((response) => { + try { + const response = await api.get(`/repos/${owner}/${repo}`); console.log("Repository data:", response.data); return response.data; - }) - .catch((error) => { - console.error("Error fetching user:", error); - }); + } catch (error) { + console.error("Error fetching repo:", error); + throw error; + } } export async function updateUser(owner: string, repo: string, data: any) { - api - .patch(`/repos/${owner}/${repo}`, data) - .then((response) => { + try { + const response = await api.patch(`/repos/${owner}/${repo}`, data); console.log("User updated:", response.data); - }) - .catch((error) => { + return response.data; + } catch (error) { console.error("Error updating user:", error); - }); + throw error; + } } From 302097ec85ba0ff70a1d67e9dae49589d841f593 Mon Sep 17 00:00:00 2001 From: GeekMasher Date: Thu, 5 Jun 2025 09:52:25 +0100 Subject: [PATCH 014/340] docs(js): Add AxiosInstanceRequest docs --- .../ql/lib/semmle/javascript/frameworks/ClientRequests.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll index 7476133b0b5..22db9f24b99 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/ClientRequests.qll @@ -289,6 +289,9 @@ module ClientRequest { } } + /** + * A model of a `axios` instance request. + */ class AxiosInstanceRequest extends ClientRequest::Range, API::CallNode { string method; API::CallNode instance; From 82e8d3af8d64dbc33fc7ca3ed9cb8d732bfed464 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 10:34:53 +0100 Subject: [PATCH 015/340] Improve two class names --- go/ql/lib/semmle/go/Scopes.qll | 50 +++++++++++++++++++--------------- 1 file changed, 28 insertions(+), 22 deletions(-) diff --git a/go/ql/lib/semmle/go/Scopes.qll b/go/ql/lib/semmle/go/Scopes.qll index 82b4db7e322..2ab08b5b5b4 100644 --- a/go/ql/lib/semmle/go/Scopes.qll +++ b/go/ql/lib/semmle/go/Scopes.qll @@ -202,13 +202,19 @@ class TypeEntity extends Entity, @typeobject { } class TypeParamParentEntity extends Entity, @typeparamparentobject { } /** A named type which has a declaration. */ -class DeclaredType extends TypeEntity, DeclaredEntity, TypeParamParentEntity, @decltypeobject { +class DeclaredTypeEntity extends TypeEntity, DeclaredEntity, TypeParamParentEntity, @decltypeobject { /** Gets the declaration specifier declaring this type. */ TypeSpec getSpec() { result.getNameExpr() = this.getDeclaration() } } +/** DEPRECATED: Use `DeclaredTypeEntity` instead. */ +deprecated class DeclaredType = DeclaredTypeEntity; + /** A built-in type. */ -class BuiltinType extends TypeEntity, BuiltinEntity, @builtintypeobject { } +class BuiltinTypeEntity extends TypeEntity, BuiltinEntity, @builtintypeobject { } + +/** DEPRECATED: Use `BuiltinTypeEntity` instead. */ +deprecated class BuiltinType = BuiltinTypeEntity; /** A built-in or declared constant, variable, field, method or function. */ class ValueEntity extends Entity, @valueobject { @@ -754,64 +760,64 @@ private predicate builtinFunction( module Builtin { // built-in types /** Gets the built-in type `bool`. */ - BuiltinType bool() { result.getName() = "bool" } + BuiltinTypeEntity bool() { result.getName() = "bool" } /** Gets the built-in type `byte`. */ - BuiltinType byte() { result.getName() = "byte" } + BuiltinTypeEntity byte() { result.getName() = "byte" } /** Gets the built-in type `complex64`. */ - BuiltinType complex64() { result.getName() = "complex64" } + BuiltinTypeEntity complex64() { result.getName() = "complex64" } /** Gets the built-in type `complex128`. */ - BuiltinType complex128() { result.getName() = "complex128" } + BuiltinTypeEntity complex128() { result.getName() = "complex128" } /** Gets the built-in type `error`. */ - BuiltinType error() { result.getName() = "error" } + BuiltinTypeEntity error() { result.getName() = "error" } /** Gets the built-in type `float32`. */ - BuiltinType float32() { result.getName() = "float32" } + BuiltinTypeEntity float32() { result.getName() = "float32" } /** Gets the built-in type `float64`. */ - BuiltinType float64() { result.getName() = "float64" } + BuiltinTypeEntity float64() { result.getName() = "float64" } /** Gets the built-in type `int`. */ - BuiltinType int_() { result.getName() = "int" } + BuiltinTypeEntity int_() { result.getName() = "int" } /** Gets the built-in type `int8`. */ - BuiltinType int8() { result.getName() = "int8" } + BuiltinTypeEntity int8() { result.getName() = "int8" } /** Gets the built-in type `int16`. */ - BuiltinType int16() { result.getName() = "int16" } + BuiltinTypeEntity int16() { result.getName() = "int16" } /** Gets the built-in type `int32`. */ - BuiltinType int32() { result.getName() = "int32" } + BuiltinTypeEntity int32() { result.getName() = "int32" } /** Gets the built-in type `int64`. */ - BuiltinType int64() { result.getName() = "int64" } + BuiltinTypeEntity int64() { result.getName() = "int64" } /** Gets the built-in type `rune`. */ - BuiltinType rune() { result.getName() = "rune" } + BuiltinTypeEntity rune() { result.getName() = "rune" } /** Gets the built-in type `string`. */ - BuiltinType string_() { result.getName() = "string" } + BuiltinTypeEntity string_() { result.getName() = "string" } /** Gets the built-in type `uint`. */ - BuiltinType uint() { result.getName() = "uint" } + BuiltinTypeEntity uint() { result.getName() = "uint" } /** Gets the built-in type `uint8`. */ - BuiltinType uint8() { result.getName() = "uint8" } + BuiltinTypeEntity uint8() { result.getName() = "uint8" } /** Gets the built-in type `uint16`. */ - BuiltinType uint16() { result.getName() = "uint16" } + BuiltinTypeEntity uint16() { result.getName() = "uint16" } /** Gets the built-in type `uint32`. */ - BuiltinType uint32() { result.getName() = "uint32" } + BuiltinTypeEntity uint32() { result.getName() = "uint32" } /** Gets the built-in type `uint64`. */ - BuiltinType uint64() { result.getName() = "uint64" } + BuiltinTypeEntity uint64() { result.getName() = "uint64" } /** Gets the built-in type `uintptr`. */ - BuiltinType uintptr() { result.getName() = "uintptr" } + BuiltinTypeEntity uintptr() { result.getName() = "uintptr" } // built-in constants /** Gets the built-in constant `true`. */ From d9bc165c7284418c9204c55e0f80d436d677198f Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 10:35:25 +0100 Subject: [PATCH 016/340] Add helper predicates for `FieldDecl` --- go/ql/lib/semmle/go/Decls.qll | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/Decls.qll b/go/ql/lib/semmle/go/Decls.qll index 785a09b2549..ac0cc7a3135 100644 --- a/go/ql/lib/semmle/go/Decls.qll +++ b/go/ql/lib/semmle/go/Decls.qll @@ -461,6 +461,7 @@ class FieldBase extends @field, ExprParent { * Examples: * * ```go + * io.Reader * Name string `json:"name"` * x, y int * ``` @@ -469,8 +470,9 @@ class FieldBase extends @field, ExprParent { * * ```go * struct { - * Name string `json:"name"` - * x, y int + * io.Reader // embedded field + * Name string `json:"name"` // field with tag + * x, y int // declares two fields with the same type * } * ``` */ @@ -482,12 +484,24 @@ class FieldDecl extends FieldBase, Documentable, ExprParent { /** * Gets the expression representing the name of the `i`th field declared in this declaration * (0-based). + * + * This is not defined for embedded fields. */ Expr getNameExpr(int i) { i >= 0 and result = this.getChildExpr(i + 1) } + /** + * Gets the `i`th field declared in this declaration (0-based). + * + * This is not defined for embedded fields. + */ + Field getField(int i) { this.getNameExpr(i).(Ident).declares(result) } + + /** Holds if this field declaration declares an embedded type. */ + predicate isEmbedded() { not exists(this.getNameExpr(_)) } + /** Gets the tag expression of this field declaration, if any. */ Expr getTag() { result = this.getChildExpr(-1) } From 8b9cc99158665e1a722a6bf64499d5b3b37b2c7e Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 10:35:34 +0100 Subject: [PATCH 017/340] Test helper predicates for `FieldDecl` --- .../semmle/go/Types/FieldDecl.expected | 70 +++++++++++++++++++ .../semmle/go/Types/FieldDecl.ql | 7 ++ 2 files changed, 77 insertions(+) create mode 100644 go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected create mode 100644 go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql diff --git a/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected new file mode 100644 index 00000000000..b1eb47a7945 --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.expected @@ -0,0 +1,70 @@ +fieldDeclWithNamedFields +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:6:26:6:35 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:8:26:8:35 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:6:26:6:26 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:8:26:8:26 | x | +| aliases.go:19:17:19:21 | field declaration | 0 | aliases.go:19:17:19:17 | x | +| aliases.go:29:34:29:42 | field declaration | 0 | aliases.go:29:34:29:34 | x | +| cyclic.go:9:2:9:6 | field declaration | 0 | cyclic.go:9:2:9:2 | f | +| depth.go:11:2:11:6 | field declaration | 0 | depth.go:11:2:11:2 | f | +| depth.go:19:2:19:9 | field declaration | 0 | depth.go:19:2:19:2 | f | +| embedded.go:4:2:4:9 | field declaration | 0 | embedded.go:4:2:4:2 | A | +| embedded.go:13:2:13:11 | field declaration | 0 | embedded.go:13:2:13:4 | Baz | +| generic.go:4:2:4:15 | field declaration | 0 | generic.go:4:2:4:11 | valueField | +| generic.go:5:2:5:16 | field declaration | 0 | generic.go:5:2:5:13 | pointerField | +| generic.go:6:2:6:19 | field declaration | 0 | generic.go:6:2:6:11 | arrayField | +| generic.go:7:2:7:17 | field declaration | 0 | generic.go:7:2:7:11 | sliceField | +| generic.go:8:2:8:26 | field declaration | 0 | generic.go:8:2:8:9 | mapField | +| generic.go:12:2:12:40 | field declaration | 0 | generic.go:12:2:12:13 | pointerField | +| generic.go:16:2:16:31 | field declaration | 0 | generic.go:16:2:16:5 | root | +| generic.go:20:2:20:30 | field declaration | 0 | generic.go:20:2:20:12 | structField | +| generic.go:21:2:21:20 | field declaration | 0 | generic.go:21:2:21:9 | mapField | +| generic.go:25:2:25:33 | field declaration | 0 | generic.go:25:2:25:12 | structField | +| generic.go:29:2:29:43 | field declaration | 0 | generic.go:29:2:29:13 | pointerField | +| pkg1/embedding.go:37:2:37:6 | field declaration | 0 | pkg1/embedding.go:37:2:37:2 | f | +| pkg1/promotedStructs.go:5:2:5:14 | field declaration | 0 | pkg1/promotedStructs.go:5:2:5:7 | SField | +| pkg1/promotedStructs.go:14:2:14:14 | field declaration | 0 | pkg1/promotedStructs.go:14:2:14:7 | PField | +| pkg1/tst.go:6:2:6:6 | field declaration | 0 | pkg1/tst.go:6:2:6:2 | f | +| pkg1/tst.go:12:2:12:8 | field declaration | 0 | pkg1/tst.go:12:2:12:4 | Foo | +| pkg1/tst.go:23:2:23:8 | field declaration | 0 | pkg1/tst.go:23:2:23:4 | Bar | +| pkg1/tst.go:27:2:27:9 | field declaration | 0 | pkg1/tst.go:27:2:27:4 | val | +| pkg1/tst.go:28:2:28:10 | field declaration | 0 | pkg1/tst.go:28:2:28:5 | flag | +| pkg1/tst.go:32:2:32:10 | field declaration | 0 | pkg1/tst.go:32:2:32:5 | flag | +| pkg2/tst.go:4:2:4:6 | field declaration | 0 | pkg2/tst.go:4:2:4:2 | g | +| pkg2/tst.go:4:2:4:6 | field declaration | 0 | pkg2/tst.go:8:2:8:2 | g | +| pkg2/tst.go:8:2:8:6 | field declaration | 0 | pkg2/tst.go:4:2:4:2 | g | +| pkg2/tst.go:8:2:8:6 | field declaration | 0 | pkg2/tst.go:8:2:8:2 | g | +| pkg2/tst.go:17:2:17:15 | field declaration | 0 | pkg2/tst.go:17:2:17:8 | NCField | +| struct_tags.go:4:2:4:19 | field declaration | 0 | struct_tags.go:4:2:4:7 | field1 | +| struct_tags.go:5:2:5:19 | field declaration | 0 | struct_tags.go:5:2:5:7 | field2 | +| struct_tags.go:9:2:9:19 | field declaration | 0 | struct_tags.go:9:2:9:7 | field1 | +| struct_tags.go:10:2:10:19 | field declaration | 0 | struct_tags.go:10:2:10:7 | field2 | +fieldDeclWithEmbeddedField +| cyclic.go:4:2:4:3 | field declaration | * s | +| cyclic.go:8:2:8:3 | field declaration | * u | +| cyclic.go:13:2:13:2 | field declaration | t | +| cyclic.go:17:2:17:2 | field declaration | s | +| depth.go:6:2:6:2 | field declaration | b | +| depth.go:7:2:7:2 | field declaration | c | +| depth.go:15:2:15:2 | field declaration | d | +| embedded.go:8:2:8:5 | field declaration | * Baz | +| embedded.go:12:2:12:4 | field declaration | Qux | +| main.go:18:2:18:15 | field declaration | NameClash | +| pkg1/embedding.go:19:23:19:26 | field declaration | base | +| pkg1/embedding.go:22:26:22:30 | field declaration | * base | +| pkg1/embedding.go:25:24:25:31 | field declaration | embedder | +| pkg1/embedding.go:28:24:28:31 | field declaration | embedder | +| pkg1/embedding.go:36:2:36:5 | field declaration | base | +| pkg1/promotedStructs.go:22:22:22:22 | field declaration | S | +| pkg1/promotedStructs.go:25:22:25:22 | field declaration | P | +| pkg1/tst.go:7:2:7:4 | field declaration | Foo | +| pkg1/tst.go:8:2:8:4 | field declaration | Bar | +| pkg1/tst.go:13:2:13:4 | field declaration | Bar | +| pkg1/tst.go:17:2:17:5 | field declaration | * Foo | +| pkg1/tst.go:18:2:18:5 | field declaration | * Bar | +| pkg1/tst.go:22:2:22:5 | field declaration | * Foo | +| pkg1/tst.go:62:2:62:15 | field declaration | NameClash | diff --git a/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql new file mode 100644 index 00000000000..2cdbcc9e57b --- /dev/null +++ b/go/ql/test/library-tests/semmle/go/Types/FieldDecl.ql @@ -0,0 +1,7 @@ +import go + +query predicate fieldDeclWithNamedFields(FieldDecl fd, int i, Field f) { fd.getField(i) = f } + +query predicate fieldDeclWithEmbeddedField(FieldDecl fd, string tp) { + fd.isEmbedded() and tp = fd.getType().pp() +} From c4a8ac4980c1c63c1345b80e65dc091f0b9b3db7 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 10:51:39 +0100 Subject: [PATCH 018/340] Add helper predicates for `TypeSpec` --- go/ql/lib/semmle/go/Decls.qll | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/go/ql/lib/semmle/go/Decls.qll b/go/ql/lib/semmle/go/Decls.qll index ac0cc7a3135..9d1e4d2611a 100644 --- a/go/ql/lib/semmle/go/Decls.qll +++ b/go/ql/lib/semmle/go/Decls.qll @@ -381,10 +381,20 @@ class TypeSpec extends @typespec, Spec, TypeParamDeclParent { string getName() { result = this.getNameExpr().getName() } /** - * Gets the expression denoting the underlying type to which the newly declared type is bound. + * Gets the declared type of this specifier. + * + * Note that for alias types this will give the underlying type. + */ + Type getDeclaredType() { result = this.getNameExpr().getType() } + + /** + * Gets the expression denoting the underlying type to which the declared type is bound. */ Expr getTypeExpr() { result = this.getChildExpr(1) } + /** Gets the underlying type to which the declared type is bound. */ + Type getRhsType() { result = this.getTypeExpr().getType() } + override string toString() { result = "type declaration specifier" } override string getAPrimaryQlClass() { result = "TypeSpec" } From 75d9b298b25d06271fd48a9956f35b939b49ec2a Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 10:52:01 +0100 Subject: [PATCH 019/340] Test helper predicates for `TypeSpec` --- go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected | 4 ++-- go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected index 73f614a03f1..d4000d910cf 100644 --- a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected +++ b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.expected @@ -1,2 +1,2 @@ -| main.go:3:6:3:15 | type declaration specifier | status | int | def | -| main.go:5:6:5:20 | type declaration specifier | intlist | []int | alias | +| main.go:3:6:3:15 | type declaration specifier | status | status | main.go:3:13:3:15 | int | int | def | +| main.go:5:6:5:20 | type declaration specifier | intlist | []int | main.go:5:16:5:20 | array type | []int | alias | diff --git a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql index 70a527d311c..bbbc5345ed6 100644 --- a/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql +++ b/go/ql/test/library-tests/semmle/go/Decl/TypeSpec.ql @@ -2,4 +2,4 @@ import go from TypeSpec ts, string kind where if ts instanceof AliasSpec then kind = "alias" else kind = "def" -select ts, ts.getName(), ts.getTypeExpr().getType().pp(), kind +select ts, ts.getName(), ts.getDeclaredType().pp(), ts.getTypeExpr(), ts.getRhsType().pp(), kind From ecd0291b6a68e9db916bd22387842cda69d3bced Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 5 Jun 2025 11:00:00 +0100 Subject: [PATCH 020/340] Add change note for deprecation --- .../2025-06-05-deprecate-DeclaredType-BuiltinType.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 go/ql/lib/change-notes/2025-06-05-deprecate-DeclaredType-BuiltinType.md diff --git a/go/ql/lib/change-notes/2025-06-05-deprecate-DeclaredType-BuiltinType.md b/go/ql/lib/change-notes/2025-06-05-deprecate-DeclaredType-BuiltinType.md new file mode 100644 index 00000000000..6744743ea27 --- /dev/null +++ b/go/ql/lib/change-notes/2025-06-05-deprecate-DeclaredType-BuiltinType.md @@ -0,0 +1,5 @@ +--- +category: deprecated +--- +* The class `BuiltinType` is now deprecated. Use the new replacement `BuiltinTypeEntity` instead. +* The class `DeclaredType` is now deprecated. Use the new replacement `DeclaredTypeEntity` instead. From 14f50880e973e5dc874e0fca81e1f1782575f44a Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 3 Jun 2025 09:44:22 +0000 Subject: [PATCH 021/340] JavaScript: Don't extract files in `tsconfig.json` `outDir` --- .../tsconfig/CompilerOptions.java | 13 +++++++++++ .../dependencies/tsconfig/TsConfigJson.java | 13 +++++++++++ .../com/semmle/js/extractor/AutoBuild.java | 22 +++++++++++++++++++ .../js/extractor/test/AutoBuildTests.java | 18 +++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java create mode 100644 javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java diff --git a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java b/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java new file mode 100644 index 00000000000..63bec753ac9 --- /dev/null +++ b/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java @@ -0,0 +1,13 @@ +package com.semmle.js.dependencies.tsconfig; + +public class CompilerOptions { + private String outDir; + + public String getOutDir() { + return outDir; + } + + public void setOutDir(String outDir) { + this.outDir = outDir; + } +} diff --git a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java b/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java new file mode 100644 index 00000000000..08dbe663139 --- /dev/null +++ b/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java @@ -0,0 +1,13 @@ +package com.semmle.js.dependencies.tsconfig; + +public class TsConfigJson { + private CompilerOptions compilerOptions; + + public CompilerOptions getCompilerOptions() { + return compilerOptions; + } + + public void setCompilerOptions(CompilerOptions compilerOptions) { + this.compilerOptions = compilerOptions; + } +} diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 22d008637c9..44fa2f9209a 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -39,6 +39,8 @@ import java.util.stream.Stream; import com.google.gson.Gson; import com.google.gson.JsonParseException; +import com.semmle.js.dependencies.tsconfig.TsConfigJson; +import com.semmle.js.dependencies.tsconfig.CompilerOptions; import com.semmle.js.dependencies.AsyncFetcher; import com.semmle.js.dependencies.DependencyResolver; import com.semmle.js.dependencies.packument.PackageJson; @@ -745,6 +747,26 @@ public class AutoBuild { .filter(p -> !isFileTooLarge(p)) .sorted(PATH_ORDERING) .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); + // exclude files in output directories as configured in tsconfig.json + final List outDirs = new ArrayList<>(); + for (Path cfg : tsconfigFiles) { + try { + String txt = new WholeIO().read(cfg); + TsConfigJson root = new Gson().fromJson(txt, TsConfigJson.class); + if (root != null && root.getCompilerOptions() != null) { + if (root.getCompilerOptions().getOutDir() == null) { + // no outDir specified, so skip this tsconfig.json + continue; + } + Path odir = cfg.getParent().resolve(root.getCompilerOptions().getOutDir()).toAbsolutePath().normalize(); + outDirs.add(odir); + } + } catch (Exception e) { + // ignore malformed tsconfig or missing fields + } + } + // exclude files in output directories as configured in tsconfig.json + filesToExtract.removeIf(f -> outDirs.stream().anyMatch(od -> f.startsWith(od))); DependencyInstallationResult dependencyInstallationResult = DependencyInstallationResult.empty; if (!tsconfigFiles.isEmpty()) { diff --git a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java index 0a924d54319..532e29e6e31 100644 --- a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java +++ b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java @@ -203,6 +203,24 @@ public class AutoBuildTests { runTest(); } + @Test + public void skipFilesInTsconfigOutDir() throws IOException { + envVars.put("LGTM_INDEX_TYPESCRIPT", "basic"); + // Files under outDir in tsconfig.json should be excluded + // Create tsconfig.json with outDir set to "dist" + addFile(true, LGTM_SRC, "tsconfig.json"); + Path config = Paths.get(LGTM_SRC.toString(), "tsconfig.json"); + Files.write(config, + "{\"compilerOptions\":{\"outDir\":\"dist\"}}".getBytes(StandardCharsets.UTF_8)); + // Add files outside outDir (should be extracted) + addFile(true, LGTM_SRC, "src", "app.ts"); + addFile(true, LGTM_SRC, "main.js"); + // Add files under dist/outDir (should be skipped) + addFile(false, LGTM_SRC, "dist", "generated.js"); + addFile(false, LGTM_SRC, "dist", "sub", "x.js"); + runTest(); + } + @Test public void includeFile() throws IOException { envVars.put("LGTM_INDEX_INCLUDE", "tst.js"); From 8829f7820a0fd075492cbcf189aa5357f84c4dfe Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 3 Jun 2025 09:44:52 +0000 Subject: [PATCH 022/340] JavaScript: Don't extract files with TypeScript progenitors --- .../com/semmle/js/extractor/AutoBuild.java | 14 ++++++++++++-- .../js/extractor/test/AutoBuildTests.java | 19 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 44fa2f9209a..ca69bf06791 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -818,9 +818,19 @@ public class AutoBuild { */ private boolean isFileDerivedFromTypeScriptFile(Path path, Set extractedFiles) { String name = path.getFileName().toString(); - if (!name.endsWith(".js")) + // only skip JS variants when a corresponding TS/TSX file was already extracted + if (!(name.endsWith(".js") + || name.endsWith(".cjs") + || name.endsWith(".mjs") + || name.endsWith(".jsx") + || name.endsWith(".cjsx") + || name.endsWith(".mjsx"))) { return false; - String stem = name.substring(0, name.length() - ".js".length()); + } + // strip off extension + int dot = name.lastIndexOf('.'); + String stem = dot != -1 ? name.substring(0, dot) : name; + // if a TS/TSX file with same base name was extracted, skip this file for (String ext : FileType.TYPESCRIPT.getExtensions()) { if (extractedFiles.contains(path.getParent().resolve(stem + ext))) { return true; diff --git a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java index 532e29e6e31..4a93a97cc58 100644 --- a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java +++ b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java @@ -203,6 +203,25 @@ public class AutoBuildTests { runTest(); } + @Test + public void skipJsFilesDerivedFromTypeScriptFiles() throws IOException { + // JS-derived files (.js, .cjs, .mjs, .jsx, .cjsx, .mjsx) should be skipped when TS indexing + envVars.put("LGTM_INDEX_TYPESCRIPT", "basic"); + // Add TypeScript sources + addFile(true, LGTM_SRC, "foo.ts"); + addFile(true, LGTM_SRC, "bar.tsx"); + // Add derived JS variants (should be skipped) + addFile(false, LGTM_SRC, "foo.js"); + addFile(false, LGTM_SRC, "bar.jsx"); + addFile(false, LGTM_SRC, "foo.cjs"); + addFile(false, LGTM_SRC, "foo.mjs"); + addFile(false, LGTM_SRC, "bar.cjsx"); + addFile(false, LGTM_SRC, "bar.mjsx"); + // A normal JS file without TS counterpart should be extracted + addFile(true, LGTM_SRC, "normal.js"); + runTest(); + } + @Test public void skipFilesInTsconfigOutDir() throws IOException { envVars.put("LGTM_INDEX_TYPESCRIPT", "basic"); From 619256e03716dabcdead1321ddf9d491cbfc918a Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 5 Jun 2025 14:59:40 +0000 Subject: [PATCH 023/340] JavaScript: Fix existing tests and test runner Fixes two things: - The basic test should no longer extract `tst.js` (as `tst.ts` is present) - The `AutoBuild` mock did not populate `extractedFiles` correctly, which broke the logic that looks for TypeScript files with the same basename. --- .../test/com/semmle/js/extractor/test/AutoBuildTests.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java index 4a93a97cc58..28c8e593dcd 100644 --- a/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java +++ b/javascript/extractor/test/com/semmle/js/extractor/test/AutoBuildTests.java @@ -135,6 +135,7 @@ public class AutoBuildTests { FileExtractors extractors) { for (Path f : files) { actual.add(f.toString()); + extractedFiles.add(f); } } @@ -175,7 +176,7 @@ public class AutoBuildTests { @Test public void basicTest() throws IOException { - addFile(true, LGTM_SRC, "tst.js"); + addFile(false, LGTM_SRC, "tst.js"); addFile(true, LGTM_SRC, "tst.ts"); addFile(true, LGTM_SRC, "tst.html"); addFile(true, LGTM_SRC, "tst.xsjs"); From 281ccf7c11f5ee495a97408b292490695ef5dad8 Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 5 Jun 2025 15:01:05 +0000 Subject: [PATCH 024/340] JavaScript: Extract `tsconfig.json` also in `basic` mode This is needed for the logic that skips files inside the directory specified in the `tsconfig.json` `outDir` compiler option. --- javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index ca69bf06791..b8105db6b39 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -1186,7 +1186,7 @@ protected DependencyInstallationResult preparePackagesAndDependencies(Set } // extract TypeScript projects from 'tsconfig.json' - if (typeScriptMode == TypeScriptMode.FULL + if (typeScriptMode != TypeScriptMode.NONE && treatAsTSConfig(file.getFileName().toString()) && !excludes.contains(file) && isFileIncluded(file)) { From b8772bc73603b6dfa1da6dd80f67e659694888db Mon Sep 17 00:00:00 2001 From: Taus Date: Thu, 5 Jun 2025 15:06:40 +0000 Subject: [PATCH 025/340] JavaScript: Add change note --- .../change-notes/2025-06-05-skip-obviously-generated-files.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md diff --git a/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md b/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md new file mode 100644 index 00000000000..16d81cb4cc3 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The JavaScript extractor now skips generated JavaScript files if the original TypeScript files are already present. It also skips any files in the output directory specified in the `compilerOptions` part of the `tsconfig.json` file. From c70decbe86fa945a445da1c9b1e7267702cf5b39 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 6 Jun 2025 16:18:16 +0200 Subject: [PATCH 026/340] Rust: add `Callable::getParam` and `CallExprBase::getArg` shortcuts --- rust/ql/.generated.list | 22 +++++++++++-------- rust/ql/.gitattributes | 4 ++++ .../internal/generated/CfgNodes.qll | 15 +++++++++++++ rust/ql/lib/codeql/rust/elements/Callable.qll | 1 + .../elements/internal/CallExprBaseImpl.qll | 2 ++ .../rust/elements/internal/CallableImpl.qll | 5 +++-- .../internal/generated/CallExprBase.qll | 16 ++++++++++++++ .../elements/internal/generated/Callable.qll | 16 ++++++++++++++ .../generated/CallExpr/CallExpr.ql | 7 +++--- .../generated/CallExpr/CallExpr_getArg.ql | 7 ++++++ .../generated/ClosureExpr/ClosureExpr.ql | 13 ++++++----- .../ClosureExpr/ClosureExpr_getParam.ql | 7 ++++++ .../generated/Function/Function.ql | 21 ++++++++++-------- .../generated/Function/Function_getParam.ql | 7 ++++++ .../MethodCallExpr/MethodCallExpr.ql | 13 ++++++----- .../MethodCallExpr/MethodCallExpr_getArg.ql | 7 ++++++ rust/schema/annotations.py | 1 + rust/schema/prelude.py | 1 + 18 files changed, 132 insertions(+), 33 deletions(-) create mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql create mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql create mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql create mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index eb60dccb3e6..903f91362d3 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll bd01b4d17625ee8c0da93231cf2291deb7e57db2c8aaa2c37968553c3144c47e 6e6ac58e09b84d02f461699a25ee80798a1bdc51c1836d9d75f5b52e93ae7ba6 +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 6a103a6d04c951ca2f0c2989bed737cdbac56dd5ea9432b858da3416412bbf79 cf2bc67b65a1555de58bbd0a35b834b8867112a2f7c1951307c9416400ce70d0 lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 @@ -33,7 +33,7 @@ lib/codeql/rust/elements/BoxPat.qll 1b2c3fff171aa6aa238c9460b122f26c79e04577cea6 lib/codeql/rust/elements/BreakExpr.qll 7ca3807a20e9a9a988d1fd7abebf240325ed422fcb45c719ba46272f031f94db dffb7379d3f3ba220acfbd05eb7bb6cfd9cfda211e9c8b1f5240ca5fa61be3fc lib/codeql/rust/elements/CallExpr.qll f336500ca7a611b164d48b90e80edb0c0d3816792b0ececce659ac1ff1ffeb3e f99a9c55466418ef53860c44d9f2d6161af4b492178ddd9e5870dff742b70ae5 lib/codeql/rust/elements/CallExprBase.qll 2846202b5208b541977500286951d96487bf555838c6c16cdd006a71e383745a c789d412bf099c624329379e0c7d94fa0d23ae2edea7a25a2ea0f3c0042ccf62 -lib/codeql/rust/elements/Callable.qll e1ed21a7e6bd2426f6ccd0e46cee506d8ebf90a6fdc4dca0979157da439853aa 02f6c09710116ce82157aec9a5ec706983c38e4d85cc631327baf8d409b018c6 +lib/codeql/rust/elements/Callable.qll 0f7f78c3bfabbe24962f6232b0440d27e51f06d2b8d341fc623ffbfbff173f47 5fd13aaa0eaf76ea0b47fa0641bd23eea20a069f0b3cbc1ee4e290e88321008a lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c73345e8f9bbd41e8c235fec45 c5b4c1e9dc24eb2357799defcb2df25989075e3a80e8663b74204a1c1b70e29a lib/codeql/rust/elements/ClosureBinder.qll 02c8e83bf07deaf7bf0233b76623ec7f1837be8b77fe7e1c23544edc7d85e3c4 2b114d9a6dede694324aebe3dac80a802d139cfacd39beb0f12b5b0a46ee6390 lib/codeql/rust/elements/ClosureExpr.qll 67e2a106e9154c90367b129987e574d2a9ecf5b297536627e43706675d35eaed d6a381132ddd589c5a7ce174f50f9620041ddf690e15a65ebfb05ff7e7c02de7 @@ -492,8 +492,8 @@ lib/codeql/rust/elements/internal/generated/BlockExpr.qll 5a5ddbe34bc478a7bd9b0d lib/codeql/rust/elements/internal/generated/BoxPat.qll 597bed52f7489e0addce3266f7bee5be7c53d2d1263eceec3a252d041ca0908f b8ccf363ca5f1a988547caf1fd266a55aec7cbf8623578deea99765d264b0151 lib/codeql/rust/elements/internal/generated/BreakExpr.qll 0f428a8b2f4209b134c2ffc3e1c93c30bc6b0e9c9172f140cefa88c1f77d8690 957b39f38ff6befe9061f55bc0b403c2f1c366dd0cf63b874bae6f8216576d76 lib/codeql/rust/elements/internal/generated/CallExpr.qll f1b8dae487077cc9d1dccf8c3cd61fd17afe860585f17ce8b860be4859be7ca4 6034fc03778e38802cdf3a6e460364b74e92912622581b31e6179951022bbbd6 -lib/codeql/rust/elements/internal/generated/CallExprBase.qll cce796e36847249f416629bacf3ea146313084de3374587412e66c10d2917b83 c219aa2174321c161a4a742ca0605521687ca9a5ca32db453a5c62db6f7784cc -lib/codeql/rust/elements/internal/generated/Callable.qll b0502b5263b7bcd18e740f284f992c0e600e37d68556e3e0ba54a2ac42b94934 bda3e1eea11cacf5a9b932cd72efc2de6105103e8c575880fcd0cd89daadf068 +lib/codeql/rust/elements/internal/generated/CallExprBase.qll 2268e01d65015014c05166161bb28e5a1e78164d525ca16fc1e3106866cf231d b2f9b912153ba4d3e3612df4f74ac0e83077c31d5b31383bd277974081417a56 +lib/codeql/rust/elements/internal/generated/Callable.qll 9a8661aa018fd90a21529760c1dbc46c1ad3649e17b030e59ced0683fbf83f8a 8b573adfc23ec0ac91949da415e6a0c988fa02cbce9534d45ac98a5512d7b1ca lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298f3461490d25d00af87c876da5ffbc6a11c0832295 f4247307afcd74d80e926f29f8c57e78c50800984483e6b6003a44681e4a71f3 lib/codeql/rust/elements/internal/generated/ClosureBinder.qll ab199df96f525a083a0762fd654cd098802033c79700a593bb204a9a0c69ec01 86b33543e0886715830cfcdaca43b555a242a4f12a4caa18b88732d5afb584bd lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 34149bf82f107591e65738221e1407ec1dc9cc0dfb10ae7f761116fda45162de fd2fbc9a87fc0773c940db64013cf784d5e4137515cc1020e2076da329f5a952 @@ -578,7 +578,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 e2c6aaaa1735113f160c0e178d682bff8e9ebc627632f73c0dd2d1f4f9d692a8 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 +lib/codeql/rust/elements/internal/generated/ParentChild.qll 794df100370be92e8537c2b90431d02558c4eeb783c68ffdc7fc6445629acae2 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 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 @@ -730,7 +730,8 @@ test/extractor-tests/generated/BreakExpr/BreakExpr.ql cdde2855d98f658187c60b9edc test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql c7690a9aab1923bf3c2fb06f0a1d441d480b3c91ee1df3a868bbbd96c4042053 c592dd077fb6e22b2d6ddcaec37da2c5a26ba92d84f5d1ae4c78a615b9013765 test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql 0358f4fe6a66da56177703cf0e991042729c5e34ae8b6dccbb827f95fe936c72 1cb2dd778c50e19fe04c5fdf3a08a502635ea8303e71ff38d03aa7dc53213986 test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql ad83cc0db3c0f959fef6bb7ce0938d241a877e8cf84d15fb63879be2fe47238c 240b2fe2156b763d3a82fc64159615872db65b65ffb9ba2f3fd5d1ebd6c60f34 -test/extractor-tests/generated/CallExpr/CallExpr.ql ffb0cf1cb359a6dcbdf792a570c281e2d300779dca2dbc0f324990652adb972f 978a9e6c82758f9e8b334a682a02d6b893a6bf1db3cd85e9535839a9696b09b4 +test/extractor-tests/generated/CallExpr/CallExpr.ql cd38ec018b1afe9ae32ef94feca62295ad37c770c38b48a47bfb09697e7ee531 f6b0f2128cd5e63715f630c581d07b83678c298f7a7c56e38815e0d2c49ee36e +test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql 7d8d53ee4a0642f85d6bbfee6912fead699b5d117534d2b1803a670550894484 1782b33724b72afc9b7d99e3a52cacd4431ce1e12a7e43a7ac9872aad769b4ee test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql b022e7b6b6db9932e787e37b7760c6a09c91140a0368940374a2c919688e0488 c20849c96b53c96f6f717efff5e8b4c0e900c0ef5d715cfbaf7101c7056ad8f4 test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql 1ace458070875b9ff2c671c2ee18392ea7bf6e51b68ee98d412c8606e8eb8d33 4c35da8255d2975cef4adee15623662441bb8f2e1d73582e4c193d1bc11cc1b5 test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql 060a6c8b5b85c839b14fe96f9e50291a7a0e5662a945f4f337070f782ec76715 e9a1e44433936146d87be939aa160848b9a7d7333c36da601fb7d1a66d71eb59 @@ -740,10 +741,11 @@ test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql c37186b8f3e3dab8ae28 test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql ab6b0a61adc404c89c0e2e1962236a8e703fdc5092512bb4a5d9995af8e13c7b 4e7f6b6f58a1ef34ed45e31e35154dd8dc59054ebedcaa87200c84cc727ef1dd test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql 42516df87ac28c814d65f6739b2ede6eaa41c505d64756a3b8c7e0ca79895230 8b840f92ec033a4ef5edbe52bed909d8be0fffddf6d3e4bfaf9a8bc174fa2f2c test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql 71010c43a78a7abe8e63c94353f4b7eb97aca011755d200e7087467c1e3b7a68 2c834328f783ec5032544a692f7e23975bac0228b52b9f8fde46ef46a5f22a5f -test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql f25f9b32e5c0cd61e4b75053a5af4640a08b115ea5a4310ab95df450f6dfe1c4 9b731218857fa16776e29bce084c2ec1526b24e15f46d4f24047917d77d4646a +test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 4d5f40935d07b0b24d77b93f56e9cea47666c5a3de84744641f9a4cb5d8d1319 b9a235c0a2d6a254d15f1fd1d0c8fdb6a7af51487b3826f26d8ca7a3b6cbc9b2 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql f7f803afa4e2a5976c911fdf8a91ec607c2f998e22531b9c69a63d85579e34c3 1296acd0fb97e1484aa3f1d5ba09d18088001186f3ba5821eb3218a931ca0d54 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql 22a973a61274e87620e38338b29beef395818b95a88e2261fff197f7a78a8f76 bd28ed426e4d07823044db869aa8022dc81e8599d156e3e0e7cd49be914a1f36 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf89b8efb5cb9b7bfbea26b5a78b3d4c7994cbf03d5ca60b61ee1b5cb4be5 621431277732ef79c585cb0b7199c49b14c597ee6b594a70d9e6966a09d40a9f +test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql c87b61e80dd62e031e8b310d8a4b781a468ecf2e5e81662be400f18bf33c5862 22abbc976a0e6f33c32c0e93cd0dd567cead13d82d561b9214275ea01b4a0573 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 @@ -833,7 +835,7 @@ test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 27 test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql 634efdffaae4199aa9d95652cf081a8dc26e88224e24678845f8a67dc24ce090 d0302fee5c50403214771d5c6b896ba7c6e52be10c9bea59720ef2bb954e6f40 test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql 0d2140f84d0220b0c72c48c6bd272f4cfe1863d1797eddd16a6e238552a61e4d f4fe9b29697041e30764fa3dea44f125546bfb648f32c3474a1e922a4255c534 test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql 01ef27dd0bfab273e1ddc57ada0e079ece8a2bfd195ce413261006964b444093 acd0161f86010759417015c5b58044467a7f760f288ec4e8525458c54ae9a715 -test/extractor-tests/generated/Function/Function.ql 2efae1916e8f501668b3dbb2237cda788243fdd643683eda41b108dfdc578a90 6ec948518963985ec41b66e2b3b2b953e1da872dcd052a6d8c8f61c25bf09600 +test/extractor-tests/generated/Function/Function.ql b32c49f4371a51b9c217758fa5da2601d58bcbf3b195e7c8adb76bae5180d315 12e55c66a90ee88207c729736f388866cda13af78ea07a5d4e995c4a58a1e378 test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454 test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql 17a346a9e5d28af99522520d1af3852db4cae01fb3d290a65c5f84d8d039c345 36fb06b55370828d9bc379cf5fad7f383cdb6f6db6f7377660276943ab0e1ec8 @@ -842,6 +844,7 @@ test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b38 test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421 test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1 test/extractor-tests/generated/Function/Function_getName.ql 3d9e0518075d161213485389efe0adf8a9e6352dd1c6233ef0403a9abbcc7ed1 841e644ecefff7e9a82f458bcf14d9976d6a6dbe9191755ead88374d7c086375 +test/extractor-tests/generated/Function/Function_getParam.ql ef0b46453512fef08fbcc2a15bc14ae319bbc4810a4e4ce03a5ca3b1e8859ca7 ce36d3974059c1cd63eb1d6b76111985087f40dd4fe0c716a00aa9a178c712c4 test/extractor-tests/generated/Function/Function_getParamList.ql f888802ab00defb58de59cc39d1e0518e3884db7eaf845f39dfa55befdda58b2 ba0d1a07676f1c987b820a3d126a563ecf9a3d53ac1115b87a5af487a8a03c3e test/extractor-tests/generated/Function/Function_getRetType.ql b3a1ab90c8ebf0543e5db6a415896e44a02f984321f49bc409aec2657298942b cdfa37772e5026febb19c9bcd0d325688b0fbf2f6e7bba424b73eca38b9b3e38 test/extractor-tests/generated/Function/Function_getVisibility.ql 490b0a369c809a757d4835b97becf617b0399f16a63a2b06258c9a227d5cc415 25ceff15d3cd03821e1cb2c04cb8894bcd101eeca62b66b54d1751b628107818 @@ -965,7 +968,8 @@ test/extractor-tests/generated/Meta/Meta.ql 16f163f00ba2bbaa0a8c6f3f6710c860a8f6 test/extractor-tests/generated/Meta/Meta_getExpr.ql ec9ec61f5be7d65c32775fb5c068daea04f9db7d875293ed99cc1b2481db041f 77a0c52f1cb6ddc8fdb294d637f9eda1b7301ffa3067f0fca6272d894f57d3ee test/extractor-tests/generated/Meta/Meta_getPath.ql aa9d4145a4e613c51b6e4637d57e3b7d0f66e0bb88f4ce959d598870814c06bb 2087e00686d502c0e2e89c88eae0fb354463576a9ae4101320981d3fd79b9078 test/extractor-tests/generated/Meta/Meta_getTokenTree.ql 1051c27ffd0d9a20436d684fde529b9ff55abe30d50e1d575b0318951e75bd34 983975672d928fb907676628384c949731da9807bf0c781bb7ec749d25733d2d -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql d141f5a2ef95019aa64e8cb384ab4a45e7a93c941b84ef2e14c13377f159e4db 47a68fc874af6cc9a4b278a5aab1633a9db17300fd7dbd6dbe193d48d99144bc +test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 85d3b8c794167f87840469e03d21aa00daf0998c28028f1c8848c7c4bd895db4 fa368ce4543c2544ecd2e636ade8d92849741226599290f59e0138a4a479357c +test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql 10a88c3bf63dfb26f43b9cd1ed7fceef0f436ce2eff4b5a816da369bf5b775d2 ee3b5043719591b4048ec32e21bb5fb3a9f83f0420ef18c338fc0ac28d0e3240 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql 180e0b1715f5cd2be0de01bff3d3a45594b495b8250748d40ff7108d6c85923d bdadcdbecca5891287a47b6dd6b2fda62e07457718aef39212503ab63bc17783 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql 2ce876a04a159efce83b863dffc47fbb714b95daea2b91fa6fbb623d28eed9ec 7bca1cd0e8fbceec0e640afb6800e1780eff5b5b402e71b9b169c0ba26966f96 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql 655db9a0501b1ef20d604cc4cd9d708371781291443e8dec97b70ec2914601d2 2fc7df0eca22dcef2f9f5c86d37ee43452d372a4c0f9f4da0194828c82ba93e0 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 3326912c0ca..5e1382f75bb 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -733,6 +733,7 @@ /test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated +/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql linguist-generated @@ -746,6 +747,7 @@ /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql linguist-generated +/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql linguist-generated /test/extractor-tests/generated/Comment/Comment.ql linguist-generated @@ -844,6 +846,7 @@ /test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getName.ql linguist-generated +/test/extractor-tests/generated/Function/Function_getParam.ql linguist-generated /test/extractor-tests/generated/Function/Function_getParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getRetType.ql linguist-generated /test/extractor-tests/generated/Function/Function_getVisibility.ql linguist-generated @@ -968,6 +971,7 @@ /test/extractor-tests/generated/Meta/Meta_getPath.ql linguist-generated /test/extractor-tests/generated/Meta/Meta_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql linguist-generated +/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.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 cfa37ed4539..36dd0fb304f 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -722,6 +722,21 @@ module MakeCfgNodes Input> { * Gets the number of attrs of this call expression base. */ int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } + + /** + * Gets the `index`th argument of this call expression base (0-based). + */ + Expr getArg(int index) { result = node.getArg(index) } + + /** + * Gets any of the arguments of this call expression base. + */ + Expr getAnArg() { result = this.getArg(_) } + + /** + * Gets the number of arguments of this call expression base. + */ + int getNumberOfArgs() { result = count(int i | exists(this.getArg(i))) } } final private class ParentCastExpr extends ParentAstNode, CastExpr { diff --git a/rust/ql/lib/codeql/rust/elements/Callable.qll b/rust/ql/lib/codeql/rust/elements/Callable.qll index c42262a1854..11d029fff7d 100644 --- a/rust/ql/lib/codeql/rust/elements/Callable.qll +++ b/rust/ql/lib/codeql/rust/elements/Callable.qll @@ -6,6 +6,7 @@ private import internal.CallableImpl import codeql.rust.elements.AstNode import codeql.rust.elements.Attr +import codeql.rust.elements.Param import codeql.rust.elements.ParamList /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll index c916b717bf6..b78720b08fa 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll @@ -28,5 +28,7 @@ module Impl { class CallExprBase extends Generated::CallExprBase { /** Gets the static target of this call, if any. */ Callable getStaticTarget() { none() } // overridden by subclasses, but cannot be made abstract + + override Expr getArg(int index) { result = this.getArgList().getArg(index) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll index d604b4d239f..c2a6efb40ab 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll @@ -1,4 +1,3 @@ -// generated by codegen, remove this comment if you wish to edit this file /** * This module provides a hand-modifiable wrapper around the generated class `Callable`. * @@ -15,5 +14,7 @@ module Impl { /** * A callable. Either a `Function` or a `ClosureExpr`. */ - class Callable extends Generated::Callable { } + class Callable extends Generated::Callable { + override Param getParam(int index) { result = this.getParamList().getParam(index) } + } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll index 046558c356d..1d6364fb94f 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll @@ -8,6 +8,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.ArgList import codeql.rust.elements.Attr +import codeql.rust.elements.Expr import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl /** @@ -55,5 +56,20 @@ module Generated { * Gets the number of attrs of this call expression base. */ final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } + + /** + * Gets the `index`th argument of this call expression base (0-based). + */ + Expr getArg(int index) { none() } + + /** + * Gets any of the arguments of this call expression base. + */ + final Expr getAnArg() { result = this.getArg(_) } + + /** + * Gets the number of arguments of this call expression base. + */ + final int getNumberOfArgs() { result = count(int i | exists(this.getArg(i))) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll index 710cfe2078e..f42f711dcf8 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll @@ -8,6 +8,7 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl import codeql.rust.elements.Attr +import codeql.rust.elements.Param import codeql.rust.elements.ParamList /** @@ -53,5 +54,20 @@ module Generated { * Gets the number of attrs of this callable. */ final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } + + /** + * Gets the `index`th parameter of this callable (0-based). + */ + Param getParam(int index) { none() } + + /** + * Gets any of the parameters of this callable. + */ + final Param getAParam() { result = this.getParam(_) } + + /** + * Gets the number of parameters of this callable. + */ + final int getNumberOfParams() { result = count(int i | exists(this.getParam(i))) } } } diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql index cd043e88d1d..8abf8b2a08e 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql @@ -2,12 +2,13 @@ import codeql.rust.elements import TestUtils -from CallExpr x, string hasArgList, int getNumberOfAttrs, string hasFunction +from CallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, string hasFunction where toBeTested(x) and not x.isUnknown() and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfArgs = x.getNumberOfArgs() and if x.hasFunction() then hasFunction = "yes" else hasFunction = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "hasFunction:", - hasFunction +select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", + getNumberOfArgs, "hasFunction:", hasFunction diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql new file mode 100644 index 00000000000..37483c3e637 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from CallExpr x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql index b4b3dddc679..6a5536c5be1 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql @@ -3,13 +3,15 @@ import codeql.rust.elements import TestUtils from - ClosureExpr x, string hasParamList, int getNumberOfAttrs, string hasBody, string hasClosureBinder, - string isAsync, string isConst, string isGen, string isMove, string isStatic, string hasRetType + ClosureExpr x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, string hasBody, + string hasClosureBinder, string isAsync, string isConst, string isGen, string isMove, + string isStatic, string hasRetType where toBeTested(x) and not x.isUnknown() and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfParams = x.getNumberOfParams() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasClosureBinder() then hasClosureBinder = "yes" else hasClosureBinder = "no") and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and @@ -18,6 +20,7 @@ where (if x.isMove() then isMove = "yes" else isMove = "no") and (if x.isStatic() then isStatic = "yes" else isStatic = "no") and if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" -select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, - "hasClosureBinder:", hasClosureBinder, "isAsync:", isAsync, "isConst:", isConst, "isGen:", isGen, - "isMove:", isMove, "isStatic:", isStatic, "hasRetType:", hasRetType +select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, + "getNumberOfParams:", getNumberOfParams, "hasBody:", hasBody, "hasClosureBinder:", + hasClosureBinder, "isAsync:", isAsync, "isConst:", isConst, "isGen:", isGen, "isMove:", isMove, + "isStatic:", isStatic, "hasRetType:", hasRetType diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql new file mode 100644 index 00000000000..06cef03f206 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from ClosureExpr x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index 3c368187c29..cd9875a2373 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -3,15 +3,17 @@ import codeql.rust.elements import TestUtils from - Function x, string hasParamList, int getNumberOfAttrs, string hasExtendedCanonicalPath, - string hasCrateOrigin, string hasAttributeMacroExpansion, string hasAbi, string hasBody, - string hasGenericParamList, string isAsync, string isConst, string isDefault, string isGen, - string isUnsafe, string hasName, string hasRetType, string hasVisibility, string hasWhereClause + Function x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, + string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, + string hasAbi, string hasBody, string hasGenericParamList, string isAsync, string isConst, + string isDefault, string isGen, string isUnsafe, string hasName, string hasRetType, + string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfParams = x.getNumberOfParams() and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" @@ -36,8 +38,9 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, - "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "hasBody:", hasBody, - "hasGenericParamList:", hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst, - "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, "hasName:", hasName, - "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "getNumberOfParams:", getNumberOfParams, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, + "hasCrateOrigin:", hasCrateOrigin, "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, + "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isAsync:", + isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, + "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, + "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql new file mode 100644 index 00000000000..c936ea99da7 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Function x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql index d0b082f4523..518d3dee36e 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql @@ -3,13 +3,15 @@ import codeql.rust.elements import TestUtils from - MethodCallExpr x, string hasArgList, int getNumberOfAttrs, string hasResolvedPath, - string hasResolvedCrateOrigin, string hasGenericArgList, string hasIdentifier, string hasReceiver + MethodCallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, + string hasResolvedPath, string hasResolvedCrateOrigin, string hasGenericArgList, + string hasIdentifier, string hasReceiver where toBeTested(x) and not x.isUnknown() and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfArgs = x.getNumberOfArgs() and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and ( if x.hasResolvedCrateOrigin() @@ -19,6 +21,7 @@ where (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and if x.hasReceiver() then hasReceiver = "yes" else hasReceiver = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "hasResolvedPath:", - hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, "hasGenericArgList:", - hasGenericArgList, "hasIdentifier:", hasIdentifier, "hasReceiver:", hasReceiver +select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", + getNumberOfArgs, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", + hasResolvedCrateOrigin, "hasGenericArgList:", hasGenericArgList, "hasIdentifier:", hasIdentifier, + "hasReceiver:", hasReceiver diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql new file mode 100644 index 00000000000..58529cebfe5 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from MethodCallExpr x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getArg(index) diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index c6ab581d7ca..1311522fca0 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -226,6 +226,7 @@ class CallExprBase(Expr): """ arg_list: optional["ArgList"] | child attrs: list["Attr"] | child + args: list["Expr"] | synth @annotate(CallExpr, replace_bases={Expr: CallExprBase}, cfg=True) diff --git a/rust/schema/prelude.py b/rust/schema/prelude.py index 6d356567d22..62334b2d864 100644 --- a/rust/schema/prelude.py +++ b/rust/schema/prelude.py @@ -73,6 +73,7 @@ class Callable(AstNode): """ param_list: optional["ParamList"] | child attrs: list["Attr"] | child + params: list["Param"] | synth class Addressable(AstNode): From f3e4f94e81ece832577bd0426c9753e98464005f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 6 Jun 2025 16:19:20 +0200 Subject: [PATCH 027/340] Rust: add documentation --- .../analyzing-data-flow-in-rust.rst | 300 ++++++++++++++++++ .../codeql-for-rust.rst | 16 + .../codeql-library-for-rust.rst | 62 ++++ docs/codeql/codeql-language-guides/index.rst | 1 + docs/codeql/codeql-overview/codeql-tools.rst | 2 + .../codeql/query-help/codeql-cwe-coverage.rst | 2 +- docs/codeql/query-help/index.rst | 2 + docs/codeql/query-help/rust-cwe.md | 7 + docs/codeql/query-help/rust.rst | 8 + docs/codeql/reusables/extractors.rst | 8 +- .../codeql/reusables/rust-further-reading.rst | 2 + .../about-codeql-queries.rst | 1 + docs/query-metadata-style-guide.md | 5 +- 13 files changed, 410 insertions(+), 6 deletions(-) create mode 100644 docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst create mode 100644 docs/codeql/codeql-language-guides/codeql-for-rust.rst create mode 100644 docs/codeql/codeql-language-guides/codeql-library-for-rust.rst create mode 100644 docs/codeql/query-help/rust-cwe.md create mode 100644 docs/codeql/query-help/rust.rst create mode 100644 docs/codeql/reusables/rust-further-reading.rst diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst new file mode 100644 index 00000000000..3f6a18e4283 --- /dev/null +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -0,0 +1,300 @@ +.. _analyzing-data-flow-in-rust: + +Analyzing data flow in Rust +============================= + +You can use CodeQL to track the flow of data through a Rust program to places where the data is used. + +About this article +------------------ + +This article describes how data flow analysis is implemented in the CodeQL libraries for Rust and includes examples to help you write your own data flow queries. +The following sections describe how to use the libraries for local data flow, global data flow, and taint tracking. +For a more general introduction to modeling data flow, see ":ref:`About data flow analysis `." + +.. include:: ../reusables/new-data-flow-api.rst + +Local data flow +--------------- + +Local data flow tracks the flow of data within a single method or callable. Local data flow is easier, faster, and more precise than global data flow. Before looking at more complex tracking, you should always consider local tracking because it is sufficient for many queries. + +Using local data flow +~~~~~~~~~~~~~~~~~~~~~ + +You can use the local data flow library by importing the ``codeql.rust.dataflow.DataFlow`` module. The library uses the class ``Node`` to represent any element through which data can flow. +``Node``\ s are divided into expression nodes (``ExprNode``) and parameter nodes (``ParameterNode``). +You can map a data flow ``ParameterNode`` to its corresponding ``Parameter`` AST node using the ``asParameter`` member predicate. +Similarly, you can use the ``asExpr`` member predicate to map a data flow ``ExprNode`` to its corresponding ``ExprCfgNode`` in the control-flow library. + +.. code-block:: ql + + class Node { + /** Gets the expression corresponding to this node, if any. */ + CfgNodes::ExprCfgNode asExpr() { ... } + + /** Gets the parameter corresponding to this node, if any. */ + Parameter asParameter() { ... } + + ... + } + +You can use the predicates ``exprNode`` and ``parameterNode`` to map from expressions and parameters to their data-flow node: + +.. code-block:: ql + + /** + * Gets a node corresponding to expression `e`. + */ + ExprNode exprNode(CfgNodes::ExprCfgNode e) { ... } + + /** + * Gets the node corresponding to the value of parameter `p` at function entry. + */ + ParameterNode parameterNode(Parameter p) { ... } + +Note that since ``asExpr`` and ``exprNode`` map between data-flow and control-flow nodes, you then need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node, +for example, by writing ``node.asExpr().getExpr()``. +A control-flow graph considers every way control can flow through code, consequently, there can be multiple data-flow and control-flow nodes associated with a single expression node in the AST. + +The predicate ``localFlowStep(Node nodeFrom, Node nodeTo)`` holds if there is an immediate data flow edge from the node ``nodeFrom`` to the node ``nodeTo``. +You can apply the predicate recursively, by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localFlow``. + +For example, you can find flow from an expression ``source`` to an expression ``sink`` in zero or more local steps: + +.. code-block:: ql + + DataFlow::localFlow(source, sink) + +Using local taint tracking +~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Local taint tracking extends local data flow to include flow steps where values are not preserved, for example, string manipulation. +For example: + +.. code-block:: rust + + let y: String = "Hello ".to_owned() + x + +If ``x`` is a tainted string then ``y`` is also tainted. + +The local taint tracking library is in the module ``TaintTracking``. +Like local data flow, a predicate ``localTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo)`` holds if there is an immediate taint propagation edge from the node ``nodeFrom`` to the node ``nodeTo``. +You can apply the predicate recursively, by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localTaint``. + +For example, you can find taint propagation from an expression ``source`` to an expression ``sink`` in zero or more local steps: + +.. code-block:: ql + + TaintTracking::localTaint(source, sink) + + +Using local sources +~~~~~~~~~~~~~~~~~~~ + +When exploring local data flow or taint propagation between two expressions as above, you would normally constrain the expressions to be relevant to your investigation. +The next section gives some concrete examples, but first it's helpful to introduce the concept of a local source. + +A local source is a data-flow node with no local data flow into it. +As such, it is a local origin of data flow, a place where a new value is created. +This includes parameters (which only receive values from global data flow) and most expressions (because they are not value-preserving). +The class ``LocalSourceNode`` represents data-flow nodes that are also local sources. +It comes with a useful member predicate ``flowsTo(DataFlow::Node node)``, which holds if there is local data flow from the local source to ``node``. + +Examples of local data flow +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This query finds the argument passed in each call to ``File::create``: + +.. code-block:: ql + + import rust + + from CallExpr call + where call.getStaticTarget().(Function).getCanonicalPath() = "::create" + select call.getArg(0) + +Unfortunately this will only give the expression in the argument, not the values which could be passed to it. +So we use local data flow to find all expressions that flow into the argument: + +.. code-block:: ql + + import rust + import codeql.rust.dataflow.DataFlow + + from CallExpr call, DataFlow::ExprNode source, DataFlow::ExprNode sink + where + call.getStaticTarget().(Function).getCanonicalPath() = "::create" and + sink.asExpr().getExpr() = call.getArg(0) and + DataFlow::localFlow(source, sink) + select source, sink + +We can vary the source, for example, making the source the parameter of a function rather than an expression. The following query finds where a parameter is used for the file creation: + +.. code-block:: ql + + import rust + import codeql.rust.dataflow.DataFlow + + from CallExpr call, Method method, ParamDecl sourceParam, Expr sinkExpr + where + call.getStaticTarget() = method and + method.hasQualifiedName("String", "init(format:_:)") and + sinkExpr = call.getArgument(0).getExpr() and + DataFlow::localFlow(DataFlow::parameterNode(sourceParam), DataFlow::exprNode(sinkExpr)) + select sourceParam, sinkExpr + +The following example finds calls to ``String.init(format:_:)`` where the format string is not a hard-coded string literal: + +.. code-block:: ql + + import rust + import codeql.rust.dataflow.DataFlow + + from CallExpr call, Method method, DataFlow::Node sinkNode + where + call.getStaticTarget() = method and + method.hasQualifiedName("String", "init(format:_:)") and + sinkNode.asExpr() = call.getArgument(0).getExpr() and + not exists(StringLiteralExpr sourceLiteral | + DataFlow::localFlow(DataFlow::exprNode(sourceLiteral), sinkNode) + ) + select call, "Format argument to " + method.getName() + " isn't hard-coded." + +Global data flow +---------------- + +Global data flow tracks data flow throughout the entire program, and is therefore more powerful than local data flow. +However, global data flow is less precise than local data flow, and the analysis typically requires significantly more time and memory to perform. + +.. pull-quote:: Note + + .. include:: ../reusables/path-problem.rst + +Using global data flow +~~~~~~~~~~~~~~~~~~~~~~ + +We can use the global data flow library by implementing the signature ``DataFlow::ConfigSig`` and applying the module ``DataFlow::Global``: + +.. code-block:: ql + + import codeql.rust.dataflow.DataFlow + + module MyDataFlowConfiguration implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node source) { + ... + } + + predicate isSink(DataFlow::Node sink) { + ... + } + } + + module MyDataFlow = DataFlow::Global; + +These predicates are defined in the configuration: + +- ``isSource`` - defines where data may flow from. +- ``isSink`` - defines where data may flow to. +- ``isBarrier`` - optional, defines where data flow is blocked. +- ``isAdditionalFlowStep`` - optional, adds additional flow steps. + +The last line (``module MyDataFlow = ...``) instantiates the parameterized module for data flow analysis by passing the configuration to the parameterized module. Data flow analysis can then be performed using ``MyDataFlow::flow(DataFlow::Node source, DataFlow::Node sink)``: + +.. code-block:: ql + + from DataFlow::Node source, DataFlow::Node sink + where MyDataFlow::flow(source, sink) + select source, "Dataflow to $@.", sink, sink.toString() + +Using global taint tracking +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Global taint tracking is to global data flow what local taint tracking is to local data flow. +That is, global taint tracking extends global data flow with additional non-value-preserving steps. +The global taint tracking library uses the same configuration module as the global data flow library. You can perform taint flow analysis using ``TaintTracking::Global``: + +.. code-block:: ql + + module MyTaintFlow = TaintTracking::Global; + + from DataFlow::Node source, DataFlow::Node sink + where MyTaintFlow::flow(source, sink) + select source, "Taint flow to $@.", sink, sink.toString() + +Predefined sources +~~~~~~~~~~~~~~~~~~ + +The data flow library module ``codeql.rust.dataflow.FlowSources`` contains a number of predefined sources that you can use to write security queries to track data flow and taint flow. + +- The class ``RemoteFlowSource`` represents data flow from remote network inputs and from other applications. +- The class ``LocalFlowSource`` represents data flow from local user input. +- The class ``FlowSource`` includes both of the above. + +Examples of global data flow +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The following global taint-tracking query finds places where a string literal is used in a function call argument named "password". + - Since this is a taint-tracking query, the ``TaintTracking::Global`` module is used. + - The ``isSource`` predicate defines sources as any ``StringLiteralExpr``. + - The ``isSink`` predicate defines sinks as arguments to a ``CallExpr`` called "password". + - The sources and sinks may need tuning to a particular use, for example, if passwords are represented by a type other than ``String`` or passed in arguments of a different name than "password". + +.. code-block:: ql + + import rust + import codeql.rust.dataflow.DataFlow + import codeql.rust.dataflow.TaintTracking + + module ConstantPasswordConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node.asExpr() instanceof StringLiteralExpr } + + predicate isSink(DataFlow::Node node) { + // any argument called `password` + exists(CallExpr call | call.getArgumentWithLabel("password").getExpr() = node.asExpr()) + } + + module ConstantPasswordFlow = TaintTracking::Global; + + from DataFlow::Node sourceNode, DataFlow::Node sinkNode + where ConstantPasswordFlow::flow(sourceNode, sinkNode) + select sinkNode, "The value $@ is used as a constant password.", sourceNode, sourceNode.toString() + + +The following global taint-tracking query finds places where a value from a remote or local user input is used as an argument to the SQLite ``Connection.execute(_:)`` function. + - Since this is a taint-tracking query, the ``TaintTracking::Global`` module is used. + - The ``isSource`` predicate defines sources as a ``FlowSource`` (remote or local user input). + - The ``isSink`` predicate defines sinks as the first argument in any call to ``Connection.execute(_:)``. + +.. code-block:: ql + + import rust + import codeql.rust.dataflow.DataFlow + import codeql.rust.dataflow.TaintTracking + import codeql.rust.dataflow.FlowSources + + module SqlInjectionConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node instanceof FlowSource } + + predicate isSink(DataFlow::Node node) { + exists(CallExpr call | + call.getStaticTarget().(Method).hasQualifiedName("Connection", "execute(_:)") and + call.getArgument(0).getExpr() = node.asExpr() + ) + } + } + + module SqlInjectionFlow = TaintTracking::Global; + + from DataFlow::Node sourceNode, DataFlow::Node sinkNode + where SqlInjectionFlow::flow(sourceNode, sinkNode) + select sinkNode, "This query depends on a $@.", sourceNode, "user-provided value" + +Further reading +--------------- + +- `Exploring data flow with path queries `__ in the GitHub documentation. + + +.. include:: ../reusables/rust-further-reading.rst +.. include:: ../reusables/codeql-ref-tools-further-reading.rst diff --git a/docs/codeql/codeql-language-guides/codeql-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-for-rust.rst new file mode 100644 index 00000000000..c8262208cf5 --- /dev/null +++ b/docs/codeql/codeql-language-guides/codeql-for-rust.rst @@ -0,0 +1,16 @@ + +.. _codeql-for-rust: + +CodeQL for Rust +========================= + +Experiment and learn how to write effective and efficient queries for CodeQL databases generated from Rust code. + +.. toctree:: + :hidden: + + codeql-library-for-rust + analyzing-data-flow-in-rust + +- :doc:`CodeQL library for Rust `: When you're analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. +- :doc:`Analyzing data flow in Ruby `: You can use CodeQL to track the flow of data through a Rust program to places where the data is used. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst new file mode 100644 index 00000000000..dd25d769692 --- /dev/null +++ b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst @@ -0,0 +1,62 @@ +.. _codeql-library-for-rust: + +CodeQL library for Rust +================================= + +When you're analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. + +Overview +-------- + +CodeQL ships with a library for analyzing Rust code. The classes in this library present the data from a CodeQL database in an object-oriented form and provide +abstractions and predicates to help you with common analysis tasks. + +The library is implemented as a set of CodeQL modules, that is, files with the extension ``.qll``. The +module `rust.qll `__ imports most other standard library modules, so you can include the complete +library by beginning your query with: + +.. code-block:: ql + + import rust + +The CodeQL libraries model various aspects of Rust code. The above import includes the abstract syntax tree (AST) library, which is used for locating program elements, +to match syntactic elements in the source code. This can be used for example to find values, patterns and structures. + +The control flow graph (CFG) is imported using + +.. code-block:: ql + + import codeql.rust.controlflow.ControlFlowGraph + +The CFG models the control flow between statements and expressions, for example whether one expression can +be evaluated before another expression, or whether an expression "dominates" another one, meaning that all paths to an +expression must flow through another expression first. + +The data flow library is imported using + +.. code-block:: ql + + import codeql.rust.dataflow.DataFlow + +Data flow tracks the flow of data through the program, including through function calls (interprocedural data flow) and between steps in a job or workflow. +Data flow is particularly useful for security queries, where untrusted data flows to vulnerable parts of the program +to exploit it. Related to data flow, is the taint-tracking library, which finds how data can *influence* other values +in a program, even when it is not copied exactly. + +To summarize, the main Rust library modules are: + +.. list-table:: Main Rust library modules + :header-rows: 1 + + * - Import + - Description + * - ``rust`` + - The standard Rust library + * - ``codeql.rust.elements`` + - The abstract syntax tree library (also imported by `rust.qll`) + * - ``codeql.rust.controlflow.ControlFlowGraph`` + - The control flow graph library + * - ``codeql.rust.dataflow.DataFlow`` + - The data flow library + * - ``codeql.rust.dataflow.TaintTracking`` + - The taint tracking library diff --git a/docs/codeql/codeql-language-guides/index.rst b/docs/codeql/codeql-language-guides/index.rst index ca03ebffd75..5ec9a715a4d 100644 --- a/docs/codeql/codeql-language-guides/index.rst +++ b/docs/codeql/codeql-language-guides/index.rst @@ -15,4 +15,5 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat codeql-for-javascript codeql-for-python codeql-for-ruby + codeql-for-rust codeql-for-swift diff --git a/docs/codeql/codeql-overview/codeql-tools.rst b/docs/codeql/codeql-overview/codeql-tools.rst index ada1a75689e..12d13897413 100644 --- a/docs/codeql/codeql-overview/codeql-tools.rst +++ b/docs/codeql/codeql-overview/codeql-tools.rst @@ -39,6 +39,8 @@ maintained by GitHub are: - ``codeql/python-all`` (`changelog `__, `source `__) - ``codeql/ruby-queries`` (`changelog `__, `source `__) - ``codeql/ruby-all`` (`changelog `__, `source `__) +- ``codeql/rust-queries`` (`changelog `__, `source `__) +- ``codeql/rust-all`` (`changelog `__, `source `__) - ``codeql/swift-queries`` (`changelog `__, `source `__) - ``codeql/swift-all`` (`changelog `__, `source `__) diff --git a/docs/codeql/query-help/codeql-cwe-coverage.rst b/docs/codeql/query-help/codeql-cwe-coverage.rst index 6236289a9ab..0c0089a576d 100644 --- a/docs/codeql/query-help/codeql-cwe-coverage.rst +++ b/docs/codeql/query-help/codeql-cwe-coverage.rst @@ -35,5 +35,5 @@ Note that the CWE coverage includes both "`supported queries ` - :doc:`CodeQL query help for Python ` - :doc:`CodeQL query help for Ruby ` +- :doc:`CodeQL query help for Rust ` - :doc:`CodeQL query help for Swift ` .. pull-quote:: Information @@ -37,5 +38,6 @@ For a full list of the CWEs covered by these queries, see ":doc:`CodeQL CWE cove javascript python ruby + rust swift codeql-cwe-coverage diff --git a/docs/codeql/query-help/rust-cwe.md b/docs/codeql/query-help/rust-cwe.md new file mode 100644 index 00000000000..6468ff890ac --- /dev/null +++ b/docs/codeql/query-help/rust-cwe.md @@ -0,0 +1,7 @@ +# CWE coverage for Rust + +An overview of CWE coverage for Rust in the latest release of CodeQL. + +## Overview + + diff --git a/docs/codeql/query-help/rust.rst b/docs/codeql/query-help/rust.rst new file mode 100644 index 00000000000..b430fd3692e --- /dev/null +++ b/docs/codeql/query-help/rust.rst @@ -0,0 +1,8 @@ +CodeQL query help for Rust +============================ + +.. include:: ../reusables/query-help-overview.rst + +These queries are published in the CodeQL query pack ``codeql/rust-queries`` (`changelog `__, `source `__). + +.. include:: toc-rust.rst diff --git a/docs/codeql/reusables/extractors.rst b/docs/codeql/reusables/extractors.rst index 30ccef6e465..c09926666b0 100644 --- a/docs/codeql/reusables/extractors.rst +++ b/docs/codeql/reusables/extractors.rst @@ -6,9 +6,9 @@ - Identifier * - GitHub Actions - ``actions`` - * - C/C++ + * - C/C++ - ``cpp`` - * - C# + * - C# - ``csharp`` * - Go - ``go`` @@ -20,5 +20,7 @@ - ``python`` * - Ruby - ``ruby`` + - Rust + - ``rust`` * - Swift - - ``swift`` \ No newline at end of file + - ``swift`` diff --git a/docs/codeql/reusables/rust-further-reading.rst b/docs/codeql/reusables/rust-further-reading.rst new file mode 100644 index 00000000000..a82dee7f28e --- /dev/null +++ b/docs/codeql/reusables/rust-further-reading.rst @@ -0,0 +1,2 @@ +- `CodeQL queries for Rust `__ +- `CodeQL library reference for Rust `__ diff --git a/docs/codeql/writing-codeql-queries/about-codeql-queries.rst b/docs/codeql/writing-codeql-queries/about-codeql-queries.rst index f4e60b513c9..92e4b963bff 100644 --- a/docs/codeql/writing-codeql-queries/about-codeql-queries.rst +++ b/docs/codeql/writing-codeql-queries/about-codeql-queries.rst @@ -79,6 +79,7 @@ When writing your own alert queries, you would typically import the standard lib - :ref:`CodeQL library guide for JavaScript ` - :ref:`CodeQL library guide for Python ` - :ref:`CodeQL library guide for Ruby ` +- :ref:`CodeQL library guide for Rust ` - :ref:`CodeQL library guide for TypeScript ` There are also libraries containing commonly used predicates, types, and other modules associated with different analyses, including data flow, control flow, and taint-tracking. In order to calculate path graphs, path queries require you to import a data flow library into the query file. For more information, see ":doc:`Creating path queries `." diff --git a/docs/query-metadata-style-guide.md b/docs/query-metadata-style-guide.md index f5f2143d8be..6538d207e6a 100644 --- a/docs/query-metadata-style-guide.md +++ b/docs/query-metadata-style-guide.md @@ -25,6 +25,7 @@ For examples of query files for the languages supported by CodeQL, visit the fol * [JavaScript queries](https://codeql.github.com/codeql-query-help/javascript/) * [Python queries](https://codeql.github.com/codeql-query-help/python/) * [Ruby queries](https://codeql.github.com/codeql-query-help/ruby/) +* [Rust queries](https://codeql.github.com/codeql-query-help/rust/) * [Swift queries](https://codeql.github.com/codeql-query-help/swift/) ## Metadata area @@ -154,7 +155,7 @@ When you tag a query like this, the associated CWE pages from [MITRE.org](https: * `@tags maintainability`–for queries that detect patterns that make it harder for developers to make changes to the code. * `@tags reliability`–for queries that detect issues that affect whether the code will perform as expected during execution. -Software quality doesn't have as universally-agreed categorization method as security issues like CWE, so we will do our own categorization instead of using tags like CWE. +Software quality doesn't have as universally-agreed categorization method as security issues like CWE, so we will do our own categorization instead of using tags like CWE. We'll use two "top-level" categories of quality queries, with sub-categories beneath: @@ -162,7 +163,7 @@ We'll use two "top-level" categories of quality queries, with sub-categories ben * `@tags readability`–for queries that detect confusing patterns that make it harder for developers to read the code. * `@tags useless-code`-for queries that detect functions that are never used and other instances of unused code * `@tags complexity`-for queries that detect patterns in the code that lead to unnecesary complexity such as unclear control flow, or high cyclomatic complexity - + * `@tags reliability`–for queries that detect issues that affect whether the code will perform as expected during execution. * `@tags correctness`–for queries that detect incorrect program behavior or couse result in unintended outcomes. From 9c2fea914ecb595caa59ba6c904fb6e1c2a78ea1 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:30:43 +0200 Subject: [PATCH 028/340] Rust: accept test changes --- .../generated/CallExpr/CallExpr.expected | 8 ++++---- .../generated/CallExpr/CallExpr_getArg.expected | 4 ++++ .../generated/ClosureExpr/ClosureExpr.expected | 10 +++++----- .../ClosureExpr/ClosureExpr_getParam.expected | 6 ++++++ .../generated/Function/Function.expected | 4 ++-- .../generated/Function/Function_getParam.expected | 1 + .../generated/MethodCallExpr/MethodCallExpr.expected | 4 ++-- .../MethodCallExpr/MethodCallExpr_getArg.expected | 2 ++ 8 files changed, 26 insertions(+), 13 deletions(-) create mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected create mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected create mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected create mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected index ebe6eeda104..31824b731a6 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected @@ -1,4 +1,4 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | -| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | -| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | +| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected new file mode 100644 index 00000000000..2bf84953410 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected @@ -0,0 +1,4 @@ +| gen_call_expr.rs:5:5:5:11 | foo(...) | 0 | gen_call_expr.rs:5:9:5:10 | 42 | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | 0 | gen_call_expr.rs:6:21:6:22 | 42 | +| gen_call_expr.rs:7:5:7:14 | ...(...) | 0 | gen_call_expr.rs:7:12:7:13 | 42 | +| gen_call_expr.rs:8:5:8:10 | foo(...) | 0 | gen_call_expr.rs:8:9:8:9 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected index 3ea9f463a00..d8a9b33ce0e 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected @@ -1,5 +1,5 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 2 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected new file mode 100644 index 00000000000..29be6ae9ef0 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected @@ -0,0 +1,6 @@ +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | 0 | gen_closure_expr.rs:5:6:5:6 | ... | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | 0 | gen_closure_expr.rs:6:11:6:16 | ...: i32 | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 0 | gen_closure_expr.rs:7:12:7:17 | ...: i32 | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 1 | gen_closure_expr.rs:7:20:7:20 | ... | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:9:6:9:6 | ... | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:11:14:11:14 | ... | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index d30ef684493..117aad5d293 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,2 +1,2 @@ -| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | -| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected new file mode 100644 index 00000000000..6a7340509a7 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected @@ -0,0 +1 @@ +| gen_function.rs:3:1:4:38 | fn foo | 0 | gen_function.rs:4:8:4:13 | ...: u32 | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected index 5862cd94081..516e47d8b39 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected @@ -1,2 +1,2 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected new file mode 100644 index 00000000000..36af4e22c50 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected @@ -0,0 +1,2 @@ +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | 0 | gen_method_call_expr.rs:5:11:5:12 | 42 | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | 0 | gen_method_call_expr.rs:6:23:6:24 | 42 | From f647b3316634cc841273bdecfeedb664003b9e94 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:31:12 +0200 Subject: [PATCH 029/340] Rust: rerun codegen --- rust/ql/.generated.list | 1 - rust/ql/.gitattributes | 1 - rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll | 1 + 3 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 903f91362d3..d2e2ec8d2d4 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -240,7 +240,6 @@ lib/codeql/rust/elements/internal/BlockExprImpl.qll 36ac09e4a6eeeec22919b62b1d00 lib/codeql/rust/elements/internal/BoxPatConstructor.qll 153f110ba25fd6c889092bfd16f73bb610fa60d6e0c8965d5f44d2446fcd48a2 9324cf0d8aa29945551bf8ab64801d598f57aab8cd4e19bcd4e9ef8a4a4e06eb lib/codeql/rust/elements/internal/BreakExprConstructor.qll 356be043c28e0b34fdf925a119c945632ee883c6f5ebb9a27003c6a8d250afd9 bb77e66b04bb9489340e7506931559b94285c6904b6f9d2f83b214cba4f3cfd5 lib/codeql/rust/elements/internal/CallExprConstructor.qll 742b38e862e2cf82fd1ecc4d4fc5b4782a9c7c07f031452b2bae7aa59d5aa13a cad6e0a8be21d91b20ac2ec16cab9c30eae810b452c0f1992ed87d5c7f4144dc -lib/codeql/rust/elements/internal/CallableImpl.qll 917a7d298583e15246428f32fba4cde6fc57a1790262731be27a96baddd8cf5e c5c0848024e0fe3fbb775e7750cf1a2c2dfa454a5aef0df55fec3d0a6fe99190 lib/codeql/rust/elements/internal/CastExprConstructor.qll f3d6e10c4731f38a384675aeab3fba47d17b9e15648293787092bb3247ed808d d738a7751dbadb70aa1dcffcf8af7fa61d4cf8029798369a7e8620013afff4ed lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll 6e376ab9d40308e95bcdaf1cc892472c92099d477720192cd382d2c4e0d9c8a1 60a0efe50203ad5bb97bdfc06d602182edcc48ac9670f2d27a9675bd9fd8e19f lib/codeql/rust/elements/internal/ClosureBinderImpl.qll 9f6ce7068b5c17df44f00037ebb42e6c8fdbbbd09bf89951221fb04f378fbdf1 6e6e372e151fe0b0f17a5ea0ed774553b6ed0bf53e1d377e5ed24a0f98529735 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 5e1382f75bb..65c3aae0e9e 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -242,7 +242,6 @@ /lib/codeql/rust/elements/internal/BoxPatConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/BreakExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/CallExprConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/CallableImpl.qll linguist-generated /lib/codeql/rust/elements/internal/CastExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ClosureBinderImpl.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll index c2a6efb40ab..37e24a9150c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll @@ -11,6 +11,7 @@ private import codeql.rust.elements.internal.generated.Callable * be referenced directly. */ module Impl { + // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * A callable. Either a `Function` or a `ClosureExpr`. */ From 3fe6ba692a6f3ae79147540503207af0a332f5fc Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:42:28 +0200 Subject: [PATCH 030/340] Revert "Rust: add `Callable::getParam` and `CallExprBase::getArg` shortcuts" This reverts commit c70decbe86fa945a445da1c9b1e7267702cf5b39. --- rust/ql/.generated.list | 22 ++++++++----------- rust/ql/.gitattributes | 4 ---- .../internal/generated/CfgNodes.qll | 15 ------------- rust/ql/lib/codeql/rust/elements/Callable.qll | 1 - .../elements/internal/CallExprBaseImpl.qll | 2 -- .../rust/elements/internal/CallableImpl.qll | 5 ++--- .../internal/generated/CallExprBase.qll | 16 -------------- .../elements/internal/generated/Callable.qll | 16 -------------- .../generated/CallExpr/CallExpr.ql | 7 +++--- .../generated/CallExpr/CallExpr_getArg.ql | 7 ------ .../generated/ClosureExpr/ClosureExpr.ql | 13 +++++------ .../ClosureExpr/ClosureExpr_getParam.ql | 7 ------ .../generated/Function/Function.ql | 21 ++++++++---------- .../generated/Function/Function_getParam.ql | 7 ------ .../MethodCallExpr/MethodCallExpr.ql | 13 +++++------ .../MethodCallExpr/MethodCallExpr_getArg.ql | 7 ------ rust/schema/annotations.py | 1 - rust/schema/prelude.py | 1 - 18 files changed, 33 insertions(+), 132 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index d2e2ec8d2d4..47d78780687 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,4 +1,4 @@ -lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 6a103a6d04c951ca2f0c2989bed737cdbac56dd5ea9432b858da3416412bbf79 cf2bc67b65a1555de58bbd0a35b834b8867112a2f7c1951307c9416400ce70d0 +lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll bd01b4d17625ee8c0da93231cf2291deb7e57db2c8aaa2c37968553c3144c47e 6e6ac58e09b84d02f461699a25ee80798a1bdc51c1836d9d75f5b52e93ae7ba6 lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 @@ -33,7 +33,7 @@ lib/codeql/rust/elements/BoxPat.qll 1b2c3fff171aa6aa238c9460b122f26c79e04577cea6 lib/codeql/rust/elements/BreakExpr.qll 7ca3807a20e9a9a988d1fd7abebf240325ed422fcb45c719ba46272f031f94db dffb7379d3f3ba220acfbd05eb7bb6cfd9cfda211e9c8b1f5240ca5fa61be3fc lib/codeql/rust/elements/CallExpr.qll f336500ca7a611b164d48b90e80edb0c0d3816792b0ececce659ac1ff1ffeb3e f99a9c55466418ef53860c44d9f2d6161af4b492178ddd9e5870dff742b70ae5 lib/codeql/rust/elements/CallExprBase.qll 2846202b5208b541977500286951d96487bf555838c6c16cdd006a71e383745a c789d412bf099c624329379e0c7d94fa0d23ae2edea7a25a2ea0f3c0042ccf62 -lib/codeql/rust/elements/Callable.qll 0f7f78c3bfabbe24962f6232b0440d27e51f06d2b8d341fc623ffbfbff173f47 5fd13aaa0eaf76ea0b47fa0641bd23eea20a069f0b3cbc1ee4e290e88321008a +lib/codeql/rust/elements/Callable.qll e1ed21a7e6bd2426f6ccd0e46cee506d8ebf90a6fdc4dca0979157da439853aa 02f6c09710116ce82157aec9a5ec706983c38e4d85cc631327baf8d409b018c6 lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c73345e8f9bbd41e8c235fec45 c5b4c1e9dc24eb2357799defcb2df25989075e3a80e8663b74204a1c1b70e29a lib/codeql/rust/elements/ClosureBinder.qll 02c8e83bf07deaf7bf0233b76623ec7f1837be8b77fe7e1c23544edc7d85e3c4 2b114d9a6dede694324aebe3dac80a802d139cfacd39beb0f12b5b0a46ee6390 lib/codeql/rust/elements/ClosureExpr.qll 67e2a106e9154c90367b129987e574d2a9ecf5b297536627e43706675d35eaed d6a381132ddd589c5a7ce174f50f9620041ddf690e15a65ebfb05ff7e7c02de7 @@ -491,8 +491,8 @@ lib/codeql/rust/elements/internal/generated/BlockExpr.qll 5a5ddbe34bc478a7bd9b0d lib/codeql/rust/elements/internal/generated/BoxPat.qll 597bed52f7489e0addce3266f7bee5be7c53d2d1263eceec3a252d041ca0908f b8ccf363ca5f1a988547caf1fd266a55aec7cbf8623578deea99765d264b0151 lib/codeql/rust/elements/internal/generated/BreakExpr.qll 0f428a8b2f4209b134c2ffc3e1c93c30bc6b0e9c9172f140cefa88c1f77d8690 957b39f38ff6befe9061f55bc0b403c2f1c366dd0cf63b874bae6f8216576d76 lib/codeql/rust/elements/internal/generated/CallExpr.qll f1b8dae487077cc9d1dccf8c3cd61fd17afe860585f17ce8b860be4859be7ca4 6034fc03778e38802cdf3a6e460364b74e92912622581b31e6179951022bbbd6 -lib/codeql/rust/elements/internal/generated/CallExprBase.qll 2268e01d65015014c05166161bb28e5a1e78164d525ca16fc1e3106866cf231d b2f9b912153ba4d3e3612df4f74ac0e83077c31d5b31383bd277974081417a56 -lib/codeql/rust/elements/internal/generated/Callable.qll 9a8661aa018fd90a21529760c1dbc46c1ad3649e17b030e59ced0683fbf83f8a 8b573adfc23ec0ac91949da415e6a0c988fa02cbce9534d45ac98a5512d7b1ca +lib/codeql/rust/elements/internal/generated/CallExprBase.qll cce796e36847249f416629bacf3ea146313084de3374587412e66c10d2917b83 c219aa2174321c161a4a742ca0605521687ca9a5ca32db453a5c62db6f7784cc +lib/codeql/rust/elements/internal/generated/Callable.qll b0502b5263b7bcd18e740f284f992c0e600e37d68556e3e0ba54a2ac42b94934 bda3e1eea11cacf5a9b932cd72efc2de6105103e8c575880fcd0cd89daadf068 lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298f3461490d25d00af87c876da5ffbc6a11c0832295 f4247307afcd74d80e926f29f8c57e78c50800984483e6b6003a44681e4a71f3 lib/codeql/rust/elements/internal/generated/ClosureBinder.qll ab199df96f525a083a0762fd654cd098802033c79700a593bb204a9a0c69ec01 86b33543e0886715830cfcdaca43b555a242a4f12a4caa18b88732d5afb584bd lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 34149bf82f107591e65738221e1407ec1dc9cc0dfb10ae7f761116fda45162de fd2fbc9a87fc0773c940db64013cf784d5e4137515cc1020e2076da329f5a952 @@ -577,7 +577,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 794df100370be92e8537c2b90431d02558c4eeb783c68ffdc7fc6445629acae2 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 +lib/codeql/rust/elements/internal/generated/ParentChild.qll e2c6aaaa1735113f160c0e178d682bff8e9ebc627632f73c0dd2d1f4f9d692a8 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 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 @@ -729,8 +729,7 @@ test/extractor-tests/generated/BreakExpr/BreakExpr.ql cdde2855d98f658187c60b9edc test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql c7690a9aab1923bf3c2fb06f0a1d441d480b3c91ee1df3a868bbbd96c4042053 c592dd077fb6e22b2d6ddcaec37da2c5a26ba92d84f5d1ae4c78a615b9013765 test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql 0358f4fe6a66da56177703cf0e991042729c5e34ae8b6dccbb827f95fe936c72 1cb2dd778c50e19fe04c5fdf3a08a502635ea8303e71ff38d03aa7dc53213986 test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql ad83cc0db3c0f959fef6bb7ce0938d241a877e8cf84d15fb63879be2fe47238c 240b2fe2156b763d3a82fc64159615872db65b65ffb9ba2f3fd5d1ebd6c60f34 -test/extractor-tests/generated/CallExpr/CallExpr.ql cd38ec018b1afe9ae32ef94feca62295ad37c770c38b48a47bfb09697e7ee531 f6b0f2128cd5e63715f630c581d07b83678c298f7a7c56e38815e0d2c49ee36e -test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql 7d8d53ee4a0642f85d6bbfee6912fead699b5d117534d2b1803a670550894484 1782b33724b72afc9b7d99e3a52cacd4431ce1e12a7e43a7ac9872aad769b4ee +test/extractor-tests/generated/CallExpr/CallExpr.ql ffb0cf1cb359a6dcbdf792a570c281e2d300779dca2dbc0f324990652adb972f 978a9e6c82758f9e8b334a682a02d6b893a6bf1db3cd85e9535839a9696b09b4 test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql b022e7b6b6db9932e787e37b7760c6a09c91140a0368940374a2c919688e0488 c20849c96b53c96f6f717efff5e8b4c0e900c0ef5d715cfbaf7101c7056ad8f4 test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql 1ace458070875b9ff2c671c2ee18392ea7bf6e51b68ee98d412c8606e8eb8d33 4c35da8255d2975cef4adee15623662441bb8f2e1d73582e4c193d1bc11cc1b5 test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql 060a6c8b5b85c839b14fe96f9e50291a7a0e5662a945f4f337070f782ec76715 e9a1e44433936146d87be939aa160848b9a7d7333c36da601fb7d1a66d71eb59 @@ -740,11 +739,10 @@ test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql c37186b8f3e3dab8ae28 test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql ab6b0a61adc404c89c0e2e1962236a8e703fdc5092512bb4a5d9995af8e13c7b 4e7f6b6f58a1ef34ed45e31e35154dd8dc59054ebedcaa87200c84cc727ef1dd test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql 42516df87ac28c814d65f6739b2ede6eaa41c505d64756a3b8c7e0ca79895230 8b840f92ec033a4ef5edbe52bed909d8be0fffddf6d3e4bfaf9a8bc174fa2f2c test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql 71010c43a78a7abe8e63c94353f4b7eb97aca011755d200e7087467c1e3b7a68 2c834328f783ec5032544a692f7e23975bac0228b52b9f8fde46ef46a5f22a5f -test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 4d5f40935d07b0b24d77b93f56e9cea47666c5a3de84744641f9a4cb5d8d1319 b9a235c0a2d6a254d15f1fd1d0c8fdb6a7af51487b3826f26d8ca7a3b6cbc9b2 +test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql f25f9b32e5c0cd61e4b75053a5af4640a08b115ea5a4310ab95df450f6dfe1c4 9b731218857fa16776e29bce084c2ec1526b24e15f46d4f24047917d77d4646a test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql f7f803afa4e2a5976c911fdf8a91ec607c2f998e22531b9c69a63d85579e34c3 1296acd0fb97e1484aa3f1d5ba09d18088001186f3ba5821eb3218a931ca0d54 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql 22a973a61274e87620e38338b29beef395818b95a88e2261fff197f7a78a8f76 bd28ed426e4d07823044db869aa8022dc81e8599d156e3e0e7cd49be914a1f36 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf89b8efb5cb9b7bfbea26b5a78b3d4c7994cbf03d5ca60b61ee1b5cb4be5 621431277732ef79c585cb0b7199c49b14c597ee6b594a70d9e6966a09d40a9f -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql c87b61e80dd62e031e8b310d8a4b781a468ecf2e5e81662be400f18bf33c5862 22abbc976a0e6f33c32c0e93cd0dd567cead13d82d561b9214275ea01b4a0573 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 @@ -834,7 +832,7 @@ test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 27 test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql 634efdffaae4199aa9d95652cf081a8dc26e88224e24678845f8a67dc24ce090 d0302fee5c50403214771d5c6b896ba7c6e52be10c9bea59720ef2bb954e6f40 test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql 0d2140f84d0220b0c72c48c6bd272f4cfe1863d1797eddd16a6e238552a61e4d f4fe9b29697041e30764fa3dea44f125546bfb648f32c3474a1e922a4255c534 test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql 01ef27dd0bfab273e1ddc57ada0e079ece8a2bfd195ce413261006964b444093 acd0161f86010759417015c5b58044467a7f760f288ec4e8525458c54ae9a715 -test/extractor-tests/generated/Function/Function.ql b32c49f4371a51b9c217758fa5da2601d58bcbf3b195e7c8adb76bae5180d315 12e55c66a90ee88207c729736f388866cda13af78ea07a5d4e995c4a58a1e378 +test/extractor-tests/generated/Function/Function.ql 2efae1916e8f501668b3dbb2237cda788243fdd643683eda41b108dfdc578a90 6ec948518963985ec41b66e2b3b2b953e1da872dcd052a6d8c8f61c25bf09600 test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454 test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql 17a346a9e5d28af99522520d1af3852db4cae01fb3d290a65c5f84d8d039c345 36fb06b55370828d9bc379cf5fad7f383cdb6f6db6f7377660276943ab0e1ec8 @@ -843,7 +841,6 @@ test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b38 test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421 test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1 test/extractor-tests/generated/Function/Function_getName.ql 3d9e0518075d161213485389efe0adf8a9e6352dd1c6233ef0403a9abbcc7ed1 841e644ecefff7e9a82f458bcf14d9976d6a6dbe9191755ead88374d7c086375 -test/extractor-tests/generated/Function/Function_getParam.ql ef0b46453512fef08fbcc2a15bc14ae319bbc4810a4e4ce03a5ca3b1e8859ca7 ce36d3974059c1cd63eb1d6b76111985087f40dd4fe0c716a00aa9a178c712c4 test/extractor-tests/generated/Function/Function_getParamList.ql f888802ab00defb58de59cc39d1e0518e3884db7eaf845f39dfa55befdda58b2 ba0d1a07676f1c987b820a3d126a563ecf9a3d53ac1115b87a5af487a8a03c3e test/extractor-tests/generated/Function/Function_getRetType.ql b3a1ab90c8ebf0543e5db6a415896e44a02f984321f49bc409aec2657298942b cdfa37772e5026febb19c9bcd0d325688b0fbf2f6e7bba424b73eca38b9b3e38 test/extractor-tests/generated/Function/Function_getVisibility.ql 490b0a369c809a757d4835b97becf617b0399f16a63a2b06258c9a227d5cc415 25ceff15d3cd03821e1cb2c04cb8894bcd101eeca62b66b54d1751b628107818 @@ -967,8 +964,7 @@ test/extractor-tests/generated/Meta/Meta.ql 16f163f00ba2bbaa0a8c6f3f6710c860a8f6 test/extractor-tests/generated/Meta/Meta_getExpr.ql ec9ec61f5be7d65c32775fb5c068daea04f9db7d875293ed99cc1b2481db041f 77a0c52f1cb6ddc8fdb294d637f9eda1b7301ffa3067f0fca6272d894f57d3ee test/extractor-tests/generated/Meta/Meta_getPath.ql aa9d4145a4e613c51b6e4637d57e3b7d0f66e0bb88f4ce959d598870814c06bb 2087e00686d502c0e2e89c88eae0fb354463576a9ae4101320981d3fd79b9078 test/extractor-tests/generated/Meta/Meta_getTokenTree.ql 1051c27ffd0d9a20436d684fde529b9ff55abe30d50e1d575b0318951e75bd34 983975672d928fb907676628384c949731da9807bf0c781bb7ec749d25733d2d -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 85d3b8c794167f87840469e03d21aa00daf0998c28028f1c8848c7c4bd895db4 fa368ce4543c2544ecd2e636ade8d92849741226599290f59e0138a4a479357c -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql 10a88c3bf63dfb26f43b9cd1ed7fceef0f436ce2eff4b5a816da369bf5b775d2 ee3b5043719591b4048ec32e21bb5fb3a9f83f0420ef18c338fc0ac28d0e3240 +test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql d141f5a2ef95019aa64e8cb384ab4a45e7a93c941b84ef2e14c13377f159e4db 47a68fc874af6cc9a4b278a5aab1633a9db17300fd7dbd6dbe193d48d99144bc test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql 180e0b1715f5cd2be0de01bff3d3a45594b495b8250748d40ff7108d6c85923d bdadcdbecca5891287a47b6dd6b2fda62e07457718aef39212503ab63bc17783 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql 2ce876a04a159efce83b863dffc47fbb714b95daea2b91fa6fbb623d28eed9ec 7bca1cd0e8fbceec0e640afb6800e1780eff5b5b402e71b9b169c0ba26966f96 test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql 655db9a0501b1ef20d604cc4cd9d708371781291443e8dec97b70ec2914601d2 2fc7df0eca22dcef2f9f5c86d37ee43452d372a4c0f9f4da0194828c82ba93e0 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 65c3aae0e9e..61c4fdc57e9 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -732,7 +732,6 @@ /test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated -/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql linguist-generated @@ -746,7 +745,6 @@ /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql linguist-generated /test/extractor-tests/generated/Comment/Comment.ql linguist-generated @@ -845,7 +843,6 @@ /test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getName.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getParam.ql linguist-generated /test/extractor-tests/generated/Function/Function_getParamList.ql linguist-generated /test/extractor-tests/generated/Function/Function_getRetType.ql linguist-generated /test/extractor-tests/generated/Function/Function_getVisibility.ql linguist-generated @@ -970,7 +967,6 @@ /test/extractor-tests/generated/Meta/Meta_getPath.ql linguist-generated /test/extractor-tests/generated/Meta/Meta_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.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 36dd0fb304f..cfa37ed4539 100644 --- a/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll @@ -722,21 +722,6 @@ module MakeCfgNodes Input> { * Gets the number of attrs of this call expression base. */ int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the `index`th argument of this call expression base (0-based). - */ - Expr getArg(int index) { result = node.getArg(index) } - - /** - * Gets any of the arguments of this call expression base. - */ - Expr getAnArg() { result = this.getArg(_) } - - /** - * Gets the number of arguments of this call expression base. - */ - int getNumberOfArgs() { result = count(int i | exists(this.getArg(i))) } } final private class ParentCastExpr extends ParentAstNode, CastExpr { diff --git a/rust/ql/lib/codeql/rust/elements/Callable.qll b/rust/ql/lib/codeql/rust/elements/Callable.qll index 11d029fff7d..c42262a1854 100644 --- a/rust/ql/lib/codeql/rust/elements/Callable.qll +++ b/rust/ql/lib/codeql/rust/elements/Callable.qll @@ -6,7 +6,6 @@ private import internal.CallableImpl import codeql.rust.elements.AstNode import codeql.rust.elements.Attr -import codeql.rust.elements.Param import codeql.rust.elements.ParamList /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll index b78720b08fa..c916b717bf6 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallExprBaseImpl.qll @@ -28,7 +28,5 @@ module Impl { class CallExprBase extends Generated::CallExprBase { /** Gets the static target of this call, if any. */ Callable getStaticTarget() { none() } // overridden by subclasses, but cannot be made abstract - - override Expr getArg(int index) { result = this.getArgList().getArg(index) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll index 37e24a9150c..d10e4caedae 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll @@ -1,3 +1,4 @@ +// generated by codegen, remove this comment if you wish to edit this file /** * This module provides a hand-modifiable wrapper around the generated class `Callable`. * @@ -15,7 +16,5 @@ module Impl { /** * A callable. Either a `Function` or a `ClosureExpr`. */ - class Callable extends Generated::Callable { - override Param getParam(int index) { result = this.getParamList().getParam(index) } - } + class Callable extends Generated::Callable { } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll index 1d6364fb94f..046558c356d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/CallExprBase.qll @@ -8,7 +8,6 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.ArgList import codeql.rust.elements.Attr -import codeql.rust.elements.Expr import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl /** @@ -56,20 +55,5 @@ module Generated { * Gets the number of attrs of this call expression base. */ final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the `index`th argument of this call expression base (0-based). - */ - Expr getArg(int index) { none() } - - /** - * Gets any of the arguments of this call expression base. - */ - final Expr getAnArg() { result = this.getArg(_) } - - /** - * Gets the number of arguments of this call expression base. - */ - final int getNumberOfArgs() { result = count(int i | exists(this.getArg(i))) } } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll index f42f711dcf8..710cfe2078e 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Callable.qll @@ -8,7 +8,6 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AstNodeImpl::Impl as AstNodeImpl import codeql.rust.elements.Attr -import codeql.rust.elements.Param import codeql.rust.elements.ParamList /** @@ -54,20 +53,5 @@ module Generated { * Gets the number of attrs of this callable. */ final int getNumberOfAttrs() { result = count(int i | exists(this.getAttr(i))) } - - /** - * Gets the `index`th parameter of this callable (0-based). - */ - Param getParam(int index) { none() } - - /** - * Gets any of the parameters of this callable. - */ - final Param getAParam() { result = this.getParam(_) } - - /** - * Gets the number of parameters of this callable. - */ - final int getNumberOfParams() { result = count(int i | exists(this.getParam(i))) } } } diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql index 8abf8b2a08e..cd043e88d1d 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql @@ -2,13 +2,12 @@ import codeql.rust.elements import TestUtils -from CallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, string hasFunction +from CallExpr x, string hasArgList, int getNumberOfAttrs, string hasFunction where toBeTested(x) and not x.isUnknown() and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfArgs = x.getNumberOfArgs() and if x.hasFunction() then hasFunction = "yes" else hasFunction = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", - getNumberOfArgs, "hasFunction:", hasFunction +select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "hasFunction:", + hasFunction diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql deleted file mode 100644 index 37483c3e637..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql index 6a5536c5be1..b4b3dddc679 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql @@ -3,15 +3,13 @@ import codeql.rust.elements import TestUtils from - ClosureExpr x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, string hasBody, - string hasClosureBinder, string isAsync, string isConst, string isGen, string isMove, - string isStatic, string hasRetType + ClosureExpr x, string hasParamList, int getNumberOfAttrs, string hasBody, string hasClosureBinder, + string isAsync, string isConst, string isGen, string isMove, string isStatic, string hasRetType where toBeTested(x) and not x.isUnknown() and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfParams = x.getNumberOfParams() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and (if x.hasClosureBinder() then hasClosureBinder = "yes" else hasClosureBinder = "no") and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and @@ -20,7 +18,6 @@ where (if x.isMove() then isMove = "yes" else isMove = "no") and (if x.isStatic() then isStatic = "yes" else isStatic = "no") and if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" -select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, - "getNumberOfParams:", getNumberOfParams, "hasBody:", hasBody, "hasClosureBinder:", - hasClosureBinder, "isAsync:", isAsync, "isConst:", isConst, "isGen:", isGen, "isMove:", isMove, - "isStatic:", isStatic, "hasRetType:", hasRetType +select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, + "hasClosureBinder:", hasClosureBinder, "isAsync:", isAsync, "isConst:", isConst, "isGen:", isGen, + "isMove:", isMove, "isStatic:", isStatic, "hasRetType:", hasRetType diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql deleted file mode 100644 index 06cef03f206..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index cd9875a2373..3c368187c29 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -3,17 +3,15 @@ import codeql.rust.elements import TestUtils from - Function x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, - string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - string hasAbi, string hasBody, string hasGenericParamList, string isAsync, string isConst, - string isDefault, string isGen, string isUnsafe, string hasName, string hasRetType, - string hasVisibility, string hasWhereClause + Function x, string hasParamList, int getNumberOfAttrs, string hasExtendedCanonicalPath, + string hasCrateOrigin, string hasAttributeMacroExpansion, string hasAbi, string hasBody, + string hasGenericParamList, string isAsync, string isConst, string isDefault, string isGen, + string isUnsafe, string hasName, string hasRetType, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfParams = x.getNumberOfParams() and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" @@ -38,9 +36,8 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, - "getNumberOfParams:", getNumberOfParams, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, - "hasCrateOrigin:", hasCrateOrigin, "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, - "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isAsync:", - isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, - "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause + "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "hasBody:", hasBody, + "hasGenericParamList:", hasGenericParamList, "isAsync:", isAsync, "isConst:", isConst, + "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, "hasName:", hasName, + "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql deleted file mode 100644 index c936ea99da7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql index 518d3dee36e..d0b082f4523 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql @@ -3,15 +3,13 @@ import codeql.rust.elements import TestUtils from - MethodCallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, - string hasResolvedPath, string hasResolvedCrateOrigin, string hasGenericArgList, - string hasIdentifier, string hasReceiver + MethodCallExpr x, string hasArgList, int getNumberOfAttrs, string hasResolvedPath, + string hasResolvedCrateOrigin, string hasGenericArgList, string hasIdentifier, string hasReceiver where toBeTested(x) and not x.isUnknown() and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfArgs = x.getNumberOfArgs() and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and ( if x.hasResolvedCrateOrigin() @@ -21,7 +19,6 @@ where (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and if x.hasReceiver() then hasReceiver = "yes" else hasReceiver = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", - getNumberOfArgs, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", - hasResolvedCrateOrigin, "hasGenericArgList:", hasGenericArgList, "hasIdentifier:", hasIdentifier, - "hasReceiver:", hasReceiver +select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "hasResolvedPath:", + hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, "hasGenericArgList:", + hasGenericArgList, "hasIdentifier:", hasIdentifier, "hasReceiver:", hasReceiver diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql deleted file mode 100644 index 58529cebfe5..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index 1311522fca0..c6ab581d7ca 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -226,7 +226,6 @@ class CallExprBase(Expr): """ arg_list: optional["ArgList"] | child attrs: list["Attr"] | child - args: list["Expr"] | synth @annotate(CallExpr, replace_bases={Expr: CallExprBase}, cfg=True) diff --git a/rust/schema/prelude.py b/rust/schema/prelude.py index 62334b2d864..6d356567d22 100644 --- a/rust/schema/prelude.py +++ b/rust/schema/prelude.py @@ -73,7 +73,6 @@ class Callable(AstNode): """ param_list: optional["ParamList"] | child attrs: list["Attr"] | child - params: list["Param"] | synth class Addressable(AstNode): From b6aa6921b3e07724289d0e9fcaea2f7c1472de8f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:43:02 +0200 Subject: [PATCH 031/340] Revert "Rust: accept test changes" This reverts commit 9c2fea914ecb595caa59ba6c904fb6e1c2a78ea1. --- .../generated/CallExpr/CallExpr.expected | 8 ++++---- .../generated/CallExpr/CallExpr_getArg.expected | 4 ---- .../generated/ClosureExpr/ClosureExpr.expected | 10 +++++----- .../ClosureExpr/ClosureExpr_getParam.expected | 6 ------ .../generated/Function/Function.expected | 4 ++-- .../generated/Function/Function_getParam.expected | 1 - .../generated/MethodCallExpr/MethodCallExpr.expected | 4 ++-- .../MethodCallExpr/MethodCallExpr_getArg.expected | 2 -- 8 files changed, 13 insertions(+), 26 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected index 31824b731a6..ebe6eeda104 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected @@ -1,4 +1,4 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | +| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | +| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasFunction: | yes | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected deleted file mode 100644 index 2bf84953410..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | 0 | gen_call_expr.rs:5:9:5:10 | 42 | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | 0 | gen_call_expr.rs:6:21:6:22 | 42 | -| gen_call_expr.rs:7:5:7:14 | ...(...) | 0 | gen_call_expr.rs:7:12:7:13 | 42 | -| gen_call_expr.rs:8:5:8:10 | foo(...) | 0 | gen_call_expr.rs:8:9:8:9 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected index d8a9b33ce0e..3ea9f463a00 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected @@ -1,5 +1,5 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 2 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected deleted file mode 100644 index 29be6ae9ef0..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | 0 | gen_closure_expr.rs:5:6:5:6 | ... | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | 0 | gen_closure_expr.rs:6:11:6:16 | ...: i32 | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 0 | gen_closure_expr.rs:7:12:7:17 | ...: i32 | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 1 | gen_closure_expr.rs:7:20:7:20 | ... | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:9:6:9:6 | ... | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:11:14:11:14 | ... | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index 117aad5d293..d30ef684493 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,2 +1,2 @@ -| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | -| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected deleted file mode 100644 index 6a7340509a7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | 0 | gen_function.rs:4:8:4:13 | ...: u32 | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected index 516e47d8b39..5862cd94081 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected @@ -1,2 +1,2 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected deleted file mode 100644 index 36af4e22c50..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | 0 | gen_method_call_expr.rs:5:11:5:12 | 42 | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | 0 | gen_method_call_expr.rs:6:23:6:24 | 42 | From 02c11b10af88a76615a92ec04d413460ed7c67b9 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:43:35 +0200 Subject: [PATCH 032/340] Revert "Rust: rerun codegen" This reverts commit f647b3316634cc841273bdecfeedb664003b9e94. --- rust/ql/.generated.list | 1 + rust/ql/.gitattributes | 1 + rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll | 1 - 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 47d78780687..eb60dccb3e6 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -240,6 +240,7 @@ lib/codeql/rust/elements/internal/BlockExprImpl.qll 36ac09e4a6eeeec22919b62b1d00 lib/codeql/rust/elements/internal/BoxPatConstructor.qll 153f110ba25fd6c889092bfd16f73bb610fa60d6e0c8965d5f44d2446fcd48a2 9324cf0d8aa29945551bf8ab64801d598f57aab8cd4e19bcd4e9ef8a4a4e06eb lib/codeql/rust/elements/internal/BreakExprConstructor.qll 356be043c28e0b34fdf925a119c945632ee883c6f5ebb9a27003c6a8d250afd9 bb77e66b04bb9489340e7506931559b94285c6904b6f9d2f83b214cba4f3cfd5 lib/codeql/rust/elements/internal/CallExprConstructor.qll 742b38e862e2cf82fd1ecc4d4fc5b4782a9c7c07f031452b2bae7aa59d5aa13a cad6e0a8be21d91b20ac2ec16cab9c30eae810b452c0f1992ed87d5c7f4144dc +lib/codeql/rust/elements/internal/CallableImpl.qll 917a7d298583e15246428f32fba4cde6fc57a1790262731be27a96baddd8cf5e c5c0848024e0fe3fbb775e7750cf1a2c2dfa454a5aef0df55fec3d0a6fe99190 lib/codeql/rust/elements/internal/CastExprConstructor.qll f3d6e10c4731f38a384675aeab3fba47d17b9e15648293787092bb3247ed808d d738a7751dbadb70aa1dcffcf8af7fa61d4cf8029798369a7e8620013afff4ed lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll 6e376ab9d40308e95bcdaf1cc892472c92099d477720192cd382d2c4e0d9c8a1 60a0efe50203ad5bb97bdfc06d602182edcc48ac9670f2d27a9675bd9fd8e19f lib/codeql/rust/elements/internal/ClosureBinderImpl.qll 9f6ce7068b5c17df44f00037ebb42e6c8fdbbbd09bf89951221fb04f378fbdf1 6e6e372e151fe0b0f17a5ea0ed774553b6ed0bf53e1d377e5ed24a0f98529735 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 61c4fdc57e9..3326912c0ca 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -242,6 +242,7 @@ /lib/codeql/rust/elements/internal/BoxPatConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/BreakExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/CallExprConstructor.qll linguist-generated +/lib/codeql/rust/elements/internal/CallableImpl.qll linguist-generated /lib/codeql/rust/elements/internal/CastExprConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ClosureBinderConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ClosureBinderImpl.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll index d10e4caedae..d604b4d239f 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallableImpl.qll @@ -12,7 +12,6 @@ private import codeql.rust.elements.internal.generated.Callable * be referenced directly. */ module Impl { - // the following QLdoc is generated: if you need to edit it, do it in the schema file /** * A callable. Either a `Function` or a `ClosureExpr`. */ From 902a421c23a193007aa8beb175a5570bbb390343 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 10 Jun 2025 09:47:15 +0200 Subject: [PATCH 033/340] Rust: fix docs with `getArgList` and `getParamList` --- .../analyzing-data-flow-in-rust.rst | 92 +++++-------------- 1 file changed, 25 insertions(+), 67 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 3f6a18e4283..42eabf710f0 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -112,7 +112,7 @@ This query finds the argument passed in each call to ``File::create``: from CallExpr call where call.getStaticTarget().(Function).getCanonicalPath() = "::create" - select call.getArg(0) + select call.getArgList().getArg(0) Unfortunately this will only give the expression in the argument, not the values which could be passed to it. So we use local data flow to find all expressions that flow into the argument: @@ -125,7 +125,7 @@ So we use local data flow to find all expressions that flow into the argument: from CallExpr call, DataFlow::ExprNode source, DataFlow::ExprNode sink where call.getStaticTarget().(Function).getCanonicalPath() = "::create" and - sink.asExpr().getExpr() = call.getArg(0) and + sink.asExpr().getExpr() = call.getArgList().getArg(0) and DataFlow::localFlow(source, sink) select source, sink @@ -136,30 +136,12 @@ We can vary the source, for example, making the source the parameter of a functi import rust import codeql.rust.dataflow.DataFlow - from CallExpr call, Method method, ParamDecl sourceParam, Expr sinkExpr + from CallExpr call, DataFlow::ParameterNode source, DataFlow::ExprNode sink where - call.getStaticTarget() = method and - method.hasQualifiedName("String", "init(format:_:)") and - sinkExpr = call.getArgument(0).getExpr() and - DataFlow::localFlow(DataFlow::parameterNode(sourceParam), DataFlow::exprNode(sinkExpr)) - select sourceParam, sinkExpr - -The following example finds calls to ``String.init(format:_:)`` where the format string is not a hard-coded string literal: - -.. code-block:: ql - - import rust - import codeql.rust.dataflow.DataFlow - - from CallExpr call, Method method, DataFlow::Node sinkNode - where - call.getStaticTarget() = method and - method.hasQualifiedName("String", "init(format:_:)") and - sinkNode.asExpr() = call.getArgument(0).getExpr() and - not exists(StringLiteralExpr sourceLiteral | - DataFlow::localFlow(DataFlow::exprNode(sourceLiteral), sinkNode) - ) - select call, "Format argument to " + method.getName() + " isn't hard-coded." + call.getStaticTarget().(Function).getCanonicalPath() = "::create" and + sink.asExpr().getExpr() = call.getArgList().getArg(0) and + DataFlow::localFlow(source, sink) + select source, sink Global data flow ---------------- @@ -242,54 +224,30 @@ The following global taint-tracking query finds places where a string literal is .. code-block:: ql - import rust - import codeql.rust.dataflow.DataFlow - import codeql.rust.dataflow.TaintTracking + import rust + import codeql.rust.dataflow.DataFlow + import codeql.rust.dataflow.TaintTracking - module ConstantPasswordConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node node) { node.asExpr() instanceof StringLiteralExpr } + module ConstantPasswordConfig implements DataFlow::ConfigSig { + predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } - predicate isSink(DataFlow::Node node) { - // any argument called `password` - exists(CallExpr call | call.getArgumentWithLabel("password").getExpr() = node.asExpr()) - } + predicate isSink(DataFlow::Node node) { + // any argument going to a parameter called `password` + exists(Function f, CallExpr call, int index | + call.getArgList().getArg(index) = node.asExpr().getExpr() and + call.getStaticTarget() = f and + f.getParamList().getParam(index).getPat().(IdentPat).getName().getText() = "password" + ) + } + } - module ConstantPasswordFlow = TaintTracking::Global; + module ConstantPasswordFlow = TaintTracking::Global; - from DataFlow::Node sourceNode, DataFlow::Node sinkNode - where ConstantPasswordFlow::flow(sourceNode, sinkNode) - select sinkNode, "The value $@ is used as a constant password.", sourceNode, sourceNode.toString() + from DataFlow::Node sourceNode, DataFlow::Node sinkNode + where ConstantPasswordFlow::flow(sourceNode, sinkNode) + select sinkNode, "The value $@ is used as a constant password.", sourceNode, sourceNode.toString() -The following global taint-tracking query finds places where a value from a remote or local user input is used as an argument to the SQLite ``Connection.execute(_:)`` function. - - Since this is a taint-tracking query, the ``TaintTracking::Global`` module is used. - - The ``isSource`` predicate defines sources as a ``FlowSource`` (remote or local user input). - - The ``isSink`` predicate defines sinks as the first argument in any call to ``Connection.execute(_:)``. - -.. code-block:: ql - - import rust - import codeql.rust.dataflow.DataFlow - import codeql.rust.dataflow.TaintTracking - import codeql.rust.dataflow.FlowSources - - module SqlInjectionConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node node) { node instanceof FlowSource } - - predicate isSink(DataFlow::Node node) { - exists(CallExpr call | - call.getStaticTarget().(Method).hasQualifiedName("Connection", "execute(_:)") and - call.getArgument(0).getExpr() = node.asExpr() - ) - } - } - - module SqlInjectionFlow = TaintTracking::Global; - - from DataFlow::Node sourceNode, DataFlow::Node sinkNode - where SqlInjectionFlow::flow(sourceNode, sinkNode) - select sinkNode, "This query depends on a $@.", sourceNode, "user-provided value" - Further reading --------------- From f08c2fa3875a0898e875dbeac327db690934f07a Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 10 Jun 2025 12:58:16 +0000 Subject: [PATCH 034/340] JavaScript: Move tsconfig files into `extractor.tsconfig` package Also make the indentation in `CompilerOptions.java` more consistent. --- .../js/dependencies/tsconfig/CompilerOptions.java | 13 ------------- .../src/com/semmle/js/extractor/AutoBuild.java | 4 ++-- .../js/extractor/tsconfig/CompilerOptions.java | 13 +++++++++++++ .../tsconfig/TsConfigJson.java | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) delete mode 100644 javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java create mode 100644 javascript/extractor/src/com/semmle/js/extractor/tsconfig/CompilerOptions.java rename javascript/extractor/src/com/semmle/js/{dependencies => extractor}/tsconfig/TsConfigJson.java (85%) diff --git a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java b/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java deleted file mode 100644 index 63bec753ac9..00000000000 --- a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/CompilerOptions.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.semmle.js.dependencies.tsconfig; - -public class CompilerOptions { - private String outDir; - - public String getOutDir() { - return outDir; - } - - public void setOutDir(String outDir) { - this.outDir = outDir; - } -} diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index b8105db6b39..661f315bf4a 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -39,8 +39,8 @@ import java.util.stream.Stream; import com.google.gson.Gson; import com.google.gson.JsonParseException; -import com.semmle.js.dependencies.tsconfig.TsConfigJson; -import com.semmle.js.dependencies.tsconfig.CompilerOptions; +import com.semmle.js.extractor.tsconfig.TsConfigJson; +import com.semmle.js.extractor.tsconfig.CompilerOptions; import com.semmle.js.dependencies.AsyncFetcher; import com.semmle.js.dependencies.DependencyResolver; import com.semmle.js.dependencies.packument.PackageJson; diff --git a/javascript/extractor/src/com/semmle/js/extractor/tsconfig/CompilerOptions.java b/javascript/extractor/src/com/semmle/js/extractor/tsconfig/CompilerOptions.java new file mode 100644 index 00000000000..fa7b664f2eb --- /dev/null +++ b/javascript/extractor/src/com/semmle/js/extractor/tsconfig/CompilerOptions.java @@ -0,0 +1,13 @@ +package com.semmle.js.extractor.tsconfig; + +public class CompilerOptions { + private String outDir; + + public String getOutDir() { + return outDir; + } + + public void setOutDir(String outDir) { + this.outDir = outDir; + } +} diff --git a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java b/javascript/extractor/src/com/semmle/js/extractor/tsconfig/TsConfigJson.java similarity index 85% rename from javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java rename to javascript/extractor/src/com/semmle/js/extractor/tsconfig/TsConfigJson.java index 08dbe663139..9e12d5cc0aa 100644 --- a/javascript/extractor/src/com/semmle/js/dependencies/tsconfig/TsConfigJson.java +++ b/javascript/extractor/src/com/semmle/js/extractor/tsconfig/TsConfigJson.java @@ -1,4 +1,4 @@ -package com.semmle.js.dependencies.tsconfig; +package com.semmle.js.extractor.tsconfig; public class TsConfigJson { private CompilerOptions compilerOptions; From e3d9d92f25d23f5d102e7234be09e1c8cf30b9bd Mon Sep 17 00:00:00 2001 From: Taus Date: Tue, 10 Jun 2025 12:59:03 +0000 Subject: [PATCH 035/340] JavaScript: Fix duplicate comment --- javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java index 661f315bf4a..f96211bd5c4 100644 --- a/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java +++ b/javascript/extractor/src/com/semmle/js/extractor/AutoBuild.java @@ -747,7 +747,7 @@ public class AutoBuild { .filter(p -> !isFileTooLarge(p)) .sorted(PATH_ORDERING) .collect(Collectors.toCollection(() -> new LinkedHashSet<>())); - // exclude files in output directories as configured in tsconfig.json + // gather all output directories specified in tsconfig.json files final List outDirs = new ArrayList<>(); for (Path cfg : tsconfigFiles) { try { From c8a5418969f0e2542de98ae38a2607818b4f2dea Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 11 Jun 2025 12:03:17 +0100 Subject: [PATCH 036/340] Remove trailing spaces and extra blank lines --- docs/query-help-style-guide.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/query-help-style-guide.md b/docs/query-help-style-guide.md index 88b9844fc22..12f1b5c3f10 100644 --- a/docs/query-help-style-guide.md +++ b/docs/query-help-style-guide.md @@ -16,7 +16,7 @@ When you contribute a new [supported query](supported-queries.md) to this reposi ### Location and file name -Query help files must have the same base name as the query they describe and must be located in the same directory. +Query help files must have the same base name as the query they describe and must be located in the same directory. ### File structure and layout @@ -42,7 +42,6 @@ Section-level elements are used to group the information within the query help f For further information about the other section-level, block, list and table elements supported by query help files, see [Query help files](https://codeql.github.com/docs/writing-codeql-queries/query-help-files/) on codeql.github.com. - ## English style You should write the overview and recommendation elements in simple English that is easy to follow. You should: @@ -98,7 +97,6 @@ If you are citing an academic paper, we recommend adopting the reference style o >S. R. Chidamber and C. F. Kemerer, _A metrics suite for object-oriented design_. IEEE Transactions on Software Engineering, 20(6):476-493, 1994. - ### Websites If you are citing a website, please use the following format, without breadcrumb trails: @@ -154,13 +152,13 @@ later. For example, it's easy to see at a glance which part of the code is in th scope of an if statement, and adding more statements to the body of the if statement is less error-prone.

-

You should also ensure that the indentation of the code is consistent with the actual flow of +

You should also ensure that the indentation of the code is consistent with the actual flow of control, so that it does not confuse programmers.

-

In the example below, the original version of Cart is missing braces. This means +

In the example below, the original version of Cart is missing braces. This means that the code triggers a NullPointerException at runtime if i is null.

From 25adcc8f4abe65ef57efafe0b9bf896894260f9d Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 11 Jun 2025 12:10:29 +0100 Subject: [PATCH 037/340] Add Markdown format to guide --- docs/query-help-style-guide.md | 138 +++++++++++++++++++++++++++++---- 1 file changed, 122 insertions(+), 16 deletions(-) diff --git a/docs/query-help-style-guide.md b/docs/query-help-style-guide.md index 12f1b5c3f10..d05abba9404 100644 --- a/docs/query-help-style-guide.md +++ b/docs/query-help-style-guide.md @@ -20,7 +20,23 @@ Query help files must have the same base name as the query they describe and mus ### File structure and layout -Query help files are written using a custom XML format, and stored in a file with a `.qhelp` extension. The basic structure is as follows: +Query help files can be written in either a custom XML format (with a `.qhelp` extension) or in Markdown (with a `.md` extension). Both formats are supported by the CodeQL documentation tooling. + +#### Markdown query help files + +A Markdown query help file should use the following structure and section order: + +1. **Overview** (level 2 heading, `## Overview`) +2. **Recommendation** (level 2 heading, `## Recommendation`) +3. **Example** (level 2 heading, `## Example`) +4. **Implementation notes** (optional, level 2 heading, `## Implementation notes`) +5. **References** (level 2 heading, `## References`) + +Each section should be clearly marked with the appropriate heading. See the other Markdown files in this repository for examples. + +#### XML query help files + +Query help files can also be written using a custom XML format, and stored in a file with a `.qhelp` extension. The basic structure is as follows: ```xml @@ -33,7 +49,7 @@ The header and single top-level `` element are both mandatory. ### Section-level elements -Section-level elements are used to group the information within the query help file. All query help files should include at least the following section elements, in the order specified: +Section-level elements are used to group the information within the query help file. For both Markdown and XML formats, the following sections should be included, in the order specified: 1. `overview`—a short summary of the issue that the query identifies, including an explanation of how it could affect the behavior of the program. 2. `recommendation`—information on how to fix the issue highlighted by the query. @@ -44,7 +60,7 @@ For further information about the other section-level, block, list and table ele ## English style -You should write the overview and recommendation elements in simple English that is easy to follow. You should: +You should write the overview and recommendation sections in simple English that is easy to follow. You should: * Use simple sentence structures and avoid complex or academic language. * Avoid colloquialisms and contractions. @@ -56,10 +72,11 @@ You should write the overview and recommendation elements in simple English that Whenever possible, you should include a code example that helps to explain the issue you are highlighting. Any code examples that you include should adhere to the following guidelines: * The example should be less than 20 lines, but it should still clearly illustrate the issue that the query identifies. If appropriate, then the example may also be runnable. -* Put the code example after the recommendation element where possible. Only include an example in the description element if absolutely necessary. +* Put the code example after the recommendation section where possible. Only include an example in the description section if absolutely necessary. * If you are using an example to illustrate the solution to a problem, and the change required is minor, avoid repeating the whole example. It is preferable to either describe the change required or to include a smaller snippet of the corrected code. * Clearly indicate which of the samples is an example of bad coding practice and which is recommended practice. -* Define the code examples in `src` files. The language is inferred from the file extension: +* For Markdown files, use fenced code blocks with the appropriate language identifier (for example, ```java ). +* For XML files, define the code examples in `src` files. The language is inferred from the file extension: ```xml @@ -73,11 +90,11 @@ Whenever possible, you should include a code example that helps to explain the i ``` -Note, if any code words are included in the `overview` and `recommendation` sections, they should be formatted with ` ... ` for emphasis. +Note, if any code words are included in the `overview` and `recommendation` sections, in Markdown they should be formatted with backticks (`...`) and in XML they should be formatted with` ... ` for emphasis. ## Including references -You should include one or more references, list formatted with `
  • ...
  • ` for each item, to provide further information about the problem that your query is designed to find. References can be of the following types: +You should include one or more references, formatted as an unordered list (`- ...` or `* ...`) in Markdown or with `
  • ...
  • ` for each item in XML, to provide further information about the problem that your query is designed to find. References can be of the following types: ### Books @@ -89,7 +106,7 @@ For example: >W. C. Wake, _Refactoring Workbook_, pp. 93 – 94, Addison-Wesley Professional, 2004. -Note, & symbols need to be replaced by \&. The symbol will be displayed correctly in the HTML files generated from the query help files. +Note, & symbols need to be replaced by \& in XML. The symbol will be displayed correctly in the HTML files generated from the query help files. ### Academic papers @@ -111,26 +128,115 @@ For example: If your query checks code for a CWE weakness, you should use the `@tags` element in the query file to reference the associated CWEs, as explained [here](query-metadata-style-guide.md). When you use these tags, a link to the appropriate entry from the [MITRE.org](https://cwe.mitre.org/scoring/index.html) site will automatically appear as a reference in the output HTML file. -## Validating qhelp files +## Validating query help files -Before making a pull request, please ensure the `.qhelp` files are well-formed and can be generated without errors. This can be done locally with the CodeQL CLI, as shown in the following example: +Before making a pull request, please ensure the `.qhelp` or `.md` files are well-formed and can be generated without errors. This can be done locally with the CodeQL CLI, as shown in the following example: ```bash # codeql generate query-help --format= # For example: codeql generate query-help ./myCustomQuery.qhelp --format=markdown +codeql generate query-help ./myCustomQuery.md --format=markdown ``` +Please include the query help files (and any associated code snippets) in your pull request, but do not commit the generated Markdown. -Please include the `.qhelp` files (and any associated code snippets) in your pull request, but do not commit the generated Markdown. - -More information on how to test your `.qhelp` files can be found [within the documentation](https://docs.github.com/en/code-security/codeql-cli/using-the-codeql-cli/testing-query-help-files) +More information on how to test your query help files can be found [within the documentation](https://docs.github.com/en/code-security/codeql-cli/using-the-codeql-cli/testing-query-help-files) ## Query help example -The following example is a query help file for a query from the standard query suite for Java: +The following example is a query help file for a query from the standard query suite for Java, shown in both Markdown and XML formats. -```xml +### Markdown example + +````markdown +# Overview + +A control structure (an `if` statement or a loop) has a body that is either a block +of statements surrounded by curly braces or a single statement. + +If you omit braces, it is particularly important to ensure that the indentation of the code +matches the control flow of the code. + +## Recommendation + +It is usually considered good practice to include braces for all control +structures in Java. This is because it makes it easier to maintain the code +later. For example, it's easy to see at a glance which part of the code is in the +scope of an `if` statement, and adding more statements to the body of the `if` +statement is less error-prone. + +You should also ensure that the indentation of the code is consistent with the actual flow of +control, so that it does not confuse programmers. + +## Example + +In the example below, the original version of `Cart` is missing braces. This means +that the code triggers a `NullPointerException` at runtime if `i` +is `null`. + +```java +class Cart { + Map items = ... + public void addItem(Item i) { + // No braces and misleading indentation. + if (i != null) + log("Adding item: " + i); + // Indentation suggests that the following statements + // are in the body of the 'if'. + Integer curQuantity = items.get(i.getID()); + if (curQuantity == null) curQuantity = 0; + items.put(i.getID(), curQuantity+1); + } +} +``` + +The corrected version of `Cart` does include braces, so +that the code executes as the indentation suggests. + +```java +class Cart { + Map items = ... + public void addItem(Item i) { + // Braces included. + if (i != null) { + log("Adding item: " + i); + Integer curQuantity = items.get(i.getID()); + if (curQuantity == null) curQuantity = 0; + items.put(i.getID(), curQuantity+1); + } + } +} +``` + +In the following example the indentation may or may not be misleading depending on your tab width +settings. As such, mixing tabs and spaces in this way is not recommended, since what looks fine in +one context can be very misleading in another. + +```java +// Tab width 8 + if (b) // Indentation: 1 tab + f(); // Indentation: 2 tabs + g(); // Indentation: 8 spaces + +// Tab width 4 + if (b) // Indentation: 1 tab + f(); // Indentation: 2 tabs + g(); // Indentation: 8 spaces +``` + +If you mix tabs and spaces in this way, then you might get seemingly false positives, since your +tab width settings cannot be taken into account. + +## References + +* Java SE Documentation: [Compound Statements](https://www.oracle.com/java/technologies/javase/codeconventions-statements.html#15395) +* Wikipedia: [Indentation style](https://en.wikipedia.org/wiki/Indentation_style) +```` + +### XML example + +````xml @@ -196,4 +302,4 @@ tab width settings cannot be taken into account.
    -``` +```` From 7292a76ee485d5a203bd68854403f3bdcf1819f2 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 12 Jun 2025 13:38:48 +0200 Subject: [PATCH 038/340] JS: add test cases for false positives in `loop-iteration-skipped-due-to-shifting` --- ...LoopIterationSkippedDueToShifting.expected | 3 +++ .../LoopIterationSkippedDueToShifting/tst.js | 25 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected index 4b7becd8e16..a11ea4d7d40 100644 --- a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected +++ b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected @@ -1,3 +1,6 @@ | tst.js:4:27:4:44 | parts.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | | tst.js:13:29:13:46 | parts.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | | tst.js:24:9:24:26 | parts.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | +| tst.js:128:11:128:33 | pending ... e(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | +| tst.js:136:32:136:47 | toc.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | +| tst.js:143:10:143:25 | toc.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | diff --git a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js index 68c50516da0..1f23604d76a 100644 --- a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js +++ b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js @@ -121,3 +121,28 @@ function inspectNextElement(string) { } return parts.join('/'); } + +function withTryCatch(pendingCSS) { + for (let i = 0; i < pendingCSS.length; ++i) { + try { + pendingCSS.splice(i, 1); // $ SPURIOUS:Alert + i -= 1; + } catch (ex) {} + } +} + +function andOperand(toc) { + for (let i = 0; i < toc.length; i++) { + toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; // $ SPURIOUS:Alert + } +} + +function ifStatement(toc) { + for (let i = 0; i < toc.length; i++) { + if(toc[i].ignoreSubHeading){ + if(toc.splice(i, 1)){ // $ SPURIOUS:Alert + i--; + } + } + } +} From 66d66fe87d58496354010faf3372792769522ee8 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 12 Jun 2025 14:51:10 +0200 Subject: [PATCH 039/340] JS: fix false positives for splice with conditional index decrement --- .../LoopIterationSkippedDueToShifting.ql | 7 ++++++- .../LoopIterationSkippedDueToShifting.expected | 3 +-- .../LoopIterationSkippedDueToShifting/tst.js | 14 ++++++++++++-- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql b/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql index 08ed9077746..35e632a17fb 100644 --- a/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql +++ b/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql @@ -146,7 +146,12 @@ class ArrayIterationLoop extends ForStmt { or this.hasPathThrough(splice, cfg.getAPredecessor()) and this.getLoopEntry().dominates(cfg.getBasicBlock()) and - not this.hasIndexingManipulation(cfg) + not this.hasIndexingManipulation(cfg) and + // Don't continue through a branch that tests the splice call's return value + not exists(ConditionGuardNode guard | cfg = guard | + guard.getTest() = splice.asExpr() and + guard.getOutcome() = false + ) } } diff --git a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected index a11ea4d7d40..cfe2b5f4f58 100644 --- a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected +++ b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/LoopIterationSkippedDueToShifting.expected @@ -2,5 +2,4 @@ | tst.js:13:29:13:46 | parts.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | | tst.js:24:9:24:26 | parts.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | | tst.js:128:11:128:33 | pending ... e(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | -| tst.js:136:32:136:47 | toc.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | -| tst.js:143:10:143:25 | toc.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | +| tst.js:153:11:153:26 | toc.splice(i, 1) | Removing an array item without adjusting the loop index 'i' causes the subsequent array item to be skipped. | diff --git a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js index 1f23604d76a..01f046d1c1e 100644 --- a/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js +++ b/javascript/ql/test/query-tests/Statements/LoopIterationSkippedDueToShifting/tst.js @@ -133,16 +133,26 @@ function withTryCatch(pendingCSS) { function andOperand(toc) { for (let i = 0; i < toc.length; i++) { - toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; // $ SPURIOUS:Alert + toc[i].ignoreSubHeading && toc.splice(i, 1) && i--; } } function ifStatement(toc) { for (let i = 0; i < toc.length; i++) { if(toc[i].ignoreSubHeading){ - if(toc.splice(i, 1)){ // $ SPURIOUS:Alert + if(toc.splice(i, 1)){ i--; } } } } + +function ifStatement2(toc) { + for (let i = 0; i < toc.length; i++) { + if(toc[i].ignoreSubHeading){ + if(!toc.splice(i, 1)){ // $Alert + i--; + } + } + } +} From 885e8369aa817c115b486e76a0386ddd2f326a80 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 12 Jun 2025 15:18:26 +0200 Subject: [PATCH 040/340] JS: add `quality` and `reliability` tags to `loop-iteration-skipped-due-to-shifting` --- .../query-suite/javascript-code-quality.qls.expected | 1 + .../ql/src/Statements/LoopIterationSkippedDueToShifting.ql | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected index 451a8b4bf27..bbb98b7fa81 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected @@ -5,3 +5,4 @@ ql/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql ql/javascript/ql/src/Quality/UnhandledErrorInStreamPipeline.ql ql/javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.ql ql/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +ql/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql diff --git a/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql b/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql index 35e632a17fb..d36884e15a3 100644 --- a/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql +++ b/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/loop-iteration-skipped-due-to-shifting - * @tags correctness + * @tags quality + * reliability + * correctness * @precision high */ From 10d10286f7d849d4b4ab1a0c64b06808cffabdc1 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 12 Jun 2025 15:23:31 +0200 Subject: [PATCH 041/340] JS: add change notes --- .../ql/src/change-notes/2025-06-12-loop-iteration-fix.md | 4 ++++ javascript/ql/src/change-notes/2025-06-12-loop-iteration.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md create mode 100644 javascript/ql/src/change-notes/2025-06-12-loop-iteration.md diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md new file mode 100644 index 00000000000..c34e91360af --- /dev/null +++ b/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when `splice` is used as a condition that adjusts the loop counter. diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md new file mode 100644 index 00000000000..1458ccdbb8e --- /dev/null +++ b/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The `js/loop-iteration-skipped-due-to-shifting` query has been updated with `reliability` tag. From 7db31b06d14677a2cf1c88b15b2fab60ff19b1bf Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 11 Jun 2025 16:39:39 +0200 Subject: [PATCH 042/340] MaD generator: tweak the scripts * fix a bug where the order of model generation was determined by the order in the `download.json` file of the experiment rather than the order in the config file * allow configuring `--ram` and `--threads` in the MaD generator scripts * use no `--ram` and `--threads=0` by default in the bulk generator (single generator defaults are left unchanged) * allow to pass `--dca` multiple times, taking DBs from experiments listed last. This allows to run a subset of the sources in a "fixup" experiment and use it to "patch" a previous run without rerunning everything. --- .../models-as-data/bulk_generate_mad.py | 88 +++++++++---------- misc/scripts/models-as-data/generate_mad.py | 10 ++- 2 files changed, 51 insertions(+), 47 deletions(-) diff --git a/misc/scripts/models-as-data/bulk_generate_mad.py b/misc/scripts/models-as-data/bulk_generate_mad.py index dfccf087803..a00dc31b05e 100755 --- a/misc/scripts/models-as-data/bulk_generate_mad.py +++ b/misc/scripts/models-as-data/bulk_generate_mad.py @@ -225,7 +225,7 @@ def build_database( return database_dir -def generate_models(config, project: Project, database_dir: str) -> None: +def generate_models(config, args, project: Project, database_dir: str) -> None: """ Generate models for a project. @@ -243,6 +243,8 @@ def generate_models(config, project: Project, database_dir: str) -> None: generator.generateSources = should_generate_sources(project) generator.generateSummaries = should_generate_summaries(project) generator.setenvironment(database=database_dir, folder=name) + generator.threads = args.codeql_threads + generator.ram = args.codeql_ram generator.run() @@ -333,43 +335,44 @@ def pretty_name_from_artifact_name(artifact_name: str) -> str: def download_dca_databases( language: str, - experiment_name: str, + experiment_names: list[str], pat: str, projects: List[Project], ) -> List[tuple[Project, str | None]]: """ Download databases from a DCA experiment. Args: - experiment_name: The name of the DCA experiment to download databases from. + experiment_names: The names of the DCA experiments to download databases from. pat: Personal Access Token for GitHub API authentication. projects: List of projects to download databases for. Returns: List of (project_name, database_dir) pairs, where database_dir is None if the download failed. """ print("\n=== Finding projects ===") - response = get_json_from_github( - f"https://raw.githubusercontent.com/github/codeql-dca-main/data/{experiment_name}/reports/downloads.json", - pat, - ) - targets = response["targets"] project_map = {project["name"]: project for project in projects} analyzed_databases = {} - for data in targets.values(): - downloads = data["downloads"] - analyzed_database = downloads["analyzed_database"] - artifact_name = analyzed_database["artifact_name"] - pretty_name = pretty_name_from_artifact_name(artifact_name) + for experiment_name in experiment_names: + response = get_json_from_github( + f"https://raw.githubusercontent.com/github/codeql-dca-main/data/{experiment_name}/reports/downloads.json", + pat, + ) + targets = response["targets"] + for data in targets.values(): + downloads = data["downloads"] + analyzed_database = downloads["analyzed_database"] + artifact_name = analyzed_database["artifact_name"] + pretty_name = pretty_name_from_artifact_name(artifact_name) - if not pretty_name in project_map: - print(f"Skipping {pretty_name} as it is not in the list of projects") - continue + if not pretty_name in project_map: + print(f"Skipping {pretty_name} as it is not in the list of projects") + continue - if pretty_name in analyzed_databases: - print( - f"Skipping previous database {analyzed_databases[pretty_name]['artifact_name']} for {pretty_name}" - ) + if pretty_name in analyzed_databases: + print( + f"Skipping previous database {analyzed_databases[pretty_name]['artifact_name']} for {pretty_name}" + ) - analyzed_databases[pretty_name] = analyzed_database + analyzed_databases[pretty_name] = analyzed_database def download_and_decompress(analyzed_database: dict) -> str: artifact_name = analyzed_database["artifact_name"] @@ -450,23 +453,6 @@ def main(config, args) -> None: if not os.path.exists(build_dir): os.makedirs(build_dir) - # Check if any of the MaD directories contain working directory changes in git - for project in projects: - mad_dir = get_mad_destination_for_project(config, project["name"]) - if os.path.exists(mad_dir): - git_status_output = subprocess.check_output( - ["git", "status", "-s", mad_dir], text=True - ).strip() - if git_status_output: - print( - f"""ERROR: Working directory changes detected in {mad_dir}. - -Before generating new models, the existing models are deleted. - -To avoid loss of data, please commit your changes.""" - ) - sys.exit(1) - database_results = [] match get_strategy(config): case "repo": @@ -477,8 +463,8 @@ To avoid loss of data, please commit your changes.""" projects, ) case "dca": - experiment_name = args.dca - if experiment_name is None: + experiment_names = args.dca + if experiment_names is None: print("ERROR: --dca argument is required for DCA strategy") sys.exit(1) @@ -492,7 +478,7 @@ To avoid loss of data, please commit your changes.""" pat = f.read().strip() database_results = download_dca_databases( language, - experiment_name, + experiment_names, pat, projects, ) @@ -518,7 +504,7 @@ To avoid loss of data, please commit your changes.""" for project, database_dir in database_results: if database_dir is not None: - generate_models(config, project, database_dir) + generate_models(config, args, project, database_dir) if __name__ == "__main__": @@ -529,14 +515,26 @@ if __name__ == "__main__": parser.add_argument( "--dca", type=str, - help="Name of a DCA run that built all the projects", - required=False, + help="Name of a DCA run that built all the projects. Can be repeated, with sources taken from all provided runs, " + "the last provided ones having priority", + action="append", ) parser.add_argument( "--pat", type=str, help="Path to a file containing the PAT token required to grab DCA databases (the same as the one you use for DCA)", - required=False, + ) + parser.add_argument( + "--codeql-ram", + type=int, + help="What `--ram` value to pass to `codeql` while generating models (by default the flag is not passed)", + default=None, + ) + parser.add_argument( + "--codeql-threads", + type=int, + help="What `--threads` value to pass to `codeql` (default %(default)s)", + default=0, ) args = parser.parse_args() diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index a5f8ffc8fa0..c0d2bdf38f1 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -62,6 +62,8 @@ class Generator: self.generateTypeBasedSummaries = False self.dryRun = False self.dirname = "modelgenerator" + self.ram = 2**15 + self.threads = 8 def setenvironment(self, database, folder): @@ -138,8 +140,12 @@ class Generator: queryFile = os.path.join(self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query) resultBqrs = os.path.join(self.workDir, "out.bqrs") - helpers.run_cmd(['codeql', 'query', 'run', queryFile, '--database', - self.database, '--output', resultBqrs, '--threads', '8', '--ram', '32768'], "Failed to generate " + query) + cmd = ['codeql', 'query', 'run', queryFile, '--database', self.database, '--output', resultBqrs] + if self.threads is not None: + cmd += ["--threads", str(self.threads)] + if self.ram is not None: + cmd += ["--ram", str(self.ram)] + helpers.run_cmd(cmd, "Failed to generate " + query) return helpers.readData(self.workDir, resultBqrs) From 39a3623b18801ff2490efa8003054693ea9bcee7 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 12 Jun 2025 16:48:24 +0200 Subject: [PATCH 043/340] MaD generator: change default thread and ram The standalone MaD generator now uses `0` for threads and throttles the RAM to use 2GB per thread by default. Also, replaced the hand-written argument parsing with `argparse`. --- .../models-as-data/bulk_generate_mad.py | 4 +- misc/scripts/models-as-data/generate_mad.py | 133 +++++++----------- 2 files changed, 49 insertions(+), 88 deletions(-) diff --git a/misc/scripts/models-as-data/bulk_generate_mad.py b/misc/scripts/models-as-data/bulk_generate_mad.py index a00dc31b05e..04baba14485 100755 --- a/misc/scripts/models-as-data/bulk_generate_mad.py +++ b/misc/scripts/models-as-data/bulk_generate_mad.py @@ -242,9 +242,9 @@ def generate_models(config, args, project: Project, database_dir: str) -> None: generator.generateSinks = should_generate_sinks(project) generator.generateSources = should_generate_sources(project) generator.generateSummaries = should_generate_summaries(project) - generator.setenvironment(database=database_dir, folder=name) generator.threads = args.codeql_threads generator.ram = args.codeql_ram + generator.setenvironment(database=database_dir, folder=name) generator.run() @@ -527,7 +527,7 @@ if __name__ == "__main__": parser.add_argument( "--codeql-ram", type=int, - help="What `--ram` value to pass to `codeql` while generating models (by default the flag is not passed)", + help="What `--ram` value to pass to `codeql` while generating models (by default 2048 MB per thread)", default=None, ) parser.add_argument( diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index c0d2bdf38f1..55c7d995b48 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -7,6 +7,7 @@ import subprocess import sys import tempfile import re +import argparse def quote_if_needed(row): if row != "true" and row != "false": @@ -26,112 +27,76 @@ def parseData(data): return rows -def printHelp(): - print(f"""Usage: -python3 generate_mad.py [DIR] --language LANGUAGE [--with-sinks] [--with-sources] [--with-summaries] [--with-neutrals] [--with-typebased-summaries] [--dry-run] - +description = """\ This generates summary, source, sink and neutral models for the code in the database. -The files will be placed in `LANGUAGE/ql/lib/ext/generated/DIR` - -Which models are generated is controlled by the flags: - --with-sinks - --with-sources - --with-summaries - --with-neutrals - --with-typebased-summaries (Experimental) -If none of these flags are specified, all models are generated except for the type based models. - - --dry-run: Only run the queries, but don't write to file. +The files will be placed in `LANGUAGE/ql/lib/ext/generated/DIR`""" +epilog = """\ Example invocations: $ python3 generate_mad.py /tmp/dbs/my_library_db $ python3 generate_mad.py /tmp/dbs/my_library_db --with-sinks $ python3 generate_mad.py /tmp/dbs/my_library_db --with-sinks my_directory - -Requirements: `codeql` should appear on your path. - """) +Requirements: `codeql` should appear on your path.""" class Generator: - def __init__(self, language): + generateSinks = False + generateSources = False + generateSummaries = False + generateNeutrals = False + generateTypeBasedSummaries = False + dryRun = False + dirname = "modelgenerator" + ram = None + threads = 0 + folder = "" + + def __init__(self, language=None): self.language = language - self.generateSinks = False - self.generateSources = False - self.generateSummaries = False - self.generateNeutrals = False - self.generateTypeBasedSummaries = False - self.dryRun = False - self.dirname = "modelgenerator" - self.ram = 2**15 - self.threads = 8 - - def setenvironment(self, database, folder): + def setenvironment(self, database=None, folder=None): self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() - self.database = database + self.database = database or self.database + self.folder = folder or self.folder self.generatedFrameworks = os.path.join( - self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{folder}") + self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{self.folder}") self.workDir = tempfile.mkdtemp() + if self.ram is None: + threads = self.threads if self.threads > 0 else os.cpu_count() + self.ram = 2048 * threads os.makedirs(self.generatedFrameworks, exist_ok=True) @staticmethod def make(): - # Create a generator instance based on command line arguments. - if any(s == "--help" for s in sys.argv): - printHelp() - sys.exit(0) - - if "--language" in sys.argv: - language = sys.argv[sys.argv.index("--language") + 1] - sys.argv.remove("--language") - sys.argv.remove(language) - else: - printHelp() - sys.exit(0) - - generator = Generator(language=language) - - if "--with-sinks" in sys.argv: - sys.argv.remove("--with-sinks") - generator.generateSinks = True - - if "--with-sources" in sys.argv: - sys.argv.remove("--with-sources") - generator.generateSources = True - - if "--with-summaries" in sys.argv: - sys.argv.remove("--with-summaries") - generator.generateSummaries = True - - if "--with-neutrals" in sys.argv: - sys.argv.remove("--with-neutrals") - generator.generateNeutrals = True - - if "--with-typebased-summaries" in sys.argv: - sys.argv.remove("--with-typebased-summaries") - generator.generateTypeBasedSummaries = True - - if "--dry-run" in sys.argv: - sys.argv.remove("--dry-run") - generator.dryRun = True + p = argparse.ArgumentParser( + description=description, + formatter_class=argparse.RawTextHelpFormatter, + epilog=epilog) + p.add_argument("database", help="Path to the CodeQL database") + p.add_argument("folder", nargs="?", default="", help="Optional folder to place the generated files in") + p.add_argument("--language", required=True, help="The language for which to generate models") + p.add_argument("--with-sinks", action="store_true", help="Generate sink models", dest="generateSinks") + p.add_argument("--with-sources", action="store_true", help="Generate source models", dest="generateSources") + p.add_argument("--with-summaries", action="store_true", help="Generate summary models", dest="generateSummaries") + p.add_argument("--with-neutrals", action="store_true", help="Generate neutral models", dest="generateNeutrals") + p.add_argument("--with-typebased-summaries", action="store_true", help="Generate type-based summary models (experimental)", dest="generateTypeBasedSummaries") + p.add_argument("--dry-run", action="store_true", help="Do not write the generated files, just print them to stdout", dest="dryRun") + p.add_argument("--threads", type=int, default=Generator.threads, help="Number of threads to use for CodeQL queries (default %(default)s). `0` means use all available threads.") + p.add_argument("--ram", type=int, help="Amount of RAM to use for CodeQL queries in MB. Default is to use 2048 MB per thread.") + generator = p.parse_args(namespace=Generator()) if (not generator.generateSinks and not generator.generateSources and not generator.generateSummaries and not generator.generateNeutrals and not generator.generateTypeBasedSummaries): - generator.generateSinks = generator.generateSources = generator.generateSummaries = generator.generateNeutrals = True - - n = len(sys.argv) - if n < 2: - printHelp() - sys.exit(1) - elif n == 2: - generator.setenvironment(sys.argv[1], "") - else: - generator.setenvironment(sys.argv[1], sys.argv[2]) + generator.generateSinks = True + generator.generateSources = True + generator.generateSummaries = True + generator.generateNeutrals = True + generator.setenvironment() return generator @@ -140,11 +105,7 @@ class Generator: queryFile = os.path.join(self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query) resultBqrs = os.path.join(self.workDir, "out.bqrs") - cmd = ['codeql', 'query', 'run', queryFile, '--database', self.database, '--output', resultBqrs] - if self.threads is not None: - cmd += ["--threads", str(self.threads)] - if self.ram is not None: - cmd += ["--ram", str(self.ram)] + cmd = ['codeql', 'query', 'run', queryFile, '--database', self.database, '--output', resultBqrs, "--threads", str(self.threads), "--ram", str(self.ram)] helpers.run_cmd(cmd, "Failed to generate " + query) return helpers.readData(self.workDir, resultBqrs) @@ -220,4 +181,4 @@ extensions: self.save(typeBasedContent, ".typebased.model.yml") if __name__ == '__main__': - Generator.make().run() \ No newline at end of file + Generator.make().run() From ae3bbb0a9bb76e8e3f6a36310adcb08a0941792f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 12 Jun 2025 16:52:29 +0200 Subject: [PATCH 044/340] MaD generator: run `black` formatter` --- misc/scripts/models-as-data/generate_mad.py | 171 +++++++++++++++----- 1 file changed, 129 insertions(+), 42 deletions(-) diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index 55c7d995b48..2f2b74cf3f7 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -9,20 +9,22 @@ import tempfile import re import argparse + def quote_if_needed(row): if row != "true" and row != "false": - return "\"" + row + "\"" + return '"' + row + '"' # subtypes column return row[0].upper() + row[1:] + def parseData(data): - rows = { } + rows = {} for row in data: - d = row[0].split(';') + d = row[0].split(";") namespace = d[0] d = map(quote_if_needed, d) - helpers.insert_update(rows, namespace, " - [" + ', '.join(d) + ']\n') + helpers.insert_update(rows, namespace, " - [" + ", ".join(d) + "]\n") return rows @@ -39,6 +41,7 @@ $ python3 generate_mad.py /tmp/dbs/my_library_db --with-sinks my_directory Requirements: `codeql` should appear on your path.""" + class Generator: generateSinks = False generateSources = False @@ -55,42 +58,97 @@ class Generator: self.language = language def setenvironment(self, database=None, folder=None): - self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() + self.codeQlRoot = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) + .decode("utf-8") + .strip() + ) self.database = database or self.database self.folder = folder or self.folder self.generatedFrameworks = os.path.join( - self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{self.folder}") + self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{self.folder}" + ) self.workDir = tempfile.mkdtemp() if self.ram is None: threads = self.threads if self.threads > 0 else os.cpu_count() self.ram = 2048 * threads os.makedirs(self.generatedFrameworks, exist_ok=True) - @staticmethod def make(): p = argparse.ArgumentParser( description=description, formatter_class=argparse.RawTextHelpFormatter, - epilog=epilog) + epilog=epilog, + ) p.add_argument("database", help="Path to the CodeQL database") - p.add_argument("folder", nargs="?", default="", help="Optional folder to place the generated files in") - p.add_argument("--language", required=True, help="The language for which to generate models") - p.add_argument("--with-sinks", action="store_true", help="Generate sink models", dest="generateSinks") - p.add_argument("--with-sources", action="store_true", help="Generate source models", dest="generateSources") - p.add_argument("--with-summaries", action="store_true", help="Generate summary models", dest="generateSummaries") - p.add_argument("--with-neutrals", action="store_true", help="Generate neutral models", dest="generateNeutrals") - p.add_argument("--with-typebased-summaries", action="store_true", help="Generate type-based summary models (experimental)", dest="generateTypeBasedSummaries") - p.add_argument("--dry-run", action="store_true", help="Do not write the generated files, just print them to stdout", dest="dryRun") - p.add_argument("--threads", type=int, default=Generator.threads, help="Number of threads to use for CodeQL queries (default %(default)s). `0` means use all available threads.") - p.add_argument("--ram", type=int, help="Amount of RAM to use for CodeQL queries in MB. Default is to use 2048 MB per thread.") + p.add_argument( + "folder", + nargs="?", + default="", + help="Optional folder to place the generated files in", + ) + p.add_argument( + "--language", + required=True, + help="The language for which to generate models", + ) + p.add_argument( + "--with-sinks", + action="store_true", + help="Generate sink models", + dest="generateSinks", + ) + p.add_argument( + "--with-sources", + action="store_true", + help="Generate source models", + dest="generateSources", + ) + p.add_argument( + "--with-summaries", + action="store_true", + help="Generate summary models", + dest="generateSummaries", + ) + p.add_argument( + "--with-neutrals", + action="store_true", + help="Generate neutral models", + dest="generateNeutrals", + ) + p.add_argument( + "--with-typebased-summaries", + action="store_true", + help="Generate type-based summary models (experimental)", + dest="generateTypeBasedSummaries", + ) + p.add_argument( + "--dry-run", + action="store_true", + help="Do not write the generated files, just print them to stdout", + dest="dryRun", + ) + p.add_argument( + "--threads", + type=int, + default=Generator.threads, + help="Number of threads to use for CodeQL queries (default %(default)s). `0` means use all available threads.", + ) + p.add_argument( + "--ram", + type=int, + help="Amount of RAM to use for CodeQL queries in MB. Default is to use 2048 MB per thread.", + ) generator = p.parse_args(namespace=Generator()) - if (not generator.generateSinks and - not generator.generateSources and - not generator.generateSummaries and - not generator.generateNeutrals and - not generator.generateTypeBasedSummaries): + if ( + not generator.generateSinks + and not generator.generateSources + and not generator.generateSummaries + and not generator.generateNeutrals + and not generator.generateTypeBasedSummaries + ): generator.generateSinks = True generator.generateSources = True generator.generateSummaries = True @@ -99,22 +157,37 @@ class Generator: generator.setenvironment() return generator - def runQuery(self, query): print("########## Querying " + query + "...") - queryFile = os.path.join(self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query) + queryFile = os.path.join( + self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query + ) resultBqrs = os.path.join(self.workDir, "out.bqrs") - cmd = ['codeql', 'query', 'run', queryFile, '--database', self.database, '--output', resultBqrs, "--threads", str(self.threads), "--ram", str(self.ram)] + cmd = [ + "codeql", + "query", + "run", + queryFile, + "--database", + self.database, + "--output", + resultBqrs, + "--threads", + str(self.threads), + "--ram", + str(self.ram), + ] helpers.run_cmd(cmd, "Failed to generate " + query) return helpers.readData(self.workDir, resultBqrs) - def asAddsTo(self, rows, predicate): - extensions = { } + extensions = {} for key in rows: - extensions[key] = helpers.addsToTemplate.format(f"codeql/{self.language}-all", predicate, rows[key]) + extensions[key] = helpers.addsToTemplate.format( + f"codeql/{self.language}-all", predicate, rows[key] + ) return extensions def getAddsTo(self, query, predicate): @@ -125,27 +198,37 @@ class Generator: def makeContent(self): summaryAddsTo = {} if self.generateSummaries: - summaryAddsTo = self.getAddsTo("CaptureSummaryModels.ql", helpers.summaryModelPredicate) + summaryAddsTo = self.getAddsTo( + "CaptureSummaryModels.ql", helpers.summaryModelPredicate + ) sinkAddsTo = {} if self.generateSinks: - sinkAddsTo = self.getAddsTo("CaptureSinkModels.ql", helpers.sinkModelPredicate) + sinkAddsTo = self.getAddsTo( + "CaptureSinkModels.ql", helpers.sinkModelPredicate + ) sourceAddsTo = {} if self.generateSources: - sourceAddsTo = self.getAddsTo("CaptureSourceModels.ql", helpers.sourceModelPredicate) + sourceAddsTo = self.getAddsTo( + "CaptureSourceModels.ql", helpers.sourceModelPredicate + ) neutralAddsTo = {} if self.generateNeutrals: - neutralAddsTo = self.getAddsTo("CaptureNeutralModels.ql", helpers.neutralModelPredicate) + neutralAddsTo = self.getAddsTo( + "CaptureNeutralModels.ql", helpers.neutralModelPredicate + ) return helpers.merge(summaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo) def makeTypeBasedContent(self): if self.generateTypeBasedSummaries: - typeBasedSummaryAddsTo = self.getAddsTo("CaptureTypeBasedSummaryModels.ql", helpers.summaryModelPredicate) + typeBasedSummaryAddsTo = self.getAddsTo( + "CaptureTypeBasedSummaryModels.ql", helpers.summaryModelPredicate + ) else: - typeBasedSummaryAddsTo = { } + typeBasedSummaryAddsTo = {} return typeBasedSummaryAddsTo @@ -156,13 +239,14 @@ extensions: {0}""" for entry in extensions: # Replace problematic characters with dashes, and collapse multiple dashes. - sanitizedEntry = re.sub(r'-+', '-', entry.replace('/', '-').replace(':', '-')) + sanitizedEntry = re.sub( + r"-+", "-", entry.replace("/", "-").replace(":", "-") + ) target = os.path.join(self.generatedFrameworks, sanitizedEntry + extension) with open(target, "w") as f: f.write(extensionTemplate.format(extensions[entry])) print("Models as data extensions written to " + target) - def run(self): content = self.makeContent() typeBasedContent = self.makeTypeBasedContent() @@ -171,14 +255,17 @@ extensions: print("Models as data extensions generated, but not written to file.") sys.exit(0) - if (self.generateSinks or - self.generateSources or - self.generateSummaries or - self.generateNeutrals): + if ( + self.generateSinks + or self.generateSources + or self.generateSummaries + or self.generateNeutrals + ): self.save(content, ".model.yml") if self.generateTypeBasedSummaries: self.save(typeBasedContent, ".typebased.model.yml") -if __name__ == '__main__': + +if __name__ == "__main__": Generator.make().run() From c56a32580d8414cd053c2b0926e3878621c388ec Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 12 Jun 2025 17:35:00 +0200 Subject: [PATCH 045/340] Rust: remove now unneeded `get(Arg|Param)List` in the dataflow guide --- .../analyzing-data-flow-in-rust.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 42eabf710f0..3eab09126f3 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -112,7 +112,7 @@ This query finds the argument passed in each call to ``File::create``: from CallExpr call where call.getStaticTarget().(Function).getCanonicalPath() = "::create" - select call.getArgList().getArg(0) + select call.getArg(0) Unfortunately this will only give the expression in the argument, not the values which could be passed to it. So we use local data flow to find all expressions that flow into the argument: @@ -125,7 +125,7 @@ So we use local data flow to find all expressions that flow into the argument: from CallExpr call, DataFlow::ExprNode source, DataFlow::ExprNode sink where call.getStaticTarget().(Function).getCanonicalPath() = "::create" and - sink.asExpr().getExpr() = call.getArgList().getArg(0) and + sink.asExpr().getExpr() = call.getArg(0) and DataFlow::localFlow(source, sink) select source, sink @@ -139,7 +139,7 @@ We can vary the source, for example, making the source the parameter of a functi from CallExpr call, DataFlow::ParameterNode source, DataFlow::ExprNode sink where call.getStaticTarget().(Function).getCanonicalPath() = "::create" and - sink.asExpr().getExpr() = call.getArgList().getArg(0) and + sink.asExpr().getExpr() = call.getArg(0) and DataFlow::localFlow(source, sink) select source, sink @@ -234,9 +234,9 @@ The following global taint-tracking query finds places where a string literal is predicate isSink(DataFlow::Node node) { // any argument going to a parameter called `password` exists(Function f, CallExpr call, int index | - call.getArgList().getArg(index) = node.asExpr().getExpr() and + call.getArg(index) = node.asExpr().getExpr() and call.getStaticTarget() = f and - f.getParamList().getParam(index).getPat().(IdentPat).getName().getText() = "password" + f.getParam(index).getPat().(IdentPat).getName().getText() = "password" ) } } From 1a36374718548c83806ef0f96717a023ddb70ff3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 13 Jun 2025 08:45:55 +0200 Subject: [PATCH 046/340] MaD generator: really fix ordering problem --- misc/scripts/models-as-data/bulk_generate_mad.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/misc/scripts/models-as-data/bulk_generate_mad.py b/misc/scripts/models-as-data/bulk_generate_mad.py index 475c8e29462..c9218048f1c 100755 --- a/misc/scripts/models-as-data/bulk_generate_mad.py +++ b/misc/scripts/models-as-data/bulk_generate_mad.py @@ -236,7 +236,6 @@ def generate_models(config, args, project: Project, database_dir: str) -> None: language = config["language"] generator = mad.Generator(language) - # Note: The argument parser converts with-sinks to with_sinks, etc. generator.generateSinks = should_generate_sinks(project) generator.generateSources = should_generate_sources(project) generator.generateSummaries = should_generate_summaries(project) @@ -348,7 +347,7 @@ def download_dca_databases( """ print("\n=== Finding projects ===") project_map = {project["name"]: project for project in projects} - analyzed_databases = {} + analyzed_databases = {n: None for n in project_map} for experiment_name in experiment_names: response = get_json_from_github( f"https://raw.githubusercontent.com/github/codeql-dca-main/data/{experiment_name}/reports/downloads.json", @@ -361,17 +360,24 @@ def download_dca_databases( artifact_name = analyzed_database["artifact_name"] pretty_name = pretty_name_from_artifact_name(artifact_name) - if not pretty_name in project_map: + if not pretty_name in analyzed_databases: print(f"Skipping {pretty_name} as it is not in the list of projects") continue - if pretty_name in analyzed_databases: + if analyzed_databases[pretty_name] is not None: print( f"Skipping previous database {analyzed_databases[pretty_name]['artifact_name']} for {pretty_name}" ) analyzed_databases[pretty_name] = analyzed_database + not_found = [name for name, db in analyzed_databases.items() if db is None] + if not_found: + print( + f"ERROR: The following projects were not found in the DCA experiments: {', '.join(not_found)}" + ) + sys.exit(1) + def download_and_decompress(analyzed_database: dict) -> str: artifact_name = analyzed_database["artifact_name"] repository = analyzed_database["repository"] From 5df292c286a3d685eceb60e9ec595fbb118c0035 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 13 Jun 2025 08:47:07 +0200 Subject: [PATCH 047/340] MaD generator: apply black formatting to all sources --- .pre-commit-config.yaml | 2 +- .../models-as-data/convert_extensions.py | 59 +++++++++++++------ misc/scripts/models-as-data/helpers.py | 26 ++++++-- 3 files changed, 63 insertions(+), 24 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index bc07fb78987..d048b40e2c0 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -18,7 +18,7 @@ repos: rev: 25.1.0 hooks: - id: black - files: ^(misc/codegen/.*|misc/scripts/models-as-data/bulk_generate_mad)\.py$ + files: ^(misc/codegen/.*|misc/scripts/models-as-data/.*)\.py$ - repo: local hooks: diff --git a/misc/scripts/models-as-data/convert_extensions.py b/misc/scripts/models-as-data/convert_extensions.py index 28a7b7349bc..01a10dae5ff 100644 --- a/misc/scripts/models-as-data/convert_extensions.py +++ b/misc/scripts/models-as-data/convert_extensions.py @@ -7,65 +7,86 @@ import subprocess import sys import tempfile + def quote_if_needed(v): # string columns if type(v) is str: - return "\"" + v + "\"" + return '"' + v + '"' # bool column return str(v) + def parseData(data): - rows = [{ }, { }] + rows = [{}, {}] for row in data: d = map(quote_if_needed, row) provenance = row[-1] targetRows = rows[1] if provenance.endswith("generated") else rows[0] - helpers.insert_update(targetRows, row[0], " - [" + ', '.join(d) + ']\n') + helpers.insert_update(targetRows, row[0], " - [" + ", ".join(d) + "]\n") return rows + class Converter: def __init__(self, language, dbDir): self.language = language self.dbDir = dbDir - self.codeQlRoot = subprocess.check_output(["git", "rev-parse", "--show-toplevel"]).decode("utf-8").strip() + self.codeQlRoot = ( + subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) + .decode("utf-8") + .strip() + ) self.extDir = os.path.join(self.codeQlRoot, f"{self.language}/ql/lib/ext/") self.dirname = "modelconverter" self.modelFileExtension = ".model.yml" self.workDir = tempfile.mkdtemp() - def runQuery(self, query): - print('########## Querying: ', query) - queryFile = os.path.join(self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query) + print("########## Querying: ", query) + queryFile = os.path.join( + self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query + ) resultBqrs = os.path.join(self.workDir, "out.bqrs") - helpers.run_cmd(['codeql', 'query', 'run', queryFile, '--database', self.dbDir, '--output', resultBqrs], "Failed to generate " + query) + helpers.run_cmd( + [ + "codeql", + "query", + "run", + queryFile, + "--database", + self.dbDir, + "--output", + resultBqrs, + ], + "Failed to generate " + query, + ) return helpers.readData(self.workDir, resultBqrs) - def asAddsTo(self, rows, predicate): - extensions = [{ }, { }] + extensions = [{}, {}] for i in range(2): for key in rows[i]: - extensions[i][key] = helpers.addsToTemplate.format(f"codeql/{self.language}-all", predicate, rows[i][key]) - - return extensions + extensions[i][key] = helpers.addsToTemplate.format( + f"codeql/{self.language}-all", predicate, rows[i][key] + ) + return extensions def getAddsTo(self, query, predicate): data = self.runQuery(query) rows = parseData(data) return self.asAddsTo(rows, predicate) - def makeContent(self): summaries = self.getAddsTo("ExtractSummaries.ql", helpers.summaryModelPredicate) sources = self.getAddsTo("ExtractSources.ql", helpers.sourceModelPredicate) sinks = self.getAddsTo("ExtractSinks.ql", helpers.sinkModelPredicate) neutrals = self.getAddsTo("ExtractNeutrals.ql", helpers.neutralModelPredicate) - return [helpers.merge(sources[0], sinks[0], summaries[0], neutrals[0]), helpers.merge(sources[1], sinks[1], summaries[1], neutrals[1])] - + return [ + helpers.merge(sources[0], sinks[0], summaries[0], neutrals[0]), + helpers.merge(sources[1], sinks[1], summaries[1], neutrals[1]), + ] def save(self, extensions): # Create directory if it doesn't exist @@ -77,9 +98,11 @@ class Converter: for entry in extensions[0]: with open(self.extDir + "/" + entry + self.modelFileExtension, "w") as f: f.write(extensionTemplate.format(extensions[0][entry])) - + for entry in extensions[1]: - with open(self.extDir + "/generated/" + entry + self.modelFileExtension, "w") as f: + with open( + self.extDir + "/generated/" + entry + self.modelFileExtension, "w" + ) as f: f.write(extensionTemplate.format(extensions[1][entry])) def run(self): diff --git a/misc/scripts/models-as-data/helpers.py b/misc/scripts/models-as-data/helpers.py index 49cccb35cb6..f165caf62dc 100644 --- a/misc/scripts/models-as-data/helpers.py +++ b/misc/scripts/models-as-data/helpers.py @@ -14,37 +14,53 @@ addsToTemplate = """ - addsTo: data: {2}""" + def remove_dir(dirName): if os.path.isdir(dirName): shutil.rmtree(dirName) print("Removed directory:", dirName) + def run_cmd(cmd, msg="Failed to run command"): - print('Running ' + ' '.join(cmd)) + print("Running " + " ".join(cmd)) if subprocess.check_call(cmd): print(msg) exit(1) + def readData(workDir, bqrsFile): generatedJson = os.path.join(workDir, "out.json") - print('Decoding BQRS to JSON.') - run_cmd(['codeql', 'bqrs', 'decode', bqrsFile, '--output', generatedJson, '--format=json'], "Failed to decode BQRS.") + print("Decoding BQRS to JSON.") + run_cmd( + [ + "codeql", + "bqrs", + "decode", + bqrsFile, + "--output", + generatedJson, + "--format=json", + ], + "Failed to decode BQRS.", + ) with open(generatedJson) as f: results = json.load(f) try: - return results['#select']['tuples'] + return results["#select"]["tuples"] except KeyError: - print('Unexpected JSON output - no tuples found') + print("Unexpected JSON output - no tuples found") exit(1) + def insert_update(rows, key, value): if key in rows: rows[key] += value else: rows[key] = value + def merge(*dicts): merged = {} for d in dicts: From cae4a0459bd568b1aee54a493c2d743e1d0ce0f9 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 13 Jun 2025 12:38:33 +0200 Subject: [PATCH 048/340] Rust: update `supported-frameworks.rst` --- docs/codeql/reusables/supported-frameworks.rst | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/codeql/reusables/supported-frameworks.rst b/docs/codeql/reusables/supported-frameworks.rst index 115c3326ee1..3d89a663004 100644 --- a/docs/codeql/reusables/supported-frameworks.rst +++ b/docs/codeql/reusables/supported-frameworks.rst @@ -322,7 +322,9 @@ All support is experimental. :align: left Name, Category + `actix-web `__, Web framework alloc, Standard library + `clap `__, Utility library core, Standard library `digest `__, Cryptography library `futures-executor `__, Utility library @@ -331,14 +333,20 @@ All support is experimental. `libc `__, Utility library `log `__, Logging library `md5 `__, Utility library + `memchr `__, Utility library + `once_cell `__, Utility library `poem `__, Web framework `postgres `__, Database proc_macro, Standard library + `rand `__, Utility library `regex `__, Utility library `reqwest `__, HTTP client + `rocket `__, Web framework `rusqlite `__, Database std, Standard library `rust-crypto `__, Cryptography library + `serde `__, Serialization + `smallvec `__, Utility library `sqlx `__, Database `tokio `__, Asynchronous IO `tokio-postgres `__, Database From ad3a5d777dda26abb9ead1930dda575258052387 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 13 Jun 2025 13:03:39 +0200 Subject: [PATCH 049/340] Rust: add public preview change notes --- rust/ql/lib/change-notes/2025-06-13-public-preview.md | 4 ++++ rust/ql/src/change-notes/2025-06-13-public-preview.md | 4 ++++ 2 files changed, 8 insertions(+) create mode 100644 rust/ql/lib/change-notes/2025-06-13-public-preview.md create mode 100644 rust/ql/src/change-notes/2025-06-13-public-preview.md diff --git a/rust/ql/lib/change-notes/2025-06-13-public-preview.md b/rust/ql/lib/change-notes/2025-06-13-public-preview.md new file mode 100644 index 00000000000..d60dc3315b8 --- /dev/null +++ b/rust/ql/lib/change-notes/2025-06-13-public-preview.md @@ -0,0 +1,4 @@ +--- +category: feature +--- +* Initial public preview release. diff --git a/rust/ql/src/change-notes/2025-06-13-public-preview.md b/rust/ql/src/change-notes/2025-06-13-public-preview.md new file mode 100644 index 00000000000..ab2250e3b58 --- /dev/null +++ b/rust/ql/src/change-notes/2025-06-13-public-preview.md @@ -0,0 +1,4 @@ +--- +category: newQuery +--- +* Initial public preview release. From 840ef5ce92030d67c65415053083fefdb1773e91 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 12 Jun 2025 14:14:45 +0100 Subject: [PATCH 050/340] Rust: Add test cases for type inference in loops. --- .../test/library-tests/type-inference/main.rs | 89 +++++++++++ .../type-inference/type-inference.expected | 148 +++++++++++++++++- 2 files changed, 232 insertions(+), 5 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index fa3ca445b6b..0b6666ddedc 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1805,6 +1805,94 @@ mod indexers { } } +mod loops { + struct MyCallable { + } + + impl MyCallable { + fn new() -> Self { + MyCallable {} + } + + fn call(&self) -> i64 { + 1 + } + } + + pub fn f() { + // for loops with arrays + + for i in [1, 2, 3] { } // $ MISSING: type=i:i32 + for i in [1, 2, 3].map(|x| x + 1) { } // $ MISSING: type=i:i32 + for i in [1, 2, 3].into_iter() { } // $ MISSING: type=i:i32 + + let vals1 = [1u8, 2, 3]; // $ MISSING: type=vals1:[u8; 3] + for u in vals1 { } // $ MISSING: type=u:u8 + + let vals2 = [1u16; 3]; // $ MISSING: type=vals2:[u16; 3] + for u in vals2 { } // $ MISSING: type=u:u16 + + let vals3: [u32; 3] = [1, 2, 3]; // $ MISSING: type=vals3:[u32; 3] + for u in vals3 { } // $ MISSING: type=u:u32 + + let vals4: [u64; 3] = [1; 3]; // $ MISSING: type=vals4:[u64; 3] + for u in vals4 { } // $ MISSING: type=u:u64 + + let mut strings1 = ["foo", "bar", "baz"]; // $ MISSING: type=strings1:[&str; 3] + for s in &strings1 { } // $ MISSING: type=s:&str + for s in &mut strings1 { } // $ MISSING: type=s:&str + for s in strings1 { } // $ MISSING: type=s:str + + let strings2 = [String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings2:[String; 3] + for s in strings2 { } // $ MISSING: type=s:String + + let strings3 = &[String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings3:&[String; 3] + for s in strings3 { } // $ MISSING: type=s:String + + let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[MyCallable; 3] + for c in callables { // $ MISSING: type=c:MyCallable + let result = c.call(); // $ MISSING: type=result:i64 method=call + } + + // for loops with ranges + + for i in 0..10 { } // $ MISSING: type=i:i32 + for u in [0u8 .. 10] { } // $ MISSING: type=u:u8 + + let range1 = std::ops::Range { start: 0u16, end: 10u16 }; // $ MISSING: type=range:std::ops::Range + for u in range1 { } // $ MISSING: type=i:u16 + + // for loops with containers + + let vals3 = vec![1, 2, 3]; // MISSING: type=vals:Vec + for i in vals3 { } // $ MISSING: type=i:i32 + + let vals4 : Vec<&u64> = [1u64, 2, 3].iter().collect(); + for u in vals4 { } // $ MISSING: type=u:&u64 + + let matrix1 = vec![vec![1, 2], vec![3, 4]]; // $ MISSING: type=vals5:Vec> + for row in matrix1 { // $ MISSING: type=row:Vec + for cell in row { // $ MISSING: type=cell:i32 + } + } + + let mut map1 = std::collections::HashMap::new(); // $ MISSING: type=map1:std::collections::HashMap<_, _> + map1.insert(1, Box::new("one")); // $ method=insert + map1.insert(2, Box::new("two")); // $ method=insert + for key in map1.keys() { } // $ method=keys MISSING: type=key:i32 + for value in map1.values() { } // $ method=values MISSING: type=value:Box<&str> + for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box<&str> + for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box<&str> + + // while loops + + let mut a: i64 = 0; // $ type=a:i64 + while a < 10 { // $ method=lt MISSING: type=a:i64m + a += 1; // $ type=a:i64 method=add_assign + } + } +} + fn main() { field_access::f(); method_impl::f(); @@ -1827,4 +1915,5 @@ fn main() { async_::f(); impl_trait::f(); indexers::f(); + loops::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 c559584307d..031b6c16178 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2610,9 +2610,147 @@ inferType | main.rs:1804:24:1804:25 | xs | | file://:0:0:0:0 | [] | | main.rs:1804:24:1804:25 | xs | [T;...] | main.rs:1759:5:1760:13 | S | | main.rs:1804:24:1804:25 | xs | [T] | main.rs:1759:5:1760:13 | S | -| main.rs:1810:5:1810:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1811:5:1811:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1811:20:1811:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1811:41:1811:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1827:5:1827:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1813:26:1815:9 | { ... } | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1814:13:1814:25 | MyCallable {...} | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1817:17:1817:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1817:17:1817:21 | SelfParam | &T | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1817:31:1819:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1817:31:1819:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1818:13:1818:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1818:13:1818:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1825:19:1825:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1825:22:1825:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1825:25:1825:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1826:19:1826:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1826:22:1826:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1826:25:1826:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1826:40:1826:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1827:19:1827:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1827:22:1827:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1827:25:1827:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:22:1829:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1829:27:1829:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:30:1829:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1832:22:1832:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1832:28:1832:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1835:13:1835:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1835:13:1835:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1835:26:1835:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1835:31:1835:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1835:31:1835:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1835:32:1835:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1835:35:1835:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1835:38:1835:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1836:18:1836:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1838:13:1838:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1838:13:1838:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1838:26:1838:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1838:31:1838:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:1838:31:1838:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1838:32:1838:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1838:35:1838:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:18:1839:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1839:18:1839:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1841:29:1841:33 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1841:36:1841:40 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1841:43:1841:47 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1842:18:1842:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:1843:18:1843:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:1846:25:1846:43 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1846:38:1846:42 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1846:46:1846:64 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1846:59:1846:63 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1846:67:1846:85 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1846:80:1846:84 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1849:13:1849:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1849:24:1849:87 | &... | | file://:0:0:0:0 | & | +| main.rs:1849:26:1849:44 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1849:39:1849:43 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1849:47:1849:65 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1849:60:1849:64 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1849:68:1849:86 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1849:81:1849:85 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1850:18:1850:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1852:26:1852:42 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1852:45:1852:61 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1852:64:1852:80 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1859:18:1859:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1859:21:1859:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1860:19:1860:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1860:26:1860:27 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1862:13:1862:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1862:13:1862:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1862:22:1862:64 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:1862:22:1862:64 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1862:47:1862:50 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1862:58:1862:62 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1863:18:1863:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1863:18:1863:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1867:26:1867:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:29:1867:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:32:1867:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1870:13:1870:17 | vals4 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1870:13:1870:17 | vals4 | T | file://:0:0:0:0 | & | +| main.rs:1870:13:1870:17 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1870:33:1870:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1870:33:1870:61 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:1870:33:1870:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1870:34:1870:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1870:40:1870:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1870:43:1870:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1871:18:1871:22 | vals4 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1871:18:1871:22 | vals4 | T | file://:0:0:0:0 | & | +| main.rs:1871:18:1871:22 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1873:33:1873:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1873:36:1873:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1873:45:1873:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1873:48:1873:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1879:13:1879:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1879:13:1879:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1879:24:1879:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1879:24:1879:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1880:9:1880:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1880:9:1880:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1880:9:1880:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1880:21:1880:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1880:24:1880:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1880:33:1880:37 | "one" | | {EXTERNAL LOCATION} | str | +| main.rs:1881:9:1881:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1881:9:1881:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1881:9:1881:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1881:21:1881:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:24:1881:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1881:33:1881:37 | "two" | | {EXTERNAL LOCATION} | str | +| main.rs:1882:20:1882:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1882:20:1882:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1882:20:1882:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:1883:22:1883:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1883:22:1883:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1883:22:1883:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:1884:29:1884:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1884:29:1884:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1884:29:1884:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:1885:29:1885:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:1885:29:1885:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:1885:29:1885:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1885:30:1885:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1885:30:1885:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1889:13:1889:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1889:13:1889:17 | mut a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1889:26:1889:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1889:26:1889:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1890:15:1890:15 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1890:15:1890:15 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1890:15:1890:20 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1890:19:1890:20 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1891:13:1891:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1891:13:1891:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1891:13:1891:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1891:18:1891:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1898:5:1898:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1899:5:1899:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1899:20:1899:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1899:41:1899:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1915:5:1915:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From f76b56291b9a8e361e4623418fbc27ee2afe2db6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 12 Jun 2025 17:05:20 +0100 Subject: [PATCH 051/340] Rust: Implement type inference for 'for' loops on arrays. --- .../lib/codeql/rust/internal/TypeInference.qll | 16 ++++++++++++++++ .../ql/test/library-tests/type-inference/main.rs | 4 ++-- .../type-inference/type-inference.expected | 2 ++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 3c36b077b3e..2742af07a7c 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1180,6 +1180,20 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { ) } +pragma[nomagic] +private Type inferForLoopExprType(AstNode n, TypePath path) { + // type of iterable -> type of pattern (loop variable) + exists(ForExpr fe, Type iterableType, TypePath iterablePath | + n = fe.getPat() and + iterableType = inferType(fe.getIterable(), iterablePath) and + ( + iterablePath.isCons(any(ArrayTypeParameter tp), path) and + result = iterableType + // TODO: iterables (containers, ranges etc) + ) + ) +} + private module MethodCall { /** An expression that calls a method. */ abstract private class MethodCallImpl extends Expr { @@ -1541,6 +1555,8 @@ private module Cached { result = inferAwaitExprType(n, path) or result = inferIndexExprType(n, path) + or + result = inferForLoopExprType(n, path) } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 0b6666ddedc..919b001e9d4 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1833,10 +1833,10 @@ mod loops { for u in vals2 { } // $ MISSING: type=u:u16 let vals3: [u32; 3] = [1, 2, 3]; // $ MISSING: type=vals3:[u32; 3] - for u in vals3 { } // $ MISSING: type=u:u32 + for u in vals3 { } // $ type=u:u32 let vals4: [u64; 3] = [1; 3]; // $ MISSING: type=vals4:[u64; 3] - for u in vals4 { } // $ MISSING: type=u:u64 + for u in vals4 { } // $ type=u:u64 let mut strings1 = ["foo", "bar", "baz"]; // $ MISSING: type=strings1:[&str; 3] for s in &strings1 { } // $ MISSING: type=s:&str 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 031b6c16178..a0f5163ba96 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2641,6 +2641,7 @@ inferType | main.rs:1835:32:1835:32 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:35:1835:35 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:38:1835:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1836:13:1836:13 | u | | {EXTERNAL LOCATION} | u32 | | main.rs:1836:18:1836:22 | vals3 | | file://:0:0:0:0 | [] | | main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1838:13:1838:17 | vals4 | | file://:0:0:0:0 | [] | @@ -2650,6 +2651,7 @@ inferType | main.rs:1838:31:1838:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1838:32:1838:32 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1838:35:1838:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:13:1839:13 | u | | {EXTERNAL LOCATION} | u64 | | main.rs:1839:18:1839:22 | vals4 | | file://:0:0:0:0 | [] | | main.rs:1839:18:1839:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1841:29:1841:33 | "foo" | | {EXTERNAL LOCATION} | str | From 51343a5c037f920648274c152ea5d9c3dcf97c85 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:01:59 +0100 Subject: [PATCH 052/340] Rust: Implement type inference for ArrayListExprs. --- .../codeql/rust/internal/TypeInference.qll | 11 ++++++ .../test/library-tests/type-inference/main.rs | 12 +++---- .../type-inference/type-inference.expected | 36 +++++++++++++++++++ 3 files changed, 53 insertions(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 2742af07a7c..7297205a782 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1180,6 +1180,15 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { ) } +pragma[nomagic] +private Type inferArrayListExprType(/*ArrayExpr*/ArrayListExpr ale, TypePath path) { + exists(Type type0, TypePath path0 | + type0 = inferType(ale.getExpr(0), path0) and + result = type0 and + path = TypePath::cons(any(ArrayTypeParameter tp), path0) + ) +} + pragma[nomagic] private Type inferForLoopExprType(AstNode n, TypePath path) { // type of iterable -> type of pattern (loop variable) @@ -1556,6 +1565,8 @@ private module Cached { or result = inferIndexExprType(n, path) or + result = inferArrayListExprType(n, path) + or result = inferForLoopExprType(n, path) } } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 919b001e9d4..cf3d4700d2b 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1822,12 +1822,12 @@ mod loops { pub fn f() { // for loops with arrays - for i in [1, 2, 3] { } // $ MISSING: type=i:i32 + for i in [1, 2, 3] { } // $ type=i:i32 for i in [1, 2, 3].map(|x| x + 1) { } // $ MISSING: type=i:i32 for i in [1, 2, 3].into_iter() { } // $ MISSING: type=i:i32 let vals1 = [1u8, 2, 3]; // $ MISSING: type=vals1:[u8; 3] - for u in vals1 { } // $ MISSING: type=u:u8 + for u in vals1 { } // $ type=u:u8 let vals2 = [1u16; 3]; // $ MISSING: type=vals2:[u16; 3] for u in vals2 { } // $ MISSING: type=u:u16 @@ -1841,17 +1841,17 @@ mod loops { let mut strings1 = ["foo", "bar", "baz"]; // $ MISSING: type=strings1:[&str; 3] for s in &strings1 { } // $ MISSING: type=s:&str for s in &mut strings1 { } // $ MISSING: type=s:&str - for s in strings1 { } // $ MISSING: type=s:str + for s in strings1 { } // $ type=s:str let strings2 = [String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings2:[String; 3] - for s in strings2 { } // $ MISSING: type=s:String + for s in strings2 { } // $ type=s:String let strings3 = &[String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings3:&[String; 3] for s in strings3 { } // $ MISSING: type=s:String let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[MyCallable; 3] - for c in callables { // $ MISSING: type=c:MyCallable - let result = c.call(); // $ MISSING: type=result:i64 method=call + for c in callables { // $ type=c:MyCallable + let result = c.call(); // $ type=result:i64 method=call } // for loops with ranges 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 a0f5163ba96..0b0c3adbeb1 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2618,31 +2618,43 @@ inferType | main.rs:1817:31:1819:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | main.rs:1818:13:1818:13 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1818:13:1818:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1825:13:1825:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:1825:18:1825:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1825:19:1825:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1825:22:1825:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1825:25:1825:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1826:18:1826:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1826:19:1826:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1826:22:1826:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1826:25:1826:25 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1826:40:1826:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1827:18:1827:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1827:19:1827:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1827:22:1827:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1827:25:1827:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:13:1829:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1829:21:1829:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | | main.rs:1829:22:1829:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | | main.rs:1829:27:1829:27 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1829:30:1829:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1830:13:1830:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1830:18:1830:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | | main.rs:1832:22:1832:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | | main.rs:1832:28:1832:28 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:13:1835:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1835:13:1835:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1835:13:1835:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1835:26:1835:26 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:31:1835:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1835:31:1835:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1835:31:1835:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1835:32:1835:32 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:35:1835:35 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:38:1835:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1836:13:1836:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1836:13:1836:13 | u | | {EXTERNAL LOCATION} | u32 | | main.rs:1836:18:1836:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1838:13:1838:17 | vals4 | | file://:0:0:0:0 | [] | | main.rs:1838:13:1838:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | @@ -2654,19 +2666,34 @@ inferType | main.rs:1839:13:1839:13 | u | | {EXTERNAL LOCATION} | u64 | | main.rs:1839:18:1839:22 | vals4 | | file://:0:0:0:0 | [] | | main.rs:1839:18:1839:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1841:13:1841:24 | mut strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1841:28:1841:48 | [...] | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1841:29:1841:33 | "foo" | | {EXTERNAL LOCATION} | str | | main.rs:1841:36:1841:40 | "bar" | | {EXTERNAL LOCATION} | str | | main.rs:1841:43:1841:47 | "baz" | | {EXTERNAL LOCATION} | str | | main.rs:1842:18:1842:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:1842:18:1842:26 | &strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1842:19:1842:26 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1843:18:1843:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:1843:18:1843:30 | &mut strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1843:23:1843:30 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1844:13:1844:13 | s | | {EXTERNAL LOCATION} | str | +| main.rs:1844:18:1844:25 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1846:13:1846:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1846:24:1846:86 | [...] | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1846:25:1846:43 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1846:38:1846:42 | "foo" | | {EXTERNAL LOCATION} | str | | main.rs:1846:46:1846:64 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1846:59:1846:63 | "bar" | | {EXTERNAL LOCATION} | str | | main.rs:1846:67:1846:85 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1846:80:1846:84 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1847:13:1847:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:1847:18:1847:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1849:13:1849:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1849:13:1849:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | | main.rs:1849:24:1849:87 | &... | | file://:0:0:0:0 | & | +| main.rs:1849:24:1849:87 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1849:25:1849:87 | [...] | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1849:26:1849:44 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1849:39:1849:43 | "foo" | | {EXTERNAL LOCATION} | str | | main.rs:1849:47:1849:65 | ...::from(...) | | {EXTERNAL LOCATION} | String | @@ -2674,9 +2701,17 @@ inferType | main.rs:1849:68:1849:86 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1849:81:1849:85 | "baz" | | {EXTERNAL LOCATION} | str | | main.rs:1850:18:1850:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1850:18:1850:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1852:13:1852:21 | callables | [T;...] | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1852:25:1852:81 | [...] | [T;...] | main.rs:1809:5:1810:5 | MyCallable | | main.rs:1852:26:1852:42 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | | main.rs:1852:45:1852:61 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | | main.rs:1852:64:1852:80 | ...::new(...) | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1853:13:1853:13 | c | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1853:18:1853:26 | callables | [T;...] | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1854:17:1854:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:26:1854:26 | c | | main.rs:1809:5:1810:5 | MyCallable | +| main.rs:1854:26:1854:33 | c.call() | | {EXTERNAL LOCATION} | i64 | | main.rs:1859:18:1859:18 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1859:21:1859:22 | 10 | | {EXTERNAL LOCATION} | i32 | | main.rs:1860:19:1860:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | @@ -2695,6 +2730,7 @@ inferType | main.rs:1870:13:1870:17 | vals4 | | {EXTERNAL LOCATION} | Vec | | main.rs:1870:13:1870:17 | vals4 | T | file://:0:0:0:0 | & | | main.rs:1870:13:1870:17 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1870:33:1870:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1870:33:1870:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | | main.rs:1870:33:1870:61 | ... .collect() | T | file://:0:0:0:0 | & | | main.rs:1870:33:1870:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | From b89d6d3402b4aee435dc3966aec15e6b13639b6a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 13 Jun 2025 10:22:17 +0100 Subject: [PATCH 053/340] Rust: Implement type inference for ArrayRepeatExprs. --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 14 +++++++++++--- rust/ql/test/library-tests/type-inference/main.rs | 2 +- .../type-inference/type-inference.expected | 8 ++++++++ 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 7297205a782..dc2fe6fcf56 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1181,9 +1181,17 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { } pragma[nomagic] -private Type inferArrayListExprType(/*ArrayExpr*/ArrayListExpr ale, TypePath path) { +private Type inferArrayExprType(ArrayExpr ae, TypePath path) { + // an array list expression (`[1, 2, 3]`) has the type of the first (any) element exists(Type type0, TypePath path0 | - type0 = inferType(ale.getExpr(0), path0) and + type0 = inferType(ae.(ArrayListExpr).getExpr(0), path0) and + result = type0 and + path = TypePath::cons(any(ArrayTypeParameter tp), path0) + ) + or + // an array repeat expression (`[1; 3]`) has the type of the repeat operand + exists(Type type0, TypePath path0 | + type0 = inferType(ae.(ArrayRepeatExpr).getRepeatOperand(), path0) and result = type0 and path = TypePath::cons(any(ArrayTypeParameter tp), path0) ) @@ -1565,7 +1573,7 @@ private module Cached { or result = inferIndexExprType(n, path) or - result = inferArrayListExprType(n, path) + result = inferArrayExprType(n, path) or result = inferForLoopExprType(n, path) } diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index cf3d4700d2b..79037b8afc5 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1830,7 +1830,7 @@ mod loops { for u in vals1 { } // $ type=u:u8 let vals2 = [1u16; 3]; // $ MISSING: type=vals2:[u16; 3] - for u in vals2 { } // $ MISSING: type=u:u16 + for u in vals2 { } // $ type=u:u16 let vals3: [u32; 3] = [1, 2, 3]; // $ MISSING: type=vals3:[u32; 3] for u in vals3 { } // $ type=u:u32 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 0b0c3adbeb1..77f1c4cae04 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2639,8 +2639,12 @@ inferType | main.rs:1829:30:1829:30 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1830:13:1830:13 | u | | {EXTERNAL LOCATION} | u8 | | main.rs:1830:18:1830:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1832:13:1832:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1832:21:1832:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1832:22:1832:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | | main.rs:1832:28:1832:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1833:18:1833:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1835:13:1835:17 | vals3 | | file://:0:0:0:0 | [] | | main.rs:1835:13:1835:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1835:13:1835:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | @@ -2657,14 +2661,18 @@ inferType | main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1836:18:1836:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1838:13:1838:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1838:13:1838:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1838:13:1838:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1838:26:1838:26 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1838:31:1838:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:1838:31:1838:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1838:31:1838:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1838:32:1838:32 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1838:35:1838:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1839:13:1839:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1839:13:1839:13 | u | | {EXTERNAL LOCATION} | u64 | | main.rs:1839:18:1839:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1839:18:1839:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1839:18:1839:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1841:13:1841:24 | mut strings1 | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1841:28:1841:48 | [...] | [T;...] | {EXTERNAL LOCATION} | str | From 6194676b7dc9de14bcaaa3869aa95980709a033b Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Fri, 13 Jun 2025 13:51:01 +0100 Subject: [PATCH 054/340] Rust: Accept consistency failures (for now). --- .../PathResolutionConsistency.expected | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..9f291a9eb3e --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,37 @@ +multiplePathResolutions +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | From deb715a5177976063033534966d48fee0475597b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 13 Jun 2025 11:15:16 +0200 Subject: [PATCH 055/340] JS: Add test case with `encodeURI` for request forgery --- javascript/ql/test/query-tests/Security/CWE-918/serverSide.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js b/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js index aec8c4195c8..d204580d1eb 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js +++ b/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js @@ -141,4 +141,8 @@ var server2 = http.createServer(function(req, res) { axios.get(target.toString()); // $Alert[js/request-forgery] axios.get(target); // $Alert[js/request-forgery] axios.get(target.href); // $Alert[js/request-forgery] + const encodedUrl = encodeURI(input); + axios.get(encodedUrl); // $MISSING:Alert[js/request-forgery] + const escapedUrl = escape(input); + axios.get(escapedUrl); // $MISSING:Alert[js/request-forgery] }); From bdbc49c63f39c9a92a32ca3782f74e8017d5618e Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 13 Jun 2025 11:16:39 +0200 Subject: [PATCH 056/340] JS: Removed `encodeURI` from request forgery sanitizer list --- .../dataflow/RequestForgeryCustomizations.qll | 4 +++- .../javascript/security/dataflow/Xss.qll | 15 +++++++++++---- .../Security/CWE-918/RequestForgery.expected | 18 ++++++++++++++++++ .../query-tests/Security/CWE-918/serverSide.js | 4 ++-- 4 files changed, 34 insertions(+), 7 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll index 8d182d116c6..a9b0592696f 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll @@ -111,5 +111,7 @@ module RequestForgery { * The result from calling `encodeURI` or `encodeURIComponent` is not a valid URL, and only makes sense * as a part of a URL. */ - class UriEncodingSanitizer extends Sanitizer instanceof Xss::Shared::UriEncodingSanitizer { } + class UriEncodingSanitizer extends Sanitizer instanceof Xss::Shared::UriEncodingSanitizer { + UriEncodingSanitizer() { this.encodesPathSeparators() } + } } diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/Xss.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/Xss.qll index 41487b8c3b6..f139ccc48db 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/Xss.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/Xss.qll @@ -47,15 +47,22 @@ module Shared { } /** - * A call to `encodeURI` or `encodeURIComponent`, viewed as a sanitizer for + * A call to `encodeURI`, `encodeURIComponent` or `escape`, viewed as a sanitizer for * XSS vulnerabilities. */ class UriEncodingSanitizer extends Sanitizer, DataFlow::CallNode { + string name; + UriEncodingSanitizer() { - exists(string name | this = DataFlow::globalVarRef(name).getACall() | - name in ["encodeURI", "encodeURIComponent", "escape"] - ) + this = DataFlow::globalVarRef(name).getACall() and + name in ["encodeURI", "encodeURIComponent", "escape"] } + + /** + * Holds if this URI encoding function properly encodes path separators, + * making it safe for request forgery prevention. + */ + predicate encodesPathSeparators() { name = "encodeURIComponent" } } /** diff --git a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index dde72095df1..58762ae23d7 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -33,6 +33,8 @@ | serverSide.js:141:3:141:30 | axios.g ... ring()) | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:141:13:141:29 | target.toString() | The $@ of this request depends on a $@. | serverSide.js:141:13:141:29 | target.toString() | URL | serverSide.js:139:17:139:29 | req.query.url | user-provided value | | serverSide.js:142:3:142:19 | axios.get(target) | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:142:13:142:18 | target | The $@ of this request depends on a $@. | serverSide.js:142:13:142:18 | target | URL | serverSide.js:139:17:139:29 | req.query.url | user-provided value | | serverSide.js:143:3:143:24 | axios.g ... t.href) | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:143:13:143:23 | target.href | The $@ of this request depends on a $@. | serverSide.js:143:13:143:23 | target.href | URL | serverSide.js:139:17:139:29 | req.query.url | user-provided value | +| serverSide.js:145:3:145:23 | axios.g ... dedUrl) | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:145:13:145:22 | encodedUrl | The $@ of this request depends on a $@. | serverSide.js:145:13:145:22 | encodedUrl | URL | serverSide.js:139:17:139:29 | req.query.url | user-provided value | +| serverSide.js:147:3:147:23 | axios.g ... pedUrl) | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:147:13:147:22 | escapedUrl | The $@ of this request depends on a $@. | serverSide.js:147:13:147:22 | escapedUrl | URL | serverSide.js:139:17:139:29 | req.query.url | user-provided value | edges | Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | Request/app/api/proxy/route2.serverSide.ts:4:9:4:34 | url | provenance | | | Request/app/api/proxy/route2.serverSide.ts:4:9:4:34 | url | Request/app/api/proxy/route2.serverSide.ts:5:27:5:29 | url | provenance | | @@ -110,6 +112,8 @@ edges | serverSide.js:130:9:130:45 | myUrl | serverSide.js:131:15:131:19 | myUrl | provenance | | | serverSide.js:130:37:130:43 | tainted | serverSide.js:130:9:130:45 | myUrl | provenance | | | serverSide.js:139:9:139:29 | input | serverSide.js:140:26:140:30 | input | provenance | | +| serverSide.js:139:9:139:29 | input | serverSide.js:144:32:144:36 | input | provenance | | +| serverSide.js:139:9:139:29 | input | serverSide.js:146:29:146:33 | input | provenance | | | serverSide.js:139:17:139:29 | req.query.url | serverSide.js:139:9:139:29 | input | provenance | | | serverSide.js:140:9:140:31 | target | serverSide.js:141:13:141:18 | target | provenance | | | serverSide.js:140:9:140:31 | target | serverSide.js:142:13:142:18 | target | provenance | | @@ -118,6 +122,12 @@ edges | serverSide.js:140:26:140:30 | input | serverSide.js:140:18:140:31 | new URL(input) | provenance | Config | | serverSide.js:141:13:141:18 | target | serverSide.js:141:13:141:29 | target.toString() | provenance | | | serverSide.js:143:13:143:18 | target | serverSide.js:143:13:143:23 | target.href | provenance | | +| serverSide.js:144:9:144:37 | encodedUrl | serverSide.js:145:13:145:22 | encodedUrl | provenance | | +| serverSide.js:144:22:144:37 | encodeURI(input) | serverSide.js:144:9:144:37 | encodedUrl | provenance | | +| serverSide.js:144:32:144:36 | input | serverSide.js:144:22:144:37 | encodeURI(input) | provenance | | +| serverSide.js:146:9:146:34 | escapedUrl | serverSide.js:147:13:147:22 | escapedUrl | provenance | | +| serverSide.js:146:22:146:34 | escape(input) | serverSide.js:146:9:146:34 | escapedUrl | provenance | | +| serverSide.js:146:29:146:33 | input | serverSide.js:146:22:146:34 | escape(input) | provenance | | nodes | Request/app/api/proxy/route2.serverSide.ts:4:9:4:15 | { url } | semmle.label | { url } | | Request/app/api/proxy/route2.serverSide.ts:4:9:4:34 | url | semmle.label | url | @@ -221,4 +231,12 @@ nodes | serverSide.js:142:13:142:18 | target | semmle.label | target | | serverSide.js:143:13:143:18 | target | semmle.label | target | | serverSide.js:143:13:143:23 | target.href | semmle.label | target.href | +| serverSide.js:144:9:144:37 | encodedUrl | semmle.label | encodedUrl | +| serverSide.js:144:22:144:37 | encodeURI(input) | semmle.label | encodeURI(input) | +| serverSide.js:144:32:144:36 | input | semmle.label | input | +| serverSide.js:145:13:145:22 | encodedUrl | semmle.label | encodedUrl | +| serverSide.js:146:9:146:34 | escapedUrl | semmle.label | escapedUrl | +| serverSide.js:146:22:146:34 | escape(input) | semmle.label | escape(input) | +| serverSide.js:146:29:146:33 | input | semmle.label | input | +| serverSide.js:147:13:147:22 | escapedUrl | semmle.label | escapedUrl | subpaths diff --git a/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js b/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js index d204580d1eb..c578b268e40 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js +++ b/javascript/ql/test/query-tests/Security/CWE-918/serverSide.js @@ -142,7 +142,7 @@ var server2 = http.createServer(function(req, res) { axios.get(target); // $Alert[js/request-forgery] axios.get(target.href); // $Alert[js/request-forgery] const encodedUrl = encodeURI(input); - axios.get(encodedUrl); // $MISSING:Alert[js/request-forgery] + axios.get(encodedUrl); // $Alert[js/request-forgery] const escapedUrl = escape(input); - axios.get(escapedUrl); // $MISSING:Alert[js/request-forgery] + axios.get(escapedUrl); // $Alert[js/request-forgery] }); From 798721bd714981d0f5df3b4549dfc77dea43f706 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 13 Jun 2025 10:39:18 +0200 Subject: [PATCH 057/340] JS: add change note --- javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md diff --git a/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md b/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md new file mode 100644 index 00000000000..ab91e9905af --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Removed `encodeURI` and `escape` functions from the sanitizer list for request forgery. From 0d5f5104d1ffab850c01df40989c220515c927df Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 10:54:12 +0200 Subject: [PATCH 058/340] Updated `UriEncodingSanitizer` comment --- .../security/dataflow/RequestForgeryCustomizations.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll b/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll index a9b0592696f..ec46ef91c3c 100644 --- a/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll +++ b/javascript/ql/lib/semmle/javascript/security/dataflow/RequestForgeryCustomizations.qll @@ -106,9 +106,9 @@ module RequestForgery { private import Xss as Xss /** - * A call to `encodeURI` or `encodeURIComponent`, viewed as a sanitizer for request forgery. + * A call to `encodeURIComponent`, viewed as a sanitizer for request forgery. * These calls will escape "/" to "%2F", which is not a problem for request forgery. - * The result from calling `encodeURI` or `encodeURIComponent` is not a valid URL, and only makes sense + * The result from calling `encodeURIComponent` is not a valid URL, and only makes sense * as a part of a URL. */ class UriEncodingSanitizer extends Sanitizer instanceof Xss::Shared::UriEncodingSanitizer { From 0c31838aa51bb52b12f9b73739f923afe7333c6b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 13:15:12 +0200 Subject: [PATCH 059/340] JS: mass add missing quality related tags to relevant queries --- .../javascript-code-quality.qls.expected | 89 +++++++++++++++++++ .../ql/src/AngularJS/DependencyMismatch.ql | 3 +- .../ql/src/AngularJS/DuplicateDependency.ql | 4 +- .../ql/src/AngularJS/IncompatibleService.ql | 4 +- .../src/AngularJS/MissingExplicitInjection.ql | 5 +- .../ql/src/AngularJS/RepeatedInjection.ql | 4 +- javascript/ql/src/AngularJS/UseNgSrc.ql | 4 +- javascript/ql/src/DOM/DuplicateAttributes.ql | 3 +- javascript/ql/src/DOM/MalformedIdAttribute.ql | 3 +- javascript/ql/src/DOM/PseudoEval.ql | 6 +- .../ql/src/Declarations/ArgumentsRedefined.ql | 5 +- .../ql/src/Declarations/AssignmentToConst.ql | 3 +- .../ql/src/Declarations/ClobberingVarInit.ql | 3 +- .../src/Declarations/ConflictingFunctions.ql | 3 +- .../ql/src/Declarations/DeadStoreOfLocal.ql | 4 +- .../src/Declarations/DeadStoreOfProperty.ql | 4 +- .../ql/src/Declarations/DeclBeforeUse.ql | 3 +- ...DefaultArgumentReferencesNestedFunction.ql | 3 +- .../ql/src/Declarations/DuplicateVarDecl.ql | 4 +- .../Declarations/IneffectiveParameterType.ql | 5 +- .../src/Declarations/MissingThisQualifier.ql | 5 +- .../ql/src/Declarations/MissingVarDecl.ql | 5 +- .../MixedStaticInstanceThisAccess.ql | 4 +- .../ql/src/Declarations/TemporalDeadZone.ql | 4 +- .../src/Declarations/UniqueParameterNames.ql | 3 +- .../src/Declarations/UniquePropertyNames.ql | 3 +- .../UnreachableMethodOverloads.ql | 4 +- .../ql/src/Declarations/UnusedVariable.ql | 4 +- .../ql/src/Expressions/ComparisonWithNaN.ql | 3 +- .../ql/src/Expressions/DuplicateCondition.ql | 5 +- .../ql/src/Expressions/DuplicateProperty.ql | 4 +- .../ql/src/Expressions/DuplicateSwitchCase.ql | 3 +- .../ql/src/Expressions/ExprHasNoEffect.ql | 3 +- .../Expressions/HeterogeneousComparison.ql | 3 +- .../Expressions/ImplicitOperandConversion.ql | 5 +- javascript/ql/src/Expressions/MissingAwait.ql | 5 +- .../MissingDotLengthInComparison.ql | 4 +- .../src/Expressions/MissingSpaceInAppend.ql | 4 +- .../src/Expressions/MisspelledVariableName.ql | 4 +- .../ql/src/Expressions/RedundantExpression.ql | 3 +- .../ql/src/Expressions/SelfAssignment.ql | 3 +- .../ql/src/Expressions/ShiftOutOfRange.ql | 3 +- .../src/Expressions/StringInsteadOfRegex.ql | 4 +- .../src/Expressions/SuspiciousInvocation.ql | 4 +- .../src/Expressions/SuspiciousPropAccess.ql | 4 +- .../UnboundEventHandlerReceiver.ql | 4 +- .../Expressions/UnclearOperatorPrecedence.ql | 5 +- .../ql/src/Expressions/UnknownDirective.ql | 4 +- .../UnneededDefensiveProgramming.ql | 4 +- .../WhitespaceContradictsPrecedence.ql | 5 +- .../ql/src/LanguageFeatures/BadTypeof.ql | 3 +- .../LanguageFeatures/ConditionalComments.ql | 4 +- .../ql/src/LanguageFeatures/DeleteVar.ql | 5 +- .../LanguageFeatures/ExpressionClosures.ql | 4 +- .../ForInComprehensionBlocks.ql | 4 +- .../src/LanguageFeatures/IllegalInvocation.ql | 4 +- .../src/LanguageFeatures/InconsistentNew.ql | 3 +- .../src/LanguageFeatures/InvalidPrototype.ql | 4 +- .../LengthComparisonOffByOne.ql | 4 +- .../src/LanguageFeatures/NonLinearPattern.ql | 3 +- .../PropertyWriteOnPrimitive.ql | 4 +- .../LanguageFeatures/SemicolonInsertion.ql | 4 +- .../ql/src/LanguageFeatures/SetterReturn.ql | 4 +- .../src/LanguageFeatures/SpuriousArguments.ql | 4 +- .../StrictModeCallStackIntrospection.ql | 4 +- .../ql/src/LanguageFeatures/SyntaxError.ql | 3 +- .../src/LanguageFeatures/ThisBeforeSuper.ql | 4 +- .../LanguageFeatures/UnusedIndexVariable.ql | 4 +- .../ql/src/LanguageFeatures/WithStatement.ql | 4 +- .../LanguageFeatures/YieldInNonGenerator.ql | 4 +- javascript/ql/src/NodeJS/InvalidExport.ql | 4 +- javascript/ql/src/NodeJS/MissingExports.ql | 4 +- .../ql/src/React/DirectStateMutation.ql | 4 +- .../ql/src/React/InconsistentStateUpdate.ql | 4 +- ...UnsupportedStateUpdateInLifecycleMethod.ql | 4 +- .../React/UnusedOrUndefinedStateProperty.ql | 3 +- .../ql/src/RegExp/BackrefBeforeGroup.ql | 3 +- .../RegExp/BackrefIntoNegativeLookahead.ql | 3 +- .../ql/src/RegExp/EmptyCharacterClass.ql | 3 +- .../ql/src/RegExp/RegExpAlwaysMatches.ql | 5 +- javascript/ql/src/RegExp/UnboundBackref.ql | 3 +- javascript/ql/src/RegExp/UnmatchableCaret.ql | 3 +- javascript/ql/src/RegExp/UnmatchableDollar.ql | 3 +- javascript/ql/src/Statements/DanglingElse.ql | 4 +- .../ql/src/Statements/IgnoreArrayResult.ql | 3 +- .../Statements/InconsistentLoopOrientation.ql | 4 +- javascript/ql/src/Statements/LabelInCase.ql | 3 +- .../MisleadingIndentationAfterControlStmt.ql | 4 +- .../ql/src/Statements/ReturnAssignsLocal.ql | 3 +- .../SuspiciousUnusedLoopIterationVariable.ql | 5 +- .../ql/src/Statements/UnreachableStatement.ql | 5 +- .../src/Statements/UseOfReturnlessFunction.ql | 3 +- .../src/Statements/UselessComparisonTest.ql | 4 +- .../ql/src/Statements/UselessConditional.ql | 4 +- .../ql/src/Vue/ArrowMethodOnVueInstance.ql | 4 +- 95 files changed, 337 insertions(+), 112 deletions(-) diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected index bf646822ddc..0ee4ff2cf9c 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality.qls.expected @@ -1,9 +1,98 @@ +ql/javascript/ql/src/AngularJS/DependencyMismatch.ql +ql/javascript/ql/src/AngularJS/DuplicateDependency.ql +ql/javascript/ql/src/AngularJS/IncompatibleService.ql +ql/javascript/ql/src/AngularJS/MissingExplicitInjection.ql +ql/javascript/ql/src/AngularJS/RepeatedInjection.ql +ql/javascript/ql/src/AngularJS/UseNgSrc.ql +ql/javascript/ql/src/DOM/DuplicateAttributes.ql +ql/javascript/ql/src/DOM/MalformedIdAttribute.ql +ql/javascript/ql/src/DOM/PseudoEval.ql +ql/javascript/ql/src/Declarations/ArgumentsRedefined.ql +ql/javascript/ql/src/Declarations/AssignmentToConst.ql +ql/javascript/ql/src/Declarations/ClobberingVarInit.ql +ql/javascript/ql/src/Declarations/ConflictingFunctions.ql +ql/javascript/ql/src/Declarations/DeadStoreOfLocal.ql +ql/javascript/ql/src/Declarations/DeadStoreOfProperty.ql +ql/javascript/ql/src/Declarations/DeclBeforeUse.ql +ql/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql +ql/javascript/ql/src/Declarations/DuplicateVarDecl.ql ql/javascript/ql/src/Declarations/IneffectiveParameterType.ql +ql/javascript/ql/src/Declarations/MissingThisQualifier.ql +ql/javascript/ql/src/Declarations/MissingVarDecl.ql +ql/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql ql/javascript/ql/src/Declarations/SuspiciousMethodNameDeclaration.ql +ql/javascript/ql/src/Declarations/TemporalDeadZone.ql +ql/javascript/ql/src/Declarations/UniqueParameterNames.ql +ql/javascript/ql/src/Declarations/UniquePropertyNames.ql +ql/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql +ql/javascript/ql/src/Declarations/UnusedVariable.ql +ql/javascript/ql/src/Expressions/ComparisonWithNaN.ql +ql/javascript/ql/src/Expressions/DuplicateCondition.ql +ql/javascript/ql/src/Expressions/DuplicateProperty.ql +ql/javascript/ql/src/Expressions/DuplicateSwitchCase.ql ql/javascript/ql/src/Expressions/ExprHasNoEffect.ql +ql/javascript/ql/src/Expressions/HeterogeneousComparison.ql +ql/javascript/ql/src/Expressions/ImplicitOperandConversion.ql ql/javascript/ql/src/Expressions/MissingAwait.ql +ql/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql +ql/javascript/ql/src/Expressions/MissingSpaceInAppend.ql +ql/javascript/ql/src/Expressions/MisspelledVariableName.ql +ql/javascript/ql/src/Expressions/RedundantExpression.ql +ql/javascript/ql/src/Expressions/SelfAssignment.ql +ql/javascript/ql/src/Expressions/ShiftOutOfRange.ql +ql/javascript/ql/src/Expressions/StringInsteadOfRegex.ql +ql/javascript/ql/src/Expressions/SuspiciousInvocation.ql +ql/javascript/ql/src/Expressions/SuspiciousPropAccess.ql +ql/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql +ql/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql +ql/javascript/ql/src/Expressions/UnknownDirective.ql +ql/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql +ql/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql +ql/javascript/ql/src/LanguageFeatures/BadTypeof.ql +ql/javascript/ql/src/LanguageFeatures/ConditionalComments.ql +ql/javascript/ql/src/LanguageFeatures/DeleteVar.ql +ql/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql +ql/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql +ql/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql +ql/javascript/ql/src/LanguageFeatures/InconsistentNew.ql +ql/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql +ql/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql +ql/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql +ql/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql +ql/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql +ql/javascript/ql/src/LanguageFeatures/SetterReturn.ql ql/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql +ql/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql +ql/javascript/ql/src/LanguageFeatures/SyntaxError.ql ql/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql +ql/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql +ql/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql +ql/javascript/ql/src/LanguageFeatures/WithStatement.ql +ql/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql +ql/javascript/ql/src/NodeJS/InvalidExport.ql +ql/javascript/ql/src/NodeJS/MissingExports.ql ql/javascript/ql/src/Quality/UnhandledErrorInStreamPipeline.ql +ql/javascript/ql/src/React/DirectStateMutation.ql +ql/javascript/ql/src/React/InconsistentStateUpdate.ql +ql/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql +ql/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql +ql/javascript/ql/src/RegExp/BackrefBeforeGroup.ql +ql/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql ql/javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.ql +ql/javascript/ql/src/RegExp/EmptyCharacterClass.ql ql/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +ql/javascript/ql/src/RegExp/UnboundBackref.ql +ql/javascript/ql/src/RegExp/UnmatchableCaret.ql +ql/javascript/ql/src/RegExp/UnmatchableDollar.ql +ql/javascript/ql/src/Statements/DanglingElse.ql +ql/javascript/ql/src/Statements/IgnoreArrayResult.ql +ql/javascript/ql/src/Statements/InconsistentLoopOrientation.ql +ql/javascript/ql/src/Statements/LabelInCase.ql +ql/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql +ql/javascript/ql/src/Statements/ReturnAssignsLocal.ql +ql/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql +ql/javascript/ql/src/Statements/UnreachableStatement.ql +ql/javascript/ql/src/Statements/UseOfReturnlessFunction.ql +ql/javascript/ql/src/Statements/UselessComparisonTest.ql +ql/javascript/ql/src/Statements/UselessConditional.ql +ql/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql diff --git a/javascript/ql/src/AngularJS/DependencyMismatch.ql b/javascript/ql/src/AngularJS/DependencyMismatch.ql index 83f9b1cb73a..5518653795b 100644 --- a/javascript/ql/src/AngularJS/DependencyMismatch.ql +++ b/javascript/ql/src/AngularJS/DependencyMismatch.ql @@ -7,8 +7,9 @@ * @problem.severity warning * @precision very-high * @id js/angular/dependency-injection-mismatch - * @tags correctness + * @tags quality * maintainability + * readability * frameworks/angularjs */ diff --git a/javascript/ql/src/AngularJS/DuplicateDependency.ql b/javascript/ql/src/AngularJS/DuplicateDependency.ql index 12036e03339..38f46d8acf9 100644 --- a/javascript/ql/src/AngularJS/DuplicateDependency.ql +++ b/javascript/ql/src/AngularJS/DuplicateDependency.ql @@ -5,7 +5,9 @@ * @problem.severity warning * @precision very-high * @id js/angular/duplicate-dependency - * @tags maintainability + * @tags quality + * maintainability + * readability * frameworks/angularjs */ diff --git a/javascript/ql/src/AngularJS/IncompatibleService.ql b/javascript/ql/src/AngularJS/IncompatibleService.ql index c22eccc2dd4..511f5c72cdc 100644 --- a/javascript/ql/src/AngularJS/IncompatibleService.ql +++ b/javascript/ql/src/AngularJS/IncompatibleService.ql @@ -5,7 +5,9 @@ * @problem.severity error * @precision high * @id js/angular/incompatible-service - * @tags correctness + * @tags quality + * reliability + * correctness * frameworks/angularjs */ diff --git a/javascript/ql/src/AngularJS/MissingExplicitInjection.ql b/javascript/ql/src/AngularJS/MissingExplicitInjection.ql index f7ff51fb547..4b007974bcf 100644 --- a/javascript/ql/src/AngularJS/MissingExplicitInjection.ql +++ b/javascript/ql/src/AngularJS/MissingExplicitInjection.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision high * @id js/angular/missing-explicit-injection - * @tags correctness - * maintainability + * @tags quality + * reliability + * correctness * frameworks/angularjs */ diff --git a/javascript/ql/src/AngularJS/RepeatedInjection.ql b/javascript/ql/src/AngularJS/RepeatedInjection.ql index 27fb0dc2f62..8c1d1379893 100644 --- a/javascript/ql/src/AngularJS/RepeatedInjection.ql +++ b/javascript/ql/src/AngularJS/RepeatedInjection.ql @@ -5,7 +5,9 @@ * @problem.severity warning * @precision high * @id js/angular/repeated-dependency-injection - * @tags maintainability + * @tags quality + * maintainability + * readability * frameworks/angularjs */ diff --git a/javascript/ql/src/AngularJS/UseNgSrc.ql b/javascript/ql/src/AngularJS/UseNgSrc.ql index 333b36722f5..51255af8071 100644 --- a/javascript/ql/src/AngularJS/UseNgSrc.ql +++ b/javascript/ql/src/AngularJS/UseNgSrc.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @precision very-high * @id js/angular/expression-in-url-attribute - * @tags maintainability + * @tags quality + * reliability + * correctness * frameworks/angularjs */ diff --git a/javascript/ql/src/DOM/DuplicateAttributes.ql b/javascript/ql/src/DOM/DuplicateAttributes.ql index 77c1ddea93b..a6f73982f73 100644 --- a/javascript/ql/src/DOM/DuplicateAttributes.ql +++ b/javascript/ql/src/DOM/DuplicateAttributes.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id js/duplicate-html-attribute - * @tags maintainability + * @tags quality + * maintainability * readability * @precision very-high */ diff --git a/javascript/ql/src/DOM/MalformedIdAttribute.ql b/javascript/ql/src/DOM/MalformedIdAttribute.ql index d9a99aa1937..dea9d25f917 100644 --- a/javascript/ql/src/DOM/MalformedIdAttribute.ql +++ b/javascript/ql/src/DOM/MalformedIdAttribute.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id js/malformed-html-id - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-758 * @precision very-high diff --git a/javascript/ql/src/DOM/PseudoEval.ql b/javascript/ql/src/DOM/PseudoEval.ql index c6bed6ed75b..d2255cf594d 100644 --- a/javascript/ql/src/DOM/PseudoEval.ql +++ b/javascript/ql/src/DOM/PseudoEval.ql @@ -5,8 +5,10 @@ * @kind problem * @problem.severity recommendation * @id js/eval-like-call - * @tags maintainability - * external/cwe/cwe-676 + * @tags quality + * maintainability + * readability + * external/cwe/cwe-67 * @precision very-high */ diff --git a/javascript/ql/src/Declarations/ArgumentsRedefined.ql b/javascript/ql/src/Declarations/ArgumentsRedefined.ql index dc1ca153062..01d0451d6f4 100644 --- a/javascript/ql/src/Declarations/ArgumentsRedefined.ql +++ b/javascript/ql/src/Declarations/ArgumentsRedefined.ql @@ -6,8 +6,9 @@ * @kind problem * @problem.severity recommendation * @id js/arguments-redefinition - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance * @precision very-high */ diff --git a/javascript/ql/src/Declarations/AssignmentToConst.ql b/javascript/ql/src/Declarations/AssignmentToConst.ql index f2a24832c6a..2aebfad0054 100644 --- a/javascript/ql/src/Declarations/AssignmentToConst.ql +++ b/javascript/ql/src/Declarations/AssignmentToConst.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/assignment-to-constant - * @tags reliability + * @tags quality + * reliability * correctness * @precision very-high */ diff --git a/javascript/ql/src/Declarations/ClobberingVarInit.ql b/javascript/ql/src/Declarations/ClobberingVarInit.ql index 2ae7a891035..5a3fe406d7e 100644 --- a/javascript/ql/src/Declarations/ClobberingVarInit.ql +++ b/javascript/ql/src/Declarations/ClobberingVarInit.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/variable-initialization-conflict - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-563 * @precision very-high diff --git a/javascript/ql/src/Declarations/ConflictingFunctions.ql b/javascript/ql/src/Declarations/ConflictingFunctions.ql index 60f3200c369..e15f49acd93 100644 --- a/javascript/ql/src/Declarations/ConflictingFunctions.ql +++ b/javascript/ql/src/Declarations/ConflictingFunctions.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/function-declaration-conflict - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-563 * @precision high diff --git a/javascript/ql/src/Declarations/DeadStoreOfLocal.ql b/javascript/ql/src/Declarations/DeadStoreOfLocal.ql index 70b3ba0e2e2..b09e1435739 100644 --- a/javascript/ql/src/Declarations/DeadStoreOfLocal.ql +++ b/javascript/ql/src/Declarations/DeadStoreOfLocal.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/useless-assignment-to-local - * @tags maintainability + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-563 * @precision very-high */ diff --git a/javascript/ql/src/Declarations/DeadStoreOfProperty.ql b/javascript/ql/src/Declarations/DeadStoreOfProperty.ql index c8cb0d8536e..8930a13dfa4 100644 --- a/javascript/ql/src/Declarations/DeadStoreOfProperty.ql +++ b/javascript/ql/src/Declarations/DeadStoreOfProperty.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/useless-assignment-to-property - * @tags maintainability + * @tags quality + * maintainability + * useless-code * @precision high */ diff --git a/javascript/ql/src/Declarations/DeclBeforeUse.ql b/javascript/ql/src/Declarations/DeclBeforeUse.ql index b58fab9e465..ddf715cefdb 100644 --- a/javascript/ql/src/Declarations/DeclBeforeUse.ql +++ b/javascript/ql/src/Declarations/DeclBeforeUse.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity warning * @id js/use-before-declaration - * @tags maintainability + * @tags quality + * maintainability * readability * @precision very-high */ diff --git a/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql b/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql index cd13314095c..934d2d6ddd3 100644 --- a/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql +++ b/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/nested-function-reference-in-default-parameter - * @tags reliability + * @tags quality + * reliability * correctness * @precision very-high */ diff --git a/javascript/ql/src/Declarations/DuplicateVarDecl.ql b/javascript/ql/src/Declarations/DuplicateVarDecl.ql index 4a1c1bdb38f..03dd4bb7517 100644 --- a/javascript/ql/src/Declarations/DuplicateVarDecl.ql +++ b/javascript/ql/src/Declarations/DuplicateVarDecl.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/duplicate-variable-declaration - * @tags maintainability + * @tags quality + * maintainability + * readability * @precision very-high */ diff --git a/javascript/ql/src/Declarations/IneffectiveParameterType.ql b/javascript/ql/src/Declarations/IneffectiveParameterType.ql index 18899bd0c4e..58480a84bf2 100644 --- a/javascript/ql/src/Declarations/IneffectiveParameterType.ql +++ b/javascript/ql/src/Declarations/IneffectiveParameterType.ql @@ -5,9 +5,10 @@ * @problem.severity warning * @id js/ineffective-parameter-type * @precision high - * @tags correctness + * @tags quality + * reliability + * correctness * typescript - * quality */ import javascript diff --git a/javascript/ql/src/Declarations/MissingThisQualifier.ql b/javascript/ql/src/Declarations/MissingThisQualifier.ql index 0d41cf19b19..f5e50df9aa7 100644 --- a/javascript/ql/src/Declarations/MissingThisQualifier.ql +++ b/javascript/ql/src/Declarations/MissingThisQualifier.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity error * @id js/missing-this-qualifier - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * methods * @precision high */ diff --git a/javascript/ql/src/Declarations/MissingVarDecl.ql b/javascript/ql/src/Declarations/MissingVarDecl.ql index 8dd40cb064a..390fc0af51c 100644 --- a/javascript/ql/src/Declarations/MissingVarDecl.ql +++ b/javascript/ql/src/Declarations/MissingVarDecl.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @id js/missing-variable-declaration - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql b/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql index a8f771706f1..5941e51d3b0 100644 --- a/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql +++ b/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity error * @id js/mixed-static-instance-this-access - * @tags correctness + * @tags quality + * reliability + * correctness * methods * @precision high */ diff --git a/javascript/ql/src/Declarations/TemporalDeadZone.ql b/javascript/ql/src/Declarations/TemporalDeadZone.ql index dbb5f7275d3..f51303ee392 100644 --- a/javascript/ql/src/Declarations/TemporalDeadZone.ql +++ b/javascript/ql/src/Declarations/TemporalDeadZone.ql @@ -5,8 +5,10 @@ * @kind problem * @problem.severity error * @id js/variable-use-in-temporal-dead-zone - * @tags portability + * @tags quality + * reliability * correctness + * portability * @precision very-high */ diff --git a/javascript/ql/src/Declarations/UniqueParameterNames.ql b/javascript/ql/src/Declarations/UniqueParameterNames.ql index bb595cbe607..53b3657b966 100644 --- a/javascript/ql/src/Declarations/UniqueParameterNames.ql +++ b/javascript/ql/src/Declarations/UniqueParameterNames.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/duplicate-parameter-name - * @tags reliability + * @tags quality + * reliability * correctness * @precision very-high */ diff --git a/javascript/ql/src/Declarations/UniquePropertyNames.ql b/javascript/ql/src/Declarations/UniquePropertyNames.ql index e98857945ad..f168b46c54e 100644 --- a/javascript/ql/src/Declarations/UniquePropertyNames.ql +++ b/javascript/ql/src/Declarations/UniquePropertyNames.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/overwritten-property - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-563 * @precision very-high diff --git a/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql b/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql index 23406eb0b72..a68617ea2f1 100644 --- a/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql +++ b/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @id js/unreachable-method-overloads * @precision high - * @tags correctness + * @tags quality + * reliability + * correctness * typescript */ diff --git a/javascript/ql/src/Declarations/UnusedVariable.ql b/javascript/ql/src/Declarations/UnusedVariable.ql index 7346b58c049..66e15cdbf81 100644 --- a/javascript/ql/src/Declarations/UnusedVariable.ql +++ b/javascript/ql/src/Declarations/UnusedVariable.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/unused-local-variable - * @tags maintainability + * @tags quality + * maintainability + * useless-code * @precision very-high */ diff --git a/javascript/ql/src/Expressions/ComparisonWithNaN.ql b/javascript/ql/src/Expressions/ComparisonWithNaN.ql index 82a45a3a562..1fb61b48965 100644 --- a/javascript/ql/src/Expressions/ComparisonWithNaN.ql +++ b/javascript/ql/src/Expressions/ComparisonWithNaN.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/comparison-with-nan - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-570 * external/cwe/cwe-571 diff --git a/javascript/ql/src/Expressions/DuplicateCondition.ql b/javascript/ql/src/Expressions/DuplicateCondition.ql index a13a0f15810..75f020d382a 100644 --- a/javascript/ql/src/Expressions/DuplicateCondition.ql +++ b/javascript/ql/src/Expressions/DuplicateCondition.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @id js/duplicate-condition - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * external/cwe/cwe-561 * @precision very-high */ diff --git a/javascript/ql/src/Expressions/DuplicateProperty.ql b/javascript/ql/src/Expressions/DuplicateProperty.ql index af518842a61..febdfe5b882 100644 --- a/javascript/ql/src/Expressions/DuplicateProperty.ql +++ b/javascript/ql/src/Expressions/DuplicateProperty.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/duplicate-property - * @tags maintainability + * @tags quality + * maintainability + * readability * external/cwe/cwe-563 * @precision very-high */ diff --git a/javascript/ql/src/Expressions/DuplicateSwitchCase.ql b/javascript/ql/src/Expressions/DuplicateSwitchCase.ql index 56cb848dba1..1ef8aa76a4b 100644 --- a/javascript/ql/src/Expressions/DuplicateSwitchCase.ql +++ b/javascript/ql/src/Expressions/DuplicateSwitchCase.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id js/duplicate-switch-case - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-561 * @precision very-high diff --git a/javascript/ql/src/Expressions/ExprHasNoEffect.ql b/javascript/ql/src/Expressions/ExprHasNoEffect.ql index 9cdb22b8ecf..fd613d3aa9f 100644 --- a/javascript/ql/src/Expressions/ExprHasNoEffect.ql +++ b/javascript/ql/src/Expressions/ExprHasNoEffect.ql @@ -7,10 +7,9 @@ * @id js/useless-expression * @tags quality * maintainability - * correctness + * useless-code * external/cwe/cwe-480 * external/cwe/cwe-561 - * useless-code * @precision very-high */ diff --git a/javascript/ql/src/Expressions/HeterogeneousComparison.ql b/javascript/ql/src/Expressions/HeterogeneousComparison.ql index 3b4c59f08b6..e99adad21cd 100644 --- a/javascript/ql/src/Expressions/HeterogeneousComparison.ql +++ b/javascript/ql/src/Expressions/HeterogeneousComparison.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity warning * @id js/comparison-between-incompatible-types - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-570 * external/cwe/cwe-571 diff --git a/javascript/ql/src/Expressions/ImplicitOperandConversion.ql b/javascript/ql/src/Expressions/ImplicitOperandConversion.ql index 5d3f16e0eb8..eda12e9d98b 100644 --- a/javascript/ql/src/Expressions/ImplicitOperandConversion.ql +++ b/javascript/ql/src/Expressions/ImplicitOperandConversion.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @id js/implicit-operand-conversion - * @tags reliability - * readability + * @tags quality + * reliability + * correctness * external/cwe/cwe-704 * @precision very-high */ diff --git a/javascript/ql/src/Expressions/MissingAwait.ql b/javascript/ql/src/Expressions/MissingAwait.ql index a16d31ee2a5..a537156da01 100644 --- a/javascript/ql/src/Expressions/MissingAwait.ql +++ b/javascript/ql/src/Expressions/MissingAwait.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity warning * @id js/missing-await - * @tags correctness - * quality + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql b/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql index 705b3eedfc0..1d16bb346fc 100644 --- a/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql +++ b/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @id js/missing-dot-length-in-comparison * @precision high - * @tags correctness + * @tags quality + * reliability + * correctness */ import javascript diff --git a/javascript/ql/src/Expressions/MissingSpaceInAppend.ql b/javascript/ql/src/Expressions/MissingSpaceInAppend.ql index 7589c0d54f3..d4c2bcb18ac 100644 --- a/javascript/ql/src/Expressions/MissingSpaceInAppend.ql +++ b/javascript/ql/src/Expressions/MissingSpaceInAppend.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @precision very-high * @id js/missing-space-in-concatenation - * @tags readability + * @tags quality + * maintainability + * readability */ import javascript diff --git a/javascript/ql/src/Expressions/MisspelledVariableName.ql b/javascript/ql/src/Expressions/MisspelledVariableName.ql index b6f0ad88e3e..7444ba3a5d9 100644 --- a/javascript/ql/src/Expressions/MisspelledVariableName.ql +++ b/javascript/ql/src/Expressions/MisspelledVariableName.ql @@ -6,8 +6,8 @@ * @kind problem * @problem.severity warning * @id js/misspelled-variable-name - * @tags maintainability - * readability + * @tags quality + * reliability * correctness * @precision very-high */ diff --git a/javascript/ql/src/Expressions/RedundantExpression.ql b/javascript/ql/src/Expressions/RedundantExpression.ql index bf668bd649f..35b86a9f025 100644 --- a/javascript/ql/src/Expressions/RedundantExpression.ql +++ b/javascript/ql/src/Expressions/RedundantExpression.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity warning * @id js/redundant-operation - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-480 * external/cwe/cwe-561 diff --git a/javascript/ql/src/Expressions/SelfAssignment.ql b/javascript/ql/src/Expressions/SelfAssignment.ql index 784f01fa742..603762b5952 100644 --- a/javascript/ql/src/Expressions/SelfAssignment.ql +++ b/javascript/ql/src/Expressions/SelfAssignment.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity warning * @id js/redundant-assignment - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-480 * external/cwe/cwe-561 diff --git a/javascript/ql/src/Expressions/ShiftOutOfRange.ql b/javascript/ql/src/Expressions/ShiftOutOfRange.ql index ec8b801cbe6..395baaff11f 100644 --- a/javascript/ql/src/Expressions/ShiftOutOfRange.ql +++ b/javascript/ql/src/Expressions/ShiftOutOfRange.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/shift-out-of-range - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-197 * @precision very-high diff --git a/javascript/ql/src/Expressions/StringInsteadOfRegex.ql b/javascript/ql/src/Expressions/StringInsteadOfRegex.ql index c00088abcd9..44d07ee98e6 100644 --- a/javascript/ql/src/Expressions/StringInsteadOfRegex.ql +++ b/javascript/ql/src/Expressions/StringInsteadOfRegex.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/string-instead-of-regex - * @tags correctness + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Expressions/SuspiciousInvocation.ql b/javascript/ql/src/Expressions/SuspiciousInvocation.ql index ca7281eba5c..1472e2dbe2f 100644 --- a/javascript/ql/src/Expressions/SuspiciousInvocation.ql +++ b/javascript/ql/src/Expressions/SuspiciousInvocation.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/call-to-non-callable - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-476 * @precision high */ diff --git a/javascript/ql/src/Expressions/SuspiciousPropAccess.ql b/javascript/ql/src/Expressions/SuspiciousPropAccess.ql index f51674a0418..88ce9dda7c4 100644 --- a/javascript/ql/src/Expressions/SuspiciousPropAccess.ql +++ b/javascript/ql/src/Expressions/SuspiciousPropAccess.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/property-access-on-non-object - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-476 * @precision high */ diff --git a/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql b/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql index fa10e4786c4..4cc94c5852b 100644 --- a/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql +++ b/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity error * @id js/unbound-event-handler-receiver - * @tags correctness + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql b/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql index 869971f5f1f..104e7188e7e 100644 --- a/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql +++ b/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity recommendation * @id js/unclear-operator-precedence - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * statistical * non-attributable * external/cwe/cwe-783 diff --git a/javascript/ql/src/Expressions/UnknownDirective.ql b/javascript/ql/src/Expressions/UnknownDirective.ql index 331b61cafda..be91cf5ff89 100644 --- a/javascript/ql/src/Expressions/UnknownDirective.ql +++ b/javascript/ql/src/Expressions/UnknownDirective.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/unknown-directive - * @tags correctness + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql b/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql index 8e5cd8cf431..3b06187a207 100644 --- a/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql +++ b/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity recommendation * @id js/unneeded-defensive-code - * @tags correctness + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-570 * external/cwe/cwe-571 * @precision very-high diff --git a/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql b/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql index 36d9f773708..b8711db8fab 100644 --- a/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql +++ b/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql @@ -5,8 +5,9 @@ * @kind problem * @problem.severity warning * @id js/whitespace-contradicts-precedence - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * statistical * non-attributable * external/cwe/cwe-783 diff --git a/javascript/ql/src/LanguageFeatures/BadTypeof.ql b/javascript/ql/src/LanguageFeatures/BadTypeof.ql index d287a0a1b6d..97492d3562a 100644 --- a/javascript/ql/src/LanguageFeatures/BadTypeof.ql +++ b/javascript/ql/src/LanguageFeatures/BadTypeof.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/useless-type-test - * @tags maintainability + * @tags quality + * reliability * correctness * language-features * external/cwe/cwe-570 diff --git a/javascript/ql/src/LanguageFeatures/ConditionalComments.ql b/javascript/ql/src/LanguageFeatures/ConditionalComments.ql index 255415c0564..607fc47c38d 100644 --- a/javascript/ql/src/LanguageFeatures/ConditionalComments.ql +++ b/javascript/ql/src/LanguageFeatures/ConditionalComments.ql @@ -4,8 +4,10 @@ * @kind problem * @problem.severity warning * @id js/conditional-comment - * @tags portability + * @tags quality * maintainability + * readability + * portability * language-features * external/cwe/cwe-758 * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/DeleteVar.ql b/javascript/ql/src/LanguageFeatures/DeleteVar.ql index ed3940a1c70..715f314381b 100644 --- a/javascript/ql/src/LanguageFeatures/DeleteVar.ql +++ b/javascript/ql/src/LanguageFeatures/DeleteVar.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity warning * @id js/deletion-of-non-property - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * language-features * external/cwe/cwe-480 * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql b/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql index db33566a758..2e67bfb6e2b 100644 --- a/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql +++ b/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql @@ -5,8 +5,10 @@ * @kind problem * @problem.severity warning * @id js/non-standard-language-feature - * @tags portability + * @tags quality * maintainability + * readability + * portability * language-features * external/cwe/cwe-758 * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql b/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql index 0c13ff72437..c5f5e8bfe12 100644 --- a/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql +++ b/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql @@ -5,8 +5,10 @@ * @kind problem * @problem.severity error * @id js/for-in-comprehension - * @tags portability + * @tags quality * maintainability + * readability + * portability * language-features * external/cwe/cwe-758 * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql b/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql index 4c8939c4180..06f50bb60dc 100644 --- a/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql +++ b/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql @@ -6,7 +6,9 @@ * @kind problem * @problem.severity error * @id js/illegal-invocation - * @tags correctness + * @tags quality + * reliability + * correctness * language-features * @precision high */ diff --git a/javascript/ql/src/LanguageFeatures/InconsistentNew.ql b/javascript/ql/src/LanguageFeatures/InconsistentNew.ql index 8a14dbe37c1..9044e851496 100644 --- a/javascript/ql/src/LanguageFeatures/InconsistentNew.ql +++ b/javascript/ql/src/LanguageFeatures/InconsistentNew.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity warning * @id js/inconsistent-use-of-new - * @tags reliability + * @tags quality + * reliability * correctness * language-features * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql b/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql index 89dc7535c60..8770d8dc271 100644 --- a/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql +++ b/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/invalid-prototype-value - * @tags correctness + * @tags quality + * reliability + * correctness * language-features * external/cwe/cwe-704 * @precision high diff --git a/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql b/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql index e3935386289..4f3815d6fc6 100644 --- a/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql +++ b/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql @@ -5,9 +5,11 @@ * @kind problem * @problem.severity warning * @id js/index-out-of-bounds - * @tags reliability + * @tags quality + * reliability * correctness * logic + * language-features * external/cwe/cwe-193 * @precision high */ diff --git a/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql b/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql index 9e3c4235350..090f6b07845 100644 --- a/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql +++ b/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/non-linear-pattern - * @tags reliability + * @tags quality + * reliability * correctness * language-features * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql b/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql index 19d372f6529..cb544625648 100644 --- a/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql +++ b/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/property-assignment-on-primitive - * @tags correctness + * @tags quality + * reliability + * correctness * language-features * external/cwe/cwe-704 * @precision high diff --git a/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql b/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql index 3f99062112d..17a9da64cc0 100644 --- a/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql +++ b/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity recommendation * @id js/automatic-semicolon-insertion - * @tags maintainability + * @tags quality + * maintainability + * readability * language-features * statistical * non-attributable diff --git a/javascript/ql/src/LanguageFeatures/SetterReturn.ql b/javascript/ql/src/LanguageFeatures/SetterReturn.ql index 0333246a439..b90541d3912 100644 --- a/javascript/ql/src/LanguageFeatures/SetterReturn.ql +++ b/javascript/ql/src/LanguageFeatures/SetterReturn.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/setter-return - * @tags maintainability + * @tags quality + * maintainability + * useless-code * language-features * @precision very-high */ diff --git a/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql b/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql index fd493a247a4..82c69a1732a 100644 --- a/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql +++ b/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql @@ -4,10 +4,10 @@ * @kind problem * @problem.severity warning * @id js/superfluous-trailing-arguments - * @tags maintainability + * @tags quality + * reliability * correctness * language-features - * quality * external/cwe/cwe-685 * @precision very-high */ diff --git a/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql b/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql index b29844d90b9..7c285c45ec7 100644 --- a/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql +++ b/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql @@ -6,7 +6,9 @@ * @kind problem * @problem.severity error * @id js/strict-mode-call-stack-introspection - * @tags correctness + * @tags quality + * reliability + * correctness * language-features * @precision high */ diff --git a/javascript/ql/src/LanguageFeatures/SyntaxError.ql b/javascript/ql/src/LanguageFeatures/SyntaxError.ql index d4428c75774..0c9a69490f7 100644 --- a/javascript/ql/src/LanguageFeatures/SyntaxError.ql +++ b/javascript/ql/src/LanguageFeatures/SyntaxError.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity recommendation * @id js/syntax-error - * @tags reliability + * @tags quality + * reliability * correctness * language-features * @precision very-high diff --git a/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql b/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql index 77ce3e5e858..e93700bdccf 100644 --- a/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql +++ b/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/incomplete-object-initialization - * @tags correctness + * @tags quality + * reliability + * correctness * language-features * @precision high */ diff --git a/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql b/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql index ba39738a777..7a8f3bdf948 100644 --- a/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql +++ b/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @id js/unused-index-variable * @precision high - * @tags correctness + * @tags quality + * reliability + * correctness */ import javascript diff --git a/javascript/ql/src/LanguageFeatures/WithStatement.ql b/javascript/ql/src/LanguageFeatures/WithStatement.ql index cb2cfc728d8..25f6c4e8fc4 100644 --- a/javascript/ql/src/LanguageFeatures/WithStatement.ql +++ b/javascript/ql/src/LanguageFeatures/WithStatement.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/with-statement - * @tags maintainability + * @tags quality + * maintainability + * complexity * language-features * @precision very-high */ diff --git a/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql b/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql index 4f9241e7303..8cd18991d02 100644 --- a/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql +++ b/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity error * @id js/yield-outside-generator - * @tags maintainability + * @tags quality + * reliability + * correctness * language-features * external/cwe/cwe-758 * @precision very-high diff --git a/javascript/ql/src/NodeJS/InvalidExport.ql b/javascript/ql/src/NodeJS/InvalidExport.ql index e0b4a73fd69..f7858102e75 100644 --- a/javascript/ql/src/NodeJS/InvalidExport.ql +++ b/javascript/ql/src/NodeJS/InvalidExport.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/node/assignment-to-exports-variable - * @tags maintainability + * @tags quality + * maintainability + * readability * frameworks/node.js * external/cwe/cwe-563 * @precision very-high diff --git a/javascript/ql/src/NodeJS/MissingExports.ql b/javascript/ql/src/NodeJS/MissingExports.ql index 15badce359f..c606ce14eb2 100644 --- a/javascript/ql/src/NodeJS/MissingExports.ql +++ b/javascript/ql/src/NodeJS/MissingExports.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity error * @id js/node/missing-exports-qualifier - * @tags maintainability + * @tags quality + * maintainability + * readability * frameworks/node.js * @precision high */ diff --git a/javascript/ql/src/React/DirectStateMutation.ql b/javascript/ql/src/React/DirectStateMutation.ql index 6e3d63a5214..a00f55524cd 100644 --- a/javascript/ql/src/React/DirectStateMutation.ql +++ b/javascript/ql/src/React/DirectStateMutation.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/react/direct-state-mutation - * @tags reliability + * @tags quality + * reliability + * correctness * frameworks/react * @precision very-high */ diff --git a/javascript/ql/src/React/InconsistentStateUpdate.ql b/javascript/ql/src/React/InconsistentStateUpdate.ql index 31625b2187a..f46427b9c59 100644 --- a/javascript/ql/src/React/InconsistentStateUpdate.ql +++ b/javascript/ql/src/React/InconsistentStateUpdate.ql @@ -6,7 +6,9 @@ * @kind problem * @problem.severity warning * @id js/react/inconsistent-state-update - * @tags reliability + * @tags quality + * reliability + * correctness * frameworks/react * @precision very-high */ diff --git a/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql b/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql index e14b880b1b1..da49bd43ab9 100644 --- a/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql +++ b/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/react/unsupported-state-update-in-lifecycle-method - * @tags reliability + * @tags quality + * reliability + * correctness * frameworks/react * @precision high */ diff --git a/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql b/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql index 721d6639ac7..24d5590185b 100644 --- a/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql +++ b/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity warning * @id js/react/unused-or-undefined-state-property - * @tags correctness + * @tags quality * reliability + * correctness * frameworks/react * @precision high */ diff --git a/javascript/ql/src/RegExp/BackrefBeforeGroup.ql b/javascript/ql/src/RegExp/BackrefBeforeGroup.ql index abbc95e40b9..3572bf2cbc6 100644 --- a/javascript/ql/src/RegExp/BackrefBeforeGroup.ql +++ b/javascript/ql/src/RegExp/BackrefBeforeGroup.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/regex/back-reference-before-group - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * @precision very-high diff --git a/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql b/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql index b2ad4722011..6a5e1528d6d 100644 --- a/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql +++ b/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id js/regex/back-reference-to-negative-lookahead - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * @precision very-high diff --git a/javascript/ql/src/RegExp/EmptyCharacterClass.ql b/javascript/ql/src/RegExp/EmptyCharacterClass.ql index f991de9759d..fb336c3fbe8 100644 --- a/javascript/ql/src/RegExp/EmptyCharacterClass.ql +++ b/javascript/ql/src/RegExp/EmptyCharacterClass.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity warning * @id js/regex/empty-character-class - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * @precision very-high diff --git a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql index 1d063534903..0a9a37120d7 100644 --- a/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +++ b/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql @@ -4,9 +4,10 @@ * @kind problem * @problem.severity warning * @id js/regex/always-matches - * @tags correctness + * @tags quality + * reliability + * correctness * regular-expressions - * quality * @precision high */ diff --git a/javascript/ql/src/RegExp/UnboundBackref.ql b/javascript/ql/src/RegExp/UnboundBackref.ql index 00cc9536f12..026c5472fb5 100644 --- a/javascript/ql/src/RegExp/UnboundBackref.ql +++ b/javascript/ql/src/RegExp/UnboundBackref.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity warning * @id js/regex/unbound-back-reference - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * @precision very-high diff --git a/javascript/ql/src/RegExp/UnmatchableCaret.ql b/javascript/ql/src/RegExp/UnmatchableCaret.ql index 4dd5a6dc26b..401b8db73c5 100644 --- a/javascript/ql/src/RegExp/UnmatchableCaret.ql +++ b/javascript/ql/src/RegExp/UnmatchableCaret.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/regex/unmatchable-caret - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * external/cwe/cwe-561 diff --git a/javascript/ql/src/RegExp/UnmatchableDollar.ql b/javascript/ql/src/RegExp/UnmatchableDollar.ql index 59005b45410..c5b8cd9781f 100644 --- a/javascript/ql/src/RegExp/UnmatchableDollar.ql +++ b/javascript/ql/src/RegExp/UnmatchableDollar.ql @@ -6,7 +6,8 @@ * @kind problem * @problem.severity error * @id js/regex/unmatchable-dollar - * @tags reliability + * @tags quality + * reliability * correctness * regular-expressions * external/cwe/cwe-561 diff --git a/javascript/ql/src/Statements/DanglingElse.ql b/javascript/ql/src/Statements/DanglingElse.ql index bd9ea782db7..fdea5f67a86 100644 --- a/javascript/ql/src/Statements/DanglingElse.ql +++ b/javascript/ql/src/Statements/DanglingElse.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/misleading-indentation-of-dangling-else - * @tags readability + * @tags quality + * maintainability + * readability * statistical * non-attributable * external/cwe/cwe-483 diff --git a/javascript/ql/src/Statements/IgnoreArrayResult.ql b/javascript/ql/src/Statements/IgnoreArrayResult.ql index 9123b520f6f..dbf035cdb64 100644 --- a/javascript/ql/src/Statements/IgnoreArrayResult.ql +++ b/javascript/ql/src/Statements/IgnoreArrayResult.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity warning * @id js/ignore-array-result - * @tags maintainability + * @tags quality + * reliability * correctness * @precision high */ diff --git a/javascript/ql/src/Statements/InconsistentLoopOrientation.ql b/javascript/ql/src/Statements/InconsistentLoopOrientation.ql index 7692a9d3d20..42d8912e015 100644 --- a/javascript/ql/src/Statements/InconsistentLoopOrientation.ql +++ b/javascript/ql/src/Statements/InconsistentLoopOrientation.ql @@ -8,7 +8,9 @@ * @kind problem * @problem.severity error * @id js/inconsistent-loop-direction - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-835 * @precision very-high */ diff --git a/javascript/ql/src/Statements/LabelInCase.ql b/javascript/ql/src/Statements/LabelInCase.ql index e88d366136f..b401e89d0fa 100644 --- a/javascript/ql/src/Statements/LabelInCase.ql +++ b/javascript/ql/src/Statements/LabelInCase.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id js/label-in-switch - * @tags reliability + * @tags quality + * maintainability * readability * @precision very-high */ diff --git a/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql b/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql index 91ee1bd4c00..abfd9cde4ac 100644 --- a/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql +++ b/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/misleading-indentation-after-control-statement - * @tags correctness + * @tags quality + * maintainability + * readability * statistical * non-attributable * external/cwe/cwe-483 diff --git a/javascript/ql/src/Statements/ReturnAssignsLocal.ql b/javascript/ql/src/Statements/ReturnAssignsLocal.ql index 6056914fd80..7ac1fa7fd5f 100644 --- a/javascript/ql/src/Statements/ReturnAssignsLocal.ql +++ b/javascript/ql/src/Statements/ReturnAssignsLocal.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id js/useless-assignment-in-return - * @tags maintainability + * @tags quality + * maintainability * readability * external/cwe/cwe-563 * @precision very-high diff --git a/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql b/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql index ba0d523ae75..308c5412d9b 100644 --- a/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql +++ b/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity error * @id js/unused-loop-variable - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * @precision high */ diff --git a/javascript/ql/src/Statements/UnreachableStatement.ql b/javascript/ql/src/Statements/UnreachableStatement.ql index 092189609c0..7ffd585563e 100644 --- a/javascript/ql/src/Statements/UnreachableStatement.ql +++ b/javascript/ql/src/Statements/UnreachableStatement.ql @@ -4,8 +4,9 @@ * @kind problem * @problem.severity warning * @id js/unreachable-statement - * @tags maintainability - * correctness + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 * @precision very-high */ diff --git a/javascript/ql/src/Statements/UseOfReturnlessFunction.ql b/javascript/ql/src/Statements/UseOfReturnlessFunction.ql index 818f0d922d4..4a381f4c2df 100644 --- a/javascript/ql/src/Statements/UseOfReturnlessFunction.ql +++ b/javascript/ql/src/Statements/UseOfReturnlessFunction.ql @@ -4,7 +4,8 @@ * @kind problem * @problem.severity warning * @id js/use-of-returnless-function - * @tags maintainability + * @tags quality + * reliability * correctness * @precision high */ diff --git a/javascript/ql/src/Statements/UselessComparisonTest.ql b/javascript/ql/src/Statements/UselessComparisonTest.ql index 6066d7c4329..dd87ed42b14 100644 --- a/javascript/ql/src/Statements/UselessComparisonTest.ql +++ b/javascript/ql/src/Statements/UselessComparisonTest.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id js/useless-comparison-test - * @tags correctness + * @tags quality + * reliability + * correctness * @precision high */ diff --git a/javascript/ql/src/Statements/UselessConditional.ql b/javascript/ql/src/Statements/UselessConditional.ql index cc70defa7b2..210f27bb1db 100644 --- a/javascript/ql/src/Statements/UselessConditional.ql +++ b/javascript/ql/src/Statements/UselessConditional.ql @@ -6,7 +6,9 @@ * @kind problem * @problem.severity warning * @id js/trivial-conditional - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-570 * external/cwe/cwe-571 * @precision very-high diff --git a/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql b/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql index 828ee373696..c7c97173d8b 100644 --- a/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql +++ b/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id js/vue/arrow-method-on-vue-instance - * @tags reliability + * @tags quality + * reliability + * correctness * frameworks/vue * @precision high */ From b14b661cd18b29a6e355e6e6ca4860820d79a8da Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 14:12:39 +0200 Subject: [PATCH 060/340] JS: add change note --- javascript/ql/src/change-notes/2025-06-16-mass-promotion.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-06-16-mass-promotion.md diff --git a/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md b/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md new file mode 100644 index 00000000000..dedaba09d1d --- /dev/null +++ b/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md @@ -0,0 +1,4 @@ +--- +category: queryMetadata +--- +* The `quality` tag has been added to multiple JavaScript quality queries, with tags for `reliability` or `maintainability` categories and their sub-categories. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. From 67aac7abfab8af3731ba7c06a1eb16d7f6bb6206 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 16:23:40 +0200 Subject: [PATCH 061/340] JS: add test cases for middleware property assignment tracking --- .../Security/CWE-918/RequestForgery.expected | 14 ++++++++++ .../Security/CWE-918/serverSide2.js | 27 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js diff --git a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index dde72095df1..b562fcd8992 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -6,6 +6,8 @@ | apollo.serverSide.ts:8:39:8:64 | get(fil ... => {}) | apollo.serverSide.ts:7:36:7:44 | { files } | apollo.serverSide.ts:8:43:8:50 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:8:43:8:50 | file.url | URL | apollo.serverSide.ts:7:36:7:44 | { files } | user-provided value | | apollo.serverSide.ts:18:37:18:62 | get(fil ... => {}) | apollo.serverSide.ts:17:34:17:42 | { files } | apollo.serverSide.ts:18:41:18:48 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:18:41:18:48 | file.url | URL | apollo.serverSide.ts:17:34:17:42 | { files } | user-provided value | | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | The $@ of this request depends on a $@. | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | endpoint | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | user-provided value | +| serverSide2.js:23:29:23:49 | axios.g ... etUrl2) | serverSide2.js:22:24:22:30 | req.url | serverSide2.js:23:39:23:48 | targetUrl2 | The $@ of this request depends on a $@. | serverSide2.js:23:39:23:48 | targetUrl2 | URL | serverSide2.js:22:24:22:30 | req.url | user-provided value | +| serverSide2.js:26:29:26:49 | axios.g ... etUrl3) | serverSide2.js:11:24:11:30 | req.url | serverSide2.js:26:39:26:48 | targetUrl3 | The $@ of this request depends on a $@. | serverSide2.js:26:39:26:48 | targetUrl3 | URL | serverSide2.js:11:24:11:30 | req.url | user-provided value | | serverSide.js:18:5:18:20 | request(tainted) | serverSide.js:14:29:14:35 | req.url | serverSide.js:18:13:18:19 | tainted | The $@ of this request depends on a $@. | serverSide.js:18:13:18:19 | tainted | URL | serverSide.js:14:29:14:35 | req.url | user-provided value | | serverSide.js:20:5:20:24 | request.get(tainted) | serverSide.js:14:29:14:35 | req.url | serverSide.js:20:17:20:23 | tainted | The $@ of this request depends on a $@. | serverSide.js:20:17:20:23 | tainted | URL | serverSide.js:14:29:14:35 | req.url | user-provided value | | serverSide.js:24:5:24:20 | request(options) | serverSide.js:14:29:14:35 | req.url | serverSide.js:23:19:23:25 | tainted | The $@ of this request depends on a $@. | serverSide.js:23:19:23:25 | tainted | URL | serverSide.js:14:29:14:35 | req.url | user-provided value | @@ -61,6 +63,11 @@ edges | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | axiosInterceptors.serverSide.js:19:11:19:17 | { url } | provenance | | | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | provenance | | | axiosInterceptors.serverSide.js:20:23:20:25 | url | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | provenance | | +| serverSide2.js:11:24:11:30 | req.url | serverSide2.js:25:24:25:41 | req.SomeObject.url | provenance | | +| serverSide2.js:22:11:22:36 | targetUrl2 | serverSide2.js:23:39:23:48 | targetUrl2 | provenance | | +| serverSide2.js:22:24:22:30 | req.url | serverSide2.js:22:11:22:36 | targetUrl2 | provenance | | +| serverSide2.js:25:11:25:47 | targetUrl3 | serverSide2.js:26:39:26:48 | targetUrl3 | provenance | | +| serverSide2.js:25:24:25:41 | req.SomeObject.url | serverSide2.js:25:11:25:47 | targetUrl3 | provenance | | | serverSide.js:14:9:14:52 | tainted | serverSide.js:18:13:18:19 | tainted | provenance | | | serverSide.js:14:9:14:52 | tainted | serverSide.js:20:17:20:23 | tainted | provenance | | | serverSide.js:14:9:14:52 | tainted | serverSide.js:23:19:23:25 | tainted | provenance | | @@ -153,6 +160,13 @@ nodes | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | semmle.label | req.body | | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | semmle.label | userProvidedUrl | | axiosInterceptors.serverSide.js:20:23:20:25 | url | semmle.label | url | +| serverSide2.js:11:24:11:30 | req.url | semmle.label | req.url | +| serverSide2.js:22:11:22:36 | targetUrl2 | semmle.label | targetUrl2 | +| serverSide2.js:22:24:22:30 | req.url | semmle.label | req.url | +| serverSide2.js:23:39:23:48 | targetUrl2 | semmle.label | targetUrl2 | +| serverSide2.js:25:11:25:47 | targetUrl3 | semmle.label | targetUrl3 | +| serverSide2.js:25:24:25:41 | req.SomeObject.url | semmle.label | req.SomeObject.url | +| serverSide2.js:26:39:26:48 | targetUrl3 | semmle.label | targetUrl3 | | serverSide.js:14:9:14:52 | tainted | semmle.label | tainted | | serverSide.js:14:19:14:42 | url.par ... , true) | semmle.label | url.par ... , true) | | serverSide.js:14:29:14:35 | req.url | semmle.label | req.url | diff --git a/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js new file mode 100644 index 00000000000..9f813c5b2c1 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js @@ -0,0 +1,27 @@ +const express = require('express'); +const axios = require('axios'); +const qs = require('qs'); + +const app = express(); +const PORT = 3000; + +app.use((req, res, next) => { + req.parsedQueryFromParsedUrl = qs.parse(req._parsedUrl.query); // $MISSING:Source[js/request-forgery] + req.parsedQuery.url = req.url || {}; // $MISSING:Source[js/request-forgery] + req.SomeObject.url = req.url; // $Source[js/request-forgery] + next(); +}); + +app.get('/proxy', async (req, res) => { + const targetUrl = req.parsedQuery.url; + const response = await axios.get(targetUrl); // $MISSING:Alert[js/request-forgery] + + const targetUrl1 = req.parsedQueryFromParsedUrl.url; + const response1 = await axios.get(targetUrl1); // $MISSING:Alert[js/request-forgery] + + const targetUrl2 = req.url || {}; // $Source[js/request-forgery] + const response2 = await axios.get(targetUrl2); // $Alert[js/request-forgery] + + const targetUrl3 = req.SomeObject.url || {}; + const response3 = await axios.get(targetUrl3); // $Alert[js/request-forgery] +}); From da21a064ac27c8a34b8426de367561c5ce29249b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 16:28:30 +0200 Subject: [PATCH 062/340] JS: add `_parsedUrl` as remote input source --- .../ql/lib/semmle/javascript/frameworks/Express.qll | 2 +- .../Security/CWE-918/RequestForgery.expected | 10 ++++++++++ .../test/query-tests/Security/CWE-918/serverSide2.js | 4 ++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll index ffeee7df73e..dac9fe0f118 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll @@ -620,7 +620,7 @@ module Express { or // `req.path` kind = "url" and - this = ref.getAPropertyRead("path") + this = ref.getAPropertyRead(["path", "_parsedUrl"]) ) } diff --git a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index b562fcd8992..bd1638abe44 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -6,6 +6,7 @@ | apollo.serverSide.ts:8:39:8:64 | get(fil ... => {}) | apollo.serverSide.ts:7:36:7:44 | { files } | apollo.serverSide.ts:8:43:8:50 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:8:43:8:50 | file.url | URL | apollo.serverSide.ts:7:36:7:44 | { files } | user-provided value | | apollo.serverSide.ts:18:37:18:62 | get(fil ... => {}) | apollo.serverSide.ts:17:34:17:42 | { files } | apollo.serverSide.ts:18:41:18:48 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:18:41:18:48 | file.url | URL | apollo.serverSide.ts:17:34:17:42 | { files } | user-provided value | | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | The $@ of this request depends on a $@. | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | endpoint | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | user-provided value | +| serverSide2.js:20:29:20:49 | axios.g ... etUrl1) | serverSide2.js:9:43:9:56 | req._parsedUrl | serverSide2.js:20:39:20:48 | targetUrl1 | The $@ of this request depends on a $@. | serverSide2.js:20:39:20:48 | targetUrl1 | URL | serverSide2.js:9:43:9:56 | req._parsedUrl | user-provided value | | serverSide2.js:23:29:23:49 | axios.g ... etUrl2) | serverSide2.js:22:24:22:30 | req.url | serverSide2.js:23:39:23:48 | targetUrl2 | The $@ of this request depends on a $@. | serverSide2.js:23:39:23:48 | targetUrl2 | URL | serverSide2.js:22:24:22:30 | req.url | user-provided value | | serverSide2.js:26:29:26:49 | axios.g ... etUrl3) | serverSide2.js:11:24:11:30 | req.url | serverSide2.js:26:39:26:48 | targetUrl3 | The $@ of this request depends on a $@. | serverSide2.js:26:39:26:48 | targetUrl3 | URL | serverSide2.js:11:24:11:30 | req.url | user-provided value | | serverSide.js:18:5:18:20 | request(tainted) | serverSide.js:14:29:14:35 | req.url | serverSide.js:18:13:18:19 | tainted | The $@ of this request depends on a $@. | serverSide.js:18:13:18:19 | tainted | URL | serverSide.js:14:29:14:35 | req.url | user-provided value | @@ -63,7 +64,11 @@ edges | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | axiosInterceptors.serverSide.js:19:11:19:17 | { url } | provenance | | | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | provenance | | | axiosInterceptors.serverSide.js:20:23:20:25 | url | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | provenance | | +| serverSide2.js:9:34:9:63 | qs.pars ... .query) | serverSide2.js:19:24:19:51 | req.par ... rsedUrl | provenance | | +| serverSide2.js:9:43:9:56 | req._parsedUrl | serverSide2.js:9:34:9:63 | qs.pars ... .query) | provenance | | | serverSide2.js:11:24:11:30 | req.url | serverSide2.js:25:24:25:41 | req.SomeObject.url | provenance | | +| serverSide2.js:19:11:19:55 | targetUrl1 | serverSide2.js:20:39:20:48 | targetUrl1 | provenance | | +| serverSide2.js:19:24:19:51 | req.par ... rsedUrl | serverSide2.js:19:11:19:55 | targetUrl1 | provenance | | | serverSide2.js:22:11:22:36 | targetUrl2 | serverSide2.js:23:39:23:48 | targetUrl2 | provenance | | | serverSide2.js:22:24:22:30 | req.url | serverSide2.js:22:11:22:36 | targetUrl2 | provenance | | | serverSide2.js:25:11:25:47 | targetUrl3 | serverSide2.js:26:39:26:48 | targetUrl3 | provenance | | @@ -160,7 +165,12 @@ nodes | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | semmle.label | req.body | | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | semmle.label | userProvidedUrl | | axiosInterceptors.serverSide.js:20:23:20:25 | url | semmle.label | url | +| serverSide2.js:9:34:9:63 | qs.pars ... .query) | semmle.label | qs.pars ... .query) | +| serverSide2.js:9:43:9:56 | req._parsedUrl | semmle.label | req._parsedUrl | | serverSide2.js:11:24:11:30 | req.url | semmle.label | req.url | +| serverSide2.js:19:11:19:55 | targetUrl1 | semmle.label | targetUrl1 | +| serverSide2.js:19:24:19:51 | req.par ... rsedUrl | semmle.label | req.par ... rsedUrl | +| serverSide2.js:20:39:20:48 | targetUrl1 | semmle.label | targetUrl1 | | serverSide2.js:22:11:22:36 | targetUrl2 | semmle.label | targetUrl2 | | serverSide2.js:22:24:22:30 | req.url | semmle.label | req.url | | serverSide2.js:23:39:23:48 | targetUrl2 | semmle.label | targetUrl2 | diff --git a/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js index 9f813c5b2c1..8c96f895f49 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js +++ b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js @@ -6,7 +6,7 @@ const app = express(); const PORT = 3000; app.use((req, res, next) => { - req.parsedQueryFromParsedUrl = qs.parse(req._parsedUrl.query); // $MISSING:Source[js/request-forgery] + req.parsedQueryFromParsedUrl = qs.parse(req._parsedUrl.query); // $Source[js/request-forgery] req.parsedQuery.url = req.url || {}; // $MISSING:Source[js/request-forgery] req.SomeObject.url = req.url; // $Source[js/request-forgery] next(); @@ -17,7 +17,7 @@ app.get('/proxy', async (req, res) => { const response = await axios.get(targetUrl); // $MISSING:Alert[js/request-forgery] const targetUrl1 = req.parsedQueryFromParsedUrl.url; - const response1 = await axios.get(targetUrl1); // $MISSING:Alert[js/request-forgery] + const response1 = await axios.get(targetUrl1); // $Alert[js/request-forgery] const targetUrl2 = req.url || {}; // $Source[js/request-forgery] const response2 = await axios.get(targetUrl2); // $Alert[js/request-forgery] From 060b98d36cecc0ad9eea1423452753bdc19e1ce3 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 16:31:17 +0200 Subject: [PATCH 063/340] JS: enchance middleware taint tracking via local source --- javascript/ql/lib/semmle/javascript/Routing.qll | 2 +- .../query-tests/Security/CWE-918/RequestForgery.expected | 8 ++++++++ .../ql/test/query-tests/Security/CWE-918/serverSide2.js | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Routing.qll b/javascript/ql/lib/semmle/javascript/Routing.qll index 530322a2d2c..8fe9f79d862 100644 --- a/javascript/ql/lib/semmle/javascript/Routing.qll +++ b/javascript/ql/lib/semmle/javascript/Routing.qll @@ -925,7 +925,7 @@ module Routing { private DataFlow::Node getAnAccessPathRhs(Node base, int n, string path) { // Assigned in the body of a route handler function, which is a middleware exists(RouteHandler handler | base = handler | - result = AccessPath::getAnAssignmentTo(handler.getParameter(n).ref(), path) and + result = AccessPath::getAnAssignmentTo(handler.getParameter(n).ref(), path).getALocalSource() and ( exists(handler.getAContinuationInvocation()) or diff --git a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected index bd1638abe44..8f340596bab 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected +++ b/javascript/ql/test/query-tests/Security/CWE-918/RequestForgery.expected @@ -6,6 +6,7 @@ | apollo.serverSide.ts:8:39:8:64 | get(fil ... => {}) | apollo.serverSide.ts:7:36:7:44 | { files } | apollo.serverSide.ts:8:43:8:50 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:8:43:8:50 | file.url | URL | apollo.serverSide.ts:7:36:7:44 | { files } | user-provided value | | apollo.serverSide.ts:18:37:18:62 | get(fil ... => {}) | apollo.serverSide.ts:17:34:17:42 | { files } | apollo.serverSide.ts:18:41:18:48 | file.url | The $@ of this request depends on a $@. | apollo.serverSide.ts:18:41:18:48 | file.url | URL | apollo.serverSide.ts:17:34:17:42 | { files } | user-provided value | | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | The $@ of this request depends on a $@. | axiosInterceptors.serverSide.js:11:26:11:40 | userProvidedUrl | endpoint | axiosInterceptors.serverSide.js:19:21:19:28 | req.body | user-provided value | +| serverSide2.js:17:28:17:47 | axios.get(targetUrl) | serverSide2.js:10:25:10:31 | req.url | serverSide2.js:17:38:17:46 | targetUrl | The $@ of this request depends on a $@. | serverSide2.js:17:38:17:46 | targetUrl | URL | serverSide2.js:10:25:10:31 | req.url | user-provided value | | serverSide2.js:20:29:20:49 | axios.g ... etUrl1) | serverSide2.js:9:43:9:56 | req._parsedUrl | serverSide2.js:20:39:20:48 | targetUrl1 | The $@ of this request depends on a $@. | serverSide2.js:20:39:20:48 | targetUrl1 | URL | serverSide2.js:9:43:9:56 | req._parsedUrl | user-provided value | | serverSide2.js:23:29:23:49 | axios.g ... etUrl2) | serverSide2.js:22:24:22:30 | req.url | serverSide2.js:23:39:23:48 | targetUrl2 | The $@ of this request depends on a $@. | serverSide2.js:23:39:23:48 | targetUrl2 | URL | serverSide2.js:22:24:22:30 | req.url | user-provided value | | serverSide2.js:26:29:26:49 | axios.g ... etUrl3) | serverSide2.js:11:24:11:30 | req.url | serverSide2.js:26:39:26:48 | targetUrl3 | The $@ of this request depends on a $@. | serverSide2.js:26:39:26:48 | targetUrl3 | URL | serverSide2.js:11:24:11:30 | req.url | user-provided value | @@ -66,7 +67,10 @@ edges | axiosInterceptors.serverSide.js:20:23:20:25 | url | axiosInterceptors.serverSide.js:20:5:20:25 | userProvidedUrl | provenance | | | serverSide2.js:9:34:9:63 | qs.pars ... .query) | serverSide2.js:19:24:19:51 | req.par ... rsedUrl | provenance | | | serverSide2.js:9:43:9:56 | req._parsedUrl | serverSide2.js:9:34:9:63 | qs.pars ... .query) | provenance | | +| serverSide2.js:10:25:10:31 | req.url | serverSide2.js:16:23:16:41 | req.parsedQuery.url | provenance | | | serverSide2.js:11:24:11:30 | req.url | serverSide2.js:25:24:25:41 | req.SomeObject.url | provenance | | +| serverSide2.js:16:11:16:41 | targetUrl | serverSide2.js:17:38:17:46 | targetUrl | provenance | | +| serverSide2.js:16:23:16:41 | req.parsedQuery.url | serverSide2.js:16:11:16:41 | targetUrl | provenance | | | serverSide2.js:19:11:19:55 | targetUrl1 | serverSide2.js:20:39:20:48 | targetUrl1 | provenance | | | serverSide2.js:19:24:19:51 | req.par ... rsedUrl | serverSide2.js:19:11:19:55 | targetUrl1 | provenance | | | serverSide2.js:22:11:22:36 | targetUrl2 | serverSide2.js:23:39:23:48 | targetUrl2 | provenance | | @@ -167,7 +171,11 @@ nodes | axiosInterceptors.serverSide.js:20:23:20:25 | url | semmle.label | url | | serverSide2.js:9:34:9:63 | qs.pars ... .query) | semmle.label | qs.pars ... .query) | | serverSide2.js:9:43:9:56 | req._parsedUrl | semmle.label | req._parsedUrl | +| serverSide2.js:10:25:10:31 | req.url | semmle.label | req.url | | serverSide2.js:11:24:11:30 | req.url | semmle.label | req.url | +| serverSide2.js:16:11:16:41 | targetUrl | semmle.label | targetUrl | +| serverSide2.js:16:23:16:41 | req.parsedQuery.url | semmle.label | req.parsedQuery.url | +| serverSide2.js:17:38:17:46 | targetUrl | semmle.label | targetUrl | | serverSide2.js:19:11:19:55 | targetUrl1 | semmle.label | targetUrl1 | | serverSide2.js:19:24:19:51 | req.par ... rsedUrl | semmle.label | req.par ... rsedUrl | | serverSide2.js:20:39:20:48 | targetUrl1 | semmle.label | targetUrl1 | diff --git a/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js index 8c96f895f49..7743d0eec38 100644 --- a/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js +++ b/javascript/ql/test/query-tests/Security/CWE-918/serverSide2.js @@ -7,14 +7,14 @@ const PORT = 3000; app.use((req, res, next) => { req.parsedQueryFromParsedUrl = qs.parse(req._parsedUrl.query); // $Source[js/request-forgery] - req.parsedQuery.url = req.url || {}; // $MISSING:Source[js/request-forgery] + req.parsedQuery.url = req.url || {}; // $Source[js/request-forgery] req.SomeObject.url = req.url; // $Source[js/request-forgery] next(); }); app.get('/proxy', async (req, res) => { const targetUrl = req.parsedQuery.url; - const response = await axios.get(targetUrl); // $MISSING:Alert[js/request-forgery] + const response = await axios.get(targetUrl); // $Alert[js/request-forgery] const targetUrl1 = req.parsedQueryFromParsedUrl.url; const response1 = await axios.get(targetUrl1); // $Alert[js/request-forgery] From 72528749f2e291e360e678bdcf41e9f0812783ba Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Mon, 16 Jun 2025 16:35:39 +0200 Subject: [PATCH 064/340] JS: add change note --- .../ql/lib/change-notes/2025-06-16-middleware-express.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-16-middleware-express.md diff --git a/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md b/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md new file mode 100644 index 00000000000..600aad8bafc --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md @@ -0,0 +1,5 @@ +--- +category: minorAnalysis +--- +* Improved data flow tracking through middleware to handle default value and similar patterns. +* Added `req._parsedUrl` as a remote input source. From ebdffcc4ef32b7ea1da4f49ecefa9ce0f960f67c Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 16 Jun 2025 12:51:36 +0200 Subject: [PATCH 065/340] Rust: Refactor and generalize `Call` --- .../lib/codeql/rust/controlflow/CfgNodes.qll | 4 +- .../rust/dataflow/internal/DataFlowImpl.qll | 4 +- rust/ql/lib/codeql/rust/elements/Call.qll | 2 + .../rust/elements/internal/CallImpl.qll | 95 ++++++++++++------- .../codeql/rust/internal/TypeInference.qll | 69 +++++++------- 5 files changed, 102 insertions(+), 72 deletions(-) diff --git a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll index 0c4ce51f619..1aed1cfa026 100644 --- a/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll +++ b/rust/ql/lib/codeql/rust/controlflow/CfgNodes.qll @@ -182,8 +182,8 @@ final class CallCfgNode extends ExprCfgNode { } /** Gets the `i`th argument of this call, if any. */ - ExprCfgNode getArgument(int i) { - any(ChildMapping mapping).hasCfgChild(node, node.getArgument(i), this, result) + ExprCfgNode getPositionalArgument(int i) { + any(ChildMapping mapping).hasCfgChild(node, node.getPositionalArgument(i), this, result) } } diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 2cf9cc21668..aa27a7a53bb 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -133,7 +133,7 @@ final class ParameterPosition extends TParameterPosition { final class ArgumentPosition extends ParameterPosition { /** Gets the argument of `call` at this position, if any. */ Expr getArgument(Call call) { - result = call.getArgument(this.getPosition()) + result = call.getPositionalArgument(this.getPosition()) or result = call.getReceiver() and this.isSelf() } @@ -146,7 +146,7 @@ final class ArgumentPosition extends ParameterPosition { * as the synthetic `ReceiverNode` is the argument for the `self` parameter. */ predicate isArgumentForCall(ExprCfgNode arg, CallCfgNode call, ParameterPosition pos) { - call.getArgument(pos.getPosition()) = arg + call.getPositionalArgument(pos.getPosition()) = arg or call.getReceiver() = arg and pos.isSelf() and not call.getCall().receiverImplicitlyBorrowed() } diff --git a/rust/ql/lib/codeql/rust/elements/Call.qll b/rust/ql/lib/codeql/rust/elements/Call.qll index a65fb3dadb0..0fd7f1397e2 100644 --- a/rust/ql/lib/codeql/rust/elements/Call.qll +++ b/rust/ql/lib/codeql/rust/elements/Call.qll @@ -4,4 +4,6 @@ private import internal.CallImpl +final class ArgumentPosition = Impl::ArgumentPosition; + final class Call = Impl::Call; diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll index 27dfd2a93fc..1ea0842bdaf 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll @@ -5,20 +5,37 @@ private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl private import codeql.rust.elements.Operation module Impl { + newtype TArgumentPosition = + TPositionalArgumentPosition(int i) { + i in [0 .. max([any(ParamList l).getNumberOfParams(), any(ArgList l).getNumberOfArgs()]) - 1] + } or + TSelfArgumentPosition() + + /** An argument position in a call. */ + class ArgumentPosition extends TArgumentPosition { + /** Gets the index of the argument in the call, if this is a positional argument. */ + int asPosition() { this = TPositionalArgumentPosition(result) } + + /** Holds if this call position is a self argument. */ + predicate isSelf() { this instanceof TSelfArgumentPosition } + + /** Gets a string representation of this argument position. */ + string toString() { + result = this.asPosition().toString() + or + this.isSelf() and result = "self" + } + } + /** * An expression that calls a function. * - * This class abstracts over the different ways in which a function can be called in Rust. + * This class abstracts over the different ways in which a function can be + * called in Rust. */ abstract class Call extends ExprImpl::Expr { - /** Gets the number of arguments _excluding_ any `self` argument. */ - abstract int getNumberOfArguments(); - - /** Gets the receiver of this call if it is a method call. */ - abstract Expr getReceiver(); - - /** Holds if the call has a receiver that might be implicitly borrowed. */ - abstract predicate receiverImplicitlyBorrowed(); + /** Holds if the receiver of this call is implicitly borrowed. */ + predicate receiverImplicitlyBorrowed() { this.implicitBorrowAt(TSelfArgumentPosition()) } /** Gets the trait targeted by this call, if any. */ abstract Trait getTrait(); @@ -26,8 +43,20 @@ module Impl { /** Gets the name of the method called if this call is a method call. */ abstract string getMethodName(); + /** Gets the argument at the given position, if any. */ + abstract Expr getArgument(ArgumentPosition pos); + + /** Holds if the argument at `pos` might be implicitly borrowed. */ + abstract predicate implicitBorrowAt(ArgumentPosition pos); + + /** Gets the number of arguments _excluding_ any `self` argument. */ + int getNumberOfArguments() { result = count(this.getArgument(TPositionalArgumentPosition(_))) } + /** Gets the `i`th argument of this call, if any. */ - abstract Expr getArgument(int i); + Expr getPositionalArgument(int i) { result = this.getArgument(TPositionalArgumentPosition(i)) } + + /** Gets the receiver of this call if it is a method call. */ + Expr getReceiver() { result = this.getArgument(TSelfArgumentPosition()) } /** Gets the static target of this call, if any. */ Function getStaticTarget() { @@ -54,15 +83,13 @@ module Impl { override string getMethodName() { none() } - override Expr getReceiver() { none() } - override Trait getTrait() { none() } - override predicate receiverImplicitlyBorrowed() { none() } + override predicate implicitBorrowAt(ArgumentPosition pos) { none() } - override int getNumberOfArguments() { result = super.getArgList().getNumberOfArgs() } - - override Expr getArgument(int i) { result = super.getArgList().getArg(i) } + override Expr getArgument(ArgumentPosition pos) { + result = super.getArgList().getArg(pos.asPosition()) + } } private class CallExprMethodCall extends Call instanceof CallExpr { @@ -73,8 +100,6 @@ module Impl { override string getMethodName() { result = methodName } - override Expr getReceiver() { result = super.getArgList().getArg(0) } - override Trait getTrait() { result = resolvePath(qualifier) and // When the qualifier is `Self` and resolves to a trait, it's inside a @@ -84,25 +109,27 @@ module Impl { qualifier.toString() != "Self" } - override predicate receiverImplicitlyBorrowed() { none() } + override predicate implicitBorrowAt(ArgumentPosition pos) { none() } - override int getNumberOfArguments() { result = super.getArgList().getNumberOfArgs() - 1 } - - override Expr getArgument(int i) { result = super.getArgList().getArg(i + 1) } + override Expr getArgument(ArgumentPosition pos) { + pos.isSelf() and result = super.getArgList().getArg(0) + or + result = super.getArgList().getArg(pos.asPosition() + 1) + } } private class MethodCallExprCall extends Call instanceof MethodCallExpr { override string getMethodName() { result = super.getIdentifier().getText() } - override Expr getReceiver() { result = this.(MethodCallExpr).getReceiver() } - override Trait getTrait() { none() } - override predicate receiverImplicitlyBorrowed() { any() } + override predicate implicitBorrowAt(ArgumentPosition pos) { pos.isSelf() } - override int getNumberOfArguments() { result = super.getArgList().getNumberOfArgs() } - - override Expr getArgument(int i) { result = super.getArgList().getArg(i) } + override Expr getArgument(ArgumentPosition pos) { + pos.isSelf() and result = this.(MethodCallExpr).getReceiver() + or + result = super.getArgList().getArg(pos.asPosition()) + } } private class OperatorCall extends Call instanceof Operation { @@ -113,14 +140,14 @@ module Impl { override string getMethodName() { result = methodName } - override Expr getReceiver() { result = super.getOperand(0) } - override Trait getTrait() { result = trait } - override predicate receiverImplicitlyBorrowed() { none() } + override predicate implicitBorrowAt(ArgumentPosition pos) { none() } - override int getNumberOfArguments() { result = super.getNumberOfOperands() - 1 } - - override Expr getArgument(int i) { result = super.getOperand(1) and i = 0 } + override Expr getArgument(ArgumentPosition pos) { + pos.isSelf() and result = super.getOperand(0) + or + pos.asPosition() = 0 and result = super.getOperand(1) + } } } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 3248812b2bf..c72064a90dd 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -503,22 +503,20 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { private predicate paramPos(ParamList pl, Param p, int pos) { p = pl.getParam(pos) } private newtype TDeclarationPosition = - TSelfDeclarationPosition() or - TPositionalDeclarationPosition(int pos) { paramPos(_, _, pos) } or + TArgumentDeclarationPosition(ArgumentPosition pos) or TReturnDeclarationPosition() class DeclarationPosition extends TDeclarationPosition { - predicate isSelf() { this = TSelfDeclarationPosition() } + predicate isSelf() { this.asArgumentPosition().isSelf() } - int asPosition() { this = TPositionalDeclarationPosition(result) } + int asPosition() { result = this.asArgumentPosition().asPosition() } + + ArgumentPosition asArgumentPosition() { this = TArgumentDeclarationPosition(result) } predicate isReturn() { this = TReturnDeclarationPosition() } string toString() { - this.isSelf() and - result = "self" - or - result = this.asPosition().toString() + result = this.asArgumentPosition().toString() or this.isReturn() and result = "(return)" @@ -551,7 +549,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { override Type getParameterType(DeclarationPosition dpos, TypePath path) { exists(int pos | result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and - dpos = TPositionalDeclarationPosition(pos) + pos = dpos.asPosition() ) } @@ -572,9 +570,9 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } override Type getParameterType(DeclarationPosition dpos, TypePath path) { - exists(int p | - result = this.getTupleField(p).getTypeRepr().(TypeMention).resolveTypeAt(path) and - dpos = TPositionalDeclarationPosition(p) + exists(int pos | + result = this.getTupleField(pos).getTypeRepr().(TypeMention).resolveTypeAt(path) and + pos = dpos.asPosition() ) } @@ -609,7 +607,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { override Type getParameterType(DeclarationPosition dpos, TypePath path) { exists(Param p, int i | paramPos(this.getParamList(), p, i) and - dpos = TPositionalDeclarationPosition(i) and + i = dpos.asPosition() and result = inferAnnotatedType(p.getPat(), path) ) or @@ -642,22 +640,21 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } private newtype TAccessPosition = - TSelfAccessPosition(Boolean implicitlyBorrowed) or - TPositionalAccessPosition(int pos) { exists(TPositionalDeclarationPosition(pos)) } or + TArgumentAccessPosition(ArgumentPosition pos, Boolean borrowed) or TReturnAccessPosition() class AccessPosition extends TAccessPosition { - predicate isSelf(boolean implicitlyBorrowed) { this = TSelfAccessPosition(implicitlyBorrowed) } + ArgumentPosition getArgumentPosition() { this = TArgumentAccessPosition(result, _) } - int asPosition() { this = TPositionalAccessPosition(result) } + predicate isBorrowed() { this = TArgumentAccessPosition(_, true) } predicate isReturn() { this = TReturnAccessPosition() } string toString() { - this.isSelf(_) and - result = "self" - or - result = this.asPosition().toString() + exists(ArgumentPosition pos, boolean borrowed | + this = TArgumentAccessPosition(pos, borrowed) and + result = pos + ":" + borrowed + ) or this.isReturn() and result = "(return)" @@ -677,10 +674,11 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } AstNode getNodeAt(AccessPosition apos) { - result = this.getArgument(apos.asPosition()) - or - result = this.getReceiver() and - if this.receiverImplicitlyBorrowed() then apos.isSelf(true) else apos.isSelf(false) + exists(ArgumentPosition pos, boolean borrowed | + apos = TArgumentAccessPosition(pos, borrowed) and + result = this.getArgument(pos) and + if this.implicitBorrowAt(pos) then borrowed = true else borrowed = false + ) or result = this and apos.isReturn() } @@ -697,9 +695,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } predicate accessDeclarationPositionMatch(AccessPosition apos, DeclarationPosition dpos) { - apos.isSelf(_) and dpos.isSelf() - or - apos.asPosition() = dpos.asPosition() + apos.getArgumentPosition() = dpos.asArgumentPosition() or apos.isReturn() and dpos.isReturn() } @@ -709,10 +705,13 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { predicate adjustAccessType( AccessPosition apos, Declaration target, TypePath path, Type t, TypePath pathAdj, Type tAdj ) { - if apos.isSelf(true) + if apos.getArgumentPosition().isSelf() and apos.isBorrowed() then exists(Type selfParamType | - selfParamType = target.getParameterType(TSelfDeclarationPosition(), TypePath::nil()) + selfParamType = + target + .getParameterType(TArgumentDeclarationPosition(apos.getArgumentPosition()), + TypePath::nil()) | if selfParamType = TRefType() then @@ -771,7 +770,7 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { // temporary workaround until implicit borrows are handled correctly if a instanceof Operation then apos.isReturn() else any() | - if apos.isSelf(_) + if apos.getArgumentPosition().isSelf() then exists(Type receiverType | receiverType = inferType(n) | if receiverType = TRefType() @@ -1356,7 +1355,7 @@ private Function getMethodFromImpl(MethodCall mc) { or exists(int pos, TypePath path, Type type | methodResolutionDependsOnArgument(impl, mc.getMethodName(), result, pos, path, type) and - inferType(mc.getArgument(pos), path) = type + inferType(mc.getPositionalArgument(pos), path) = type ) ) } @@ -1391,7 +1390,8 @@ private module Cached { cached predicate receiverHasImplicitDeref(AstNode receiver) { exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | - apos.isSelf(true) and + apos.getArgumentPosition().isSelf() and + apos.isBorrowed() and receiver = a.getNodeAt(apos) and inferType(receiver) = TRefType() and CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) != TRefType() @@ -1402,7 +1402,8 @@ private module Cached { cached predicate receiverHasImplicitBorrow(AstNode receiver) { exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | - apos.isSelf(true) and + apos.getArgumentPosition().isSelf() and + apos.isBorrowed() and receiver = a.getNodeAt(apos) and CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) = TRefType() and inferType(receiver) != TRefType() From cc234f2d19d7d4c8ef9d8dc86077fb73ef30f2e3 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 16 Jun 2025 19:48:38 +0200 Subject: [PATCH 066/340] Rust: Add a type inference test --- .../test/library-tests/type-inference/main.rs | 9 + .../type-inference/type-inference.expected | 1881 +++++++++-------- 2 files changed, 956 insertions(+), 934 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index f90ba34c34e..3e8e577f3ef 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1325,6 +1325,11 @@ mod overloadable_operators { x: i64, y: i64, } + impl Default for Vec2 { + fn default() -> Self { + Vec2 { x: 0, y: 0 } + } + } // Implement all overloadable operators for Vec2 impl Add for Vec2 { type Output = Self; @@ -1671,6 +1676,10 @@ mod overloadable_operators { // Prefix operators let vec2_neg = -v1; // $ type=vec2_neg:Vec2 method=Vec2::neg let vec2_not = !v1; // $ type=vec2_not:Vec2 method=Vec2::not + + // Here the type of `default_vec2` must be inferred from the `+` call. + let default_vec2 = Default::default(); // $ MISSING: type=default_vec2:Vec2 + let vec2_zero_plus = Vec2 { x: 0, y: 0 } + default_vec2; // $ method=Vec2::add } } 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 f42cd0f843f..78f1ae26daa 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1754,944 +1754,957 @@ inferType | main.rs:1313:13:1313:17 | ... = ... | | file://:0:0:0:0 | () | | main.rs:1313:17:1313:17 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1315:9:1315:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1332:16:1332:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1332:22:1332:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1332:41:1337:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1333:13:1336:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1334:20:1334:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1334:20:1334:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1334:20:1334:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1334:29:1334:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1334:29:1334:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1335:20:1335:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1335:20:1335:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1335:20:1335:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1335:29:1335:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1335:29:1335:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1342:23:1342:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1342:23:1342:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1342:34:1342:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1343:13:1343:16 | self | | file://:0:0:0:0 | & | -| main.rs:1343:13:1343:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1343:13:1343:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1343:13:1343:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1343:23:1343:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1343:23:1343:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1344:13:1344:16 | self | | file://:0:0:0:0 | & | -| main.rs:1344:13:1344:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1344:13:1344:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1344:13:1344:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1344:23:1344:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1344:23:1344:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1350:16:1350:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1350:22:1350:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1350:41:1355:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1351:13:1354:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1352:20:1352:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1352:20:1352:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1352:20:1352:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1352:29:1352:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1352:29:1352:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1353:20:1353:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1353:20:1353:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1353:20:1353:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1353:29:1353:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1353:29:1353:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1360:23:1360:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1360:23:1360:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1360:34:1360:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1361:13:1361:16 | self | | file://:0:0:0:0 | & | -| main.rs:1361:13:1361:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1361:13:1361:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1361:13:1361:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1361:23:1361:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1361:23:1361:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1362:13:1362:16 | self | | file://:0:0:0:0 | & | -| main.rs:1362:13:1362:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1362:13:1362:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1362:13:1362:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1362:23:1362:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1362:23:1362:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1368:16:1368:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1368:22:1368:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1368:41:1373:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1369:13:1372:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1370:20:1370:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1370:20:1370:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1370:20:1370:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1370:29:1370:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1370:29:1370:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1371:20:1371:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1371:20:1371:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1371:20:1371:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1371:29:1371:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1371:29:1371:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1377:23:1377:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1377:23:1377:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1377:34:1377:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1378:13:1378:16 | self | | file://:0:0:0:0 | & | -| main.rs:1378:13:1378:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1378:13:1378:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1378:13:1378:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1378:23:1378:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1378:23:1378:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1379:13:1379:16 | self | | file://:0:0:0:0 | & | -| main.rs:1379:13:1379:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1379:13:1379:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1379:13:1379:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1379:23:1379:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1379:23:1379:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1385:16:1385:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1385:22:1385:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1385:41:1390:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1386:13:1389:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1387:20:1387:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1387:20:1387:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1387:20:1387:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1387:29:1387:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1387:29:1387:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1388:20:1388:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1388:20:1388:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1388:20:1388:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1388:29:1388:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1388:29:1388:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1394:23:1394:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1394:23:1394:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1394:34:1394:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1395:13:1395:16 | self | | file://:0:0:0:0 | & | -| main.rs:1395:13:1395:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1395:13:1395:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1395:13:1395:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1395:23:1395:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1395:23:1395:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1396:13:1396:16 | self | | file://:0:0:0:0 | & | -| main.rs:1396:13:1396:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1396:13:1396:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1396:13:1396:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1396:23:1396:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1396:23:1396:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1402:16:1402:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1402:22:1402:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1402:41:1407:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1403:13:1406:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1404:20:1404:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1404:20:1404:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1404:20:1404:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1404:29:1404:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1404:29:1404:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1405:20:1405:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1405:20:1405:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1405:20:1405:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1405:29:1405:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1405:29:1405:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1411:23:1411:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1411:23:1411:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1411:34:1411:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1412:13:1412:16 | self | | file://:0:0:0:0 | & | -| main.rs:1412:13:1412:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1412:13:1412:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1412:13:1412:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1412:23:1412:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1412:23:1412:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1413:13:1413:16 | self | | file://:0:0:0:0 | & | -| main.rs:1413:13:1413:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1413:13:1413:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1413:13:1413:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1413:23:1413:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1413:23:1413:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1419:19:1419:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1419:25:1419:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1419:44:1424:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1420:13:1423:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1421:20:1421:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1421:20:1421:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1421:20:1421:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1421:29:1421:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1421:29:1421:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1422:20:1422:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1422:20:1422:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1422:20:1422:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1422:29:1422:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1422:29:1422:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1428:26:1428:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1428:26:1428:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1428:37:1428:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1429:13:1429:16 | self | | file://:0:0:0:0 | & | -| main.rs:1429:13:1429:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1429:13:1429:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1429:13:1429:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1429:23:1429:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1429:23:1429:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1430:13:1430:16 | self | | file://:0:0:0:0 | & | -| main.rs:1430:13:1430:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1430:13:1430:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1430:13:1430:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1430:23:1430:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1430:23:1430:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1436:18:1436:21 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1436:24:1436:26 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1436:43:1441:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1437:13:1440:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1438:20:1438:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1438:20:1438:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1438:20:1438:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1438:29:1438:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1438:29:1438:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1439:20:1439:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1439:20:1439:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1439:20:1439:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1439:29:1439:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1439:29:1439:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1445:25:1445:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1445:25:1445:33 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1445:36:1445:38 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1446:13:1446:16 | self | | file://:0:0:0:0 | & | -| main.rs:1446:13:1446:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1446:13:1446:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1446:13:1446:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1446:23:1446:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1446:23:1446:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1447:13:1447:16 | self | | file://:0:0:0:0 | & | -| main.rs:1447:13:1447:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1447:13:1447:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1447:13:1447:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1447:23:1447:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1447:23:1447:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1453:19:1453:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1453:25:1453:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1453:44:1458:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1454:13:1457:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1455:20:1455:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1455:20:1455:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1455:20:1455:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1455:29:1455:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1455:29:1455:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1456:20:1456:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1456:20:1456:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1456:20:1456:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1456:29:1456:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1456:29:1456:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1462:26:1462:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1462:26:1462:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1462:37:1462:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1463:13:1463:16 | self | | file://:0:0:0:0 | & | -| main.rs:1463:13:1463:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1463:13:1463:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1463:13:1463:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1463:23:1463:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1463:23:1463:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1464:13:1464:16 | self | | file://:0:0:0:0 | & | -| main.rs:1464:13:1464:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1464:13:1464:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1464:13:1464:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1464:23:1464:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1464:23:1464:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1470:16:1470:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1470:22:1470:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1470:40:1475:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1471:13:1474:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1472:20:1472:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1472:20:1472:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1472:20:1472:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1472:30:1472:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1473:20:1473:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1473:20:1473:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1473:20:1473:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1473:30:1473:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1479:23:1479:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1479:23:1479:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1479:34:1479:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1480:13:1480:16 | self | | file://:0:0:0:0 | & | -| main.rs:1480:13:1480:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1480:13:1480:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1480:13:1480:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1480:24:1480:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1481:13:1481:16 | self | | file://:0:0:0:0 | & | -| main.rs:1481:13:1481:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1481:13:1481:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1481:13:1481:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1481:24:1481:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1487:16:1487:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1487:22:1487:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1487:40:1492:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1488:13:1491:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1489:20:1489:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1489:20:1489:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1489:20:1489:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1489:30:1489:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1490:20:1490:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1490:20:1490:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1490:20:1490:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1490:30:1490:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1496:23:1496:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1496:23:1496:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1496:34:1496:36 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1497:13:1497:16 | self | | file://:0:0:0:0 | & | -| main.rs:1497:13:1497:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1497:13:1497:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1497:13:1497:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1497:24:1497:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1498:13:1498:16 | self | | file://:0:0:0:0 | & | -| main.rs:1498:13:1498:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1498:13:1498:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1498:13:1498:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1498:24:1498:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1504:16:1504:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1504:30:1509:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1505:13:1508:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1506:20:1506:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1506:21:1506:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1506:21:1506:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1507:20:1507:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1507:21:1507:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1507:21:1507:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1514:16:1514:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1514:30:1519:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1515:13:1518:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1516:20:1516:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1516:21:1516:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1516:21:1516:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1517:20:1517:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1517:21:1517:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1517:21:1517:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1523:15:1523:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1523:15:1523:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1523:22:1523:26 | other | | file://:0:0:0:0 | & | -| main.rs:1523:22:1523:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1523:44:1525:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1524:13:1524:16 | self | | file://:0:0:0:0 | & | -| main.rs:1524:13:1524:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1524:13:1524:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1524:13:1524:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1524:13:1524:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1524:23:1524:27 | other | | file://:0:0:0:0 | & | -| main.rs:1524:23:1524:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1524:23:1524:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1524:34:1524:37 | self | | file://:0:0:0:0 | & | -| main.rs:1524:34:1524:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1524:34:1524:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1524:34:1524:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1524:44:1524:48 | other | | file://:0:0:0:0 | & | -| main.rs:1524:44:1524:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1524:44:1524:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1527:15:1527:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1527:15:1527:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1527:22:1527:26 | other | | file://:0:0:0:0 | & | -| main.rs:1527:22:1527:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1527:44:1529:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1528:13:1528:16 | self | | file://:0:0:0:0 | & | -| main.rs:1528:13:1528:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:13:1528:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1528:13:1528:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1528:13:1528:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1528:23:1528:27 | other | | file://:0:0:0:0 | & | -| main.rs:1528:23:1528:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:23:1528:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1528:34:1528:37 | self | | file://:0:0:0:0 | & | -| main.rs:1528:34:1528:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:34:1528:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1528:34:1528:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1528:44:1528:48 | other | | file://:0:0:0:0 | & | -| main.rs:1528:44:1528:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:44:1528:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1533:24:1533:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1533:24:1533:28 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:31:1533:35 | other | | file://:0:0:0:0 | & | -| main.rs:1533:31:1533:35 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:75:1535:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:1533:75:1535:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1534:13:1534:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:13:1534:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1534:13:1534:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1534:14:1534:17 | self | | file://:0:0:0:0 | & | -| main.rs:1534:14:1534:17 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1534:14:1534:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:14:1534:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:23:1534:26 | self | | file://:0:0:0:0 | & | -| main.rs:1534:23:1534:26 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1534:23:1534:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:43:1534:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1534:43:1534:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:44:1534:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:45:1534:49 | other | | file://:0:0:0:0 | & | -| main.rs:1534:45:1534:49 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1534:45:1534:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:45:1534:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1534:55:1534:59 | other | | file://:0:0:0:0 | & | -| main.rs:1534:55:1534:59 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1534:55:1534:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1537:15:1537:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1537:15:1537:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1537:22:1537:26 | other | | file://:0:0:0:0 | & | -| main.rs:1537:22:1537:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1537:44:1539:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1538:13:1538:16 | self | | file://:0:0:0:0 | & | -| main.rs:1538:13:1538:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:13:1538:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1538:13:1538:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1538:13:1538:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1538:22:1538:26 | other | | file://:0:0:0:0 | & | -| main.rs:1538:22:1538:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:22:1538:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1538:33:1538:36 | self | | file://:0:0:0:0 | & | -| main.rs:1538:33:1538:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:33:1538:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1538:33:1538:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1538:42:1538:46 | other | | file://:0:0:0:0 | & | -| main.rs:1538:42:1538:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:42:1538:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1541:15:1541:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1541:15:1541:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1541:22:1541:26 | other | | file://:0:0:0:0 | & | -| main.rs:1541:22:1541:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1541:44:1543:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1542:13:1542:16 | self | | file://:0:0:0:0 | & | -| main.rs:1542:13:1542:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:13:1542:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1542:13:1542:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1542:13:1542:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1542:23:1542:27 | other | | file://:0:0:0:0 | & | -| main.rs:1542:23:1542:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:23:1542:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1542:34:1542:37 | self | | file://:0:0:0:0 | & | -| main.rs:1542:34:1542:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:34:1542:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1542:34:1542:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1542:44:1542:48 | other | | file://:0:0:0:0 | & | -| main.rs:1542:44:1542:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:44:1542:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1545:15:1545:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1545:15:1545:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1545:22:1545:26 | other | | file://:0:0:0:0 | & | -| main.rs:1545:22:1545:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1545:44:1547:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1546:13:1546:16 | self | | file://:0:0:0:0 | & | -| main.rs:1546:13:1546:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:13:1546:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1546:13:1546:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1546:13:1546:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1329:30:1331:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1330:13:1330:31 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1330:23:1330:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1330:23:1330:23 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1330:29:1330:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1330:29:1330:29 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1337:16:1337:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1337:22:1337:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1337:41:1342:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1338:13:1341:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1339:20:1339:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1339:20:1339:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1339:20:1339:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1339:29:1339:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1339:29:1339:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1340:20:1340:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1340:20:1340:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1340:20:1340:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1340:29:1340:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1340:29:1340:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1347:23:1347:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1347:23:1347:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1347:34:1347:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1348:13:1348:16 | self | | file://:0:0:0:0 | & | +| main.rs:1348:13:1348:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1348:13:1348:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1348:13:1348:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1348:23:1348:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1348:23:1348:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1349:13:1349:16 | self | | file://:0:0:0:0 | & | +| main.rs:1349:13:1349:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1349:13:1349:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1349:13:1349:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1349:23:1349:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1349:23:1349:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1355:16:1355:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1355:22:1355:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1355:41:1360:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1356:13:1359:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1357:20:1357:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1357:20:1357:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1357:20:1357:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1357:29:1357:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1357:29:1357:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1358:20:1358:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1358:20:1358:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1358:20:1358:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1358:29:1358:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1358:29:1358:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1365:23:1365:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1365:23:1365:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1365:34:1365:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1366:13:1366:16 | self | | file://:0:0:0:0 | & | +| main.rs:1366:13:1366:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1366:13:1366:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1366:13:1366:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1366:23:1366:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1366:23:1366:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1367:13:1367:16 | self | | file://:0:0:0:0 | & | +| main.rs:1367:13:1367:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1367:13:1367:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1367:13:1367:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1367:23:1367:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1367:23:1367:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1373:16:1373:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1373:22:1373:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1373:41:1378:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1374:13:1377:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1375:20:1375:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1375:20:1375:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1375:20:1375:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1375:29:1375:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1375:29:1375:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1376:20:1376:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1376:20:1376:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1376:20:1376:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1376:29:1376:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1376:29:1376:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1382:23:1382:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1382:23:1382:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1382:34:1382:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1383:13:1383:16 | self | | file://:0:0:0:0 | & | +| main.rs:1383:13:1383:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1383:13:1383:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1383:13:1383:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1383:23:1383:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1383:23:1383:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1384:13:1384:16 | self | | file://:0:0:0:0 | & | +| main.rs:1384:13:1384:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1384:13:1384:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1384:13:1384:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1384:23:1384:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1384:23:1384:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1390:16:1390:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1390:22:1390:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1390:41:1395:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1391:13:1394:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1392:20:1392:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1392:20:1392:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1392:20:1392:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1392:29:1392:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1392:29:1392:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1393:20:1393:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1393:20:1393:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1393:20:1393:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1393:29:1393:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1393:29:1393:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1399:23:1399:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1399:23:1399:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1399:34:1399:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1400:13:1400:16 | self | | file://:0:0:0:0 | & | +| main.rs:1400:13:1400:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1400:13:1400:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1400:13:1400:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1400:23:1400:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1400:23:1400:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1401:13:1401:16 | self | | file://:0:0:0:0 | & | +| main.rs:1401:13:1401:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1401:13:1401:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1401:13:1401:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1401:23:1401:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1401:23:1401:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1407:16:1407:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1407:22:1407:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1407:41:1412:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1408:13:1411:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1409:20:1409:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1409:20:1409:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1409:20:1409:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1409:29:1409:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1409:29:1409:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1410:20:1410:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1410:20:1410:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1410:20:1410:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1410:29:1410:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1410:29:1410:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1416:23:1416:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1416:23:1416:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1416:34:1416:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1417:13:1417:16 | self | | file://:0:0:0:0 | & | +| main.rs:1417:13:1417:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1417:13:1417:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1417:13:1417:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1417:23:1417:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1417:23:1417:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1418:13:1418:16 | self | | file://:0:0:0:0 | & | +| main.rs:1418:13:1418:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1418:13:1418:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1418:13:1418:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1418:23:1418:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1418:23:1418:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1424:19:1424:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1424:25:1424:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1424:44:1429:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1425:13:1428:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1426:20:1426:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1426:20:1426:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1426:20:1426:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1426:29:1426:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1426:29:1426:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1427:20:1427:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1427:20:1427:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1427:20:1427:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1427:29:1427:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1427:29:1427:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1433:26:1433:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1433:26:1433:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1433:37:1433:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1434:13:1434:16 | self | | file://:0:0:0:0 | & | +| main.rs:1434:13:1434:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1434:13:1434:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1434:13:1434:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1434:23:1434:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1434:23:1434:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1435:13:1435:16 | self | | file://:0:0:0:0 | & | +| main.rs:1435:13:1435:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1435:13:1435:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1435:13:1435:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1435:23:1435:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1435:23:1435:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1441:18:1441:21 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1441:24:1441:26 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1441:43:1446:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1442:13:1445:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1443:20:1443:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1443:20:1443:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1443:20:1443:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1443:29:1443:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1443:29:1443:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:20:1444:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1444:20:1444:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:20:1444:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:29:1444:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1444:29:1444:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1450:25:1450:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1450:25:1450:33 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1450:36:1450:38 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1451:13:1451:16 | self | | file://:0:0:0:0 | & | +| main.rs:1451:13:1451:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1451:13:1451:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1451:13:1451:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1451:23:1451:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1451:23:1451:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1452:13:1452:16 | self | | file://:0:0:0:0 | & | +| main.rs:1452:13:1452:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1452:13:1452:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1452:13:1452:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1452:23:1452:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1452:23:1452:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1458:19:1458:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1458:25:1458:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1458:44:1463:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1459:13:1462:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1460:20:1460:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1460:20:1460:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1460:20:1460:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1460:29:1460:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1460:29:1460:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1461:20:1461:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1461:20:1461:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1461:20:1461:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1461:29:1461:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1461:29:1461:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1467:26:1467:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1467:26:1467:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1467:37:1467:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1468:13:1468:16 | self | | file://:0:0:0:0 | & | +| main.rs:1468:13:1468:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1468:13:1468:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1468:13:1468:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1468:23:1468:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1468:23:1468:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1469:13:1469:16 | self | | file://:0:0:0:0 | & | +| main.rs:1469:13:1469:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1469:13:1469:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1469:13:1469:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1469:23:1469:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1469:23:1469:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1475:16:1475:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1475:22:1475:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1475:40:1480:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1476:13:1479:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1477:20:1477:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1477:20:1477:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1477:20:1477:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1477:30:1477:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1478:20:1478:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1478:20:1478:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1478:20:1478:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1478:30:1478:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1484:23:1484:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1484:23:1484:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1484:34:1484:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1485:13:1485:16 | self | | file://:0:0:0:0 | & | +| main.rs:1485:13:1485:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1485:13:1485:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1485:13:1485:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1485:24:1485:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1486:13:1486:16 | self | | file://:0:0:0:0 | & | +| main.rs:1486:13:1486:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1486:13:1486:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1486:13:1486:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1486:24:1486:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1492:16:1492:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1492:22:1492:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1492:40:1497:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1493:13:1496:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1494:20:1494:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1494:20:1494:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1494:20:1494:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1494:30:1494:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1495:20:1495:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1495:20:1495:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1495:20:1495:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1495:30:1495:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1501:23:1501:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1501:23:1501:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1501:34:1501:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1502:13:1502:16 | self | | file://:0:0:0:0 | & | +| main.rs:1502:13:1502:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1502:13:1502:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1502:13:1502:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1502:24:1502:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1503:13:1503:16 | self | | file://:0:0:0:0 | & | +| main.rs:1503:13:1503:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1503:13:1503:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1503:13:1503:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1503:24:1503:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1509:16:1509:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1509:30:1514:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1510:13:1513:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1511:20:1511:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1511:21:1511:24 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1511:21:1511:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1512:20:1512:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1512:21:1512:24 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1512:21:1512:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1519:16:1519:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1519:30:1524:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1520:13:1523:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1521:20:1521:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1521:21:1521:24 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1521:21:1521:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1522:20:1522:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1522:21:1522:24 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1522:21:1522:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1528:15:1528:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1528:15:1528:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1528:22:1528:26 | other | | file://:0:0:0:0 | & | +| main.rs:1528:22:1528:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1528:44:1530:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1529:13:1529:16 | self | | file://:0:0:0:0 | & | +| main.rs:1529:13:1529:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1529:13:1529:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1529:13:1529:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1529:13:1529:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1529:23:1529:27 | other | | file://:0:0:0:0 | & | +| main.rs:1529:23:1529:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1529:23:1529:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1529:34:1529:37 | self | | file://:0:0:0:0 | & | +| main.rs:1529:34:1529:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1529:34:1529:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1529:34:1529:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1529:44:1529:48 | other | | file://:0:0:0:0 | & | +| main.rs:1529:44:1529:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1529:44:1529:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1532:15:1532:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1532:15:1532:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1532:22:1532:26 | other | | file://:0:0:0:0 | & | +| main.rs:1532:22:1532:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1532:44:1534:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1533:13:1533:16 | self | | file://:0:0:0:0 | & | +| main.rs:1533:13:1533:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1533:13:1533:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1533:13:1533:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1533:13:1533:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1533:23:1533:27 | other | | file://:0:0:0:0 | & | +| main.rs:1533:23:1533:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1533:23:1533:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1533:34:1533:37 | self | | file://:0:0:0:0 | & | +| main.rs:1533:34:1533:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1533:34:1533:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1533:34:1533:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1533:44:1533:48 | other | | file://:0:0:0:0 | & | +| main.rs:1533:44:1533:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1533:44:1533:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1538:24:1538:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1538:24:1538:28 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1538:31:1538:35 | other | | file://:0:0:0:0 | & | +| main.rs:1538:31:1538:35 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1538:75:1540:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1538:75:1540:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1539:13:1539:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:13:1539:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1539:13:1539:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1539:14:1539:17 | self | | file://:0:0:0:0 | & | +| main.rs:1539:14:1539:17 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1539:14:1539:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:14:1539:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:23:1539:26 | self | | file://:0:0:0:0 | & | +| main.rs:1539:23:1539:26 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1539:23:1539:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:43:1539:62 | &... | | file://:0:0:0:0 | & | +| main.rs:1539:43:1539:62 | &... | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:44:1539:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:45:1539:49 | other | | file://:0:0:0:0 | & | +| main.rs:1539:45:1539:49 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1539:45:1539:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:45:1539:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1539:55:1539:59 | other | | file://:0:0:0:0 | & | +| main.rs:1539:55:1539:59 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1539:55:1539:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1542:15:1542:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1542:15:1542:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1542:22:1542:26 | other | | file://:0:0:0:0 | & | +| main.rs:1542:22:1542:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1542:44:1544:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1543:13:1543:16 | self | | file://:0:0:0:0 | & | +| main.rs:1543:13:1543:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1543:13:1543:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1543:13:1543:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1543:13:1543:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1543:22:1543:26 | other | | file://:0:0:0:0 | & | +| main.rs:1543:22:1543:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1543:22:1543:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1543:33:1543:36 | self | | file://:0:0:0:0 | & | +| main.rs:1543:33:1543:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1543:33:1543:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1543:33:1543:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1543:42:1543:46 | other | | file://:0:0:0:0 | & | +| main.rs:1543:42:1543:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1543:42:1543:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1546:15:1546:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1546:15:1546:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1546:22:1546:26 | other | | file://:0:0:0:0 | & | | main.rs:1546:22:1546:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:22:1546:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1546:33:1546:36 | self | | file://:0:0:0:0 | & | -| main.rs:1546:33:1546:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:33:1546:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1546:33:1546:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1546:42:1546:46 | other | | file://:0:0:0:0 | & | -| main.rs:1546:42:1546:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:42:1546:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1549:15:1549:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1549:15:1549:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1549:22:1549:26 | other | | file://:0:0:0:0 | & | -| main.rs:1549:22:1549:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1549:44:1551:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1550:13:1550:16 | self | | file://:0:0:0:0 | & | -| main.rs:1550:13:1550:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:13:1550:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1550:13:1550:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1550:13:1550:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1550:23:1550:27 | other | | file://:0:0:0:0 | & | -| main.rs:1550:23:1550:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:23:1550:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1550:34:1550:37 | self | | file://:0:0:0:0 | & | -| main.rs:1550:34:1550:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:34:1550:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1550:34:1550:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1550:44:1550:48 | other | | file://:0:0:0:0 | & | -| main.rs:1550:44:1550:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:44:1550:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1557:13:1557:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1557:22:1557:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1557:23:1557:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1557:23:1557:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1557:31:1557:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1558:13:1558:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1558:22:1558:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1558:23:1558:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1558:23:1558:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1558:31:1558:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1559:13:1559:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1559:22:1559:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1559:23:1559:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1559:23:1559:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1559:30:1559:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1560:13:1560:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1560:22:1560:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1560:23:1560:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1560:23:1560:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1560:31:1560:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1561:13:1561:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1561:22:1561:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1561:23:1561:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1561:23:1561:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1561:30:1561:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:13:1562:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:22:1562:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:23:1562:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:23:1562:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:32:1562:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:13:1565:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:23:1565:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:23:1565:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:31:1565:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:13:1566:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:23:1566:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:23:1566:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:31:1566:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:13:1567:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:23:1567:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:23:1567:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:31:1567:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1568:13:1568:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:1568:23:1568:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1568:23:1568:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1568:31:1568:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:13:1569:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:23:1569:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:23:1569:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1569:31:1569:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:13:1572:30 | mut i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:34:1572:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:9:1573:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:9:1573:31 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1573:27:1573:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1575:13:1575:30 | mut i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1575:34:1575:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1576:9:1576:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1576:9:1576:31 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1576:27:1576:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1578:13:1578:30 | mut i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1578:34:1578:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1579:9:1579:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1579:9:1579:31 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1579:27:1579:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1581:13:1581:30 | mut i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1581:34:1581:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1582:9:1582:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1582:9:1582:31 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1582:27:1582:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1584:13:1584:30 | mut i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1584:34:1584:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1585:9:1585:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1585:9:1585:31 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1585:27:1585:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1588:13:1588:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:1588:26:1588:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1588:26:1588:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1588:34:1588:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:13:1589:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:25:1589:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:25:1589:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:33:1589:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:13:1590:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:26:1590:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:26:1590:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:34:1590:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1591:13:1591:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:1591:23:1591:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1591:23:1591:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1591:32:1591:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1592:13:1592:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:1592:23:1592:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1592:23:1592:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1592:32:1592:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:13:1595:33 | mut i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:37:1595:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:9:1596:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:9:1596:34 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1596:30:1596:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1598:13:1598:32 | mut i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1598:36:1598:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1599:9:1599:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1599:9:1599:33 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1599:29:1599:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:13:1601:33 | mut i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:37:1601:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1602:9:1602:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1602:9:1602:34 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1602:30:1602:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:13:1604:30 | mut i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:34:1604:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1605:9:1605:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1605:9:1605:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1605:28:1605:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:13:1607:30 | mut i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:34:1607:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1608:9:1608:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1608:9:1608:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1608:28:1608:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1610:13:1610:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1610:23:1610:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1610:24:1610:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1611:13:1611:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1611:23:1611:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1611:24:1611:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1614:13:1614:14 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1614:18:1614:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1614:28:1614:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1614:28:1614:28 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1614:34:1614:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1614:34:1614:34 | 2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1615:13:1615:14 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1615:18:1615:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1615:28:1615:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1615:28:1615:28 | 3 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1615:34:1615:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1615:34:1615:34 | 4 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1618:13:1618:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1618:23:1618:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1618:23:1618:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1618:29:1618:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1619:13:1619:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1619:23:1619:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1619:23:1619:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1619:29:1619:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1620:13:1620:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1620:23:1620:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1620:23:1620:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1620:28:1620:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1621:13:1621:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1621:23:1621:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1621:23:1621:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1621:29:1621:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1622:13:1622:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1622:23:1622:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1622:23:1622:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1622:28:1622:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1623:13:1623:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1546:44:1548:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1547:13:1547:16 | self | | file://:0:0:0:0 | & | +| main.rs:1547:13:1547:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1547:13:1547:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1547:13:1547:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1547:13:1547:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1547:23:1547:27 | other | | file://:0:0:0:0 | & | +| main.rs:1547:23:1547:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1547:23:1547:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1547:34:1547:37 | self | | file://:0:0:0:0 | & | +| main.rs:1547:34:1547:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1547:34:1547:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1547:34:1547:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1547:44:1547:48 | other | | file://:0:0:0:0 | & | +| main.rs:1547:44:1547:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1547:44:1547:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1550:15:1550:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1550:15:1550:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1550:22:1550:26 | other | | file://:0:0:0:0 | & | +| main.rs:1550:22:1550:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1550:44:1552:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1551:13:1551:16 | self | | file://:0:0:0:0 | & | +| main.rs:1551:13:1551:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1551:13:1551:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1551:13:1551:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1551:13:1551:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1551:22:1551:26 | other | | file://:0:0:0:0 | & | +| main.rs:1551:22:1551:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1551:22:1551:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1551:33:1551:36 | self | | file://:0:0:0:0 | & | +| main.rs:1551:33:1551:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1551:33:1551:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1551:33:1551:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1551:42:1551:46 | other | | file://:0:0:0:0 | & | +| main.rs:1551:42:1551:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1551:42:1551:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1554:15:1554:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1554:15:1554:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1554:22:1554:26 | other | | file://:0:0:0:0 | & | +| main.rs:1554:22:1554:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1554:44:1556:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1555:13:1555:16 | self | | file://:0:0:0:0 | & | +| main.rs:1555:13:1555:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1555:13:1555:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1555:13:1555:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1555:13:1555:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1555:23:1555:27 | other | | file://:0:0:0:0 | & | +| main.rs:1555:23:1555:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1555:23:1555:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1555:34:1555:37 | self | | file://:0:0:0:0 | & | +| main.rs:1555:34:1555:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1555:34:1555:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1555:34:1555:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1555:44:1555:48 | other | | file://:0:0:0:0 | & | +| main.rs:1555:44:1555:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1555:44:1555:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1562:13:1562:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1562:22:1562:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1562:23:1562:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1562:23:1562:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1562:31:1562:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1563:13:1563:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:22:1563:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:23:1563:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1563:23:1563:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:31:1563:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1564:13:1564:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1564:22:1564:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1564:23:1564:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1564:23:1564:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1564:30:1564:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1565:13:1565:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1565:22:1565:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1565:23:1565:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1565:23:1565:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1565:31:1565:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1566:13:1566:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1566:22:1566:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1566:23:1566:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1566:23:1566:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1566:30:1566:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1567:13:1567:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:22:1567:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:23:1567:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1567:23:1567:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:32:1567:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:13:1570:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:23:1570:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:23:1570:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1570:31:1570:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:13:1571:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:23:1571:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:23:1571:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1571:31:1571:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1572:13:1572:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1572:23:1572:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1572:23:1572:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1572:31:1572:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:13:1573:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:23:1573:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:23:1573:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:31:1573:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:13:1574:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:23:1574:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:23:1574:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1574:31:1574:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1577:13:1577:30 | mut i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1577:34:1577:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1578:9:1578:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1578:9:1578:31 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1578:27:1578:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1580:13:1580:30 | mut i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1580:34:1580:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1581:9:1581:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1581:9:1581:31 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1581:27:1581:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1583:13:1583:30 | mut i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1583:34:1583:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1584:9:1584:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1584:9:1584:31 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1584:27:1584:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1586:13:1586:30 | mut i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1586:34:1586:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1587:9:1587:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1587:9:1587:31 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1587:27:1587:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1589:13:1589:30 | mut i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1589:34:1589:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1590:9:1590:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1590:9:1590:31 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1590:27:1590:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1593:13:1593:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1593:26:1593:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1593:26:1593:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1593:34:1593:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1594:13:1594:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1594:25:1594:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1594:25:1594:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1594:33:1594:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1595:13:1595:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1595:26:1595:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1595:26:1595:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1595:34:1595:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:13:1596:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:23:1596:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:23:1596:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:32:1596:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:13:1597:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:23:1597:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:23:1597:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:32:1597:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1600:13:1600:33 | mut i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1600:37:1600:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1601:9:1601:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1601:9:1601:34 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1601:30:1601:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1603:13:1603:32 | mut i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1603:36:1603:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:9:1604:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:9:1604:33 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1604:29:1604:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:13:1606:33 | mut i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:37:1606:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:9:1607:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:9:1607:34 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1607:30:1607:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1609:13:1609:30 | mut i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1609:34:1609:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1610:9:1610:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1610:9:1610:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1610:28:1610:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1612:13:1612:30 | mut i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1612:34:1612:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1613:9:1613:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1613:9:1613:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1613:28:1613:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1615:13:1615:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1615:23:1615:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1615:24:1615:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1616:13:1616:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1616:23:1616:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1616:24:1616:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1619:13:1619:14 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1619:18:1619:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1619:28:1619:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1619:28:1619:28 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1619:34:1619:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1619:34:1619:34 | 2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1620:13:1620:14 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1620:18:1620:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1620:28:1620:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1620:28:1620:28 | 3 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1620:34:1620:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1620:34:1620:34 | 4 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1623:13:1623:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | | main.rs:1623:23:1623:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1623:23:1623:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1623:23:1623:30 | ... == ... | | {EXTERNAL LOCATION} | bool | | main.rs:1623:29:1623:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1626:13:1626:20 | vec2_add | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1626:24:1626:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1626:24:1626:30 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1624:13:1624:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1624:23:1624:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1624:23:1624:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1624:29:1624:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1625:13:1625:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1625:23:1625:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1625:23:1625:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1625:28:1625:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1626:13:1626:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1626:23:1626:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1626:23:1626:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | | main.rs:1626:29:1626:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:13:1627:20 | vec2_sub | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:24:1627:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:24:1627:30 | ... - ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:29:1627:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1628:13:1628:20 | vec2_mul | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1628:24:1628:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1628:24:1628:30 | ... * ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1627:13:1627:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1627:23:1627:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1627:23:1627:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1627:28:1627:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1628:13:1628:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1628:23:1628:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1628:23:1628:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | | main.rs:1628:29:1628:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1629:13:1629:20 | vec2_div | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1629:24:1629:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1629:24:1629:30 | ... / ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1629:29:1629:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1630:13:1630:20 | vec2_rem | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1630:24:1630:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1630:24:1630:30 | ... % ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1630:29:1630:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:13:1633:31 | mut vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:35:1633:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:9:1634:23 | vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:9:1634:29 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1634:28:1634:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1636:13:1636:31 | mut vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1636:35:1636:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1637:9:1637:23 | vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1637:9:1637:29 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1637:28:1637:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1639:13:1639:31 | mut vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1639:35:1639:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1640:9:1640:23 | vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1640:9:1640:29 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1640:28:1640:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1642:13:1642:31 | mut vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1642:35:1642:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1643:9:1643:23 | vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1643:9:1643:29 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1643:28:1643:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1645:13:1645:31 | mut vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1645:35:1645:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1646:9:1646:23 | vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1646:9:1646:29 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1646:28:1646:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1649:13:1649:23 | vec2_bitand | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1649:27:1649:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1649:27:1649:33 | ... & ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1649:32:1649:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:13:1650:22 | vec2_bitor | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:26:1650:27 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:26:1650:32 | ... \| ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:31:1650:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:13:1651:23 | vec2_bitxor | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:27:1651:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:27:1651:33 | ... ^ ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:32:1651:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1652:13:1652:20 | vec2_shl | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1652:24:1652:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1652:24:1652:33 | ... << ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1652:30:1652:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1653:13:1653:20 | vec2_shr | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1653:24:1653:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1653:24:1653:33 | ... >> ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1653:30:1653:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1656:13:1656:34 | mut vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1656:38:1656:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:9:1657:26 | vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:9:1657:32 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1657:31:1657:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1659:13:1659:33 | mut vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1659:37:1659:38 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1660:9:1660:25 | vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1660:9:1660:31 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1660:30:1660:31 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1662:13:1662:34 | mut vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1662:38:1662:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1663:9:1663:26 | vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1663:9:1663:32 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1663:31:1663:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1665:13:1665:31 | mut vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1665:35:1665:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1666:9:1666:23 | vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1666:9:1666:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1666:29:1666:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1668:13:1668:31 | mut vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1668:35:1668:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1669:9:1669:23 | vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1669:9:1669:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1669:29:1669:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1672:13:1672:20 | vec2_neg | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1672:24:1672:26 | - ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1672:25:1672:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1673:13:1673:20 | vec2_not | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1673:24:1673:26 | ! ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1673:25:1673:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1683:18:1683:21 | SelfParam | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1686:25:1688:5 | { ... } | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1687:9:1687:10 | S1 | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1690:41:1692:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1690:41:1692:5 | { ... } | | main.rs:1690:16:1690:39 | ImplTraitTypeRepr | -| main.rs:1690:41:1692:5 | { ... } | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1691:9:1691:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1691:9:1691:20 | { ... } | | main.rs:1690:16:1690:39 | ImplTraitTypeRepr | -| main.rs:1691:9:1691:20 | { ... } | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1691:17:1691:18 | S1 | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1700:13:1700:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:1700:13:1700:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:1700:13:1700:42 | SelfParam | Ptr.&T | main.rs:1694:5:1694:14 | S2 | -| main.rs:1701:13:1701:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:1701:13:1701:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:1702:44:1704:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:1702:44:1704:9 | { ... } | T | main.rs:1680:5:1680:14 | S1 | -| main.rs:1703:13:1703:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:1703:13:1703:38 | ...::Ready(...) | T | main.rs:1680:5:1680:14 | S1 | -| main.rs:1703:36:1703:37 | S1 | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1707:41:1709:5 | { ... } | | main.rs:1694:5:1694:14 | S2 | -| main.rs:1707:41:1709:5 | { ... } | | main.rs:1707:16:1707:39 | ImplTraitTypeRepr | -| main.rs:1708:9:1708:10 | S2 | | main.rs:1694:5:1694:14 | S2 | -| main.rs:1708:9:1708:10 | S2 | | main.rs:1707:16:1707:39 | ImplTraitTypeRepr | -| main.rs:1712:9:1712:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1712:9:1712:12 | f1(...) | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1712:9:1712:18 | await ... | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1713:9:1713:12 | f2(...) | | main.rs:1690:16:1690:39 | ImplTraitTypeRepr | -| main.rs:1713:9:1713:18 | await ... | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1714:9:1714:12 | f3(...) | | main.rs:1707:16:1707:39 | ImplTraitTypeRepr | -| main.rs:1714:9:1714:18 | await ... | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1715:9:1715:10 | S2 | | main.rs:1694:5:1694:14 | S2 | -| main.rs:1715:9:1715:16 | await S2 | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1716:13:1716:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1716:13:1716:13 | b | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1716:17:1716:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1716:17:1716:28 | { ... } | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1716:25:1716:26 | S1 | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1717:9:1717:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1717:9:1717:9 | b | Output | main.rs:1680:5:1680:14 | S1 | -| main.rs:1717:9:1717:15 | await b | | main.rs:1680:5:1680:14 | S1 | -| main.rs:1726:15:1726:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1726:15:1726:19 | SelfParam | &T | main.rs:1725:5:1727:5 | Self [trait Trait1] | -| main.rs:1730:15:1730:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1730:15:1730:19 | SelfParam | &T | main.rs:1729:5:1731:5 | Self [trait Trait2] | -| main.rs:1734:15:1734:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1734:15:1734:19 | SelfParam | &T | main.rs:1722:5:1722:14 | S1 | -| main.rs:1738:15:1738:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1738:15:1738:19 | SelfParam | &T | main.rs:1722:5:1722:14 | S1 | -| main.rs:1741:37:1743:5 | { ... } | | main.rs:1722:5:1722:14 | S1 | -| main.rs:1741:37:1743:5 | { ... } | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1742:9:1742:10 | S1 | | main.rs:1722:5:1722:14 | S1 | -| main.rs:1742:9:1742:10 | S1 | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1746:18:1746:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1746:18:1746:22 | SelfParam | &T | main.rs:1745:5:1747:5 | Self [trait MyTrait] | -| main.rs:1750:18:1750:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1750:18:1750:22 | SelfParam | &T | main.rs:1722:5:1722:14 | S1 | -| main.rs:1750:31:1752:9 | { ... } | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1751:13:1751:14 | S2 | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1755:45:1757:5 | { ... } | | main.rs:1722:5:1722:14 | S1 | -| main.rs:1755:45:1757:5 | { ... } | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1756:9:1756:10 | S1 | | main.rs:1722:5:1722:14 | S1 | -| main.rs:1756:9:1756:10 | S1 | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1759:41:1759:41 | t | | main.rs:1759:26:1759:38 | B | -| main.rs:1759:52:1761:5 | { ... } | | main.rs:1759:23:1759:23 | A | -| main.rs:1760:9:1760:9 | t | | main.rs:1759:26:1759:38 | B | -| main.rs:1760:9:1760:17 | t.get_a() | | main.rs:1759:23:1759:23 | A | -| main.rs:1763:26:1763:26 | t | | main.rs:1763:29:1763:43 | ImplTraitTypeRepr | -| main.rs:1763:51:1765:5 | { ... } | | main.rs:1763:23:1763:23 | A | -| main.rs:1764:9:1764:9 | t | | main.rs:1763:29:1763:43 | ImplTraitTypeRepr | -| main.rs:1764:9:1764:17 | t.get_a() | | main.rs:1763:23:1763:23 | A | -| main.rs:1768:13:1768:13 | x | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1768:17:1768:20 | f1(...) | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1769:9:1769:9 | x | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1770:9:1770:9 | x | | main.rs:1741:16:1741:35 | ImplTraitTypeRepr | -| main.rs:1771:13:1771:13 | a | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1771:17:1771:32 | get_a_my_trait(...) | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1772:13:1772:13 | b | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1772:17:1772:33 | uses_my_trait1(...) | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1772:32:1772:32 | a | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1773:13:1773:13 | a | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1773:17:1773:32 | get_a_my_trait(...) | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1774:13:1774:13 | c | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1774:17:1774:33 | uses_my_trait2(...) | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1774:32:1774:32 | a | | main.rs:1755:28:1755:43 | ImplTraitTypeRepr | -| main.rs:1775:13:1775:13 | d | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1775:17:1775:34 | uses_my_trait2(...) | | main.rs:1723:5:1723:14 | S2 | -| main.rs:1775:32:1775:33 | S1 | | main.rs:1722:5:1722:14 | S1 | -| main.rs:1786:16:1786:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1786:16:1786:20 | SelfParam | &T | main.rs:1782:5:1783:13 | S | -| main.rs:1786:31:1788:9 | { ... } | | main.rs:1782:5:1783:13 | S | -| main.rs:1787:13:1787:13 | S | | main.rs:1782:5:1783:13 | S | -| main.rs:1797:26:1799:9 | { ... } | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1797:26:1799:9 | { ... } | T | main.rs:1796:10:1796:10 | T | -| main.rs:1798:13:1798:38 | MyVec {...} | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1798:13:1798:38 | MyVec {...} | T | main.rs:1796:10:1796:10 | T | -| main.rs:1798:27:1798:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1798:27:1798:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1798:27:1798:36 | ...::new(...) | T | main.rs:1796:10:1796:10 | T | -| main.rs:1801:17:1801:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1801:17:1801:25 | SelfParam | &T | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1801:17:1801:25 | SelfParam | &T.T | main.rs:1796:10:1796:10 | T | -| main.rs:1801:28:1801:32 | value | | main.rs:1796:10:1796:10 | T | -| main.rs:1802:13:1802:16 | self | | file://:0:0:0:0 | & | -| main.rs:1802:13:1802:16 | self | &T | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1802:13:1802:16 | self | &T.T | main.rs:1796:10:1796:10 | T | -| main.rs:1802:13:1802:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1802:13:1802:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1802:13:1802:21 | self.data | T | main.rs:1796:10:1796:10 | T | -| main.rs:1802:28:1802:32 | value | | main.rs:1796:10:1796:10 | T | -| main.rs:1810:18:1810:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1810:18:1810:22 | SelfParam | &T | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1810:18:1810:22 | SelfParam | &T.T | main.rs:1806:10:1806:10 | T | -| main.rs:1810:25:1810:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1810:56:1812:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1810:56:1812:9 | { ... } | &T | main.rs:1806:10:1806:10 | T | -| main.rs:1811:13:1811:29 | &... | | file://:0:0:0:0 | & | -| main.rs:1811:13:1811:29 | &... | &T | main.rs:1806:10:1806:10 | T | -| main.rs:1811:14:1811:17 | self | | file://:0:0:0:0 | & | -| main.rs:1811:14:1811:17 | self | &T | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1811:14:1811:17 | self | &T.T | main.rs:1806:10:1806:10 | T | -| main.rs:1811:14:1811:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1811:14:1811:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1811:14:1811:22 | self.data | T | main.rs:1806:10:1806:10 | T | -| main.rs:1811:14:1811:29 | ...[index] | | main.rs:1806:10:1806:10 | T | -| main.rs:1811:24:1811:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1815:22:1815:26 | slice | | file://:0:0:0:0 | & | -| main.rs:1815:22:1815:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1815:22:1815:26 | slice | &T.[T] | main.rs:1782:5:1783:13 | S | -| main.rs:1816:13:1816:13 | x | | main.rs:1782:5:1783:13 | S | -| main.rs:1816:17:1816:21 | slice | | file://:0:0:0:0 | & | -| main.rs:1816:17:1816:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1816:17:1816:21 | slice | &T.[T] | main.rs:1782:5:1783:13 | S | -| main.rs:1816:17:1816:24 | slice[0] | | main.rs:1782:5:1783:13 | S | -| main.rs:1816:17:1816:30 | ... .foo() | | main.rs:1782:5:1783:13 | S | -| main.rs:1816:23:1816:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1820:13:1820:19 | mut vec | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1820:13:1820:19 | mut vec | T | main.rs:1782:5:1783:13 | S | -| main.rs:1820:23:1820:34 | ...::new(...) | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1820:23:1820:34 | ...::new(...) | T | main.rs:1782:5:1783:13 | S | -| main.rs:1821:9:1821:11 | vec | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1821:9:1821:11 | vec | T | main.rs:1782:5:1783:13 | S | -| main.rs:1821:18:1821:18 | S | | main.rs:1782:5:1783:13 | S | -| main.rs:1822:9:1822:11 | vec | | main.rs:1791:5:1794:5 | MyVec | -| main.rs:1822:9:1822:11 | vec | T | main.rs:1782:5:1783:13 | S | -| main.rs:1822:13:1822:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1824:13:1824:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1824:13:1824:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1824:13:1824:14 | xs | [T;...] | main.rs:1782:5:1783:13 | S | -| main.rs:1824:13:1824:14 | xs | [T] | main.rs:1782:5:1783:13 | S | -| main.rs:1824:21:1824:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1824:26:1824:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1824:26:1824:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1824:26:1824:28 | [...] | [T;...] | main.rs:1782:5:1783:13 | S | -| main.rs:1824:26:1824:28 | [...] | [T] | main.rs:1782:5:1783:13 | S | -| main.rs:1824:27:1824:27 | S | | main.rs:1782:5:1783:13 | S | -| main.rs:1825:13:1825:13 | x | | main.rs:1782:5:1783:13 | S | -| main.rs:1825:17:1825:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1825:17:1825:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1825:17:1825:18 | xs | [T;...] | main.rs:1782:5:1783:13 | S | -| main.rs:1825:17:1825:18 | xs | [T] | main.rs:1782:5:1783:13 | S | -| main.rs:1825:17:1825:21 | xs[0] | | main.rs:1782:5:1783:13 | S | -| main.rs:1825:17:1825:27 | ... .foo() | | main.rs:1782:5:1783:13 | S | -| main.rs:1825:20:1825:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1827:23:1827:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:1827:23:1827:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1827:23:1827:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1827:23:1827:25 | &xs | &T.[T;...] | main.rs:1782:5:1783:13 | S | -| main.rs:1827:23:1827:25 | &xs | &T.[T] | main.rs:1782:5:1783:13 | S | -| main.rs:1827:24:1827:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1827:24:1827:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1827:24:1827:25 | xs | [T;...] | main.rs:1782:5:1783:13 | S | -| main.rs:1827:24:1827:25 | xs | [T] | main.rs:1782:5:1783:13 | S | -| main.rs:1833:25:1833:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | -| main.rs:1833:25:1833:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1833:25:1833:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:1833:38:1833:45 | "World!" | | {EXTERNAL LOCATION} | str | -| main.rs:1839:19:1839:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1839:19:1839:23 | SelfParam | &T | main.rs:1838:5:1840:5 | Self [trait MyAdd] | -| main.rs:1839:26:1839:30 | value | | main.rs:1838:17:1838:17 | T | -| main.rs:1844:19:1844:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1844:19:1844:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1844:26:1844:30 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1844:46:1846:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1845:13:1845:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:19:1851:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1851:19:1851:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:26:1851:30 | value | | file://:0:0:0:0 | & | -| main.rs:1851:26:1851:30 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:26:1851:30 | value | &T | file://:0:0:0:0 | & | -| main.rs:1851:47:1853:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1851:47:1853:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1852:13:1852:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1852:13:1852:18 | * ... | | file://:0:0:0:0 | & | -| main.rs:1852:14:1852:18 | value | | file://:0:0:0:0 | & | -| main.rs:1852:14:1852:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1852:14:1852:18 | value | &T | file://:0:0:0:0 | & | -| main.rs:1858:19:1858:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1858:19:1858:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1858:26:1858:30 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1858:47:1864:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1858:47:1864:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1859:13:1863:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:1859:13:1863:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:1859:16:1859:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1859:22:1861:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1859:22:1861:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:17:1860:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1860:17:1860:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:20:1863:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1861:20:1863:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1862:17:1862:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1862:17:1862:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:13:1868:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:13:1868:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:22:1868:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:22:1868:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:9:1869:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1869:9:1869:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:9:1869:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:18:1869:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:9:1870:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1870:9:1870:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:9:1870:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:18:1870:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:1870:18:1870:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:19:1870:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:9:1871:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1871:9:1871:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:9:1871:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:18:1871:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1877:5:1877:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1878:5:1878:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1878:20:1878:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1878:41:1878:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1894:5:1894:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1631:13:1631:20 | vec2_add | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1631:24:1631:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1631:24:1631:30 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1631:29:1631:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1632:13:1632:20 | vec2_sub | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1632:24:1632:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1632:24:1632:30 | ... - ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1632:29:1632:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1633:13:1633:20 | vec2_mul | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1633:24:1633:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1633:24:1633:30 | ... * ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1633:29:1633:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1634:13:1634:20 | vec2_div | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1634:24:1634:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1634:24:1634:30 | ... / ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1634:29:1634:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1635:13:1635:20 | vec2_rem | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1635:24:1635:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1635:24:1635:30 | ... % ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1635:29:1635:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1638:13:1638:31 | mut vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1638:35:1638:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1639:9:1639:23 | vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1639:9:1639:29 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1639:28:1639:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1641:13:1641:31 | mut vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1641:35:1641:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1642:9:1642:23 | vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1642:9:1642:29 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1642:28:1642:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1644:13:1644:31 | mut vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1644:35:1644:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1645:9:1645:23 | vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1645:9:1645:29 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1645:28:1645:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1647:13:1647:31 | mut vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1647:35:1647:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1648:9:1648:23 | vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1648:9:1648:29 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1648:28:1648:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1650:13:1650:31 | mut vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1650:35:1650:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1651:9:1651:23 | vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1651:9:1651:29 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1651:28:1651:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1654:13:1654:23 | vec2_bitand | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1654:27:1654:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1654:27:1654:33 | ... & ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1654:32:1654:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1655:13:1655:22 | vec2_bitor | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1655:26:1655:27 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1655:26:1655:32 | ... \| ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1655:31:1655:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1656:13:1656:23 | vec2_bitxor | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1656:27:1656:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1656:27:1656:33 | ... ^ ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1656:32:1656:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1657:13:1657:20 | vec2_shl | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1657:24:1657:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1657:24:1657:33 | ... << ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1657:30:1657:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1658:13:1658:20 | vec2_shr | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1658:24:1658:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1658:24:1658:33 | ... >> ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1658:30:1658:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1661:13:1661:34 | mut vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1661:38:1661:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1662:9:1662:26 | vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1662:9:1662:32 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1662:31:1662:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1664:13:1664:33 | mut vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1664:37:1664:38 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1665:9:1665:25 | vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1665:9:1665:31 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1665:30:1665:31 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1667:13:1667:34 | mut vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1667:38:1667:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1668:9:1668:26 | vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1668:9:1668:32 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1668:31:1668:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1670:13:1670:31 | mut vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1670:35:1670:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1671:9:1671:23 | vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1671:9:1671:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1671:29:1671:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1673:13:1673:31 | mut vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1673:35:1673:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1674:9:1674:23 | vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1674:9:1674:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1674:29:1674:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1677:13:1677:20 | vec2_neg | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1677:24:1677:26 | - ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1677:25:1677:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1678:13:1678:20 | vec2_not | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1678:24:1678:26 | ! ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1678:25:1678:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1682:13:1682:26 | vec2_zero_plus | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1682:30:1682:48 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1682:30:1682:63 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1682:40:1682:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1682:40:1682:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1692:18:1692:21 | SelfParam | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1695:25:1697:5 | { ... } | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1696:9:1696:10 | S1 | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1699:41:1701:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1699:41:1701:5 | { ... } | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | +| main.rs:1699:41:1701:5 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1700:9:1700:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1700:9:1700:20 | { ... } | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | +| main.rs:1700:9:1700:20 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1700:17:1700:18 | S1 | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1709:13:1709:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:1709:13:1709:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:1709:13:1709:42 | SelfParam | Ptr.&T | main.rs:1703:5:1703:14 | S2 | +| main.rs:1710:13:1710:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:1710:13:1710:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:1711:44:1713:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:1711:44:1713:9 | { ... } | T | main.rs:1689:5:1689:14 | S1 | +| main.rs:1712:13:1712:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:1712:13:1712:38 | ...::Ready(...) | T | main.rs:1689:5:1689:14 | S1 | +| main.rs:1712:36:1712:37 | S1 | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1716:41:1718:5 | { ... } | | main.rs:1703:5:1703:14 | S2 | +| main.rs:1716:41:1718:5 | { ... } | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | +| main.rs:1717:9:1717:10 | S2 | | main.rs:1703:5:1703:14 | S2 | +| main.rs:1717:9:1717:10 | S2 | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | +| main.rs:1721:9:1721:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1721:9:1721:12 | f1(...) | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1721:9:1721:18 | await ... | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1722:9:1722:12 | f2(...) | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | +| main.rs:1722:9:1722:18 | await ... | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1723:9:1723:12 | f3(...) | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | +| main.rs:1723:9:1723:18 | await ... | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1724:9:1724:10 | S2 | | main.rs:1703:5:1703:14 | S2 | +| main.rs:1724:9:1724:16 | await S2 | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1725:13:1725:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1725:13:1725:13 | b | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1725:17:1725:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1725:17:1725:28 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1725:25:1725:26 | S1 | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1726:9:1726:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1726:9:1726:9 | b | Output | main.rs:1689:5:1689:14 | S1 | +| main.rs:1726:9:1726:15 | await b | | main.rs:1689:5:1689:14 | S1 | +| main.rs:1735:15:1735:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1735:15:1735:19 | SelfParam | &T | main.rs:1734:5:1736:5 | Self [trait Trait1] | +| main.rs:1739:15:1739:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1739:15:1739:19 | SelfParam | &T | main.rs:1738:5:1740:5 | Self [trait Trait2] | +| main.rs:1743:15:1743:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1743:15:1743:19 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | +| main.rs:1747:15:1747:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1747:15:1747:19 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | +| main.rs:1750:37:1752:5 | { ... } | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1750:37:1752:5 | { ... } | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1751:9:1751:10 | S1 | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1751:9:1751:10 | S1 | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1755:18:1755:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1755:18:1755:22 | SelfParam | &T | main.rs:1754:5:1756:5 | Self [trait MyTrait] | +| main.rs:1759:18:1759:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1759:18:1759:22 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | +| main.rs:1759:31:1761:9 | { ... } | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1760:13:1760:14 | S2 | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1764:45:1766:5 | { ... } | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1764:45:1766:5 | { ... } | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1765:9:1765:10 | S1 | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1765:9:1765:10 | S1 | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1768:41:1768:41 | t | | main.rs:1768:26:1768:38 | B | +| main.rs:1768:52:1770:5 | { ... } | | main.rs:1768:23:1768:23 | A | +| main.rs:1769:9:1769:9 | t | | main.rs:1768:26:1768:38 | B | +| main.rs:1769:9:1769:17 | t.get_a() | | main.rs:1768:23:1768:23 | A | +| main.rs:1772:26:1772:26 | t | | main.rs:1772:29:1772:43 | ImplTraitTypeRepr | +| main.rs:1772:51:1774:5 | { ... } | | main.rs:1772:23:1772:23 | A | +| main.rs:1773:9:1773:9 | t | | main.rs:1772:29:1772:43 | ImplTraitTypeRepr | +| main.rs:1773:9:1773:17 | t.get_a() | | main.rs:1772:23:1772:23 | A | +| main.rs:1777:13:1777:13 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1777:17:1777:20 | f1(...) | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1778:9:1778:9 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1779:9:1779:9 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | +| main.rs:1780:13:1780:13 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1780:17:1780:32 | get_a_my_trait(...) | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1781:13:1781:13 | b | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1781:17:1781:33 | uses_my_trait1(...) | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1781:32:1781:32 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1782:13:1782:13 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1782:17:1782:32 | get_a_my_trait(...) | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1783:13:1783:13 | c | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1783:17:1783:33 | uses_my_trait2(...) | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1783:32:1783:32 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | +| main.rs:1784:13:1784:13 | d | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1784:17:1784:34 | uses_my_trait2(...) | | main.rs:1732:5:1732:14 | S2 | +| main.rs:1784:32:1784:33 | S1 | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1795:16:1795:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1795:16:1795:20 | SelfParam | &T | main.rs:1791:5:1792:13 | S | +| main.rs:1795:31:1797:9 | { ... } | | main.rs:1791:5:1792:13 | S | +| main.rs:1796:13:1796:13 | S | | main.rs:1791:5:1792:13 | S | +| main.rs:1806:26:1808:9 | { ... } | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1806:26:1808:9 | { ... } | T | main.rs:1805:10:1805:10 | T | +| main.rs:1807:13:1807:38 | MyVec {...} | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1807:13:1807:38 | MyVec {...} | T | main.rs:1805:10:1805:10 | T | +| main.rs:1807:27:1807:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1807:27:1807:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1807:27:1807:36 | ...::new(...) | T | main.rs:1805:10:1805:10 | T | +| main.rs:1810:17:1810:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1810:17:1810:25 | SelfParam | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1810:17:1810:25 | SelfParam | &T.T | main.rs:1805:10:1805:10 | T | +| main.rs:1810:28:1810:32 | value | | main.rs:1805:10:1805:10 | T | +| main.rs:1811:13:1811:16 | self | | file://:0:0:0:0 | & | +| main.rs:1811:13:1811:16 | self | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1811:13:1811:16 | self | &T.T | main.rs:1805:10:1805:10 | T | +| main.rs:1811:13:1811:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1811:13:1811:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1811:13:1811:21 | self.data | T | main.rs:1805:10:1805:10 | T | +| main.rs:1811:28:1811:32 | value | | main.rs:1805:10:1805:10 | T | +| main.rs:1819:18:1819:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1819:18:1819:22 | SelfParam | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1819:18:1819:22 | SelfParam | &T.T | main.rs:1815:10:1815:10 | T | +| main.rs:1819:25:1819:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1819:56:1821:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1819:56:1821:9 | { ... } | &T | main.rs:1815:10:1815:10 | T | +| main.rs:1820:13:1820:29 | &... | | file://:0:0:0:0 | & | +| main.rs:1820:13:1820:29 | &... | &T | main.rs:1815:10:1815:10 | T | +| main.rs:1820:14:1820:17 | self | | file://:0:0:0:0 | & | +| main.rs:1820:14:1820:17 | self | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1820:14:1820:17 | self | &T.T | main.rs:1815:10:1815:10 | T | +| main.rs:1820:14:1820:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1820:14:1820:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1820:14:1820:22 | self.data | T | main.rs:1815:10:1815:10 | T | +| main.rs:1820:14:1820:29 | ...[index] | | main.rs:1815:10:1815:10 | T | +| main.rs:1820:24:1820:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1824:22:1824:26 | slice | | file://:0:0:0:0 | & | +| main.rs:1824:22:1824:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1824:22:1824:26 | slice | &T.[T] | main.rs:1791:5:1792:13 | S | +| main.rs:1825:13:1825:13 | x | | main.rs:1791:5:1792:13 | S | +| main.rs:1825:17:1825:21 | slice | | file://:0:0:0:0 | & | +| main.rs:1825:17:1825:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1825:17:1825:21 | slice | &T.[T] | main.rs:1791:5:1792:13 | S | +| main.rs:1825:17:1825:24 | slice[0] | | main.rs:1791:5:1792:13 | S | +| main.rs:1825:17:1825:30 | ... .foo() | | main.rs:1791:5:1792:13 | S | +| main.rs:1825:23:1825:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1829:13:1829:19 | mut vec | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1829:13:1829:19 | mut vec | T | main.rs:1791:5:1792:13 | S | +| main.rs:1829:23:1829:34 | ...::new(...) | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1829:23:1829:34 | ...::new(...) | T | main.rs:1791:5:1792:13 | S | +| main.rs:1830:9:1830:11 | vec | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1830:9:1830:11 | vec | T | main.rs:1791:5:1792:13 | S | +| main.rs:1830:18:1830:18 | S | | main.rs:1791:5:1792:13 | S | +| main.rs:1831:9:1831:11 | vec | | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1831:9:1831:11 | vec | T | main.rs:1791:5:1792:13 | S | +| main.rs:1831:13:1831:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:13:1833:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1833:13:1833:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1833:13:1833:14 | xs | [T;...] | main.rs:1791:5:1792:13 | S | +| main.rs:1833:13:1833:14 | xs | [T] | main.rs:1791:5:1792:13 | S | +| main.rs:1833:21:1833:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1833:26:1833:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1833:26:1833:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1833:26:1833:28 | [...] | [T;...] | main.rs:1791:5:1792:13 | S | +| main.rs:1833:26:1833:28 | [...] | [T] | main.rs:1791:5:1792:13 | S | +| main.rs:1833:27:1833:27 | S | | main.rs:1791:5:1792:13 | S | +| main.rs:1834:13:1834:13 | x | | main.rs:1791:5:1792:13 | S | +| main.rs:1834:17:1834:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1834:17:1834:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1834:17:1834:18 | xs | [T;...] | main.rs:1791:5:1792:13 | S | +| main.rs:1834:17:1834:18 | xs | [T] | main.rs:1791:5:1792:13 | S | +| main.rs:1834:17:1834:21 | xs[0] | | main.rs:1791:5:1792:13 | S | +| main.rs:1834:17:1834:27 | ... .foo() | | main.rs:1791:5:1792:13 | S | +| main.rs:1834:20:1834:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1836:23:1836:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:1836:23:1836:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1836:23:1836:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1836:23:1836:25 | &xs | &T.[T;...] | main.rs:1791:5:1792:13 | S | +| main.rs:1836:23:1836:25 | &xs | &T.[T] | main.rs:1791:5:1792:13 | S | +| main.rs:1836:24:1836:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1836:24:1836:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1836:24:1836:25 | xs | [T;...] | main.rs:1791:5:1792:13 | S | +| main.rs:1836:24:1836:25 | xs | [T] | main.rs:1791:5:1792:13 | S | +| main.rs:1842:25:1842:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | +| main.rs:1842:25:1842:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1842:25:1842:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:1842:38:1842:45 | "World!" | | {EXTERNAL LOCATION} | str | +| main.rs:1848:19:1848:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1848:19:1848:23 | SelfParam | &T | main.rs:1847:5:1849:5 | Self [trait MyAdd] | +| main.rs:1848:26:1848:30 | value | | main.rs:1847:17:1847:17 | T | +| main.rs:1853:19:1853:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1853:19:1853:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1853:26:1853:30 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1853:46:1855:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1854:13:1854:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:19:1860:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1860:19:1860:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:26:1860:30 | value | | file://:0:0:0:0 | & | +| main.rs:1860:26:1860:30 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:26:1860:30 | value | &T | file://:0:0:0:0 | & | +| main.rs:1860:47:1862:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1860:47:1862:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1861:13:1861:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1861:13:1861:18 | * ... | | file://:0:0:0:0 | & | +| main.rs:1861:14:1861:18 | value | | file://:0:0:0:0 | & | +| main.rs:1861:14:1861:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1861:14:1861:18 | value | &T | file://:0:0:0:0 | & | +| main.rs:1867:19:1867:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1867:19:1867:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:26:1867:30 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:16:1868:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:9:1878:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1878:18:1878:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:9:1879:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:18:1879:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:1879:18:1879:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1879:19:1879:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:9:1880:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1880:18:1880:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1886:5:1886:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1887:5:1887:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1887:20:1887:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1887:41:1887:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1903:5:1903:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From a0bc455d5380ae98dbda39e972d1a741775faaf5 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 17 Jun 2025 10:25:01 +0200 Subject: [PATCH 067/340] Rust: Account for borrows in operators in type inference --- .../rust/elements/internal/CallImpl.qll | 9 ++- .../rust/elements/internal/OperationImpl.qll | 67 ++++++++++--------- .../codeql/rust/internal/TypeInference.qll | 13 ++-- .../test/library-tests/type-inference/main.rs | 2 +- .../type-inference/type-inference.expected | 3 + 5 files changed, 50 insertions(+), 44 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll index 1ea0842bdaf..84d9aaab5ef 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll @@ -135,14 +135,19 @@ module Impl { private class OperatorCall extends Call instanceof Operation { Trait trait; string methodName; + int borrows; - OperatorCall() { super.isOverloaded(trait, methodName) } + OperatorCall() { super.isOverloaded(trait, methodName, borrows) } override string getMethodName() { result = methodName } override Trait getTrait() { result = trait } - override predicate implicitBorrowAt(ArgumentPosition pos) { none() } + override predicate implicitBorrowAt(ArgumentPosition pos) { + pos.isSelf() and borrows >= 1 + or + pos.asPosition() = 0 and borrows = 2 + } override Expr getArgument(ArgumentPosition pos) { pos.isSelf() and result = super.getOperand(0) diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll index 71f861b013d..a65f99f7952 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -9,79 +9,80 @@ private import codeql.rust.elements.internal.ExprImpl::Impl as ExprImpl /** * Holds if the operator `op` with arity `arity` is overloaded to a trait with - * the canonical path `path` and the method name `method`. + * the canonical path `path` and the method name `method`, and if it borrows its + * first `borrows` arguments. */ -private predicate isOverloaded(string op, int arity, string path, string method) { +private predicate isOverloaded(string op, int arity, string path, string method, int borrows) { arity = 1 and ( // Negation - op = "-" and path = "core::ops::arith::Neg" and method = "neg" + op = "-" and path = "core::ops::arith::Neg" and method = "neg" and borrows = 0 or // Not - op = "!" and path = "core::ops::bit::Not" and method = "not" + op = "!" and path = "core::ops::bit::Not" and method = "not" and borrows = 0 or // Dereference - op = "*" and path = "core::ops::deref::Deref" and method = "deref" + op = "*" and path = "core::ops::deref::Deref" and method = "deref" and borrows = 0 ) or arity = 2 and ( // Comparison operators - op = "==" and path = "core::cmp::PartialEq" and method = "eq" + op = "==" and path = "core::cmp::PartialEq" and method = "eq" and borrows = 2 or - op = "!=" and path = "core::cmp::PartialEq" and method = "ne" + op = "!=" and path = "core::cmp::PartialEq" and method = "ne" and borrows = 2 or - op = "<" and path = "core::cmp::PartialOrd" and method = "lt" + op = "<" and path = "core::cmp::PartialOrd" and method = "lt" and borrows = 2 or - op = "<=" and path = "core::cmp::PartialOrd" and method = "le" + op = "<=" and path = "core::cmp::PartialOrd" and method = "le" and borrows = 2 or - op = ">" and path = "core::cmp::PartialOrd" and method = "gt" + op = ">" and path = "core::cmp::PartialOrd" and method = "gt" and borrows = 2 or - op = ">=" and path = "core::cmp::PartialOrd" and method = "ge" + op = ">=" and path = "core::cmp::PartialOrd" and method = "ge" and borrows = 2 or // Arithmetic operators - op = "+" and path = "core::ops::arith::Add" and method = "add" + op = "+" and path = "core::ops::arith::Add" and method = "add" and borrows = 0 or - op = "-" and path = "core::ops::arith::Sub" and method = "sub" + op = "-" and path = "core::ops::arith::Sub" and method = "sub" and borrows = 0 or - op = "*" and path = "core::ops::arith::Mul" and method = "mul" + op = "*" and path = "core::ops::arith::Mul" and method = "mul" and borrows = 0 or - op = "/" and path = "core::ops::arith::Div" and method = "div" + op = "/" and path = "core::ops::arith::Div" and method = "div" and borrows = 0 or - op = "%" and path = "core::ops::arith::Rem" and method = "rem" + op = "%" and path = "core::ops::arith::Rem" and method = "rem" and borrows = 0 or // Arithmetic assignment expressions - op = "+=" and path = "core::ops::arith::AddAssign" and method = "add_assign" + op = "+=" and path = "core::ops::arith::AddAssign" and method = "add_assign" and borrows = 1 or - op = "-=" and path = "core::ops::arith::SubAssign" and method = "sub_assign" + op = "-=" and path = "core::ops::arith::SubAssign" and method = "sub_assign" and borrows = 1 or - op = "*=" and path = "core::ops::arith::MulAssign" and method = "mul_assign" + op = "*=" and path = "core::ops::arith::MulAssign" and method = "mul_assign" and borrows = 1 or - op = "/=" and path = "core::ops::arith::DivAssign" and method = "div_assign" + op = "/=" and path = "core::ops::arith::DivAssign" and method = "div_assign" and borrows = 1 or - op = "%=" and path = "core::ops::arith::RemAssign" and method = "rem_assign" + op = "%=" and path = "core::ops::arith::RemAssign" and method = "rem_assign" and borrows = 1 or // Bitwise operators - op = "&" and path = "core::ops::bit::BitAnd" and method = "bitand" + op = "&" and path = "core::ops::bit::BitAnd" and method = "bitand" and borrows = 0 or - op = "|" and path = "core::ops::bit::BitOr" and method = "bitor" + op = "|" and path = "core::ops::bit::BitOr" and method = "bitor" and borrows = 0 or - op = "^" and path = "core::ops::bit::BitXor" and method = "bitxor" + op = "^" and path = "core::ops::bit::BitXor" and method = "bitxor" and borrows = 0 or - op = "<<" and path = "core::ops::bit::Shl" and method = "shl" + op = "<<" and path = "core::ops::bit::Shl" and method = "shl" and borrows = 0 or - op = ">>" and path = "core::ops::bit::Shr" and method = "shr" + op = ">>" and path = "core::ops::bit::Shr" and method = "shr" and borrows = 0 or // Bitwise assignment operators - op = "&=" and path = "core::ops::bit::BitAndAssign" and method = "bitand_assign" + op = "&=" and path = "core::ops::bit::BitAndAssign" and method = "bitand_assign" and borrows = 1 or - op = "|=" and path = "core::ops::bit::BitOrAssign" and method = "bitor_assign" + op = "|=" and path = "core::ops::bit::BitOrAssign" and method = "bitor_assign" and borrows = 1 or - op = "^=" and path = "core::ops::bit::BitXorAssign" and method = "bitxor_assign" + op = "^=" and path = "core::ops::bit::BitXorAssign" and method = "bitxor_assign" and borrows = 1 or - op = "<<=" and path = "core::ops::bit::ShlAssign" and method = "shl_assign" + op = "<<=" and path = "core::ops::bit::ShlAssign" and method = "shl_assign" and borrows = 1 or - op = ">>=" and path = "core::ops::bit::ShrAssign" and method = "shr_assign" + op = ">>=" and path = "core::ops::bit::ShrAssign" and method = "shr_assign" and borrows = 1 ) } @@ -114,9 +115,9 @@ module Impl { * Holds if this operation is overloaded to the method `methodName` of the * trait `trait`. */ - predicate isOverloaded(Trait trait, string methodName) { + predicate isOverloaded(Trait trait, string methodName, int borrows) { isOverloaded(this.getOperatorName(), this.getNumberOfOperands(), trait.getCanonicalPath(), - methodName) + methodName, borrows) } } } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index c72064a90dd..716bd52c146 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -705,7 +705,7 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { predicate adjustAccessType( AccessPosition apos, Declaration target, TypePath path, Type t, TypePath pathAdj, Type tAdj ) { - if apos.getArgumentPosition().isSelf() and apos.isBorrowed() + if apos.isBorrowed() then exists(Type selfParamType | selfParamType = @@ -767,13 +767,10 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { | n = a.getNodeAt(apos) and result = CallExprBaseMatching::inferAccessType(a, apos, path0) and - // temporary workaround until implicit borrows are handled correctly - if a instanceof Operation then apos.isReturn() else any() - | - if apos.getArgumentPosition().isSelf() + if apos.isBorrowed() then - exists(Type receiverType | receiverType = inferType(n) | - if receiverType = TRefType() + exists(Type argType | argType = inferType(n) | + if argType = TRefType() then path = path0 and path0.isCons(TRefTypeParameter(), _) @@ -784,7 +781,7 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { path = TypePath::cons(TRefTypeParameter(), path0) else ( not ( - receiverType.(StructType).asItemNode() instanceof StringStruct and + argType.(StructType).asItemNode() instanceof StringStruct and result.(StructType).asItemNode() instanceof Builtins::Str ) and ( diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 3e8e577f3ef..5b7232ae849 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1678,7 +1678,7 @@ mod overloadable_operators { let vec2_not = !v1; // $ type=vec2_not:Vec2 method=Vec2::not // Here the type of `default_vec2` must be inferred from the `+` call. - let default_vec2 = Default::default(); // $ MISSING: type=default_vec2:Vec2 + let default_vec2 = Default::default(); // $ type=default_vec2:Vec2 let vec2_zero_plus = Vec2 { x: 0, y: 0 } + default_vec2; // $ method=Vec2::add } } 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 78f1ae26daa..758882f52d8 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2464,6 +2464,8 @@ inferType | main.rs:1678:13:1678:20 | vec2_not | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1678:24:1678:26 | ! ... | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1678:25:1678:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1681:13:1681:24 | default_vec2 | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1681:28:1681:45 | ...::default(...) | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1682:13:1682:26 | vec2_zero_plus | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1682:30:1682:48 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1682:30:1682:63 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | @@ -2471,6 +2473,7 @@ inferType | main.rs:1682:40:1682:40 | 0 | | {EXTERNAL LOCATION} | i64 | | main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1682:52:1682:63 | default_vec2 | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1692:18:1692:21 | SelfParam | | main.rs:1689:5:1689:14 | S1 | | main.rs:1695:25:1697:5 | { ... } | | main.rs:1689:5:1689:14 | S1 | | main.rs:1696:9:1696:10 | S1 | | main.rs:1689:5:1689:14 | S1 | From f18acdf11fc7e46268aed6c2e834780cd348f554 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 17 Jun 2025 10:26:08 +0200 Subject: [PATCH 068/340] Rust: Generalize type of debug predicate --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 716bd52c146..ddbf6dec35c 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1587,7 +1587,7 @@ private module Debug { result = inferType(n, path) } - Function debugResolveMethodCallExpr(MethodCallExpr mce) { + Function debugResolveMethodCallTarget(Call mce) { mce = getRelevantLocatable() and result = resolveMethodCallTarget(mce) } From e9a071032cd3cbd2e6e265e0056b5c0f7bcab6f6 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 17 Jun 2025 11:19:59 +0200 Subject: [PATCH 069/340] Rust: address review on docs --- .../analyzing-data-flow-in-rust.rst | 49 ++++++------------- .../codeql-for-rust.rst | 2 +- .../codeql-library-for-rust.rst | 6 +-- 3 files changed, 19 insertions(+), 38 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 3eab09126f3..a68dc08a22b 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -23,10 +23,9 @@ Using local data flow ~~~~~~~~~~~~~~~~~~~~~ You can use the local data flow library by importing the ``codeql.rust.dataflow.DataFlow`` module. The library uses the class ``Node`` to represent any element through which data can flow. -``Node``\ s are divided into expression nodes (``ExprNode``) and parameter nodes (``ParameterNode``). -You can map a data flow ``ParameterNode`` to its corresponding ``Parameter`` AST node using the ``asParameter`` member predicate. -Similarly, you can use the ``asExpr`` member predicate to map a data flow ``ExprNode`` to its corresponding ``ExprCfgNode`` in the control-flow library. - +Common ``Node`` types include expression nodes (``ExprNode``) and parameter nodes (``ParameterNode``). +You can use the ``asExpr`` member predicate to map a data flow ``ExprNode`` to its corresponding ``ExprCfgNode`` in the control-flow library. +Similarly, you can map a data flow ``ParameterNode`` to its corresponding ``Parameter`` AST node using the ``asParameter`` member predicate. .. code-block:: ql class Node { @@ -39,22 +38,8 @@ Similarly, you can use the ``asExpr`` member predicate to map a data flow ``Expr ... } -You can use the predicates ``exprNode`` and ``parameterNode`` to map from expressions and parameters to their data-flow node: - -.. code-block:: ql - - /** - * Gets a node corresponding to expression `e`. - */ - ExprNode exprNode(CfgNodes::ExprCfgNode e) { ... } - - /** - * Gets the node corresponding to the value of parameter `p` at function entry. - */ - ParameterNode parameterNode(Parameter p) { ... } - -Note that since ``asExpr`` and ``exprNode`` map between data-flow and control-flow nodes, you then need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node, -for example, by writing ``node.asExpr().getExpr()``. +Note that since ``asExpr`` maps from data-flow to control-flow nodes, you then need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node, +for example by writing ``node.asExpr().getExpr()``. A control-flow graph considers every way control can flow through code, consequently, there can be multiple data-flow and control-flow nodes associated with a single expression node in the AST. The predicate ``localFlowStep(Node nodeFrom, Node nodeTo)`` holds if there is an immediate data flow edge from the node ``nodeFrom`` to the node ``nodeTo``. @@ -207,11 +192,7 @@ The global taint tracking library uses the same configuration module as the glob Predefined sources ~~~~~~~~~~~~~~~~~~ -The data flow library module ``codeql.rust.dataflow.FlowSources`` contains a number of predefined sources that you can use to write security queries to track data flow and taint flow. - -- The class ``RemoteFlowSource`` represents data flow from remote network inputs and from other applications. -- The class ``LocalFlowSource`` represents data flow from local user input. -- The class ``FlowSource`` includes both of the above. +The library module ``codeql.rust.Concepts`` contains a number of predefined sources and sinks that you can use to write security queries to track data flow and taint flow. Examples of global data flow ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -229,16 +210,16 @@ The following global taint-tracking query finds places where a string literal is import codeql.rust.dataflow.TaintTracking module ConstantPasswordConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } + predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } - predicate isSink(DataFlow::Node node) { - // any argument going to a parameter called `password` - exists(Function f, CallExpr call, int index | - call.getArg(index) = node.asExpr().getExpr() and - call.getStaticTarget() = f and - f.getParam(index).getPat().(IdentPat).getName().getText() = "password" - ) - } + predicate isSink(DataFlow::Node node) { + // any argument going to a parameter called `password` + exists(Function f, CallExpr call, int index | + call.getArg(index) = node.asExpr().getExpr() and + call.getStaticTarget() = f and + f.getParam(index).getPat().(IdentPat).getName().getText() = "password" + ) + } } module ConstantPasswordFlow = TaintTracking::Global; diff --git a/docs/codeql/codeql-language-guides/codeql-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-for-rust.rst index c8262208cf5..a2c5bb98724 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-rust.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-rust.rst @@ -13,4 +13,4 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat analyzing-data-flow-in-rust - :doc:`CodeQL library for Rust `: When you're analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. -- :doc:`Analyzing data flow in Ruby `: You can use CodeQL to track the flow of data through a Rust program to places where the data is used. +- :doc:`Analyzing data flow in Rust `: You can use CodeQL to track the flow of data through a Rust program to places where the data is used. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst index dd25d769692..348490e22dd 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst @@ -12,14 +12,14 @@ CodeQL ships with a library for analyzing Rust code. The classes in this library abstractions and predicates to help you with common analysis tasks. The library is implemented as a set of CodeQL modules, that is, files with the extension ``.qll``. The -module `rust.qll `__ imports most other standard library modules, so you can include the complete -library by beginning your query with: +module `rust.qll `__ imports most other standard library modules, so you can include them +by beginning your query with: .. code-block:: ql import rust -The CodeQL libraries model various aspects of Rust code. The above import includes the abstract syntax tree (AST) library, which is used for locating program elements, +The CodeQL libraries model various aspects of Rust code. The above import includes the abstract syntax tree (AST) library, which is used for locating program elements to match syntactic elements in the source code. This can be used for example to find values, patterns and structures. The control flow graph (CFG) is imported using From 69da4e746271700aa179a6bf7f13711771068d9f Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 17 Jun 2025 10:45:57 +0100 Subject: [PATCH 070/340] Rust: Move inferArrayExprType logic into typeEquality predicate. --- .../codeql/rust/internal/TypeInference.qll | 29 +++++++------------ .../type-inference/type-inference.expected | 2 ++ 2 files changed, 12 insertions(+), 19 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index e8ff8bcc9da..0456113fff5 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -287,6 +287,16 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat prefix2.isEmpty() ) ) + or + // an array list expression (`[1, 2, 3]`) has the type of the first (any) element + n1.(ArrayListExpr).getExpr(0) = n2 and + prefix1 = TypePath::singleton(TArrayTypeParameter()) and + prefix2.isEmpty() + or + // an array repeat expression (`[1; 3]`) has the type of the repeat operand + n1.(ArrayRepeatExpr).getRepeatOperand() = n2 and + prefix1 = TypePath::singleton(TArrayTypeParameter()) and + prefix2.isEmpty() } pragma[nomagic] @@ -1124,23 +1134,6 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { ) } -pragma[nomagic] -private Type inferArrayExprType(ArrayExpr ae, TypePath path) { - // an array list expression (`[1, 2, 3]`) has the type of the first (any) element - exists(Type type0, TypePath path0 | - type0 = inferType(ae.(ArrayListExpr).getExpr(0), path0) and - result = type0 and - path = TypePath::cons(any(ArrayTypeParameter tp), path0) - ) - or - // an array repeat expression (`[1; 3]`) has the type of the repeat operand - exists(Type type0, TypePath path0 | - type0 = inferType(ae.(ArrayRepeatExpr).getRepeatOperand(), path0) and - result = type0 and - path = TypePath::cons(any(ArrayTypeParameter tp), path0) - ) -} - pragma[nomagic] private Type inferForLoopExprType(AstNode n, TypePath path) { // type of iterable -> type of pattern (loop variable) @@ -1470,8 +1463,6 @@ private module Cached { or result = inferIndexExprType(n, path) or - result = inferArrayExprType(n, path) - or result = inferForLoopExprType(n, path) } } 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 36f43dc8864..322bb74c64f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2685,6 +2685,7 @@ inferType | main.rs:1840:31:1840:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1840:31:1840:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1840:32:1840:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1840:32:1840:32 | 1 | | {EXTERNAL LOCATION} | u32 | | main.rs:1840:35:1840:35 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1840:38:1840:38 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1841:13:1841:13 | u | | {EXTERNAL LOCATION} | i32 | @@ -2700,6 +2701,7 @@ inferType | main.rs:1843:31:1843:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1843:31:1843:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1843:32:1843:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1843:32:1843:32 | 1 | | {EXTERNAL LOCATION} | u64 | | main.rs:1843:35:1843:35 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1844:13:1844:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1844:13:1844:13 | u | | {EXTERNAL LOCATION} | u64 | From 66d6770c3f4a569fb18a3c5e6cc28ac6548d5896 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 17 Jun 2025 10:46:46 +0100 Subject: [PATCH 071/340] Rust: If we're inferring both ways, it should really be to any element. --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 2 +- .../type-inference/type-inference.expected | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 0456113fff5..2205adbc980 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -289,7 +289,7 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat ) or // an array list expression (`[1, 2, 3]`) has the type of the first (any) element - n1.(ArrayListExpr).getExpr(0) = n2 and + n1.(ArrayListExpr).getExpr(_) = n2 and prefix1 = TypePath::singleton(TArrayTypeParameter()) and prefix2.isEmpty() or 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 322bb74c64f..d7fa6457135 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2664,12 +2664,19 @@ inferType | main.rs:1832:19:1832:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1832:22:1832:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1832:25:1832:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1834:13:1834:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1834:13:1834:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1834:21:1834:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1834:21:1834:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1834:22:1834:24 | 1u8 | | {EXTERNAL LOCATION} | i32 | | main.rs:1834:22:1834:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | | main.rs:1834:27:1834:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1834:27:1834:27 | 2 | | {EXTERNAL LOCATION} | u8 | | main.rs:1834:30:1834:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1834:30:1834:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1835:13:1835:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1835:13:1835:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1835:18:1835:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1835:18:1835:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | | main.rs:1837:13:1837:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1837:21:1837:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | @@ -2687,7 +2694,9 @@ inferType | main.rs:1840:32:1840:32 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1840:32:1840:32 | 1 | | {EXTERNAL LOCATION} | u32 | | main.rs:1840:35:1840:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1840:35:1840:35 | 2 | | {EXTERNAL LOCATION} | u32 | | main.rs:1840:38:1840:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1840:38:1840:38 | 3 | | {EXTERNAL LOCATION} | u32 | | main.rs:1841:13:1841:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1841:13:1841:13 | u | | {EXTERNAL LOCATION} | u32 | | main.rs:1841:18:1841:22 | vals3 | | file://:0:0:0:0 | [] | @@ -2772,13 +2781,17 @@ inferType | main.rs:1875:13:1875:17 | vals4 | | {EXTERNAL LOCATION} | Vec | | main.rs:1875:13:1875:17 | vals4 | T | file://:0:0:0:0 | & | | main.rs:1875:13:1875:17 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1875:33:1875:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1875:33:1875:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1875:33:1875:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | | main.rs:1875:33:1875:61 | ... .collect() | T | file://:0:0:0:0 | & | | main.rs:1875:33:1875:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1875:34:1875:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | | main.rs:1875:34:1875:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | | main.rs:1875:40:1875:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:40:1875:40 | 2 | | {EXTERNAL LOCATION} | u64 | | main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | u64 | | main.rs:1876:18:1876:22 | vals4 | | {EXTERNAL LOCATION} | Vec | | main.rs:1876:18:1876:22 | vals4 | T | file://:0:0:0:0 | & | | main.rs:1876:18:1876:22 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | From 4292b03b5cb7f08cd510c9ae4311b6564ca02c18 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 17 Jun 2025 10:58:26 +0100 Subject: [PATCH 072/340] Rust: Add logic for Vecs and slices. --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 13 ++++++++++--- .../type-inference/type-inference.expected | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 2205adbc980..6bfbf6bee8c 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1140,10 +1140,17 @@ private Type inferForLoopExprType(AstNode n, TypePath path) { exists(ForExpr fe, Type iterableType, TypePath iterablePath | n = fe.getPat() and iterableType = inferType(fe.getIterable(), iterablePath) and + result = iterableType and ( - iterablePath.isCons(any(ArrayTypeParameter tp), path) and - result = iterableType - // TODO: iterables (containers, ranges etc) + iterablePath.isCons(any(Vec v).getElementTypeParameter(), path) + or + iterablePath.isCons(any(ArrayTypeParameter tp), path) + or + exists(TypePath path0 | + iterablePath.isCons(any(RefTypeParameter tp), path0) and + path0.isCons(any(SliceTypeParameter tp), path) + ) + // TODO: iterables (general case for containers, ranges etc) ) ) } 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 d7fa6457135..8b820ef1ef7 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2792,6 +2792,8 @@ inferType | main.rs:1875:40:1875:40 | 2 | | {EXTERNAL LOCATION} | u64 | | main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1876:13:1876:13 | u | | file://:0:0:0:0 | & | +| main.rs:1876:13:1876:13 | u | &T | {EXTERNAL LOCATION} | u64 | | main.rs:1876:18:1876:22 | vals4 | | {EXTERNAL LOCATION} | Vec | | main.rs:1876:18:1876:22 | vals4 | T | file://:0:0:0:0 | & | | main.rs:1876:18:1876:22 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | From aa5dd7bb4ea09a594f3c2a06f2cca0f0fae52a40 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 17 Jun 2025 14:05:36 +0200 Subject: [PATCH 073/340] Java: mass enable diff-informed data flow + `none()` overrides An auto-generated patch that enables diff-informed data flow in the obvious cases. Builds on github#18346 and github/codeql-patch#88 --- .../code/java/security/ArbitraryApkInstallationQuery.qll | 4 ++++ .../code/java/security/HardcodedCredentialsApiCallQuery.qll | 2 ++ .../java/security/HardcodedCredentialsSourceCallQuery.qll | 2 ++ java/ql/lib/semmle/code/java/security/HttpsUrlsQuery.qll | 2 ++ .../lib/semmle/code/java/security/InsecureBasicAuthQuery.qll | 2 ++ java/ql/lib/semmle/code/java/security/SensitiveUiQuery.qll | 4 ++++ .../semmle/code/java/security/UnsafeAndroidAccessQuery.qll | 2 ++ 7 files changed, 18 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll index be8eea879c5..8c833bb79d6 100644 --- a/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/ArbitraryApkInstallationQuery.qll @@ -23,6 +23,10 @@ module ApkInstallationConfig implements DataFlow::ConfigSig { ) ) } + + predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module ApkInstallationFlow = DataFlow::Global; diff --git a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsApiCallQuery.qll b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsApiCallQuery.qll index f623973a657..c0e04424ec6 100644 --- a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsApiCallQuery.qll +++ b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsApiCallQuery.qll @@ -49,6 +49,8 @@ module HardcodedCredentialApiCallConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node n) { n.asExpr().(MethodCall).getMethod() instanceof MethodSystemGetenv } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsSourceCallQuery.qll b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsSourceCallQuery.qll index 06d7869ce99..e3b5b235a4e 100644 --- a/java/ql/lib/semmle/code/java/security/HardcodedCredentialsSourceCallQuery.qll +++ b/java/ql/lib/semmle/code/java/security/HardcodedCredentialsSourceCallQuery.qll @@ -14,6 +14,8 @@ module HardcodedCredentialSourceCallConfig implements DataFlow::ConfigSig { predicate isSource(DataFlow::Node n) { n.asExpr() instanceof HardcodedExpr } predicate isSink(DataFlow::Node n) { n.asExpr() instanceof FinalCredentialsSourceSink } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/HttpsUrlsQuery.qll b/java/ql/lib/semmle/code/java/security/HttpsUrlsQuery.qll index 031066d506e..1e67e3ca59a 100644 --- a/java/ql/lib/semmle/code/java/security/HttpsUrlsQuery.qll +++ b/java/ql/lib/semmle/code/java/security/HttpsUrlsQuery.qll @@ -19,6 +19,8 @@ module HttpStringToUrlOpenMethodFlowConfig implements DataFlow::ConfigSig { } predicate isBarrier(DataFlow::Node node) { node instanceof SimpleTypeSanitizer } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/InsecureBasicAuthQuery.qll b/java/ql/lib/semmle/code/java/security/InsecureBasicAuthQuery.qll index 9e69308e458..e2c188d956b 100644 --- a/java/ql/lib/semmle/code/java/security/InsecureBasicAuthQuery.qll +++ b/java/ql/lib/semmle/code/java/security/InsecureBasicAuthQuery.qll @@ -17,6 +17,8 @@ module BasicAuthFlowConfig implements DataFlow::ConfigSig { predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) { any(HttpUrlsAdditionalTaintStep c).step(node1, node2) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** diff --git a/java/ql/lib/semmle/code/java/security/SensitiveUiQuery.qll b/java/ql/lib/semmle/code/java/security/SensitiveUiQuery.qll index a7e76d0e2e3..ea58c08e07c 100644 --- a/java/ql/lib/semmle/code/java/security/SensitiveUiQuery.qll +++ b/java/ql/lib/semmle/code/java/security/SensitiveUiQuery.qll @@ -19,6 +19,8 @@ private module NotificationTrackingConfig implements DataFlow::ConfigSig { } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** Taint tracking flow for sensitive data flowing to system notifications. */ @@ -75,6 +77,8 @@ private module TextFieldTrackingConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { node instanceof SimpleTypeSanitizer } predicate isBarrierIn(DataFlow::Node node) { isSource(node) } + + predicate observeDiffInformedIncrementalMode() { any() } } /** A local flow step that also flows through access to fields containing `View`s */ diff --git a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccessQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccessQuery.qll index 1c9d2809eba..6fe849c7983 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccessQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeAndroidAccessQuery.qll @@ -15,6 +15,8 @@ module FetchUntrustedResourceConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof UrlResourceSink } predicate isBarrier(DataFlow::Node sanitizer) { sanitizer instanceof RequestForgerySanitizer } + + predicate observeDiffInformedIncrementalMode() { any() } } /** From b79ce6d30b031335fd4a05a5af69483c1993668e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 17 Jun 2025 15:36:52 +0200 Subject: [PATCH 074/340] Python: mass enable diff-informed data flow `none()` location overrides An auto-generated patch that enables diff-informed data flow in the obvious cases. Builds on github#18346 and github/codeql-patch#88 --- .../CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql | 2 ++ python/ql/src/experimental/Security/CWE-346/CorsBypass.ql | 2 ++ python/ql/src/experimental/Security/UnsafeUnpackQuery.qll | 2 ++ .../experimental/semmle/python/security/LdapInsecureAuth.qll | 2 ++ 4 files changed, 8 insertions(+) diff --git a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql index a0fadbff3f3..a93787c9d79 100644 --- a/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql +++ b/python/ql/src/experimental/Security/CWE-327/Azure/UnsafeUsageOfClientSideEncryptionVersion.ql @@ -147,6 +147,8 @@ private module AzureBlobClientConfig implements DataFlow::StateConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module AzureBlobClientFlow = DataFlow::GlobalWithState; diff --git a/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql b/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql index 01e661cb0bb..4bb8440c02c 100644 --- a/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql +++ b/python/ql/src/experimental/Security/CWE-346/CorsBypass.ql @@ -81,6 +81,8 @@ module CorsBypassConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module CorsFlow = TaintTracking::Global; diff --git a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll index 64da6b8d799..79e50fbd36e 100644 --- a/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll +++ b/python/ql/src/experimental/Security/UnsafeUnpackQuery.qll @@ -210,6 +210,8 @@ module UnsafeUnpackConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Global taint-tracking for detecting "UnsafeUnpacking" vulnerabilities. */ diff --git a/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll b/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll index 630543e6f79..431f9f9ab73 100644 --- a/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll +++ b/python/ql/src/experimental/semmle/python/security/LdapInsecureAuth.qll @@ -103,6 +103,8 @@ private module LdapInsecureAuthConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Global taint-tracking for detecting "LDAP insecure authentications" vulnerabilities. */ From 6f7e0d6bc8b363efa823007b5c34e69c92698cdd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 17 Jun 2025 15:48:11 +0200 Subject: [PATCH 075/340] Ruby: mass enable diff-informed data flow `none()` location overrides An auto-generated patch that enables diff-informed data flow in the obvious cases. Adds `getASelected{Source,Sink}Location() { none() }` override to queries that select a dataflow source or sink as a location, but not both. --- .../manually-check-http-verb/ManuallyCheckHttpVerb.ql | 2 ++ ruby/ql/src/experimental/weak-params/WeakParams.ql | 2 ++ ruby/ql/src/queries/meta/TaintedNodes.ql | 2 ++ 3 files changed, 6 insertions(+) diff --git a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql index 4af2425b1a8..80113ee7823 100644 --- a/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql +++ b/ruby/ql/src/experimental/manually-check-http-verb/ManuallyCheckHttpVerb.ql @@ -88,6 +88,8 @@ private module HttpVerbConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } private module HttpVerbFlow = TaintTracking::Global; diff --git a/ruby/ql/src/experimental/weak-params/WeakParams.ql b/ruby/ql/src/experimental/weak-params/WeakParams.ql index faec728a2dd..2abc151a920 100644 --- a/ruby/ql/src/experimental/weak-params/WeakParams.ql +++ b/ruby/ql/src/experimental/weak-params/WeakParams.ql @@ -48,6 +48,8 @@ private module WeakParamsConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node node) { node = any(PersistentWriteAccess a).getValue() } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } private module WeakParamsFlow = TaintTracking::Global; diff --git a/ruby/ql/src/queries/meta/TaintedNodes.ql b/ruby/ql/src/queries/meta/TaintedNodes.ql index 8ddda63b359..2ee6e83e0de 100644 --- a/ruby/ql/src/queries/meta/TaintedNodes.ql +++ b/ruby/ql/src/queries/meta/TaintedNodes.ql @@ -21,6 +21,8 @@ private module BasicTaintConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } private module BasicTaintFlow = TaintTracking::Global; From 942a980dac888246cd6585755e07222fb5d82462 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 17 Jun 2025 14:21:36 +0100 Subject: [PATCH 076/340] Rust: Update PoemHandlerParam from getResolvedPath -> getCanonicalPath. --- rust/ql/lib/codeql/rust/frameworks/Poem.qll | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/Poem.qll b/rust/ql/lib/codeql/rust/frameworks/Poem.qll index 66c01a415a1..dbc510b63d8 100644 --- a/rust/ql/lib/codeql/rust/frameworks/Poem.qll +++ b/rust/ql/lib/codeql/rust/frameworks/Poem.qll @@ -5,16 +5,19 @@ 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 /** * Parameters of a handler function */ private class PoemHandlerParam extends RemoteSource::Range { PoemHandlerParam() { - exists(TupleStructPat param | - param.getResolvedPath() = ["crate::web::query::Query", "crate::web::path::Path"] - | - this.asPat().getPat() = param.getAField() + exists(TupleStructPat param, Type t | + this.asPat().getPat() = param.getAField() and + t = inferType(param) and + t.(StructType).asItemNode().(Addressable).getCanonicalPath() = + ["poem::web::query::Query", "poem::web::path::Path"] ) } } From fc61910df1c8753b8acac609018e8eef5ee33b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 13 Jun 2025 14:48:33 +0200 Subject: [PATCH 077/340] Actions: mass-add `none()` location overrides --- .../ql/lib/codeql/actions/security/OutputClobberingQuery.qll | 2 ++ actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll | 2 ++ .../ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll | 2 ++ actions/ql/src/Models/CompositeActionsSinks.ql | 2 ++ actions/ql/src/Models/CompositeActionsSources.ql | 2 ++ actions/ql/src/Models/CompositeActionsSummaries.ql | 2 ++ actions/ql/src/Models/ReusableWorkflowsSinks.ql | 2 ++ actions/ql/src/Models/ReusableWorkflowsSources.ql | 2 ++ actions/ql/src/Models/ReusableWorkflowsSummaries.ql | 2 ++ 9 files changed, 18 insertions(+) diff --git a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll index 485d2762798..c67d2876b09 100644 --- a/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll +++ b/actions/ql/lib/codeql/actions/security/OutputClobberingQuery.qll @@ -216,6 +216,8 @@ private module OutputClobberingConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used to construct and evaluate an environment variable. */ diff --git a/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll b/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll index fb89ebdc8ba..d96a12e2608 100644 --- a/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll +++ b/actions/ql/lib/codeql/actions/security/RequestForgeryQuery.qll @@ -18,6 +18,8 @@ private module RequestForgeryConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof RequestForgerySink } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used to construct and evaluate a system command. */ diff --git a/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll b/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll index b3d59210053..15cd726c4bb 100644 --- a/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll +++ b/actions/ql/lib/codeql/actions/security/SecretExfiltrationQuery.qll @@ -17,6 +17,8 @@ private module SecretExfiltrationConfig implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof SecretExfiltrationSink } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** Tracks flow of unsafe user input that is used in a context where it may lead to a secret exfiltration. */ diff --git a/actions/ql/src/Models/CompositeActionsSinks.ql b/actions/ql/src/Models/CompositeActionsSinks.ql index 82f0754f03e..65d3fdce9dc 100644 --- a/actions/ql/src/Models/CompositeActionsSinks.ql +++ b/actions/ql/src/Models/CompositeActionsSinks.ql @@ -26,6 +26,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; diff --git a/actions/ql/src/Models/CompositeActionsSources.ql b/actions/ql/src/Models/CompositeActionsSources.ql index c9974cd7361..2f3e98b3401 100644 --- a/actions/ql/src/Models/CompositeActionsSources.ql +++ b/actions/ql/src/Models/CompositeActionsSources.ql @@ -36,6 +36,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; diff --git a/actions/ql/src/Models/CompositeActionsSummaries.ql b/actions/ql/src/Models/CompositeActionsSummaries.ql index 814498f639e..1979c381f5d 100644 --- a/actions/ql/src/Models/CompositeActionsSummaries.ql +++ b/actions/ql/src/Models/CompositeActionsSummaries.ql @@ -27,6 +27,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; diff --git a/actions/ql/src/Models/ReusableWorkflowsSinks.ql b/actions/ql/src/Models/ReusableWorkflowsSinks.ql index 8d02debbdb4..2b08f2445d9 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSinks.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSinks.ql @@ -26,6 +26,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; diff --git a/actions/ql/src/Models/ReusableWorkflowsSources.ql b/actions/ql/src/Models/ReusableWorkflowsSources.ql index a7112bf3758..831191e4bfb 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSources.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSources.ql @@ -36,6 +36,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; diff --git a/actions/ql/src/Models/ReusableWorkflowsSummaries.ql b/actions/ql/src/Models/ReusableWorkflowsSummaries.ql index a05bec744f8..fd2d4b396a0 100644 --- a/actions/ql/src/Models/ReusableWorkflowsSummaries.ql +++ b/actions/ql/src/Models/ReusableWorkflowsSummaries.ql @@ -27,6 +27,8 @@ private module MyConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module MyFlow = TaintTracking::Global; From 634bfa914fef48447e814886add2af680c743770 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 13 Jun 2025 15:00:47 +0200 Subject: [PATCH 078/340] C#: mass-add `none()` location overrides --- csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql b/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql index b48ddbf0f35..d2d22671677 100644 --- a/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql +++ b/csharp/ql/src/Security Features/CWE-327/DontInstallRootCert.ql @@ -39,6 +39,8 @@ module AddCertToRootStoreConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module AddCertToRootStore = DataFlow::Global; From 51826c72d03587b883bf630585087349c2752903 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 13 Jun 2025 15:25:04 +0200 Subject: [PATCH 079/340] Go: mass-add `none()` location overrides --- go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql | 2 ++ go/ql/src/Security/CWE-079/HtmlTemplateEscapingBypassXss.ql | 2 ++ go/ql/src/Security/CWE-326/InsufficientKeySize.ql | 2 ++ go/ql/src/experimental/CWE-285/PamAuthBypass.ql | 4 ++++ go/ql/src/experimental/CWE-369/DivideByZero.ql | 2 ++ 5 files changed, 12 insertions(+) diff --git a/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql b/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql index d1c501b37ec..43a24b1aef3 100644 --- a/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql +++ b/go/ql/src/Security/CWE-020/MissingRegexpAnchor.ql @@ -74,6 +74,8 @@ module Config implements DataFlow::ConfigSig { predicate isSink(DataFlow::Node sink) { sink instanceof RegexpPattern } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } module Flow = DataFlow::Global; diff --git a/go/ql/src/Security/CWE-079/HtmlTemplateEscapingBypassXss.ql b/go/ql/src/Security/CWE-079/HtmlTemplateEscapingBypassXss.ql index 0618c8e8888..15373ee85ed 100644 --- a/go/ql/src/Security/CWE-079/HtmlTemplateEscapingBypassXss.ql +++ b/go/ql/src/Security/CWE-079/HtmlTemplateEscapingBypassXss.ql @@ -101,6 +101,8 @@ module UntrustedToTemplateExecWithConversionConfig implements DataFlow::StateCon conversion.getType().getUnderlyingType*() = unescapedType ) } + + predicate observeDiffInformedIncrementalMode() { any() } } module UntrustedToTemplateExecWithConversionFlow = diff --git a/go/ql/src/Security/CWE-326/InsufficientKeySize.ql b/go/ql/src/Security/CWE-326/InsufficientKeySize.ql index 6fa421baaeb..5d0ee7ac6ab 100644 --- a/go/ql/src/Security/CWE-326/InsufficientKeySize.ql +++ b/go/ql/src/Security/CWE-326/InsufficientKeySize.ql @@ -27,6 +27,8 @@ module Config implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** diff --git a/go/ql/src/experimental/CWE-285/PamAuthBypass.ql b/go/ql/src/experimental/CWE-285/PamAuthBypass.ql index db2dc94f8f0..755a023ef62 100644 --- a/go/ql/src/experimental/CWE-285/PamAuthBypass.ql +++ b/go/ql/src/experimental/CWE-285/PamAuthBypass.ql @@ -44,6 +44,8 @@ module PamStartToAcctMgmtConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } module PamStartToAcctMgmtFlow = TaintTracking::Global; @@ -59,6 +61,8 @@ module PamStartToAuthenticateConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { none() } } module PamStartToAuthenticateFlow = TaintTracking::Global; diff --git a/go/ql/src/experimental/CWE-369/DivideByZero.ql b/go/ql/src/experimental/CWE-369/DivideByZero.ql index 99cd120dbf8..8afd165832b 100644 --- a/go/ql/src/experimental/CWE-369/DivideByZero.ql +++ b/go/ql/src/experimental/CWE-369/DivideByZero.ql @@ -47,6 +47,8 @@ module Config implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 67bccc3d05d03f3b7bd5e676104c328828c0d14c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 13 Jun 2025 15:29:16 +0200 Subject: [PATCH 080/340] Swift: mass-add `none()` location overrides --- swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll | 2 ++ .../codeql/swift/security/InsufficientHashIterationsQuery.qll | 2 ++ .../codeql/swift/security/StaticInitializationVectorQuery.qll | 2 ++ .../lib/codeql/swift/security/StringLengthConflationQuery.qll | 2 ++ swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll | 2 ++ swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll | 2 ++ 6 files changed, 12 insertions(+) diff --git a/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll b/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll index 91d46b764df..c0d4d7cd896 100644 --- a/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll +++ b/swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll @@ -40,6 +40,8 @@ module ConstantPasswordConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module ConstantPasswordFlow = TaintTracking::Global; diff --git a/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll b/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll index 0a7fea3d3c5..f1f21dabe03 100644 --- a/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll +++ b/swift/ql/lib/codeql/swift/security/InsufficientHashIterationsQuery.qll @@ -36,6 +36,8 @@ module InsufficientHashIterationsConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module InsufficientHashIterationsFlow = TaintTracking::Global; diff --git a/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll b/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll index 3c4359e02db..fb6e21cac52 100644 --- a/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll +++ b/swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll @@ -42,6 +42,8 @@ module StaticInitializationVectorConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } module StaticInitializationVectorFlow = TaintTracking::Global; diff --git a/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll b/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll index eb17306f22f..5ddcd2333e2 100644 --- a/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll +++ b/swift/ql/lib/codeql/swift/security/StringLengthConflationQuery.qll @@ -41,6 +41,8 @@ module StringLengthConflationConfig implements DataFlow::StateConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** diff --git a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll index 92b061b2af4..e82db8f4e7b 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeJsEvalQuery.qll @@ -24,6 +24,8 @@ module UnsafeJsEvalConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** diff --git a/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll b/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll index e79bce5ba14..a8485ff9947 100644 --- a/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll +++ b/swift/ql/lib/codeql/swift/security/UnsafeUnpackQuery.qll @@ -26,6 +26,8 @@ module UnsafeUnpackConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node sink) { none() } } /** From 2316b8cf89ebb72a196b531af0859d9972a4b0f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 13 Jun 2025 15:20:32 +0200 Subject: [PATCH 081/340] C++: mass-add `none()` location overrides --- cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql b/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql index cfe04ba23bf..1d032a63ba3 100644 --- a/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql +++ b/cpp/ql/src/experimental/Security/CWE/CWE-078/WordexpTainted.ql @@ -50,6 +50,8 @@ module WordexpTaintConfig implements DataFlow::ConfigSig { } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSourceLocation(DataFlow::Node source) { none() } } module WordexpTaint = TaintTracking::Global; From dec0deb4d19dd4fd02fd89784f9f983ce1ac77b6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 17 Jun 2025 23:07:32 +0100 Subject: [PATCH 082/340] Rust: Add some more test cases for type inference on Vecs. --- .../test/library-tests/type-inference/main.rs | 16 +- .../type-inference/type-inference.expected | 168 ++++++++++-------- 2 files changed, 111 insertions(+), 73 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index d1d900b9d41..e8361d1da56 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1869,11 +1869,21 @@ mod loops { // for loops with containers - let vals3 = vec![1, 2, 3]; // MISSING: type=vals:Vec + let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec for i in vals3 { } // $ MISSING: type=i:i32 - let vals4 : Vec<&u64> = [1u64, 2, 3].iter().collect(); - for u in vals4 { } // $ MISSING: type=u:&u64 + let vals4 = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4:Vec + for u in vals4 { } // $ MISSING: type=u:u16 + + let vals5 = Vec::from([1u32, 2, 3]); // $ MISSING: type=vals5:Vec + for u in vals5 { } // $ MISSING: type=u:u32 + + let vals6 : Vec<&u64> = [1u64, 2, 3].iter().collect(); // $ MISSING: type=vals6:Vec<&u64> + for u in vals6 { } // $ MISSING: type=u:&u64 + + let mut vals7 = Vec::new(); // $ MISSING: type=vals7:Vec + vals7.push(1u8); // $ method=push + for u in vals7 { } // $ MISSING: type=u:u8 let matrix1 = vec![vec![1, 2], vec![3, 4]]; // $ MISSING: type=vals5:Vec> for row in matrix1 { // $ MISSING: type=row:Vec 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 8b820ef1ef7..889f3ab8b1f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2778,74 +2778,102 @@ inferType | main.rs:1872:26:1872:26 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1872:29:1872:29 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1872:32:1872:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:13:1875:17 | vals4 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1875:13:1875:17 | vals4 | T | file://:0:0:0:0 | & | -| main.rs:1875:13:1875:17 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1875:33:1875:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:33:1875:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1875:33:1875:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1875:33:1875:61 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:1875:33:1875:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1875:34:1875:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:34:1875:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1875:40:1875:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:40:1875:40 | 2 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:43:1875:43 | 3 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1876:13:1876:13 | u | | file://:0:0:0:0 | & | -| main.rs:1876:13:1876:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:1876:18:1876:22 | vals4 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1876:18:1876:22 | vals4 | T | file://:0:0:0:0 | & | -| main.rs:1876:18:1876:22 | vals4 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1878:33:1878:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1878:36:1878:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1878:45:1878:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1878:48:1878:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1884:13:1884:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1884:13:1884:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1884:24:1884:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1884:24:1884:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1885:9:1885:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1885:9:1885:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1885:9:1885:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1885:21:1885:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1885:24:1885:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1885:33:1885:37 | "one" | | {EXTERNAL LOCATION} | str | -| main.rs:1886:9:1886:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1886:9:1886:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1886:9:1886:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1886:21:1886:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1886:24:1886:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1886:33:1886:37 | "two" | | {EXTERNAL LOCATION} | str | -| main.rs:1887:20:1887:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1887:20:1887:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1887:20:1887:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:1888:22:1888:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1888:22:1888:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1888:22:1888:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:1889:29:1889:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1889:29:1889:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1889:29:1889:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:1890:29:1890:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:1890:29:1890:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:1890:29:1890:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1890:30:1890:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1890:30:1890:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1894:13:1894:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1894:13:1894:17 | mut a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:26:1894:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1894:26:1894:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:15:1895:15 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1895:15:1895:15 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:15:1895:20 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1895:19:1895:20 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1896:13:1896:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1896:13:1896:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1896:13:1896:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1896:18:1896:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:5:1903:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1904:5:1904:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | -| main.rs:1904:20:1904:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1904:41:1904:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | -| main.rs:1920:5:1920:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1875:21:1875:32 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:21:1875:32 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1875:22:1875:25 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:22:1875:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1875:28:1875:28 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:28:1875:28 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1875:31:1875:31 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:31:1875:31 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1878:13:1878:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1878:13:1878:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1878:21:1878:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1878:21:1878:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1878:31:1878:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:31:1878:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1878:32:1878:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:32:1878:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1878:38:1878:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:38:1878:38 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1878:41:1878:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:41:1878:41 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1879:13:1879:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1879:18:1879:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1879:18:1879:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1881:13:1881:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1881:13:1881:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1881:13:1881:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1881:33:1881:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:33:1881:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1881:33:1881:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1881:33:1881:61 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:1881:33:1881:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1881:34:1881:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:34:1881:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1881:40:1881:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:40:1881:40 | 2 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1881:43:1881:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:43:1881:43 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1882:13:1882:13 | u | | file://:0:0:0:0 | & | +| main.rs:1882:13:1882:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:1882:18:1882:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1882:18:1882:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1882:18:1882:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1884:13:1884:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1884:25:1884:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1885:9:1885:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1885:20:1885:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1886:18:1886:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1888:33:1888:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1888:36:1888:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1888:45:1888:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1888:48:1888:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1894:13:1894:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1894:13:1894:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1894:24:1894:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1894:24:1894:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1895:9:1895:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1895:9:1895:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1895:9:1895:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1895:21:1895:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1895:24:1895:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1895:33:1895:37 | "one" | | {EXTERNAL LOCATION} | str | +| main.rs:1896:9:1896:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1896:9:1896:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1896:9:1896:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1896:21:1896:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:24:1896:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1896:33:1896:37 | "two" | | {EXTERNAL LOCATION} | str | +| main.rs:1897:20:1897:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1897:20:1897:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1897:20:1897:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:1898:22:1898:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1898:22:1898:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1898:22:1898:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:1899:29:1899:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1899:29:1899:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1899:29:1899:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:1900:29:1900:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:1900:29:1900:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:1900:29:1900:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1900:30:1900:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1900:30:1900:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1904:13:1904:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1904:13:1904:17 | mut a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:26:1904:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1904:26:1904:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:15:1905:15 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1905:15:1905:15 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:15:1905:20 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1905:19:1905:20 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:13:1906:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:13:1906:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:13:1906:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1906:18:1906:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1913:5:1913:20 | ...::f(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1914:5:1914:60 | ...::g(...) | | main.rs:67:5:67:21 | Foo | +| main.rs:1914:20:1914:38 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1914:41:1914:59 | ...::Foo {...} | | main.rs:67:5:67:21 | Foo | +| main.rs:1930:5:1930:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From 9c3e362594b5bcbe2ba88ec6b02204ab8f4bf6b9 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 18 Jun 2025 09:28:29 +0100 Subject: [PATCH 083/340] Rust: Add TupleStructPat.getStruct. --- .../lib/codeql/rust/elements/internal/TupleStructPatImpl.qll | 5 +++++ rust/ql/lib/codeql/rust/frameworks/Poem.qll | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/TupleStructPatImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/TupleStructPatImpl.qll index d7d4f02f81e..38259efadb7 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/TupleStructPatImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/TupleStructPatImpl.qll @@ -34,6 +34,11 @@ module Impl { exists(this.getField(pragma[only_bind_into](pos))) } + /** + * Gets the struct matched by this pattern. + */ + Struct getStruct() { result = PathResolution::resolvePath(this.getPath()) } + /** Gets the tuple field that matches the `pos`th pattern of this pattern. */ pragma[nomagic] TupleField getTupleField(int pos) { diff --git a/rust/ql/lib/codeql/rust/frameworks/Poem.qll b/rust/ql/lib/codeql/rust/frameworks/Poem.qll index dbc510b63d8..70b2aeb88e6 100644 --- a/rust/ql/lib/codeql/rust/frameworks/Poem.qll +++ b/rust/ql/lib/codeql/rust/frameworks/Poem.qll @@ -16,8 +16,7 @@ private class PoemHandlerParam extends RemoteSource::Range { exists(TupleStructPat param, Type t | this.asPat().getPat() = param.getAField() and t = inferType(param) and - t.(StructType).asItemNode().(Addressable).getCanonicalPath() = - ["poem::web::query::Query", "poem::web::path::Path"] + param.getStruct().getCanonicalPath() = ["poem::web::query::Query", "poem::web::path::Path"] ) } } From 01e7a33e1b6a0ad76d4f7fea3c81bd04ba75ea7e Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Wed, 18 Jun 2025 10:23:21 +0200 Subject: [PATCH 084/340] QL4QL: Add test for ql/inline-overlay-caller query --- .../InlineOverlayCaller.expected | 1 + .../InlineOverlayCaller/InlineOverlayCaller.qlref | 1 + .../queries/overlay/InlineOverlayCaller/Test.qll | 14 ++++++++++++++ 3 files changed, 16 insertions(+) create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref create mode 100644 ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected new file mode 100644 index 00000000000..d89f1dcb8ef --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected @@ -0,0 +1 @@ +| Test.qll:7:11:7:13 | ClasslessPredicate foo | This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an `overlay[caller]` annotation to allow inlining across the overlay frontier. Note that adding an `overlay[caller]` annotation affects semantics under overlay evaluation. | diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref new file mode 100644 index 00000000000..0347e9eedc5 --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.qlref @@ -0,0 +1 @@ +queries/overlay/InlineOverlayCaller.ql diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll new file mode 100644 index 00000000000..3e72490ebb0 --- /dev/null +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll @@ -0,0 +1,14 @@ +overlay[local?] +module; + +import ql + +pragma[inline] +predicate foo(int x) { x = 42 } + +overlay[caller] +pragma[inline] +predicate bar(int x) { x = 43 } + +pragma[inline] +private predicate baz(int x) { x = 44 } From 7ac26e879bf713d1685eb7f7fc8405736a7babc4 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 17 Jun 2025 13:02:20 +0200 Subject: [PATCH 085/340] C++: Add Arm scalable vector type QL classes --- cpp/ql/lib/semmle/code/cpp/Type.qll | 44 ++++++++++++++++++- .../semmle/code/cpp/ir/internal/CppType.qll | 2 + cpp/ql/lib/semmlecode.cpp.dbscheme | 7 +++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll index fef978b198d..c9dded7e4cf 100644 --- a/cpp/ql/lib/semmle/code/cpp/Type.qll +++ b/cpp/ql/lib/semmle/code/cpp/Type.qll @@ -352,7 +352,23 @@ class UnknownType extends BuiltInType { private predicate isArithmeticType(@builtintype type, int kind) { builtintypes(type, _, kind, _, _, _) and kind >= 4 and - kind != 34 // Exclude decltype(nullptr) + kind != 34 and // Exclude decltype(nullptr) + kind != 63 // Exclude __SVCount_t +} + +/** + * The Arm scalable vector count type. + * + * In the following example, `a` is declared using the scalable vector + * count type: + * ``` + * svcount_t a; + * ``` + */ +class ScalableVectorCount extends BuiltInType { + ScalableVectorCount() { builtintypes(underlyingElement(this), _, 63, _, _, _) } + + override string getAPrimaryQlClass() { result = "ScalableVectorCount" } } /** @@ -1084,7 +1100,7 @@ class NullPointerType extends BuiltInType { /** * A C/C++ derived type. * - * These are pointer and reference types, array and GNU vector types, and `const` and `volatile` types. + * These are pointer and reference types, array and vector types, and `const` and `volatile` types. * In all cases, the type is formed from a single base type. For example: * ``` * int *pi; @@ -1643,6 +1659,30 @@ class GNUVectorType extends DerivedType { override predicate isDeeplyConstBelow() { this.getBaseType().isDeeplyConst() } } +/** + * An Arm Scalable vector type. + * + * In the following example, `a` has a scalable vector type consisting + * of 8-bit signed integer elements: + * ``` + * svint8_t a; + * ``` + */ +class ScalableVectorType extends DerivedType { + ScalableVectorType() { derivedtypes(underlyingElement(this), _, 11, _) } + + /** + * Get the number of tuple elements of this scalable vector type. + */ + int getNumTupleElements() { tupleelements(underlyingElement(this), result) } + + override string getAPrimaryQlClass() { result = "ScalableVectorType" } + + override string explain() { result = "scalable vector of {" + this.getBaseType().explain() + "}" } + + override predicate isDeeplyConstBelow() { this.getBaseType().isDeeplyConst() } +} + /** * A C/C++ pointer to a function. See 7.7. * ``` diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll index f61a3a52c6b..d873e3ec757 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll @@ -134,6 +134,8 @@ private predicate isOpaqueType(Type type) { ) or type instanceof PointerToMemberType // PTMs are missing size info + or + type instanceof ScalableVectorCount } /** diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index 9baef67d1ff..e3834605178 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -692,6 +692,7 @@ case @builtintype.kind of | 60 = @complex_float64x // _Complex _Float64x | 61 = @complex_std_float128 // _Complex _Float128 | 62 = @mfp8 // __mfp8 +| 63 = @scalable_vector_count // __SVCount_t ; builtintypes( @@ -718,6 +719,7 @@ case @derivedtype.kind of | 8 = @rvalue_reference // C++11 // ... 9 type_conforming_to_protocols deprecated | 10 = @block +| 11 = @scalable_vector // Arm SVE ; derivedtypes( @@ -738,6 +740,11 @@ arraysizes( 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 From 25149e7ec24dafaddc9b2824e26a9534607faf5d Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 17 Jun 2025 14:07:46 +0200 Subject: [PATCH 086/340] C++: Update expected test results --- .../library-tests/templates/type_instantiations/types.expected | 1 + cpp/ql/test/library-tests/type_sizes/type_sizes.expected | 1 + .../unspecified_type/types/unspecified_type.expected | 1 + cpp/ql/test/library-tests/variables/variables/types.expected | 1 + 4 files changed, 4 insertions(+) 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 a86ab5e7bbd..548f5f10189 100644 --- a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected +++ b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected @@ -21,6 +21,7 @@ | file://:0:0:0:0 | _Imaginary double | | file://:0:0:0:0 | _Imaginary float | | file://:0:0:0:0 | _Imaginary long double | +| file://:0:0:0:0 | __SVCount_t | | file://:0:0:0:0 | __bf16 | | file://:0:0:0:0 | __float128 | | file://:0:0:0:0 | __fp16 | 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 08e8b26f525..c77aadc8f4f 100644 --- a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected +++ b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected @@ -41,6 +41,7 @@ | file://:0:0:0:0 | _Imaginary double | 8 | | file://:0:0:0:0 | _Imaginary float | 4 | | file://:0:0:0:0 | _Imaginary long double | 16 | +| file://:0:0:0:0 | __SVCount_t | 0 | | file://:0:0:0:0 | __attribute((vector_size(16))) int | 16 | | file://:0:0:0:0 | __bf16 | 2 | | file://:0:0:0:0 | __float128 | 16 | 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 2e5091754b9..94185a66899 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 @@ -23,6 +23,7 @@ | file://:0:0:0:0 | _Imaginary double | _Imaginary double | | file://:0:0:0:0 | _Imaginary float | _Imaginary float | | file://:0:0:0:0 | _Imaginary long double | _Imaginary long double | +| file://:0:0:0:0 | __SVCount_t | __SVCount_t | | file://:0:0:0:0 | __bf16 | __bf16 | | file://:0:0:0:0 | __float128 | __float128 | | file://:0:0:0:0 | __fp16 | __fp16 | diff --git a/cpp/ql/test/library-tests/variables/variables/types.expected b/cpp/ql/test/library-tests/variables/variables/types.expected index 1d091ac2571..362ab5c6433 100644 --- a/cpp/ql/test/library-tests/variables/variables/types.expected +++ b/cpp/ql/test/library-tests/variables/variables/types.expected @@ -22,6 +22,7 @@ | _Imaginary double | BinaryFloatingPointType, ImaginaryNumberType | | | | | | _Imaginary float | BinaryFloatingPointType, ImaginaryNumberType | | | | | | _Imaginary long double | BinaryFloatingPointType, ImaginaryNumberType | | | | | +| __SVCount_t | ScalableVectorCount | | | | | | __bf16 | BinaryFloatingPointType, RealNumberType | | | | | | __float128 | Float128Type | | | | | | __fp16 | BinaryFloatingPointType, RealNumberType | | | | | From c19085e56e6830c190efd307c271f44851ed06df Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 17 Jun 2025 13:10:26 +0200 Subject: [PATCH 087/340] C++: Add upgrade and downgrade scripts --- .../builtintypes.ql | 9 + .../derivedtypes.ql | 9 + .../old.dbscheme | 2506 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2499 ++++++++++++++++ .../upgrade.properties | 5 + .../old.dbscheme | 2499 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2506 +++++++++++++++++ .../upgrade.properties | 2 + 8 files changed, 10035 insertions(+) create mode 100644 cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/builtintypes.ql create mode 100644 cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/derivedtypes.ql create mode 100644 cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme create mode 100644 cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties create mode 100644 cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/upgrade.properties diff --git a/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/builtintypes.ql b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/builtintypes.ql new file mode 100644 index 00000000000..165bd8923cc --- /dev/null +++ b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/builtintypes.ql @@ -0,0 +1,9 @@ +class BuiltinType extends @builtintype { + string toString() { none() } +} + +from BuiltinType id, string name, int kind, int new_kind, int size, int sign, int alignment +where + builtintypes(id, name, kind, size, sign, alignment) and + if kind = 63 then /* @errortype */ new_kind = 1 else new_kind = kind +select id, name, new_kind, size, sign, alignment diff --git a/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/derivedtypes.ql b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/derivedtypes.ql new file mode 100644 index 00000000000..76067a70d1c --- /dev/null +++ b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/derivedtypes.ql @@ -0,0 +1,9 @@ +class Type extends @type { + string toString() { none() } +} + +from Type type, string name, int kind, int new_kind, Type type_id +where + derivedtypes(type, name, kind, type_id) and + if kind = 11 then /* @gnu_vector */ new_kind = 5 else new_kind = kind +select type, name, new_kind, type_id diff --git a/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme new file mode 100644 index 00000000000..e3834605178 --- /dev/null +++ b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme @@ -0,0 +1,2506 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..9baef67d1ff --- /dev/null +++ b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme @@ -0,0 +1,2499 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 +; + +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 +); + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties new file mode 100644 index 00000000000..e29cebc506e --- /dev/null +++ b/cpp/downgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties @@ -0,0 +1,5 @@ +description: Arm scalable vector type support +compatibility: backwards +builtintypes.rel: run builtintypes.qlo +derivedtypes.rel: run derivedtypes.qlo +tupleelements.rel: delete diff --git a/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/old.dbscheme b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/old.dbscheme new file mode 100644 index 00000000000..9baef67d1ff --- /dev/null +++ b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/old.dbscheme @@ -0,0 +1,2499 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 +; + +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 +); + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/9baef67d1ffc1551429dbe1c1130815693e28218/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..e3834605178 --- /dev/null +++ b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/semmlecode.cpp.dbscheme @@ -0,0 +1,2506 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/9baef67d1ffc1551429dbe1c1130815693e28218/upgrade.properties b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/upgrade.properties new file mode 100644 index 00000000000..f0abb02d32c --- /dev/null +++ b/cpp/ql/lib/upgrades/9baef67d1ffc1551429dbe1c1130815693e28218/upgrade.properties @@ -0,0 +1,2 @@ +description: Arm scalable vector type support +compatibility: full From fe80d9a7d88df954e17faedd2709d98b0b5cb494 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 17 Jun 2025 22:04:02 +0200 Subject: [PATCH 088/340] C++: Update stats file --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 3530 +++++++++++----------- 1 file changed, 1783 insertions(+), 1747 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index a09e3c44d34..dc51cf5b218 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ @compilation - 14477 + 14471 @externalDataElement @@ -18,15 +18,15 @@ @location_default - 36187125 + 36187310 @location_stmt - 5217074 + 5217100 @location_expr - 18007831 + 18007923 @diagnostic @@ -34,43 +34,43 @@ @file - 74673 + 74641 @folder - 14187 + 14181 @macro_expansion - 39310397 + 39310599 @other_macro_reference - 300692 + 300694 @function - 4010769 + 4010790 @fun_decl - 4149688 + 4149709 @var_decl - 9262560 + 9262608 @type_decl - 1687983 + 1687349 @namespace_decl - 430961 + 430963 @using_declaration - 306602 + 306677 @using_directive @@ -82,27 +82,27 @@ @static_assert - 183513 + 183514 @parameter - 6957539 + 6957575 @membervariable - 1493394 + 1493401 @globalvariable - 488088 + 488090 @localvariable - 725943 + 726100 @enumconstant - 344763 + 344765 @errortype @@ -332,13 +332,17 @@ @mfp8 124 + + @scalable_vector_count + 124 + @pointer - 455607 + 455609 @type_with_specifiers - 695716 + 695720 @array @@ -346,15 +350,15 @@ @routineptr - 684228 + 684232 @reference - 969430 + 969435 @gnu_vector - 774 + 773 @routinereference @@ -362,31 +366,35 @@ @rvalue_reference - 291453 + 291455 @block 10 - @decltype - 102348 + @scalable_vector + 1 @type_operator 7960 + + @decltype + 102349 + @usertype - 4459321 + 4458594 @mangledname - 6330532 + 6330564 @type_mention - 5828677 + 5828707 @concept_template @@ -394,11 +402,11 @@ @routinetype - 604424 + 604428 @ptrtomember - 11030 + 11025 @specifier @@ -410,11 +418,11 @@ @stdattribute - 350169 + 350171 @declspec - 329728 + 329730 @msattribute @@ -430,11 +438,11 @@ @attribute_arg_constant_expr - 82159 + 82124 @attribute_arg_expr - 1608 + 1607 @attribute_arg_empty @@ -450,19 +458,19 @@ @derivation - 476983 + 476986 @frienddecl - 700584 + 700589 @comment - 11220785 + 11220843 @namespace - 9905 + 9901 @specialnamequalifyingelement @@ -470,15 +478,15 @@ @namequalifier - 3041824 + 3041775 @value - 13474536 + 13474605 @initialiser - 2340619 + 2340631 @address_of @@ -486,23 +494,23 @@ @indirect - 404151 + 404153 @array_to_pointer - 1953741 + 1953751 @parexpr - 4915183 + 4915208 @arithnegexpr - 586531 + 586534 @unaryplusexpr - 4072 + 4073 @complementexpr @@ -510,7 +518,7 @@ @notexpr - 355762 + 355764 @postincrexpr @@ -522,31 +530,31 @@ @preincrexpr - 96713 + 96714 @predecrexpr - 35820 + 35821 @conditionalexpr - 897875 + 897880 @addexpr - 571550 + 571553 @subexpr - 466797 + 466799 @mulexpr - 435791 + 435793 @divexpr - 54099 + 54088 @remexpr @@ -566,19 +574,19 @@ @lshiftexpr - 551693 + 551696 @rshiftexpr - 200553 + 200554 @andexpr - 481215 + 481218 @orexpr - 194054 + 194055 @xorexpr @@ -586,31 +594,31 @@ @eqexpr - 643368 + 643372 @neexpr - 411868 + 411870 @gtexpr - 111148 + 111149 @ltexpr - 139428 + 139429 @geexpr - 81383 + 81384 @leexpr - 292034 + 292036 @assignexpr - 1281138 + 1281144 @assignaddexpr @@ -622,7 +630,7 @@ @assignmulexpr - 12614 + 12609 @assigndivexpr @@ -654,7 +662,7 @@ @assignpaddexpr - 18627 + 18628 @assignpsubexpr @@ -662,23 +670,23 @@ @andlogicalexpr - 346587 + 346589 @orlogicalexpr - 1103517 + 1103523 @commaexpr - 168900 + 168901 @subscriptexpr - 435140 + 435142 @callexpr - 261549 + 261438 @vastartexpr @@ -698,39 +706,39 @@ @varaccess - 8254589 + 8254631 @runtime_sizeof - 402045 + 402047 @runtime_alignof - 49885 + 49886 @expr_stmt - 148363 + 148364 @routineexpr - 5732152 + 5732059 @type_operand - 1405356 + 1405363 @offsetofexpr - 149023 + 149024 @typescompexpr - 701930 + 701934 @literal - 7967615 + 7967633 @aggregateliteral @@ -742,19 +750,19 @@ @temp_init - 992498 + 992341 @errorexpr - 45694 + 45695 @reference_to - 1902971 + 1902670 @ref_indirect - 2107682 + 2107696 @vacuous_destructor_call @@ -814,11 +822,11 @@ @thisaccess - 1518618 + 1518626 @new_expr - 46205 + 46206 @delete_expr @@ -826,11 +834,11 @@ @throw_expr - 24109 + 24105 @condition_decl - 408900 + 408893 @braced_init_list @@ -934,7 +942,7 @@ @delete_array_expr - 1427 + 1426 @new_array_expr @@ -946,7 +954,7 @@ @ctordirectinit - 112822 + 112823 @ctorvirtualinit @@ -954,7 +962,7 @@ @ctorfieldinit - 206503 + 206504 @ctordelegatinginit @@ -962,7 +970,7 @@ @dtordirectdestruct - 39424 + 39425 @dtorvirtualdestruct @@ -970,23 +978,23 @@ @dtorfielddestruct - 39833 + 39834 @static_cast - 389021 + 389023 @reinterpret_cast - 41839 + 41840 @const_cast - 24465 + 24466 @dynamic_cast - 907 + 906 @lambdaexpr @@ -994,7 +1002,7 @@ @param_ref - 164043 + 164017 @noopexpr @@ -1022,11 +1030,11 @@ @isnothrowassignableexpr - 5121 + 5122 @istrivialexpr - 3369 + 3368 @isstandardlayoutexpr @@ -1098,7 +1106,7 @@ @noexceptexpr - 28361 + 28356 @builtinshufflevector @@ -1270,7 +1278,7 @@ @reuseexpr - 846996 + 846982 @istriviallycopyassignable @@ -1382,7 +1390,7 @@ @concept_id - 90429 + 90427 @lambdacapture @@ -1390,11 +1398,11 @@ @stmt_expr - 2031604 + 2031614 @stmt_if - 990209 + 990214 @stmt_while @@ -1402,47 +1410,47 @@ @stmt_goto - 151587 + 151588 @stmt_label - 72705 + 72706 @stmt_return - 1254954 + 1255290 @stmt_block - 1844666 + 1844676 @stmt_end_test_while - 233640 + 233641 @stmt_for - 84388 + 84389 @stmt_switch_case - 836109 + 836096 @stmt_switch - 411847 + 411840 @stmt_asm - 64198 + 64199 @stmt_decl - 769065 + 769069 @stmt_empty - 429382 + 429375 @stmt_continue @@ -1450,11 +1458,11 @@ @stmt_break - 140292 + 140293 @stmt_try_block - 26703 + 26698 @stmt_microsoft_try @@ -1474,11 +1482,11 @@ @stmt_range_based_for - 6388 + 6387 @stmt_handler - 43754 + 43747 @stmt_constexpr_if @@ -1502,43 +1510,43 @@ @ppd_if - 588904 + 588907 @ppd_ifdef - 214362 + 214363 @ppd_ifndef - 158245 + 158246 @ppd_elif - 25096 + 25085 @ppd_else - 236236 + 236237 @ppd_endif - 885604 + 885609 @ppd_plain_include - 364778 + 364623 @ppd_define - 2746387 + 2746401 @ppd_undef - 100940 + 100941 @ppd_pragma - 406761 + 406763 @ppd_include_next @@ -1546,7 +1554,7 @@ @ppd_line - 18825 + 18829 @ppd_error @@ -1604,11 +1612,11 @@ compilations - 14477 + 14471 id - 14477 + 14471 cwd @@ -1626,7 +1634,7 @@ 1 2 - 14477 + 14471 @@ -1652,19 +1660,19 @@ compilation_args - 1159054 + 1158561 id - 14477 + 14471 num - 1681 + 1680 arg - 33514 + 33500 @@ -1678,7 +1686,7 @@ 36 42 - 1149 + 1148 42 @@ -1713,7 +1721,7 @@ 72 90 - 1028 + 1027 94 @@ -1723,7 +1731,7 @@ 98 99 - 1536 + 1535 100 @@ -1733,7 +1741,7 @@ 103 104 - 2285 + 2284 104 @@ -1743,12 +1751,12 @@ 120 138 - 1064 + 1063 139 140 - 520 + 519 @@ -1769,7 +1777,7 @@ 38 39 - 1717 + 1716 39 @@ -1794,7 +1802,7 @@ 54 63 - 1028 + 1027 64 @@ -1804,7 +1812,7 @@ 67 68 - 1608 + 1607 68 @@ -1814,7 +1822,7 @@ 70 71 - 1608 + 1607 73 @@ -1824,7 +1832,7 @@ 79 89 - 1294 + 1293 89 @@ -1850,7 +1858,7 @@ 90 108 - 133 + 132 108 @@ -1860,7 +1868,7 @@ 198 422 - 133 + 132 422 @@ -1875,17 +1883,17 @@ 605 749 - 133 + 132 750 778 - 133 + 132 781 883 - 133 + 132 930 @@ -1916,7 +1924,7 @@ 5 7 - 133 + 132 9 @@ -1926,7 +1934,7 @@ 12 15 - 133 + 132 15 @@ -1936,7 +1944,7 @@ 18 22 - 133 + 132 22 @@ -1951,7 +1959,7 @@ 29 34 - 133 + 132 34 @@ -1961,17 +1969,17 @@ 45 63 - 133 + 132 67 94 - 133 + 132 94 164 - 133 + 132 171 @@ -1992,17 +2000,17 @@ 1 2 - 15348 + 15341 2 3 - 14525 + 14519 3 103 - 2515 + 2514 104 @@ -2023,17 +2031,17 @@ 1 2 - 22193 + 22184 2 3 - 9990 + 9986 3 62 - 1330 + 1329 @@ -2043,11 +2051,11 @@ compilation_build_mode - 14477 + 14471 id - 14477 + 14471 mode @@ -2065,7 +2073,7 @@ 1 2 - 14477 + 14471 @@ -2353,7 +2361,7 @@ seconds - 13346 + 13999 @@ -2434,22 +2442,22 @@ 3 4 - 708 + 762 4 5 - 653 + 599 6 - 8 - 217 + 7 + 163 8 - 9 - 108 + 10 + 163 10 @@ -2463,22 +2471,22 @@ 14 - 16 - 108 + 17 + 163 - 16 + 18 20 - 217 + 163 20 - 38 + 45 217 - 48 - 87 + 54 + 94 108 @@ -2547,17 +2555,17 @@ 3 4 - 1470 + 1307 4 5 - 926 + 1143 5 6 - 326 + 217 6 @@ -2567,7 +2575,7 @@ 7 8 - 163 + 217 8 @@ -2580,13 +2588,13 @@ 381 - 22 - 48 + 23 + 51 381 - 87 - 88 + 89 + 90 54 @@ -2643,13 +2651,13 @@ 54 - 132 - 133 + 139 + 140 54 - 142 - 143 + 157 + 158 54 @@ -2666,7 +2674,7 @@ 1 2 - 7190 + 7353 2 @@ -2676,16 +2684,16 @@ 3 4 - 1470 + 1852 4 - 7 - 1089 + 6 + 1198 - 7 - 45 + 6 + 46 272 @@ -2702,32 +2710,32 @@ 1 2 - 6373 + 6700 2 3 - 2941 + 2887 3 4 - 1525 + 1906 4 5 - 926 + 1252 5 - 8 + 11 1089 - 8 + 38 75 - 490 + 163 @@ -2743,12 +2751,12 @@ 1 2 - 11384 + 11493 2 3 - 1961 + 2505 @@ -3004,15 +3012,15 @@ compilation_finished - 14477 + 14471 id - 14477 + 14471 cpu_seconds - 10957 + 10844 elapsed_seconds @@ -3030,7 +3038,7 @@ 1 2 - 14477 + 14471 @@ -3046,7 +3054,7 @@ 1 2 - 14477 + 14471 @@ -3062,17 +3070,17 @@ 1 2 - 9204 + 9151 2 3 - 1306 + 1172 3 - 34 - 447 + 26 + 519 @@ -3088,12 +3096,12 @@ 1 2 - 10353 + 10227 2 3 - 604 + 616 @@ -3114,7 +3122,17 @@ 2 3 - 60 + 48 + + + 3 + 4 + 12 + + + 6 + 7 + 12 9 @@ -3122,9 +3140,9 @@ 12 - 10 - 11 - 12 + 11 + 12 + 24 12 @@ -3132,48 +3150,38 @@ 12 - 13 - 14 + 18 + 19 12 - 14 - 15 + 37 + 38 12 - 21 - 22 + 64 + 65 12 - 30 - 31 + 152 + 153 12 - 50 - 51 + 247 + 248 12 - 160 - 161 + 300 + 301 12 - 261 - 262 - 12 - - - 278 - 279 - 12 - - - 328 - 329 + 318 + 319 12 @@ -3195,12 +3203,32 @@ 2 3 - 60 + 48 + + + 3 + 4 + 12 + + + 6 + 7 + 12 9 10 - 24 + 12 + + + 10 + 11 + 12 + + + 11 + 12 + 12 12 @@ -3208,48 +3236,38 @@ 12 - 13 - 14 + 18 + 19 12 - 14 - 15 + 37 + 38 12 - 21 - 22 + 60 + 61 12 - 29 - 30 + 139 + 140 12 - 49 - 50 + 162 + 163 12 - 150 - 151 + 228 + 229 12 - 172 - 173 - 12 - - - 227 - 228 - 12 - - - 240 - 241 + 244 + 245 12 @@ -5022,19 +5040,19 @@ locations_default - 36187125 + 36187310 id - 36187125 + 36187310 container - 40975 + 40976 startLine - 7487103 + 7487141 startColumn @@ -5042,7 +5060,7 @@ endLine - 7489102 + 7489140 endColumn @@ -5060,7 +5078,7 @@ 1 2 - 36187125 + 36187310 @@ -5076,7 +5094,7 @@ 1 2 - 36187125 + 36187310 @@ -5092,7 +5110,7 @@ 1 2 - 36187125 + 36187310 @@ -5108,7 +5126,7 @@ 1 2 - 36187125 + 36187310 @@ -5124,7 +5142,7 @@ 1 2 - 36187125 + 36187310 @@ -5520,27 +5538,27 @@ 1 2 - 4954590 + 4954615 2 3 - 799780 + 799784 3 4 - 565667 + 565670 4 12 - 592402 + 592405 12 210 - 561670 + 561673 210 @@ -5561,22 +5579,22 @@ 1 2 - 5012806 + 5012832 2 3 - 1233150 + 1233157 3 6 - 663360 + 663363 6 106 - 561670 + 561673 107 @@ -5597,22 +5615,22 @@ 1 2 - 5648932 + 5648961 2 3 - 532062 + 532065 3 7 - 578660 + 578663 7 24 - 570789 + 570792 24 @@ -5633,12 +5651,12 @@ 1 2 - 7312456 + 7312493 2 81 - 174647 + 174648 @@ -5654,27 +5672,27 @@ 1 2 - 5021426 + 5021452 2 3 - 766674 + 766678 3 4 - 559171 + 559174 4 12 - 603645 + 603648 12 235 - 536185 + 536187 @@ -6070,27 +6088,27 @@ 1 2 - 4954215 + 4954241 2 3 - 807026 + 807030 3 4 - 560795 + 560798 4 12 - 592776 + 592779 12 214 - 561795 + 561797 214 @@ -6111,22 +6129,22 @@ 1 2 - 5011307 + 5011332 2 3 - 1236274 + 1236280 3 6 - 663735 + 663738 6 107 - 561795 + 561797 107 @@ -6147,12 +6165,12 @@ 1 2 - 7307958 + 7307996 2 7 - 181143 + 181144 @@ -6168,27 +6186,27 @@ 1 2 - 5651556 + 5651585 2 3 - 530688 + 530691 3 7 - 579534 + 579537 7 24 - 570415 + 570417 24 72 - 156907 + 156908 @@ -6204,27 +6222,27 @@ 1 2 - 5021301 + 5021327 2 3 - 773295 + 773299 3 4 - 554549 + 554552 4 12 - 604644 + 604648 12 235 - 535310 + 535313 @@ -6539,11 +6557,11 @@ locations_stmt - 5217074 + 5217100 id - 5217074 + 5217100 container @@ -6551,7 +6569,7 @@ startLine - 273595 + 273596 startColumn @@ -6559,7 +6577,7 @@ endLine - 265744 + 265745 endColumn @@ -6577,7 +6595,7 @@ 1 2 - 5217074 + 5217100 @@ -6593,7 +6611,7 @@ 1 2 - 5217074 + 5217100 @@ -6609,7 +6627,7 @@ 1 2 - 5217074 + 5217100 @@ -6625,7 +6643,7 @@ 1 2 - 5217074 + 5217100 @@ -6641,7 +6659,7 @@ 1 2 - 5217074 + 5217100 @@ -7067,7 +7085,7 @@ 8 11 - 22876 + 22877 11 @@ -7102,7 +7120,7 @@ 56 73 - 11733 + 11734 @@ -7199,7 +7217,7 @@ 2 3 - 28532 + 28533 3 @@ -7260,7 +7278,7 @@ 1 2 - 47357 + 47358 2 @@ -7300,7 +7318,7 @@ 9 10 - 14772 + 14773 10 @@ -7381,7 +7399,7 @@ 22 26 - 25296 + 25297 26 @@ -7949,7 +7967,7 @@ 4 5 - 20850 + 20851 5 @@ -8116,7 +8134,7 @@ 19 22 - 19021 + 19022 22 @@ -8531,11 +8549,11 @@ locations_expr - 18007831 + 18007923 id - 18007831 + 18007923 container @@ -8543,7 +8561,7 @@ startLine - 262733 + 262734 startColumn @@ -8551,7 +8569,7 @@ endLine - 262705 + 262706 endColumn @@ -8569,7 +8587,7 @@ 1 2 - 18007831 + 18007923 @@ -8585,7 +8603,7 @@ 1 2 - 18007831 + 18007923 @@ -8601,7 +8619,7 @@ 1 2 - 18007831 + 18007923 @@ -8617,7 +8635,7 @@ 1 2 - 18007831 + 18007923 @@ -8633,7 +8651,7 @@ 1 2 - 18007831 + 18007923 @@ -9049,7 +9067,7 @@ 1 5 - 22060 + 22061 5 @@ -9125,7 +9143,7 @@ 1 2 - 32190 + 32191 2 @@ -9196,7 +9214,7 @@ 1 4 - 21863 + 21864 4 @@ -9241,7 +9259,7 @@ 40 44 - 22679 + 22680 44 @@ -9282,7 +9300,7 @@ 4 6 - 20034 + 20035 6 @@ -9774,7 +9792,7 @@ 15 23 - 20653 + 20654 23 @@ -9789,7 +9807,7 @@ 44 60 - 19837 + 19838 60 @@ -9835,7 +9853,7 @@ 1 2 - 32190 + 32191 2 @@ -9865,12 +9883,12 @@ 11 15 - 19837 + 19838 15 20 - 22876 + 22877 20 @@ -9916,12 +9934,12 @@ 2 3 - 68405 + 68406 3 4 - 40266 + 40267 4 @@ -9947,12 +9965,12 @@ 1 4 - 21666 + 21667 4 7 - 23889 + 23890 7 @@ -9967,7 +9985,7 @@ 16 21 - 23692 + 23693 21 @@ -10063,7 +10081,7 @@ 43 47 - 19837 + 19838 47 @@ -10458,15 +10476,15 @@ numlines - 808525 + 808529 element_id - 807400 + 807405 num_lines - 39476 + 39477 num_code @@ -10488,7 +10506,7 @@ 1 2 - 806276 + 806280 2 @@ -10509,7 +10527,7 @@ 1 2 - 806276 + 806280 2 @@ -10530,7 +10548,7 @@ 1 2 - 807151 + 807155 2 @@ -11451,15 +11469,15 @@ files - 74673 + 74641 id - 74673 + 74641 name - 74673 + 74641 @@ -11473,7 +11491,7 @@ 1 2 - 74673 + 74641 @@ -11489,7 +11507,7 @@ 1 2 - 74673 + 74641 @@ -11499,15 +11517,15 @@ folders - 14187 + 14181 id - 14187 + 14181 name - 14187 + 14181 @@ -11521,7 +11539,7 @@ 1 2 - 14187 + 14181 @@ -11537,7 +11555,7 @@ 1 2 - 14187 + 14181 @@ -11547,15 +11565,15 @@ containerparent - 88836 + 88798 parent - 14187 + 14181 child - 88836 + 88798 @@ -11569,12 +11587,12 @@ 1 2 - 6906 + 6903 2 3 - 1741 + 1740 3 @@ -11584,7 +11602,7 @@ 4 6 - 1149 + 1148 6 @@ -11594,12 +11612,12 @@ 10 16 - 1149 + 1148 16 44 - 1064 + 1063 44 @@ -11620,7 +11638,7 @@ 1 2 - 88836 + 88798 @@ -11630,11 +11648,11 @@ fileannotations - 4809925 + 4807876 id - 6603 + 6600 kind @@ -11642,11 +11660,11 @@ name - 67234 + 67206 value - 45246 + 45227 @@ -11665,7 +11683,7 @@ 2 3 - 6373 + 6371 @@ -11726,7 +11744,7 @@ 631 753 - 520 + 519 753 @@ -11891,62 +11909,62 @@ 1 2 - 12626 + 12621 2 3 - 4995 + 4993 3 5 - 5793 + 5790 5 7 - 4692 + 4690 7 9 - 5261 + 5258 9 16 - 4958 + 4956 16 19 - 5599 + 5597 19 27 - 4874 + 4872 27 47 - 5539 + 5537 47 128 - 5636 + 5633 128 459 - 5297 + 5295 459 546 - 1959 + 1958 @@ -11962,7 +11980,7 @@ 1 2 - 67234 + 67206 @@ -11978,57 +11996,57 @@ 1 2 - 13267 + 13262 2 3 - 8805 + 8801 3 4 - 4692 + 4690 4 6 - 4656 + 4654 6 8 - 3918 + 3917 8 11 - 5430 + 5428 11 17 - 6180 + 6177 17 23 - 5382 + 5379 23 41 - 5357 + 5355 41 95 - 5116 + 5113 95 1726 - 4426 + 4424 @@ -12044,72 +12062,72 @@ 1 2 - 3846 + 3844 2 4 - 1874 + 1873 4 5 - 3652 + 3651 5 8 - 2818 + 2816 8 14 - 3398 + 3397 14 17 - 2213 + 2212 17 24 - 3483 + 3481 24 51 - 4051 + 4050 51 58 - 3471 + 3469 58 80 - 3410 + 3409 81 151 - 3531 + 3530 151 334 - 3410 + 3409 334 473 - 3434 + 3433 473 547 - 2648 + 2647 @@ -12125,7 +12143,7 @@ 1 2 - 45234 + 45215 2 @@ -12146,67 +12164,67 @@ 1 2 - 3894 + 3892 2 4 - 2189 + 2188 4 5 - 3495 + 3493 5 8 - 2842 + 2841 8 14 - 3991 + 3989 14 18 - 3954 + 3953 18 28 - 3664 + 3663 28 34 - 3604 + 3602 34 41 - 3664 + 3663 41 66 - 3422 + 3421 66 92 - 3519 + 3518 92 113 - 3422 + 3421 113 145 - 3471 + 3469 145 @@ -12221,15 +12239,15 @@ inmacroexpansion - 149995198 + 149995966 id - 24670750 + 24670876 inv - 3705246 + 3705264 @@ -12243,37 +12261,37 @@ 1 3 - 2209385 + 2209396 3 5 - 1474970 + 1474978 5 6 - 1620361 + 1620369 6 7 - 6582512 + 6582546 7 8 - 8718957 + 8719001 8 9 - 3557031 + 3557049 9 22 - 507532 + 507534 @@ -12289,32 +12307,32 @@ 1 2 - 531651 + 531654 2 3 - 743204 + 743208 3 4 - 481510 + 481512 4 7 - 275301 + 275303 7 8 - 282151 + 282153 8 9 - 330245 + 330247 9 @@ -12324,17 +12342,17 @@ 10 11 - 444648 + 444650 11 337 - 307797 + 307798 339 423 - 281754 + 281755 423 @@ -12349,15 +12367,15 @@ affectedbymacroexpansion - 48735594 + 48735844 id - 7044705 + 7044741 inv - 3803102 + 3803122 @@ -12371,37 +12389,37 @@ 1 2 - 3846690 + 3846709 2 3 - 766301 + 766305 3 4 - 361840 + 361841 4 5 - 772732 + 772736 5 12 - 535157 + 535160 12 50 - 556264 + 556267 50 9900 - 205718 + 205719 @@ -12417,62 +12435,62 @@ 1 4 - 313247 + 313248 4 7 - 316606 + 316607 7 9 - 301086 + 301088 9 12 - 342937 + 342938 12 13 - 456002 + 456004 13 14 - 226098 + 226099 14 15 - 408036 + 408038 15 16 - 166428 + 166429 16 17 - 377676 + 377677 17 18 - 200635 + 200636 18 20 - 344253 + 344255 20 25 - 285391 + 285393 25 @@ -12487,19 +12505,19 @@ macroinvocations - 39390474 + 39390675 id - 39390474 + 39390675 macro_id - 181996 + 181997 location - 5904613 + 5904643 kind @@ -12517,7 +12535,7 @@ 1 2 - 39390474 + 39390675 @@ -12533,7 +12551,7 @@ 1 2 - 39390474 + 39390675 @@ -12549,7 +12567,7 @@ 1 2 - 39390474 + 39390675 @@ -12636,7 +12654,7 @@ 4 5 - 10349 + 10350 5 @@ -12693,17 +12711,17 @@ 1 2 - 5248369 + 5248396 2 3 - 248072 + 248074 3 70079 - 408170 + 408172 @@ -12719,7 +12737,7 @@ 1 2 - 5882442 + 5882472 2 @@ -12740,7 +12758,7 @@ 1 2 - 5904613 + 5904643 @@ -12813,15 +12831,15 @@ macroparent - 32844542 + 32844710 id - 32844542 + 32844710 parent_id - 15561370 + 15561449 @@ -12835,7 +12853,7 @@ 1 2 - 32844542 + 32844710 @@ -12851,27 +12869,27 @@ 1 2 - 7669068 + 7669107 2 3 - 1551190 + 1551198 3 4 - 4552687 + 4552710 4 5 - 1263079 + 1263086 5 205 - 525343 + 525346 @@ -12881,15 +12899,15 @@ macrolocationbind - 6882795 + 6883157 id - 4222137 + 4222542 location - 2746999 + 2746954 @@ -12903,12 +12921,12 @@ 1 2 - 2459682 + 2460116 2 3 - 1326273 + 1326251 3 @@ -12918,7 +12936,7 @@ 4 5 - 413547 + 413540 5 @@ -12939,12 +12957,12 @@ 1 2 - 1393982 + 1393959 2 3 - 907153 + 907138 3 @@ -12954,7 +12972,7 @@ 4 5 - 410836 + 410829 5 @@ -12969,19 +12987,19 @@ macro_argument_unexpanded - 94316565 + 94276712 invocation - 30014759 + 30002299 argument_index - 798 + 797 text - 393068 + 392900 @@ -12995,22 +13013,22 @@ 1 2 - 11049162 + 11044782 2 3 - 11160894 + 11156139 3 4 - 5710115 + 5707682 4 67 - 2094586 + 2093693 @@ -13026,22 +13044,22 @@ 1 2 - 11258293 + 11253824 2 3 - 11180088 + 11175326 3 4 - 5531620 + 5529264 4 67 - 2044755 + 2043884 @@ -13066,7 +13084,7 @@ 645295 - 2481630 + 2481657 36 @@ -13109,57 +13127,57 @@ 1 2 - 46371 + 46351 2 3 - 71431 + 71401 3 4 - 26487 + 26476 4 5 - 39731 + 39714 5 6 - 44799 + 44779 6 9 - 32728 + 32714 9 15 - 32861 + 32847 15 27 - 29946 + 29933 27 57 - 30454 + 30441 57 517 - 29692 + 29680 518 485092 - 8563 + 8559 @@ -13175,17 +13193,17 @@ 1 2 - 278458 + 278339 2 3 - 102914 + 102870 3 9 - 11695 + 11690 @@ -13195,19 +13213,19 @@ macro_argument_expanded - 94316565 + 94276712 invocation - 30014759 + 30002299 argument_index - 798 + 797 text - 238097 + 237996 @@ -13221,22 +13239,22 @@ 1 2 - 11049162 + 11044782 2 3 - 11160894 + 11156139 3 4 - 5710115 + 5707682 4 67 - 2094586 + 2093693 @@ -13252,22 +13270,22 @@ 1 2 - 14427235 + 14421415 2 3 - 9629429 + 9625327 3 4 - 4824874 + 4822818 4 9 - 1133220 + 1132737 @@ -13292,7 +13310,7 @@ 645295 - 2481630 + 2481657 36 @@ -13335,57 +13353,57 @@ 1 2 - 25253 + 25243 2 3 - 31337 + 31324 3 4 - 52225 + 52203 4 5 - 18408 + 18400 5 6 - 3543 + 3542 6 7 - 20851 + 20842 7 10 - 19363 + 19355 10 19 - 20585 + 20576 19 51 - 17863 + 17856 51 253 - 17997 + 17989 254 - 1166756 - 10667 + 1166783 + 10663 @@ -13401,17 +13419,17 @@ 1 2 - 120330 + 120279 2 3 - 101813 + 101770 3 66 - 15953 + 15946 @@ -13421,15 +13439,15 @@ functions - 4010769 + 4010790 id - 4010769 + 4010790 name - 1648531 + 1648540 kind @@ -13447,7 +13465,7 @@ 1 2 - 4010769 + 4010790 @@ -13463,7 +13481,7 @@ 1 2 - 4010769 + 4010790 @@ -13479,7 +13497,7 @@ 1 2 - 1402301 + 1402308 2 @@ -13505,7 +13523,7 @@ 1 2 - 1645658 + 1645667 2 @@ -13622,15 +13640,15 @@ function_entry_point - 1141039 + 1141046 id - 1137291 + 1137298 entry_point - 1141039 + 1141046 @@ -13644,7 +13662,7 @@ 1 2 - 1134088 + 1134095 2 @@ -13665,7 +13683,7 @@ 1 2 - 1141039 + 1141046 @@ -13675,15 +13693,15 @@ function_return_type - 4028259 + 4028280 id - 4010769 + 4010790 return_type - 622884 + 622887 @@ -13697,7 +13715,7 @@ 1 2 - 3993280 + 3993300 2 @@ -13718,12 +13736,12 @@ 1 2 - 312941 + 312942 2 3 - 213499 + 213500 3 @@ -14029,11 +14047,11 @@ function_deleted - 88084 + 88082 id - 88084 + 88082 @@ -14051,11 +14069,11 @@ function_prototyped - 4009270 + 4009291 id - 4009270 + 4009291 @@ -14135,15 +14153,15 @@ member_function_this_type - 676227 + 676231 id - 676227 + 676231 this_type - 177645 + 177646 @@ -14157,7 +14175,7 @@ 1 2 - 676227 + 676231 @@ -14213,27 +14231,27 @@ fun_decls - 4155684 + 4155705 id - 4149688 + 4149709 function - 3986284 + 3986304 type_id - 614888 + 614892 name - 1647032 + 1647041 location - 2769873 + 2769887 @@ -14247,7 +14265,7 @@ 1 2 - 4149688 + 4149709 @@ -14263,7 +14281,7 @@ 1 2 - 4143691 + 4143712 2 @@ -14284,7 +14302,7 @@ 1 2 - 4149688 + 4149709 @@ -14300,7 +14318,7 @@ 1 2 - 4149688 + 4149709 @@ -14316,12 +14334,12 @@ 1 2 - 3836247 + 3836266 2 4 - 150036 + 150037 @@ -14337,7 +14355,7 @@ 1 2 - 3967795 + 3967815 2 @@ -14358,7 +14376,7 @@ 1 2 - 3986284 + 3986304 @@ -14374,12 +14392,12 @@ 1 2 - 3842993 + 3843012 2 4 - 143290 + 143291 @@ -14395,12 +14413,12 @@ 1 2 - 298199 + 298201 2 3 - 220370 + 220371 3 @@ -14410,7 +14428,7 @@ 5 354 - 46222 + 46223 358 @@ -14431,12 +14449,12 @@ 1 2 - 308318 + 308320 2 3 - 211625 + 211626 3 @@ -14446,7 +14464,7 @@ 5 1033 - 46222 + 46223 1483 @@ -14467,7 +14485,7 @@ 1 2 - 494584 + 494587 2 @@ -14477,7 +14495,7 @@ 3 7 - 51094 + 51095 7 @@ -14498,7 +14516,7 @@ 1 2 - 457981 + 457983 2 @@ -14529,7 +14547,7 @@ 1 2 - 1297737 + 1297744 2 @@ -14560,7 +14578,7 @@ 1 2 - 1401801 + 1401809 2 @@ -14570,7 +14588,7 @@ 4 3162 - 105687 + 105688 @@ -14586,7 +14604,7 @@ 1 2 - 1556960 + 1556968 2 @@ -14607,17 +14625,17 @@ 1 2 - 1322098 + 1322105 2 3 - 208502 + 208503 3 1592 - 116431 + 116432 @@ -14633,17 +14651,17 @@ 1 2 - 2390096 + 2390108 2 3 - 237735 + 237736 3 211 - 142041 + 142042 @@ -14659,17 +14677,17 @@ 1 2 - 2393844 + 2393856 2 3 - 234487 + 234488 3 211 - 141541 + 141542 @@ -14685,7 +14703,7 @@ 1 2 - 2654566 + 2654579 2 @@ -14706,12 +14724,12 @@ 1 2 - 2730646 + 2730660 2 8 - 39226 + 39227 @@ -14721,11 +14739,11 @@ fun_def - 1413170 + 1413177 id - 1413170 + 1413177 @@ -14754,11 +14772,11 @@ fun_decl_specifiers - 4102216 + 4102237 id - 1688258 + 1688267 name @@ -14776,17 +14794,17 @@ 1 2 - 361537 + 361539 2 3 - 262470 + 262472 3 4 - 1041263 + 1041268 4 @@ -14988,26 +15006,26 @@ fun_decl_empty_throws - 437031 + 437033 fun_decl - 437031 + 437033 fun_decl_noexcept - 141854 + 141855 fun_decl - 141854 + 141855 constant - 141377 + 141378 @@ -15021,7 +15039,7 @@ 1 2 - 141854 + 141855 @@ -15037,7 +15055,7 @@ 1 2 - 140934 + 140935 2 @@ -15052,11 +15070,11 @@ fun_decl_empty_noexcept - 1163816 + 1163822 fun_decl - 1163816 + 1163822 @@ -15161,7 +15179,7 @@ fun_requires - 29110 + 29109 id @@ -15322,11 +15340,11 @@ param_decl_bind - 7189902 + 7189939 id - 7189902 + 7189939 index @@ -15334,7 +15352,7 @@ fun_decl - 3478082 + 3478100 @@ -15348,7 +15366,7 @@ 1 2 - 7189902 + 7189939 @@ -15364,7 +15382,7 @@ 1 2 - 7189902 + 7189939 @@ -15462,27 +15480,27 @@ 1 2 - 1499244 + 1499252 2 3 - 956813 + 956818 3 4 - 579909 + 579912 4 5 - 283083 + 283085 5 65 - 159031 + 159032 @@ -15498,27 +15516,27 @@ 1 2 - 1499244 + 1499252 2 3 - 956813 + 956818 3 4 - 579909 + 579912 4 5 - 283083 + 283085 5 65 - 159031 + 159032 @@ -15528,27 +15546,27 @@ var_decls - 9269431 + 9269479 id - 9262560 + 9262608 variable - 8972356 + 8972402 type_id - 1462391 + 1462398 name - 852374 + 852378 location - 6204481 + 6204513 @@ -15562,7 +15580,7 @@ 1 2 - 9262560 + 9262608 @@ -15578,12 +15596,12 @@ 1 2 - 9255689 + 9255737 2 3 - 6870 + 6871 @@ -15599,7 +15617,7 @@ 1 2 - 9262560 + 9262608 @@ -15615,7 +15633,7 @@ 1 2 - 9262560 + 9262608 @@ -15631,12 +15649,12 @@ 1 2 - 8695144 + 8695188 2 4 - 277212 + 277213 @@ -15652,7 +15670,7 @@ 1 2 - 8933629 + 8933674 2 @@ -15673,12 +15691,12 @@ 1 2 - 8866668 + 8866713 2 4 - 105687 + 105688 @@ -15694,12 +15712,12 @@ 1 2 - 8720504 + 8720548 2 4 - 251852 + 251853 @@ -15715,22 +15733,22 @@ 1 2 - 854748 + 854752 2 3 - 284957 + 284959 3 5 - 128049 + 128050 5 11 - 112933 + 112934 11 @@ -15751,27 +15769,27 @@ 1 2 - 875111 + 875115 2 3 - 270466 + 270467 3 5 - 123427 + 123428 5 11 - 112933 + 112934 11 2859 - 80452 + 80453 @@ -15787,12 +15805,12 @@ 1 2 - 1124964 + 1124970 2 3 - 193136 + 193137 3 @@ -15802,7 +15820,7 @@ 7 1038 - 29107 + 29108 @@ -15818,12 +15836,12 @@ 1 2 - 990918 + 990923 2 3 - 219121 + 219122 3 @@ -15833,7 +15851,7 @@ 6 95 - 109810 + 109811 97 @@ -15854,17 +15872,17 @@ 1 2 - 465851 + 465853 2 3 - 165777 + 165778 3 4 - 60089 + 60090 4 @@ -15895,7 +15913,7 @@ 1 2 - 478718 + 478721 2 @@ -15905,12 +15923,12 @@ 3 4 - 54967 + 54968 4 8 - 71832 + 71833 8 @@ -15936,7 +15954,7 @@ 1 2 - 654865 + 654868 2 @@ -15967,12 +15985,12 @@ 1 2 - 493085 + 493087 2 3 - 183267 + 183268 3 @@ -15982,7 +16000,7 @@ 4 8 - 65211 + 65212 8 @@ -16003,12 +16021,12 @@ 1 2 - 5756869 + 5756898 2 2943 - 447612 + 447614 @@ -16024,12 +16042,12 @@ 1 2 - 5780855 + 5780884 2 2935 - 423626 + 423628 @@ -16045,12 +16063,12 @@ 1 2 - 5920523 + 5920553 2 2555 - 283958 + 283959 @@ -16066,7 +16084,7 @@ 1 2 - 6191988 + 6192020 2 @@ -16081,11 +16099,11 @@ var_def - 3731808 + 3731827 id - 3731808 + 3731827 @@ -16103,11 +16121,11 @@ var_decl_specifiers - 488962 + 488965 id - 488962 + 488965 name @@ -16125,7 +16143,7 @@ 1 2 - 488962 + 488965 @@ -16235,19 +16253,19 @@ type_decls - 1687983 + 1687349 id - 1687983 + 1687349 type_id - 1651022 + 1650403 location - 1326265 + 1325700 @@ -16261,7 +16279,7 @@ 1 2 - 1687983 + 1687349 @@ -16277,7 +16295,7 @@ 1 2 - 1687983 + 1687349 @@ -16293,12 +16311,12 @@ 1 2 - 1624425 + 1623818 2 24 - 26596 + 26585 @@ -16314,12 +16332,12 @@ 1 2 - 1625611 + 1625003 2 24 - 25411 + 25400 @@ -16335,12 +16353,12 @@ 1 2 - 1257941 + 1257405 2 651 - 68323 + 68294 @@ -16356,12 +16374,12 @@ 1 2 - 1259139 + 1258602 2 651 - 67126 + 67097 @@ -16371,22 +16389,22 @@ type_def - 1158256 + 1157787 id - 1158256 + 1157787 type_decl_top - 672531 + 672534 type_decl - 672531 + 672534 @@ -16466,11 +16484,11 @@ namespace_decls - 430961 + 430963 id - 430961 + 430963 namespace_id @@ -16478,11 +16496,11 @@ location - 430961 + 430963 bodylocation - 430961 + 430963 @@ -16496,7 +16514,7 @@ 1 2 - 430961 + 430963 @@ -16512,7 +16530,7 @@ 1 2 - 430961 + 430963 @@ -16528,7 +16546,7 @@ 1 2 - 430961 + 430963 @@ -16742,7 +16760,7 @@ 1 2 - 430961 + 430963 @@ -16758,7 +16776,7 @@ 1 2 - 430961 + 430963 @@ -16774,7 +16792,7 @@ 1 2 - 430961 + 430963 @@ -16790,7 +16808,7 @@ 1 2 - 430961 + 430963 @@ -16806,7 +16824,7 @@ 1 2 - 430961 + 430963 @@ -16822,7 +16840,7 @@ 1 2 - 430961 + 430963 @@ -16832,19 +16850,19 @@ usings - 311355 + 311428 id - 311355 + 311428 element_id - 67416 + 67593 location - 30744 + 30731 kind @@ -16862,7 +16880,7 @@ 1 2 - 311355 + 311428 @@ -16878,7 +16896,7 @@ 1 2 - 311355 + 311428 @@ -16894,7 +16912,7 @@ 1 2 - 311355 + 311428 @@ -16910,17 +16928,17 @@ 1 2 - 58562 + 58743 2 5 - 6168 + 6165 5 134 - 2685 + 2683 @@ -16936,17 +16954,17 @@ 1 2 - 58562 + 58743 2 5 - 6168 + 6165 5 134 - 2685 + 2683 @@ -16962,7 +16980,7 @@ 1 2 - 67416 + 67593 @@ -16978,21 +16996,21 @@ 1 2 - 24250 + 24239 2 4 - 2624 + 2635 4 132 - 2237 + 2224 145 - 365 + 367 1632 @@ -17009,21 +17027,21 @@ 1 2 - 24250 + 24239 2 4 - 2624 + 2635 4 132 - 2237 + 2224 145 - 365 + 367 1632 @@ -17040,7 +17058,7 @@ 1 2 - 30744 + 30731 @@ -17059,8 +17077,8 @@ 12 - 25350 - 25351 + 25367 + 25368 12 @@ -17080,8 +17098,8 @@ 12 - 5360 - 5361 + 5377 + 5378 12 @@ -17113,15 +17131,15 @@ using_container - 662697 + 662620 parent - 24250 + 24275 child - 311355 + 311428 @@ -17135,42 +17153,42 @@ 1 2 - 11236 + 11231 2 3 - 1790 + 1789 3 6 - 2056 + 2055 6 7 - 2588 + 2623 7 27 - 1850 + 1849 27 136 - 943 + 942 145 146 - 2999 + 2998 146 437 - 786 + 785 @@ -17186,27 +17204,27 @@ 1 2 - 111017 + 111176 2 3 - 137723 + 137664 3 4 - 22532 + 22522 4 5 - 30563 + 30550 5 65 - 9518 + 9514 @@ -17216,15 +17234,15 @@ static_asserts - 183513 + 183514 id - 183513 + 183514 condition - 183513 + 183514 message @@ -17250,7 +17268,7 @@ 1 2 - 183513 + 183514 @@ -17266,7 +17284,7 @@ 1 2 - 183513 + 183514 @@ -17282,7 +17300,7 @@ 1 2 - 183513 + 183514 @@ -17298,7 +17316,7 @@ 1 2 - 183513 + 183514 @@ -17314,7 +17332,7 @@ 1 2 - 183513 + 183514 @@ -17330,7 +17348,7 @@ 1 2 - 183513 + 183514 @@ -17346,7 +17364,7 @@ 1 2 - 183513 + 183514 @@ -17362,7 +17380,7 @@ 1 2 - 183513 + 183514 @@ -17378,7 +17396,7 @@ 1 2 - 30235 + 30236 2 @@ -17419,7 +17437,7 @@ 1 2 - 30235 + 30236 2 @@ -17481,7 +17499,7 @@ 1 2 - 32169 + 32170 2 @@ -17824,15 +17842,15 @@ params - 6984148 + 6984184 id - 6957539 + 6957575 function - 3365898 + 3365915 index @@ -17840,7 +17858,7 @@ type_id - 1225405 + 1225411 @@ -17854,7 +17872,7 @@ 1 2 - 6957539 + 6957575 @@ -17870,7 +17888,7 @@ 1 2 - 6957539 + 6957575 @@ -17886,7 +17904,7 @@ 1 2 - 6930930 + 6930965 2 @@ -17907,27 +17925,27 @@ 1 2 - 1462890 + 1462898 2 3 - 908716 + 908721 3 4 - 561170 + 561173 4 5 - 277337 + 277338 5 65 - 155783 + 155784 @@ -17943,27 +17961,27 @@ 1 2 - 1462890 + 1462898 2 3 - 908716 + 908721 3 4 - 561170 + 561173 4 5 - 277337 + 277338 5 65 - 155783 + 155784 @@ -17979,22 +17997,22 @@ 1 2 - 1763464 + 1763473 2 3 - 1008407 + 1008413 3 4 - 436993 + 436995 4 11 - 157032 + 157033 @@ -18133,22 +18151,22 @@ 1 2 - 740814 + 740818 2 3 - 241982 + 241984 3 5 - 93819 + 93820 5 13 - 93694 + 93695 13 @@ -18169,12 +18187,12 @@ 1 2 - 823141 + 823145 2 3 - 181143 + 181144 3 @@ -18184,7 +18202,7 @@ 6 27 - 92445 + 92446 27 @@ -18205,17 +18223,17 @@ 1 2 - 1000037 + 1000042 2 3 - 167026 + 167027 3 65 - 58340 + 58341 @@ -18225,11 +18243,11 @@ overrides - 169820 + 169821 new - 160564 + 160565 old @@ -18247,7 +18265,7 @@ 1 2 - 151317 + 151318 2 @@ -18303,19 +18321,19 @@ membervariables - 1495845 + 1495853 id - 1493394 + 1493401 type_id - 455127 + 455129 name - 640718 + 640722 @@ -18329,7 +18347,7 @@ 1 2 - 1491051 + 1491059 2 @@ -18350,7 +18368,7 @@ 1 2 - 1493394 + 1493401 @@ -18366,7 +18384,7 @@ 1 2 - 337736 + 337738 2 @@ -18397,7 +18415,7 @@ 1 2 - 355276 + 355278 2 @@ -18428,12 +18446,12 @@ 1 2 - 420972 + 420974 2 3 - 122129 + 122130 3 @@ -18459,7 +18477,7 @@ 1 2 - 523709 + 523712 2 @@ -18469,7 +18487,7 @@ 3 658 - 44504 + 44505 @@ -18479,11 +18497,11 @@ globalvariables - 488088 + 488090 id - 488088 + 488090 type_id @@ -18491,7 +18509,7 @@ name - 112433 + 112434 @@ -18505,7 +18523,7 @@ 1 2 - 488088 + 488090 @@ -18521,7 +18539,7 @@ 1 2 - 488088 + 488090 @@ -18665,19 +18683,19 @@ localvariables - 725943 + 726100 id - 725943 + 726100 type_id - 53416 + 53424 name - 101515 + 101537 @@ -18691,7 +18709,7 @@ 1 2 - 725943 + 726100 @@ -18707,7 +18725,7 @@ 1 2 - 725943 + 726100 @@ -18723,32 +18741,32 @@ 1 2 - 28884 + 28887 2 3 - 7824 + 7826 3 4 - 4024 + 4025 4 6 - 4048 + 4049 6 12 - 4148 + 4149 12 166 - 4008 + 4009 168 @@ -18769,22 +18787,22 @@ 1 2 - 38363 + 38367 2 3 - 6699 + 6701 3 5 - 4465 + 4466 5 3502 - 3888 + 3889 @@ -18800,32 +18818,32 @@ 1 2 - 62454 + 62468 2 3 - 16042 + 16045 3 4 - 6531 + 6532 4 8 - 8129 + 8130 8 135 - 7616 + 7618 135 7544 - 740 + 741 @@ -18841,17 +18859,17 @@ 1 2 - 84471 + 84490 2 3 - 8417 + 8419 3 15 - 7672 + 7674 15 @@ -18866,11 +18884,11 @@ autoderivation - 229240 + 229241 var - 229240 + 229241 derivation_type @@ -18888,7 +18906,7 @@ 1 2 - 229240 + 229241 @@ -18934,11 +18952,11 @@ orphaned_variables - 44331 + 44332 var - 44331 + 44332 function @@ -18956,7 +18974,7 @@ 1 2 - 44331 + 44332 @@ -18987,11 +19005,11 @@ enumconstants - 344763 + 344765 id - 344763 + 344765 parent @@ -19007,11 +19025,11 @@ name - 344382 + 344383 location - 317363 + 317364 @@ -19025,7 +19043,7 @@ 1 2 - 344763 + 344765 @@ -19041,7 +19059,7 @@ 1 2 - 344763 + 344765 @@ -19057,7 +19075,7 @@ 1 2 - 344763 + 344765 @@ -19073,7 +19091,7 @@ 1 2 - 344763 + 344765 @@ -19089,7 +19107,7 @@ 1 2 - 344763 + 344765 @@ -19150,7 +19168,7 @@ 17 64 - 3104 + 3105 79 @@ -19216,7 +19234,7 @@ 17 64 - 3104 + 3105 79 @@ -19298,7 +19316,7 @@ 17 64 - 3104 + 3105 79 @@ -19359,12 +19377,12 @@ 11 18 - 3104 + 3105 18 257 - 3104 + 3105 @@ -19420,7 +19438,7 @@ 58 759 - 1034 + 1035 @@ -19476,7 +19494,7 @@ 58 759 - 1034 + 1035 @@ -19548,7 +19566,7 @@ 58 756 - 1034 + 1035 @@ -19604,7 +19622,7 @@ 58 759 - 1034 + 1035 @@ -19700,7 +19718,7 @@ 1 2 - 344000 + 344002 2 @@ -19721,7 +19739,7 @@ 1 2 - 344000 + 344002 2 @@ -19742,7 +19760,7 @@ 1 2 - 344382 + 344383 @@ -19758,7 +19776,7 @@ 1 2 - 344382 + 344383 @@ -19774,7 +19792,7 @@ 1 2 - 344000 + 344002 2 @@ -19795,12 +19813,12 @@ 1 2 - 316328 + 316329 2 205 - 1034 + 1035 @@ -19816,7 +19834,7 @@ 1 2 - 317363 + 317364 @@ -19832,12 +19850,12 @@ 1 2 - 316328 + 316329 2 205 - 1034 + 1035 @@ -19853,7 +19871,7 @@ 1 2 - 317363 + 317364 @@ -19869,12 +19887,12 @@ 1 2 - 316328 + 316329 2 205 - 1034 + 1035 @@ -19884,19 +19902,19 @@ builtintypes - 7120 + 7245 id - 7120 + 7245 name - 7120 + 7245 kind - 7120 + 7245 size @@ -19922,7 +19940,7 @@ 1 2 - 7120 + 7245 @@ -19938,7 +19956,7 @@ 1 2 - 7120 + 7245 @@ -19954,7 +19972,7 @@ 1 2 - 7120 + 7245 @@ -19970,7 +19988,7 @@ 1 2 - 7120 + 7245 @@ -19986,7 +20004,7 @@ 1 2 - 7120 + 7245 @@ -20002,7 +20020,7 @@ 1 2 - 7120 + 7245 @@ -20018,7 +20036,7 @@ 1 2 - 7120 + 7245 @@ -20034,7 +20052,7 @@ 1 2 - 7120 + 7245 @@ -20050,7 +20068,7 @@ 1 2 - 7120 + 7245 @@ -20066,7 +20084,7 @@ 1 2 - 7120 + 7245 @@ -20082,7 +20100,7 @@ 1 2 - 7120 + 7245 @@ -20098,7 +20116,7 @@ 1 2 - 7120 + 7245 @@ -20114,7 +20132,7 @@ 1 2 - 7120 + 7245 @@ -20130,7 +20148,7 @@ 1 2 - 7120 + 7245 @@ -20146,7 +20164,7 @@ 1 2 - 7120 + 7245 @@ -20159,15 +20177,10 @@ 12 - - 1 - 2 - 124 - 2 3 - 124 + 249 8 @@ -20205,15 +20218,10 @@ 12 - - 1 - 2 - 124 - 2 3 - 124 + 249 8 @@ -20251,15 +20259,10 @@ 12 - - 1 - 2 - 124 - 2 3 - 124 + 249 8 @@ -20350,8 +20353,8 @@ 124 - 39 - 40 + 40 + 41 124 @@ -20376,8 +20379,8 @@ 124 - 39 - 40 + 40 + 41 124 @@ -20402,8 +20405,8 @@ 124 - 39 - 40 + 40 + 41 124 @@ -20459,15 +20462,10 @@ 9 124 - - 9 - 10 - 124 - 10 11 - 124 + 249 13 @@ -20495,15 +20493,10 @@ 9 124 - - 9 - 10 - 124 - 10 11 - 124 + 249 13 @@ -20531,15 +20524,10 @@ 9 124 - - 9 - 10 - 124 - 10 11 - 124 + 249 13 @@ -20591,15 +20579,15 @@ derivedtypes - 3044337 + 3044352 id - 3044337 + 3044352 name - 1474259 + 1474266 kind @@ -20607,7 +20595,7 @@ type_id - 1947731 + 1947741 @@ -20621,7 +20609,7 @@ 1 2 - 3044337 + 3044352 @@ -20637,7 +20625,7 @@ 1 2 - 3044337 + 3044352 @@ -20653,7 +20641,7 @@ 1 2 - 3044337 + 3044352 @@ -20669,12 +20657,12 @@ 1 2 - 1357327 + 1357334 2 30 - 110809 + 110810 30 @@ -20695,7 +20683,7 @@ 1 2 - 1474259 + 1474266 @@ -20711,7 +20699,7 @@ 1 2 - 1357452 + 1357459 2 @@ -20860,22 +20848,22 @@ 1 2 - 1315602 + 1315609 2 3 - 378152 + 378154 3 4 - 122802 + 122803 4 135 - 131172 + 131173 @@ -20891,22 +20879,22 @@ 1 2 - 1317101 + 1317108 2 3 - 378152 + 378154 3 4 - 121303 + 121304 4 135 - 131172 + 131173 @@ -20922,22 +20910,22 @@ 1 2 - 1317476 + 1317483 2 3 - 379027 + 379029 3 4 - 122802 + 122803 4 6 - 128424 + 128425 @@ -20947,11 +20935,11 @@ pointerishsize - 2250303 + 2250315 id - 2250303 + 2250315 size @@ -20973,7 +20961,7 @@ 1 2 - 2250303 + 2250315 @@ -20989,7 +20977,7 @@ 1 2 - 2250303 + 2250315 @@ -21073,11 +21061,11 @@ arraysizes - 88572 + 88573 id - 88572 + 88573 num_elements @@ -21103,7 +21091,7 @@ 1 2 - 88572 + 88573 @@ -21119,7 +21107,7 @@ 1 2 - 88572 + 88573 @@ -21135,7 +21123,7 @@ 1 2 - 88572 + 88573 @@ -21463,16 +21451,64 @@ - typedefbase - 1827993 + tupleelements + 1 id - 1827993 + 1 + + + num_elements + 1 + + + + + id + num_elements + + + 12 + + + 1 + 2 + 1 + + + + + + + num_elements + id + + + 12 + + + 1 + 2 + 1 + + + + + + + + + typedefbase + 1828181 + + + id + 1828181 type_id - 885785 + 885722 @@ -21486,7 +21522,7 @@ 1 2 - 1827993 + 1828181 @@ -21502,22 +21538,22 @@ 1 2 - 706685 + 706481 2 3 - 83828 + 83914 3 7 - 74588 + 74580 7 4525 - 20682 + 20745 @@ -21527,7 +21563,7 @@ decltypes - 814471 + 814475 id @@ -21535,7 +21571,7 @@ expr - 814471 + 814475 kind @@ -21665,7 +21701,7 @@ 1 2 - 814471 + 814475 @@ -21681,7 +21717,7 @@ 1 2 - 814471 + 814475 @@ -21697,7 +21733,7 @@ 1 2 - 814471 + 814475 @@ -21713,7 +21749,7 @@ 1 2 - 814471 + 814475 @@ -22291,15 +22327,15 @@ usertypes - 4459321 + 4458594 id - 4459321 + 4458594 name - 964062 + 963652 kind @@ -22317,7 +22353,7 @@ 1 2 - 4459321 + 4458594 @@ -22333,7 +22369,7 @@ 1 2 - 4459321 + 4458594 @@ -22349,22 +22385,22 @@ 1 2 - 667498 + 667093 2 3 - 176378 + 176423 3 7 - 76801 + 76769 7 30282 - 43383 + 43365 @@ -22380,12 +22416,12 @@ 1 2 - 904810 + 904425 2 10 - 59252 + 59227 @@ -22419,8 +22455,8 @@ 12 - 1562 - 1563 + 1563 + 1564 12 @@ -22434,13 +22470,13 @@ 12 - 19665 - 19666 + 19666 + 19667 12 - 20069 - 20070 + 20075 + 20076 12 @@ -22449,13 +22485,13 @@ 12 - 85998 - 85999 + 86007 + 86008 12 - 151139 - 151140 + 151219 + 151220 12 @@ -22537,15 +22573,15 @@ usertypesize - 1463274 + 1462784 id - 1463274 + 1462784 size - 1693 + 1692 alignment @@ -22563,7 +22599,7 @@ 1 2 - 1463274 + 1462784 @@ -22579,7 +22615,7 @@ 1 2 - 1463274 + 1462784 @@ -22595,7 +22631,7 @@ 1 2 - 532 + 531 2 @@ -22615,31 +22651,31 @@ 6 8 - 133 + 132 8 14 - 133 + 132 14 26 - 133 + 132 26 86 - 133 + 132 96 - 1588 - 133 + 1592 + 132 1733 - 93157 + 93158 60 @@ -22705,18 +22741,18 @@ 12 - 2045 - 2046 + 2046 + 2047 12 - 10475 - 10476 + 10484 + 10485 12 - 108343 - 108344 + 108344 + 108345 12 @@ -22837,11 +22873,11 @@ usertype_alias_kind - 1827993 + 1828181 id - 1827993 + 1828181 alias_kind @@ -22859,7 +22895,7 @@ 1 2 - 1827993 + 1828181 @@ -22873,13 +22909,13 @@ 12 - 36585 - 36586 + 36597 + 36598 12 - 114554 - 114555 + 114622 + 114623 12 @@ -22890,18 +22926,18 @@ nontype_template_parameters - 766417 + 766422 id - 766417 + 766422 type_template_type_constraint - 27152 + 27151 id @@ -22909,7 +22945,7 @@ constraint - 26012 + 26011 @@ -22974,15 +23010,15 @@ mangled_name - 7826029 + 7826069 id - 7826029 + 7826069 mangled_name - 6330532 + 6330564 is_complete @@ -23000,7 +23036,7 @@ 1 2 - 7826029 + 7826069 @@ -23016,7 +23052,7 @@ 1 2 - 7826029 + 7826069 @@ -23032,12 +23068,12 @@ 1 2 - 6000976 + 6001006 2 1127 - 329556 + 329558 @@ -23053,7 +23089,7 @@ 1 2 - 6330532 + 6330564 @@ -23105,59 +23141,59 @@ is_pod_class - 593861 + 593865 id - 593861 + 593865 is_standard_layout_class - 1205789 + 1205360 id - 1205789 + 1205360 is_complete - 1443608 + 1443114 id - 1443608 + 1443114 is_class_template - 260848 + 260749 id - 260848 + 260749 class_instantiation - 1190271 + 1189945 to - 1186788 + 1186464 from - 81905 + 81870 @@ -23171,12 +23207,12 @@ 1 2 - 1184345 + 1184021 2 8 - 2443 + 2442 @@ -23192,47 +23228,47 @@ 1 2 - 23802 + 23792 2 3 - 14816 + 14809 3 4 - 8103 + 8100 4 5 - 5357 + 5355 5 7 - 6906 + 6903 7 10 - 6265 + 6262 10 17 - 6627 + 6625 17 53 - 6204 + 6201 53 4219 - 3821 + 3820 @@ -23242,11 +23278,11 @@ class_template_argument - 3136346 + 3135288 type_id - 1461871 + 1461382 index @@ -23254,7 +23290,7 @@ arg_type - 925359 + 925001 @@ -23268,27 +23304,27 @@ 1 2 - 608427 + 608192 2 3 - 439439 + 439349 3 4 - 276994 + 276876 4 7 - 110800 + 110765 7 113 - 26209 + 26198 @@ -23304,22 +23340,22 @@ 1 2 - 639838 + 639589 2 3 - 452659 + 452563 3 4 - 275192 + 275075 4 113 - 94182 + 94154 @@ -23359,12 +23395,12 @@ 643 - 6818 + 6819 108 - 11328 - 120866 + 11329 + 120877 48 @@ -23410,7 +23446,7 @@ 10075 - 43770 + 43772 36 @@ -23427,27 +23463,27 @@ 1 2 - 580609 + 580362 2 3 - 189791 + 189734 3 4 - 55575 + 55563 4 11 - 70403 + 70373 11 - 11632 - 28979 + 11634 + 28966 @@ -23463,17 +23499,17 @@ 1 2 - 815732 + 815421 2 3 - 88860 + 88822 3 22 - 20766 + 20757 @@ -23483,11 +23519,11 @@ class_template_argument_value - 510172 + 510176 type_id - 205847 + 205849 index @@ -23495,7 +23531,7 @@ arg_value - 510036 + 510039 @@ -23509,7 +23545,7 @@ 1 2 - 155825 + 155826 2 @@ -23535,7 +23571,7 @@ 1 2 - 147954 + 147955 2 @@ -23678,7 +23714,7 @@ 1 2 - 509900 + 509903 2 @@ -23699,7 +23735,7 @@ 1 2 - 510036 + 510039 @@ -23709,15 +23745,15 @@ is_proxy_class_for - 55466 + 55443 id - 55466 + 55443 templ_param_id - 52406 + 52384 @@ -23731,7 +23767,7 @@ 1 2 - 55466 + 55443 @@ -23747,7 +23783,7 @@ 1 2 - 51584 + 51562 2 @@ -23762,19 +23798,19 @@ type_mentions - 5828677 + 5828707 id - 5828677 + 5828707 type_id - 276017 + 276019 location - 5782974 + 5783003 kind @@ -23792,7 +23828,7 @@ 1 2 - 5828677 + 5828707 @@ -23808,7 +23844,7 @@ 1 2 - 5828677 + 5828707 @@ -23824,7 +23860,7 @@ 1 2 - 5828677 + 5828707 @@ -23840,7 +23876,7 @@ 1 2 - 136510 + 136511 2 @@ -23865,7 +23901,7 @@ 7 12 - 21843 + 21844 12 @@ -23891,7 +23927,7 @@ 1 2 - 136510 + 136511 2 @@ -23916,7 +23952,7 @@ 7 12 - 21843 + 21844 12 @@ -23942,7 +23978,7 @@ 1 2 - 276017 + 276019 @@ -23958,7 +23994,7 @@ 1 2 - 5737270 + 5737300 2 @@ -23979,7 +24015,7 @@ 1 2 - 5737270 + 5737300 2 @@ -24000,7 +24036,7 @@ 1 2 - 5782974 + 5783003 @@ -24058,26 +24094,26 @@ is_function_template - 1335965 + 1335972 id - 1335965 + 1335972 function_instantiation - 973151 + 973157 to - 973151 + 973157 from - 182574 + 182575 @@ -24091,7 +24127,7 @@ 1 2 - 973151 + 973157 @@ -24107,7 +24143,7 @@ 1 2 - 111050 + 111051 2 @@ -24137,11 +24173,11 @@ function_template_argument - 2485235 + 2485251 function_id - 1453542 + 1453551 index @@ -24149,7 +24185,7 @@ arg_type - 298055 + 298057 @@ -24163,17 +24199,17 @@ 1 2 - 783148 + 783153 2 3 - 413229 + 413231 3 4 - 171840 + 171841 4 @@ -24194,22 +24230,22 @@ 1 2 - 802298 + 802303 2 3 - 411320 + 411323 3 4 - 169660 + 169661 4 9 - 70262 + 70263 @@ -24347,7 +24383,7 @@ 1 2 - 174805 + 174806 2 @@ -24362,7 +24398,7 @@ 4 6 - 22659 + 22660 6 @@ -24393,17 +24429,17 @@ 1 2 - 256858 + 256859 2 3 - 32132 + 32133 3 15 - 9063 + 9064 @@ -24413,11 +24449,11 @@ function_template_argument_value - 452858 + 452861 function_id - 196817 + 196819 index @@ -24425,7 +24461,7 @@ arg_value - 450166 + 450169 @@ -24439,7 +24475,7 @@ 1 2 - 151429 + 151430 2 @@ -24465,12 +24501,12 @@ 1 2 - 144512 + 144513 2 3 - 36698 + 36699 3 @@ -24618,7 +24654,7 @@ 1 2 - 447474 + 447477 2 @@ -24639,7 +24675,7 @@ 1 2 - 450166 + 450169 @@ -24660,11 +24696,11 @@ variable_instantiation - 421502 + 421504 to - 421502 + 421504 from @@ -24682,7 +24718,7 @@ 1 2 - 421502 + 421504 @@ -24748,11 +24784,11 @@ variable_template_argument - 768923 + 768927 variable_id - 400764 + 400766 index @@ -24760,7 +24796,7 @@ arg_type - 256849 + 256850 @@ -24774,12 +24810,12 @@ 1 2 - 155908 + 155909 2 3 - 190138 + 190139 3 @@ -24805,12 +24841,12 @@ 1 2 - 170899 + 170900 2 3 - 180269 + 180270 3 @@ -24938,7 +24974,7 @@ 1 2 - 176021 + 176022 2 @@ -24969,7 +25005,7 @@ 1 2 - 228365 + 228367 2 @@ -25150,15 +25186,15 @@ template_template_instantiation - 6640 + 6637 to - 6228 + 6226 from - 4402 + 4400 @@ -25172,12 +25208,12 @@ 1 2 - 6095 + 6093 2 15 - 133 + 132 @@ -25193,7 +25229,7 @@ 1 2 - 2878 + 2877 2 @@ -25213,11 +25249,11 @@ template_template_argument - 11078 + 11074 type_id - 7002 + 6999 index @@ -25225,7 +25261,7 @@ arg_type - 10401 + 10397 @@ -25239,7 +25275,7 @@ 1 2 - 5745 + 5742 2 @@ -25270,17 +25306,17 @@ 1 2 - 5769 + 5766 2 4 - 641 + 640 4 10 - 532 + 531 10 @@ -25423,7 +25459,7 @@ 1 2 - 10365 + 10360 3 @@ -25444,7 +25480,7 @@ 1 2 - 10377 + 10372 2 @@ -25501,7 +25537,7 @@ 1 2 - 520 + 519 2 @@ -25711,11 +25747,11 @@ concept_instantiation - 90429 + 90427 to - 90429 + 90427 from @@ -25733,7 +25769,7 @@ 1 2 - 90429 + 90427 @@ -25840,11 +25876,11 @@ concept_template_argument - 113041 + 113040 concept_id - 76379 + 76378 index @@ -25852,7 +25888,7 @@ arg_type - 21429 + 21428 @@ -25866,12 +25902,12 @@ 1 2 - 46473 + 46472 2 3 - 24678 + 24677 3 @@ -25897,7 +25933,7 @@ 2 3 - 22376 + 22375 3 @@ -26202,15 +26238,15 @@ routinetypes - 604424 + 604428 id - 604424 + 604428 return_type - 283913 + 283915 @@ -26224,7 +26260,7 @@ 1 2 - 604424 + 604428 @@ -26240,7 +26276,7 @@ 1 2 - 234266 + 234267 2 @@ -26260,11 +26296,11 @@ routinetypeargs - 1169167 + 1169173 routine - 413236 + 413238 index @@ -26272,7 +26308,7 @@ type_id - 111398 + 111399 @@ -26296,12 +26332,12 @@ 3 4 - 107149 + 107150 4 5 - 48753 + 48754 5 @@ -26311,7 +26347,7 @@ 7 19 - 16559 + 16560 @@ -26332,12 +26368,12 @@ 2 3 - 138417 + 138418 3 4 - 113849 + 113850 4 @@ -26606,7 +26642,7 @@ 2 3 - 17594 + 17595 3 @@ -26626,19 +26662,19 @@ ptrtomembers - 11030 + 11025 id - 11030 + 11025 type_id - 9071 + 9067 class_id - 5466 + 5464 @@ -26652,7 +26688,7 @@ 1 2 - 11030 + 11025 @@ -26668,7 +26704,7 @@ 1 2 - 11030 + 11025 @@ -26684,7 +26720,7 @@ 1 2 - 8817 + 8813 2 @@ -26705,7 +26741,7 @@ 1 2 - 8817 + 8813 2 @@ -26726,7 +26762,7 @@ 1 2 - 4354 + 4352 2 @@ -26757,7 +26793,7 @@ 1 2 - 4354 + 4352 2 @@ -26830,11 +26866,11 @@ typespecifiers - 888530 + 888515 type_id - 882640 + 882627 spec_id @@ -26852,12 +26888,12 @@ 1 2 - 876750 + 876739 2 3 - 5890 + 5887 @@ -26886,8 +26922,8 @@ 12 - 529 - 530 + 532 + 533 12 @@ -26901,18 +26937,18 @@ 12 - 4147 - 4148 + 4150 + 4151 12 - 17494 - 17495 + 17496 + 17497 12 - 48302 - 48303 + 48324 + 48325 12 @@ -26923,11 +26959,11 @@ funspecifiers - 9688310 + 9688610 func_id - 3970168 + 3970813 spec_id @@ -26945,27 +26981,27 @@ 1 2 - 1483628 + 1484261 2 3 - 506577 + 506954 3 4 - 1038015 + 1037645 4 5 - 696216 + 696219 5 8 - 245730 + 245731 @@ -27069,8 +27105,8 @@ 124 - 22425 - 22426 + 22427 + 22428 124 @@ -27081,11 +27117,11 @@ varspecifiers - 3073070 + 3073086 var_id - 2315015 + 2315027 spec_id @@ -27103,17 +27139,17 @@ 1 2 - 1659650 + 1659658 2 3 - 553175 + 553177 3 5 - 102189 + 102190 @@ -27227,11 +27263,11 @@ attributes - 651117 + 651120 id - 651117 + 651120 kind @@ -27247,7 +27283,7 @@ location - 644996 + 644999 @@ -27261,7 +27297,7 @@ 1 2 - 651117 + 651120 @@ -27277,7 +27313,7 @@ 1 2 - 651117 + 651120 @@ -27293,7 +27329,7 @@ 1 2 - 651117 + 651120 @@ -27309,7 +27345,7 @@ 1 2 - 651117 + 651120 @@ -27717,7 +27753,7 @@ 1 2 - 639124 + 639127 2 @@ -27738,7 +27774,7 @@ 1 2 - 644996 + 644999 @@ -27754,12 +27790,12 @@ 1 2 - 639874 + 639877 2 3 - 5121 + 5122 @@ -27775,7 +27811,7 @@ 1 2 - 644996 + 644999 @@ -27785,11 +27821,11 @@ attribute_args - 90662 + 90623 id - 90662 + 90623 kind @@ -27797,7 +27833,7 @@ attribute - 78543 + 78510 index @@ -27805,7 +27841,7 @@ location - 84445 + 84409 @@ -27819,7 +27855,7 @@ 1 2 - 90662 + 90623 @@ -27835,7 +27871,7 @@ 1 2 - 90662 + 90623 @@ -27851,7 +27887,7 @@ 1 2 - 90662 + 90623 @@ -27867,7 +27903,7 @@ 1 2 - 90662 + 90623 @@ -28002,17 +28038,17 @@ 1 2 - 71455 + 71425 2 5 - 5902 + 5899 5 18 - 1185 + 1184 @@ -28028,12 +28064,12 @@ 1 2 - 76487 + 76454 2 3 - 2056 + 2055 @@ -28049,12 +28085,12 @@ 1 2 - 72931 + 72900 2 6 - 5611 + 5609 @@ -28070,12 +28106,12 @@ 1 2 - 74370 + 74339 2 6 - 4172 + 4170 @@ -28225,12 +28261,12 @@ 1 2 - 82304 + 82269 2 23 - 2140 + 2139 @@ -28246,7 +28282,7 @@ 1 2 - 84252 + 84216 2 @@ -28267,7 +28303,7 @@ 1 2 - 84082 + 84047 2 @@ -28288,7 +28324,7 @@ 1 2 - 83949 + 83914 2 @@ -28459,15 +28495,15 @@ attribute_arg_constant - 82159 + 82124 arg - 82159 + 82124 constant - 82159 + 82124 @@ -28481,7 +28517,7 @@ 1 2 - 82159 + 82124 @@ -28497,7 +28533,7 @@ 1 2 - 82159 + 82124 @@ -28507,15 +28543,15 @@ attribute_arg_expr - 1608 + 1607 arg - 1608 + 1607 expr - 1608 + 1607 @@ -28529,7 +28565,7 @@ 1 2 - 1608 + 1607 @@ -28545,7 +28581,7 @@ 1 2 - 1608 + 1607 @@ -28608,11 +28644,11 @@ typeattributes - 92195 + 92196 type_id - 90571 + 90572 spec_id @@ -28630,7 +28666,7 @@ 1 2 - 88947 + 88948 2 @@ -28671,15 +28707,15 @@ funcattributes - 844878 + 844883 func_id - 800030 + 800034 spec_id - 617137 + 617140 @@ -28693,7 +28729,7 @@ 1 2 - 759678 + 759682 2 @@ -28714,7 +28750,7 @@ 1 2 - 571414 + 571417 2 @@ -28918,15 +28954,15 @@ unspecifiedtype - 7468031 + 7467739 type_id - 7468031 + 7467739 unspecified_type_id - 4300698 + 4300051 @@ -28940,7 +28976,7 @@ 1 2 - 7468031 + 7467739 @@ -28956,17 +28992,17 @@ 1 2 - 2870853 + 2870392 2 3 - 1169674 + 1169405 3 6277 - 260170 + 260253 @@ -28976,11 +29012,11 @@ member - 4200783 + 4200804 parent - 544555 + 544558 index @@ -28988,7 +29024,7 @@ child - 4195536 + 4195557 @@ -29007,12 +29043,12 @@ 2 3 - 83450 + 83451 3 4 - 32605 + 32606 4 @@ -29042,7 +29078,7 @@ 13 18 - 41100 + 41101 18 @@ -29073,7 +29109,7 @@ 2 3 - 83575 + 83576 3 @@ -29088,7 +29124,7 @@ 5 6 - 42599 + 42600 6 @@ -29108,17 +29144,17 @@ 13 18 - 41225 + 41226 18 42 - 40975 + 40976 42 265 - 11992 + 11993 @@ -29266,7 +29302,7 @@ 1 2 - 4195536 + 4195557 @@ -29282,7 +29318,7 @@ 1 2 - 4190289 + 4190310 2 @@ -29335,7 +29371,7 @@ 1 2 - 49340 + 49341 2 @@ -29360,15 +29396,15 @@ derivations - 476983 + 476986 derivation - 476983 + 476986 sub - 455243 + 455246 index @@ -29376,7 +29412,7 @@ super - 235595 + 235596 location @@ -29394,7 +29430,7 @@ 1 2 - 476983 + 476986 @@ -29410,7 +29446,7 @@ 1 2 - 476983 + 476986 @@ -29426,7 +29462,7 @@ 1 2 - 476983 + 476986 @@ -29442,7 +29478,7 @@ 1 2 - 476983 + 476986 @@ -29458,7 +29494,7 @@ 1 2 - 438717 + 438720 2 @@ -29479,7 +29515,7 @@ 1 2 - 438717 + 438720 2 @@ -29500,7 +29536,7 @@ 1 2 - 438717 + 438720 2 @@ -29521,7 +29557,7 @@ 1 2 - 438717 + 438720 2 @@ -29681,7 +29717,7 @@ 1 2 - 225781 + 225783 2 @@ -29702,7 +29738,7 @@ 1 2 - 225781 + 225783 2 @@ -29723,7 +29759,7 @@ 1 2 - 235152 + 235153 2 @@ -29744,7 +29780,7 @@ 1 2 - 230245 + 230247 2 @@ -29878,11 +29914,11 @@ derspecifiers - 478755 + 478758 der_id - 476540 + 476543 spec_id @@ -29900,7 +29936,7 @@ 1 2 - 474325 + 474328 2 @@ -29946,11 +29982,11 @@ direct_base_offsets - 450064 + 450067 der_id - 450064 + 450067 offset @@ -29968,7 +30004,7 @@ 1 2 - 450064 + 450067 @@ -30165,11 +30201,11 @@ frienddecls - 700584 + 700589 id - 700584 + 700589 type_id @@ -30177,7 +30213,7 @@ decl_id - 77861 + 77759 location @@ -30195,7 +30231,7 @@ 1 2 - 700584 + 700589 @@ -30211,7 +30247,7 @@ 1 2 - 700584 + 700589 @@ -30227,7 +30263,7 @@ 1 2 - 700584 + 700589 @@ -30376,12 +30412,12 @@ 1 2 - 48079 + 47875 2 3 - 5963 + 6065 3 @@ -30417,12 +30453,12 @@ 1 2 - 48079 + 47875 2 3 - 5963 + 6065 3 @@ -30458,7 +30494,7 @@ 1 2 - 77180 + 77078 2 @@ -30525,7 +30561,7 @@ 2 - 2132 + 2129 340 @@ -30536,19 +30572,19 @@ comments - 11220785 + 11220843 id - 11220785 + 11220843 contents - 4291355 + 4291377 location - 11220785 + 11220843 @@ -30562,7 +30598,7 @@ 1 2 - 11220785 + 11220843 @@ -30578,7 +30614,7 @@ 1 2 - 11220785 + 11220843 @@ -30594,12 +30630,12 @@ 1 2 - 3917324 + 3917344 2 6 - 321935 + 321937 6 @@ -30620,12 +30656,12 @@ 1 2 - 3917324 + 3917344 2 6 - 321935 + 321937 6 @@ -30646,7 +30682,7 @@ 1 2 - 11220785 + 11220843 @@ -30662,7 +30698,7 @@ 1 2 - 11220785 + 11220843 @@ -30672,15 +30708,15 @@ commentbinding - 3838371 + 3838390 id - 3351531 + 3351549 element - 3672343 + 3672362 @@ -30694,12 +30730,12 @@ 1 2 - 3295314 + 3295331 2 1706 - 56216 + 56217 @@ -30715,12 +30751,12 @@ 1 2 - 3506316 + 3506333 2 3 - 166027 + 166028 @@ -30730,15 +30766,15 @@ exprconv - 9633039 + 9633089 converted - 9632934 + 9632983 conversion - 9633039 + 9633089 @@ -30752,7 +30788,7 @@ 1 2 - 9632828 + 9632878 2 @@ -30773,7 +30809,7 @@ 1 2 - 9633039 + 9633089 @@ -30783,22 +30819,22 @@ compgenerated - 9893080 + 9891516 id - 9893080 + 9891516 synthetic_destructor_call - 1671616 + 1671589 element - 1244902 + 1244881 i @@ -30806,7 +30842,7 @@ destructor_call - 1671616 + 1671589 @@ -30820,12 +30856,12 @@ 1 2 - 828643 + 828630 2 3 - 409459 + 409452 3 @@ -30846,12 +30882,12 @@ 1 2 - 828643 + 828630 2 3 - 409459 + 409452 3 @@ -31004,7 +31040,7 @@ 1 2 - 1671616 + 1671589 @@ -31020,7 +31056,7 @@ 1 2 - 1671616 + 1671589 @@ -31030,15 +31066,15 @@ namespaces - 9905 + 9901 id - 9905 + 9901 name - 5237 + 5234 @@ -31052,7 +31088,7 @@ 1 2 - 9905 + 9901 @@ -31068,7 +31104,7 @@ 1 2 - 4281 + 4279 2 @@ -31099,7 +31135,7 @@ namespacembrs - 2042050 + 2042061 parentid @@ -31107,7 +31143,7 @@ memberid - 2042050 + 2042061 @@ -31197,7 +31233,7 @@ 1 2 - 2042050 + 2042061 @@ -31207,19 +31243,19 @@ exprparents - 19454117 + 19454216 expr_id - 19454117 + 19454216 child_index - 20034 + 20035 parent_id - 12939921 + 12939987 @@ -31233,7 +31269,7 @@ 1 2 - 19454117 + 19454216 @@ -31249,7 +31285,7 @@ 1 2 - 19454117 + 19454216 @@ -31367,17 +31403,17 @@ 1 2 - 7394719 + 7394757 2 3 - 5082654 + 5082680 3 712 - 462548 + 462550 @@ -31393,17 +31429,17 @@ 1 2 - 7394719 + 7394757 2 3 - 5082654 + 5082680 3 712 - 462548 + 462550 @@ -31413,11 +31449,11 @@ expr_isload - 6853100 + 6853135 expr_id - 6853100 + 6853135 @@ -31502,11 +31538,11 @@ iscall - 5802529 + 5802435 caller - 5802529 + 5802435 kind @@ -31524,7 +31560,7 @@ 1 2 - 5802529 + 5802435 @@ -31560,11 +31596,11 @@ numtemplatearguments - 625757 + 625760 expr_id - 625757 + 625760 num @@ -31582,7 +31618,7 @@ 1 2 - 625757 + 625760 @@ -31666,23 +31702,23 @@ namequalifiers - 3041824 + 3041775 id - 3041824 + 3041775 qualifiableelement - 3041824 + 3041775 qualifyingelement - 47484 + 47483 location - 552429 + 552420 @@ -31696,7 +31732,7 @@ 1 2 - 3041824 + 3041775 @@ -31712,7 +31748,7 @@ 1 2 - 3041824 + 3041775 @@ -31728,7 +31764,7 @@ 1 2 - 3041824 + 3041775 @@ -31744,7 +31780,7 @@ 1 2 - 3041824 + 3041775 @@ -31760,7 +31796,7 @@ 1 2 - 3041824 + 3041775 @@ -31776,7 +31812,7 @@ 1 2 - 3041824 + 3041775 @@ -31864,7 +31900,7 @@ 1 2 - 34403 + 34402 2 @@ -31895,7 +31931,7 @@ 1 2 - 79133 + 79132 2 @@ -31905,12 +31941,12 @@ 6 7 - 398981 + 398974 7 192 - 36210 + 36209 @@ -31926,7 +31962,7 @@ 1 2 - 79133 + 79132 2 @@ -31936,12 +31972,12 @@ 6 7 - 398981 + 398974 7 192 - 36210 + 36209 @@ -31957,7 +31993,7 @@ 1 2 - 111535 + 111533 2 @@ -31967,7 +32003,7 @@ 4 5 - 415290 + 415283 5 @@ -31982,15 +32018,15 @@ varbind - 8254589 + 8254631 expr - 8254589 + 8254631 var - 1050370 + 1050376 @@ -32004,7 +32040,7 @@ 1 2 - 8254589 + 8254631 @@ -32025,7 +32061,7 @@ 2 3 - 188699 + 188700 3 @@ -32035,12 +32071,12 @@ 4 5 - 116635 + 116636 5 6 - 83150 + 83151 6 @@ -32055,12 +32091,12 @@ 9 13 - 81574 + 81575 13 27 - 79126 + 79127 27 @@ -32075,15 +32111,15 @@ funbind - 5812232 + 5812138 expr - 5809758 + 5809664 fun - 275934 + 275930 @@ -32097,7 +32133,7 @@ 1 2 - 5807284 + 5807189 2 @@ -32118,12 +32154,12 @@ 1 2 - 181439 + 181436 2 3 - 38835 + 38834 3 @@ -32148,11 +32184,11 @@ expr_allocator - 45251 + 45252 expr - 45251 + 45252 func @@ -32174,7 +32210,7 @@ 1 2 - 45251 + 45252 @@ -32190,7 +32226,7 @@ 1 2 - 45251 + 45252 @@ -32274,11 +32310,11 @@ expr_deallocator - 53838 + 53839 expr - 53838 + 53839 func @@ -32300,7 +32336,7 @@ 1 2 - 53838 + 53839 @@ -32316,7 +32352,7 @@ 1 2 - 53838 + 53839 @@ -32421,15 +32457,15 @@ expr_cond_guard - 897875 + 897880 cond - 897875 + 897880 guard - 897875 + 897880 @@ -32443,7 +32479,7 @@ 1 2 - 897875 + 897880 @@ -32459,7 +32495,7 @@ 1 2 - 897875 + 897880 @@ -32469,15 +32505,15 @@ expr_cond_true - 897871 + 897876 cond - 897871 + 897876 true - 897871 + 897876 @@ -32491,7 +32527,7 @@ 1 2 - 897871 + 897876 @@ -32507,7 +32543,7 @@ 1 2 - 897871 + 897876 @@ -32517,15 +32553,15 @@ expr_cond_false - 897875 + 897880 cond - 897875 + 897880 false - 897875 + 897880 @@ -32539,7 +32575,7 @@ 1 2 - 897875 + 897880 @@ -32555,7 +32591,7 @@ 1 2 - 897875 + 897880 @@ -32565,15 +32601,15 @@ values - 13474536 + 13474605 id - 13474536 + 13474605 str - 114565 + 114566 @@ -32587,7 +32623,7 @@ 1 2 - 13474536 + 13474605 @@ -32633,11 +32669,11 @@ valuetext - 6647484 + 6647456 id - 6647484 + 6647456 text @@ -32655,7 +32691,7 @@ 1 2 - 6647484 + 6647456 @@ -32685,7 +32721,7 @@ 7 - 593553 + 593555 27950 @@ -32696,15 +32732,15 @@ valuebind - 13583118 + 13583188 val - 13474536 + 13474605 expr - 13583118 + 13583188 @@ -32718,7 +32754,7 @@ 1 2 - 13383982 + 13384050 2 @@ -32739,7 +32775,7 @@ 1 2 - 13583118 + 13583188 @@ -32749,11 +32785,11 @@ fieldoffsets - 1493394 + 1493401 id - 1493394 + 1493401 byteoffset @@ -32775,7 +32811,7 @@ 1 2 - 1493394 + 1493401 @@ -32791,7 +32827,7 @@ 1 2 - 1493394 + 1493401 @@ -32807,7 +32843,7 @@ 1 2 - 17703 + 17704 2 @@ -33136,23 +33172,23 @@ initialisers - 2340619 + 2340631 init - 2340619 + 2340631 var - 991147 + 991152 expr - 2340619 + 2340631 location - 539239 + 539242 @@ -33166,7 +33202,7 @@ 1 2 - 2340619 + 2340631 @@ -33182,7 +33218,7 @@ 1 2 - 2340619 + 2340631 @@ -33198,7 +33234,7 @@ 1 2 - 2340619 + 2340631 @@ -33214,7 +33250,7 @@ 1 2 - 874088 + 874093 2 @@ -33240,7 +33276,7 @@ 1 2 - 874088 + 874093 2 @@ -33266,7 +33302,7 @@ 1 2 - 991138 + 991143 2 @@ -33287,7 +33323,7 @@ 1 2 - 2340619 + 2340631 @@ -33303,7 +33339,7 @@ 1 2 - 2340619 + 2340631 @@ -33319,7 +33355,7 @@ 1 2 - 2340619 + 2340631 @@ -33335,12 +33371,12 @@ 1 2 - 439284 + 439287 2 3 - 33067 + 33068 3 @@ -33366,7 +33402,7 @@ 1 2 - 470418 + 470421 2 @@ -33392,12 +33428,12 @@ 1 2 - 439284 + 439287 2 3 - 33067 + 33068 3 @@ -33417,26 +33453,26 @@ braced_initialisers - 68480 + 68469 init - 68480 + 68469 expr_ancestor - 1677598 + 1677570 exp - 1677598 + 1677570 ancestor - 839616 + 839603 @@ -33450,7 +33486,7 @@ 1 2 - 1677598 + 1677570 @@ -33466,12 +33502,12 @@ 1 2 - 17083 + 17082 2 3 - 812464 + 812451 3 @@ -33486,11 +33522,11 @@ exprs - 25210446 + 25210575 id - 25210446 + 25210575 kind @@ -33498,7 +33534,7 @@ location - 10582616 + 10582670 @@ -33512,7 +33548,7 @@ 1 2 - 25210446 + 25210575 @@ -33528,7 +33564,7 @@ 1 2 - 25210446 + 25210575 @@ -33706,17 +33742,17 @@ 1 2 - 8900655 + 8900701 2 3 - 820604 + 820608 3 16 - 797195 + 797199 16 @@ -33737,17 +33773,17 @@ 1 2 - 9040056 + 9040103 2 3 - 774269 + 774273 3 32 - 768290 + 768294 @@ -33757,15 +33793,15 @@ expr_reuse - 846996 + 846982 reuse - 846996 + 846982 original - 846996 + 846982 value_category @@ -33783,7 +33819,7 @@ 1 2 - 846996 + 846982 @@ -33799,7 +33835,7 @@ 1 2 - 846996 + 846982 @@ -33815,7 +33851,7 @@ 1 2 - 846996 + 846982 @@ -33831,7 +33867,7 @@ 1 2 - 846996 + 846982 @@ -33883,15 +33919,15 @@ expr_types - 25210446 + 25210575 id - 25210446 + 25210575 typeid - 214201 + 214202 value_category @@ -33909,7 +33945,7 @@ 1 2 - 25210446 + 25210575 @@ -33925,7 +33961,7 @@ 1 2 - 25210446 + 25210575 @@ -33941,7 +33977,7 @@ 1 2 - 52511 + 52512 2 @@ -34002,7 +34038,7 @@ 1 2 - 185912 + 185913 2 @@ -34070,11 +34106,11 @@ new_allocated_type - 46205 + 46206 expr - 46205 + 46206 type_id @@ -34092,7 +34128,7 @@ 1 2 - 46205 + 46206 @@ -34113,7 +34149,7 @@ 2 3 - 14481 + 14482 3 @@ -35527,15 +35563,15 @@ condition_decl_bind - 408900 + 408893 expr - 408900 + 408893 decl - 408900 + 408893 @@ -35549,7 +35585,7 @@ 1 2 - 408900 + 408893 @@ -35565,7 +35601,7 @@ 1 2 - 408900 + 408893 @@ -35686,11 +35722,11 @@ sizeof_bind - 242025 + 242027 expr - 242025 + 242027 type_id @@ -35708,7 +35744,7 @@ 1 2 - 242025 + 242027 @@ -37198,7 +37234,7 @@ 1 2 - 17664 + 17665 2 @@ -37245,7 +37281,7 @@ 1 2 - 18372 + 18373 2 @@ -37402,11 +37438,11 @@ stmts - 6259629 + 6259661 id - 6259629 + 6259661 kind @@ -37414,7 +37450,7 @@ location - 2755003 + 2755017 @@ -37428,7 +37464,7 @@ 1 2 - 6259629 + 6259661 @@ -37444,7 +37480,7 @@ 1 2 - 6259629 + 6259661 @@ -37682,17 +37718,17 @@ 1 2 - 2353172 + 2353184 2 4 - 239107 + 239108 4 1581 - 162723 + 162724 @@ -37708,7 +37744,7 @@ 1 2 - 2668284 + 2668298 2 @@ -37878,15 +37914,15 @@ if_then - 990209 + 990214 if_stmt - 990209 + 990214 then_id - 990209 + 990214 @@ -37900,7 +37936,7 @@ 1 2 - 990209 + 990214 @@ -37916,7 +37952,7 @@ 1 2 - 990209 + 990214 @@ -37926,15 +37962,15 @@ if_else - 437085 + 437078 if_stmt - 437085 + 437078 else_id - 437085 + 437078 @@ -37948,7 +37984,7 @@ 1 2 - 437085 + 437078 @@ -37964,7 +38000,7 @@ 1 2 - 437085 + 437078 @@ -38262,15 +38298,15 @@ do_body - 233640 + 233641 do_stmt - 233640 + 233641 body_id - 233640 + 233641 @@ -38284,7 +38320,7 @@ 1 2 - 233640 + 233641 @@ -38300,7 +38336,7 @@ 1 2 - 233640 + 233641 @@ -38358,11 +38394,11 @@ switch_case - 836109 + 836096 switch_stmt - 411847 + 411840 index @@ -38370,7 +38406,7 @@ case_id - 836109 + 836096 @@ -38389,7 +38425,7 @@ 2 3 - 408964 + 408957 3 @@ -38415,7 +38451,7 @@ 2 3 - 408964 + 408957 3 @@ -38578,7 +38614,7 @@ 1 2 - 836109 + 836096 @@ -38594,7 +38630,7 @@ 1 2 - 836109 + 836096 @@ -38604,15 +38640,15 @@ switch_body - 411847 + 411840 switch_stmt - 411847 + 411840 body_id - 411847 + 411840 @@ -38626,7 +38662,7 @@ 1 2 - 411847 + 411840 @@ -38642,7 +38678,7 @@ 1 2 - 411847 + 411840 @@ -38652,15 +38688,15 @@ for_initialization - 73245 + 73246 for_stmt - 73245 + 73246 init_id - 73245 + 73246 @@ -38674,7 +38710,7 @@ 1 2 - 73245 + 73246 @@ -38690,7 +38726,7 @@ 1 2 - 73245 + 73246 @@ -38700,15 +38736,15 @@ for_condition - 76340 + 76341 for_stmt - 76340 + 76341 condition_id - 76340 + 76341 @@ -38722,7 +38758,7 @@ 1 2 - 76340 + 76341 @@ -38738,7 +38774,7 @@ 1 2 - 76340 + 76341 @@ -38796,15 +38832,15 @@ for_body - 84388 + 84389 for_stmt - 84388 + 84389 body_id - 84388 + 84389 @@ -38818,7 +38854,7 @@ 1 2 - 84388 + 84389 @@ -38834,7 +38870,7 @@ 1 2 - 84388 + 84389 @@ -38844,11 +38880,11 @@ stmtparents - 5524434 + 5524463 id - 5524434 + 5524463 index @@ -38856,7 +38892,7 @@ parent - 2342622 + 2342634 @@ -38870,7 +38906,7 @@ 1 2 - 5524434 + 5524463 @@ -38886,7 +38922,7 @@ 1 2 - 5524434 + 5524463 @@ -39024,22 +39060,22 @@ 1 2 - 1344593 + 1344600 2 3 - 507829 + 507832 3 4 - 144134 + 144135 4 6 - 151438 + 151439 6 @@ -39065,22 +39101,22 @@ 1 2 - 1344593 + 1344600 2 3 - 507829 + 507832 3 4 - 144134 + 144135 4 6 - 151438 + 151439 6 @@ -39100,22 +39136,22 @@ ishandler - 43754 + 43747 block - 43754 + 43747 stmt_decl_bind - 721438 + 721594 stmt - 681485 + 681632 num @@ -39123,7 +39159,7 @@ decl - 721370 + 721526 @@ -39137,12 +39173,12 @@ 1 2 - 659540 + 659683 2 32 - 21944 + 21949 @@ -39158,12 +39194,12 @@ 1 2 - 659540 + 659683 2 32 - 21944 + 21949 @@ -39301,7 +39337,7 @@ 1 2 - 721346 + 721502 2 @@ -39322,7 +39358,7 @@ 1 2 - 721370 + 721526 @@ -39332,11 +39368,11 @@ stmt_decl_entry_bind - 721438 + 721594 stmt - 681485 + 681632 num @@ -39344,7 +39380,7 @@ decl_entry - 721438 + 721594 @@ -39358,12 +39394,12 @@ 1 2 - 659540 + 659683 2 32 - 21944 + 21949 @@ -39379,12 +39415,12 @@ 1 2 - 659540 + 659683 2 32 - 21944 + 21949 @@ -39522,7 +39558,7 @@ 1 2 - 721438 + 721594 @@ -39538,7 +39574,7 @@ 1 2 - 721438 + 721594 @@ -39548,15 +39584,15 @@ blockscope - 1762465 + 1762474 block - 1762465 + 1762474 enclosing - 1507364 + 1507372 @@ -39570,7 +39606,7 @@ 1 2 - 1762465 + 1762474 @@ -39586,17 +39622,17 @@ 1 2 - 1336215 + 1336222 2 3 - 128549 + 128550 3 28 - 42599 + 42600 @@ -39606,11 +39642,11 @@ jumpinfo - 348319 + 348320 id - 348319 + 348320 str @@ -39618,7 +39654,7 @@ target - 72705 + 72706 @@ -39632,7 +39668,7 @@ 1 2 - 348319 + 348320 @@ -39648,7 +39684,7 @@ 1 2 - 348319 + 348320 @@ -39777,7 +39813,7 @@ 1 2 - 72705 + 72706 @@ -39787,11 +39823,11 @@ preprocdirects - 5401328 + 5401355 id - 5401328 + 5401355 kind @@ -39799,7 +39835,7 @@ location - 5398080 + 5398107 @@ -39813,7 +39849,7 @@ 1 2 - 5401328 + 5401355 @@ -39829,7 +39865,7 @@ 1 2 - 5401328 + 5401355 @@ -39977,7 +40013,7 @@ 1 2 - 5397955 + 5397982 27 @@ -39998,7 +40034,7 @@ 1 2 - 5398080 + 5398107 @@ -40008,15 +40044,15 @@ preprocpair - 1139955 + 1139961 begin - 885604 + 885609 elseelifend - 1139955 + 1139961 @@ -40030,12 +40066,12 @@ 1 2 - 644871 + 644874 2 3 - 231114 + 231115 3 @@ -40056,7 +40092,7 @@ 1 2 - 1139955 + 1139961 @@ -40066,41 +40102,41 @@ preproctrue - 437243 + 437245 branch - 437243 + 437245 preprocfalse - 284333 + 284334 branch - 284333 + 284334 preproctext - 4347447 + 4347469 id - 4347447 + 4347469 head - 2951391 + 2951406 body - 1679388 + 1679397 @@ -40114,7 +40150,7 @@ 1 2 - 4347447 + 4347469 @@ -40130,7 +40166,7 @@ 1 2 - 4347447 + 4347469 @@ -40146,12 +40182,12 @@ 1 2 - 2754882 + 2754896 2 798 - 196509 + 196510 @@ -40167,7 +40203,7 @@ 1 2 - 2871813 + 2871828 2 @@ -40188,7 +40224,7 @@ 1 2 - 1530975 + 1530983 2 @@ -40214,7 +40250,7 @@ 1 2 - 1535223 + 1535231 2 @@ -40234,15 +40270,15 @@ includes - 364863 + 364707 id - 364863 + 364707 included - 67210 + 67182 @@ -40256,7 +40292,7 @@ 1 2 - 364863 + 364707 @@ -40272,32 +40308,32 @@ 1 2 - 33260 + 33246 2 3 - 10812 + 10808 3 4 - 5672 + 5670 4 6 - 6132 + 6129 6 11 - 5176 + 5174 11 47 - 5043 + 5041 47 @@ -40360,11 +40396,11 @@ link_parent - 30397565 + 30397762 element - 3866129 + 3866154 link_target @@ -40382,7 +40418,7 @@ 1 2 - 530549 + 530553 2 @@ -40392,7 +40428,7 @@ 9 10 - 3308626 + 3308647 From 01c6966cef68d15112a324689e63da01e4c39267 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 18 Jun 2025 13:22:51 +0100 Subject: [PATCH 089/340] Rust: Remove redundant code and imports. --- rust/ql/lib/codeql/rust/frameworks/Poem.qll | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/rust/ql/lib/codeql/rust/frameworks/Poem.qll b/rust/ql/lib/codeql/rust/frameworks/Poem.qll index 70b2aeb88e6..2554d845293 100644 --- a/rust/ql/lib/codeql/rust/frameworks/Poem.qll +++ b/rust/ql/lib/codeql/rust/frameworks/Poem.qll @@ -4,18 +4,14 @@ 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 /** * Parameters of a handler function */ private class PoemHandlerParam extends RemoteSource::Range { PoemHandlerParam() { - exists(TupleStructPat param, Type t | + exists(TupleStructPat param | this.asPat().getPat() = param.getAField() and - t = inferType(param) and param.getStruct().getCanonicalPath() = ["poem::web::query::Query", "poem::web::path::Path"] ) } From e0114753fe33307a23498e843eb1ef1a2b1c7bb3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 18 Jun 2025 15:24:20 +0200 Subject: [PATCH 090/340] Rust: fix formatting in doc snippet --- .../analyzing-data-flow-in-rust.rst | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index a68dc08a22b..3337dde2faa 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -210,16 +210,16 @@ The following global taint-tracking query finds places where a string literal is import codeql.rust.dataflow.TaintTracking module ConstantPasswordConfig implements DataFlow::ConfigSig { - predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } + predicate isSource(DataFlow::Node node) { node.asExpr().getExpr() instanceof StringLiteralExpr } - predicate isSink(DataFlow::Node node) { - // any argument going to a parameter called `password` - exists(Function f, CallExpr call, int index | - call.getArg(index) = node.asExpr().getExpr() and - call.getStaticTarget() = f and - f.getParam(index).getPat().(IdentPat).getName().getText() = "password" - ) - } + predicate isSink(DataFlow::Node node) { + // any argument going to a parameter called `password` + exists(Function f, CallExpr call, int index | + call.getArg(index) = node.asExpr().getExpr() and + call.getStaticTarget() = f and + f.getParam(index).getPat().(IdentPat).getName().getText() = "password" + ) + } } module ConstantPasswordFlow = TaintTracking::Global; From a253b319d56495166b22cb466a63d7d8db36b885 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 16 Jun 2025 11:59:09 +0200 Subject: [PATCH 091/340] Rust: limit number of diagnostics to 100 per trap file --- rust/extractor/src/main.rs | 1 + rust/extractor/src/translate/base.rs | 34 ++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index bae83c99fbf..6832019870c 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -103,6 +103,7 @@ impl<'a> Extractor<'a> { } } translator.emit_source_file(&ast); + translator.emit_truncated_diagnostics_message(); translator.trap.commit().unwrap_or_else(|err| { error!( "Failed to write trap file for: {}: {}", diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 9e9123c4570..7154a5659cb 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -123,11 +123,14 @@ pub struct Translator<'a> { resolve_paths: bool, source_kind: SourceKind, macro_context_depth: usize, + diagnostic_count: usize, } const UNKNOWN_LOCATION: (LineCol, LineCol) = (LineCol { line: 0, col: 0 }, LineCol { line: 0, col: 0 }); +const DIAGNOSTIC_LIMIT_PER_FILE: usize = 100; + impl<'a> Translator<'a> { pub fn new( trap: TrapFile, @@ -148,6 +151,7 @@ impl<'a> Translator<'a> { resolve_paths: resolve_paths == ResolvePaths::Yes, source_kind, macro_context_depth: 0, + diagnostic_count: 0, } } fn location(&self, range: TextRange) -> Option<(LineCol, LineCol)> { @@ -234,6 +238,36 @@ impl<'a> Translator<'a> { } else { severity }; + if severity > DiagnosticSeverity::Debug { + self.diagnostic_count += 1; + if self.diagnostic_count > DIAGNOSTIC_LIMIT_PER_FILE { + return; + } + } + self.emit_diagnostic_unchecked(severity, tag, message, full_message, location); + } + pub fn emit_truncated_diagnostics_message(&mut self) { + if self.diagnostic_count > DIAGNOSTIC_LIMIT_PER_FILE { + let count = self.diagnostic_count - DIAGNOSTIC_LIMIT_PER_FILE; + self.emit_diagnostic_unchecked( + DiagnosticSeverity::Warning, + "diagnostics".to_owned(), + "Too many diagnostic messages".to_owned(), + format!( + "Too many diagnostic messages, {count} diagnostic messages were suppressed" + ), + UNKNOWN_LOCATION, + ); + } + } + fn emit_diagnostic_unchecked( + &mut self, + severity: DiagnosticSeverity, + tag: String, + message: String, + full_message: String, + location: (LineCol, LineCol), + ) { let (start, end) = location; dispatch_to_tracing!( severity, From 5c71e3a9226a5ada710bc8ba3d4d530234505264 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 18 Jun 2025 16:27:40 +0100 Subject: [PATCH 092/340] State differences between XML and Markdown formats --- docs/query-help-style-guide.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/query-help-style-guide.md b/docs/query-help-style-guide.md index d05abba9404..45cac9c7e0b 100644 --- a/docs/query-help-style-guide.md +++ b/docs/query-help-style-guide.md @@ -20,7 +20,7 @@ Query help files must have the same base name as the query they describe and mus ### File structure and layout -Query help files can be written in either a custom XML format (with a `.qhelp` extension) or in Markdown (with a `.md` extension). Both formats are supported by the CodeQL documentation tooling. +Query help files can be written in either a custom XML format (with a `.qhelp` extension) or in Markdown (with a `.md` extension). Both formats are supported by the CodeQL documentation tooling. There are a few minor differences, noted in the section `Differences between XML and markdown formats` below. #### Markdown query help files @@ -126,7 +126,7 @@ For example: ### Referencing potential security weaknesses -If your query checks code for a CWE weakness, you should use the `@tags` element in the query file to reference the associated CWEs, as explained [here](query-metadata-style-guide.md). When you use these tags, a link to the appropriate entry from the [MITRE.org](https://cwe.mitre.org/scoring/index.html) site will automatically appear as a reference in the output HTML file. +If your query checks code for a CWE weakness, you should use the `@tags` element in the query file to reference the associated CWEs, as explained [here](query-metadata-style-guide.md). When you use these tags in a query help file in the custom XML format, a link to the appropriate entry from the [MITRE.org](https://cwe.mitre.org/scoring/index.html) site will automatically appear as a reference in the output HTML file. ## Validating query help files @@ -143,6 +143,11 @@ Please include the query help files (and any associated code snippets) in your p More information on how to test your query help files can be found [within the documentation](https://docs.github.com/en/code-security/codeql-cli/using-the-codeql-cli/testing-query-help-files) +## Differences between XML and markdown formats + +1. The XML format allows for the contents of other files to be included in the output generated by processing the file, as mentioned in the section `Code examples`. This is not possible with the Markdown format. +2. When using the XML format, references are added to the output HTML file based on CWE tags, as mentioned in the section `Referencing potential security weaknesses`. + ## Query help example The following example is a query help file for a query from the standard query suite for Java, shown in both Markdown and XML formats. From 97dceb3a1c84891140d93863bd2681bd08d65bf9 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 17 Jun 2025 11:51:57 +0100 Subject: [PATCH 093/340] Tag with `quality` and sub-category --- .../src/Advisory/Declarations/MissingOverrideAnnotation.ql | 4 +++- .../Deprecated Code/AvoidDeprecatedCallableAccess.ql | 4 +++- .../src/Advisory/Documentation/ImpossibleJavadocThrows.ql | 4 +++- java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql | 4 +++- java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql | 4 +++- java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql | 4 +++- java/ql/src/DeadCode/UselessParameter.ql | 3 ++- java/ql/src/Language Abuse/ChainedInstanceof.ql | 4 +++- java/ql/src/Language Abuse/IterableIterator.ql | 3 ++- java/ql/src/Language Abuse/UselessNullCheck.ql | 3 ++- java/ql/src/Language Abuse/UselessTypeTest.ql | 4 +++- java/ql/src/Language Abuse/WrappedIterator.ql | 3 ++- .../Arithmetic/ConstantExpAppearsNonConstant.ql | 5 +++-- java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql | 4 ++-- .../Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql | 4 +++- .../Arithmetic/WhitespaceContradictsPrecedence.ql | 5 +++-- .../src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql | 3 ++- .../ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql | 3 ++- java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql | 6 +++--- java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql | 3 ++- java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql | 4 ++-- .../src/Likely Bugs/Comparison/CompareIdenticalValues.ql | 3 ++- java/ql/src/Likely Bugs/Comparison/EqualsArray.ql | 3 ++- java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql | 3 ++- java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql | 5 +++-- .../Likely Bugs/Comparison/InconsistentEqualsHashCode.ql | 4 ++-- .../Likely Bugs/Comparison/MissingInstanceofInEquals.ql | 4 ++-- java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql | 4 ++-- .../ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql | 4 +++- java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql | 4 +++- java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql | 4 ++-- .../ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql | 4 ++-- .../Concurrency/DoubleCheckedLockingWithInitRace.ql | 4 ++-- .../src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql | 4 ++-- java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql | 4 ++-- java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql | 4 ++-- .../src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql | 3 ++- .../src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql | 3 ++- .../Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql | 5 +++-- java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql | 4 +++- java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql | 4 +++- java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql | 3 ++- .../src/Likely Bugs/Likely Typos/StringBufferCharInit.ql | 5 +++-- .../src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql | 5 +++-- java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql | 3 ++- java/ql/src/Likely Bugs/Nullness/NullAlways.ql | 3 ++- java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql | 3 ++- java/ql/src/Likely Bugs/Nullness/NullMaybe.ql | 3 ++- java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql | 7 ++++--- java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql | 4 +++- java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql | 7 ++++--- java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql | 4 +++- java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql | 3 ++- java/ql/src/Likely Bugs/Statements/UseBraces.ql | 4 +++- .../src/Likely Bugs/Termination/ConstantLoopCondition.ql | 4 +++- java/ql/src/Performance/InefficientEmptyStringTest.ql | 5 +++-- java/ql/src/Performance/InefficientKeySetIterator.ql | 5 +++-- java/ql/src/Performance/InefficientOutputStream.ql | 5 ++++- java/ql/src/Performance/InefficientPrimConstructor.ql | 6 ++++-- java/ql/src/Performance/InnerClassCouldBeStatic.ql | 6 ++++-- java/ql/src/Performance/NewStringString.ql | 6 ++++-- .../Boxed Types/BoxedVariable.ql | 4 +++- .../Violations of Best Practice/Dead Code/DeadRefTypes.ql | 3 ++- .../Dead Code/InterfaceCannotBeImplemented.ql | 3 ++- .../Violations of Best Practice/Dead Code/UnreadLocal.ql | 3 ++- .../Violations of Best Practice/Dead Code/UnusedLabel.ql | 3 ++- .../Declarations/NoConstantsOnly.ql | 4 +++- .../Exception Handling/IgnoreExceptionalReturn.ql | 5 +++-- .../Exception Handling/NumberFormatException.ql | 4 +++- .../Implementation Hiding/AbstractToConcreteCollection.ql | 3 ++- .../Implementation Hiding/ExposeRepresentation.ql | 5 +++-- .../Naming Conventions/AmbiguousOuterSuper.ql | 3 ++- .../Naming Conventions/ConfusingMethodNames.ql | 3 ++- .../Naming Conventions/ConfusingOverloading.ql | 3 ++- .../Naming Conventions/LocalShadowsFieldConfusing.ql | 3 ++- .../Naming Conventions/SameNameAsSuper.ql | 3 ++- .../Undesirable Calls/CallsToStringToString.ql | 4 +++- .../Undesirable Calls/DefaultToString.ql | 5 +++-- .../Undesirable Calls/PrintLnArray.ql | 4 +++- 79 files changed, 204 insertions(+), 110 deletions(-) diff --git a/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql b/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql index 0fd91f67178..26160c90fdf 100644 --- a/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql +++ b/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/missing-override-annotation - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql b/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql index f20be6d7f34..95403ffac0b 100644 --- a/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql +++ b/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/deprecated-call - * @tags maintainability + * @tags quality + * maintainability + * readability * non-attributable * external/cwe/cwe-477 */ diff --git a/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql b/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql index 7f8f4d4f983..0a8529d91d1 100644 --- a/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql +++ b/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/inconsistent-javadoc-throws - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql b/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql index 43afd978f01..fb6375d44de 100644 --- a/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql +++ b/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision very-high * @id java/unknown-javadoc-parameter - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql b/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql index 352af0ecb66..9eddcb64a14 100644 --- a/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql +++ b/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/jdk-internal-api-access - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql b/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql index 1d04f0f0d37..9bfda3e3140 100644 --- a/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql +++ b/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/underscore-identifier - * @tags maintainability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/DeadCode/UselessParameter.ql b/java/ql/src/DeadCode/UselessParameter.ql index 3d29c8faf10..e9f996583f3 100644 --- a/java/ql/src/DeadCode/UselessParameter.ql +++ b/java/ql/src/DeadCode/UselessParameter.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision high * @id java/unused-parameter - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Language Abuse/ChainedInstanceof.ql b/java/ql/src/Language Abuse/ChainedInstanceof.ql index bb646eeee78..d9b5a297b46 100644 --- a/java/ql/src/Language Abuse/ChainedInstanceof.ql +++ b/java/ql/src/Language Abuse/ChainedInstanceof.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision high * @id java/chained-type-tests - * @tags maintainability + * @tags quality + * maintainability + * complexity * language-features */ diff --git a/java/ql/src/Language Abuse/IterableIterator.ql b/java/ql/src/Language Abuse/IterableIterator.ql index fd5c5107e2d..72dfbcd9965 100644 --- a/java/ql/src/Language Abuse/IterableIterator.ql +++ b/java/ql/src/Language Abuse/IterableIterator.ql @@ -7,8 +7,9 @@ * @problem.severity warning * @precision very-high * @id java/iterator-implements-iterable - * @tags correctness + * @tags quality * reliability + * correctness */ import java diff --git a/java/ql/src/Language Abuse/UselessNullCheck.ql b/java/ql/src/Language Abuse/UselessNullCheck.ql index 93e5a92c307..1ad1c4c8e1e 100644 --- a/java/ql/src/Language Abuse/UselessNullCheck.ql +++ b/java/ql/src/Language Abuse/UselessNullCheck.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision very-high * @id java/useless-null-check - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Language Abuse/UselessTypeTest.ql b/java/ql/src/Language Abuse/UselessTypeTest.ql index 48ba740cbe8..dc727485bda 100644 --- a/java/ql/src/Language Abuse/UselessTypeTest.ql +++ b/java/ql/src/Language Abuse/UselessTypeTest.ql @@ -5,7 +5,9 @@ * @problem.severity warning * @precision very-high * @id java/useless-type-test - * @tags maintainability + * @tags quality + * maintainability + * useless-code * language-features * external/cwe/cwe-561 */ diff --git a/java/ql/src/Language Abuse/WrappedIterator.ql b/java/ql/src/Language Abuse/WrappedIterator.ql index 10dd8472fc4..a2479a2bad3 100644 --- a/java/ql/src/Language Abuse/WrappedIterator.ql +++ b/java/ql/src/Language Abuse/WrappedIterator.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision very-high * @id java/iterable-wraps-iterator - * @tags correctness + * @tags quality * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql b/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql index e54c470de43..50f50862631 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision very-high * @id java/evaluation-to-constant - * @tags maintainability - * useless-code + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql b/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql index 026096b63a7..37340bc7975 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql @@ -6,10 +6,10 @@ * @problem.severity warning * @precision very-high * @id java/integer-multiplication-cast-to-long - * @tags reliability + * @tags quality + * reliability * correctness * types - * quality * external/cwe/cwe-190 * external/cwe/cwe-192 * external/cwe/cwe-197 diff --git a/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql b/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql index f3c0b220080..57a05b0ac39 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql @@ -5,7 +5,9 @@ * @problem.severity warning * @precision very-high * @id java/lshift-larger-than-type-width - * @tags correctness + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql b/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql index b0508b8eb38..52a5850e7d1 100644 --- a/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql +++ b/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision very-high * @id java/whitespace-contradicts-precedence - * @tags maintainability - * readability + * @tags quality + * reliability + * correctness * external/cwe/cwe-783 */ diff --git a/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql b/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql index c94801189b3..ecd83e39719 100644 --- a/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql +++ b/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision high * @id java/index-out-of-bounds - * @tags reliability + * @tags quality + * reliability * correctness * exceptions * external/cwe/cwe-193 diff --git a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql index e1137b111bf..d1a398d1322 100644 --- a/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +++ b/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql @@ -7,7 +7,8 @@ * @problem.severity error * @precision very-high * @id java/type-mismatch-access - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql b/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql index 5b90341660b..2951f97d65f 100644 --- a/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql +++ b/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql @@ -5,9 +5,9 @@ * @problem.severity error * @precision very-high * @id java/empty-container - * @tags reliability - * maintainability - * useless-code + * @tags quality + * reliability + * correctness * external/cwe/cwe-561 */ diff --git a/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql b/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql index 08a8da88484..54548b122e4 100644 --- a/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql +++ b/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql @@ -7,7 +7,8 @@ * @problem.severity error * @precision very-high * @id java/type-mismatch-modification - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql b/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql index 1f4ebb3403d..589000df5d4 100644 --- a/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +++ b/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql @@ -5,9 +5,9 @@ * @problem.severity error * @precision very-high * @id java/unused-container - * @tags maintainability + * @tags quality + * maintainability * useless-code - * quality * external/cwe/cwe-561 */ diff --git a/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql b/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql index 4b52e937af2..e46dd7c5f79 100644 --- a/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql +++ b/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision very-high * @id java/comparison-of-identical-expressions - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql b/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql index 2b04d871154..e206d9c89c5 100644 --- a/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql +++ b/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision very-high * @id java/equals-on-arrays - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql b/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql index 6d3c4ce2821..f8b1cd85552 100644 --- a/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql +++ b/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision very-high * @id java/hashing-without-hashcode - * @tags reliability + * @tags quality + * reliability * correctness */ diff --git a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql index f5019373b65..cf75399caf4 100644 --- a/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql @@ -6,9 +6,10 @@ * @problem.severity error * @precision very-high * @id java/equals-on-unrelated-types - * @tags reliability + * @tags quality + * reliability * correctness - * quality + * external/cwe/cwe-571 */ import java diff --git a/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql b/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql index 2fce3397346..80153123b29 100644 --- a/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql +++ b/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql @@ -6,9 +6,9 @@ * @problem.severity error * @precision very-high * @id java/inconsistent-equals-and-hashcode - * @tags reliability + * @tags quality + * reliability * correctness - * quality * external/cwe/cwe-581 */ diff --git a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql index 413a88bb008..7cd495f9073 100644 --- a/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql +++ b/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql @@ -6,9 +6,9 @@ * @problem.severity error * @precision high * @id java/unchecked-cast-in-equals - * @tags reliability + * @tags quality + * reliability * correctness - * quality */ import java diff --git a/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql b/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql index 811edd9e2d7..6ea867b3481 100644 --- a/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql +++ b/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql @@ -6,9 +6,9 @@ * @problem.severity error * @precision very-high * @id java/reference-equality-of-boxed-types - * @tags reliability + * @tags quality + * reliability * correctness - * quality * external/cwe/cwe-595 */ diff --git a/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql b/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql index b4076bee00b..e60c65953d1 100644 --- a/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql +++ b/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @precision very-high * @id java/constant-comparison - * @tags correctness + * @tags quality + * reliability + * correctness * logic * external/cwe/cwe-570 * external/cwe/cwe-571 diff --git a/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql b/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql index b5ebc3a951c..1656eab1218 100644 --- a/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql +++ b/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql @@ -6,7 +6,9 @@ * @problem.severity error * @precision very-high * @id java/comparison-with-nan - * @tags correctness + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql index c31ef996225..a6ff029557c 100644 --- a/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql +++ b/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql @@ -6,8 +6,8 @@ * @problem.severity recommendation * @precision high * @id java/call-to-thread-run - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * external/cwe/cwe-572 */ diff --git a/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql b/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql index 21b8c805cbb..ee7a807d4da 100644 --- a/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql +++ b/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql @@ -6,8 +6,8 @@ * @problem.severity error * @precision high * @id java/unsafe-double-checked-locking - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * external/cwe/cwe-609 */ diff --git a/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql b/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql index 17b9fc93d21..6a480bd3f8d 100644 --- a/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +++ b/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql @@ -8,8 +8,8 @@ * @problem.severity warning * @precision high * @id java/unsafe-double-checked-locking-init-order - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * external/cwe/cwe-609 */ diff --git a/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql b/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql index a2e41c9bd05..3dcd44a5273 100644 --- a/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +++ b/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @precision very-high * @id java/non-sync-override - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * language-features * external/cwe/cwe-820 diff --git a/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql b/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql index a217d019f32..aa13c652e00 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql +++ b/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql @@ -7,8 +7,8 @@ * @problem.severity error * @precision very-high * @id java/sync-on-boxed-types - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * language-features * external/cwe/cwe-662 diff --git a/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql b/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql index f631ab145ed..642a3f5e46f 100644 --- a/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql +++ b/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql @@ -7,8 +7,8 @@ * @problem.severity error * @precision very-high * @id java/unsynchronized-getter - * @tags reliability - * correctness + * @tags quality + * reliability * concurrency * language-features * external/cwe/cwe-413 diff --git a/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql b/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql index 61816053897..606daac9c08 100644 --- a/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql +++ b/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql @@ -6,7 +6,8 @@ * @problem.severity error * @precision very-high * @id java/non-final-call-in-constructor - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql b/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql index 01f0ceac56c..dea4426b2a1 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql @@ -5,7 +5,8 @@ * @problem.severity warning * @precision very-high * @id java/test-for-negative-container-size - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql b/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql index a8ff61f481d..e48eb1f5ce6 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql @@ -7,9 +7,10 @@ * @problem.severity error * @precision very-high * @id java/contradictory-type-checks - * @tags correctness + * @tags quality + * reliability + * correctness * logic - * quality */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql b/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql index 2297873be82..4d9ec329ba3 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql @@ -6,7 +6,9 @@ * @problem.severity error * @precision very-high * @id java/missing-format-argument - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-685 */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql b/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql index f9f2c08f0b8..67cc13424fa 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql @@ -7,7 +7,9 @@ * @problem.severity recommendation * @precision very-high * @id java/missing-space-in-concatenation - * @tags readability + * @tags quality + * maintainability + * readability */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql b/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql index 83eb99d7498..8116a906910 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql @@ -5,7 +5,8 @@ * @problem.severity error * @precision very-high * @id java/redundant-assignment - * @tags reliability + * @tags quality + * reliability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql b/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql index 3eb9ee38e57..a7bc5e23fd4 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql @@ -6,8 +6,9 @@ * @problem.severity error * @precision very-high * @id java/string-buffer-char-init - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql b/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql index 9e24a3b7b4e..1e97c4250d9 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql @@ -5,8 +5,9 @@ * @problem.severity warning * @precision high * @id java/suspicious-date-format - * @tags correctness - * quality + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql b/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql index 286c731b5b8..e87a4b50440 100644 --- a/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql +++ b/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql @@ -7,7 +7,8 @@ * @problem.severity warning * @precision very-high * @id java/unused-format-argument - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-685 */ diff --git a/java/ql/src/Likely Bugs/Nullness/NullAlways.ql b/java/ql/src/Likely Bugs/Nullness/NullAlways.ql index c52c43acc55..e0fe795d5a7 100644 --- a/java/ql/src/Likely Bugs/Nullness/NullAlways.ql +++ b/java/ql/src/Likely Bugs/Nullness/NullAlways.ql @@ -5,7 +5,8 @@ * @problem.severity error * @precision very-high * @id java/dereferenced-value-is-always-null - * @tags reliability + * @tags quality + * reliability * correctness * exceptions * external/cwe/cwe-476 diff --git a/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql b/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql index 7929c839a41..59e7ebd5ae0 100644 --- a/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql +++ b/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision high * @id java/dereferenced-expr-may-be-null - * @tags reliability + * @tags quality + * reliability * correctness * exceptions * external/cwe/cwe-476 diff --git a/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql b/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql index eedb2907f46..2202f1eb454 100644 --- a/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql +++ b/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision high * @id java/dereferenced-value-may-be-null - * @tags reliability + * @tags quality + * reliability * correctness * exceptions * external/cwe/cwe-476 diff --git a/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql b/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql index d210581d20c..0c7681d5a52 100644 --- a/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql +++ b/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql @@ -6,10 +6,11 @@ * @problem.severity warning * @precision high * @id java/input-resource-leak - * @tags efficiency - * correctness + * @tags quality + * reliability + * performance + * efficiency * resources - * quality * external/cwe/cwe-404 * external/cwe/cwe-772 */ diff --git a/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql b/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql index e7584aba67d..bf310d34123 100644 --- a/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql +++ b/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql @@ -5,7 +5,9 @@ * @problem.severity warning * @precision high * @id java/database-resource-leak - * @tags correctness + * @tags quality + * reliability + * performance * resources * external/cwe/cwe-404 * external/cwe/cwe-772 diff --git a/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql b/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql index fe23286b2e0..988df777321 100644 --- a/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql +++ b/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql @@ -6,10 +6,11 @@ * @problem.severity warning * @precision high * @id java/output-resource-leak - * @tags efficiency - * correctness + * @tags quality + * reliability + * performance + * efficiency * resources - * quality * external/cwe/cwe-404 * external/cwe/cwe-772 */ diff --git a/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql b/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql index b99f64a1e4d..754602aa799 100644 --- a/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql +++ b/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql @@ -8,7 +8,9 @@ * @id java/continue-in-false-loop * @problem.severity warning * @precision high - * @tags correctness + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql b/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql index e3e9e45cc64..eb5c2d380c6 100644 --- a/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql +++ b/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision high * @id java/unreachable-catch-clause - * @tags reliability + * @tags quality + * reliability * correctness * exceptions * external/cwe/cwe-561 diff --git a/java/ql/src/Likely Bugs/Statements/UseBraces.ql b/java/ql/src/Likely Bugs/Statements/UseBraces.ql index e9c8a082f3f..c82bfc2c36f 100644 --- a/java/ql/src/Likely Bugs/Statements/UseBraces.ql +++ b/java/ql/src/Likely Bugs/Statements/UseBraces.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @precision very-high * @id java/misleading-indentation - * @tags maintainability + * @tags quality + * maintainability + * readability * correctness * logic */ diff --git a/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql b/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql index 9cf8ab9b61f..d4fbc480e1b 100644 --- a/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql +++ b/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql @@ -7,7 +7,9 @@ * @problem.severity warning * @precision very-high * @id java/constant-loop-condition - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-835 */ diff --git a/java/ql/src/Performance/InefficientEmptyStringTest.ql b/java/ql/src/Performance/InefficientEmptyStringTest.ql index 0033bcf1284..e909f717953 100644 --- a/java/ql/src/Performance/InefficientEmptyStringTest.ql +++ b/java/ql/src/Performance/InefficientEmptyStringTest.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision high * @id java/inefficient-empty-string-test - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance */ import java diff --git a/java/ql/src/Performance/InefficientKeySetIterator.ql b/java/ql/src/Performance/InefficientKeySetIterator.ql index 2dbe8831cb1..79641b36140 100644 --- a/java/ql/src/Performance/InefficientKeySetIterator.ql +++ b/java/ql/src/Performance/InefficientKeySetIterator.ql @@ -5,8 +5,9 @@ * @problem.severity recommendation * @precision high * @id java/inefficient-key-set-iterator - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance */ import java diff --git a/java/ql/src/Performance/InefficientOutputStream.ql b/java/ql/src/Performance/InefficientOutputStream.ql index 5ddf568b79a..feb9ae5e5c4 100644 --- a/java/ql/src/Performance/InefficientOutputStream.ql +++ b/java/ql/src/Performance/InefficientOutputStream.ql @@ -6,7 +6,10 @@ * @problem.severity warning * @precision very-high * @id java/inefficient-output-stream - * @tags efficiency + * @tags quality + * reliability + * performance + * efficiency */ import java diff --git a/java/ql/src/Performance/InefficientPrimConstructor.ql b/java/ql/src/Performance/InefficientPrimConstructor.ql index e8992b017f9..4c3284d93dd 100644 --- a/java/ql/src/Performance/InefficientPrimConstructor.ql +++ b/java/ql/src/Performance/InefficientPrimConstructor.ql @@ -5,8 +5,10 @@ * @problem.severity recommendation * @precision high * @id java/inefficient-boxed-constructor - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance + * efficiency */ import java diff --git a/java/ql/src/Performance/InnerClassCouldBeStatic.ql b/java/ql/src/Performance/InnerClassCouldBeStatic.ql index 95d3057c962..8edc7fd458a 100644 --- a/java/ql/src/Performance/InnerClassCouldBeStatic.ql +++ b/java/ql/src/Performance/InnerClassCouldBeStatic.ql @@ -6,8 +6,10 @@ * @problem.severity recommendation * @precision high * @id java/non-static-nested-class - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance + * efficiency */ import java diff --git a/java/ql/src/Performance/NewStringString.ql b/java/ql/src/Performance/NewStringString.ql index b2f26069ea2..9ffdbd44a27 100644 --- a/java/ql/src/Performance/NewStringString.ql +++ b/java/ql/src/Performance/NewStringString.ql @@ -6,8 +6,10 @@ * @problem.severity recommendation * @precision high * @id java/inefficient-string-constructor - * @tags efficiency - * maintainability + * @tags quality + * reliability + * performance + * efficiency */ import java diff --git a/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql b/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql index 1749dc2ffa4..fec9a2e8e44 100644 --- a/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql +++ b/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @precision very-high * @id java/non-null-boxed-variable - * @tags readability + * @tags quality + * maintainability + * readability * types */ diff --git a/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql b/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql index 3688ca21536..d211351c25d 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision high * @id java/unused-reference-type - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql b/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql index 892ebf9fdb1..1ca906d5bb8 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision very-high * @id java/unimplementable-interface - * @tags maintainability + * @tags quality + * maintainability * useless-code */ diff --git a/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql b/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql index 31697e561ed..ae85f546613 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision high * @id java/local-variable-is-never-read - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql b/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql index cc453f1334e..950486950cc 100644 --- a/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql +++ b/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision high * @id java/unused-label - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 */ diff --git a/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql b/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql index fb0482413d1..a268c6a8aee 100644 --- a/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql +++ b/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/constants-only-interface - * @tags maintainability + * @tags quality + * maintainability + * readability * modularity */ diff --git a/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql b/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql index 2e95c087ed5..83b1c235aa8 100644 --- a/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql +++ b/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/ignored-error-status-of-call - * @tags reliability - * correctness + * @tags quality + * reliability + * error-handling * external/cwe/cwe-391 */ diff --git a/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql b/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql index 6a7928b4561..a49d92bd630 100644 --- a/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql +++ b/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/uncaught-number-format-exception - * @tags reliability + * @tags quality + * reliability + * error-handling * external/cwe/cwe-248 */ diff --git a/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql b/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql index 670156cfccb..dce4d9e46e6 100644 --- a/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql +++ b/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql @@ -6,8 +6,9 @@ * @problem.severity warning * @precision very-high * @id java/abstract-to-concrete-cast - * @tags reliability + * @tags quality * maintainability + * complexity * modularity * external/cwe/cwe-485 */ diff --git a/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql b/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql index 98c1e1a2fbe..b5d27655f8d 100644 --- a/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql +++ b/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/internal-representation-exposure - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * modularity * external/cwe/cwe-485 */ diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql index a52a6d81688..c9c5dd85878 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision very-high * @id java/subtle-inherited-call - * @tags reliability + * @tags quality + * maintainability * readability */ diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql index 1c44dad78cc..ef98cd1c3bc 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision high * @id java/confusing-method-name - * @tags maintainability + * @tags quality + * maintainability * readability * naming */ diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql index 96188c534ff..ca002fc654a 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql @@ -7,7 +7,8 @@ * @problem.severity recommendation * @precision high * @id java/confusing-method-signature - * @tags maintainability + * @tags quality + * maintainability * readability * naming */ diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql index f686e18f2ee..f0c68ed9a80 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql @@ -6,7 +6,8 @@ * @problem.severity recommendation * @precision high * @id java/local-shadows-field - * @tags maintainability + * @tags quality + * maintainability * readability */ diff --git a/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql b/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql index a9f99658f94..ee3e3990ccb 100644 --- a/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +++ b/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql @@ -5,7 +5,8 @@ * @problem.severity recommendation * @precision high * @id java/class-name-matches-super-class - * @tags maintainability + * @tags quality + * maintainability * readability * naming */ diff --git a/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql b/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql index 9b1bcb9877c..abefc73dab1 100644 --- a/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql +++ b/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql @@ -5,7 +5,9 @@ * @problem.severity recommendation * @precision high * @id java/useless-tostring-call - * @tags maintainability + * @tags quality + * maintainability + * useless-code */ import java diff --git a/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql b/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql index d404e4a929a..e2b7824ffbf 100644 --- a/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql +++ b/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql @@ -6,8 +6,9 @@ * @problem.severity recommendation * @precision high * @id java/call-to-object-tostring - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness */ import java diff --git a/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql b/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql index f356aa635d4..46642ce6149 100644 --- a/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql +++ b/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql @@ -6,7 +6,9 @@ * @problem.severity recommendation * @precision very-high * @id java/print-array - * @tags maintainability + * @tags quality + * reliability + * correctness */ import java From 72a6280482c67aaec9cc6910db6be048d6443f51 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 17 Jun 2025 15:21:59 +0100 Subject: [PATCH 094/340] Add change note --- .../2025-06-17-add-tags-to-quality-queries.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md diff --git a/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md b/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md new file mode 100644 index 00000000000..cb6baa2927f --- /dev/null +++ b/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md @@ -0,0 +1,17 @@ +--- +category: queryMetadata +--- +* The tag `quality` has been added to multiple Java quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* The tag `external/cwe/cwe-571` has been added to `java/equals-on-unrelated-types`. +* The tag `readability` has been added to `java/missing-override-annotation`, `java/deprecated-call`, `java/inconsistent-javadoc-throws`, `java/unknown-javadoc-parameter`, `java/jdk-internal-api-access`, `java/underscore-identifier`, `java/misleading-indentation`, `java/constants-only-interface` and . +* The tag `useless-code` has been added to `java/useless-type-test`, and `java/useless-tostring-call`. +* The tag `complexity` has been added to `java/chained-type-tests`, and `java/abstract-to-concrete-cast`. +* The tag `error-handling` has been added to `java/ignored-error-status-of-call`, and `java/uncaught-number-format-exception`. +* The tag `correctness` has been added to `java/evaluation-to-constant`, `java/whitespace-contradicts-precedence`, `java/empty-container`, `java/string-buffer-char-init`, `java/call-to-object-tostring`, `java/print-array` and `java/internal-representation-exposure`. +* The tag `performance` has been added to `java/input-resource-leak`, `java/database-resource-leak`, `java/output-resource-leak`, `java/inefficient-empty-string-test`, `java/inefficient-key-set-iterator`, `java/inefficient-output-stream`, `java/inefficient-boxed-constructor`, `java/non-static-nested-class`, and `java/inefficient-string-constructor`. +* The tag `correctness` has been removed from `java/call-to-thread-run`, `java/unsafe-double-checked-locking`, `java/unsafe-double-checked-locking-init-order`, `java/non-sync-override`, `java/sync-on-boxed-types`, `java/unsynchronized-getter`, `java/input-resource-leak`, `java/output-resource-leak`, `java/database-resource-leak`, and `java/ignored-error-status-of-call`. +* The tags `maintainability` has been removed from `java/string-buffer-char-init`, `java/inefficient-key-set-iterator`, `java/inefficient-boxed-constructor`, `java/non-static-nested-class`, `java/inefficient-string-constructor`, `java/internal-representation-exposure`, and `java/inefficient-empty-string-test`. +* The tags `reliability` has been removed from `java/subtle-inherited-call`, `java/print-array`, and `java/call-to-object-tostring`. +* The tags `maintainability` and `useless-code` have been removed from `java/evaluation-to-constant`. +* The tags `maintainability` and `readability` have been removed from `java/whitespace-contradicts-precedence`. +* The tags `maintainability` and `useless-code` have been removed from `java/empty-container`. From 9cfa6fe59c46f9dadeeefba5a0efdbea10d70d89 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 17 Jun 2025 15:45:34 +0100 Subject: [PATCH 095/340] Update expected quality queries --- .../java-code-quality.qls.expected | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 4af6a4dd5db..777ca3dffc1 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -1,13 +1,82 @@ +ql/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql +ql/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql +ql/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql +ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql +ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql +ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql +ql/java/ql/src/DeadCode/UselessParameter.ql +ql/java/ql/src/Language Abuse/ChainedInstanceof.ql +ql/java/ql/src/Language Abuse/IterableIterator.ql +ql/java/ql/src/Language Abuse/UselessNullCheck.ql +ql/java/ql/src/Language Abuse/UselessTypeTest.ql +ql/java/ql/src/Language Abuse/WrappedIterator.ql +ql/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql ql/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql +ql/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql +ql/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql +ql/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql +ql/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +ql/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql +ql/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql ql/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +ql/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql +ql/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql +ql/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql ql/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql ql/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql ql/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql ql/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql +ql/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql +ql/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql +ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql +ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql +ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql +ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql +ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql +ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql +ql/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql +ql/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql +ql/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql +ql/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql ql/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql +ql/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql +ql/java/ql/src/Likely Bugs/Nullness/NullAlways.ql +ql/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql +ql/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql +ql/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql +ql/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql +ql/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql +ql/java/ql/src/Likely Bugs/Statements/UseBraces.ql +ql/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql +ql/java/ql/src/Performance/InefficientEmptyStringTest.ql +ql/java/ql/src/Performance/InefficientKeySetIterator.ql +ql/java/ql/src/Performance/InefficientOutputStream.ql +ql/java/ql/src/Performance/InefficientPrimConstructor.ql +ql/java/ql/src/Performance/InnerClassCouldBeStatic.ql +ql/java/ql/src/Performance/NewStringString.ql ql/java/ql/src/Performance/StringReplaceAllWithNonRegex.ql +ql/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql +ql/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql +ql/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql +ql/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql +ql/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql +ql/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql From d3eb4f8eb650a674d8418857b20bb6f6e23901d0 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 18 Jun 2025 11:56:58 +0100 Subject: [PATCH 096/340] Remove query with hard-coded threshold --- java/ql/src/Language Abuse/ChainedInstanceof.ql | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/src/Language Abuse/ChainedInstanceof.ql b/java/ql/src/Language Abuse/ChainedInstanceof.ql index d9b5a297b46..c5cd39565d0 100644 --- a/java/ql/src/Language Abuse/ChainedInstanceof.ql +++ b/java/ql/src/Language Abuse/ChainedInstanceof.ql @@ -5,8 +5,7 @@ * @problem.severity recommendation * @precision high * @id java/chained-type-tests - * @tags quality - * maintainability + * @tags maintainability * complexity * language-features */ From b8a694c9fe6323190eb4f6b43d86cf1417f1c5ce Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 18 Jun 2025 12:23:35 +0100 Subject: [PATCH 097/340] Address review comments --- java/ql/src/Performance/InefficientEmptyStringTest.ql | 4 ++-- java/ql/src/Performance/InnerClassCouldBeStatic.ql | 5 ++--- java/ql/src/Performance/NewStringString.ql | 5 ++--- .../change-notes/2025-06-17-add-tags-to-quality-queries.md | 6 +++--- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/java/ql/src/Performance/InefficientEmptyStringTest.ql b/java/ql/src/Performance/InefficientEmptyStringTest.ql index e909f717953..95f5bc0760b 100644 --- a/java/ql/src/Performance/InefficientEmptyStringTest.ql +++ b/java/ql/src/Performance/InefficientEmptyStringTest.ql @@ -6,8 +6,8 @@ * @precision high * @id java/inefficient-empty-string-test * @tags quality - * reliability - * performance + * maintainability + * readability */ import java diff --git a/java/ql/src/Performance/InnerClassCouldBeStatic.ql b/java/ql/src/Performance/InnerClassCouldBeStatic.ql index 8edc7fd458a..dfc577282ca 100644 --- a/java/ql/src/Performance/InnerClassCouldBeStatic.ql +++ b/java/ql/src/Performance/InnerClassCouldBeStatic.ql @@ -7,9 +7,8 @@ * @precision high * @id java/non-static-nested-class * @tags quality - * reliability - * performance - * efficiency + * maintainability + * readability */ import java diff --git a/java/ql/src/Performance/NewStringString.ql b/java/ql/src/Performance/NewStringString.ql index 9ffdbd44a27..4dde1c4edd2 100644 --- a/java/ql/src/Performance/NewStringString.ql +++ b/java/ql/src/Performance/NewStringString.ql @@ -7,9 +7,8 @@ * @precision high * @id java/inefficient-string-constructor * @tags quality - * reliability - * performance - * efficiency + * maintainability + * readability */ import java diff --git a/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md b/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md index cb6baa2927f..a8c07fb3560 100644 --- a/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md +++ b/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md @@ -3,14 +3,14 @@ category: queryMetadata --- * The tag `quality` has been added to multiple Java quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. * The tag `external/cwe/cwe-571` has been added to `java/equals-on-unrelated-types`. -* The tag `readability` has been added to `java/missing-override-annotation`, `java/deprecated-call`, `java/inconsistent-javadoc-throws`, `java/unknown-javadoc-parameter`, `java/jdk-internal-api-access`, `java/underscore-identifier`, `java/misleading-indentation`, `java/constants-only-interface` and . +* The tag `readability` has been added to `java/missing-override-annotation`, `java/deprecated-call`, `java/inconsistent-javadoc-throws`, `java/unknown-javadoc-parameter`, `java/jdk-internal-api-access`, `java/underscore-identifier`, `java/misleading-indentation`, `java/inefficient-empty-string-test`, `java/non-static-nested-class`, `inefficient-string-constructor`, and `java/constants-only-interface`. * The tag `useless-code` has been added to `java/useless-type-test`, and `java/useless-tostring-call`. * The tag `complexity` has been added to `java/chained-type-tests`, and `java/abstract-to-concrete-cast`. * The tag `error-handling` has been added to `java/ignored-error-status-of-call`, and `java/uncaught-number-format-exception`. * The tag `correctness` has been added to `java/evaluation-to-constant`, `java/whitespace-contradicts-precedence`, `java/empty-container`, `java/string-buffer-char-init`, `java/call-to-object-tostring`, `java/print-array` and `java/internal-representation-exposure`. -* The tag `performance` has been added to `java/input-resource-leak`, `java/database-resource-leak`, `java/output-resource-leak`, `java/inefficient-empty-string-test`, `java/inefficient-key-set-iterator`, `java/inefficient-output-stream`, `java/inefficient-boxed-constructor`, `java/non-static-nested-class`, and `java/inefficient-string-constructor`. +* The tag `performance` has been added to `java/input-resource-leak`, `java/database-resource-leak`, `java/output-resource-leak`, `java/inefficient-key-set-iterator`, `java/inefficient-output-stream`, and `java/inefficient-boxed-constructor`. * The tag `correctness` has been removed from `java/call-to-thread-run`, `java/unsafe-double-checked-locking`, `java/unsafe-double-checked-locking-init-order`, `java/non-sync-override`, `java/sync-on-boxed-types`, `java/unsynchronized-getter`, `java/input-resource-leak`, `java/output-resource-leak`, `java/database-resource-leak`, and `java/ignored-error-status-of-call`. -* The tags `maintainability` has been removed from `java/string-buffer-char-init`, `java/inefficient-key-set-iterator`, `java/inefficient-boxed-constructor`, `java/non-static-nested-class`, `java/inefficient-string-constructor`, `java/internal-representation-exposure`, and `java/inefficient-empty-string-test`. +* The tags `maintainability` has been removed from `java/string-buffer-char-init`, `java/inefficient-key-set-iterator`, `java/inefficient-boxed-constructor`, and `java/internal-representation-exposure`. * The tags `reliability` has been removed from `java/subtle-inherited-call`, `java/print-array`, and `java/call-to-object-tostring`. * The tags `maintainability` and `useless-code` have been removed from `java/evaluation-to-constant`. * The tags `maintainability` and `readability` have been removed from `java/whitespace-contradicts-precedence`. From 7a502984924a0a42e2b0fea4e2c6cc72b59646e5 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 18 Jun 2025 13:52:06 +0100 Subject: [PATCH 098/340] Update query suite test expectation --- .../java-code-quality-extended.qls.expected | 68 +++++++++++++++++++ .../java-code-quality.qls.expected | 1 - 2 files changed, 68 insertions(+), 1 deletion(-) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index 8a10ff68c4f..dd15d7f3bdd 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -1,15 +1,83 @@ +ql/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql +ql/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql +ql/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql +ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql +ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql +ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql +ql/java/ql/src/DeadCode/UselessParameter.ql ql/java/ql/src/Language Abuse/EmptyMethod.ql +ql/java/ql/src/Language Abuse/IterableIterator.ql ql/java/ql/src/Language Abuse/TypeVariableHidesType.ql +ql/java/ql/src/Language Abuse/UselessNullCheck.ql +ql/java/ql/src/Language Abuse/UselessTypeTest.ql +ql/java/ql/src/Language Abuse/WrappedIterator.ql +ql/java/ql/src/Likely Bugs/Arithmetic/ConstantExpAppearsNonConstant.ql ql/java/ql/src/Likely Bugs/Arithmetic/IntMultToLong.ql +ql/java/ql/src/Likely Bugs/Arithmetic/LShiftLargerThanTypeWidth.ql +ql/java/ql/src/Likely Bugs/Arithmetic/WhitespaceContradictsPrecedence.ql +ql/java/ql/src/Likely Bugs/Collections/ArrayIndexOutOfBounds.ql +ql/java/ql/src/Likely Bugs/Collections/ContainsTypeMismatch.ql +ql/java/ql/src/Likely Bugs/Collections/ReadOnlyContainer.ql +ql/java/ql/src/Likely Bugs/Collections/RemoveTypeMismatch.ql ql/java/ql/src/Likely Bugs/Collections/WriteOnlyContainer.ql +ql/java/ql/src/Likely Bugs/Comparison/CompareIdenticalValues.ql +ql/java/ql/src/Likely Bugs/Comparison/EqualsArray.ql +ql/java/ql/src/Likely Bugs/Comparison/HashedButNoHash.ql ql/java/ql/src/Likely Bugs/Comparison/IncomparableEquals.ql ql/java/ql/src/Likely Bugs/Comparison/InconsistentEqualsHashCode.ql ql/java/ql/src/Likely Bugs/Comparison/MissingInstanceofInEquals.ql ql/java/ql/src/Likely Bugs/Comparison/RefEqBoxed.ql +ql/java/ql/src/Likely Bugs/Comparison/UselessComparisonTest.ql +ql/java/ql/src/Likely Bugs/Comparison/WrongNanComparison.ql +ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql +ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql +ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql +ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql +ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql +ql/java/ql/src/Likely Bugs/Inheritance/NoNonFinalInConstructor.ql +ql/java/ql/src/Likely Bugs/Likely Typos/ContainerSizeCmpZero.ql ql/java/ql/src/Likely Bugs/Likely Typos/ContradictoryTypeChecks.ql +ql/java/ql/src/Likely Bugs/Likely Typos/MissingFormatArg.ql +ql/java/ql/src/Likely Bugs/Likely Typos/MissingSpaceTypo.ql +ql/java/ql/src/Likely Bugs/Likely Typos/SelfAssignment.ql +ql/java/ql/src/Likely Bugs/Likely Typos/StringBufferCharInit.ql ql/java/ql/src/Likely Bugs/Likely Typos/SuspiciousDateFormat.ql +ql/java/ql/src/Likely Bugs/Likely Typos/UnusedFormatArg.ql +ql/java/ql/src/Likely Bugs/Nullness/NullAlways.ql +ql/java/ql/src/Likely Bugs/Nullness/NullExprDeref.ql +ql/java/ql/src/Likely Bugs/Nullness/NullMaybe.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseReader.ql +ql/java/ql/src/Likely Bugs/Resource Leaks/CloseSql.ql ql/java/ql/src/Likely Bugs/Resource Leaks/CloseWriter.ql +ql/java/ql/src/Likely Bugs/Statements/ContinueInFalseLoop.ql +ql/java/ql/src/Likely Bugs/Statements/PartiallyMaskedCatch.ql +ql/java/ql/src/Likely Bugs/Statements/UseBraces.ql +ql/java/ql/src/Likely Bugs/Termination/ConstantLoopCondition.ql +ql/java/ql/src/Performance/InefficientEmptyStringTest.ql +ql/java/ql/src/Performance/InefficientKeySetIterator.ql +ql/java/ql/src/Performance/InefficientOutputStream.ql +ql/java/ql/src/Performance/InefficientPrimConstructor.ql +ql/java/ql/src/Performance/InnerClassCouldBeStatic.ql +ql/java/ql/src/Performance/NewStringString.ql ql/java/ql/src/Performance/StringReplaceAllWithNonRegex.ql +ql/java/ql/src/Violations of Best Practice/Boxed Types/BoxedVariable.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/DeadRefTypes.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/InterfaceCannotBeImplemented.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/UnreadLocal.ql +ql/java/ql/src/Violations of Best Practice/Dead Code/UnusedLabel.ql +ql/java/ql/src/Violations of Best Practice/Declarations/NoConstantsOnly.ql +ql/java/ql/src/Violations of Best Practice/Exception Handling/IgnoreExceptionalReturn.ql +ql/java/ql/src/Violations of Best Practice/Exception Handling/NumberFormatException.ql +ql/java/ql/src/Violations of Best Practice/Implementation Hiding/AbstractToConcreteCollection.ql +ql/java/ql/src/Violations of Best Practice/Implementation Hiding/ExposeRepresentation.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/AmbiguousOuterSuper.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingMethodNames.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/ConfusingOverloading.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/LocalShadowsFieldConfusing.ql +ql/java/ql/src/Violations of Best Practice/Naming Conventions/SameNameAsSuper.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/CallsToStringToString.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DefaultToString.ql ql/java/ql/src/Violations of Best Practice/Undesirable Calls/DoNotCallFinalize.ql +ql/java/ql/src/Violations of Best Practice/Undesirable Calls/PrintLnArray.ql diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 777ca3dffc1..589041ac7b3 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -5,7 +5,6 @@ ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql ql/java/ql/src/Compatibility/JDK9/UnderscoreIdentifier.ql ql/java/ql/src/DeadCode/UselessParameter.ql -ql/java/ql/src/Language Abuse/ChainedInstanceof.ql ql/java/ql/src/Language Abuse/IterableIterator.ql ql/java/ql/src/Language Abuse/UselessNullCheck.ql ql/java/ql/src/Language Abuse/UselessTypeTest.ql From 8450c5b1119a9557692524987a68d54ab0aa9742 Mon Sep 17 00:00:00 2001 From: Jon Janego Date: Wed, 18 Jun 2025 11:24:30 -0500 Subject: [PATCH 099/340] Update query-metadata-style-guide.md clarifying usage of top level tags --- docs/query-metadata-style-guide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/query-metadata-style-guide.md b/docs/query-metadata-style-guide.md index f5f2143d8be..27b9ee6635f 100644 --- a/docs/query-metadata-style-guide.md +++ b/docs/query-metadata-style-guide.md @@ -151,12 +151,12 @@ When you tag a query like this, the associated CWE pages from [MITRE.org](https: #### Quality query sub-category `@tags` +Each code quality related query should have **one** of these two "top-level" categories as a tag: + * `@tags maintainability`–for queries that detect patterns that make it harder for developers to make changes to the code. * `@tags reliability`–for queries that detect issues that affect whether the code will perform as expected during execution. -Software quality doesn't have as universally-agreed categorization method as security issues like CWE, so we will do our own categorization instead of using tags like CWE. - -We'll use two "top-level" categories of quality queries, with sub-categories beneath: +In addition to the "top-level" categories, we will also add sub-categories to further group code quality related queries: * `@tags maintainability`–for queries that detect patterns that make it harder for developers to make changes to the code. * `@tags readability`–for queries that detect confusing patterns that make it harder for developers to read the code. From 117a80e8d780ce46b23c793484fd44e26307da98 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Wed, 18 Jun 2025 17:19:55 +0100 Subject: [PATCH 100/340] Rust: Accept consistency check changes. --- .../PathResolutionConsistency.expected | 43 +++++++++++++------ .../PathResolutionConsistency.expected | 6 +-- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 767f3366008..05600781a29 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,30 +1,45 @@ +multipleMethodCallTargets +| main.rs:187:13:187:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | +| main.rs:187:13:187:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | +| main.rs:188:13:188:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | +| main.rs:188:13:188:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | +| main.rs:195:13:195:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | +| main.rs:195:13:195:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | +| main.rs:196:13:196:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | +| main.rs:196:13:196:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | +| main.rs:208:21:208:55 | ...::System.grow(...) | file://:0:0:0:0 | fn grow | +| main.rs:208:21:208:55 | ...::System.grow(...) | file://:0:0:0:0 | fn grow | +| main.rs:210:21:210:62 | ...::System.grow_zeroed(...) | file://:0:0:0:0 | fn grow_zeroed | +| main.rs:210:21:210:62 | ...::System.grow_zeroed(...) | file://:0:0:0:0 | fn grow_zeroed | +| main.rs:213:17:213:53 | ...::System.shrink(...) | file://:0:0:0:0 | fn shrink | +| main.rs:213:17:213:53 | ...::System.shrink(...) | file://:0:0:0:0 | fn shrink | multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index d326b510db4..24cad838282 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,14 +1,14 @@ multiplePathResolutions | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | From 77a92c062b946f5c467c83b475d41bf7aa983f91 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 18 Jun 2025 19:55:33 +0200 Subject: [PATCH 101/340] Rust: Add path resolution test --- .../PathResolutionConsistency.expected | 8 +- .../library-tests/path-resolution/main.rs | 9 +- .../path-resolution/path-resolution.expected | 147 +++++++++--------- 3 files changed, 85 insertions(+), 79 deletions(-) diff --git a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected index d242a227c11..c6d80a4c395 100644 --- a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected @@ -3,7 +3,7 @@ multiplePathResolutions | main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f | | main.rs:626:3:626:12 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | | main.rs:626:3:626:12 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:631:7:631:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| main.rs:631:7:631:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:634:7:634:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| main.rs:634:7:634:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| main.rs:632:7:632:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | +| main.rs:632:7:632:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| main.rs:635:7:635:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | +| main.rs:635:7:635:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | diff --git a/rust/ql/test/library-tests/path-resolution/main.rs b/rust/ql/test/library-tests/path-resolution/main.rs index c8c6f36ac3f..e06f1fce53b 100644 --- a/rust/ql/test/library-tests/path-resolution/main.rs +++ b/rust/ql/test/library-tests/path-resolution/main.rs @@ -627,7 +627,8 @@ extern crate self as zelf; fn z() {} // I122 struct AStruct {} //I123 -impl AStruct { // $ item=I123 +impl AStruct // $ item=I123 +{ #[proc_macro::add_suffix("on_type")] // $ item=add_suffix pub fn z() {} // I124 @@ -635,6 +636,10 @@ impl AStruct { // $ item=I123 pub fn z(&self) {} // I125 } +use std::{self as ztd}; // $ item=std + +fn use_ztd(x: ztd::string::String) {} // $ MISSING: item=String + fn main() { my::nested::nested1::nested2::f(); // $ item=I4 my::f(); // $ item=I38 @@ -667,6 +672,6 @@ fn main() { zelf::h(); // $ item=I25 z_changed(); // $ MISSING: item=I122 AStruct::z_on_type(); // $ MISSING: item=I124 - AStruct{} // $ item=I123 + AStruct {} // $ item=I123 .z_on_instance(); // MISSING: item=I125 } diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index fd712596821..9ab86dc5f04 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -61,7 +61,7 @@ resolvePath | main.rs:30:17:30:21 | super | main.rs:18:5:36:5 | mod m2 | | main.rs:30:17:30:24 | ...::f | main.rs:19:9:21:9 | fn f | | main.rs:33:17:33:17 | f | main.rs:19:9:21:9 | fn f | -| main.rs:40:9:40:13 | super | main.rs:1:1:672:2 | SourceFile | +| main.rs:40:9:40:13 | super | main.rs:1:1:677:2 | SourceFile | | main.rs:40:9:40:17 | ...::m1 | main.rs:13:1:37:1 | mod m1 | | main.rs:40:9:40:21 | ...::m2 | main.rs:18:5:36:5 | mod m2 | | main.rs:40:9:40:24 | ...::g | main.rs:23:9:27:9 | fn g | @@ -73,7 +73,7 @@ resolvePath | main.rs:61:17:61:19 | Foo | main.rs:59:9:59:21 | struct Foo | | main.rs:64:13:64:15 | Foo | main.rs:53:5:53:17 | struct Foo | | main.rs:66:5:66:5 | f | main.rs:55:5:62:5 | fn f | -| main.rs:68:5:68:8 | self | main.rs:1:1:672:2 | SourceFile | +| main.rs:68:5:68:8 | self | main.rs:1:1:677:2 | SourceFile | | main.rs:68:5:68:11 | ...::i | main.rs:71:1:83:1 | fn i | | main.rs:74:13:74:15 | Foo | main.rs:48:1:48:13 | struct Foo | | main.rs:78:16:78:18 | i32 | {EXTERNAL LOCATION} | struct i32 | @@ -88,7 +88,7 @@ resolvePath | main.rs:87:57:87:66 | ...::g | my2/nested2.rs:7:9:9:9 | fn g | | main.rs:87:80:87:86 | nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | | main.rs:100:5:100:22 | f_defined_in_macro | main.rs:99:18:99:42 | fn f_defined_in_macro | -| main.rs:117:13:117:17 | super | main.rs:1:1:672:2 | SourceFile | +| main.rs:117:13:117:17 | super | main.rs:1:1:677:2 | SourceFile | | main.rs:117:13:117:21 | ...::m5 | main.rs:103:1:107:1 | mod m5 | | main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f | | main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f | @@ -270,75 +270,76 @@ resolvePath | main.rs:626:3:626:12 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | | main.rs:626:3:626:24 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | | main.rs:630:6:630:12 | AStruct | main.rs:629:1:629:17 | struct AStruct | -| main.rs:631:7:631:16 | proc_macro | {EXTERNAL LOCATION} | Crate(proc_macro@0.0.0) | -| main.rs:631:7:631:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:631:7:631:28 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | -| main.rs:634:7:634:16 | proc_macro | {EXTERNAL LOCATION} | Crate(proc_macro@0.0.0) | -| main.rs:634:7:634:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:634:7:634:28 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | -| main.rs:639:5:639:6 | my | main.rs:1:1:1:7 | mod my | -| main.rs:639:5:639:14 | ...::nested | my.rs:1:1:1:15 | mod nested | -| main.rs:639:5:639:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 | -| main.rs:639:5:639:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 | -| main.rs:639:5:639:35 | ...::f | my/nested.rs:3:9:5:9 | fn f | -| main.rs:640:5:640:6 | my | main.rs:1:1:1:7 | mod my | -| main.rs:640:5:640:9 | ...::f | my.rs:5:1:7:1 | fn f | -| main.rs:641:5:641:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | -| main.rs:641:5:641:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | -| main.rs:641:5:641:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | -| main.rs:641:5:641:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:642:5:642:5 | f | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:643:5:643:5 | g | my2/nested2.rs:7:9:9:9 | fn g | -| main.rs:644:5:644:9 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | -| main.rs:644:5:644:12 | ...::h | main.rs:50:1:69:1 | fn h | -| main.rs:645:5:645:6 | m1 | main.rs:13:1:37:1 | mod m1 | -| main.rs:645:5:645:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | -| main.rs:645:5:645:13 | ...::g | main.rs:23:9:27:9 | fn g | -| main.rs:646:5:646:6 | m1 | main.rs:13:1:37:1 | mod m1 | -| main.rs:646:5:646:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | -| main.rs:646:5:646:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 | -| main.rs:646:5:646:17 | ...::h | main.rs:30:27:34:13 | fn h | -| main.rs:647:5:647:6 | m4 | main.rs:39:1:46:1 | mod m4 | -| main.rs:647:5:647:9 | ...::i | main.rs:42:5:45:5 | fn i | -| main.rs:648:5:648:5 | h | main.rs:50:1:69:1 | fn h | -| main.rs:649:5:649:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f | -| main.rs:650:5:650:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g | -| main.rs:651:5:651:5 | j | main.rs:97:1:101:1 | fn j | -| main.rs:652:5:652:6 | m6 | main.rs:109:1:120:1 | mod m6 | -| main.rs:652:5:652:9 | ...::g | main.rs:114:5:119:5 | fn g | -| main.rs:653:5:653:6 | m7 | main.rs:122:1:141:1 | mod m7 | -| main.rs:653:5:653:9 | ...::f | main.rs:133:5:140:5 | fn f | -| main.rs:654:5:654:6 | m8 | main.rs:143:1:197:1 | mod m8 | -| main.rs:654:5:654:9 | ...::g | main.rs:181:5:196:5 | fn g | -| main.rs:655:5:655:6 | m9 | main.rs:199:1:207:1 | mod m9 | -| main.rs:655:5:655:9 | ...::f | main.rs:202:5:206:5 | fn f | -| main.rs:656:5:656:7 | m11 | main.rs:230:1:267:1 | mod m11 | -| main.rs:656:5:656:10 | ...::f | main.rs:235:5:238:5 | fn f | -| main.rs:657:5:657:7 | m15 | main.rs:298:1:352:1 | mod m15 | -| main.rs:657:5:657:10 | ...::f | main.rs:339:5:351:5 | fn f | -| main.rs:658:5:658:7 | m16 | main.rs:354:1:446:1 | mod m16 | -| main.rs:658:5:658:10 | ...::f | main.rs:421:5:445:5 | fn f | -| main.rs:659:5:659:7 | m17 | main.rs:448:1:478:1 | mod m17 | -| main.rs:659:5:659:10 | ...::f | main.rs:472:5:477:5 | fn f | -| main.rs:660:5:660:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 | -| main.rs:660:5:660:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f | -| main.rs:661:5:661:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 | -| main.rs:661:5:661:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f | -| main.rs:662:5:662:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 | -| main.rs:662:5:662:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f | -| main.rs:663:5:663:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f | -| main.rs:664:5:664:7 | m18 | main.rs:480:1:498:1 | mod m18 | -| main.rs:664:5:664:12 | ...::m19 | main.rs:485:5:497:5 | mod m19 | -| main.rs:664:5:664:17 | ...::m20 | main.rs:490:9:496:9 | mod m20 | -| main.rs:664:5:664:20 | ...::g | main.rs:491:13:495:13 | fn g | -| main.rs:665:5:665:7 | m23 | main.rs:527:1:552:1 | mod m23 | -| main.rs:665:5:665:10 | ...::f | main.rs:547:5:551:5 | fn f | -| main.rs:666:5:666:7 | m24 | main.rs:554:1:622:1 | mod m24 | -| main.rs:666:5:666:10 | ...::f | main.rs:608:5:621:5 | fn f | -| main.rs:667:5:667:8 | zelf | main.rs:0:0:0:0 | Crate(main@0.0.1) | -| main.rs:667:5:667:11 | ...::h | main.rs:50:1:69:1 | fn h | -| main.rs:669:5:669:11 | AStruct | main.rs:629:1:629:17 | struct AStruct | -| main.rs:670:5:670:11 | AStruct | main.rs:629:1:629:17 | struct AStruct | +| main.rs:632:7:632:16 | proc_macro | {EXTERNAL LOCATION} | Crate(proc_macro@0.0.0) | +| main.rs:632:7:632:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| main.rs:632:7:632:28 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | +| main.rs:635:7:635:16 | proc_macro | {EXTERNAL LOCATION} | Crate(proc_macro@0.0.0) | +| main.rs:635:7:635:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| main.rs:635:7:635:28 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | +| main.rs:639:5:639:7 | std | {EXTERNAL LOCATION} | Crate(std@0.0.0) | +| main.rs:644:5:644:6 | my | main.rs:1:1:1:7 | mod my | +| main.rs:644:5:644:14 | ...::nested | my.rs:1:1:1:15 | mod nested | +| main.rs:644:5:644:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 | +| main.rs:644:5:644:32 | ...::nested2 | my/nested.rs:2:5:11:5 | mod nested2 | +| main.rs:644:5:644:35 | ...::f | my/nested.rs:3:9:5:9 | fn f | +| main.rs:645:5:645:6 | my | main.rs:1:1:1:7 | mod my | +| main.rs:645:5:645:9 | ...::f | my.rs:5:1:7:1 | fn f | +| main.rs:646:5:646:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | +| main.rs:646:5:646:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | +| main.rs:646:5:646:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | +| main.rs:646:5:646:32 | ...::f | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:647:5:647:5 | f | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:648:5:648:5 | g | my2/nested2.rs:7:9:9:9 | fn g | +| main.rs:649:5:649:9 | crate | main.rs:0:0:0:0 | Crate(main@0.0.1) | +| main.rs:649:5:649:12 | ...::h | main.rs:50:1:69:1 | fn h | +| main.rs:650:5:650:6 | m1 | main.rs:13:1:37:1 | mod m1 | +| main.rs:650:5:650:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | +| main.rs:650:5:650:13 | ...::g | main.rs:23:9:27:9 | fn g | +| main.rs:651:5:651:6 | m1 | main.rs:13:1:37:1 | mod m1 | +| main.rs:651:5:651:10 | ...::m2 | main.rs:18:5:36:5 | mod m2 | +| main.rs:651:5:651:14 | ...::m3 | main.rs:29:9:35:9 | mod m3 | +| main.rs:651:5:651:17 | ...::h | main.rs:30:27:34:13 | fn h | +| main.rs:652:5:652:6 | m4 | main.rs:39:1:46:1 | mod m4 | +| main.rs:652:5:652:9 | ...::i | main.rs:42:5:45:5 | fn i | +| main.rs:653:5:653:5 | h | main.rs:50:1:69:1 | fn h | +| main.rs:654:5:654:11 | f_alias | my2/nested2.rs:3:9:5:9 | fn f | +| main.rs:655:5:655:11 | g_alias | my2/nested2.rs:7:9:9:9 | fn g | +| main.rs:656:5:656:5 | j | main.rs:97:1:101:1 | fn j | +| main.rs:657:5:657:6 | m6 | main.rs:109:1:120:1 | mod m6 | +| main.rs:657:5:657:9 | ...::g | main.rs:114:5:119:5 | fn g | +| main.rs:658:5:658:6 | m7 | main.rs:122:1:141:1 | mod m7 | +| main.rs:658:5:658:9 | ...::f | main.rs:133:5:140:5 | fn f | +| main.rs:659:5:659:6 | m8 | main.rs:143:1:197:1 | mod m8 | +| main.rs:659:5:659:9 | ...::g | main.rs:181:5:196:5 | fn g | +| main.rs:660:5:660:6 | m9 | main.rs:199:1:207:1 | mod m9 | +| main.rs:660:5:660:9 | ...::f | main.rs:202:5:206:5 | fn f | +| main.rs:661:5:661:7 | m11 | main.rs:230:1:267:1 | mod m11 | +| main.rs:661:5:661:10 | ...::f | main.rs:235:5:238:5 | fn f | +| main.rs:662:5:662:7 | m15 | main.rs:298:1:352:1 | mod m15 | +| main.rs:662:5:662:10 | ...::f | main.rs:339:5:351:5 | fn f | +| main.rs:663:5:663:7 | m16 | main.rs:354:1:446:1 | mod m16 | +| main.rs:663:5:663:10 | ...::f | main.rs:421:5:445:5 | fn f | +| main.rs:664:5:664:7 | m17 | main.rs:448:1:478:1 | mod m17 | +| main.rs:664:5:664:10 | ...::f | main.rs:472:5:477:5 | fn f | +| main.rs:665:5:665:11 | nested6 | my2/nested2.rs:14:5:18:5 | mod nested6 | +| main.rs:665:5:665:14 | ...::f | my2/nested2.rs:15:9:17:9 | fn f | +| main.rs:666:5:666:11 | nested8 | my2/nested2.rs:22:5:26:5 | mod nested8 | +| main.rs:666:5:666:14 | ...::f | my2/nested2.rs:23:9:25:9 | fn f | +| main.rs:667:5:667:7 | my3 | my2/mod.rs:12:1:12:12 | mod my3 | +| main.rs:667:5:667:10 | ...::f | my2/my3/mod.rs:1:1:5:1 | fn f | +| main.rs:668:5:668:12 | nested_f | my/my4/my5/mod.rs:1:1:3:1 | fn f | +| main.rs:669:5:669:7 | m18 | main.rs:480:1:498:1 | mod m18 | +| main.rs:669:5:669:12 | ...::m19 | main.rs:485:5:497:5 | mod m19 | +| main.rs:669:5:669:17 | ...::m20 | main.rs:490:9:496:9 | mod m20 | +| main.rs:669:5:669:20 | ...::g | main.rs:491:13:495:13 | fn g | +| main.rs:670:5:670:7 | m23 | main.rs:527:1:552:1 | mod m23 | +| main.rs:670:5:670:10 | ...::f | main.rs:547:5:551:5 | fn f | +| main.rs:671:5:671:7 | m24 | main.rs:554:1:622:1 | mod m24 | +| main.rs:671:5:671:10 | ...::f | main.rs:608:5:621:5 | fn f | +| main.rs:672:5:672:8 | zelf | main.rs:0:0:0:0 | Crate(main@0.0.1) | +| main.rs:672:5:672:11 | ...::h | main.rs:50:1:69:1 | fn h | +| main.rs:674:5:674:11 | AStruct | main.rs:629:1:629:17 | struct AStruct | +| main.rs:675:5:675:11 | AStruct | main.rs:629:1:629:17 | struct AStruct | | my2/mod.rs:5:5:5:11 | nested2 | my2/mod.rs:1:1:1:16 | mod nested2 | | my2/mod.rs:5:5:5:20 | ...::nested3 | my2/nested2.rs:1:1:11:1 | mod nested3 | | my2/mod.rs:5:5:5:29 | ...::nested4 | my2/nested2.rs:2:5:10:5 | mod nested4 | @@ -354,7 +355,7 @@ resolvePath | my2/my3/mod.rs:3:5:3:5 | g | my2/mod.rs:3:1:6:1 | fn g | | my2/my3/mod.rs:4:5:4:5 | h | main.rs:50:1:69:1 | fn h | | my2/my3/mod.rs:7:5:7:9 | super | my2/mod.rs:1:1:17:30 | SourceFile | -| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:672:2 | SourceFile | +| my2/my3/mod.rs:7:5:7:16 | ...::super | main.rs:1:1:677:2 | SourceFile | | my2/my3/mod.rs:7:5:7:19 | ...::h | main.rs:50:1:69:1 | fn h | | my2/my3/mod.rs:8:5:8:9 | super | my2/mod.rs:1:1:17:30 | SourceFile | | my2/my3/mod.rs:8:5:8:12 | ...::g | my2/mod.rs:3:1:6:1 | fn g | From 519e56f7527482a9465e5b51365d0beb73604a7e Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Wed, 18 Jun 2025 19:57:57 +0200 Subject: [PATCH 102/340] Rust: Path resolution for `crate::{self as foo}` --- rust/ql/lib/codeql/rust/internal/PathResolution.qll | 6 +++++- rust/ql/test/library-tests/path-resolution/main.rs | 2 +- .../library-tests/path-resolution/path-resolution.expected | 4 ++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index c10cdc0140e..f2c487598de 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -205,7 +205,11 @@ abstract class ItemNode extends Locatable { else result = this.getImmediateParentModule().getImmediateParentModule() or name = "self" and - if this instanceof Module or this instanceof Enum or this instanceof Struct + if + this instanceof Module or + this instanceof Enum or + this instanceof Struct or + this instanceof Crate then result = this else result = this.getImmediateParentModule() or diff --git a/rust/ql/test/library-tests/path-resolution/main.rs b/rust/ql/test/library-tests/path-resolution/main.rs index e06f1fce53b..cf848ba2687 100644 --- a/rust/ql/test/library-tests/path-resolution/main.rs +++ b/rust/ql/test/library-tests/path-resolution/main.rs @@ -638,7 +638,7 @@ impl AStruct // $ item=I123 use std::{self as ztd}; // $ item=std -fn use_ztd(x: ztd::string::String) {} // $ MISSING: item=String +fn use_ztd(x: ztd::string::String) {} // $ item=String fn main() { my::nested::nested1::nested2::f(); // $ item=I4 diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index 9ab86dc5f04..164852626db 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -277,6 +277,10 @@ resolvePath | main.rs:635:7:635:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | | main.rs:635:7:635:28 | ...::add_suffix | proc_macro.rs:4:1:12:1 | fn add_suffix | | main.rs:639:5:639:7 | std | {EXTERNAL LOCATION} | Crate(std@0.0.0) | +| main.rs:639:11:639:14 | self | {EXTERNAL LOCATION} | Crate(std@0.0.0) | +| main.rs:641:15:641:17 | ztd | {EXTERNAL LOCATION} | Crate(std@0.0.0) | +| main.rs:641:15:641:25 | ...::string | {EXTERNAL LOCATION} | mod string | +| main.rs:641:15:641:33 | ...::String | {EXTERNAL LOCATION} | struct String | | main.rs:644:5:644:6 | my | main.rs:1:1:1:7 | mod my | | main.rs:644:5:644:14 | ...::nested | my.rs:1:1:1:15 | mod nested | | main.rs:644:5:644:23 | ...::nested1 | my/nested.rs:1:1:17:1 | mod nested1 | From 5bc974afe49ee4d65e463cab9abf1e98e3e8e684 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 18 Jun 2025 23:59:04 +0100 Subject: [PATCH 103/340] Address review comments --- docs/query-help-style-guide.md | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/docs/query-help-style-guide.md b/docs/query-help-style-guide.md index 45cac9c7e0b..3ed9f439490 100644 --- a/docs/query-help-style-guide.md +++ b/docs/query-help-style-guide.md @@ -24,13 +24,19 @@ Query help files can be written in either a custom XML format (with a `.qhelp` e #### Markdown query help files -A Markdown query help file should use the following structure and section order: +A Markdown query help file should use the following structure and section order (note that the `Implementation notes` section is optional): -1. **Overview** (level 2 heading, `## Overview`) -2. **Recommendation** (level 2 heading, `## Recommendation`) -3. **Example** (level 2 heading, `## Example`) -4. **Implementation notes** (optional, level 2 heading, `## Implementation notes`) -5. **References** (level 2 heading, `## References`) +``` +## Overview + +## Recommendation + +## Example + +## Implementation notes + +## References +``` Each section should be clearly marked with the appropriate heading. See the other Markdown files in this repository for examples. @@ -147,6 +153,7 @@ More information on how to test your query help files can be found [within the d 1. The XML format allows for the contents of other files to be included in the output generated by processing the file, as mentioned in the section `Code examples`. This is not possible with the Markdown format. 2. When using the XML format, references are added to the output HTML file based on CWE tags, as mentioned in the section `Referencing potential security weaknesses`. +3. For custom queries and custom query packs, only the Markdown format is supported. ## Query help example From 88f668781dd90e8fed488c11a515206c3cda4cb3 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 10:24:39 +0200 Subject: [PATCH 104/340] Updated extended expected file after merge --- .../query-suite/javascript-code-quality-extended.qls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected index bf646822ddc..e1a6cb98325 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected @@ -7,3 +7,4 @@ ql/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql ql/javascript/ql/src/Quality/UnhandledErrorInStreamPipeline.ql ql/javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.ql ql/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +ql/javascript/ql/src/Statements/LoopIterationSkippedDueToShifting.ql From 8b2bb07140ba82725aebf4b7bfa0a7740fe91c7b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 10:27:57 +0200 Subject: [PATCH 105/340] Updated quality extended expected file after merge --- ...ascript-code-quality-extended.qls.expected | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected index bf646822ddc..0ee4ff2cf9c 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-quality-extended.qls.expected @@ -1,9 +1,98 @@ +ql/javascript/ql/src/AngularJS/DependencyMismatch.ql +ql/javascript/ql/src/AngularJS/DuplicateDependency.ql +ql/javascript/ql/src/AngularJS/IncompatibleService.ql +ql/javascript/ql/src/AngularJS/MissingExplicitInjection.ql +ql/javascript/ql/src/AngularJS/RepeatedInjection.ql +ql/javascript/ql/src/AngularJS/UseNgSrc.ql +ql/javascript/ql/src/DOM/DuplicateAttributes.ql +ql/javascript/ql/src/DOM/MalformedIdAttribute.ql +ql/javascript/ql/src/DOM/PseudoEval.ql +ql/javascript/ql/src/Declarations/ArgumentsRedefined.ql +ql/javascript/ql/src/Declarations/AssignmentToConst.ql +ql/javascript/ql/src/Declarations/ClobberingVarInit.ql +ql/javascript/ql/src/Declarations/ConflictingFunctions.ql +ql/javascript/ql/src/Declarations/DeadStoreOfLocal.ql +ql/javascript/ql/src/Declarations/DeadStoreOfProperty.ql +ql/javascript/ql/src/Declarations/DeclBeforeUse.ql +ql/javascript/ql/src/Declarations/DefaultArgumentReferencesNestedFunction.ql +ql/javascript/ql/src/Declarations/DuplicateVarDecl.ql ql/javascript/ql/src/Declarations/IneffectiveParameterType.ql +ql/javascript/ql/src/Declarations/MissingThisQualifier.ql +ql/javascript/ql/src/Declarations/MissingVarDecl.ql +ql/javascript/ql/src/Declarations/MixedStaticInstanceThisAccess.ql ql/javascript/ql/src/Declarations/SuspiciousMethodNameDeclaration.ql +ql/javascript/ql/src/Declarations/TemporalDeadZone.ql +ql/javascript/ql/src/Declarations/UniqueParameterNames.ql +ql/javascript/ql/src/Declarations/UniquePropertyNames.ql +ql/javascript/ql/src/Declarations/UnreachableMethodOverloads.ql +ql/javascript/ql/src/Declarations/UnusedVariable.ql +ql/javascript/ql/src/Expressions/ComparisonWithNaN.ql +ql/javascript/ql/src/Expressions/DuplicateCondition.ql +ql/javascript/ql/src/Expressions/DuplicateProperty.ql +ql/javascript/ql/src/Expressions/DuplicateSwitchCase.ql ql/javascript/ql/src/Expressions/ExprHasNoEffect.ql +ql/javascript/ql/src/Expressions/HeterogeneousComparison.ql +ql/javascript/ql/src/Expressions/ImplicitOperandConversion.ql ql/javascript/ql/src/Expressions/MissingAwait.ql +ql/javascript/ql/src/Expressions/MissingDotLengthInComparison.ql +ql/javascript/ql/src/Expressions/MissingSpaceInAppend.ql +ql/javascript/ql/src/Expressions/MisspelledVariableName.ql +ql/javascript/ql/src/Expressions/RedundantExpression.ql +ql/javascript/ql/src/Expressions/SelfAssignment.ql +ql/javascript/ql/src/Expressions/ShiftOutOfRange.ql +ql/javascript/ql/src/Expressions/StringInsteadOfRegex.ql +ql/javascript/ql/src/Expressions/SuspiciousInvocation.ql +ql/javascript/ql/src/Expressions/SuspiciousPropAccess.ql +ql/javascript/ql/src/Expressions/UnboundEventHandlerReceiver.ql +ql/javascript/ql/src/Expressions/UnclearOperatorPrecedence.ql +ql/javascript/ql/src/Expressions/UnknownDirective.ql +ql/javascript/ql/src/Expressions/UnneededDefensiveProgramming.ql +ql/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql +ql/javascript/ql/src/LanguageFeatures/BadTypeof.ql +ql/javascript/ql/src/LanguageFeatures/ConditionalComments.ql +ql/javascript/ql/src/LanguageFeatures/DeleteVar.ql +ql/javascript/ql/src/LanguageFeatures/ExpressionClosures.ql +ql/javascript/ql/src/LanguageFeatures/ForInComprehensionBlocks.ql +ql/javascript/ql/src/LanguageFeatures/IllegalInvocation.ql +ql/javascript/ql/src/LanguageFeatures/InconsistentNew.ql +ql/javascript/ql/src/LanguageFeatures/InvalidPrototype.ql +ql/javascript/ql/src/LanguageFeatures/LengthComparisonOffByOne.ql +ql/javascript/ql/src/LanguageFeatures/NonLinearPattern.ql +ql/javascript/ql/src/LanguageFeatures/PropertyWriteOnPrimitive.ql +ql/javascript/ql/src/LanguageFeatures/SemicolonInsertion.ql +ql/javascript/ql/src/LanguageFeatures/SetterReturn.ql ql/javascript/ql/src/LanguageFeatures/SpuriousArguments.ql +ql/javascript/ql/src/LanguageFeatures/StrictModeCallStackIntrospection.ql +ql/javascript/ql/src/LanguageFeatures/SyntaxError.ql ql/javascript/ql/src/LanguageFeatures/TemplateSyntaxInStringLiteral.ql +ql/javascript/ql/src/LanguageFeatures/ThisBeforeSuper.ql +ql/javascript/ql/src/LanguageFeatures/UnusedIndexVariable.ql +ql/javascript/ql/src/LanguageFeatures/WithStatement.ql +ql/javascript/ql/src/LanguageFeatures/YieldInNonGenerator.ql +ql/javascript/ql/src/NodeJS/InvalidExport.ql +ql/javascript/ql/src/NodeJS/MissingExports.ql ql/javascript/ql/src/Quality/UnhandledErrorInStreamPipeline.ql +ql/javascript/ql/src/React/DirectStateMutation.ql +ql/javascript/ql/src/React/InconsistentStateUpdate.ql +ql/javascript/ql/src/React/UnsupportedStateUpdateInLifecycleMethod.ql +ql/javascript/ql/src/React/UnusedOrUndefinedStateProperty.ql +ql/javascript/ql/src/RegExp/BackrefBeforeGroup.ql +ql/javascript/ql/src/RegExp/BackrefIntoNegativeLookahead.ql ql/javascript/ql/src/RegExp/DuplicateCharacterInCharacterClass.ql +ql/javascript/ql/src/RegExp/EmptyCharacterClass.ql ql/javascript/ql/src/RegExp/RegExpAlwaysMatches.ql +ql/javascript/ql/src/RegExp/UnboundBackref.ql +ql/javascript/ql/src/RegExp/UnmatchableCaret.ql +ql/javascript/ql/src/RegExp/UnmatchableDollar.ql +ql/javascript/ql/src/Statements/DanglingElse.ql +ql/javascript/ql/src/Statements/IgnoreArrayResult.ql +ql/javascript/ql/src/Statements/InconsistentLoopOrientation.ql +ql/javascript/ql/src/Statements/LabelInCase.ql +ql/javascript/ql/src/Statements/MisleadingIndentationAfterControlStmt.ql +ql/javascript/ql/src/Statements/ReturnAssignsLocal.ql +ql/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql +ql/javascript/ql/src/Statements/UnreachableStatement.ql +ql/javascript/ql/src/Statements/UseOfReturnlessFunction.ql +ql/javascript/ql/src/Statements/UselessComparisonTest.ql +ql/javascript/ql/src/Statements/UselessConditional.ql +ql/javascript/ql/src/Vue/ArrowMethodOnVueInstance.ql From 4b7c7c1c21a7bc5d2061075a791d6156894b83eb Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 10:22:30 +0100 Subject: [PATCH 106/340] Rust: Accept consistency check changes (again). --- .../CONSISTENCY/PathResolutionConsistency.expected | 14 +++++++------- .../CONSISTENCY/PathResolutionConsistency.expected | 6 +++--- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 05600781a29..739520afcbd 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -15,31 +15,31 @@ multipleMethodCallTargets | main.rs:213:17:213:53 | ...::System.shrink(...) | file://:0:0:0:0 | fn shrink | multiplePathResolutions | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index 24cad838282..d326b510db4 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,14 +1,14 @@ multiplePathResolutions | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | -| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | From a2ff045a7a6723faf35ab0d97977ae4e552c9b85 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 13 Jun 2025 16:53:47 +0100 Subject: [PATCH 107/340] Update tags for high precision quality queries --- go/ql/src/InconsistentCode/ConstantLengthComparison.ql | 5 ++++- .../src/InconsistentCode/InconsistentLoopOrientation.ql | 4 +++- go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql | 5 ++--- go/ql/src/InconsistentCode/MissingErrorCheck.ql | 8 ++++---- go/ql/src/InconsistentCode/MistypedExponentiation.ql | 5 ++++- .../src/InconsistentCode/UnhandledCloseWritableHandle.ql | 9 ++++----- .../InconsistentCode/WhitespaceContradictsPrecedence.ql | 5 +++-- go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql | 7 +++---- go/ql/src/RedundantCode/CompareIdenticalValues.ql | 4 +++- go/ql/src/RedundantCode/DeadStoreOfField.ql | 4 +++- go/ql/src/RedundantCode/DeadStoreOfLocal.ql | 4 +++- go/ql/src/RedundantCode/DuplicateBranches.ql | 3 ++- go/ql/src/RedundantCode/DuplicateCondition.ql | 3 ++- go/ql/src/RedundantCode/DuplicateSwitchCase.ql | 3 ++- go/ql/src/RedundantCode/ExprHasNoEffect.ql | 3 ++- go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql | 5 ++++- go/ql/src/RedundantCode/NegativeLengthCheck.ql | 6 ++++-- go/ql/src/RedundantCode/RedundantExpr.ql | 4 +++- go/ql/src/RedundantCode/RedundantRecover.ql | 5 +++-- go/ql/src/RedundantCode/SelfAssignment.ql | 4 +++- go/ql/src/RedundantCode/ShiftOutOfRange.ql | 4 +++- go/ql/src/RedundantCode/UnreachableStatement.ql | 3 ++- 22 files changed, 66 insertions(+), 37 deletions(-) diff --git a/go/ql/src/InconsistentCode/ConstantLengthComparison.ql b/go/ql/src/InconsistentCode/ConstantLengthComparison.ql index c60e093650f..d0bcec7a89c 100644 --- a/go/ql/src/InconsistentCode/ConstantLengthComparison.ql +++ b/go/ql/src/InconsistentCode/ConstantLengthComparison.ql @@ -5,7 +5,10 @@ * @kind problem * @problem.severity warning * @id go/constant-length-comparison - * @tags correctness + * @tags quality + * reliability + * correctness + * external/cwe/cwe-129 * @precision high */ diff --git a/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql b/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql index fa5051ed5c7..c200ea010b2 100644 --- a/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql +++ b/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql @@ -8,7 +8,9 @@ * @kind problem * @problem.severity error * @id go/inconsistent-loop-direction - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-835 * @precision very-high */ diff --git a/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql b/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql index 436eb8a8fe5..176e34bc9bb 100644 --- a/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql +++ b/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql @@ -5,10 +5,9 @@ * @kind problem * @problem.severity error * @id go/index-out-of-bounds - * @tags reliability + * @tags quality + * reliability * correctness - * logic - * quality * external/cwe/cwe-193 * @precision high */ diff --git a/go/ql/src/InconsistentCode/MissingErrorCheck.ql b/go/ql/src/InconsistentCode/MissingErrorCheck.ql index 9acd7e13602..8e277c6ae74 100644 --- a/go/ql/src/InconsistentCode/MissingErrorCheck.ql +++ b/go/ql/src/InconsistentCode/MissingErrorCheck.ql @@ -5,10 +5,10 @@ * @kind problem * @problem.severity warning * @id go/missing-error-check - * @tags reliability - * correctness - * logic - * quality + * @tags quality + * reliability + * error-handling + * external/cwe/cwe-252 * @precision high */ diff --git a/go/ql/src/InconsistentCode/MistypedExponentiation.ql b/go/ql/src/InconsistentCode/MistypedExponentiation.ql index 989f536f3a5..b445a713ce6 100644 --- a/go/ql/src/InconsistentCode/MistypedExponentiation.ql +++ b/go/ql/src/InconsistentCode/MistypedExponentiation.ql @@ -4,7 +4,10 @@ * @kind problem * @problem.severity warning * @id go/mistyped-exponentiation - * @tags correctness + * @tags quality + * reliability + * correctness + * external/cwe/cwe-480 * @precision high */ diff --git a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql index 051e4644cc7..d3210c48011 100644 --- a/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql +++ b/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql @@ -7,11 +7,10 @@ * @problem.severity warning * @precision high * @id go/unhandled-writable-file-close - * @tags maintainability - * correctness - * call - * defer - * quality + * @tags quality + * reliability + * error-handling + * external/cwe/cwe-252 */ import go diff --git a/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql b/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql index f2303cf08a6..7e2846cf6b2 100644 --- a/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql +++ b/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql @@ -1,11 +1,12 @@ /** * @name Whitespace contradicts operator precedence * @description Nested expressions where the formatting contradicts the grouping enforced by operator precedence - * are difficult to read and may even indicate a bug. + * are difficult to read and may indicate a bug. * @kind problem * @problem.severity warning * @id go/whitespace-contradicts-precedence - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-783 * @precision very-high diff --git a/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql b/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql index fac236c7f03..8c6fcab7d28 100644 --- a/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql +++ b/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql @@ -4,10 +4,9 @@ * @kind problem * @problem.severity warning * @id go/unexpected-nil-value - * @tags reliability - * correctness - * logic - * quality + * @tags quality + * reliability + * error-handling * @precision high */ diff --git a/go/ql/src/RedundantCode/CompareIdenticalValues.ql b/go/ql/src/RedundantCode/CompareIdenticalValues.ql index cd4d9d6dbfa..43be5338735 100644 --- a/go/ql/src/RedundantCode/CompareIdenticalValues.ql +++ b/go/ql/src/RedundantCode/CompareIdenticalValues.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id go/comparison-of-identical-expressions - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-570 * external/cwe/cwe-571 * @precision very-high diff --git a/go/ql/src/RedundantCode/DeadStoreOfField.ql b/go/ql/src/RedundantCode/DeadStoreOfField.ql index edc1d62cb00..be3a77d3ac7 100644 --- a/go/ql/src/RedundantCode/DeadStoreOfField.ql +++ b/go/ql/src/RedundantCode/DeadStoreOfField.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id go/useless-assignment-to-field - * @tags maintainability + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-563 * @precision very-high */ diff --git a/go/ql/src/RedundantCode/DeadStoreOfLocal.ql b/go/ql/src/RedundantCode/DeadStoreOfLocal.ql index d6e7351a76d..3e3642f92db 100644 --- a/go/ql/src/RedundantCode/DeadStoreOfLocal.ql +++ b/go/ql/src/RedundantCode/DeadStoreOfLocal.ql @@ -5,7 +5,9 @@ * @kind problem * @problem.severity warning * @id go/useless-assignment-to-local - * @tags maintainability + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-563 * @precision very-high */ diff --git a/go/ql/src/RedundantCode/DuplicateBranches.ql b/go/ql/src/RedundantCode/DuplicateBranches.ql index c6aa7523e28..589aa55246c 100644 --- a/go/ql/src/RedundantCode/DuplicateBranches.ql +++ b/go/ql/src/RedundantCode/DuplicateBranches.ql @@ -6,7 +6,8 @@ * @problem.severity warning * @precision very-high * @id go/duplicate-branches - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-561 */ diff --git a/go/ql/src/RedundantCode/DuplicateCondition.ql b/go/ql/src/RedundantCode/DuplicateCondition.ql index fb031044e47..e0ea9798043 100644 --- a/go/ql/src/RedundantCode/DuplicateCondition.ql +++ b/go/ql/src/RedundantCode/DuplicateCondition.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id go/duplicate-condition - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-561 * @precision very-high diff --git a/go/ql/src/RedundantCode/DuplicateSwitchCase.ql b/go/ql/src/RedundantCode/DuplicateSwitchCase.ql index 3096f3bef94..b10ed6a794c 100644 --- a/go/ql/src/RedundantCode/DuplicateSwitchCase.ql +++ b/go/ql/src/RedundantCode/DuplicateSwitchCase.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity error * @id go/duplicate-switch-case - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-561 * @precision very-high diff --git a/go/ql/src/RedundantCode/ExprHasNoEffect.ql b/go/ql/src/RedundantCode/ExprHasNoEffect.ql index 5b722cfdbf7..ba879054faf 100644 --- a/go/ql/src/RedundantCode/ExprHasNoEffect.ql +++ b/go/ql/src/RedundantCode/ExprHasNoEffect.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id go/useless-expression - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-480 * external/cwe/cwe-561 diff --git a/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql b/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql index 8fe764ee88f..c5aeb287358 100644 --- a/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql +++ b/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql @@ -4,7 +4,10 @@ * @kind problem * @problem.severity warning * @id go/impossible-interface-nil-check - * @tags correctness + * @tags quality + * reliability + * correctness + * external/cwe/cwe-570 * @precision high */ diff --git a/go/ql/src/RedundantCode/NegativeLengthCheck.ql b/go/ql/src/RedundantCode/NegativeLengthCheck.ql index adac6fe78d9..443ec37154f 100644 --- a/go/ql/src/RedundantCode/NegativeLengthCheck.ql +++ b/go/ql/src/RedundantCode/NegativeLengthCheck.ql @@ -8,8 +8,10 @@ * @problem.severity warning * @precision very-high * @id go/negative-length-check - * @tags correctness - * quality + * @tags quality + * reliability + * correctness + * external/cwe/cwe-571 */ import go diff --git a/go/ql/src/RedundantCode/RedundantExpr.ql b/go/ql/src/RedundantCode/RedundantExpr.ql index c4b0ea912f5..49cc06125e3 100644 --- a/go/ql/src/RedundantCode/RedundantExpr.ql +++ b/go/ql/src/RedundantCode/RedundantExpr.ql @@ -6,7 +6,9 @@ * @kind problem * @problem.severity warning * @id go/redundant-operation - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-480 * external/cwe/cwe-561 * @precision very-high diff --git a/go/ql/src/RedundantCode/RedundantRecover.ql b/go/ql/src/RedundantCode/RedundantRecover.ql index 08fc06727e5..40d415257e0 100644 --- a/go/ql/src/RedundantCode/RedundantRecover.ql +++ b/go/ql/src/RedundantCode/RedundantRecover.ql @@ -6,9 +6,10 @@ * @kind problem * @problem.severity warning * @id go/redundant-recover - * @tags maintainability + * @tags quality + * reliability * correctness - * quality + * external/cwe/cwe-248 * @precision high */ diff --git a/go/ql/src/RedundantCode/SelfAssignment.ql b/go/ql/src/RedundantCode/SelfAssignment.ql index ca1c9614751..2b4701f2f7d 100644 --- a/go/ql/src/RedundantCode/SelfAssignment.ql +++ b/go/ql/src/RedundantCode/SelfAssignment.ql @@ -4,7 +4,9 @@ * @kind problem * @problem.severity warning * @id go/redundant-assignment - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-480 * external/cwe/cwe-561 * @precision high diff --git a/go/ql/src/RedundantCode/ShiftOutOfRange.ql b/go/ql/src/RedundantCode/ShiftOutOfRange.ql index 275cae3bbeb..942a9cdbdab 100644 --- a/go/ql/src/RedundantCode/ShiftOutOfRange.ql +++ b/go/ql/src/RedundantCode/ShiftOutOfRange.ql @@ -6,7 +6,9 @@ * @problem.severity warning * @id go/shift-out-of-range * @precision very-high - * @tags correctness + * @tags quality + * reliability + * correctness * external/cwe/cwe-197 */ diff --git a/go/ql/src/RedundantCode/UnreachableStatement.ql b/go/ql/src/RedundantCode/UnreachableStatement.ql index e67b3c4915f..c177705a86f 100644 --- a/go/ql/src/RedundantCode/UnreachableStatement.ql +++ b/go/ql/src/RedundantCode/UnreachableStatement.ql @@ -5,7 +5,8 @@ * @kind problem * @problem.severity warning * @id go/unreachable-statement - * @tags maintainability + * @tags quality + * reliability * correctness * external/cwe/cwe-561 * @precision very-high From a26610a05cb284b17e98ce1bef478201f32afdae Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Fri, 13 Jun 2025 17:07:21 +0100 Subject: [PATCH 108/340] Add change note --- .../2025-06-13-add-tags-to-quality-queries.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md diff --git a/go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md b/go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md new file mode 100644 index 00000000000..9233cb05e80 --- /dev/null +++ b/go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md @@ -0,0 +1,22 @@ +--- +category: queryMetadata +--- +* The tag `quality` has been added to multiple Go quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* The tag `external/cwe/cwe-129` has been added to `go/constant-length-comparison`. +* The tag `external/cwe/cwe-193` has been added to `go/index-out-of-bounds`. +* The tag `external/cwe/cwe-197` has been added to `go/shift-out-of-range`. +* The tag `external/cwe/cwe-248` has been added to `go/redundant-recover`. +* The tag `external/cwe/cwe-252` has been added to `go/missing-error-check` and `go/unhandled-writable-file-close`. +* The tag `external/cwe/cwe-480` has been added to `go/mistyped-exponentiation`. +* The tag `external/cwe/cwe-570` has been added to `go/impossible-interface-nil-check` and `go/comparison-of-identical-expressions`. +* The tag `external/cwe/cwe-571` has been added to `go/negative-length-check` and `go/comparison-of-identical-expressions`. +* The tag `external/cwe/cwe-783` has been added to `go/whitespace-contradicts-precedence`. +* The tag `external/cwe/cwe-835` has been added to `go/inconsistent-loop-direction`. +* The tag `error-handling` has been added to `go/missing-error-check`, `go/unhandled-writable-file-close`, and `go/unexpected-nil-value`. +* The tag `useless-code` has been added to `go/useless-assignment-to-field`, `go/useless-assignment-to-local`, `go/useless-expression`, and `go/unreachable-statement`. +* The tag `logic` has been removed from `go/index-out-of-bounds` and `go/unexpected-nil-value`. +* The tags `call` and `defer` have been removed from `go/unhandled-writable-file-close`. +* The tags `correctness` and `quality` have been reordered in `go/missing-error-check` and `go/unhandled-writable-file-close`. +* The tag `maintainability` has been changed to `reliability` for `go/unhandled-writable-file-close`. +* The tag order has been standardized to have `quality` first, followed by the top-level category (`reliability` or `maintainability`), then sub-category tags, and finally CWE tags. +* The description text has been updated in `go/whitespace-contradicts-precedence` to change "may even indicate" to "may indicate". From ebd917600d9672c3b712eda6edb9c83c90492c12 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Mon, 16 Jun 2025 10:04:32 +0100 Subject: [PATCH 109/340] Update quality suite integration test --- .../go-code-quality-extended.qls.expected | 16 ++++++++++++++++ .../query-suite/go-code-quality.qls.expected | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/go/ql/integration-tests/query-suite/go-code-quality-extended.qls.expected b/go/ql/integration-tests/query-suite/go-code-quality-extended.qls.expected index 236c285ece0..7eb72f2abc2 100644 --- a/go/ql/integration-tests/query-suite/go-code-quality-extended.qls.expected +++ b/go/ql/integration-tests/query-suite/go-code-quality-extended.qls.expected @@ -1,6 +1,22 @@ +ql/go/ql/src/InconsistentCode/ConstantLengthComparison.ql +ql/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql ql/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql ql/go/ql/src/InconsistentCode/MissingErrorCheck.ql +ql/go/ql/src/InconsistentCode/MistypedExponentiation.ql ql/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql +ql/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql ql/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql +ql/go/ql/src/RedundantCode/CompareIdenticalValues.ql +ql/go/ql/src/RedundantCode/DeadStoreOfField.ql +ql/go/ql/src/RedundantCode/DeadStoreOfLocal.ql +ql/go/ql/src/RedundantCode/DuplicateBranches.ql +ql/go/ql/src/RedundantCode/DuplicateCondition.ql +ql/go/ql/src/RedundantCode/DuplicateSwitchCase.ql +ql/go/ql/src/RedundantCode/ExprHasNoEffect.ql +ql/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql ql/go/ql/src/RedundantCode/NegativeLengthCheck.ql +ql/go/ql/src/RedundantCode/RedundantExpr.ql ql/go/ql/src/RedundantCode/RedundantRecover.ql +ql/go/ql/src/RedundantCode/SelfAssignment.ql +ql/go/ql/src/RedundantCode/ShiftOutOfRange.ql +ql/go/ql/src/RedundantCode/UnreachableStatement.ql diff --git a/go/ql/integration-tests/query-suite/go-code-quality.qls.expected b/go/ql/integration-tests/query-suite/go-code-quality.qls.expected index 236c285ece0..7eb72f2abc2 100644 --- a/go/ql/integration-tests/query-suite/go-code-quality.qls.expected +++ b/go/ql/integration-tests/query-suite/go-code-quality.qls.expected @@ -1,6 +1,22 @@ +ql/go/ql/src/InconsistentCode/ConstantLengthComparison.ql +ql/go/ql/src/InconsistentCode/InconsistentLoopOrientation.ql ql/go/ql/src/InconsistentCode/LengthComparisonOffByOne.ql ql/go/ql/src/InconsistentCode/MissingErrorCheck.ql +ql/go/ql/src/InconsistentCode/MistypedExponentiation.ql ql/go/ql/src/InconsistentCode/UnhandledCloseWritableHandle.ql +ql/go/ql/src/InconsistentCode/WhitespaceContradictsPrecedence.ql ql/go/ql/src/InconsistentCode/WrappedErrorAlwaysNil.ql +ql/go/ql/src/RedundantCode/CompareIdenticalValues.ql +ql/go/ql/src/RedundantCode/DeadStoreOfField.ql +ql/go/ql/src/RedundantCode/DeadStoreOfLocal.ql +ql/go/ql/src/RedundantCode/DuplicateBranches.ql +ql/go/ql/src/RedundantCode/DuplicateCondition.ql +ql/go/ql/src/RedundantCode/DuplicateSwitchCase.ql +ql/go/ql/src/RedundantCode/ExprHasNoEffect.ql +ql/go/ql/src/RedundantCode/ImpossibleInterfaceNilCheck.ql ql/go/ql/src/RedundantCode/NegativeLengthCheck.ql +ql/go/ql/src/RedundantCode/RedundantExpr.ql ql/go/ql/src/RedundantCode/RedundantRecover.ql +ql/go/ql/src/RedundantCode/SelfAssignment.ql +ql/go/ql/src/RedundantCode/ShiftOutOfRange.ql +ql/go/ql/src/RedundantCode/UnreachableStatement.ql From 2818e6ee17228c96524ef30b612ebd9309e74971 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 11:57:49 +0200 Subject: [PATCH 110/340] MaD generator: switch to snake_case fields --- .../models-as-data/bulk_generate_mad.py | 6 +- misc/scripts/models-as-data/generate_mad.py | 64 +++++++++---------- 2 files changed, 32 insertions(+), 38 deletions(-) diff --git a/misc/scripts/models-as-data/bulk_generate_mad.py b/misc/scripts/models-as-data/bulk_generate_mad.py index c9218048f1c..3b7465f5173 100755 --- a/misc/scripts/models-as-data/bulk_generate_mad.py +++ b/misc/scripts/models-as-data/bulk_generate_mad.py @@ -236,9 +236,9 @@ def generate_models(config, args, project: Project, database_dir: str) -> None: language = config["language"] generator = mad.Generator(language) - generator.generateSinks = should_generate_sinks(project) - generator.generateSources = should_generate_sources(project) - generator.generateSummaries = should_generate_summaries(project) + generator.with_sinks = should_generate_sinks(project) + generator.with_sources = should_generate_sources(project) + generator.with_summaries = should_generate_summaries(project) generator.threads = args.codeql_threads generator.ram = args.codeql_ram generator.setenvironment(database=database_dir, folder=name) diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index 2f2b74cf3f7..80e0385da6d 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -43,12 +43,12 @@ Requirements: `codeql` should appear on your path.""" class Generator: - generateSinks = False - generateSources = False - generateSummaries = False - generateNeutrals = False - generateTypeBasedSummaries = False - dryRun = False + with_sinks = False + with_sources = False + with_summaries = False + with_neutrals = False + with_typebased_summaries = False + dry_run = False dirname = "modelgenerator" ram = None threads = 0 @@ -65,14 +65,14 @@ class Generator: ) self.database = database or self.database self.folder = folder or self.folder - self.generatedFrameworks = os.path.join( + self.generated_frameworks = os.path.join( self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{self.folder}" ) self.workDir = tempfile.mkdtemp() if self.ram is None: threads = self.threads if self.threads > 0 else os.cpu_count() self.ram = 2048 * threads - os.makedirs(self.generatedFrameworks, exist_ok=True) + os.makedirs(self.generated_frameworks, exist_ok=True) @staticmethod def make(): @@ -97,37 +97,31 @@ class Generator: "--with-sinks", action="store_true", help="Generate sink models", - dest="generateSinks", ) p.add_argument( "--with-sources", action="store_true", help="Generate source models", - dest="generateSources", ) p.add_argument( "--with-summaries", action="store_true", help="Generate summary models", - dest="generateSummaries", ) p.add_argument( "--with-neutrals", action="store_true", help="Generate neutral models", - dest="generateNeutrals", ) p.add_argument( "--with-typebased-summaries", action="store_true", help="Generate type-based summary models (experimental)", - dest="generateTypeBasedSummaries", ) p.add_argument( "--dry-run", action="store_true", help="Do not write the generated files, just print them to stdout", - dest="dryRun", ) p.add_argument( "--threads", @@ -143,16 +137,16 @@ class Generator: generator = p.parse_args(namespace=Generator()) if ( - not generator.generateSinks - and not generator.generateSources - and not generator.generateSummaries - and not generator.generateNeutrals - and not generator.generateTypeBasedSummaries + not generator.with_sinks + and not generator.with_sources + and not generator.with_summaries + and not generator.with_neutrals + and not generator.with_typebased_summaries ): - generator.generateSinks = True - generator.generateSources = True - generator.generateSummaries = True - generator.generateNeutrals = True + generator.with_sinks = True + generator.with_sources = True + generator.with_summaries = True + generator.with_neutrals = True generator.setenvironment() return generator @@ -197,25 +191,25 @@ class Generator: def makeContent(self): summaryAddsTo = {} - if self.generateSummaries: + if self.with_summaries: summaryAddsTo = self.getAddsTo( "CaptureSummaryModels.ql", helpers.summaryModelPredicate ) sinkAddsTo = {} - if self.generateSinks: + if self.with_sinks: sinkAddsTo = self.getAddsTo( "CaptureSinkModels.ql", helpers.sinkModelPredicate ) sourceAddsTo = {} - if self.generateSources: + if self.with_sources: sourceAddsTo = self.getAddsTo( "CaptureSourceModels.ql", helpers.sourceModelPredicate ) neutralAddsTo = {} - if self.generateNeutrals: + if self.with_neutrals: neutralAddsTo = self.getAddsTo( "CaptureNeutralModels.ql", helpers.neutralModelPredicate ) @@ -223,7 +217,7 @@ class Generator: return helpers.merge(summaryAddsTo, sinkAddsTo, sourceAddsTo, neutralAddsTo) def makeTypeBasedContent(self): - if self.generateTypeBasedSummaries: + if self.with_typebased_summaries: typeBasedSummaryAddsTo = self.getAddsTo( "CaptureTypeBasedSummaryModels.ql", helpers.summaryModelPredicate ) @@ -242,7 +236,7 @@ extensions: sanitizedEntry = re.sub( r"-+", "-", entry.replace("/", "-").replace(":", "-") ) - target = os.path.join(self.generatedFrameworks, sanitizedEntry + extension) + target = os.path.join(self.generated_frameworks, sanitizedEntry + extension) with open(target, "w") as f: f.write(extensionTemplate.format(extensions[entry])) print("Models as data extensions written to " + target) @@ -251,19 +245,19 @@ extensions: content = self.makeContent() typeBasedContent = self.makeTypeBasedContent() - if self.dryRun: + if self.dry_run: print("Models as data extensions generated, but not written to file.") sys.exit(0) if ( - self.generateSinks - or self.generateSources - or self.generateSummaries - or self.generateNeutrals + self.with_sinks + or self.with_sources + or self.with_summaries + or self.with_neutrals ): self.save(content, ".model.yml") - if self.generateTypeBasedSummaries: + if self.with_typebased_summaries: self.save(typeBasedContent, ".typebased.model.yml") From 1622d08624a8dfe760f8572ac5716b8684680172 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:12:57 +0100 Subject: [PATCH 111/340] Rust: Add inferArrayExprType. --- .../codeql/rust/internal/TypeInference.qll | 9 ++++++ .../test/library-tests/type-inference/main.rs | 4 +-- .../type-inference/type-inference.expected | 31 +++++++++++++++++++ 3 files changed, 42 insertions(+), 2 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index c0c80a81925..9b2ef173c38 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1102,6 +1102,12 @@ private class Vec extends Struct { } } +/** + * Gets the root type of the array expression `ae`. + */ +pragma[nomagic] +private Type inferArrayExprType(ArrayExpr ae) { exists(ae) and result = TArrayType() } + /** * According to [the Rust reference][1]: _"array and slice-typed expressions * can be indexed with a `usize` index ... For other types an index expression @@ -1595,6 +1601,9 @@ private module Cached { or result = inferAwaitExprType(n, path) or + result = inferArrayExprType(n) and + path.isEmpty() + or result = inferIndexExprType(n, path) or result = inferForLoopExprType(n, path) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 2b7c91db955..663b560957e 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1890,8 +1890,8 @@ mod loops { // for loops with arrays for i in [1, 2, 3] { } // $ type=i:i32 - for i in [1, 2, 3].map(|x| x + 1) { } // $ MISSING: type=i:i32 - for i in [1, 2, 3].into_iter() { } // $ MISSING: type=i:i32 + for i in [1, 2, 3].map(|x| x + 1) { } // $ method=map MISSING: type=i:i32 + for i in [1, 2, 3].into_iter() { } // $ method=into_iter MISSING: type=i:i32 let vals1 = [1u8, 2, 3]; // $ MISSING: type=vals1:[u8; 3] for u in vals1 { } // $ type=u:u8 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 5682e30a1a6..5e049711e0f 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2698,21 +2698,27 @@ inferType | main.rs:1885:13:1885:13 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1885:13:1885:13 | 1 | | {EXTERNAL LOCATION} | i64 | | main.rs:1892:13:1892:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:1892:18:1892:26 | [...] | | file://:0:0:0:0 | [] | | main.rs:1892:18:1892:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1892:19:1892:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1892:22:1892:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1892:25:1892:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1893:18:1893:26 | [...] | | file://:0:0:0:0 | [] | | main.rs:1893:18:1893:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1893:18:1893:41 | ... .map(...) | | file://:0:0:0:0 | [] | | main.rs:1893:19:1893:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1893:22:1893:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1893:25:1893:25 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1893:40:1893:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1894:18:1894:26 | [...] | | file://:0:0:0:0 | [] | | main.rs:1894:18:1894:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1894:19:1894:19 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1894:22:1894:22 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1894:25:1894:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:13:1896:17 | vals1 | | file://:0:0:0:0 | [] | | main.rs:1896:13:1896:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1896:13:1896:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1896:21:1896:31 | [...] | | file://:0:0:0:0 | [] | | main.rs:1896:21:1896:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1896:21:1896:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | | main.rs:1896:22:1896:24 | 1u8 | | {EXTERNAL LOCATION} | i32 | @@ -2723,13 +2729,17 @@ inferType | main.rs:1896:30:1896:30 | 3 | | {EXTERNAL LOCATION} | u8 | | main.rs:1897:13:1897:13 | u | | {EXTERNAL LOCATION} | i32 | | main.rs:1897:13:1897:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1897:18:1897:22 | vals1 | | file://:0:0:0:0 | [] | | main.rs:1897:18:1897:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1897:18:1897:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1899:13:1899:17 | vals2 | | file://:0:0:0:0 | [] | | main.rs:1899:13:1899:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1899:21:1899:29 | [1u16; 3] | | file://:0:0:0:0 | [] | | main.rs:1899:21:1899:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1899:22:1899:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | | main.rs:1899:28:1899:28 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:1900:13:1900:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1900:18:1900:22 | vals2 | | file://:0:0:0:0 | [] | | main.rs:1900:18:1900:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1902:13:1902:17 | vals3 | | file://:0:0:0:0 | [] | | main.rs:1902:13:1902:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | @@ -2764,20 +2774,29 @@ inferType | main.rs:1906:18:1906:22 | vals4 | | file://:0:0:0:0 | [] | | main.rs:1906:18:1906:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1906:18:1906:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1908:13:1908:24 | mut strings1 | | file://:0:0:0:0 | [] | | main.rs:1908:13:1908:24 | mut strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1908:28:1908:48 | [...] | | file://:0:0:0:0 | [] | | main.rs:1908:28:1908:48 | [...] | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1908:29:1908:33 | "foo" | | {EXTERNAL LOCATION} | str | | main.rs:1908:36:1908:40 | "bar" | | {EXTERNAL LOCATION} | str | | main.rs:1908:43:1908:47 | "baz" | | {EXTERNAL LOCATION} | str | | main.rs:1909:18:1909:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:1909:18:1909:26 | &strings1 | &T | file://:0:0:0:0 | [] | | main.rs:1909:18:1909:26 | &strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1909:19:1909:26 | strings1 | | file://:0:0:0:0 | [] | | main.rs:1909:19:1909:26 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1910:18:1910:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:1910:18:1910:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | | main.rs:1910:18:1910:30 | &mut strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1910:23:1910:30 | strings1 | | file://:0:0:0:0 | [] | | main.rs:1910:23:1910:30 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | | main.rs:1911:13:1911:13 | s | | {EXTERNAL LOCATION} | str | +| main.rs:1911:18:1911:25 | strings1 | | file://:0:0:0:0 | [] | | main.rs:1911:18:1911:25 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1913:13:1913:20 | strings2 | | file://:0:0:0:0 | [] | | main.rs:1913:13:1913:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1913:24:1913:86 | [...] | | file://:0:0:0:0 | [] | | main.rs:1913:24:1913:86 | [...] | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1913:25:1913:43 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1913:38:1913:42 | "foo" | | {EXTERNAL LOCATION} | str | @@ -2786,11 +2805,15 @@ inferType | main.rs:1913:67:1913:85 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1913:80:1913:84 | "baz" | | {EXTERNAL LOCATION} | str | | main.rs:1914:13:1914:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:1914:18:1914:25 | strings2 | | file://:0:0:0:0 | [] | | main.rs:1914:18:1914:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1916:13:1916:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1916:13:1916:20 | strings3 | &T | file://:0:0:0:0 | [] | | main.rs:1916:13:1916:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | | main.rs:1916:24:1916:87 | &... | | file://:0:0:0:0 | & | +| main.rs:1916:24:1916:87 | &... | &T | file://:0:0:0:0 | [] | | main.rs:1916:24:1916:87 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1916:25:1916:87 | [...] | | file://:0:0:0:0 | [] | | main.rs:1916:25:1916:87 | [...] | [T;...] | {EXTERNAL LOCATION} | String | | main.rs:1916:26:1916:44 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1916:39:1916:43 | "foo" | | {EXTERNAL LOCATION} | str | @@ -2799,19 +2822,24 @@ inferType | main.rs:1916:68:1916:86 | ...::from(...) | | {EXTERNAL LOCATION} | String | | main.rs:1916:81:1916:85 | "baz" | | {EXTERNAL LOCATION} | str | | main.rs:1917:18:1917:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1917:18:1917:25 | strings3 | &T | file://:0:0:0:0 | [] | | main.rs:1917:18:1917:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1919:13:1919:21 | callables | | file://:0:0:0:0 | [] | | main.rs:1919:13:1919:21 | callables | [T;...] | main.rs:1876:5:1877:5 | MyCallable | +| main.rs:1919:25:1919:81 | [...] | | file://:0:0:0:0 | [] | | main.rs:1919:25:1919:81 | [...] | [T;...] | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1919:26:1919:42 | ...::new(...) | | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1919:45:1919:61 | ...::new(...) | | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1919:64:1919:80 | ...::new(...) | | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1920:13:1920:13 | c | | main.rs:1876:5:1877:5 | MyCallable | +| main.rs:1920:18:1920:26 | callables | | file://:0:0:0:0 | [] | | main.rs:1920:18:1920:26 | callables | [T;...] | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1921:17:1921:22 | result | | {EXTERNAL LOCATION} | i64 | | main.rs:1921:26:1921:26 | c | | main.rs:1876:5:1877:5 | MyCallable | | main.rs:1921:26:1921:33 | c.call() | | {EXTERNAL LOCATION} | i64 | | main.rs:1926:18:1926:18 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1926:21:1926:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1927:18:1927:28 | [...] | | file://:0:0:0:0 | [] | | main.rs:1927:19:1927:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | | main.rs:1927:26:1927:27 | 10 | | {EXTERNAL LOCATION} | i32 | | main.rs:1929:13:1929:18 | range1 | | {EXTERNAL LOCATION} | Range | @@ -2825,6 +2853,7 @@ inferType | main.rs:1934:26:1934:26 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1934:29:1934:29 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1934:32:1934:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:21:1937:32 | [...] | | file://:0:0:0:0 | [] | | main.rs:1937:21:1937:32 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1937:21:1937:32 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | | main.rs:1937:22:1937:25 | 1u16 | | {EXTERNAL LOCATION} | i32 | @@ -2839,6 +2868,7 @@ inferType | main.rs:1940:21:1940:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | | main.rs:1940:21:1940:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | | main.rs:1940:21:1940:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1940:31:1940:42 | [...] | | file://:0:0:0:0 | [] | | main.rs:1940:31:1940:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1940:31:1940:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | | main.rs:1940:32:1940:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | @@ -2855,6 +2885,7 @@ inferType | main.rs:1943:13:1943:17 | vals6 | A | {EXTERNAL LOCATION} | Global | | main.rs:1943:13:1943:17 | vals6 | T | file://:0:0:0:0 | & | | main.rs:1943:13:1943:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1943:33:1943:44 | [...] | | file://:0:0:0:0 | [] | | main.rs:1943:33:1943:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | | main.rs:1943:33:1943:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | | main.rs:1943:33:1943:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | From f670fcb301d7ff9790b254888877b4633c592771 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:24:10 +0100 Subject: [PATCH 112/340] Rust: Add a Vec test case that we actually get (explicit type). --- .../test/library-tests/type-inference/main.rs | 7 +- .../type-inference/type-inference.expected | 245 ++++++++++-------- 2 files changed, 137 insertions(+), 115 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 663b560957e..c2ffdf57d34 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1934,8 +1934,11 @@ mod loops { let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec for i in vals3 { } // $ MISSING: type=i:i32 - let vals4 = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4:Vec - for u in vals4 { } // $ MISSING: type=u:u16 + let vals4a : Vec = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4a:Vec + for u in vals4a { } // $ type=u:u16 + + let vals4b = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4b:Vec + for u in vals4b { } // $ MISSING: type=u:u16 let vals5 = Vec::from([1u32, 2, 3]); // $ MISSING: type=vals5:Vec for u in vals5 { } // $ MISSING: type=u:u32 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 5e049711e0f..3cb687091d7 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2853,117 +2853,136 @@ inferType | main.rs:1934:26:1934:26 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1934:29:1934:29 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1934:32:1934:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:21:1937:32 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1937:21:1937:32 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:21:1937:32 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:22:1937:25 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:22:1937:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:28:1937:28 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:28:1937:28 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:31:1937:31 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:31:1937:31 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:13:1940:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1940:13:1940:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1940:13:1940:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1940:21:1940:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1940:21:1940:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1940:21:1940:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1940:31:1940:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1940:31:1940:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:31:1940:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1940:32:1940:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:32:1940:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1940:38:1940:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:38:1940:38 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1940:41:1940:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:41:1940:41 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1941:13:1941:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:1941:18:1941:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1941:18:1941:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1941:18:1941:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1943:13:1943:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1943:13:1943:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1943:13:1943:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1943:13:1943:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1943:33:1943:44 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1943:33:1943:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:33:1943:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1943:33:1943:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1943:33:1943:61 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:1943:33:1943:61 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:1943:33:1943:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1943:34:1943:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:34:1943:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1943:40:1943:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:40:1943:40 | 2 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1943:43:1943:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:43:1943:43 | 3 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1944:13:1944:13 | u | | file://:0:0:0:0 | & | -| main.rs:1944:13:1944:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:1944:18:1944:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1944:18:1944:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1944:18:1944:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1944:18:1944:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:13:1946:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1946:13:1946:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1946:25:1946:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1946:25:1946:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1947:9:1947:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1947:9:1947:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1947:20:1947:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1948:18:1948:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1948:18:1948:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1950:33:1950:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1950:36:1950:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1950:45:1950:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1950:48:1950:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1956:13:1956:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1956:13:1956:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1956:24:1956:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1956:24:1956:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1957:9:1957:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1957:9:1957:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1957:9:1957:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1957:21:1957:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1957:24:1957:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1957:24:1957:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1957:33:1957:37 | "one" | | {EXTERNAL LOCATION} | str | -| main.rs:1958:9:1958:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1958:9:1958:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1958:9:1958:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1958:21:1958:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1958:24:1958:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1958:24:1958:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1958:33:1958:37 | "two" | | {EXTERNAL LOCATION} | str | -| main.rs:1959:20:1959:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1959:20:1959:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1959:20:1959:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:1960:22:1960:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1960:22:1960:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1960:22:1960:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:1961:29:1961:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1961:29:1961:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1961:29:1961:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:1962:29:1962:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:1962:29:1962:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:1962:29:1962:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1962:30:1962:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1962:30:1962:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1966:13:1966:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1966:13:1966:17 | mut a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1966:26:1966:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1966:26:1966:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1967:15:1967:15 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1967:15:1967:15 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1967:15:1967:20 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1967:19:1967:20 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1968:13:1968:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1968:13:1968:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1968:13:1968:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1968:18:1968:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1975:5:1975:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1976:5:1976:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1976:20:1976:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1976:41:1976:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1992:5:1992:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1937:13:1937:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1937:13:1937:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1937:13:1937:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1937:33:1937:44 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1937:33:1937:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:33:1937:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1937:33:1937:53 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1937:33:1937:53 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1937:33:1937:53 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1937:34:1937:37 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:34:1937:37 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1937:40:1937:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:40:1937:40 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1937:43:1937:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1937:43:1937:43 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1938:13:1938:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1938:18:1938:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1938:18:1938:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1938:18:1938:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:22:1940:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1940:22:1940:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1940:22:1940:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:23:1940:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1940:23:1940:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:29:1940:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1940:29:1940:29 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:32:1940:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1940:32:1940:32 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1943:13:1943:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1943:13:1943:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1943:13:1943:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1943:21:1943:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1943:21:1943:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1943:21:1943:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1943:31:1943:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1943:31:1943:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1943:31:1943:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1943:32:1943:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1943:32:1943:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1943:38:1943:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1943:38:1943:38 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1943:41:1943:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1943:41:1943:41 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1944:13:1944:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1944:18:1944:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1944:18:1944:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1944:18:1944:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1946:13:1946:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1946:13:1946:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1946:13:1946:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1946:13:1946:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1946:33:1946:44 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1946:33:1946:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1946:33:1946:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1946:33:1946:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1946:33:1946:61 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1946:33:1946:61 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:1946:33:1946:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1946:34:1946:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1946:34:1946:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1946:40:1946:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1946:40:1946:40 | 2 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1946:43:1946:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1946:43:1946:43 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1947:13:1947:13 | u | | file://:0:0:0:0 | & | +| main.rs:1947:13:1947:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:1947:18:1947:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1947:18:1947:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1947:18:1947:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1947:18:1947:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1949:13:1949:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1949:13:1949:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1949:25:1949:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1949:25:1949:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1950:9:1950:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1950:9:1950:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1950:20:1950:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1951:18:1951:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1951:18:1951:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1953:33:1953:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1953:36:1953:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1953:45:1953:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1953:48:1953:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1959:13:1959:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1959:13:1959:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1959:24:1959:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1959:24:1959:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1960:9:1960:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1960:9:1960:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1960:9:1960:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1960:21:1960:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1960:24:1960:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1960:24:1960:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1960:33:1960:37 | "one" | | {EXTERNAL LOCATION} | str | +| main.rs:1961:9:1961:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1961:9:1961:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1961:9:1961:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1961:21:1961:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:24:1961:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1961:24:1961:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1961:33:1961:37 | "two" | | {EXTERNAL LOCATION} | str | +| main.rs:1962:20:1962:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1962:20:1962:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1962:20:1962:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:1963:22:1963:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1963:22:1963:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1963:22:1963:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:1964:29:1964:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1964:29:1964:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1964:29:1964:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:1965:29:1965:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:1965:29:1965:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:1965:29:1965:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1965:30:1965:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1965:30:1965:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1969:13:1969:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1969:13:1969:17 | mut a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1969:26:1969:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1969:26:1969:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:15:1970:15 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1970:15:1970:15 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1970:15:1970:20 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1970:19:1970:20 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:13:1971:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:13:1971:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1971:13:1971:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1971:18:1971:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1978:5:1978:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1979:5:1979:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1979:20:1979:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1979:41:1979:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1995:5:1995:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From 261c129555f02ceb2fc9bc21ee0cc9f078689c27 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 12:54:30 +0200 Subject: [PATCH 113/340] MaD generator: add single file mode --- .../models-as-data/bulk_generate_mad.py | 69 ++++++++++--------- misc/scripts/models-as-data/generate_mad.py | 13 +++- misc/scripts/models-as-data/helpers.py | 2 +- 3 files changed, 47 insertions(+), 37 deletions(-) diff --git a/misc/scripts/models-as-data/bulk_generate_mad.py b/misc/scripts/models-as-data/bulk_generate_mad.py index 3b7465f5173..e2de5038206 100755 --- a/misc/scripts/models-as-data/bulk_generate_mad.py +++ b/misc/scripts/models-as-data/bulk_generate_mad.py @@ -5,7 +5,7 @@ Experimental script for bulk generation of MaD models based on a list of project Note: This file must be formatted using the Black Python formatter. """ -import os.path +import pathlib import subprocess import sys from typing import Required, TypedDict, List, Callable, Optional @@ -41,7 +41,7 @@ gitroot = ( .decode("utf-8") .strip() ) -build_dir = os.path.join(gitroot, "mad-generation-build") +build_dir = pathlib.Path(gitroot, "mad-generation-build") # A project to generate models for @@ -86,10 +86,10 @@ def clone_project(project: Project) -> str: git_tag = project.get("git-tag") # Determine target directory - target_dir = os.path.join(build_dir, name) + target_dir = build_dir / name # Clone only if directory doesn't already exist - if not os.path.exists(target_dir): + if not target_dir.exists(): if git_tag: print(f"Cloning {name} from {repo_url} at tag {git_tag}") else: @@ -191,10 +191,10 @@ def build_database( name = project["name"] # Create database directory path - database_dir = os.path.join(build_dir, f"{name}-db") + database_dir = build_dir / f"{name}-db" # Only build the database if it doesn't already exist - if not os.path.exists(database_dir): + if not database_dir.exists(): print(f"Building CodeQL database for {name}...") extractor_options = [option for x in extractor_options for option in ("-O", x)] try: @@ -241,7 +241,11 @@ def generate_models(config, args, project: Project, database_dir: str) -> None: generator.with_summaries = should_generate_summaries(project) generator.threads = args.codeql_threads generator.ram = args.codeql_ram - generator.setenvironment(database=database_dir, folder=name) + if config.get("single-file", False): + generator.single_file = name + else: + generator.folder = name + generator.setenvironment(database=database_dir) generator.run() @@ -312,7 +316,7 @@ def download_artifact(url: str, artifact_name: str, pat: str) -> str: if response.status_code != 200: print(f"Failed to download file. Status code: {response.status_code}") sys.exit(1) - target_zip = os.path.join(build_dir, zipName) + target_zip = build_dir / zipName with open(target_zip, "wb") as file: for chunk in response.iter_content(chunk_size=8192): file.write(chunk) @@ -320,12 +324,6 @@ def download_artifact(url: str, artifact_name: str, pat: str) -> str: return target_zip -def remove_extension(filename: str) -> str: - while "." in filename: - filename, _ = os.path.splitext(filename) - return filename - - def pretty_name_from_artifact_name(artifact_name: str) -> str: return artifact_name.split("___")[1] @@ -399,19 +397,17 @@ def download_dca_databases( # The database is in a zip file, which contains a tar.gz file with the DB # First we open the zip file with zipfile.ZipFile(artifact_zip_location, "r") as zip_ref: - artifact_unzipped_location = os.path.join(build_dir, artifact_name) + artifact_unzipped_location = build_dir / artifact_name # clean up any remnants of previous runs shutil.rmtree(artifact_unzipped_location, ignore_errors=True) # And then we extract it to build_dir/artifact_name zip_ref.extractall(artifact_unzipped_location) # And then we extract the language tar.gz file inside it - artifact_tar_location = os.path.join( - artifact_unzipped_location, f"{language}.tar.gz" - ) + artifact_tar_location = artifact_unzipped_location / f"{language}.tar.gz" with tarfile.open(artifact_tar_location, "r:gz") as tar_ref: # And we just untar it to the same directory as the zip file tar_ref.extractall(artifact_unzipped_location) - ret = os.path.join(artifact_unzipped_location, language) + ret = artifact_unzipped_location / language print(f"Decompression complete: {ret}") return ret @@ -431,8 +427,16 @@ def download_dca_databases( return [(project_map[n], r) for n, r in zip(analyzed_databases, results)] -def get_mad_destination_for_project(config, name: str) -> str: - return os.path.join(config["destination"], name) +def clean_up_mad_destination_for_project(config, name: str): + target = pathlib.Path(config["destination"], name) + if config.get("single-file", False): + target = target.with_suffix(".model.yml") + if target.exists(): + print(f"Deleting existing MaD file at {target}") + target.unlink() + elif target.exists(): + print(f"Deleting existing MaD directory at {target}") + shutil.rmtree(target, ignore_errors=True) def get_strategy(config) -> str: @@ -454,8 +458,7 @@ def main(config, args) -> None: language = config["language"] # Create build directory if it doesn't exist - if not os.path.exists(build_dir): - os.makedirs(build_dir) + build_dir.mkdir(parents=True, exist_ok=True) database_results = [] match get_strategy(config): @@ -475,7 +478,7 @@ def main(config, args) -> None: if args.pat is None: print("ERROR: --pat argument is required for DCA strategy") sys.exit(1) - if not os.path.exists(args.pat): + if not args.pat.exists(): print(f"ERROR: Personal Access Token file '{pat}' does not exist.") sys.exit(1) with open(args.pat, "r") as f: @@ -499,12 +502,9 @@ def main(config, args) -> None: ) sys.exit(1) - # Delete the MaD directory for each project - for project, database_dir in database_results: - mad_dir = get_mad_destination_for_project(config, project["name"]) - if os.path.exists(mad_dir): - print(f"Deleting existing MaD directory at {mad_dir}") - subprocess.check_call(["rm", "-rf", mad_dir]) + # clean up existing MaD data for the projects + for project, _ in database_results: + clean_up_mad_destination_for_project(config, project["name"]) for project, database_dir in database_results: if database_dir is not None: @@ -514,7 +514,10 @@ def main(config, args) -> None: if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument( - "--config", type=str, help="Path to the configuration file.", required=True + "--config", + type=pathlib.Path, + help="Path to the configuration file.", + required=True, ) parser.add_argument( "--dca", @@ -525,7 +528,7 @@ if __name__ == "__main__": ) parser.add_argument( "--pat", - type=str, + type=pathlib.Path, help="Path to a file containing the PAT token required to grab DCA databases (the same as the one you use for DCA)", ) parser.add_argument( @@ -544,7 +547,7 @@ if __name__ == "__main__": # Load config file config = {} - if not os.path.exists(args.config): + if not args.config.exists(): print(f"ERROR: Config file '{args.config}' does not exist.") sys.exit(1) try: diff --git a/misc/scripts/models-as-data/generate_mad.py b/misc/scripts/models-as-data/generate_mad.py index 80e0385da6d..5eeac91d857 100755 --- a/misc/scripts/models-as-data/generate_mad.py +++ b/misc/scripts/models-as-data/generate_mad.py @@ -53,12 +53,13 @@ class Generator: ram = None threads = 0 folder = "" + single_file = None def __init__(self, language=None): self.language = language def setenvironment(self, database=None, folder=None): - self.codeQlRoot = ( + self.codeql_root = ( subprocess.check_output(["git", "rev-parse", "--show-toplevel"]) .decode("utf-8") .strip() @@ -66,7 +67,7 @@ class Generator: self.database = database or self.database self.folder = folder or self.folder self.generated_frameworks = os.path.join( - self.codeQlRoot, f"{self.language}/ql/lib/ext/generated/{self.folder}" + self.codeql_root, f"{self.language}/ql/lib/ext/generated/{self.folder}" ) self.workDir = tempfile.mkdtemp() if self.ram is None: @@ -134,6 +135,10 @@ class Generator: type=int, help="Amount of RAM to use for CodeQL queries in MB. Default is to use 2048 MB per thread.", ) + p.add_argument( + "--single-file", + help="Generate a single file with all models instead of separate files for each namespace, using provided argument as the base filename.", + ) generator = p.parse_args(namespace=Generator()) if ( @@ -154,7 +159,7 @@ class Generator: def runQuery(self, query): print("########## Querying " + query + "...") queryFile = os.path.join( - self.codeQlRoot, f"{self.language}/ql/src/utils/{self.dirname}", query + self.codeql_root, f"{self.language}/ql/src/utils/{self.dirname}", query ) resultBqrs = os.path.join(self.workDir, "out.bqrs") @@ -187,6 +192,8 @@ class Generator: def getAddsTo(self, query, predicate): data = self.runQuery(query) rows = parseData(data) + if self.single_file and rows: + rows = {self.single_file: "".join(rows.values())} return self.asAddsTo(rows, predicate) def makeContent(self): diff --git a/misc/scripts/models-as-data/helpers.py b/misc/scripts/models-as-data/helpers.py index f165caf62dc..580523f4bec 100644 --- a/misc/scripts/models-as-data/helpers.py +++ b/misc/scripts/models-as-data/helpers.py @@ -22,7 +22,7 @@ def remove_dir(dirName): def run_cmd(cmd, msg="Failed to run command"): - print("Running " + " ".join(cmd)) + print("Running " + " ".join(map(str, cmd))) if subprocess.check_call(cmd): print(msg) exit(1) From dd1c09769ffe912dcae2bfa67d7b4711f90e2f4a Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Thu, 19 Jun 2025 13:36:57 +0200 Subject: [PATCH 114/340] Python: Fix integration test --- .../query-suite/python-code-quality-extended.qls.expected | 1 + 1 file changed, 1 insertion(+) diff --git a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected index c2168cab937..b93829875d2 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected @@ -1,3 +1,4 @@ +ql/python/ql/src/Classes/InitCallsSubclass/InitCallsSubclassMethod.ql ql/python/ql/src/Functions/IterReturnsNonSelf.ql ql/python/ql/src/Functions/NonCls.ql ql/python/ql/src/Functions/NonSelf.ql From 7170e97e22af6bc48a24af493653433d14fff00a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 11:50:43 +0100 Subject: [PATCH 115/340] Rust: Update test expectations format (type=...). --- .../test/library-tests/type-inference/main.rs | 50 +++++++++---------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index c2ffdf57d34..4969cedb044 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1893,30 +1893,30 @@ mod loops { for i in [1, 2, 3].map(|x| x + 1) { } // $ method=map MISSING: type=i:i32 for i in [1, 2, 3].into_iter() { } // $ method=into_iter MISSING: type=i:i32 - let vals1 = [1u8, 2, 3]; // $ MISSING: type=vals1:[u8; 3] + let vals1 = [1u8, 2, 3]; // $ type=vals1:[T;...].u8 for u in vals1 { } // $ type=u:u8 - let vals2 = [1u16; 3]; // $ MISSING: type=vals2:[u16; 3] + let vals2 = [1u16; 3]; // $ type=vals2:[T;...].u16 for u in vals2 { } // $ type=u:u16 - let vals3: [u32; 3] = [1, 2, 3]; // $ MISSING: type=vals3:[u32; 3] + let vals3: [u32; 3] = [1, 2, 3]; // $ type=vals3:[T;...].u32 for u in vals3 { } // $ type=u:u32 - let vals4: [u64; 3] = [1; 3]; // $ MISSING: type=vals4:[u64; 3] + let vals4: [u64; 3] = [1; 3]; // $ type=vals4:[T;...].u64 for u in vals4 { } // $ type=u:u64 - let mut strings1 = ["foo", "bar", "baz"]; // $ MISSING: type=strings1:[&str; 3] - for s in &strings1 { } // $ MISSING: type=s:&str - for s in &mut strings1 { } // $ MISSING: type=s:&str + let mut strings1 = ["foo", "bar", "baz"]; // $ type=strings1:[T;...].str + for s in &strings1 { } // $ MISSING: type=s:&T.str + for s in &mut strings1 { } // $ MISSING: type=s:&T.str for s in strings1 { } // $ type=s:str - let strings2 = [String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings2:[String; 3] + let strings2 = [String::from("foo"), String::from("bar"), String::from("baz")]; // $ type=strings2:[T;...].String for s in strings2 { } // $ type=s:String - let strings3 = &[String::from("foo"), String::from("bar"), String::from("baz")]; // $ MISSING: type=strings3:&[String; 3] + let strings3 = &[String::from("foo"), String::from("bar"), String::from("baz")]; // $ type=strings3:&T.[T;...].String for s in strings3 { } // $ MISSING: type=s:String - let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[MyCallable; 3] + let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[T;...].MyCallable; 3 for c in callables { // $ type=c:MyCallable let result = c.call(); // $ type=result:i64 method=call } @@ -1926,48 +1926,48 @@ mod loops { for i in 0..10 { } // $ MISSING: type=i:i32 for u in [0u8 .. 10] { } // $ MISSING: type=u:u8 - let range1 = std::ops::Range { start: 0u16, end: 10u16 }; // $ MISSING: type=range:std::ops::Range - for u in range1 { } // $ MISSING: type=i:u16 + let range1 = std::ops::Range { start: 0u16, end: 10u16 }; // $ type=range1:Range type=range1:Idx.u16 + for u in range1 { } // $ MISSING: type=u:u16 // for loops with containers let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec for i in vals3 { } // $ MISSING: type=i:i32 - let vals4a : Vec = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4a:Vec + let vals4a : Vec = [1u16, 2, 3].to_vec(); // $ type=vals4a:Vec type=vals4a:T.u16 for u in vals4a { } // $ type=u:u16 - let vals4b = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4b:Vec + let vals4b = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4b:Vec type=vals4b:T.u16 for u in vals4b { } // $ MISSING: type=u:u16 - let vals5 = Vec::from([1u32, 2, 3]); // $ MISSING: type=vals5:Vec + let vals5 = Vec::from([1u32, 2, 3]); // $ type=vals5:Vec MISSING: type=vals5:T.u32 for u in vals5 { } // $ MISSING: type=u:u32 - let vals6 : Vec<&u64> = [1u64, 2, 3].iter().collect(); // $ MISSING: type=vals6:Vec<&u64> - for u in vals6 { } // $ MISSING: type=u:&u64 + let vals6 : Vec<&u64> = [1u64, 2, 3].iter().collect(); // $ type=vals6:Vec type=vals6:T.&T.u64 + for u in vals6 { } // $ type=u:&T.u64 - let mut vals7 = Vec::new(); // $ MISSING: type=vals7:Vec + let mut vals7 = Vec::new(); // $ type=vals7:Vec MISSING: type=vals7:T.u8 vals7.push(1u8); // $ method=push for u in vals7 { } // $ MISSING: type=u:u8 - let matrix1 = vec![vec![1, 2], vec![3, 4]]; // $ MISSING: type=vals5:Vec> - for row in matrix1 { // $ MISSING: type=row:Vec + let matrix1 = vec![vec![1, 2], vec![3, 4]]; // $ MISSING: type=matrix1:Vec type=matrix1:T.Vec type=matrix1:T.T.i32 + for row in matrix1 { // $ MISSING: type=row:Vec type=row:T.i32 for cell in row { // $ MISSING: type=cell:i32 } } - let mut map1 = std::collections::HashMap::new(); // $ MISSING: type=map1:std::collections::HashMap<_, _> + let mut map1 = std::collections::HashMap::new(); // $ MISSING: type=map1:Hashmap type=map1:K.i32 type=map1:V.Box type1=map1:V.T.&T.str map1.insert(1, Box::new("one")); // $ method=insert map1.insert(2, Box::new("two")); // $ method=insert for key in map1.keys() { } // $ method=keys MISSING: type=key:i32 - for value in map1.values() { } // $ method=values MISSING: type=value:Box<&str> - for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box<&str> - for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box<&str> + for value in map1.values() { } // $ method=values MISSING: type=value:Box type=value:Box.T:&T.str + for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box type=value:Box.T:&T.str + for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box type=value:Box.T:&T.str // while loops let mut a: i64 = 0; // $ type=a:i64 - while a < 10 { // $ method=lt MISSING: type=a:i64m + while a < 10 { // $ method=lt type=a:i64 a += 1; // $ type=a:i64 method=add_assign } } From 5448071e0997d87c06a41745331b6d4f09fe3167 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 14:20:37 +0200 Subject: [PATCH 116/340] Update javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md Co-authored-by: Taus --- javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md index c34e91360af..2716069fb71 100644 --- a/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md +++ b/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when `splice` is used as a condition that adjusts the loop counter. +* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when the return value of `splice` is used to decide whether to adjust the loop counter. From 8679151ace18829fde40feda40df1d1c793e0e1c Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 14:21:08 +0200 Subject: [PATCH 117/340] Update javascript/ql/src/change-notes/2025-06-12-loop-iteration.md Co-authored-by: Taus --- javascript/ql/src/change-notes/2025-06-12-loop-iteration.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md index 1458ccdbb8e..13b9fcf592a 100644 --- a/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md +++ b/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* The `js/loop-iteration-skipped-due-to-shifting` query has been updated with `reliability` tag. +* The `js/loop-iteration-skipped-due-to-shifting` query now has the `reliability` tag. From 9bdb541065155f3ff1f5c82fdedb5fa5c4b826b8 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 18 Jun 2025 10:45:22 +0200 Subject: [PATCH 118/340] Rust: Add type inference tests for dereferencing --- .../type-inference/dereference.rs | 102 ++++++++ .../test/library-tests/type-inference/main.rs | 3 + .../type-inference/type-inference.expected | 245 +++++++++++++++++- 3 files changed, 345 insertions(+), 5 deletions(-) create mode 100644 rust/ql/test/library-tests/type-inference/dereference.rs diff --git a/rust/ql/test/library-tests/type-inference/dereference.rs b/rust/ql/test/library-tests/type-inference/dereference.rs new file mode 100644 index 00000000000..8ceb8ec78de --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/dereference.rs @@ -0,0 +1,102 @@ +/// This file contains tests for dereferencing with through the `Deref` trait. +use std::ops::Deref; + +struct MyIntPointer { + value: i64, +} + +impl Deref for MyIntPointer { + type Target = i64; + + // MyIntPointer::deref + fn deref(&self) -> &i64 { + &self.value // $ fieldof=MyIntPointer + } +} + +struct MySmartPointer { + value: T, +} + +impl Deref for MySmartPointer { + type Target = T; + + // MySmartPointer::deref + fn deref(&self) -> &T { + &self.value // $ fieldof=MySmartPointer + } +} + +fn explicit_monomorphic_dereference() { + // Dereference with method call + let a1 = MyIntPointer { value: 34i64 }; + let _b1 = a1.deref(); // $ method=MyIntPointer::deref type=_b1:&T.i64 + + // Dereference with overloaded dereference operator + let a2 = MyIntPointer { value: 34i64 }; + let _b2 = *a2; // $ method=MyIntPointer::deref MISSING: type=_b2:i64 + + // Call method on explicitly dereferenced value + let a3 = MyIntPointer { value: 34i64 }; + let _b3 = (*a3).is_positive(); // $ method=MyIntPointer::deref method=is_positive type=_b3:bool +} + +fn explicit_polymorphic_dereference() { + // Explicit dereference with type parameter + let c1 = MySmartPointer { value: 'a' }; + let _d1 = c1.deref(); // $ method=MySmartPointer::deref type=_d1:&T.char + + // Explicit dereference with type parameter + let c2 = MySmartPointer { value: 'a' }; + let _d2 = *c2; // $ method=MySmartPointer::deref MISSING: type=_d2:char + + // Call method on explicitly dereferenced value with type parameter + let c3 = MySmartPointer { value: 34i64 }; + let _d3 = (*c3).is_positive(); // $ method=MySmartPointer::deref MISSING: method=is_positive type=_d3:bool +} + +fn explicit_ref_dereference() { + // Explicit dereference with type parameter + let e1 = &'a'; + let _f1 = e1.deref(); // $ MISSING: method=deref type=_f1:&T.char + + // Explicit dereference with type parameter + let e2 = &'a'; + let _f2 = *e2; // $ method=deref type=_f2:char + + // Call method on explicitly dereferenced value with type parameter + let e3 = &34i64; + let _f3 = (*e3).is_positive(); // $ method=deref method=is_positive type=_f3:bool +} + +fn explicit_box_dereference() { + // Explicit dereference with type parameter + let g1: Box = Box::new('a'); + let _h1 = g1.deref(); // $ method=deref type=_h1:&T.char + + // Explicit dereference with type parameter + let g2: Box = Box::new('a'); + let _h2 = *g2; // $ method=deref MISSING: type=_h2:char + + // Call method on explicitly dereferenced value with type parameter + let g3: Box = Box::new(34i64); + let _h3 = (*g3).is_positive(); // $ method=deref MISSING: method=is_positive type=_h3:bool +} + +fn implicit_dereference() { + // Call method on implicitly dereferenced value + let x = MyIntPointer { value: 34i64 }; + let _y = x.is_positive(); // $ MISSING: method=is_positive type=_y:bool + + // Call method on implicitly dereferenced value + let x = MySmartPointer { value: 34i64 }; + let _y = x.is_positive(); // $ MISSING: method=is_positive type=_y:bool +} + +pub fn test() { + explicit_monomorphic_dereference(); + explicit_polymorphic_dereference(); + explicit_ref_dereference(); + explicit_box_dereference(); + implicit_dereference(); +} diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 5b7232ae849..1197670c714 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1881,6 +1881,8 @@ mod method_determined_by_argument_type { } } +mod dereference; + fn main() { field_access::f(); method_impl::f(); @@ -1905,4 +1907,5 @@ fn main() { indexers::f(); macros::f(); method_determined_by_argument_type::f(); + dereference::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 758882f52d8..53c85a28c4b 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,239 @@ inferType +| dereference.rs:12:14:12:18 | SelfParam | | file://:0:0:0:0 | & | +| dereference.rs:12:14:12:18 | SelfParam | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:12:29:14:5 | { ... } | | file://:0:0:0:0 | & | +| dereference.rs:12:29:14:5 | { ... } | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:13:9:13:19 | &... | | file://:0:0:0:0 | & | +| dereference.rs:13:9:13:19 | &... | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:13:10:13:13 | self | | file://:0:0:0:0 | & | +| dereference.rs:13:10:13:13 | self | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:13:10:13:19 | self.value | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:25:14:25:18 | SelfParam | | file://:0:0:0:0 | & | +| dereference.rs:25:14:25:18 | SelfParam | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:25:14:25:18 | SelfParam | &T.T | dereference.rs:21:6:21:6 | T | +| dereference.rs:25:27:27:5 | { ... } | | file://:0:0:0:0 | & | +| dereference.rs:25:27:27:5 | { ... } | &T | dereference.rs:21:6:21:6 | T | +| dereference.rs:26:9:26:19 | &... | | file://:0:0:0:0 | & | +| dereference.rs:26:9:26:19 | &... | &T | dereference.rs:21:6:21:6 | T | +| dereference.rs:26:10:26:13 | self | | file://:0:0:0:0 | & | +| dereference.rs:26:10:26:13 | self | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:26:10:26:13 | self | &T.T | dereference.rs:21:6:21:6 | T | +| dereference.rs:26:10:26:19 | self.value | | dereference.rs:21:6:21:6 | T | +| dereference.rs:32:9:32:10 | a1 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:32:14:32:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:32:36:32:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:33:9:33:11 | _b1 | | file://:0:0:0:0 | & | +| dereference.rs:33:9:33:11 | _b1 | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:33:15:33:16 | a1 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:33:15:33:24 | a1.deref() | | file://:0:0:0:0 | & | +| dereference.rs:33:15:33:24 | a1.deref() | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:36:9:36:10 | a2 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:36:9:36:10 | a2 | | file://:0:0:0:0 | & | +| dereference.rs:36:9:36:10 | a2 | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:36:9:36:10 | a2 | &T | file://:0:0:0:0 | & | +| dereference.rs:36:9:36:10 | a2 | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:36:14:36:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:36:14:36:42 | MyIntPointer {...} | | file://:0:0:0:0 | & | +| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T | file://:0:0:0:0 | & | +| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:36:36:36:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:37:9:37:11 | _b2 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:9:37:11 | _b2 | | file://:0:0:0:0 | & | +| dereference.rs:37:9:37:11 | _b2 | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:37:15:37:17 | * ... | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:15:37:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:37:15:37:17 | * ... | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:37:16:37:17 | a2 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:16:37:17 | a2 | | file://:0:0:0:0 | & | +| dereference.rs:37:16:37:17 | a2 | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:16:37:17 | a2 | &T | file://:0:0:0:0 | & | +| dereference.rs:37:16:37:17 | a2 | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:40:9:40:10 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:40:9:40:10 | a3 | | file://:0:0:0:0 | & | +| dereference.rs:40:9:40:10 | a3 | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:40:9:40:10 | a3 | &T | file://:0:0:0:0 | & | +| dereference.rs:40:9:40:10 | a3 | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:40:14:40:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:40:14:40:42 | MyIntPointer {...} | | file://:0:0:0:0 | & | +| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T | file://:0:0:0:0 | & | +| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:40:36:40:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:41:9:41:11 | _b3 | | {EXTERNAL LOCATION} | bool | +| dereference.rs:41:15:41:19 | (...) | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:15:41:19 | (...) | | file://:0:0:0:0 | & | +| dereference.rs:41:15:41:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:41:15:41:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | +| dereference.rs:41:16:41:18 | * ... | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:16:41:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:41:16:41:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:41:17:41:18 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:17:41:18 | a3 | | file://:0:0:0:0 | & | +| dereference.rs:41:17:41:18 | a3 | &T | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:17:41:18 | a3 | &T | file://:0:0:0:0 | & | +| dereference.rs:41:17:41:18 | a3 | &T.&T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:46:9:46:10 | c1 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:46:9:46:10 | c1 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:46:14:46:42 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:46:14:46:42 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | char | +| dereference.rs:46:38:46:40 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:47:9:47:11 | _d1 | | file://:0:0:0:0 | & | +| dereference.rs:47:9:47:11 | _d1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:47:15:47:16 | c1 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:47:15:47:16 | c1 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:47:15:47:24 | c1.deref() | | file://:0:0:0:0 | & | +| dereference.rs:47:15:47:24 | c1.deref() | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:50:9:50:10 | c2 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:50:9:50:10 | c2 | | file://:0:0:0:0 | & | +| dereference.rs:50:9:50:10 | c2 | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:50:9:50:10 | c2 | &T | file://:0:0:0:0 | & | +| dereference.rs:50:9:50:10 | c2 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:50:14:50:42 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:50:14:50:42 | MySmartPointer {...} | | file://:0:0:0:0 | & | +| dereference.rs:50:14:50:42 | MySmartPointer {...} | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:50:14:50:42 | MySmartPointer {...} | &T | file://:0:0:0:0 | & | +| dereference.rs:50:14:50:42 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | char | +| dereference.rs:50:38:50:40 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:51:9:51:11 | _d2 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:9:51:11 | _d2 | | file://:0:0:0:0 | & | +| dereference.rs:51:15:51:17 | * ... | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:15:51:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:51:16:51:17 | c2 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:16:51:17 | c2 | | file://:0:0:0:0 | & | +| dereference.rs:51:16:51:17 | c2 | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:16:51:17 | c2 | &T | file://:0:0:0:0 | & | +| dereference.rs:51:16:51:17 | c2 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:54:9:54:10 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:54:9:54:10 | c3 | | file://:0:0:0:0 | & | +| dereference.rs:54:9:54:10 | c3 | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:54:9:54:10 | c3 | &T | file://:0:0:0:0 | & | +| dereference.rs:54:9:54:10 | c3 | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:54:14:54:44 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:54:14:54:44 | MySmartPointer {...} | | file://:0:0:0:0 | & | +| dereference.rs:54:14:54:44 | MySmartPointer {...} | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:54:14:54:44 | MySmartPointer {...} | &T | file://:0:0:0:0 | & | +| dereference.rs:54:14:54:44 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:54:38:54:42 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:55:15:55:19 | (...) | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:15:55:19 | (...) | | file://:0:0:0:0 | & | +| dereference.rs:55:16:55:18 | * ... | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:16:55:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:55:17:55:18 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:17:55:18 | c3 | | file://:0:0:0:0 | & | +| dereference.rs:55:17:55:18 | c3 | &T | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:17:55:18 | c3 | &T | file://:0:0:0:0 | & | +| dereference.rs:55:17:55:18 | c3 | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:60:9:60:10 | e1 | | file://:0:0:0:0 | & | +| dereference.rs:60:9:60:10 | e1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:60:14:60:17 | &'a' | | file://:0:0:0:0 | & | +| dereference.rs:60:14:60:17 | &'a' | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:60:15:60:17 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:61:15:61:16 | e1 | | file://:0:0:0:0 | & | +| dereference.rs:61:15:61:16 | e1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:64:9:64:10 | e2 | | file://:0:0:0:0 | & | +| dereference.rs:64:9:64:10 | e2 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:64:9:64:10 | e2 | &T | file://:0:0:0:0 | & | +| dereference.rs:64:14:64:17 | &'a' | | file://:0:0:0:0 | & | +| dereference.rs:64:14:64:17 | &'a' | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:64:14:64:17 | &'a' | &T | file://:0:0:0:0 | & | +| dereference.rs:64:15:64:17 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:64:15:64:17 | 'a' | | file://:0:0:0:0 | & | +| dereference.rs:65:9:65:11 | _f2 | | {EXTERNAL LOCATION} | char | +| dereference.rs:65:9:65:11 | _f2 | | file://:0:0:0:0 | & | +| dereference.rs:65:15:65:17 | * ... | | {EXTERNAL LOCATION} | char | +| dereference.rs:65:15:65:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:65:16:65:17 | e2 | | file://:0:0:0:0 | & | +| dereference.rs:65:16:65:17 | e2 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:65:16:65:17 | e2 | &T | file://:0:0:0:0 | & | +| dereference.rs:68:9:68:10 | e3 | | file://:0:0:0:0 | & | +| dereference.rs:68:9:68:10 | e3 | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:68:9:68:10 | e3 | &T | file://:0:0:0:0 | & | +| dereference.rs:68:14:68:19 | &34i64 | | file://:0:0:0:0 | & | +| dereference.rs:68:14:68:19 | &34i64 | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:68:14:68:19 | &34i64 | &T | file://:0:0:0:0 | & | +| dereference.rs:68:15:68:19 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:68:15:68:19 | 34i64 | | file://:0:0:0:0 | & | +| dereference.rs:69:9:69:11 | _f3 | | {EXTERNAL LOCATION} | bool | +| dereference.rs:69:15:69:19 | (...) | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:69:15:69:19 | (...) | | file://:0:0:0:0 | & | +| dereference.rs:69:15:69:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | +| dereference.rs:69:16:69:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:69:16:69:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:69:17:69:18 | e3 | | file://:0:0:0:0 | & | +| dereference.rs:69:17:69:18 | e3 | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:69:17:69:18 | e3 | &T | file://:0:0:0:0 | & | +| dereference.rs:74:9:74:10 | g1 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:74:9:74:10 | g1 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:74:9:74:10 | g1 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:74:25:74:37 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| dereference.rs:74:25:74:37 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:74:25:74:37 | ...::new(...) | T | {EXTERNAL LOCATION} | char | +| dereference.rs:74:34:74:36 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:75:9:75:11 | _h1 | | file://:0:0:0:0 | & | +| dereference.rs:75:9:75:11 | _h1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:75:15:75:16 | g1 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:75:15:75:16 | g1 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:75:15:75:16 | g1 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:75:15:75:24 | g1.deref() | | file://:0:0:0:0 | & | +| dereference.rs:75:15:75:24 | g1.deref() | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:78:9:78:10 | g2 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:78:9:78:10 | g2 | | file://:0:0:0:0 | & | +| dereference.rs:78:9:78:10 | g2 | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:78:9:78:10 | g2 | &T | file://:0:0:0:0 | & | +| dereference.rs:78:9:78:10 | g2 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:78:9:78:10 | g2 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:78:25:78:37 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| dereference.rs:78:25:78:37 | ...::new(...) | | file://:0:0:0:0 | & | +| dereference.rs:78:25:78:37 | ...::new(...) | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:78:25:78:37 | ...::new(...) | &T | file://:0:0:0:0 | & | +| dereference.rs:78:25:78:37 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:78:25:78:37 | ...::new(...) | T | {EXTERNAL LOCATION} | char | +| dereference.rs:78:34:78:36 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:79:9:79:11 | _h2 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:9:79:11 | _h2 | | file://:0:0:0:0 | & | +| dereference.rs:79:15:79:17 | * ... | | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:15:79:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:79:16:79:17 | g2 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:16:79:17 | g2 | | file://:0:0:0:0 | & | +| dereference.rs:79:16:79:17 | g2 | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:16:79:17 | g2 | &T | file://:0:0:0:0 | & | +| dereference.rs:79:16:79:17 | g2 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:79:16:79:17 | g2 | T | {EXTERNAL LOCATION} | char | +| dereference.rs:82:9:82:10 | g3 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:82:9:82:10 | g3 | | file://:0:0:0:0 | & | +| dereference.rs:82:9:82:10 | g3 | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:82:9:82:10 | g3 | &T | file://:0:0:0:0 | & | +| dereference.rs:82:9:82:10 | g3 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:82:9:82:10 | g3 | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:82:24:82:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| dereference.rs:82:24:82:38 | ...::new(...) | | file://:0:0:0:0 | & | +| dereference.rs:82:24:82:38 | ...::new(...) | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:82:24:82:38 | ...::new(...) | &T | file://:0:0:0:0 | & | +| dereference.rs:82:24:82:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:82:24:82:38 | ...::new(...) | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:82:33:82:37 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:83:15:83:19 | (...) | | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:15:83:19 | (...) | | file://:0:0:0:0 | & | +| dereference.rs:83:16:83:18 | * ... | | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:16:83:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:83:17:83:18 | g3 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:17:83:18 | g3 | | file://:0:0:0:0 | & | +| dereference.rs:83:17:83:18 | g3 | &T | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:17:83:18 | g3 | &T | file://:0:0:0:0 | & | +| dereference.rs:83:17:83:18 | g3 | A | {EXTERNAL LOCATION} | Global | +| dereference.rs:83:17:83:18 | g3 | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:88:9:88:9 | x | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:88:13:88:41 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:88:35:88:39 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:89:14:89:14 | x | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:92:9:92:9 | x | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:92:9:92:9 | x | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:92:13:92:43 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:92:13:92:43 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:92:37:92:41 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| dereference.rs:93:14:93:14 | x | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:93:14:93:14 | x | T | {EXTERNAL LOCATION} | i64 | | loop/main.rs:7:12:7:15 | SelfParam | | loop/main.rs:6:1:8:1 | Self [trait T1] | | loop/main.rs:11:12:11:15 | SelfParam | | loop/main.rs:10:1:14:1 | Self [trait T2] | | loop/main.rs:12:9:12:12 | self | | loop/main.rs:10:1:14:1 | Self [trait T2] | @@ -2705,9 +2940,9 @@ inferType | main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i64 | | main.rs:1880:9:1880:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | | main.rs:1880:18:1880:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1886:5:1886:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1887:5:1887:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1887:20:1887:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1887:41:1887:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1903:5:1903:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1888:5:1888:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1889:5:1889:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1889:20:1889:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1889:41:1889:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1905:5:1905:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From 7c9d15b6051ac6e4dfdb90046bffbefc71b1a289 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 18 Jun 2025 12:58:22 +0200 Subject: [PATCH 119/340] Rust: Add test with method on borrow --- .../test/library-tests/type-inference/main.rs | 36 +- .../type-inference/type-inference.expected | 2811 +++++++++-------- 2 files changed, 1473 insertions(+), 1374 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 1197670c714..0b6d2b754a1 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1079,6 +1079,11 @@ mod method_call_type_conversion { #[derive(Debug, Copy, Clone)] struct S2; + #[derive(Debug, Copy, Clone, Default)] + struct MyInt { + a: i64, + } + impl S { fn m1(self) -> T { self.0 // $ fieldof=S @@ -1093,6 +1098,24 @@ mod method_call_type_conversion { } } + trait ATrait { + fn method_on_borrow(&self) -> i64; + fn method_not_on_borrow(self) -> i64; + } + + // Trait implementation on a borrow. + impl ATrait for &MyInt { + // MyInt::method_on_borrow + fn method_on_borrow(&self) -> i64 { + (*(*self)).a // $ method=deref fieldof=MyInt + } + + // MyInt::method_not_on_borrow + fn method_not_on_borrow(self) -> i64 { + (*self).a // $ method=deref fieldof=MyInt + } + } + pub fn f() { let x1 = S(S2); println!("{:?}", x1.m1()); // $ method=m1 @@ -1128,10 +1151,21 @@ mod method_call_type_conversion { let t = x7.m1(); // $ method=m1 type=t:& type=t:&T.S2 println!("{:?}", x7); - let x9 : String = "Hello".to_string(); // $ type=x9:String + let x9: String = "Hello".to_string(); // $ type=x9:String + // Implicit `String` -> `str` conversion happens via the `Deref` trait: // https://doc.rust-lang.org/std/string/struct.String.html#deref. let u = x9.parse::(); // $ method=parse type=u:T.u32 + + let my_thing = &MyInt { a: 37 }; + // implicit borrow of a `&` + let a = my_thing.method_on_borrow(); // $ MISSING: method=MyInt::method_on_borrow + println!("{:?}", a); + + // no implicit borrow + let my_thing = &MyInt { a: 38 }; + let a = my_thing.method_not_on_borrow(); // $ MISSING: method=MyInt::method_not_on_borrow + println!("{:?}", 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 53c85a28c4b..e7f2d2b10c1 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1510,1439 +1510,1504 @@ inferType | main.rs:1070:18:1070:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1070:26:1070:34 | from_loop | | main.rs:988:5:992:5 | MyOption | | main.rs:1070:26:1070:34 | from_loop | T | main.rs:1023:5:1024:13 | S | -| main.rs:1083:15:1083:18 | SelfParam | | main.rs:1076:5:1077:19 | S | -| main.rs:1083:15:1083:18 | SelfParam | T | main.rs:1082:10:1082:10 | T | -| main.rs:1083:26:1085:9 | { ... } | | main.rs:1082:10:1082:10 | T | -| main.rs:1084:13:1084:16 | self | | main.rs:1076:5:1077:19 | S | -| main.rs:1084:13:1084:16 | self | T | main.rs:1082:10:1082:10 | T | -| main.rs:1084:13:1084:18 | self.0 | | main.rs:1082:10:1082:10 | T | -| main.rs:1087:15:1087:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1087:15:1087:19 | SelfParam | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1087:15:1087:19 | SelfParam | &T.T | main.rs:1082:10:1082:10 | T | -| main.rs:1087:28:1089:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1087:28:1089:9 | { ... } | &T | main.rs:1082:10:1082:10 | T | -| main.rs:1088:13:1088:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1088:13:1088:19 | &... | &T | main.rs:1082:10:1082:10 | T | -| main.rs:1088:14:1088:17 | self | | file://:0:0:0:0 | & | -| main.rs:1088:14:1088:17 | self | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1088:14:1088:17 | self | &T.T | main.rs:1082:10:1082:10 | T | -| main.rs:1088:14:1088:19 | self.0 | | main.rs:1082:10:1082:10 | T | -| main.rs:1091:15:1091:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1091:15:1091:25 | SelfParam | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1091:15:1091:25 | SelfParam | &T.T | main.rs:1082:10:1082:10 | T | -| main.rs:1091:34:1093:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1091:34:1093:9 | { ... } | &T | main.rs:1082:10:1082:10 | T | -| main.rs:1092:13:1092:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1092:13:1092:19 | &... | &T | main.rs:1082:10:1082:10 | T | -| main.rs:1092:14:1092:17 | self | | file://:0:0:0:0 | & | -| main.rs:1092:14:1092:17 | self | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1092:14:1092:17 | self | &T.T | main.rs:1082:10:1082:10 | T | -| main.rs:1092:14:1092:19 | self.0 | | main.rs:1082:10:1082:10 | T | -| main.rs:1097:13:1097:14 | x1 | | main.rs:1076:5:1077:19 | S | -| main.rs:1097:13:1097:14 | x1 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1097:18:1097:22 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1097:18:1097:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1097:20:1097:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1098:18:1098:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1098:26:1098:27 | x1 | | main.rs:1076:5:1077:19 | S | -| main.rs:1098:26:1098:27 | x1 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1098:26:1098:32 | x1.m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1100:13:1100:14 | x2 | | main.rs:1076:5:1077:19 | S | -| main.rs:1100:13:1100:14 | x2 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1100:18:1100:22 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1100:18:1100:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1100:20:1100:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1102:18:1102:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1102:26:1102:27 | x2 | | main.rs:1076:5:1077:19 | S | -| main.rs:1102:26:1102:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1102:26:1102:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1102:26:1102:32 | x2.m2() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1103:18:1103:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1103:26:1103:27 | x2 | | main.rs:1076:5:1077:19 | S | -| main.rs:1103:26:1103:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1103:26:1103:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1103:26:1103:32 | x2.m3() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1105:13:1105:14 | x3 | | main.rs:1076:5:1077:19 | S | -| main.rs:1105:13:1105:14 | x3 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1105:18:1105:22 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1105:18:1105:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1105:20:1105:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1107:18:1107:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1107:26:1107:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1107:26:1107:41 | ...::m2(...) | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1107:38:1107:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1107:38:1107:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1107:38:1107:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1107:39:1107:40 | x3 | | main.rs:1076:5:1077:19 | S | -| main.rs:1107:39:1107:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1108:18:1108:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1108:26:1108:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1108:26:1108:41 | ...::m3(...) | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1108:38:1108:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1108:38:1108:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1108:38:1108:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1108:39:1108:40 | x3 | | main.rs:1076:5:1077:19 | S | -| main.rs:1108:39:1108:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1110:13:1110:14 | x4 | | file://:0:0:0:0 | & | -| main.rs:1110:13:1110:14 | x4 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1110:13:1110:14 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1110:18:1110:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1110:18:1110:23 | &... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1110:18:1110:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1110:19:1110:23 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1110:19:1110:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1110:21:1110:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1112:18:1112:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1112:26:1112:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1112:26:1112:27 | x4 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1112:26:1112:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1112:26:1112:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1112:26:1112:32 | x4.m2() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1113:18:1113:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1113:26:1113:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1113:26:1113:27 | x4 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1113:26:1113:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1113:26:1113:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1113:26:1113:32 | x4.m3() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1115:13:1115:14 | x5 | | file://:0:0:0:0 | & | -| main.rs:1115:13:1115:14 | x5 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1115:13:1115:14 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1115:18:1115:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1115:18:1115:23 | &... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1115:18:1115:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1115:19:1115:23 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1115:19:1115:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1115:21:1115:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1117:18:1117:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1117:26:1117:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1117:26:1117:27 | x5 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1117:26:1117:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1117:26:1117:32 | x5.m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1118:18:1118:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1118:26:1118:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1118:26:1118:27 | x5 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1118:26:1118:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1118:26:1118:29 | x5.0 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:13:1120:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1120:13:1120:14 | x6 | &T | file://:0:0:0:0 | & | -| main.rs:1120:13:1120:14 | x6 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1120:13:1120:14 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1120:13:1120:14 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:13:1120:14 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:18:1120:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1120:18:1120:23 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1120:18:1120:23 | &... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1120:18:1120:23 | &... | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1120:18:1120:23 | &... | &T.&T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:18:1120:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:19:1120:23 | S(...) | | file://:0:0:0:0 | & | -| main.rs:1120:19:1120:23 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1120:19:1120:23 | S(...) | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1120:19:1120:23 | S(...) | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:19:1120:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1120:21:1120:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:18:1123:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1123:26:1123:30 | (...) | | file://:0:0:0:0 | & | -| main.rs:1123:26:1123:30 | (...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1123:26:1123:30 | (...) | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1123:26:1123:30 | (...) | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:26:1123:30 | (...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:26:1123:35 | ... .m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:27:1123:29 | * ... | | file://:0:0:0:0 | & | -| main.rs:1123:27:1123:29 | * ... | | main.rs:1076:5:1077:19 | S | -| main.rs:1123:27:1123:29 | * ... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1123:27:1123:29 | * ... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:27:1123:29 | * ... | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:28:1123:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1123:28:1123:29 | x6 | &T | file://:0:0:0:0 | & | -| main.rs:1123:28:1123:29 | x6 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1123:28:1123:29 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1123:28:1123:29 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1123:28:1123:29 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:13:1125:14 | x7 | | main.rs:1076:5:1077:19 | S | -| main.rs:1125:13:1125:14 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1125:13:1125:14 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:18:1125:23 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1125:18:1125:23 | S(...) | T | file://:0:0:0:0 | & | -| main.rs:1125:18:1125:23 | S(...) | T.&T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:20:1125:22 | &S2 | | file://:0:0:0:0 | & | -| main.rs:1125:20:1125:22 | &S2 | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:21:1125:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1128:13:1128:13 | t | | file://:0:0:0:0 | & | -| main.rs:1128:13:1128:13 | t | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1128:17:1128:18 | x7 | | main.rs:1076:5:1077:19 | S | -| main.rs:1128:17:1128:18 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1128:17:1128:18 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1128:17:1128:23 | x7.m1() | | file://:0:0:0:0 | & | -| main.rs:1128:17:1128:23 | x7.m1() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1129:18:1129:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1129:26:1129:27 | x7 | | main.rs:1076:5:1077:19 | S | -| main.rs:1129:26:1129:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1129:26:1129:27 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1131:13:1131:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1131:27:1131:33 | "Hello" | | {EXTERNAL LOCATION} | str | -| main.rs:1131:27:1131:45 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | -| main.rs:1134:13:1134:13 | u | | {EXTERNAL LOCATION} | Result | -| main.rs:1134:13:1134:13 | u | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1134:17:1134:18 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1134:17:1134:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | -| main.rs:1134:17:1134:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | -| main.rs:1141:16:1141:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1141:16:1141:20 | SelfParam | &T | main.rs:1139:5:1147:5 | Self [trait MyTrait] | -| main.rs:1144:16:1144:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1144:16:1144:20 | SelfParam | &T | main.rs:1139:5:1147:5 | Self [trait MyTrait] | -| main.rs:1144:32:1146:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1144:32:1146:9 | { ... } | &T | main.rs:1139:5:1147:5 | Self [trait MyTrait] | -| main.rs:1145:13:1145:16 | self | | file://:0:0:0:0 | & | -| main.rs:1145:13:1145:16 | self | &T | main.rs:1139:5:1147:5 | Self [trait MyTrait] | -| main.rs:1145:13:1145:22 | self.foo() | | file://:0:0:0:0 | & | -| main.rs:1145:13:1145:22 | self.foo() | &T | main.rs:1139:5:1147:5 | Self [trait MyTrait] | -| main.rs:1153:16:1153:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1153:16:1153:20 | SelfParam | &T | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1153:36:1155:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1153:36:1155:9 | { ... } | &T | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1154:13:1154:16 | self | | file://:0:0:0:0 | & | -| main.rs:1154:13:1154:16 | self | &T | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1159:13:1159:13 | x | | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1159:17:1159:24 | MyStruct | | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1160:9:1160:9 | x | | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1160:9:1160:15 | x.bar() | | file://:0:0:0:0 | & | -| main.rs:1160:9:1160:15 | x.bar() | &T | main.rs:1149:5:1149:20 | MyStruct | -| main.rs:1170:16:1170:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1170:16:1170:20 | SelfParam | &T | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1170:16:1170:20 | SelfParam | &T.T | main.rs:1169:10:1169:10 | T | -| main.rs:1170:32:1172:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1170:32:1172:9 | { ... } | &T | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1170:32:1172:9 | { ... } | &T.T | main.rs:1169:10:1169:10 | T | -| main.rs:1171:13:1171:16 | self | | file://:0:0:0:0 | & | -| main.rs:1171:13:1171:16 | self | &T | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1171:13:1171:16 | self | &T.T | main.rs:1169:10:1169:10 | T | -| main.rs:1176:13:1176:13 | x | | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1176:13:1176:13 | x | T | main.rs:1165:5:1165:13 | S | -| main.rs:1176:17:1176:27 | MyStruct(...) | | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1176:17:1176:27 | MyStruct(...) | T | main.rs:1165:5:1165:13 | S | -| main.rs:1176:26:1176:26 | S | | main.rs:1165:5:1165:13 | S | -| main.rs:1177:9:1177:9 | x | | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1177:9:1177:9 | x | T | main.rs:1165:5:1165:13 | S | -| main.rs:1177:9:1177:15 | x.foo() | | file://:0:0:0:0 | & | -| main.rs:1177:9:1177:15 | x.foo() | &T | main.rs:1167:5:1167:26 | MyStruct | -| main.rs:1177:9:1177:15 | x.foo() | &T.T | main.rs:1165:5:1165:13 | S | -| main.rs:1188:17:1188:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1188:17:1188:25 | SelfParam | &T | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1189:13:1189:16 | self | | file://:0:0:0:0 | & | -| main.rs:1189:13:1189:16 | self | &T | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1189:13:1189:21 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1189:13:1189:34 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1189:25:1189:34 | ! ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1189:26:1189:29 | self | | file://:0:0:0:0 | & | -| main.rs:1189:26:1189:29 | self | &T | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1189:26:1189:34 | self.bool | | {EXTERNAL LOCATION} | bool | -| main.rs:1196:15:1196:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1196:15:1196:19 | SelfParam | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1196:31:1198:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1196:31:1198:9 | { ... } | &T | file://:0:0:0:0 | & | -| main.rs:1196:31:1198:9 | { ... } | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1196:31:1198:9 | { ... } | &T.&T | file://:0:0:0:0 | & | -| main.rs:1196:31:1198:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1196:31:1198:9 | { ... } | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1197:13:1197:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1197:13:1197:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1197:13:1197:19 | &... | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1197:13:1197:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1197:13:1197:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1197:13:1197:19 | &... | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1197:14:1197:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1197:14:1197:19 | &... | | main.rs:1193:5:1193:13 | S | -| main.rs:1197:14:1197:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1197:14:1197:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1197:14:1197:19 | &... | &T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1197:15:1197:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1197:15:1197:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1197:15:1197:19 | &self | &T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1197:16:1197:19 | self | | file://:0:0:0:0 | & | -| main.rs:1197:16:1197:19 | self | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1200:15:1200:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1200:15:1200:25 | SelfParam | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1200:37:1202:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1200:37:1202:9 | { ... } | &T | file://:0:0:0:0 | & | -| main.rs:1200:37:1202:9 | { ... } | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1200:37:1202:9 | { ... } | &T.&T | file://:0:0:0:0 | & | -| main.rs:1200:37:1202:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1200:37:1202:9 | { ... } | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1201:13:1201:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1201:13:1201:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1201:13:1201:19 | &... | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1201:13:1201:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1201:13:1201:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1201:13:1201:19 | &... | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1201:14:1201:19 | &... | | file://:0:0:0:0 | & | -| main.rs:1201:14:1201:19 | &... | | main.rs:1193:5:1193:13 | S | -| main.rs:1201:14:1201:19 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1201:14:1201:19 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1201:14:1201:19 | &... | &T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1201:15:1201:19 | &self | | file://:0:0:0:0 | & | -| main.rs:1201:15:1201:19 | &self | &T | file://:0:0:0:0 | & | -| main.rs:1201:15:1201:19 | &self | &T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1201:16:1201:19 | self | | file://:0:0:0:0 | & | -| main.rs:1201:16:1201:19 | self | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1204:15:1204:15 | x | | file://:0:0:0:0 | & | -| main.rs:1204:15:1204:15 | x | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1204:34:1206:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1204:34:1206:9 | { ... } | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1205:13:1205:13 | x | | file://:0:0:0:0 | & | -| main.rs:1205:13:1205:13 | x | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1208:15:1208:15 | x | | file://:0:0:0:0 | & | -| main.rs:1208:15:1208:15 | x | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1208:34:1210:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1208:34:1210:9 | { ... } | &T | file://:0:0:0:0 | & | -| main.rs:1208:34:1210:9 | { ... } | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1208:34:1210:9 | { ... } | &T.&T | file://:0:0:0:0 | & | -| main.rs:1208:34:1210:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1208:34:1210:9 | { ... } | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1209:13:1209:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1209:13:1209:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1209:13:1209:16 | &... | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1209:13:1209:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1209:13:1209:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | -| main.rs:1209:13:1209:16 | &... | &T.&T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1209:14:1209:16 | &... | | file://:0:0:0:0 | & | -| main.rs:1209:14:1209:16 | &... | | main.rs:1193:5:1193:13 | S | -| main.rs:1209:14:1209:16 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1209:14:1209:16 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1209:14:1209:16 | &... | &T.&T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1209:15:1209:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1209:15:1209:16 | &x | &T | file://:0:0:0:0 | & | -| main.rs:1209:15:1209:16 | &x | &T.&T | main.rs:1193:5:1193:13 | S | -| main.rs:1209:16:1209:16 | x | | file://:0:0:0:0 | & | -| main.rs:1209:16:1209:16 | x | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1214:13:1214:13 | x | | main.rs:1193:5:1193:13 | S | -| main.rs:1214:17:1214:20 | S {...} | | main.rs:1193:5:1193:13 | S | -| main.rs:1215:9:1215:9 | x | | main.rs:1193:5:1193:13 | S | -| main.rs:1215:9:1215:14 | x.f1() | | file://:0:0:0:0 | & | -| main.rs:1215:9:1215:14 | x.f1() | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1216:9:1216:9 | x | | main.rs:1193:5:1193:13 | S | -| main.rs:1216:9:1216:14 | x.f2() | | file://:0:0:0:0 | & | -| main.rs:1216:9:1216:14 | x.f2() | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1217:9:1217:17 | ...::f3(...) | | file://:0:0:0:0 | & | -| main.rs:1217:9:1217:17 | ...::f3(...) | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1217:15:1217:16 | &x | | file://:0:0:0:0 | & | -| main.rs:1217:15:1217:16 | &x | &T | main.rs:1193:5:1193:13 | S | -| main.rs:1217:16:1217:16 | x | | main.rs:1193:5:1193:13 | S | -| main.rs:1219:13:1219:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1219:13:1219:13 | n | | file://:0:0:0:0 | & | -| main.rs:1219:17:1219:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1219:17:1219:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1219:18:1219:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1219:18:1219:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1219:18:1219:24 | * ... | &T | file://:0:0:0:0 | & | -| main.rs:1219:19:1219:24 | &... | | file://:0:0:0:0 | & | -| main.rs:1219:19:1219:24 | &... | &T | file://:0:0:0:0 | & | -| main.rs:1219:19:1219:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | -| main.rs:1219:19:1219:24 | &... | &T.&T | file://:0:0:0:0 | & | -| main.rs:1219:20:1219:24 | &true | | file://:0:0:0:0 | & | -| main.rs:1219:20:1219:24 | &true | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1219:20:1219:24 | &true | &T | file://:0:0:0:0 | & | -| main.rs:1219:21:1219:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1219:21:1219:24 | true | | file://:0:0:0:0 | & | -| main.rs:1223:13:1223:20 | mut flag | | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1223:24:1223:41 | ...::default(...) | | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1224:22:1224:30 | &mut flag | | file://:0:0:0:0 | & | -| main.rs:1224:22:1224:30 | &mut flag | &T | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1224:27:1224:30 | flag | | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1225:26:1225:29 | flag | | main.rs:1182:5:1185:5 | MyFlag | -| main.rs:1239:43:1242:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1239:43:1242:5 | { ... } | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1239:43:1242:5 | { ... } | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1240:13:1240:13 | x | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1240:17:1240:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1240:17:1240:30 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1240:17:1240:31 | TryExpr | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1240:28:1240:29 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1241:9:1241:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1241:9:1241:22 | ...::Ok(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1241:9:1241:22 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1241:20:1241:21 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1245:46:1249:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1245:46:1249:5 | { ... } | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1245:46:1249:5 | { ... } | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1246:13:1246:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1246:13:1246:13 | x | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1246:17:1246:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1246:17:1246:30 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1246:28:1246:29 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1247:13:1247:13 | y | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1247:17:1247:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1247:17:1247:17 | x | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1247:17:1247:18 | TryExpr | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1248:9:1248:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1248:9:1248:22 | ...::Ok(...) | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1248:9:1248:22 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1248:20:1248:21 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1252:40:1257:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1252:40:1257:5 | { ... } | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1252:40:1257:5 | { ... } | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1253:13:1253:13 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1253:13:1253:13 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1253:13:1253:13 | x | T.T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1253:17:1253:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1253:17:1253:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | -| main.rs:1253:17:1253:42 | ...::Ok(...) | T.T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1253:28:1253:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1253:28:1253:41 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1253:39:1253:40 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1255:17:1255:17 | x | | {EXTERNAL LOCATION} | Result | -| main.rs:1255:17:1255:17 | x | T | {EXTERNAL LOCATION} | Result | -| main.rs:1255:17:1255:17 | x | T.T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1255:17:1255:18 | TryExpr | | {EXTERNAL LOCATION} | Result | -| main.rs:1255:17:1255:18 | TryExpr | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1255:17:1255:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1256:9:1256:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1256:9:1256:22 | ...::Ok(...) | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1256:9:1256:22 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1256:20:1256:21 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1260:30:1260:34 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1260:30:1260:34 | input | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1260:30:1260:34 | input | T | main.rs:1260:20:1260:27 | T | -| main.rs:1260:69:1267:5 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1260:69:1267:5 | { ... } | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1260:69:1267:5 | { ... } | T | main.rs:1260:20:1260:27 | T | -| main.rs:1261:13:1261:17 | value | | main.rs:1260:20:1260:27 | T | -| main.rs:1261:21:1261:25 | input | | {EXTERNAL LOCATION} | Result | -| main.rs:1261:21:1261:25 | input | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1261:21:1261:25 | input | T | main.rs:1260:20:1260:27 | T | -| main.rs:1261:21:1261:26 | TryExpr | | main.rs:1260:20:1260:27 | T | -| main.rs:1262:22:1262:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1262:22:1262:38 | ...::Ok(...) | T | main.rs:1260:20:1260:27 | T | -| main.rs:1262:22:1265:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1262:33:1262:37 | value | | main.rs:1260:20:1260:27 | T | -| main.rs:1262:53:1265:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1262:53:1265:9 | { ... } | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1263:22:1263:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1264:13:1264:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1264:13:1264:34 | ...::Ok::<...>(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1266:9:1266:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1266:9:1266:23 | ...::Err(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1266:9:1266:23 | ...::Err(...) | T | main.rs:1260:20:1260:27 | T | -| main.rs:1266:21:1266:22 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1270:37:1270:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1270:37:1270:52 | try_same_error(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1270:37:1270:52 | try_same_error(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1271:22:1271:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1274:37:1274:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1274:37:1274:55 | try_convert_error(...) | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1274:37:1274:55 | try_convert_error(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1275:22:1275:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1278:37:1278:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1278:37:1278:49 | try_chained(...) | E | main.rs:1235:5:1236:14 | S2 | -| main.rs:1278:37:1278:49 | try_chained(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1279:22:1279:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1282:37:1282:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1282:37:1282:63 | try_complex(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1282:37:1282:63 | try_complex(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1282:49:1282:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1282:49:1282:62 | ...::Ok(...) | E | main.rs:1232:5:1233:14 | S1 | -| main.rs:1282:49:1282:62 | ...::Ok(...) | T | main.rs:1232:5:1233:14 | S1 | -| main.rs:1282:60:1282:61 | S1 | | main.rs:1232:5:1233:14 | S1 | -| main.rs:1283:22:1283:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1290:13:1290:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1290:22:1290:22 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1291:13:1291:13 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1291:17:1291:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1292:13:1292:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1292:17:1292:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1292:17:1292:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | -| main.rs:1292:21:1292:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1293:13:1293:13 | z | | {EXTERNAL LOCATION} | i32 | -| main.rs:1293:17:1293:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1293:17:1293:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | -| main.rs:1294:13:1294:13 | c | | {EXTERNAL LOCATION} | char | -| main.rs:1294:17:1294:19 | 'c' | | {EXTERNAL LOCATION} | char | -| main.rs:1295:13:1295:17 | hello | | {EXTERNAL LOCATION} | str | -| main.rs:1295:21:1295:27 | "Hello" | | {EXTERNAL LOCATION} | str | -| main.rs:1296:13:1296:13 | f | | {EXTERNAL LOCATION} | f64 | -| main.rs:1296:17:1296:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | -| main.rs:1297:13:1297:13 | t | | {EXTERNAL LOCATION} | bool | -| main.rs:1297:17:1297:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1298:13:1298:13 | f | | {EXTERNAL LOCATION} | bool | -| main.rs:1298:17:1298:21 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1305:13:1305:13 | x | | {EXTERNAL LOCATION} | bool | -| main.rs:1305:17:1305:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1305:17:1305:29 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1305:25:1305:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1306:13:1306:13 | y | | {EXTERNAL LOCATION} | bool | -| main.rs:1306:17:1306:20 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1306:17:1306:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1306:25:1306:29 | false | | {EXTERNAL LOCATION} | bool | -| main.rs:1308:13:1308:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1309:13:1309:16 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1309:20:1309:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1309:20:1309:27 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1309:26:1309:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1310:12:1310:15 | cond | | {EXTERNAL LOCATION} | bool | -| main.rs:1311:17:1311:17 | z | | file://:0:0:0:0 | () | -| main.rs:1311:21:1311:27 | (...) | | file://:0:0:0:0 | () | -| main.rs:1311:22:1311:22 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1311:22:1311:26 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1311:26:1311:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1313:13:1313:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1313:13:1313:17 | ... = ... | | file://:0:0:0:0 | () | -| main.rs:1313:17:1313:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1315:9:1315:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1329:30:1331:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1330:13:1330:31 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1330:23:1330:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1330:23:1330:23 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1330:29:1330:29 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1330:29:1330:29 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1337:16:1337:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1337:22:1337:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1337:41:1342:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1338:13:1341:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1339:20:1339:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1339:20:1339:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1339:20:1339:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1339:29:1339:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1339:29:1339:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1340:20:1340:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1340:20:1340:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1340:20:1340:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1340:29:1340:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1340:29:1340:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1347:23:1347:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1347:23:1347:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1347:34:1347:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1348:13:1348:16 | self | | file://:0:0:0:0 | & | -| main.rs:1348:13:1348:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1348:13:1348:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1348:13:1348:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1348:23:1348:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1348:23:1348:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1349:13:1349:16 | self | | file://:0:0:0:0 | & | -| main.rs:1349:13:1349:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1349:13:1349:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1349:13:1349:27 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1349:23:1349:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1349:23:1349:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1355:16:1355:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1355:22:1355:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1355:41:1360:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1356:13:1359:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1357:20:1357:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1357:20:1357:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1357:20:1357:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1357:29:1357:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1357:29:1357:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1358:20:1358:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1358:20:1358:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1358:20:1358:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1358:29:1358:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1358:29:1358:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1365:23:1365:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1365:23:1365:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1365:34:1365:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1366:13:1366:16 | self | | file://:0:0:0:0 | & | -| main.rs:1366:13:1366:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1366:13:1366:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1366:13:1366:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1366:23:1366:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1366:23:1366:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1367:13:1367:16 | self | | file://:0:0:0:0 | & | -| main.rs:1367:13:1367:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1367:13:1367:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1367:13:1367:27 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1367:23:1367:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1367:23:1367:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1373:16:1373:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1373:22:1373:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1373:41:1378:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1374:13:1377:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1375:20:1375:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1375:20:1375:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1375:20:1375:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1375:29:1375:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1375:29:1375:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1376:20:1376:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1376:20:1376:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1376:20:1376:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1376:29:1376:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1376:29:1376:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1382:23:1382:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1382:23:1382:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1382:34:1382:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1088:15:1088:18 | SelfParam | | main.rs:1076:5:1077:19 | S | +| main.rs:1088:15:1088:18 | SelfParam | T | main.rs:1087:10:1087:10 | T | +| main.rs:1088:26:1090:9 | { ... } | | main.rs:1087:10:1087:10 | T | +| main.rs:1089:13:1089:16 | self | | main.rs:1076:5:1077:19 | S | +| main.rs:1089:13:1089:16 | self | T | main.rs:1087:10:1087:10 | T | +| main.rs:1089:13:1089:18 | self.0 | | main.rs:1087:10:1087:10 | T | +| main.rs:1092:15:1092:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1092:15:1092:19 | SelfParam | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1092:15:1092:19 | SelfParam | &T.T | main.rs:1087:10:1087:10 | T | +| main.rs:1092:28:1094:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1092:28:1094:9 | { ... } | &T | main.rs:1087:10:1087:10 | T | +| main.rs:1093:13:1093:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1093:13:1093:19 | &... | &T | main.rs:1087:10:1087:10 | T | +| main.rs:1093:14:1093:17 | self | | file://:0:0:0:0 | & | +| main.rs:1093:14:1093:17 | self | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1093:14:1093:17 | self | &T.T | main.rs:1087:10:1087:10 | T | +| main.rs:1093:14:1093:19 | self.0 | | main.rs:1087:10:1087:10 | T | +| main.rs:1096:15:1096:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1096:15:1096:25 | SelfParam | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1096:15:1096:25 | SelfParam | &T.T | main.rs:1087:10:1087:10 | T | +| main.rs:1096:34:1098:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1096:34:1098:9 | { ... } | &T | main.rs:1087:10:1087:10 | T | +| main.rs:1097:13:1097:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1097:13:1097:19 | &... | &T | main.rs:1087:10:1087:10 | T | +| main.rs:1097:14:1097:17 | self | | file://:0:0:0:0 | & | +| main.rs:1097:14:1097:17 | self | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1097:14:1097:17 | self | &T.T | main.rs:1087:10:1087:10 | T | +| main.rs:1097:14:1097:19 | self.0 | | main.rs:1087:10:1087:10 | T | +| main.rs:1102:29:1102:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1102:29:1102:33 | SelfParam | &T | main.rs:1101:5:1104:5 | Self [trait ATrait] | +| main.rs:1103:33:1103:36 | SelfParam | | main.rs:1101:5:1104:5 | Self [trait ATrait] | +| main.rs:1109:29:1109:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1109:29:1109:33 | SelfParam | &T | file://:0:0:0:0 | & | +| main.rs:1109:29:1109:33 | SelfParam | &T.&T | file://:0:0:0:0 | & | +| main.rs:1109:29:1109:33 | SelfParam | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1109:29:1109:33 | SelfParam | &T.&T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1109:43:1111:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1110:13:1110:22 | (...) | | file://:0:0:0:0 | & | +| main.rs:1110:13:1110:22 | (...) | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:13:1110:22 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:13:1110:24 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1110:14:1110:21 | * ... | | file://:0:0:0:0 | & | +| main.rs:1110:14:1110:21 | * ... | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:14:1110:21 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:15:1110:21 | (...) | | file://:0:0:0:0 | & | +| main.rs:1110:15:1110:21 | (...) | &T | file://:0:0:0:0 | & | +| main.rs:1110:15:1110:21 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:15:1110:21 | (...) | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:16:1110:20 | * ... | | file://:0:0:0:0 | & | +| main.rs:1110:16:1110:20 | * ... | &T | file://:0:0:0:0 | & | +| main.rs:1110:16:1110:20 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:16:1110:20 | * ... | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:17:1110:20 | self | | file://:0:0:0:0 | & | +| main.rs:1110:17:1110:20 | self | &T | file://:0:0:0:0 | & | +| main.rs:1110:17:1110:20 | self | &T.&T | file://:0:0:0:0 | & | +| main.rs:1110:17:1110:20 | self | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:17:1110:20 | self | &T.&T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1114:33:1114:36 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1114:33:1114:36 | SelfParam | &T | file://:0:0:0:0 | & | +| main.rs:1114:33:1114:36 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1114:33:1114:36 | SelfParam | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1114:46:1116:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1115:13:1115:19 | (...) | | file://:0:0:0:0 | & | +| main.rs:1115:13:1115:19 | (...) | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1115:13:1115:19 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1115:13:1115:21 | ... .a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1115:14:1115:18 | * ... | | file://:0:0:0:0 | & | +| main.rs:1115:14:1115:18 | * ... | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1115:14:1115:18 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1115:15:1115:18 | self | | file://:0:0:0:0 | & | +| main.rs:1115:15:1115:18 | self | &T | file://:0:0:0:0 | & | +| main.rs:1115:15:1115:18 | self | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1115:15:1115:18 | self | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1120:13:1120:14 | x1 | | main.rs:1076:5:1077:19 | S | +| main.rs:1120:13:1120:14 | x1 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1120:18:1120:22 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1120:18:1120:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1120:20:1120:21 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1121:18:1121:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1121:26:1121:27 | x1 | | main.rs:1076:5:1077:19 | S | +| main.rs:1121:26:1121:27 | x1 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1121:26:1121:32 | x1.m1() | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1123:13:1123:14 | x2 | | main.rs:1076:5:1077:19 | S | +| main.rs:1123:13:1123:14 | x2 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1123:18:1123:22 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1123:18:1123:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1123:20:1123:21 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1125:26:1125:27 | x2 | | main.rs:1076:5:1077:19 | S | +| main.rs:1125:26:1125:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1125:26:1125:32 | x2.m2() | | file://:0:0:0:0 | & | +| main.rs:1125:26:1125:32 | x2.m2() | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1126:18:1126:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1126:26:1126:27 | x2 | | main.rs:1076:5:1077:19 | S | +| main.rs:1126:26:1126:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1126:26:1126:32 | x2.m3() | | file://:0:0:0:0 | & | +| main.rs:1126:26:1126:32 | x2.m3() | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1128:13:1128:14 | x3 | | main.rs:1076:5:1077:19 | S | +| main.rs:1128:13:1128:14 | x3 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1128:18:1128:22 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1128:18:1128:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1128:20:1128:21 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1130:18:1130:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1130:26:1130:41 | ...::m2(...) | | file://:0:0:0:0 | & | +| main.rs:1130:26:1130:41 | ...::m2(...) | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1130:38:1130:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1130:38:1130:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1130:38:1130:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1130:39:1130:40 | x3 | | main.rs:1076:5:1077:19 | S | +| main.rs:1130:39:1130:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1131:18:1131:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1131:26:1131:41 | ...::m3(...) | | file://:0:0:0:0 | & | +| main.rs:1131:26:1131:41 | ...::m3(...) | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1131:38:1131:40 | &x3 | | file://:0:0:0:0 | & | +| main.rs:1131:38:1131:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1131:38:1131:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1131:39:1131:40 | x3 | | main.rs:1076:5:1077:19 | S | +| main.rs:1131:39:1131:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1133:13:1133:14 | x4 | | file://:0:0:0:0 | & | +| main.rs:1133:13:1133:14 | x4 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1133:13:1133:14 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1133:18:1133:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1133:18:1133:23 | &... | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1133:18:1133:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1133:19:1133:23 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1133:19:1133:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1133:21:1133:22 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1135:18:1135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1135:26:1135:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1135:26:1135:27 | x4 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1135:26:1135:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1135:26:1135:32 | x4.m2() | | file://:0:0:0:0 | & | +| main.rs:1135:26:1135:32 | x4.m2() | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1136:18:1136:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1136:26:1136:27 | x4 | | file://:0:0:0:0 | & | +| main.rs:1136:26:1136:27 | x4 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1136:26:1136:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1136:26:1136:32 | x4.m3() | | file://:0:0:0:0 | & | +| main.rs:1136:26:1136:32 | x4.m3() | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1138:13:1138:14 | x5 | | file://:0:0:0:0 | & | +| main.rs:1138:13:1138:14 | x5 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1138:13:1138:14 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1138:18:1138:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1138:18:1138:23 | &... | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1138:18:1138:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1138:19:1138:23 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1138:19:1138:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1138:21:1138:22 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1140:26:1140:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1140:26:1140:27 | x5 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1140:26:1140:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1140:26:1140:32 | x5.m1() | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1141:18:1141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1141:26:1141:27 | x5 | | file://:0:0:0:0 | & | +| main.rs:1141:26:1141:27 | x5 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1141:26:1141:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1141:26:1141:29 | x5.0 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:13:1143:14 | x6 | | file://:0:0:0:0 | & | +| main.rs:1143:13:1143:14 | x6 | &T | file://:0:0:0:0 | & | +| main.rs:1143:13:1143:14 | x6 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1143:13:1143:14 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | +| main.rs:1143:13:1143:14 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:13:1143:14 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:18:1143:23 | &... | | file://:0:0:0:0 | & | +| main.rs:1143:18:1143:23 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1143:18:1143:23 | &... | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1143:18:1143:23 | &... | &T.&T | main.rs:1076:5:1077:19 | S | +| main.rs:1143:18:1143:23 | &... | &T.&T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:18:1143:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:19:1143:23 | S(...) | | file://:0:0:0:0 | & | +| main.rs:1143:19:1143:23 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1143:19:1143:23 | S(...) | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1143:19:1143:23 | S(...) | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:19:1143:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1143:21:1143:22 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:18:1146:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1146:26:1146:30 | (...) | | file://:0:0:0:0 | & | +| main.rs:1146:26:1146:30 | (...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1146:26:1146:30 | (...) | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1146:26:1146:30 | (...) | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:26:1146:30 | (...) | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:26:1146:35 | ... .m1() | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:27:1146:29 | * ... | | file://:0:0:0:0 | & | +| main.rs:1146:27:1146:29 | * ... | | main.rs:1076:5:1077:19 | S | +| main.rs:1146:27:1146:29 | * ... | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1146:27:1146:29 | * ... | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:27:1146:29 | * ... | T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:28:1146:29 | x6 | | file://:0:0:0:0 | & | +| main.rs:1146:28:1146:29 | x6 | &T | file://:0:0:0:0 | & | +| main.rs:1146:28:1146:29 | x6 | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1146:28:1146:29 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | +| main.rs:1146:28:1146:29 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1146:28:1146:29 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1148:13:1148:14 | x7 | | main.rs:1076:5:1077:19 | S | +| main.rs:1148:13:1148:14 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1148:13:1148:14 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1148:18:1148:23 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1148:18:1148:23 | S(...) | T | file://:0:0:0:0 | & | +| main.rs:1148:18:1148:23 | S(...) | T.&T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1148:20:1148:22 | &S2 | | file://:0:0:0:0 | & | +| main.rs:1148:20:1148:22 | &S2 | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1148:21:1148:22 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1151:13:1151:13 | t | | file://:0:0:0:0 | & | +| main.rs:1151:13:1151:13 | t | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1151:17:1151:18 | x7 | | main.rs:1076:5:1077:19 | S | +| main.rs:1151:17:1151:18 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1151:17:1151:18 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1151:17:1151:23 | x7.m1() | | file://:0:0:0:0 | & | +| main.rs:1151:17:1151:23 | x7.m1() | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1152:26:1152:27 | x7 | | main.rs:1076:5:1077:19 | S | +| main.rs:1152:26:1152:27 | x7 | T | file://:0:0:0:0 | & | +| main.rs:1152:26:1152:27 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1154:13:1154:14 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1154:26:1154:32 | "Hello" | | {EXTERNAL LOCATION} | str | +| main.rs:1154:26:1154:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1158:13:1158:13 | u | | {EXTERNAL LOCATION} | Result | +| main.rs:1158:13:1158:13 | u | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1158:17:1158:18 | x9 | | {EXTERNAL LOCATION} | String | +| main.rs:1158:17:1158:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | +| main.rs:1158:17:1158:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | +| main.rs:1160:13:1160:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1160:13:1160:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:24:1160:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1160:24:1160:39 | &... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:25:1160:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1162:17:1162:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1162:17:1162:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1163:18:1163:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1166:13:1166:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1166:13:1166:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1166:24:1166:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1166:24:1166:39 | &... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1166:25:1166:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1167:17:1167:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1167:17:1167:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1168:18:1168:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1175:16:1175:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1175:16:1175:20 | SelfParam | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | +| main.rs:1178:16:1178:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1178:16:1178:20 | SelfParam | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | +| main.rs:1178:32:1180:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1178:32:1180:9 | { ... } | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | +| main.rs:1179:13:1179:16 | self | | file://:0:0:0:0 | & | +| main.rs:1179:13:1179:16 | self | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | +| main.rs:1179:13:1179:22 | self.foo() | | file://:0:0:0:0 | & | +| main.rs:1179:13:1179:22 | self.foo() | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | +| main.rs:1187:16:1187:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1187:16:1187:20 | SelfParam | &T | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1187:36:1189:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1187:36:1189:9 | { ... } | &T | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1188:13:1188:16 | self | | file://:0:0:0:0 | & | +| main.rs:1188:13:1188:16 | self | &T | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1193:13:1193:13 | x | | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1193:17:1193:24 | MyStruct | | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1194:9:1194:9 | x | | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1194:9:1194:15 | x.bar() | | file://:0:0:0:0 | & | +| main.rs:1194:9:1194:15 | x.bar() | &T | main.rs:1183:5:1183:20 | MyStruct | +| main.rs:1204:16:1204:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1204:16:1204:20 | SelfParam | &T | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1204:16:1204:20 | SelfParam | &T.T | main.rs:1203:10:1203:10 | T | +| main.rs:1204:32:1206:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1204:32:1206:9 | { ... } | &T | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1204:32:1206:9 | { ... } | &T.T | main.rs:1203:10:1203:10 | T | +| main.rs:1205:13:1205:16 | self | | file://:0:0:0:0 | & | +| main.rs:1205:13:1205:16 | self | &T | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1205:13:1205:16 | self | &T.T | main.rs:1203:10:1203:10 | T | +| main.rs:1210:13:1210:13 | x | | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1210:13:1210:13 | x | T | main.rs:1199:5:1199:13 | S | +| main.rs:1210:17:1210:27 | MyStruct(...) | | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1210:17:1210:27 | MyStruct(...) | T | main.rs:1199:5:1199:13 | S | +| main.rs:1210:26:1210:26 | S | | main.rs:1199:5:1199:13 | S | +| main.rs:1211:9:1211:9 | x | | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1211:9:1211:9 | x | T | main.rs:1199:5:1199:13 | S | +| main.rs:1211:9:1211:15 | x.foo() | | file://:0:0:0:0 | & | +| main.rs:1211:9:1211:15 | x.foo() | &T | main.rs:1201:5:1201:26 | MyStruct | +| main.rs:1211:9:1211:15 | x.foo() | &T.T | main.rs:1199:5:1199:13 | S | +| main.rs:1222:17:1222:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1222:17:1222:25 | SelfParam | &T | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1223:13:1223:16 | self | | file://:0:0:0:0 | & | +| main.rs:1223:13:1223:16 | self | &T | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1223:13:1223:21 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1223:13:1223:34 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1223:25:1223:34 | ! ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1223:26:1223:29 | self | | file://:0:0:0:0 | & | +| main.rs:1223:26:1223:29 | self | &T | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1223:26:1223:34 | self.bool | | {EXTERNAL LOCATION} | bool | +| main.rs:1230:15:1230:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1230:15:1230:19 | SelfParam | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1230:31:1232:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1230:31:1232:9 | { ... } | &T | file://:0:0:0:0 | & | +| main.rs:1230:31:1232:9 | { ... } | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1230:31:1232:9 | { ... } | &T.&T | file://:0:0:0:0 | & | +| main.rs:1230:31:1232:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1230:31:1232:9 | { ... } | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1231:13:1231:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1231:13:1231:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1231:13:1231:19 | &... | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1231:13:1231:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1231:13:1231:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1231:13:1231:19 | &... | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1231:14:1231:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1231:14:1231:19 | &... | | main.rs:1227:5:1227:13 | S | +| main.rs:1231:14:1231:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1231:14:1231:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1231:14:1231:19 | &... | &T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1231:15:1231:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1231:15:1231:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1231:15:1231:19 | &self | &T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1231:16:1231:19 | self | | file://:0:0:0:0 | & | +| main.rs:1231:16:1231:19 | self | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1234:15:1234:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1234:15:1234:25 | SelfParam | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1234:37:1236:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1234:37:1236:9 | { ... } | &T | file://:0:0:0:0 | & | +| main.rs:1234:37:1236:9 | { ... } | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1234:37:1236:9 | { ... } | &T.&T | file://:0:0:0:0 | & | +| main.rs:1234:37:1236:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1234:37:1236:9 | { ... } | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1235:13:1235:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1235:13:1235:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1235:13:1235:19 | &... | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1235:13:1235:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1235:13:1235:19 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1235:13:1235:19 | &... | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1235:14:1235:19 | &... | | file://:0:0:0:0 | & | +| main.rs:1235:14:1235:19 | &... | | main.rs:1227:5:1227:13 | S | +| main.rs:1235:14:1235:19 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1235:14:1235:19 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1235:14:1235:19 | &... | &T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1235:15:1235:19 | &self | | file://:0:0:0:0 | & | +| main.rs:1235:15:1235:19 | &self | &T | file://:0:0:0:0 | & | +| main.rs:1235:15:1235:19 | &self | &T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1235:16:1235:19 | self | | file://:0:0:0:0 | & | +| main.rs:1235:16:1235:19 | self | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1238:15:1238:15 | x | | file://:0:0:0:0 | & | +| main.rs:1238:15:1238:15 | x | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1238:34:1240:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1238:34:1240:9 | { ... } | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1239:13:1239:13 | x | | file://:0:0:0:0 | & | +| main.rs:1239:13:1239:13 | x | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1242:15:1242:15 | x | | file://:0:0:0:0 | & | +| main.rs:1242:15:1242:15 | x | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1242:34:1244:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1242:34:1244:9 | { ... } | &T | file://:0:0:0:0 | & | +| main.rs:1242:34:1244:9 | { ... } | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1242:34:1244:9 | { ... } | &T.&T | file://:0:0:0:0 | & | +| main.rs:1242:34:1244:9 | { ... } | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1242:34:1244:9 | { ... } | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1243:13:1243:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1243:13:1243:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1243:13:1243:16 | &... | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1243:13:1243:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1243:13:1243:16 | &... | &T.&T.&T | file://:0:0:0:0 | & | +| main.rs:1243:13:1243:16 | &... | &T.&T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1243:14:1243:16 | &... | | file://:0:0:0:0 | & | +| main.rs:1243:14:1243:16 | &... | | main.rs:1227:5:1227:13 | S | +| main.rs:1243:14:1243:16 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1243:14:1243:16 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1243:14:1243:16 | &... | &T.&T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1243:15:1243:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1243:15:1243:16 | &x | &T | file://:0:0:0:0 | & | +| main.rs:1243:15:1243:16 | &x | &T.&T | main.rs:1227:5:1227:13 | S | +| main.rs:1243:16:1243:16 | x | | file://:0:0:0:0 | & | +| main.rs:1243:16:1243:16 | x | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1248:13:1248:13 | x | | main.rs:1227:5:1227:13 | S | +| main.rs:1248:17:1248:20 | S {...} | | main.rs:1227:5:1227:13 | S | +| main.rs:1249:9:1249:9 | x | | main.rs:1227:5:1227:13 | S | +| main.rs:1249:9:1249:14 | x.f1() | | file://:0:0:0:0 | & | +| main.rs:1249:9:1249:14 | x.f1() | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1250:9:1250:9 | x | | main.rs:1227:5:1227:13 | S | +| main.rs:1250:9:1250:14 | x.f2() | | file://:0:0:0:0 | & | +| main.rs:1250:9:1250:14 | x.f2() | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1251:9:1251:17 | ...::f3(...) | | file://:0:0:0:0 | & | +| main.rs:1251:9:1251:17 | ...::f3(...) | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1251:15:1251:16 | &x | | file://:0:0:0:0 | & | +| main.rs:1251:15:1251:16 | &x | &T | main.rs:1227:5:1227:13 | S | +| main.rs:1251:16:1251:16 | x | | main.rs:1227:5:1227:13 | S | +| main.rs:1253:13:1253:13 | n | | {EXTERNAL LOCATION} | bool | +| main.rs:1253:13:1253:13 | n | | file://:0:0:0:0 | & | +| main.rs:1253:17:1253:24 | * ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1253:17:1253:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1253:18:1253:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1253:18:1253:24 | * ... | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:18:1253:24 | * ... | &T | file://:0:0:0:0 | & | +| main.rs:1253:19:1253:24 | &... | | file://:0:0:0:0 | & | +| main.rs:1253:19:1253:24 | &... | &T | file://:0:0:0:0 | & | +| main.rs:1253:19:1253:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:19:1253:24 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1253:20:1253:24 | &true | | file://:0:0:0:0 | & | +| main.rs:1253:20:1253:24 | &true | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:20:1253:24 | &true | &T | file://:0:0:0:0 | & | +| main.rs:1253:21:1253:24 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1253:21:1253:24 | true | | file://:0:0:0:0 | & | +| main.rs:1257:13:1257:20 | mut flag | | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1257:24:1257:41 | ...::default(...) | | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1258:22:1258:30 | &mut flag | | file://:0:0:0:0 | & | +| main.rs:1258:22:1258:30 | &mut flag | &T | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1258:27:1258:30 | flag | | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1259:18:1259:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1259:26:1259:29 | flag | | main.rs:1216:5:1219:5 | MyFlag | +| main.rs:1273:43:1276:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1273:43:1276:5 | { ... } | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1273:43:1276:5 | { ... } | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1274:13:1274:13 | x | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1274:17:1274:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1274:17:1274:30 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1274:17:1274:31 | TryExpr | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1274:28:1274:29 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1275:9:1275:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1275:9:1275:22 | ...::Ok(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1275:9:1275:22 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1275:20:1275:21 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1279:46:1283:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1279:46:1283:5 | { ... } | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1279:46:1283:5 | { ... } | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1280:13:1280:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1280:13:1280:13 | x | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1280:17:1280:30 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1280:17:1280:30 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1280:28:1280:29 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1281:13:1281:13 | y | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1281:17:1281:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1281:17:1281:17 | x | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1281:17:1281:18 | TryExpr | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1282:9:1282:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1282:9:1282:22 | ...::Ok(...) | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1282:9:1282:22 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1282:20:1282:21 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1286:40:1291:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1286:40:1291:5 | { ... } | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1286:40:1291:5 | { ... } | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1287:13:1287:13 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1287:13:1287:13 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1287:13:1287:13 | x | T.T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1287:17:1287:42 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1287:17:1287:42 | ...::Ok(...) | T | {EXTERNAL LOCATION} | Result | +| main.rs:1287:17:1287:42 | ...::Ok(...) | T.T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1287:28:1287:41 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1287:28:1287:41 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1287:39:1287:40 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1289:17:1289:17 | x | | {EXTERNAL LOCATION} | Result | +| main.rs:1289:17:1289:17 | x | T | {EXTERNAL LOCATION} | Result | +| main.rs:1289:17:1289:17 | x | T.T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1289:17:1289:18 | TryExpr | | {EXTERNAL LOCATION} | Result | +| main.rs:1289:17:1289:18 | TryExpr | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1289:17:1289:29 | ... .map(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1290:9:1290:22 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1290:9:1290:22 | ...::Ok(...) | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1290:9:1290:22 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1290:20:1290:21 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1294:30:1294:34 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1294:30:1294:34 | input | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1294:30:1294:34 | input | T | main.rs:1294:20:1294:27 | T | +| main.rs:1294:69:1301:5 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1294:69:1301:5 | { ... } | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1294:69:1301:5 | { ... } | T | main.rs:1294:20:1294:27 | T | +| main.rs:1295:13:1295:17 | value | | main.rs:1294:20:1294:27 | T | +| main.rs:1295:21:1295:25 | input | | {EXTERNAL LOCATION} | Result | +| main.rs:1295:21:1295:25 | input | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1295:21:1295:25 | input | T | main.rs:1294:20:1294:27 | T | +| main.rs:1295:21:1295:26 | TryExpr | | main.rs:1294:20:1294:27 | T | +| main.rs:1296:22:1296:38 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1296:22:1296:38 | ...::Ok(...) | T | main.rs:1294:20:1294:27 | T | +| main.rs:1296:22:1299:10 | ... .and_then(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1296:33:1296:37 | value | | main.rs:1294:20:1294:27 | T | +| main.rs:1296:53:1299:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1296:53:1299:9 | { ... } | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1297:22:1297:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1298:13:1298:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1298:13:1298:34 | ...::Ok::<...>(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1300:9:1300:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1300:9:1300:23 | ...::Err(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1300:9:1300:23 | ...::Err(...) | T | main.rs:1294:20:1294:27 | T | +| main.rs:1300:21:1300:22 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1304:37:1304:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1304:37:1304:52 | try_same_error(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1304:37:1304:52 | try_same_error(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1305:22:1305:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1308:37:1308:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1308:37:1308:55 | try_convert_error(...) | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1308:37:1308:55 | try_convert_error(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1309:22:1309:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1312:37:1312:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1312:37:1312:49 | try_chained(...) | E | main.rs:1269:5:1270:14 | S2 | +| main.rs:1312:37:1312:49 | try_chained(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1313:22:1313:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1316:37:1316:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1316:37:1316:63 | try_complex(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1316:37:1316:63 | try_complex(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1316:49:1316:62 | ...::Ok(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1316:49:1316:62 | ...::Ok(...) | E | main.rs:1266:5:1267:14 | S1 | +| main.rs:1316:49:1316:62 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | +| main.rs:1316:60:1316:61 | S1 | | main.rs:1266:5:1267:14 | S1 | +| main.rs:1317:22:1317:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1324:13:1324:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1324:22:1324:22 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1325:13:1325:13 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1325:17:1325:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1326:13:1326:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1326:17:1326:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1326:17:1326:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | +| main.rs:1326:21:1326:21 | y | | {EXTERNAL LOCATION} | i32 | +| main.rs:1327:13:1327:13 | z | | {EXTERNAL LOCATION} | i32 | +| main.rs:1327:17:1327:17 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1327:17:1327:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | +| main.rs:1328:13:1328:13 | c | | {EXTERNAL LOCATION} | char | +| main.rs:1328:17:1328:19 | 'c' | | {EXTERNAL LOCATION} | char | +| main.rs:1329:13:1329:17 | hello | | {EXTERNAL LOCATION} | str | +| main.rs:1329:21:1329:27 | "Hello" | | {EXTERNAL LOCATION} | str | +| main.rs:1330:13:1330:13 | f | | {EXTERNAL LOCATION} | f64 | +| main.rs:1330:17:1330:24 | 123.0f64 | | {EXTERNAL LOCATION} | f64 | +| main.rs:1331:13:1331:13 | t | | {EXTERNAL LOCATION} | bool | +| main.rs:1331:17:1331:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1332:13:1332:13 | f | | {EXTERNAL LOCATION} | bool | +| main.rs:1332:17:1332:21 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1339:13:1339:13 | x | | {EXTERNAL LOCATION} | bool | +| main.rs:1339:17:1339:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1339:17:1339:29 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1339:25:1339:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1340:13:1340:13 | y | | {EXTERNAL LOCATION} | bool | +| main.rs:1340:17:1340:20 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1340:17:1340:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1340:25:1340:29 | false | | {EXTERNAL LOCATION} | bool | +| main.rs:1342:13:1342:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1343:13:1343:16 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1343:20:1343:21 | 34 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1343:20:1343:27 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1343:26:1343:27 | 33 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1344:12:1344:15 | cond | | {EXTERNAL LOCATION} | bool | +| main.rs:1345:17:1345:17 | z | | file://:0:0:0:0 | () | +| main.rs:1345:21:1345:27 | (...) | | file://:0:0:0:0 | () | +| main.rs:1345:22:1345:22 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1345:22:1345:26 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1345:26:1345:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1347:13:1347:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1347:13:1347:17 | ... = ... | | file://:0:0:0:0 | () | +| main.rs:1347:17:1347:17 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1349:9:1349:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1363:30:1365:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1364:13:1364:31 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1364:23:1364:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1364:23:1364:23 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1364:29:1364:29 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1364:29:1364:29 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1371:16:1371:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1371:22:1371:24 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1371:41:1376:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1372:13:1375:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1373:20:1373:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1373:20:1373:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1373:20:1373:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1373:29:1373:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1373:29:1373:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1374:20:1374:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1374:20:1374:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1374:20:1374:33 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1374:29:1374:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1374:29:1374:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1381:23:1381:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1381:23:1381:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1381:34:1381:36 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1382:13:1382:16 | self | | file://:0:0:0:0 | & | +| main.rs:1382:13:1382:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1382:13:1382:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1382:13:1382:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1382:23:1382:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1382:23:1382:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1383:13:1383:16 | self | | file://:0:0:0:0 | & | -| main.rs:1383:13:1383:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1383:13:1383:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1383:13:1383:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1383:23:1383:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1383:23:1383:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1384:13:1384:16 | self | | file://:0:0:0:0 | & | -| main.rs:1384:13:1384:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1384:13:1384:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1384:13:1384:27 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1384:23:1384:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1384:23:1384:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1390:16:1390:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1390:22:1390:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1390:41:1395:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1391:13:1394:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1392:20:1392:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1392:20:1392:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1392:20:1392:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1392:29:1392:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1392:29:1392:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1393:20:1393:23 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1393:20:1393:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1393:20:1393:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1393:29:1393:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1393:29:1393:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1383:13:1383:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1383:13:1383:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1383:13:1383:27 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1383:23:1383:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1383:23:1383:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1389:16:1389:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1389:22:1389:24 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1389:41:1394:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1390:13:1393:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1391:20:1391:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1391:20:1391:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1391:20:1391:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1391:29:1391:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1391:29:1391:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1392:20:1392:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1392:20:1392:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1392:20:1392:33 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1392:29:1392:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1392:29:1392:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1399:23:1399:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1399:23:1399:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1399:34:1399:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1399:23:1399:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1399:34:1399:36 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1400:13:1400:16 | self | | file://:0:0:0:0 | & | -| main.rs:1400:13:1400:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1400:13:1400:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1400:13:1400:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1400:13:1400:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1400:23:1400:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1400:13:1400:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1400:23:1400:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1400:23:1400:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1401:13:1401:16 | self | | file://:0:0:0:0 | & | -| main.rs:1401:13:1401:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1401:13:1401:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1401:13:1401:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1401:13:1401:27 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1401:23:1401:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1401:13:1401:27 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1401:23:1401:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1401:23:1401:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1407:16:1407:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1407:22:1407:24 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1407:41:1412:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1408:13:1411:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1409:20:1409:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1407:16:1407:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1407:22:1407:24 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1407:41:1412:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1408:13:1411:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1409:20:1409:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1409:20:1409:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1409:20:1409:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1409:29:1409:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1409:20:1409:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1409:29:1409:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1409:29:1409:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1410:20:1410:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1410:20:1410:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1410:20:1410:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1410:20:1410:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1410:29:1410:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1410:20:1410:33 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1410:29:1410:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1410:29:1410:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1416:23:1416:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1416:23:1416:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1416:34:1416:36 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1416:23:1416:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1416:34:1416:36 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1417:13:1417:16 | self | | file://:0:0:0:0 | & | -| main.rs:1417:13:1417:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1417:13:1417:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1417:13:1417:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1417:13:1417:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1417:23:1417:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1417:13:1417:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1417:23:1417:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1417:23:1417:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1418:13:1418:16 | self | | file://:0:0:0:0 | & | -| main.rs:1418:13:1418:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1418:13:1418:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1418:13:1418:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1418:13:1418:27 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1418:23:1418:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1418:13:1418:27 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1418:23:1418:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1418:23:1418:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1424:19:1424:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1424:25:1424:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1424:44:1429:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1425:13:1428:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1426:20:1426:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1424:16:1424:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1424:22:1424:24 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1424:41:1429:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1425:13:1428:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1426:20:1426:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1426:20:1426:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1426:20:1426:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1426:29:1426:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1426:20:1426:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1426:29:1426:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1426:29:1426:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1427:20:1427:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1427:20:1427:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1427:20:1427:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1427:20:1427:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1427:29:1427:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1427:20:1427:33 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1427:29:1427:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1427:29:1427:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1433:26:1433:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1433:26:1433:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1433:37:1433:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1433:23:1433:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1433:23:1433:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1433:34:1433:36 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1434:13:1434:16 | self | | file://:0:0:0:0 | & | -| main.rs:1434:13:1434:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1434:13:1434:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1434:13:1434:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1434:13:1434:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1434:23:1434:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1434:13:1434:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1434:23:1434:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1434:23:1434:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1435:13:1435:16 | self | | file://:0:0:0:0 | & | -| main.rs:1435:13:1435:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1435:13:1435:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1435:13:1435:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1435:13:1435:27 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1435:23:1435:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1435:13:1435:27 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1435:23:1435:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1435:23:1435:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1441:18:1441:21 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1441:24:1441:26 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1441:43:1446:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1442:13:1445:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1443:20:1443:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1441:16:1441:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1441:22:1441:24 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1441:41:1446:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1442:13:1445:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1443:20:1443:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1443:20:1443:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1443:20:1443:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1443:29:1443:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1443:20:1443:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1443:29:1443:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1443:29:1443:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1444:20:1444:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1444:20:1444:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1444:20:1444:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1444:20:1444:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1444:29:1444:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1444:20:1444:33 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1444:29:1444:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1444:29:1444:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1450:25:1450:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1450:25:1450:33 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1450:36:1450:38 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1450:23:1450:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1450:23:1450:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1450:34:1450:36 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1451:13:1451:16 | self | | file://:0:0:0:0 | & | -| main.rs:1451:13:1451:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1451:13:1451:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1451:13:1451:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1451:13:1451:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1451:23:1451:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1451:13:1451:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1451:23:1451:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1451:23:1451:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1452:13:1452:16 | self | | file://:0:0:0:0 | & | -| main.rs:1452:13:1452:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1452:13:1452:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1452:13:1452:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1452:13:1452:27 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1452:23:1452:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1452:13:1452:27 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1452:23:1452:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1452:23:1452:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1458:19:1458:22 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1458:25:1458:27 | rhs | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1458:44:1463:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1459:13:1462:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1460:20:1460:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1458:19:1458:22 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1458:25:1458:27 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1458:44:1463:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1459:13:1462:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1460:20:1460:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1460:20:1460:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1460:20:1460:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1460:29:1460:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1460:20:1460:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1460:29:1460:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1460:29:1460:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1461:20:1461:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1461:20:1461:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1461:20:1461:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1461:20:1461:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1461:29:1461:31 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1461:20:1461:33 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1461:29:1461:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1461:29:1461:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1467:26:1467:34 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1467:26:1467:34 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1467:37:1467:39 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1467:26:1467:34 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1467:37:1467:39 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1468:13:1468:16 | self | | file://:0:0:0:0 | & | -| main.rs:1468:13:1468:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1468:13:1468:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1468:13:1468:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1468:13:1468:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1468:23:1468:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1468:13:1468:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1468:23:1468:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1468:23:1468:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1469:13:1469:16 | self | | file://:0:0:0:0 | & | -| main.rs:1469:13:1469:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1469:13:1469:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1469:13:1469:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1469:13:1469:27 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1469:23:1469:25 | rhs | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1469:13:1469:27 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1469:23:1469:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1469:23:1469:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1475:16:1475:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1475:22:1475:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1475:40:1480:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1476:13:1479:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1477:20:1477:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1475:18:1475:21 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1475:24:1475:26 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1475:43:1480:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1476:13:1479:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1477:20:1477:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1477:20:1477:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1477:20:1477:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1477:30:1477:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1478:20:1478:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1477:20:1477:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1477:29:1477:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1477:29:1477:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1478:20:1478:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1478:20:1478:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1478:20:1478:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1478:30:1478:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1484:23:1484:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1484:23:1484:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1484:34:1484:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1478:20:1478:33 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1478:29:1478:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1478:29:1478:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1484:25:1484:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1484:25:1484:33 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1484:36:1484:38 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1485:13:1485:16 | self | | file://:0:0:0:0 | & | -| main.rs:1485:13:1485:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1485:13:1485:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1485:13:1485:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1485:13:1485:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1485:24:1485:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1485:13:1485:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1485:23:1485:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1485:23:1485:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1486:13:1486:16 | self | | file://:0:0:0:0 | & | -| main.rs:1486:13:1486:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1486:13:1486:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1486:13:1486:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1486:13:1486:26 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1486:24:1486:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1492:16:1492:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1492:22:1492:24 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1492:40:1497:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1493:13:1496:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1494:20:1494:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1486:13:1486:27 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1486:23:1486:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1486:23:1486:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1492:19:1492:22 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1492:25:1492:27 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1492:44:1497:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1493:13:1496:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1494:20:1494:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1494:20:1494:25 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1494:20:1494:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1494:30:1494:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1495:20:1495:23 | self | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1494:20:1494:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1494:29:1494:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1494:29:1494:33 | rhs.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1495:20:1495:23 | self | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1495:20:1495:25 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1495:20:1495:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1495:30:1495:32 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1501:23:1501:31 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1501:23:1501:31 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1501:34:1501:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1495:20:1495:33 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1495:29:1495:31 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1495:29:1495:33 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1501:26:1501:34 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1501:26:1501:34 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1501:37:1501:39 | rhs | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1502:13:1502:16 | self | | file://:0:0:0:0 | & | -| main.rs:1502:13:1502:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1502:13:1502:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1502:13:1502:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1502:13:1502:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1502:24:1502:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1502:13:1502:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1502:23:1502:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1502:23:1502:27 | rhs.x | | {EXTERNAL LOCATION} | i64 | | main.rs:1503:13:1503:16 | self | | file://:0:0:0:0 | & | -| main.rs:1503:13:1503:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1503:13:1503:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1503:13:1503:18 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1503:13:1503:26 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1503:24:1503:26 | rhs | | {EXTERNAL LOCATION} | u32 | -| main.rs:1509:16:1509:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1509:30:1514:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1510:13:1513:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1511:20:1511:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1511:21:1511:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1511:21:1511:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1512:20:1512:26 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1512:21:1512:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1512:21:1512:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1519:16:1519:19 | SelfParam | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1519:30:1524:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1520:13:1523:13 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1521:20:1521:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1521:21:1521:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1521:21:1521:26 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1522:20:1522:26 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1522:21:1522:24 | self | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1522:21:1522:26 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1528:15:1528:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1528:15:1528:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:22:1528:26 | other | | file://:0:0:0:0 | & | -| main.rs:1528:22:1528:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1528:44:1530:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1529:13:1529:16 | self | | file://:0:0:0:0 | & | -| main.rs:1529:13:1529:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1529:13:1529:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1529:13:1529:29 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1529:13:1529:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1529:23:1529:27 | other | | file://:0:0:0:0 | & | -| main.rs:1529:23:1529:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1529:23:1529:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1529:34:1529:37 | self | | file://:0:0:0:0 | & | -| main.rs:1529:34:1529:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1529:34:1529:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1529:34:1529:50 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1529:44:1529:48 | other | | file://:0:0:0:0 | & | -| main.rs:1529:44:1529:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1529:44:1529:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1532:15:1532:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1532:15:1532:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1532:22:1532:26 | other | | file://:0:0:0:0 | & | -| main.rs:1532:22:1532:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1532:44:1534:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1533:13:1533:16 | self | | file://:0:0:0:0 | & | -| main.rs:1533:13:1533:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:13:1533:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1533:13:1533:29 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1533:13:1533:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1533:23:1533:27 | other | | file://:0:0:0:0 | & | -| main.rs:1533:23:1533:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:23:1533:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1533:34:1533:37 | self | | file://:0:0:0:0 | & | -| main.rs:1533:34:1533:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:34:1533:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1533:34:1533:50 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1533:44:1533:48 | other | | file://:0:0:0:0 | & | -| main.rs:1533:44:1533:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1533:44:1533:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1538:24:1538:28 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1538:24:1538:28 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:31:1538:35 | other | | file://:0:0:0:0 | & | -| main.rs:1538:31:1538:35 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1538:75:1540:9 | { ... } | | {EXTERNAL LOCATION} | Option | -| main.rs:1538:75:1540:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1539:13:1539:29 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:13:1539:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1539:13:1539:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1539:14:1539:17 | self | | file://:0:0:0:0 | & | -| main.rs:1539:14:1539:17 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1539:14:1539:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:14:1539:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:23:1539:26 | self | | file://:0:0:0:0 | & | -| main.rs:1539:23:1539:26 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1539:23:1539:28 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:43:1539:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1539:43:1539:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:44:1539:62 | (...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:45:1539:49 | other | | file://:0:0:0:0 | & | -| main.rs:1539:45:1539:49 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1539:45:1539:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:45:1539:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1539:55:1539:59 | other | | file://:0:0:0:0 | & | -| main.rs:1539:55:1539:59 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1539:55:1539:61 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1542:15:1542:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1542:15:1542:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:22:1542:26 | other | | file://:0:0:0:0 | & | -| main.rs:1542:22:1542:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1542:44:1544:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:13:1543:16 | self | | file://:0:0:0:0 | & | -| main.rs:1543:13:1543:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1543:13:1543:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1543:13:1543:28 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:13:1543:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:22:1543:26 | other | | file://:0:0:0:0 | & | -| main.rs:1543:22:1543:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1543:22:1543:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1543:33:1543:36 | self | | file://:0:0:0:0 | & | -| main.rs:1543:33:1543:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1543:33:1543:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1543:33:1543:48 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1543:42:1543:46 | other | | file://:0:0:0:0 | & | -| main.rs:1543:42:1543:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1543:42:1543:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1546:15:1546:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1546:15:1546:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:22:1546:26 | other | | file://:0:0:0:0 | & | -| main.rs:1546:22:1546:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1546:44:1548:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1547:13:1547:16 | self | | file://:0:0:0:0 | & | -| main.rs:1547:13:1547:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1547:13:1547:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1547:13:1547:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1547:13:1547:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1547:23:1547:27 | other | | file://:0:0:0:0 | & | -| main.rs:1547:23:1547:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1547:23:1547:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1547:34:1547:37 | self | | file://:0:0:0:0 | & | -| main.rs:1547:34:1547:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1547:34:1547:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1547:34:1547:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1547:44:1547:48 | other | | file://:0:0:0:0 | & | -| main.rs:1547:44:1547:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1547:44:1547:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1550:15:1550:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1550:15:1550:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:22:1550:26 | other | | file://:0:0:0:0 | & | -| main.rs:1550:22:1550:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1550:44:1552:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1551:13:1551:16 | self | | file://:0:0:0:0 | & | -| main.rs:1551:13:1551:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1551:13:1551:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1551:13:1551:28 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1551:13:1551:48 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1551:22:1551:26 | other | | file://:0:0:0:0 | & | -| main.rs:1551:22:1551:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1551:22:1551:28 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1551:33:1551:36 | self | | file://:0:0:0:0 | & | -| main.rs:1551:33:1551:36 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1551:33:1551:38 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1551:33:1551:48 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1551:42:1551:46 | other | | file://:0:0:0:0 | & | -| main.rs:1551:42:1551:46 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1551:42:1551:48 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1554:15:1554:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1554:15:1554:19 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1554:22:1554:26 | other | | file://:0:0:0:0 | & | -| main.rs:1554:22:1554:26 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1554:44:1556:9 | { ... } | | {EXTERNAL LOCATION} | bool | -| main.rs:1555:13:1555:16 | self | | file://:0:0:0:0 | & | -| main.rs:1555:13:1555:16 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1555:13:1555:18 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1555:13:1555:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1555:13:1555:50 | ... && ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1555:23:1555:27 | other | | file://:0:0:0:0 | & | -| main.rs:1555:23:1555:27 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1555:23:1555:29 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1555:34:1555:37 | self | | file://:0:0:0:0 | & | -| main.rs:1555:34:1555:37 | self | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1555:34:1555:39 | self.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1555:34:1555:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1555:44:1555:48 | other | | file://:0:0:0:0 | & | -| main.rs:1555:44:1555:48 | other | &T | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1555:44:1555:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:13:1562:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:22:1562:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:23:1562:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1562:23:1562:34 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1562:31:1562:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1563:13:1563:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1563:22:1563:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1563:23:1563:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1563:23:1563:34 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1563:31:1563:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1564:13:1564:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1564:22:1564:34 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1564:23:1564:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1564:23:1564:33 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1564:30:1564:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:13:1565:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1565:22:1565:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1565:23:1565:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1565:23:1565:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1565:31:1565:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:13:1566:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1566:22:1566:35 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1566:23:1566:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1566:23:1566:34 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1566:30:1566:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:13:1567:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1567:22:1567:37 | (...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1567:23:1567:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1567:23:1567:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1567:32:1567:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1570:13:1570:19 | i64_add | | {EXTERNAL LOCATION} | i64 | -| main.rs:1570:23:1570:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1570:23:1570:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1570:31:1570:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1571:13:1571:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | -| main.rs:1571:23:1571:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1571:23:1571:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1571:31:1571:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:13:1572:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:23:1572:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:23:1572:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1572:31:1572:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:13:1573:19 | i64_div | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:23:1573:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:23:1573:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:31:1573:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1574:13:1574:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | -| main.rs:1574:23:1574:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1574:23:1574:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1574:31:1574:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1577:13:1577:30 | mut i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1577:34:1577:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1578:9:1578:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1578:9:1578:31 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1578:27:1578:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1580:13:1580:30 | mut i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1580:34:1580:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1581:9:1581:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1581:9:1581:31 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1581:27:1581:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1583:13:1583:30 | mut i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1583:34:1583:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1584:9:1584:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1584:9:1584:31 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1584:27:1584:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1586:13:1586:30 | mut i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1586:34:1586:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1587:9:1587:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1587:9:1587:31 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1587:27:1587:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:13:1589:30 | mut i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1589:34:1589:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:9:1590:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1590:9:1590:31 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1590:27:1590:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1593:13:1593:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | -| main.rs:1593:26:1593:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1593:26:1593:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1593:34:1593:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1594:13:1594:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1594:25:1594:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1594:25:1594:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1594:33:1594:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:13:1595:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:26:1595:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:26:1595:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1595:34:1595:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:13:1596:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:23:1596:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:23:1596:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:32:1596:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:13:1597:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:23:1597:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:23:1597:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:32:1597:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1600:13:1600:33 | mut i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1600:37:1600:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:9:1601:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:9:1601:34 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1601:30:1601:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1603:13:1603:32 | mut i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1603:36:1603:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:9:1604:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:9:1604:33 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1604:29:1604:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1606:13:1606:33 | mut i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1606:37:1606:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:9:1607:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:9:1607:34 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1607:30:1607:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1609:13:1609:30 | mut i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1609:34:1609:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1610:9:1610:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1610:9:1610:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1610:28:1610:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1612:13:1612:30 | mut i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1612:34:1612:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1613:9:1613:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | -| main.rs:1613:9:1613:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1613:28:1613:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1615:13:1615:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1615:23:1615:28 | - ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1615:24:1615:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1616:13:1616:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1616:23:1616:28 | ! ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1616:24:1616:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1619:13:1619:14 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1619:18:1619:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1619:28:1619:28 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1619:28:1619:28 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1619:34:1619:34 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1619:34:1619:34 | 2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1620:13:1620:14 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1620:18:1620:36 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1620:28:1620:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1620:28:1620:28 | 3 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1620:34:1620:34 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1620:34:1620:34 | 4 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1623:13:1623:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1623:23:1623:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1623:23:1623:30 | ... == ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1623:29:1623:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1624:13:1624:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:23:1624:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1624:23:1624:30 | ... != ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1624:29:1624:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1625:13:1625:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1625:23:1625:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1625:23:1625:29 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1625:28:1625:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1626:13:1626:19 | vec2_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1626:23:1626:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1626:23:1626:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1626:29:1626:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:13:1627:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1627:23:1627:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1627:23:1627:29 | ... > ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1627:28:1627:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1628:13:1628:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1628:23:1628:24 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1628:23:1628:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1628:29:1628:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1631:13:1631:20 | vec2_add | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1631:24:1631:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1631:24:1631:30 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1631:29:1631:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1632:13:1632:20 | vec2_sub | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1632:24:1632:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1632:24:1632:30 | ... - ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1632:29:1632:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:13:1633:20 | vec2_mul | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:24:1633:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:24:1633:30 | ... * ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1633:29:1633:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:13:1634:20 | vec2_div | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:24:1634:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:24:1634:30 | ... / ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1634:29:1634:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1635:13:1635:20 | vec2_rem | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1635:24:1635:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1635:24:1635:30 | ... % ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1635:29:1635:30 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1638:13:1638:31 | mut vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1638:35:1638:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1639:9:1639:23 | vec2_add_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1639:9:1639:29 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1639:28:1639:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1641:13:1641:31 | mut vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1641:35:1641:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1642:9:1642:23 | vec2_sub_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1642:9:1642:29 | ... -= ... | | file://:0:0:0:0 | () | -| main.rs:1642:28:1642:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1644:13:1644:31 | mut vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1644:35:1644:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1645:9:1645:23 | vec2_mul_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1645:9:1645:29 | ... *= ... | | file://:0:0:0:0 | () | -| main.rs:1645:28:1645:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1647:13:1647:31 | mut vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1647:35:1647:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1648:9:1648:23 | vec2_div_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1648:9:1648:29 | ... /= ... | | file://:0:0:0:0 | () | -| main.rs:1648:28:1648:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:13:1650:31 | mut vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1650:35:1650:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:9:1651:23 | vec2_rem_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1651:9:1651:29 | ... %= ... | | file://:0:0:0:0 | () | -| main.rs:1651:28:1651:29 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1654:13:1654:23 | vec2_bitand | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1654:27:1654:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1654:27:1654:33 | ... & ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1654:32:1654:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1655:13:1655:22 | vec2_bitor | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1655:26:1655:27 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1655:26:1655:32 | ... \| ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1655:31:1655:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1656:13:1656:23 | vec2_bitxor | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1656:27:1656:28 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1656:27:1656:33 | ... ^ ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1656:32:1656:33 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:13:1657:20 | vec2_shl | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:24:1657:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:24:1657:33 | ... << ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1657:30:1657:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1658:13:1658:20 | vec2_shr | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1658:24:1658:25 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1658:24:1658:33 | ... >> ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1658:30:1658:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1661:13:1661:34 | mut vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1661:38:1661:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1662:9:1662:26 | vec2_bitand_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1662:9:1662:32 | ... &= ... | | file://:0:0:0:0 | () | -| main.rs:1662:31:1662:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1664:13:1664:33 | mut vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1664:37:1664:38 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1665:9:1665:25 | vec2_bitor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1665:9:1665:31 | ... \|= ... | | file://:0:0:0:0 | () | -| main.rs:1665:30:1665:31 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1667:13:1667:34 | mut vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1667:38:1667:39 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1668:9:1668:26 | vec2_bitxor_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1668:9:1668:32 | ... ^= ... | | file://:0:0:0:0 | () | -| main.rs:1668:31:1668:32 | v2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1670:13:1670:31 | mut vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1670:35:1670:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1671:9:1671:23 | vec2_shl_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1671:9:1671:32 | ... <<= ... | | file://:0:0:0:0 | () | -| main.rs:1671:29:1671:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1673:13:1673:31 | mut vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1673:35:1673:36 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1674:9:1674:23 | vec2_shr_assign | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1674:9:1674:32 | ... >>= ... | | file://:0:0:0:0 | () | -| main.rs:1674:29:1674:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1677:13:1677:20 | vec2_neg | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1677:24:1677:26 | - ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1677:25:1677:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1678:13:1678:20 | vec2_not | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1678:24:1678:26 | ! ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1678:25:1678:26 | v1 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1681:13:1681:24 | default_vec2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1681:28:1681:45 | ...::default(...) | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1682:13:1682:26 | vec2_zero_plus | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1682:30:1682:48 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1682:30:1682:63 | ... + ... | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1682:40:1682:40 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1682:40:1682:40 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1682:46:1682:46 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1682:52:1682:63 | default_vec2 | | main.rs:1322:5:1327:5 | Vec2 | -| main.rs:1692:18:1692:21 | SelfParam | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1695:25:1697:5 | { ... } | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1696:9:1696:10 | S1 | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1699:41:1701:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1699:41:1701:5 | { ... } | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | -| main.rs:1699:41:1701:5 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1700:9:1700:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1700:9:1700:20 | { ... } | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | -| main.rs:1700:9:1700:20 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1700:17:1700:18 | S1 | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1709:13:1709:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:1709:13:1709:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:1709:13:1709:42 | SelfParam | Ptr.&T | main.rs:1703:5:1703:14 | S2 | -| main.rs:1710:13:1710:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:1710:13:1710:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:1711:44:1713:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:1711:44:1713:9 | { ... } | T | main.rs:1689:5:1689:14 | S1 | -| main.rs:1712:13:1712:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:1712:13:1712:38 | ...::Ready(...) | T | main.rs:1689:5:1689:14 | S1 | -| main.rs:1712:36:1712:37 | S1 | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1716:41:1718:5 | { ... } | | main.rs:1703:5:1703:14 | S2 | -| main.rs:1716:41:1718:5 | { ... } | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | -| main.rs:1717:9:1717:10 | S2 | | main.rs:1703:5:1703:14 | S2 | -| main.rs:1717:9:1717:10 | S2 | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | -| main.rs:1721:9:1721:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1721:9:1721:12 | f1(...) | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1721:9:1721:18 | await ... | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1722:9:1722:12 | f2(...) | | main.rs:1699:16:1699:39 | ImplTraitTypeRepr | -| main.rs:1722:9:1722:18 | await ... | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1723:9:1723:12 | f3(...) | | main.rs:1716:16:1716:39 | ImplTraitTypeRepr | -| main.rs:1723:9:1723:18 | await ... | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1724:9:1724:10 | S2 | | main.rs:1703:5:1703:14 | S2 | -| main.rs:1724:9:1724:16 | await S2 | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1725:13:1725:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1725:13:1725:13 | b | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1725:17:1725:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1725:17:1725:28 | { ... } | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1725:25:1725:26 | S1 | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1726:9:1726:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1726:9:1726:9 | b | Output | main.rs:1689:5:1689:14 | S1 | -| main.rs:1726:9:1726:15 | await b | | main.rs:1689:5:1689:14 | S1 | -| main.rs:1735:15:1735:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1735:15:1735:19 | SelfParam | &T | main.rs:1734:5:1736:5 | Self [trait Trait1] | -| main.rs:1739:15:1739:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1739:15:1739:19 | SelfParam | &T | main.rs:1738:5:1740:5 | Self [trait Trait2] | -| main.rs:1743:15:1743:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1743:15:1743:19 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | -| main.rs:1747:15:1747:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1747:15:1747:19 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | -| main.rs:1750:37:1752:5 | { ... } | | main.rs:1731:5:1731:14 | S1 | -| main.rs:1750:37:1752:5 | { ... } | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1751:9:1751:10 | S1 | | main.rs:1731:5:1731:14 | S1 | -| main.rs:1751:9:1751:10 | S1 | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1755:18:1755:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1755:18:1755:22 | SelfParam | &T | main.rs:1754:5:1756:5 | Self [trait MyTrait] | -| main.rs:1759:18:1759:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1759:18:1759:22 | SelfParam | &T | main.rs:1731:5:1731:14 | S1 | -| main.rs:1759:31:1761:9 | { ... } | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1760:13:1760:14 | S2 | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1764:45:1766:5 | { ... } | | main.rs:1731:5:1731:14 | S1 | -| main.rs:1764:45:1766:5 | { ... } | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1765:9:1765:10 | S1 | | main.rs:1731:5:1731:14 | S1 | -| main.rs:1765:9:1765:10 | S1 | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1768:41:1768:41 | t | | main.rs:1768:26:1768:38 | B | -| main.rs:1768:52:1770:5 | { ... } | | main.rs:1768:23:1768:23 | A | -| main.rs:1769:9:1769:9 | t | | main.rs:1768:26:1768:38 | B | -| main.rs:1769:9:1769:17 | t.get_a() | | main.rs:1768:23:1768:23 | A | -| main.rs:1772:26:1772:26 | t | | main.rs:1772:29:1772:43 | ImplTraitTypeRepr | -| main.rs:1772:51:1774:5 | { ... } | | main.rs:1772:23:1772:23 | A | -| main.rs:1773:9:1773:9 | t | | main.rs:1772:29:1772:43 | ImplTraitTypeRepr | -| main.rs:1773:9:1773:17 | t.get_a() | | main.rs:1772:23:1772:23 | A | -| main.rs:1777:13:1777:13 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1777:17:1777:20 | f1(...) | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1778:9:1778:9 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1779:9:1779:9 | x | | main.rs:1750:16:1750:35 | ImplTraitTypeRepr | -| main.rs:1780:13:1780:13 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1780:17:1780:32 | get_a_my_trait(...) | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1781:13:1781:13 | b | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1781:17:1781:33 | uses_my_trait1(...) | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1781:32:1781:32 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1782:13:1782:13 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1782:17:1782:32 | get_a_my_trait(...) | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1783:13:1783:13 | c | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1783:17:1783:33 | uses_my_trait2(...) | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1783:32:1783:32 | a | | main.rs:1764:28:1764:43 | ImplTraitTypeRepr | -| main.rs:1784:13:1784:13 | d | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1784:17:1784:34 | uses_my_trait2(...) | | main.rs:1732:5:1732:14 | S2 | -| main.rs:1784:32:1784:33 | S1 | | main.rs:1731:5:1731:14 | S1 | -| main.rs:1795:16:1795:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1795:16:1795:20 | SelfParam | &T | main.rs:1791:5:1792:13 | S | -| main.rs:1795:31:1797:9 | { ... } | | main.rs:1791:5:1792:13 | S | -| main.rs:1796:13:1796:13 | S | | main.rs:1791:5:1792:13 | S | -| main.rs:1806:26:1808:9 | { ... } | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1806:26:1808:9 | { ... } | T | main.rs:1805:10:1805:10 | T | -| main.rs:1807:13:1807:38 | MyVec {...} | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1807:13:1807:38 | MyVec {...} | T | main.rs:1805:10:1805:10 | T | -| main.rs:1807:27:1807:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1807:27:1807:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1807:27:1807:36 | ...::new(...) | T | main.rs:1805:10:1805:10 | T | -| main.rs:1810:17:1810:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1810:17:1810:25 | SelfParam | &T | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1810:17:1810:25 | SelfParam | &T.T | main.rs:1805:10:1805:10 | T | -| main.rs:1810:28:1810:32 | value | | main.rs:1805:10:1805:10 | T | -| main.rs:1811:13:1811:16 | self | | file://:0:0:0:0 | & | -| main.rs:1811:13:1811:16 | self | &T | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1811:13:1811:16 | self | &T.T | main.rs:1805:10:1805:10 | T | -| main.rs:1811:13:1811:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1811:13:1811:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1811:13:1811:21 | self.data | T | main.rs:1805:10:1805:10 | T | -| main.rs:1811:28:1811:32 | value | | main.rs:1805:10:1805:10 | T | -| main.rs:1819:18:1819:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1819:18:1819:22 | SelfParam | &T | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1819:18:1819:22 | SelfParam | &T.T | main.rs:1815:10:1815:10 | T | -| main.rs:1819:25:1819:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1819:56:1821:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1819:56:1821:9 | { ... } | &T | main.rs:1815:10:1815:10 | T | -| main.rs:1820:13:1820:29 | &... | | file://:0:0:0:0 | & | -| main.rs:1820:13:1820:29 | &... | &T | main.rs:1815:10:1815:10 | T | -| main.rs:1820:14:1820:17 | self | | file://:0:0:0:0 | & | -| main.rs:1820:14:1820:17 | self | &T | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1820:14:1820:17 | self | &T.T | main.rs:1815:10:1815:10 | T | -| main.rs:1820:14:1820:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1820:14:1820:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1820:14:1820:22 | self.data | T | main.rs:1815:10:1815:10 | T | -| main.rs:1820:14:1820:29 | ...[index] | | main.rs:1815:10:1815:10 | T | -| main.rs:1820:24:1820:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1824:22:1824:26 | slice | | file://:0:0:0:0 | & | -| main.rs:1824:22:1824:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1824:22:1824:26 | slice | &T.[T] | main.rs:1791:5:1792:13 | S | -| main.rs:1825:13:1825:13 | x | | main.rs:1791:5:1792:13 | S | -| main.rs:1825:17:1825:21 | slice | | file://:0:0:0:0 | & | -| main.rs:1825:17:1825:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1825:17:1825:21 | slice | &T.[T] | main.rs:1791:5:1792:13 | S | -| main.rs:1825:17:1825:24 | slice[0] | | main.rs:1791:5:1792:13 | S | -| main.rs:1825:17:1825:30 | ... .foo() | | main.rs:1791:5:1792:13 | S | -| main.rs:1825:23:1825:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1829:13:1829:19 | mut vec | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1829:13:1829:19 | mut vec | T | main.rs:1791:5:1792:13 | S | -| main.rs:1829:23:1829:34 | ...::new(...) | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1829:23:1829:34 | ...::new(...) | T | main.rs:1791:5:1792:13 | S | -| main.rs:1830:9:1830:11 | vec | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1830:9:1830:11 | vec | T | main.rs:1791:5:1792:13 | S | -| main.rs:1830:18:1830:18 | S | | main.rs:1791:5:1792:13 | S | -| main.rs:1831:9:1831:11 | vec | | main.rs:1800:5:1803:5 | MyVec | -| main.rs:1831:9:1831:11 | vec | T | main.rs:1791:5:1792:13 | S | -| main.rs:1831:13:1831:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:13:1833:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1833:13:1833:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1833:13:1833:14 | xs | [T;...] | main.rs:1791:5:1792:13 | S | -| main.rs:1833:13:1833:14 | xs | [T] | main.rs:1791:5:1792:13 | S | -| main.rs:1833:21:1833:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1833:26:1833:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1833:26:1833:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1833:26:1833:28 | [...] | [T;...] | main.rs:1791:5:1792:13 | S | -| main.rs:1833:26:1833:28 | [...] | [T] | main.rs:1791:5:1792:13 | S | -| main.rs:1833:27:1833:27 | S | | main.rs:1791:5:1792:13 | S | -| main.rs:1834:13:1834:13 | x | | main.rs:1791:5:1792:13 | S | -| main.rs:1834:17:1834:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1834:17:1834:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1834:17:1834:18 | xs | [T;...] | main.rs:1791:5:1792:13 | S | -| main.rs:1834:17:1834:18 | xs | [T] | main.rs:1791:5:1792:13 | S | -| main.rs:1834:17:1834:21 | xs[0] | | main.rs:1791:5:1792:13 | S | -| main.rs:1834:17:1834:27 | ... .foo() | | main.rs:1791:5:1792:13 | S | -| main.rs:1834:20:1834:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1836:23:1836:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:1836:23:1836:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1836:23:1836:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1836:23:1836:25 | &xs | &T.[T;...] | main.rs:1791:5:1792:13 | S | -| main.rs:1836:23:1836:25 | &xs | &T.[T] | main.rs:1791:5:1792:13 | S | -| main.rs:1836:24:1836:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1836:24:1836:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1836:24:1836:25 | xs | [T;...] | main.rs:1791:5:1792:13 | S | -| main.rs:1836:24:1836:25 | xs | [T] | main.rs:1791:5:1792:13 | S | -| main.rs:1842:25:1842:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | -| main.rs:1842:25:1842:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1842:25:1842:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:1842:38:1842:45 | "World!" | | {EXTERNAL LOCATION} | str | -| main.rs:1848:19:1848:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1848:19:1848:23 | SelfParam | &T | main.rs:1847:5:1849:5 | Self [trait MyAdd] | -| main.rs:1848:26:1848:30 | value | | main.rs:1847:17:1847:17 | T | -| main.rs:1853:19:1853:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1853:19:1853:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1853:26:1853:30 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1853:46:1855:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1854:13:1854:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:19:1860:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1860:19:1860:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:26:1860:30 | value | | file://:0:0:0:0 | & | -| main.rs:1860:26:1860:30 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:26:1860:30 | value | &T | file://:0:0:0:0 | & | -| main.rs:1860:47:1862:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1860:47:1862:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1861:13:1861:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:13:1861:18 | * ... | | file://:0:0:0:0 | & | -| main.rs:1861:14:1861:18 | value | | file://:0:0:0:0 | & | -| main.rs:1861:14:1861:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1861:14:1861:18 | value | &T | file://:0:0:0:0 | & | -| main.rs:1867:19:1867:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1867:19:1867:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1867:26:1867:30 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:16:1868:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:9:1878:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:18:1878:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:9:1879:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:18:1879:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:1879:18:1879:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:19:1879:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:9:1880:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:18:1880:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1888:5:1888:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1889:5:1889:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1889:20:1889:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1889:41:1889:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1905:5:1905:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1503:13:1503:27 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1503:23:1503:25 | rhs | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1503:23:1503:27 | rhs.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1509:16:1509:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1509:22:1509:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1509:40:1514:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1510:13:1513:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1511:20:1511:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1511:20:1511:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1511:20:1511:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1511:30:1511:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1512:20:1512:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1512:20:1512:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1512:20:1512:32 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1512:30:1512:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1518:23:1518:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1518:23:1518:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1518:34:1518:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1519:13:1519:16 | self | | file://:0:0:0:0 | & | +| main.rs:1519:13:1519:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1519:13:1519:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1519:13:1519:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1519:24:1519:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1520:13:1520:16 | self | | file://:0:0:0:0 | & | +| main.rs:1520:13:1520:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1520:13:1520:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1520:13:1520:26 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1520:24:1520:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1526:16:1526:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1526:22:1526:24 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1526:40:1531:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1527:13:1530:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1528:20:1528:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1528:20:1528:25 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1528:20:1528:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1528:30:1528:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1529:20:1529:23 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1529:20:1529:25 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1529:20:1529:32 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1529:30:1529:32 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1535:23:1535:31 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1535:23:1535:31 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1535:34:1535:36 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1536:13:1536:16 | self | | file://:0:0:0:0 | & | +| main.rs:1536:13:1536:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1536:13:1536:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1536:13:1536:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1536:24:1536:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1537:13:1537:16 | self | | file://:0:0:0:0 | & | +| main.rs:1537:13:1537:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1537:13:1537:18 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1537:13:1537:26 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1537:24:1537:26 | rhs | | {EXTERNAL LOCATION} | u32 | +| main.rs:1543:16:1543:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1543:30:1548:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1544:13:1547:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1545:20:1545:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1545:21:1545:24 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1545:21:1545:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1546:20:1546:26 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1546:21:1546:24 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1546:21:1546:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1553:16:1553:19 | SelfParam | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1553:30:1558:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1554:13:1557:13 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1555:20:1555:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1555:21:1555:24 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1555:21:1555:26 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1556:20:1556:26 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1556:21:1556:24 | self | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1556:21:1556:26 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1562:15:1562:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1562:15:1562:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1562:22:1562:26 | other | | file://:0:0:0:0 | & | +| main.rs:1562:22:1562:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1562:44:1564:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:13:1563:16 | self | | file://:0:0:0:0 | & | +| main.rs:1563:13:1563:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1563:13:1563:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1563:13:1563:29 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:13:1563:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:23:1563:27 | other | | file://:0:0:0:0 | & | +| main.rs:1563:23:1563:27 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1563:23:1563:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1563:34:1563:37 | self | | file://:0:0:0:0 | & | +| main.rs:1563:34:1563:37 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1563:34:1563:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1563:34:1563:50 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1563:44:1563:48 | other | | file://:0:0:0:0 | & | +| main.rs:1563:44:1563:48 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1563:44:1563:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1566:15:1566:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1566:15:1566:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1566:22:1566:26 | other | | file://:0:0:0:0 | & | +| main.rs:1566:22:1566:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1566:44:1568:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:13:1567:16 | self | | file://:0:0:0:0 | & | +| main.rs:1567:13:1567:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1567:13:1567:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1567:13:1567:29 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:13:1567:50 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:23:1567:27 | other | | file://:0:0:0:0 | & | +| main.rs:1567:23:1567:27 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1567:23:1567:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1567:34:1567:37 | self | | file://:0:0:0:0 | & | +| main.rs:1567:34:1567:37 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1567:34:1567:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1567:34:1567:50 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1567:44:1567:48 | other | | file://:0:0:0:0 | & | +| main.rs:1567:44:1567:48 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1567:44:1567:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1572:24:1572:28 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1572:24:1572:28 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1572:31:1572:35 | other | | file://:0:0:0:0 | & | +| main.rs:1572:31:1572:35 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1572:75:1574:9 | { ... } | | {EXTERNAL LOCATION} | Option | +| main.rs:1572:75:1574:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1573:13:1573:29 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:13:1573:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1573:13:1573:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | +| main.rs:1573:14:1573:17 | self | | file://:0:0:0:0 | & | +| main.rs:1573:14:1573:17 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1573:14:1573:19 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:14:1573:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:23:1573:26 | self | | file://:0:0:0:0 | & | +| main.rs:1573:23:1573:26 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1573:23:1573:28 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:43:1573:62 | &... | | file://:0:0:0:0 | & | +| main.rs:1573:43:1573:62 | &... | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:44:1573:62 | (...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:45:1573:49 | other | | file://:0:0:0:0 | & | +| main.rs:1573:45:1573:49 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1573:45:1573:51 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:45:1573:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1573:55:1573:59 | other | | file://:0:0:0:0 | & | +| main.rs:1573:55:1573:59 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1573:55:1573:61 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1576:15:1576:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1576:15:1576:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1576:22:1576:26 | other | | file://:0:0:0:0 | & | +| main.rs:1576:22:1576:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1576:44:1578:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1577:13:1577:16 | self | | file://:0:0:0:0 | & | +| main.rs:1577:13:1577:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1577:13:1577:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1577:13:1577:28 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1577:13:1577:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1577:22:1577:26 | other | | file://:0:0:0:0 | & | +| main.rs:1577:22:1577:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1577:22:1577:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1577:33:1577:36 | self | | file://:0:0:0:0 | & | +| main.rs:1577:33:1577:36 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1577:33:1577:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1577:33:1577:48 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1577:42:1577:46 | other | | file://:0:0:0:0 | & | +| main.rs:1577:42:1577:46 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1577:42:1577:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1580:15:1580:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1580:15:1580:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1580:22:1580:26 | other | | file://:0:0:0:0 | & | +| main.rs:1580:22:1580:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1580:44:1582:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1581:13:1581:16 | self | | file://:0:0:0:0 | & | +| main.rs:1581:13:1581:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1581:13:1581:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1581:13:1581:29 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1581:13:1581:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1581:23:1581:27 | other | | file://:0:0:0:0 | & | +| main.rs:1581:23:1581:27 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1581:23:1581:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1581:34:1581:37 | self | | file://:0:0:0:0 | & | +| main.rs:1581:34:1581:37 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1581:34:1581:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1581:34:1581:50 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1581:44:1581:48 | other | | file://:0:0:0:0 | & | +| main.rs:1581:44:1581:48 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1581:44:1581:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1584:15:1584:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1584:15:1584:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1584:22:1584:26 | other | | file://:0:0:0:0 | & | +| main.rs:1584:22:1584:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1584:44:1586:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1585:13:1585:16 | self | | file://:0:0:0:0 | & | +| main.rs:1585:13:1585:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1585:13:1585:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1585:13:1585:28 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1585:13:1585:48 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1585:22:1585:26 | other | | file://:0:0:0:0 | & | +| main.rs:1585:22:1585:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1585:22:1585:28 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1585:33:1585:36 | self | | file://:0:0:0:0 | & | +| main.rs:1585:33:1585:36 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1585:33:1585:38 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1585:33:1585:48 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1585:42:1585:46 | other | | file://:0:0:0:0 | & | +| main.rs:1585:42:1585:46 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1585:42:1585:48 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1588:15:1588:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1588:15:1588:19 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1588:22:1588:26 | other | | file://:0:0:0:0 | & | +| main.rs:1588:22:1588:26 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1588:44:1590:9 | { ... } | | {EXTERNAL LOCATION} | bool | +| main.rs:1589:13:1589:16 | self | | file://:0:0:0:0 | & | +| main.rs:1589:13:1589:16 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1589:13:1589:18 | self.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1589:13:1589:29 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1589:13:1589:50 | ... && ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1589:23:1589:27 | other | | file://:0:0:0:0 | & | +| main.rs:1589:23:1589:27 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1589:23:1589:29 | other.x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1589:34:1589:37 | self | | file://:0:0:0:0 | & | +| main.rs:1589:34:1589:37 | self | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1589:34:1589:39 | self.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1589:34:1589:50 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1589:44:1589:48 | other | | file://:0:0:0:0 | & | +| main.rs:1589:44:1589:48 | other | &T | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1589:44:1589:50 | other.y | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:13:1596:18 | i64_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1596:22:1596:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1596:23:1596:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1596:23:1596:34 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1596:31:1596:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:13:1597:18 | i64_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1597:22:1597:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1597:23:1597:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1597:23:1597:34 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1597:31:1597:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1598:13:1598:18 | i64_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1598:22:1598:34 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1598:23:1598:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1598:23:1598:33 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1598:30:1598:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1599:13:1599:18 | i64_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1599:22:1599:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1599:23:1599:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1599:23:1599:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1599:31:1599:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1600:13:1600:18 | i64_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1600:22:1600:35 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1600:23:1600:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1600:23:1600:34 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1600:30:1600:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1601:13:1601:18 | i64_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1601:22:1601:37 | (...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1601:23:1601:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1601:23:1601:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1601:32:1601:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:13:1604:19 | i64_add | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:23:1604:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:23:1604:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1604:31:1604:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1605:13:1605:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | +| main.rs:1605:23:1605:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1605:23:1605:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1605:31:1605:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:13:1606:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:23:1606:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:23:1606:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1606:31:1606:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:13:1607:19 | i64_div | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:23:1607:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:23:1607:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1607:31:1607:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1608:13:1608:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | +| main.rs:1608:23:1608:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1608:23:1608:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1608:31:1608:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1611:13:1611:30 | mut i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1611:34:1611:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1612:9:1612:22 | i64_add_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1612:9:1612:31 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1612:27:1612:31 | 24i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1614:13:1614:30 | mut i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1614:34:1614:38 | 25i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1615:9:1615:22 | i64_sub_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1615:9:1615:31 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1615:27:1615:31 | 26i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1617:13:1617:30 | mut i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1617:34:1617:38 | 27i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1618:9:1618:22 | i64_mul_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1618:9:1618:31 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1618:27:1618:31 | 28i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1620:13:1620:30 | mut i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1620:34:1620:38 | 29i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1621:9:1621:22 | i64_div_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1621:9:1621:31 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1621:27:1621:31 | 30i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1623:13:1623:30 | mut i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1623:34:1623:38 | 31i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1624:9:1624:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1624:9:1624:31 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1624:27:1624:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1627:13:1627:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | +| main.rs:1627:26:1627:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1627:26:1627:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1627:34:1627:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1628:13:1628:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1628:25:1628:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1628:25:1628:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1628:33:1628:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1629:13:1629:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | +| main.rs:1629:26:1629:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1629:26:1629:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1629:34:1629:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1630:13:1630:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | +| main.rs:1630:23:1630:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1630:23:1630:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1630:32:1630:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1631:13:1631:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | +| main.rs:1631:23:1631:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1631:23:1631:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1631:32:1631:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1634:13:1634:33 | mut i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1634:37:1634:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1635:9:1635:25 | i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1635:9:1635:34 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1635:30:1635:34 | 44i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1637:13:1637:32 | mut i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1637:36:1637:40 | 45i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1638:9:1638:24 | i64_bitor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1638:9:1638:33 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1638:29:1638:33 | 46i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1640:13:1640:33 | mut i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1640:37:1640:41 | 47i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1641:9:1641:25 | i64_bitxor_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1641:9:1641:34 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1641:30:1641:34 | 48i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1643:13:1643:30 | mut i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1643:34:1643:38 | 49i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1644:9:1644:22 | i64_shl_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1644:9:1644:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1644:28:1644:32 | 50i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1646:13:1646:30 | mut i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1646:34:1646:38 | 51i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:9:1647:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | +| main.rs:1647:9:1647:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1647:28:1647:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1649:13:1649:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | +| main.rs:1649:23:1649:28 | - ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1649:24:1649:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1650:13:1650:19 | i64_not | | {EXTERNAL LOCATION} | i64 | +| main.rs:1650:23:1650:28 | ! ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1650:24:1650:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1653:13:1653:14 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1653:18:1653:36 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1653:28:1653:28 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1653:28:1653:28 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1653:34:1653:34 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1653:34:1653:34 | 2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1654:13:1654:14 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1654:18:1654:36 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1654:28:1654:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1654:28:1654:28 | 3 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1654:34:1654:34 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1654:34:1654:34 | 4 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1657:13:1657:19 | vec2_eq | | {EXTERNAL LOCATION} | bool | +| main.rs:1657:23:1657:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1657:23:1657:30 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1657:29:1657:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1658:13:1658:19 | vec2_ne | | {EXTERNAL LOCATION} | bool | +| main.rs:1658:23:1658:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1658:23:1658:30 | ... != ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1658:29:1658:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1659:13:1659:19 | vec2_lt | | {EXTERNAL LOCATION} | bool | +| main.rs:1659:23:1659:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1659:23:1659:29 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1659:28:1659:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1660:13:1660:19 | vec2_le | | {EXTERNAL LOCATION} | bool | +| main.rs:1660:23:1660:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1660:23:1660:30 | ... <= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1660:29:1660:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1661:13:1661:19 | vec2_gt | | {EXTERNAL LOCATION} | bool | +| main.rs:1661:23:1661:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1661:23:1661:29 | ... > ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1661:28:1661:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1662:13:1662:19 | vec2_ge | | {EXTERNAL LOCATION} | bool | +| main.rs:1662:23:1662:24 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1662:23:1662:30 | ... >= ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1662:29:1662:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1665:13:1665:20 | vec2_add | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1665:24:1665:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1665:24:1665:30 | ... + ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1665:29:1665:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1666:13:1666:20 | vec2_sub | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1666:24:1666:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1666:24:1666:30 | ... - ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1666:29:1666:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1667:13:1667:20 | vec2_mul | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1667:24:1667:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1667:24:1667:30 | ... * ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1667:29:1667:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1668:13:1668:20 | vec2_div | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1668:24:1668:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1668:24:1668:30 | ... / ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1668:29:1668:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1669:13:1669:20 | vec2_rem | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1669:24:1669:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1669:24:1669:30 | ... % ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1669:29:1669:30 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1672:13:1672:31 | mut vec2_add_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1672:35:1672:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1673:9:1673:23 | vec2_add_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1673:9:1673:29 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1673:28:1673:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1675:13:1675:31 | mut vec2_sub_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1675:35:1675:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1676:9:1676:23 | vec2_sub_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1676:9:1676:29 | ... -= ... | | file://:0:0:0:0 | () | +| main.rs:1676:28:1676:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1678:13:1678:31 | mut vec2_mul_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1678:35:1678:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1679:9:1679:23 | vec2_mul_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1679:9:1679:29 | ... *= ... | | file://:0:0:0:0 | () | +| main.rs:1679:28:1679:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1681:13:1681:31 | mut vec2_div_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1681:35:1681:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1682:9:1682:23 | vec2_div_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1682:9:1682:29 | ... /= ... | | file://:0:0:0:0 | () | +| main.rs:1682:28:1682:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1684:13:1684:31 | mut vec2_rem_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1684:35:1684:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1685:9:1685:23 | vec2_rem_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1685:9:1685:29 | ... %= ... | | file://:0:0:0:0 | () | +| main.rs:1685:28:1685:29 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1688:13:1688:23 | vec2_bitand | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1688:27:1688:28 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1688:27:1688:33 | ... & ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1688:32:1688:33 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1689:13:1689:22 | vec2_bitor | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1689:26:1689:27 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1689:26:1689:32 | ... \| ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1689:31:1689:32 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1690:13:1690:23 | vec2_bitxor | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1690:27:1690:28 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1690:27:1690:33 | ... ^ ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1690:32:1690:33 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1691:13:1691:20 | vec2_shl | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1691:24:1691:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1691:24:1691:33 | ... << ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1691:30:1691:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1692:13:1692:20 | vec2_shr | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1692:24:1692:25 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1692:24:1692:33 | ... >> ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1692:30:1692:33 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1695:13:1695:34 | mut vec2_bitand_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1695:38:1695:39 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1696:9:1696:26 | vec2_bitand_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1696:9:1696:32 | ... &= ... | | file://:0:0:0:0 | () | +| main.rs:1696:31:1696:32 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1698:13:1698:33 | mut vec2_bitor_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1698:37:1698:38 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1699:9:1699:25 | vec2_bitor_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1699:9:1699:31 | ... \|= ... | | file://:0:0:0:0 | () | +| main.rs:1699:30:1699:31 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1701:13:1701:34 | mut vec2_bitxor_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1701:38:1701:39 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1702:9:1702:26 | vec2_bitxor_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1702:9:1702:32 | ... ^= ... | | file://:0:0:0:0 | () | +| main.rs:1702:31:1702:32 | v2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1704:13:1704:31 | mut vec2_shl_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1704:35:1704:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1705:9:1705:23 | vec2_shl_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1705:9:1705:32 | ... <<= ... | | file://:0:0:0:0 | () | +| main.rs:1705:29:1705:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1707:13:1707:31 | mut vec2_shr_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1707:35:1707:36 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1708:9:1708:23 | vec2_shr_assign | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1708:9:1708:32 | ... >>= ... | | file://:0:0:0:0 | () | +| main.rs:1708:29:1708:32 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1711:13:1711:20 | vec2_neg | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1711:24:1711:26 | - ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1711:25:1711:26 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1712:13:1712:20 | vec2_not | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1712:24:1712:26 | ! ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1712:25:1712:26 | v1 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1715:13:1715:24 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1715:28:1715:45 | ...::default(...) | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1716:13:1716:26 | vec2_zero_plus | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1716:30:1716:48 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1716:30:1716:63 | ... + ... | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1716:40:1716:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1716:40:1716:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1716:52:1716:63 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1726:18:1726:21 | SelfParam | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1729:25:1731:5 | { ... } | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1730:9:1730:10 | S1 | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1733:41:1735:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1733:41:1735:5 | { ... } | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | +| main.rs:1733:41:1735:5 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1734:9:1734:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1734:9:1734:20 | { ... } | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | +| main.rs:1734:9:1734:20 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1734:17:1734:18 | S1 | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1743:13:1743:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:1743:13:1743:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:1743:13:1743:42 | SelfParam | Ptr.&T | main.rs:1737:5:1737:14 | S2 | +| main.rs:1744:13:1744:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:1744:13:1744:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:1745:44:1747:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:1745:44:1747:9 | { ... } | T | main.rs:1723:5:1723:14 | S1 | +| main.rs:1746:13:1746:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:1746:13:1746:38 | ...::Ready(...) | T | main.rs:1723:5:1723:14 | S1 | +| main.rs:1746:36:1746:37 | S1 | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1750:41:1752:5 | { ... } | | main.rs:1737:5:1737:14 | S2 | +| main.rs:1750:41:1752:5 | { ... } | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | +| main.rs:1751:9:1751:10 | S2 | | main.rs:1737:5:1737:14 | S2 | +| main.rs:1751:9:1751:10 | S2 | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | +| main.rs:1755:9:1755:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1755:9:1755:12 | f1(...) | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1755:9:1755:18 | await ... | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1756:9:1756:12 | f2(...) | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | +| main.rs:1756:9:1756:18 | await ... | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1757:9:1757:12 | f3(...) | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | +| main.rs:1757:9:1757:18 | await ... | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1758:9:1758:10 | S2 | | main.rs:1737:5:1737:14 | S2 | +| main.rs:1758:9:1758:16 | await S2 | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1759:13:1759:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1759:13:1759:13 | b | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1759:17:1759:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1759:17:1759:28 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1759:25:1759:26 | S1 | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1760:9:1760:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1760:9:1760:9 | b | Output | main.rs:1723:5:1723:14 | S1 | +| main.rs:1760:9:1760:15 | await b | | main.rs:1723:5:1723:14 | S1 | +| main.rs:1769:15:1769:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1769:15:1769:19 | SelfParam | &T | main.rs:1768:5:1770:5 | Self [trait Trait1] | +| main.rs:1773:15:1773:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1773:15:1773:19 | SelfParam | &T | main.rs:1772:5:1774:5 | Self [trait Trait2] | +| main.rs:1777:15:1777:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1777:15:1777:19 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | +| main.rs:1781:15:1781:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1781:15:1781:19 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | +| main.rs:1784:37:1786:5 | { ... } | | main.rs:1765:5:1765:14 | S1 | +| main.rs:1784:37:1786:5 | { ... } | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1785:9:1785:10 | S1 | | main.rs:1765:5:1765:14 | S1 | +| main.rs:1785:9:1785:10 | S1 | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1789:18:1789:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1789:18:1789:22 | SelfParam | &T | main.rs:1788:5:1790:5 | Self [trait MyTrait] | +| main.rs:1793:18:1793:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1793:18:1793:22 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | +| main.rs:1793:31:1795:9 | { ... } | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1794:13:1794:14 | S2 | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1798:45:1800:5 | { ... } | | main.rs:1765:5:1765:14 | S1 | +| main.rs:1798:45:1800:5 | { ... } | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1799:9:1799:10 | S1 | | main.rs:1765:5:1765:14 | S1 | +| main.rs:1799:9:1799:10 | S1 | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1802:41:1802:41 | t | | main.rs:1802:26:1802:38 | B | +| main.rs:1802:52:1804:5 | { ... } | | main.rs:1802:23:1802:23 | A | +| main.rs:1803:9:1803:9 | t | | main.rs:1802:26:1802:38 | B | +| main.rs:1803:9:1803:17 | t.get_a() | | main.rs:1802:23:1802:23 | A | +| main.rs:1806:26:1806:26 | t | | main.rs:1806:29:1806:43 | ImplTraitTypeRepr | +| main.rs:1806:51:1808:5 | { ... } | | main.rs:1806:23:1806:23 | A | +| main.rs:1807:9:1807:9 | t | | main.rs:1806:29:1806:43 | ImplTraitTypeRepr | +| main.rs:1807:9:1807:17 | t.get_a() | | main.rs:1806:23:1806:23 | A | +| main.rs:1811:13:1811:13 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1811:17:1811:20 | f1(...) | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1812:9:1812:9 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1813:9:1813:9 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | +| main.rs:1814:13:1814:13 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1814:17:1814:32 | get_a_my_trait(...) | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1815:13:1815:13 | b | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1815:17:1815:33 | uses_my_trait1(...) | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1815:32:1815:32 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1816:13:1816:13 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1816:17:1816:32 | get_a_my_trait(...) | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1817:13:1817:13 | c | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1817:17:1817:33 | uses_my_trait2(...) | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1817:32:1817:32 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | +| main.rs:1818:13:1818:13 | d | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1818:17:1818:34 | uses_my_trait2(...) | | main.rs:1766:5:1766:14 | S2 | +| main.rs:1818:32:1818:33 | S1 | | main.rs:1765:5:1765:14 | S1 | +| main.rs:1829:16:1829:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1829:16:1829:20 | SelfParam | &T | main.rs:1825:5:1826:13 | S | +| main.rs:1829:31:1831:9 | { ... } | | main.rs:1825:5:1826:13 | S | +| main.rs:1830:13:1830:13 | S | | main.rs:1825:5:1826:13 | S | +| main.rs:1840:26:1842:9 | { ... } | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1840:26:1842:9 | { ... } | T | main.rs:1839:10:1839:10 | T | +| main.rs:1841:13:1841:38 | MyVec {...} | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1841:13:1841:38 | MyVec {...} | T | main.rs:1839:10:1839:10 | T | +| main.rs:1841:27:1841:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1841:27:1841:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1841:27:1841:36 | ...::new(...) | T | main.rs:1839:10:1839:10 | T | +| main.rs:1844:17:1844:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1844:17:1844:25 | SelfParam | &T | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1844:17:1844:25 | SelfParam | &T.T | main.rs:1839:10:1839:10 | T | +| main.rs:1844:28:1844:32 | value | | main.rs:1839:10:1839:10 | T | +| main.rs:1845:13:1845:16 | self | | file://:0:0:0:0 | & | +| main.rs:1845:13:1845:16 | self | &T | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1845:13:1845:16 | self | &T.T | main.rs:1839:10:1839:10 | T | +| main.rs:1845:13:1845:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1845:13:1845:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1845:13:1845:21 | self.data | T | main.rs:1839:10:1839:10 | T | +| main.rs:1845:28:1845:32 | value | | main.rs:1839:10:1839:10 | T | +| main.rs:1853:18:1853:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1853:18:1853:22 | SelfParam | &T | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1853:18:1853:22 | SelfParam | &T.T | main.rs:1849:10:1849:10 | T | +| main.rs:1853:25:1853:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1853:56:1855:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1853:56:1855:9 | { ... } | &T | main.rs:1849:10:1849:10 | T | +| main.rs:1854:13:1854:29 | &... | | file://:0:0:0:0 | & | +| main.rs:1854:13:1854:29 | &... | &T | main.rs:1849:10:1849:10 | T | +| main.rs:1854:14:1854:17 | self | | file://:0:0:0:0 | & | +| main.rs:1854:14:1854:17 | self | &T | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1854:14:1854:17 | self | &T.T | main.rs:1849:10:1849:10 | T | +| main.rs:1854:14:1854:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1854:14:1854:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1854:14:1854:22 | self.data | T | main.rs:1849:10:1849:10 | T | +| main.rs:1854:14:1854:29 | ...[index] | | main.rs:1849:10:1849:10 | T | +| main.rs:1854:24:1854:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1858:22:1858:26 | slice | | file://:0:0:0:0 | & | +| main.rs:1858:22:1858:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1858:22:1858:26 | slice | &T.[T] | main.rs:1825:5:1826:13 | S | +| main.rs:1859:13:1859:13 | x | | main.rs:1825:5:1826:13 | S | +| main.rs:1859:17:1859:21 | slice | | file://:0:0:0:0 | & | +| main.rs:1859:17:1859:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1859:17:1859:21 | slice | &T.[T] | main.rs:1825:5:1826:13 | S | +| main.rs:1859:17:1859:24 | slice[0] | | main.rs:1825:5:1826:13 | S | +| main.rs:1859:17:1859:30 | ... .foo() | | main.rs:1825:5:1826:13 | S | +| main.rs:1859:23:1859:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1863:13:1863:19 | mut vec | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1863:13:1863:19 | mut vec | T | main.rs:1825:5:1826:13 | S | +| main.rs:1863:23:1863:34 | ...::new(...) | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1863:23:1863:34 | ...::new(...) | T | main.rs:1825:5:1826:13 | S | +| main.rs:1864:9:1864:11 | vec | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1864:9:1864:11 | vec | T | main.rs:1825:5:1826:13 | S | +| main.rs:1864:18:1864:18 | S | | main.rs:1825:5:1826:13 | S | +| main.rs:1865:9:1865:11 | vec | | main.rs:1834:5:1837:5 | MyVec | +| main.rs:1865:9:1865:11 | vec | T | main.rs:1825:5:1826:13 | S | +| main.rs:1865:13:1865:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:13:1867:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1867:13:1867:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1867:13:1867:14 | xs | [T;...] | main.rs:1825:5:1826:13 | S | +| main.rs:1867:13:1867:14 | xs | [T] | main.rs:1825:5:1826:13 | S | +| main.rs:1867:21:1867:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:26:1867:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1867:26:1867:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1867:26:1867:28 | [...] | [T;...] | main.rs:1825:5:1826:13 | S | +| main.rs:1867:26:1867:28 | [...] | [T] | main.rs:1825:5:1826:13 | S | +| main.rs:1867:27:1867:27 | S | | main.rs:1825:5:1826:13 | S | +| main.rs:1868:13:1868:13 | x | | main.rs:1825:5:1826:13 | S | +| main.rs:1868:17:1868:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1868:17:1868:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1868:17:1868:18 | xs | [T;...] | main.rs:1825:5:1826:13 | S | +| main.rs:1868:17:1868:18 | xs | [T] | main.rs:1825:5:1826:13 | S | +| main.rs:1868:17:1868:21 | xs[0] | | main.rs:1825:5:1826:13 | S | +| main.rs:1868:17:1868:27 | ... .foo() | | main.rs:1825:5:1826:13 | S | +| main.rs:1868:20:1868:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1870:23:1870:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:1870:23:1870:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1870:23:1870:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1870:23:1870:25 | &xs | &T.[T;...] | main.rs:1825:5:1826:13 | S | +| main.rs:1870:23:1870:25 | &xs | &T.[T] | main.rs:1825:5:1826:13 | S | +| main.rs:1870:24:1870:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1870:24:1870:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1870:24:1870:25 | xs | [T;...] | main.rs:1825:5:1826:13 | S | +| main.rs:1870:24:1870:25 | xs | [T] | main.rs:1825:5:1826:13 | S | +| main.rs:1876:25:1876:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | +| main.rs:1876:25:1876:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1876:25:1876:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:1876:38:1876:45 | "World!" | | {EXTERNAL LOCATION} | str | +| main.rs:1882:19:1882:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1882:19:1882:23 | SelfParam | &T | main.rs:1881:5:1883:5 | Self [trait MyAdd] | +| main.rs:1882:26:1882:30 | value | | main.rs:1881:17:1881:17 | T | +| main.rs:1887:19:1887:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1887:19:1887:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:26:1887:30 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1887:46:1889:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1888:13:1888:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:19:1894:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1894:19:1894:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:26:1894:30 | value | | file://:0:0:0:0 | & | +| main.rs:1894:26:1894:30 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:26:1894:30 | value | &T | file://:0:0:0:0 | & | +| main.rs:1894:47:1896:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1894:47:1896:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1895:13:1895:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:13:1895:18 | * ... | | file://:0:0:0:0 | & | +| main.rs:1895:14:1895:18 | value | | file://:0:0:0:0 | & | +| main.rs:1895:14:1895:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1895:14:1895:18 | value | &T | file://:0:0:0:0 | & | +| main.rs:1901:19:1901:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1901:19:1901:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1901:26:1901:30 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1901:47:1907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1901:47:1907:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:13:1906:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:1902:13:1906:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:1902:16:1902:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1902:22:1904:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1902:22:1904:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1903:17:1903:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1903:17:1903:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1904:20:1906:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1904:20:1906:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:17:1905:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1905:17:1905:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:13:1911:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1911:13:1911:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1911:22:1911:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1911:22:1911:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:9:1912:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1912:9:1912:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:9:1912:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:18:1912:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:9:1913:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1913:9:1913:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:9:1913:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:18:1913:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:1913:18:1913:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:19:1913:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:9:1914:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1914:9:1914:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:9:1914:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:18:1914:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1922:5:1922:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1923:5:1923:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1923:20:1923:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1923:41:1923:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1939:5:1939:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From 845179665cb2ec50f12b17f1fcb98214a891ccca Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Wed, 18 Jun 2025 19:55:58 +0200 Subject: [PATCH 120/340] Rust: Add type inference test with borrow of unknown argument --- .../test/library-tests/type-inference/main.rs | 5 + .../type-inference/type-inference.expected | 477 +++++++++--------- 2 files changed, 247 insertions(+), 235 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 0b6d2b754a1..fef7184c87b 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1714,6 +1714,11 @@ mod overloadable_operators { // Here the type of `default_vec2` must be inferred from the `+` call. let default_vec2 = Default::default(); // $ type=default_vec2:Vec2 let vec2_zero_plus = Vec2 { x: 0, y: 0 } + default_vec2; // $ method=Vec2::add + + // Here the type of `default_vec2` must be inferred from the `==` call + // and the type of the borrowed second argument is unknown at the call. + let default_vec2 = Default::default(); // $ MISSING: type=default_vec2:Vec2 + let vec2_zero_plus = Vec2 { x: 0, y: 0 } == default_vec2; // $ method=Vec2::eq } } 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 e7f2d2b10c1..328a2ec7198 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2774,240 +2774,247 @@ inferType | main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i64 | | main.rs:1716:52:1716:63 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1726:18:1726:21 | SelfParam | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1729:25:1731:5 | { ... } | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1730:9:1730:10 | S1 | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1733:41:1735:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1733:41:1735:5 | { ... } | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | -| main.rs:1733:41:1735:5 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1734:9:1734:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1734:9:1734:20 | { ... } | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | -| main.rs:1734:9:1734:20 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1734:17:1734:18 | S1 | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1743:13:1743:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | -| main.rs:1743:13:1743:42 | SelfParam | Ptr | file://:0:0:0:0 | & | -| main.rs:1743:13:1743:42 | SelfParam | Ptr.&T | main.rs:1737:5:1737:14 | S2 | -| main.rs:1744:13:1744:15 | _cx | | file://:0:0:0:0 | & | -| main.rs:1744:13:1744:15 | _cx | &T | {EXTERNAL LOCATION} | Context | -| main.rs:1745:44:1747:9 | { ... } | | {EXTERNAL LOCATION} | Poll | -| main.rs:1745:44:1747:9 | { ... } | T | main.rs:1723:5:1723:14 | S1 | -| main.rs:1746:13:1746:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | -| main.rs:1746:13:1746:38 | ...::Ready(...) | T | main.rs:1723:5:1723:14 | S1 | -| main.rs:1746:36:1746:37 | S1 | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1750:41:1752:5 | { ... } | | main.rs:1737:5:1737:14 | S2 | -| main.rs:1750:41:1752:5 | { ... } | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | -| main.rs:1751:9:1751:10 | S2 | | main.rs:1737:5:1737:14 | S2 | -| main.rs:1751:9:1751:10 | S2 | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | -| main.rs:1755:9:1755:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1755:9:1755:12 | f1(...) | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1755:9:1755:18 | await ... | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1756:9:1756:12 | f2(...) | | main.rs:1733:16:1733:39 | ImplTraitTypeRepr | -| main.rs:1756:9:1756:18 | await ... | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1757:9:1757:12 | f3(...) | | main.rs:1750:16:1750:39 | ImplTraitTypeRepr | -| main.rs:1757:9:1757:18 | await ... | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1758:9:1758:10 | S2 | | main.rs:1737:5:1737:14 | S2 | -| main.rs:1758:9:1758:16 | await S2 | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1759:13:1759:13 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1759:13:1759:13 | b | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1759:17:1759:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1759:17:1759:28 | { ... } | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1759:25:1759:26 | S1 | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1760:9:1760:9 | b | | {EXTERNAL LOCATION} | trait Future | -| main.rs:1760:9:1760:9 | b | Output | main.rs:1723:5:1723:14 | S1 | -| main.rs:1760:9:1760:15 | await b | | main.rs:1723:5:1723:14 | S1 | -| main.rs:1769:15:1769:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1769:15:1769:19 | SelfParam | &T | main.rs:1768:5:1770:5 | Self [trait Trait1] | -| main.rs:1773:15:1773:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1773:15:1773:19 | SelfParam | &T | main.rs:1772:5:1774:5 | Self [trait Trait2] | -| main.rs:1777:15:1777:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1777:15:1777:19 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | -| main.rs:1781:15:1781:19 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1781:15:1781:19 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | -| main.rs:1784:37:1786:5 | { ... } | | main.rs:1765:5:1765:14 | S1 | -| main.rs:1784:37:1786:5 | { ... } | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1785:9:1785:10 | S1 | | main.rs:1765:5:1765:14 | S1 | -| main.rs:1785:9:1785:10 | S1 | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1789:18:1789:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1789:18:1789:22 | SelfParam | &T | main.rs:1788:5:1790:5 | Self [trait MyTrait] | -| main.rs:1793:18:1793:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1793:18:1793:22 | SelfParam | &T | main.rs:1765:5:1765:14 | S1 | -| main.rs:1793:31:1795:9 | { ... } | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1794:13:1794:14 | S2 | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1798:45:1800:5 | { ... } | | main.rs:1765:5:1765:14 | S1 | -| main.rs:1798:45:1800:5 | { ... } | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1799:9:1799:10 | S1 | | main.rs:1765:5:1765:14 | S1 | -| main.rs:1799:9:1799:10 | S1 | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1802:41:1802:41 | t | | main.rs:1802:26:1802:38 | B | -| main.rs:1802:52:1804:5 | { ... } | | main.rs:1802:23:1802:23 | A | -| main.rs:1803:9:1803:9 | t | | main.rs:1802:26:1802:38 | B | -| main.rs:1803:9:1803:17 | t.get_a() | | main.rs:1802:23:1802:23 | A | -| main.rs:1806:26:1806:26 | t | | main.rs:1806:29:1806:43 | ImplTraitTypeRepr | -| main.rs:1806:51:1808:5 | { ... } | | main.rs:1806:23:1806:23 | A | -| main.rs:1807:9:1807:9 | t | | main.rs:1806:29:1806:43 | ImplTraitTypeRepr | -| main.rs:1807:9:1807:17 | t.get_a() | | main.rs:1806:23:1806:23 | A | -| main.rs:1811:13:1811:13 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1811:17:1811:20 | f1(...) | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1812:9:1812:9 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1813:9:1813:9 | x | | main.rs:1784:16:1784:35 | ImplTraitTypeRepr | -| main.rs:1814:13:1814:13 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1814:17:1814:32 | get_a_my_trait(...) | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1815:13:1815:13 | b | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1815:17:1815:33 | uses_my_trait1(...) | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1815:32:1815:32 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1816:13:1816:13 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1816:17:1816:32 | get_a_my_trait(...) | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1817:13:1817:13 | c | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1817:17:1817:33 | uses_my_trait2(...) | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1817:32:1817:32 | a | | main.rs:1798:28:1798:43 | ImplTraitTypeRepr | -| main.rs:1818:13:1818:13 | d | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1818:17:1818:34 | uses_my_trait2(...) | | main.rs:1766:5:1766:14 | S2 | -| main.rs:1818:32:1818:33 | S1 | | main.rs:1765:5:1765:14 | S1 | -| main.rs:1829:16:1829:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1829:16:1829:20 | SelfParam | &T | main.rs:1825:5:1826:13 | S | -| main.rs:1829:31:1831:9 | { ... } | | main.rs:1825:5:1826:13 | S | -| main.rs:1830:13:1830:13 | S | | main.rs:1825:5:1826:13 | S | -| main.rs:1840:26:1842:9 | { ... } | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1840:26:1842:9 | { ... } | T | main.rs:1839:10:1839:10 | T | -| main.rs:1841:13:1841:38 | MyVec {...} | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1841:13:1841:38 | MyVec {...} | T | main.rs:1839:10:1839:10 | T | -| main.rs:1841:27:1841:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1841:27:1841:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1841:27:1841:36 | ...::new(...) | T | main.rs:1839:10:1839:10 | T | -| main.rs:1844:17:1844:25 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1844:17:1844:25 | SelfParam | &T | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1844:17:1844:25 | SelfParam | &T.T | main.rs:1839:10:1839:10 | T | -| main.rs:1844:28:1844:32 | value | | main.rs:1839:10:1839:10 | T | -| main.rs:1845:13:1845:16 | self | | file://:0:0:0:0 | & | -| main.rs:1845:13:1845:16 | self | &T | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1845:13:1845:16 | self | &T.T | main.rs:1839:10:1839:10 | T | -| main.rs:1845:13:1845:21 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1845:13:1845:21 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1845:13:1845:21 | self.data | T | main.rs:1839:10:1839:10 | T | -| main.rs:1845:28:1845:32 | value | | main.rs:1839:10:1839:10 | T | -| main.rs:1853:18:1853:22 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1853:18:1853:22 | SelfParam | &T | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1853:18:1853:22 | SelfParam | &T.T | main.rs:1849:10:1849:10 | T | -| main.rs:1853:25:1853:29 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1853:56:1855:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1853:56:1855:9 | { ... } | &T | main.rs:1849:10:1849:10 | T | -| main.rs:1854:13:1854:29 | &... | | file://:0:0:0:0 | & | -| main.rs:1854:13:1854:29 | &... | &T | main.rs:1849:10:1849:10 | T | -| main.rs:1854:14:1854:17 | self | | file://:0:0:0:0 | & | -| main.rs:1854:14:1854:17 | self | &T | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1854:14:1854:17 | self | &T.T | main.rs:1849:10:1849:10 | T | -| main.rs:1854:14:1854:22 | self.data | | {EXTERNAL LOCATION} | Vec | -| main.rs:1854:14:1854:22 | self.data | A | {EXTERNAL LOCATION} | Global | -| main.rs:1854:14:1854:22 | self.data | T | main.rs:1849:10:1849:10 | T | -| main.rs:1854:14:1854:29 | ...[index] | | main.rs:1849:10:1849:10 | T | -| main.rs:1854:24:1854:28 | index | | {EXTERNAL LOCATION} | usize | -| main.rs:1858:22:1858:26 | slice | | file://:0:0:0:0 | & | -| main.rs:1858:22:1858:26 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1858:22:1858:26 | slice | &T.[T] | main.rs:1825:5:1826:13 | S | -| main.rs:1859:13:1859:13 | x | | main.rs:1825:5:1826:13 | S | -| main.rs:1859:17:1859:21 | slice | | file://:0:0:0:0 | & | -| main.rs:1859:17:1859:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1859:17:1859:21 | slice | &T.[T] | main.rs:1825:5:1826:13 | S | -| main.rs:1859:17:1859:24 | slice[0] | | main.rs:1825:5:1826:13 | S | -| main.rs:1859:17:1859:30 | ... .foo() | | main.rs:1825:5:1826:13 | S | -| main.rs:1859:23:1859:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1863:13:1863:19 | mut vec | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1863:13:1863:19 | mut vec | T | main.rs:1825:5:1826:13 | S | -| main.rs:1863:23:1863:34 | ...::new(...) | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1863:23:1863:34 | ...::new(...) | T | main.rs:1825:5:1826:13 | S | -| main.rs:1864:9:1864:11 | vec | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1864:9:1864:11 | vec | T | main.rs:1825:5:1826:13 | S | -| main.rs:1864:18:1864:18 | S | | main.rs:1825:5:1826:13 | S | -| main.rs:1865:9:1865:11 | vec | | main.rs:1834:5:1837:5 | MyVec | -| main.rs:1865:9:1865:11 | vec | T | main.rs:1825:5:1826:13 | S | -| main.rs:1865:13:1865:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1867:13:1867:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1867:13:1867:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1867:13:1867:14 | xs | [T;...] | main.rs:1825:5:1826:13 | S | -| main.rs:1867:13:1867:14 | xs | [T] | main.rs:1825:5:1826:13 | S | -| main.rs:1867:21:1867:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1867:26:1867:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1867:26:1867:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1867:26:1867:28 | [...] | [T;...] | main.rs:1825:5:1826:13 | S | -| main.rs:1867:26:1867:28 | [...] | [T] | main.rs:1825:5:1826:13 | S | -| main.rs:1867:27:1867:27 | S | | main.rs:1825:5:1826:13 | S | -| main.rs:1868:13:1868:13 | x | | main.rs:1825:5:1826:13 | S | -| main.rs:1868:17:1868:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1868:17:1868:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1868:17:1868:18 | xs | [T;...] | main.rs:1825:5:1826:13 | S | -| main.rs:1868:17:1868:18 | xs | [T] | main.rs:1825:5:1826:13 | S | -| main.rs:1868:17:1868:21 | xs[0] | | main.rs:1825:5:1826:13 | S | -| main.rs:1868:17:1868:27 | ... .foo() | | main.rs:1825:5:1826:13 | S | -| main.rs:1868:20:1868:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1870:23:1870:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:1870:23:1870:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1870:23:1870:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1870:23:1870:25 | &xs | &T.[T;...] | main.rs:1825:5:1826:13 | S | -| main.rs:1870:23:1870:25 | &xs | &T.[T] | main.rs:1825:5:1826:13 | S | -| main.rs:1870:24:1870:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1870:24:1870:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1870:24:1870:25 | xs | [T;...] | main.rs:1825:5:1826:13 | S | -| main.rs:1870:24:1870:25 | xs | [T] | main.rs:1825:5:1826:13 | S | -| main.rs:1876:25:1876:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | -| main.rs:1876:25:1876:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1876:25:1876:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:1876:38:1876:45 | "World!" | | {EXTERNAL LOCATION} | str | -| main.rs:1882:19:1882:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1882:19:1882:23 | SelfParam | &T | main.rs:1881:5:1883:5 | Self [trait MyAdd] | -| main.rs:1882:26:1882:30 | value | | main.rs:1881:17:1881:17 | T | +| main.rs:1721:13:1721:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | +| main.rs:1721:30:1721:48 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1721:30:1721:64 | ... == ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1721:40:1721:40 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1721:40:1721:40 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1721:46:1721:46 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1721:46:1721:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1731:18:1731:21 | SelfParam | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1734:25:1736:5 | { ... } | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1735:9:1735:10 | S1 | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1738:41:1740:5 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1738:41:1740:5 | { ... } | | main.rs:1738:16:1738:39 | ImplTraitTypeRepr | +| main.rs:1738:41:1740:5 | { ... } | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1739:9:1739:20 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1739:9:1739:20 | { ... } | | main.rs:1738:16:1738:39 | ImplTraitTypeRepr | +| main.rs:1739:9:1739:20 | { ... } | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1739:17:1739:18 | S1 | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1748:13:1748:42 | SelfParam | | {EXTERNAL LOCATION} | Pin | +| main.rs:1748:13:1748:42 | SelfParam | Ptr | file://:0:0:0:0 | & | +| main.rs:1748:13:1748:42 | SelfParam | Ptr.&T | main.rs:1742:5:1742:14 | S2 | +| main.rs:1749:13:1749:15 | _cx | | file://:0:0:0:0 | & | +| main.rs:1749:13:1749:15 | _cx | &T | {EXTERNAL LOCATION} | Context | +| main.rs:1750:44:1752:9 | { ... } | | {EXTERNAL LOCATION} | Poll | +| main.rs:1750:44:1752:9 | { ... } | T | main.rs:1728:5:1728:14 | S1 | +| main.rs:1751:13:1751:38 | ...::Ready(...) | | {EXTERNAL LOCATION} | Poll | +| main.rs:1751:13:1751:38 | ...::Ready(...) | T | main.rs:1728:5:1728:14 | S1 | +| main.rs:1751:36:1751:37 | S1 | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1755:41:1757:5 | { ... } | | main.rs:1742:5:1742:14 | S2 | +| main.rs:1755:41:1757:5 | { ... } | | main.rs:1755:16:1755:39 | ImplTraitTypeRepr | +| main.rs:1756:9:1756:10 | S2 | | main.rs:1742:5:1742:14 | S2 | +| main.rs:1756:9:1756:10 | S2 | | main.rs:1755:16:1755:39 | ImplTraitTypeRepr | +| main.rs:1760:9:1760:12 | f1(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1760:9:1760:12 | f1(...) | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1760:9:1760:18 | await ... | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1761:9:1761:12 | f2(...) | | main.rs:1738:16:1738:39 | ImplTraitTypeRepr | +| main.rs:1761:9:1761:18 | await ... | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1762:9:1762:12 | f3(...) | | main.rs:1755:16:1755:39 | ImplTraitTypeRepr | +| main.rs:1762:9:1762:18 | await ... | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1763:9:1763:10 | S2 | | main.rs:1742:5:1742:14 | S2 | +| main.rs:1763:9:1763:16 | await S2 | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1764:13:1764:13 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1764:13:1764:13 | b | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1764:17:1764:28 | { ... } | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1764:17:1764:28 | { ... } | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1764:25:1764:26 | S1 | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1765:9:1765:9 | b | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1765:9:1765:9 | b | Output | main.rs:1728:5:1728:14 | S1 | +| main.rs:1765:9:1765:15 | await b | | main.rs:1728:5:1728:14 | S1 | +| main.rs:1774:15:1774:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1774:15:1774:19 | SelfParam | &T | main.rs:1773:5:1775:5 | Self [trait Trait1] | +| main.rs:1778:15:1778:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1778:15:1778:19 | SelfParam | &T | main.rs:1777:5:1779:5 | Self [trait Trait2] | +| main.rs:1782:15:1782:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1782:15:1782:19 | SelfParam | &T | main.rs:1770:5:1770:14 | S1 | +| main.rs:1786:15:1786:19 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1786:15:1786:19 | SelfParam | &T | main.rs:1770:5:1770:14 | S1 | +| main.rs:1789:37:1791:5 | { ... } | | main.rs:1770:5:1770:14 | S1 | +| main.rs:1789:37:1791:5 | { ... } | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1790:9:1790:10 | S1 | | main.rs:1770:5:1770:14 | S1 | +| main.rs:1790:9:1790:10 | S1 | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1794:18:1794:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1794:18:1794:22 | SelfParam | &T | main.rs:1793:5:1795:5 | Self [trait MyTrait] | +| main.rs:1798:18:1798:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1798:18:1798:22 | SelfParam | &T | main.rs:1770:5:1770:14 | S1 | +| main.rs:1798:31:1800:9 | { ... } | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1799:13:1799:14 | S2 | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1803:45:1805:5 | { ... } | | main.rs:1770:5:1770:14 | S1 | +| main.rs:1803:45:1805:5 | { ... } | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1804:9:1804:10 | S1 | | main.rs:1770:5:1770:14 | S1 | +| main.rs:1804:9:1804:10 | S1 | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1807:41:1807:41 | t | | main.rs:1807:26:1807:38 | B | +| main.rs:1807:52:1809:5 | { ... } | | main.rs:1807:23:1807:23 | A | +| main.rs:1808:9:1808:9 | t | | main.rs:1807:26:1807:38 | B | +| main.rs:1808:9:1808:17 | t.get_a() | | main.rs:1807:23:1807:23 | A | +| main.rs:1811:26:1811:26 | t | | main.rs:1811:29:1811:43 | ImplTraitTypeRepr | +| main.rs:1811:51:1813:5 | { ... } | | main.rs:1811:23:1811:23 | A | +| main.rs:1812:9:1812:9 | t | | main.rs:1811:29:1811:43 | ImplTraitTypeRepr | +| main.rs:1812:9:1812:17 | t.get_a() | | main.rs:1811:23:1811:23 | A | +| main.rs:1816:13:1816:13 | x | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1816:17:1816:20 | f1(...) | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1817:9:1817:9 | x | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1818:9:1818:9 | x | | main.rs:1789:16:1789:35 | ImplTraitTypeRepr | +| main.rs:1819:13:1819:13 | a | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1819:17:1819:32 | get_a_my_trait(...) | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1820:13:1820:13 | b | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1820:17:1820:33 | uses_my_trait1(...) | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1820:32:1820:32 | a | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1821:13:1821:13 | a | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1821:17:1821:32 | get_a_my_trait(...) | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1822:13:1822:13 | c | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1822:17:1822:33 | uses_my_trait2(...) | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1822:32:1822:32 | a | | main.rs:1803:28:1803:43 | ImplTraitTypeRepr | +| main.rs:1823:13:1823:13 | d | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1823:17:1823:34 | uses_my_trait2(...) | | main.rs:1771:5:1771:14 | S2 | +| main.rs:1823:32:1823:33 | S1 | | main.rs:1770:5:1770:14 | S1 | +| main.rs:1834:16:1834:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1834:16:1834:20 | SelfParam | &T | main.rs:1830:5:1831:13 | S | +| main.rs:1834:31:1836:9 | { ... } | | main.rs:1830:5:1831:13 | S | +| main.rs:1835:13:1835:13 | S | | main.rs:1830:5:1831:13 | S | +| main.rs:1845:26:1847:9 | { ... } | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1845:26:1847:9 | { ... } | T | main.rs:1844:10:1844:10 | T | +| main.rs:1846:13:1846:38 | MyVec {...} | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1846:13:1846:38 | MyVec {...} | T | main.rs:1844:10:1844:10 | T | +| main.rs:1846:27:1846:36 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1846:27:1846:36 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1846:27:1846:36 | ...::new(...) | T | main.rs:1844:10:1844:10 | T | +| main.rs:1849:17:1849:25 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1849:17:1849:25 | SelfParam | &T | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1849:17:1849:25 | SelfParam | &T.T | main.rs:1844:10:1844:10 | T | +| main.rs:1849:28:1849:32 | value | | main.rs:1844:10:1844:10 | T | +| main.rs:1850:13:1850:16 | self | | file://:0:0:0:0 | & | +| main.rs:1850:13:1850:16 | self | &T | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1850:13:1850:16 | self | &T.T | main.rs:1844:10:1844:10 | T | +| main.rs:1850:13:1850:21 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1850:13:1850:21 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1850:13:1850:21 | self.data | T | main.rs:1844:10:1844:10 | T | +| main.rs:1850:28:1850:32 | value | | main.rs:1844:10:1844:10 | T | +| main.rs:1858:18:1858:22 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1858:18:1858:22 | SelfParam | &T | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1858:18:1858:22 | SelfParam | &T.T | main.rs:1854:10:1854:10 | T | +| main.rs:1858:25:1858:29 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1858:56:1860:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1858:56:1860:9 | { ... } | &T | main.rs:1854:10:1854:10 | T | +| main.rs:1859:13:1859:29 | &... | | file://:0:0:0:0 | & | +| main.rs:1859:13:1859:29 | &... | &T | main.rs:1854:10:1854:10 | T | +| main.rs:1859:14:1859:17 | self | | file://:0:0:0:0 | & | +| main.rs:1859:14:1859:17 | self | &T | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1859:14:1859:17 | self | &T.T | main.rs:1854:10:1854:10 | T | +| main.rs:1859:14:1859:22 | self.data | | {EXTERNAL LOCATION} | Vec | +| main.rs:1859:14:1859:22 | self.data | A | {EXTERNAL LOCATION} | Global | +| main.rs:1859:14:1859:22 | self.data | T | main.rs:1854:10:1854:10 | T | +| main.rs:1859:14:1859:29 | ...[index] | | main.rs:1854:10:1854:10 | T | +| main.rs:1859:24:1859:28 | index | | {EXTERNAL LOCATION} | usize | +| main.rs:1863:22:1863:26 | slice | | file://:0:0:0:0 | & | +| main.rs:1863:22:1863:26 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1863:22:1863:26 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | +| main.rs:1864:13:1864:13 | x | | main.rs:1830:5:1831:13 | S | +| main.rs:1864:17:1864:21 | slice | | file://:0:0:0:0 | & | +| main.rs:1864:17:1864:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1864:17:1864:21 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | +| main.rs:1864:17:1864:24 | slice[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1864:17:1864:30 | ... .foo() | | main.rs:1830:5:1831:13 | S | +| main.rs:1864:23:1864:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:13:1868:19 | mut vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1868:13:1868:19 | mut vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1868:23:1868:34 | ...::new(...) | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1868:23:1868:34 | ...::new(...) | T | main.rs:1830:5:1831:13 | S | +| main.rs:1869:9:1869:11 | vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1869:9:1869:11 | vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1869:18:1869:18 | S | | main.rs:1830:5:1831:13 | S | +| main.rs:1870:9:1870:11 | vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1870:9:1870:11 | vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1870:13:1870:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1872:13:1872:14 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1872:13:1872:14 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1872:21:1872:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1872:26:1872:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1872:26:1872:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1872:26:1872:28 | [...] | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1872:26:1872:28 | [...] | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1872:27:1872:27 | S | | main.rs:1830:5:1831:13 | S | +| main.rs:1873:13:1873:13 | x | | main.rs:1830:5:1831:13 | S | +| main.rs:1873:17:1873:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1873:17:1873:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1873:17:1873:18 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1873:17:1873:18 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1873:17:1873:21 | xs[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1873:17:1873:27 | ... .foo() | | main.rs:1830:5:1831:13 | S | +| main.rs:1873:20:1873:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:23:1875:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:1875:23:1875:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1875:23:1875:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1875:23:1875:25 | &xs | &T.[T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1875:23:1875:25 | &xs | &T.[T] | main.rs:1830:5:1831:13 | S | +| main.rs:1875:24:1875:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1875:24:1875:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1875:24:1875:25 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1875:24:1875:25 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1881:25:1881:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | +| main.rs:1881:25:1881:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1881:25:1881:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:1881:38:1881:45 | "World!" | | {EXTERNAL LOCATION} | str | | main.rs:1887:19:1887:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1887:19:1887:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1887:26:1887:30 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1887:46:1889:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1888:13:1888:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:19:1894:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1894:19:1894:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:26:1894:30 | value | | file://:0:0:0:0 | & | -| main.rs:1894:26:1894:30 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:26:1894:30 | value | &T | file://:0:0:0:0 | & | -| main.rs:1894:47:1896:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:47:1896:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1895:13:1895:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:13:1895:18 | * ... | | file://:0:0:0:0 | & | -| main.rs:1895:14:1895:18 | value | | file://:0:0:0:0 | & | -| main.rs:1895:14:1895:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1895:14:1895:18 | value | &T | file://:0:0:0:0 | & | -| main.rs:1901:19:1901:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1901:19:1901:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:26:1901:30 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1901:47:1907:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1901:47:1907:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:13:1906:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:13:1906:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:1902:16:1902:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1902:22:1904:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:22:1904:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1903:17:1903:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:17:1903:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1904:20:1906:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1904:20:1906:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1905:17:1905:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:17:1905:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:13:1911:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:13:1911:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1911:22:1911:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:22:1911:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:9:1912:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1912:9:1912:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:9:1912:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1912:18:1912:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:9:1913:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1913:9:1913:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:9:1913:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:18:1913:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:1913:18:1913:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1913:19:1913:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:9:1914:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1914:9:1914:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:9:1914:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1914:18:1914:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1922:5:1922:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1923:5:1923:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1923:20:1923:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1923:41:1923:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1939:5:1939:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1887:19:1887:23 | SelfParam | &T | main.rs:1886:5:1888:5 | Self [trait MyAdd] | +| main.rs:1887:26:1887:30 | value | | main.rs:1886:17:1886:17 | T | +| main.rs:1892:19:1892:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1892:19:1892:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:26:1892:30 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1892:46:1894:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1893:13:1893:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1899:19:1899:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1899:19:1899:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1899:26:1899:30 | value | | file://:0:0:0:0 | & | +| main.rs:1899:26:1899:30 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1899:26:1899:30 | value | &T | file://:0:0:0:0 | & | +| main.rs:1899:47:1901:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1899:47:1901:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1900:13:1900:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:13:1900:18 | * ... | | file://:0:0:0:0 | & | +| main.rs:1900:14:1900:18 | value | | file://:0:0:0:0 | & | +| main.rs:1900:14:1900:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1900:14:1900:18 | value | &T | file://:0:0:0:0 | & | +| main.rs:1906:19:1906:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1906:19:1906:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:26:1906:30 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1906:47:1912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:47:1912:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:13:1911:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:1907:13:1911:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:1907:16:1907:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1907:22:1909:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1907:22:1909:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1908:17:1908:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1908:17:1908:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1909:20:1911:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1909:20:1911:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1910:17:1910:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1910:17:1910:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:13:1916:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1916:13:1916:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:22:1916:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1916:22:1916:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:9:1917:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1917:9:1917:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:9:1917:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1917:18:1917:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1918:9:1918:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:9:1918:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:18:1918:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:1918:18:1918:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1918:19:1918:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:9:1919:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1919:9:1919:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:9:1919:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1919:18:1919:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1927:5:1927:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1928:5:1928:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1928:20:1928:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1928:41:1928:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1944:5:1944:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From d55e8b70109c2a9fac209a5a489f34bc50ba9dec Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 13:45:54 +0100 Subject: [PATCH 121/340] Rust: Add another test case for ranges. --- .../test/library-tests/type-inference/main.rs | 2 + .../type-inference/type-inference.expected | 288 +++++++++--------- 2 files changed, 147 insertions(+), 143 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 4969cedb044..43dda03936a 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1925,6 +1925,8 @@ mod loops { for i in 0..10 { } // $ MISSING: type=i:i32 for u in [0u8 .. 10] { } // $ MISSING: type=u:u8 + let range = 0..10; // $ MISSING: type=range:Range type=range:Idx.i32 + for i in range { } // $ MISSING: type=i:i32 let range1 = std::ops::Range { start: 0u16, end: 10u16 }; // $ type=range1:Range type=range1:Idx.u16 for u in range1 { } // $ MISSING: type=u:u16 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 3cb687091d7..6cdf1b4750d 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2842,147 +2842,149 @@ inferType | main.rs:1927:18:1927:28 | [...] | | file://:0:0:0:0 | [] | | main.rs:1927:19:1927:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | | main.rs:1927:26:1927:27 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1929:13:1929:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:1929:13:1929:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1929:22:1929:64 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:1929:22:1929:64 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1929:47:1929:50 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1929:58:1929:62 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1930:18:1930:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:1930:18:1930:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1934:26:1934:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1934:29:1934:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1934:32:1934:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:13:1937:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:1937:13:1937:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:1937:13:1937:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:33:1937:44 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1937:33:1937:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:33:1937:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:33:1937:53 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1937:33:1937:53 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:1937:33:1937:53 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:34:1937:37 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:34:1937:37 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:40:1937:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:40:1937:40 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1937:43:1937:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:43:1937:43 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1938:13:1938:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:1938:18:1938:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:1938:18:1938:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:1938:18:1938:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:22:1940:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1940:22:1940:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:22:1940:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:23:1940:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:23:1940:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:29:1940:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:29:1940:29 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:32:1940:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:32:1940:32 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1943:13:1943:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1943:13:1943:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1943:13:1943:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1943:21:1943:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1943:21:1943:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1943:21:1943:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1943:31:1943:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1943:31:1943:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:31:1943:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1943:32:1943:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:32:1943:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1943:38:1943:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:38:1943:38 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1943:41:1943:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1943:41:1943:41 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1944:13:1944:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:1944:18:1944:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1944:18:1944:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1944:18:1944:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1946:13:1946:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1946:13:1946:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1946:13:1946:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1946:13:1946:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:33:1946:44 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1946:33:1946:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1946:33:1946:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:33:1946:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1946:33:1946:61 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:1946:33:1946:61 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:1946:33:1946:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:34:1946:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1946:34:1946:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:40:1946:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1946:40:1946:40 | 2 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1946:43:1946:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1946:43:1946:43 | 3 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1947:13:1947:13 | u | | file://:0:0:0:0 | & | -| main.rs:1947:13:1947:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:1947:18:1947:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1947:18:1947:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1947:18:1947:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1947:18:1947:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1949:13:1949:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1949:13:1949:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1949:25:1949:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1949:25:1949:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1950:9:1950:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1950:9:1950:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1950:20:1950:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1951:18:1951:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1951:18:1951:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1953:33:1953:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1953:36:1953:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1953:45:1953:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1953:48:1953:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1959:13:1959:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1959:13:1959:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1959:24:1959:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1959:24:1959:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1960:9:1960:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1960:9:1960:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1960:9:1960:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1960:21:1960:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1960:24:1960:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1960:24:1960:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1960:33:1960:37 | "one" | | {EXTERNAL LOCATION} | str | -| main.rs:1961:9:1961:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1961:9:1961:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1961:9:1961:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1961:21:1961:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1961:24:1961:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1961:24:1961:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1961:33:1961:37 | "two" | | {EXTERNAL LOCATION} | str | -| main.rs:1962:20:1962:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1962:20:1962:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1962:20:1962:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:1963:22:1963:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1963:22:1963:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1963:22:1963:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:1964:29:1964:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1964:29:1964:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1964:29:1964:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:1965:29:1965:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:1965:29:1965:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:1965:29:1965:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1965:30:1965:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1965:30:1965:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1969:13:1969:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1969:13:1969:17 | mut a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1969:26:1969:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1969:26:1969:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:15:1970:15 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1970:15:1970:15 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1970:15:1970:20 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1970:19:1970:20 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1971:13:1971:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1971:13:1971:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1971:13:1971:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1971:18:1971:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1978:5:1978:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1979:5:1979:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1979:20:1979:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1979:41:1979:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1995:5:1995:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1928:21:1928:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1928:24:1928:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1931:13:1931:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1931:13:1931:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1931:22:1931:64 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:1931:22:1931:64 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1931:47:1931:50 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1931:58:1931:62 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1932:18:1932:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1932:18:1932:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1936:26:1936:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1936:29:1936:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1936:32:1936:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:13:1939:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1939:13:1939:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1939:13:1939:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1939:33:1939:44 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1939:33:1939:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:33:1939:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1939:33:1939:53 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1939:33:1939:53 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1939:33:1939:53 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1939:34:1939:37 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:34:1939:37 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1939:40:1939:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:40:1939:40 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1939:43:1939:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:43:1939:43 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:13:1940:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1940:18:1940:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1940:18:1940:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1940:18:1940:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1942:22:1942:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1942:22:1942:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1942:22:1942:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1942:23:1942:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1942:23:1942:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1942:29:1942:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1942:29:1942:29 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1942:32:1942:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1942:32:1942:32 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1945:13:1945:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1945:13:1945:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1945:13:1945:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1945:21:1945:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1945:21:1945:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1945:21:1945:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1945:31:1945:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1945:31:1945:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1945:31:1945:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1945:32:1945:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1945:32:1945:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1945:38:1945:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1945:38:1945:38 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1945:41:1945:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1945:41:1945:41 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1946:13:1946:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1946:18:1946:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1946:18:1946:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1946:18:1946:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1948:13:1948:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1948:13:1948:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1948:13:1948:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1948:13:1948:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1948:33:1948:44 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1948:33:1948:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1948:33:1948:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1948:33:1948:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1948:33:1948:61 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1948:33:1948:61 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:1948:33:1948:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1948:34:1948:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1948:34:1948:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1948:40:1948:40 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1948:40:1948:40 | 2 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1948:43:1948:43 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1948:43:1948:43 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1949:13:1949:13 | u | | file://:0:0:0:0 | & | +| main.rs:1949:13:1949:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:1949:18:1949:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1949:18:1949:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1949:18:1949:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1949:18:1949:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1951:13:1951:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1951:13:1951:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1951:25:1951:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1951:25:1951:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1952:9:1952:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1952:9:1952:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1952:20:1952:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1953:18:1953:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1953:18:1953:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1955:33:1955:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:36:1955:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:45:1955:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:48:1955:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:13:1961:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1961:13:1961:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1961:24:1961:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1961:24:1961:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1962:9:1962:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1962:9:1962:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1962:9:1962:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1962:21:1962:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1962:24:1962:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1962:24:1962:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1962:33:1962:37 | "one" | | {EXTERNAL LOCATION} | str | +| main.rs:1963:9:1963:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1963:9:1963:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1963:9:1963:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1963:21:1963:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1963:24:1963:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1963:24:1963:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1963:33:1963:37 | "two" | | {EXTERNAL LOCATION} | str | +| main.rs:1964:20:1964:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1964:20:1964:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1964:20:1964:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:1965:22:1965:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1965:22:1965:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1965:22:1965:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:1966:29:1966:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1966:29:1966:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1966:29:1966:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:1967:29:1967:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:1967:29:1967:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:1967:29:1967:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1967:30:1967:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1967:30:1967:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1971:13:1971:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:13:1971:17 | mut a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1971:26:1971:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:26:1971:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:15:1972:15 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1972:15:1972:15 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1972:15:1972:20 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1972:19:1972:20 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1973:13:1973:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1973:13:1973:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1973:13:1973:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1973:18:1973:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1980:5:1980:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1981:5:1981:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1981:20:1981:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1981:41:1981:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1997:5:1997:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures From 7d536a3c80af2925e62f7d7dcf502d49a5e847c4 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 19 Jun 2025 14:57:52 +0200 Subject: [PATCH 122/340] Rust: When resolving methods on reference also consider the reference itself --- .../codeql/rust/internal/TypeInference.qll | 2 -- .../type-inference/dereference.rs | 2 +- .../test/library-tests/type-inference/main.rs | 6 +++--- .../type-inference/type-inference.expected | 20 +++++++++++++++++++ 4 files changed, 24 insertions(+), 6 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 34fce308239..73c18b86cd0 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1141,8 +1141,6 @@ final class MethodCall extends Call { ( path0.isCons(TRefTypeParameter(), path) or - not path0.isCons(TRefTypeParameter(), _) and - not (path0.isEmpty() and result = TRefType()) and path = path0 ) | diff --git a/rust/ql/test/library-tests/type-inference/dereference.rs b/rust/ql/test/library-tests/type-inference/dereference.rs index 8ceb8ec78de..df0018cbf20 100644 --- a/rust/ql/test/library-tests/type-inference/dereference.rs +++ b/rust/ql/test/library-tests/type-inference/dereference.rs @@ -58,7 +58,7 @@ fn explicit_polymorphic_dereference() { fn explicit_ref_dereference() { // Explicit dereference with type parameter let e1 = &'a'; - let _f1 = e1.deref(); // $ MISSING: method=deref type=_f1:&T.char + let _f1 = e1.deref(); // $ method=deref MISSING: type=_f1:&T.char // Explicit dereference with type parameter let e2 = &'a'; diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index fef7184c87b..a6f98ffebc4 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1157,14 +1157,14 @@ mod method_call_type_conversion { // https://doc.rust-lang.org/std/string/struct.String.html#deref. let u = x9.parse::(); // $ method=parse type=u:T.u32 - let my_thing = &MyInt { a: 37 }; + let my_thing = &MyInt { a: 37 }; // $ SPURIOUS: type=my_thing:&T.&T.MyInt // implicit borrow of a `&` - let a = my_thing.method_on_borrow(); // $ MISSING: method=MyInt::method_on_borrow + let a = my_thing.method_on_borrow(); // $ method=MyInt::method_on_borrow println!("{:?}", a); // no implicit borrow let my_thing = &MyInt { a: 38 }; - let a = my_thing.method_not_on_borrow(); // $ MISSING: method=MyInt::method_not_on_borrow + let a = my_thing.method_not_on_borrow(); // $ method=MyInt::method_not_on_borrow println!("{:?}", 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 328a2ec7198..8a3bfb24e60 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -126,11 +126,17 @@ inferType | dereference.rs:55:17:55:18 | c3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:60:9:60:10 | e1 | | file://:0:0:0:0 | & | | dereference.rs:60:9:60:10 | e1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:60:9:60:10 | e1 | &T | file://:0:0:0:0 | & | | dereference.rs:60:14:60:17 | &'a' | | file://:0:0:0:0 | & | | dereference.rs:60:14:60:17 | &'a' | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:60:14:60:17 | &'a' | &T | file://:0:0:0:0 | & | | dereference.rs:60:15:60:17 | 'a' | | {EXTERNAL LOCATION} | char | +| dereference.rs:60:15:60:17 | 'a' | | file://:0:0:0:0 | & | +| dereference.rs:61:9:61:11 | _f1 | | file://:0:0:0:0 | & | | dereference.rs:61:15:61:16 | e1 | | file://:0:0:0:0 | & | | dereference.rs:61:15:61:16 | e1 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:61:15:61:16 | e1 | &T | file://:0:0:0:0 | & | +| dereference.rs:61:15:61:24 | e1.deref() | | file://:0:0:0:0 | & | | dereference.rs:64:9:64:10 | e2 | | file://:0:0:0:0 | & | | dereference.rs:64:9:64:10 | e2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:64:9:64:10 | e2 | &T | file://:0:0:0:0 | & | @@ -1733,15 +1739,26 @@ inferType | main.rs:1158:17:1158:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | | main.rs:1158:17:1158:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | | main.rs:1160:13:1160:20 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1160:13:1160:20 | my_thing | &T | file://:0:0:0:0 | & | | main.rs:1160:13:1160:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:13:1160:20 | my_thing | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1160:24:1160:39 | &... | | file://:0:0:0:0 | & | +| main.rs:1160:24:1160:39 | &... | &T | file://:0:0:0:0 | & | | main.rs:1160:24:1160:39 | &... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:24:1160:39 | &... | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:25:1160:39 | MyInt {...} | | file://:0:0:0:0 | & | | main.rs:1160:25:1160:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1160:25:1160:39 | MyInt {...} | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i32 | | main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1162:13:1162:13 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1162:17:1162:24 | my_thing | | file://:0:0:0:0 | & | +| main.rs:1162:17:1162:24 | my_thing | &T | file://:0:0:0:0 | & | | main.rs:1162:17:1162:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1162:17:1162:24 | my_thing | &T.&T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1162:17:1162:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | | main.rs:1163:18:1163:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1163:26:1163:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1166:13:1166:20 | my_thing | | file://:0:0:0:0 | & | | main.rs:1166:13:1166:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1166:24:1166:39 | &... | | file://:0:0:0:0 | & | @@ -1749,9 +1766,12 @@ inferType | main.rs:1166:25:1166:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | | main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i32 | | main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1167:13:1167:13 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1167:17:1167:24 | my_thing | | file://:0:0:0:0 | & | | main.rs:1167:17:1167:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1167:17:1167:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | | main.rs:1168:18:1168:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | +| main.rs:1168:26:1168:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1175:16:1175:20 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1175:16:1175:20 | SelfParam | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | | main.rs:1178:16:1178:20 | SelfParam | | file://:0:0:0:0 | & | From 79fd10d31f82f0916909264b8d1ce8be1ab220e4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 12:57:40 +0200 Subject: [PATCH 123/340] Rust: move model generator to new format --- rust/bulk_generation_targets.yml | 1 + .../modelgenerator/internal/CaptureModels.qll | 68 ++++++++++--------- 2 files changed, 37 insertions(+), 32 deletions(-) diff --git a/rust/bulk_generation_targets.yml b/rust/bulk_generation_targets.yml index 15e38c7a18e..baccc89da38 100644 --- a/rust/bulk_generation_targets.yml +++ b/rust/bulk_generation_targets.yml @@ -1,6 +1,7 @@ strategy: dca language: rust destination: rust/ql/lib/ext/generated +single-file: true # dump models into a single file per crate (we do not have proper namespaces) # targets must have name specified and corresponding to the name in the DCA suite # they can optionally specify any of # with-sinks: false diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index d30157b5090..bfe71d2ef85 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -11,26 +11,32 @@ private import codeql.rust.dataflow.internal.TaintTrackingImpl private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary -private predicate relevant(Function api) { - // Only include functions that have a resolved path. - api.hasCrateOrigin() and - api.hasExtendedCanonicalPath() and - // A canonical path can contain `;` as the syntax for array types use `;`. For - // instance `<[Foo; 1] as Bar>::baz`. This does not work with the shared model - // generator and it is not clear if this will also be the case when we move to - // QL created canoonical paths, so for now we just exclude functions with - // `;`s. - not exists(api.getExtendedCanonicalPath().indexOf(";")) and - ( - // This excludes closures (these are not exported API endpoints) and - // functions without a `pub` visibility. A function can be `pub` without - // ultimately being exported by a crate, so this is an overapproximation. - api.hasVisibility() - or - // If a method implements a public trait it is exposed through the trait. - // We overapproximate this by including all trait method implementations. - exists(Impl impl | impl.hasTrait() and impl.getAssocItemList().getAssocItem(_) = api) - ) +private newtype TCallable = + TFunction(Function api, string path) { + path = api.getCanonicalPath() and + ( + // This excludes closures (these are not exported API endpoints) and + // functions without a `pub` visibility. A function can be `pub` without + // ultimately being exported by a crate, so this is an overapproximation. + api.hasVisibility() + or + // If a method implements a public trait it is exposed through the trait. + // We overapproximate this by including all trait method implementations. + exists(Impl impl | impl.hasTrait() and impl.getAssocItemList().getAssocItem(_) = api) + ) + } + +private class QualifiedCallable extends TCallable { + Function api; + string path; + + QualifiedCallable() { this = TFunction(api, path) } + + string toString() { result = path } + + Function asFunction() { result = api } + + string getCanonicalPath() { result = path } } module ModelGeneratorCommonInput implements @@ -41,14 +47,14 @@ module ModelGeneratorCommonInput implements class Parameter = R::ParamBase; - class Callable = R::Callable; + class Callable = QualifiedCallable; class NodeExtended extends DataFlow::Node { Type getType() { any() } } - Callable getEnclosingCallable(NodeExtended node) { - result = node.(Node::Node).getEnclosingCallable().asCfgScope() + QualifiedCallable getEnclosingCallable(NodeExtended node) { + result.asFunction() = node.(Node::Node).getEnclosingCallable().asCfgScope() } predicate isRelevantType(Type t) { any() } @@ -73,19 +79,19 @@ module ModelGeneratorCommonInput implements } bindingset[c] - string paramReturnNodeAsApproximateOutput(Callable c, DataFlowImpl::ParameterPosition pos) { + string paramReturnNodeAsApproximateOutput(QualifiedCallable c, DataFlowImpl::ParameterPosition pos) { result = paramReturnNodeAsExactOutput(c, pos) } bindingset[c] - string paramReturnNodeAsExactOutput(Callable c, DataFlowImpl::ParameterPosition pos) { - result = parameterExactAccess(c.getParam(pos.getPosition())) + string paramReturnNodeAsExactOutput(QualifiedCallable c, DataFlowImpl::ParameterPosition pos) { + result = parameterExactAccess(c.asFunction().getParam(pos.getPosition())) or pos.isSelf() and result = qualifierString() } - Callable returnNodeEnclosingCallable(DataFlow::Node ret) { - result = ret.(Node::Node).getEnclosingCallable().asCfgScope() + QualifiedCallable returnNodeEnclosingCallable(DataFlow::Node ret) { + result.asFunction() = ret.(Node::Node).getEnclosingCallable().asCfgScope() } predicate isOwnInstanceAccessNode(DataFlowImpl::RustDataFlow::ReturnNode node) { @@ -99,10 +105,8 @@ module ModelGeneratorCommonInput implements c.(SingletonContentSet).getContent() instanceof ElementContent } - string partialModelRow(Callable api, int i) { - i = 0 and result = api.(Function).getCrateOrigin() // crate - or - i = 1 and result = api.(Function).getExtendedCanonicalPath() // name + string partialModelRow(QualifiedCallable api, int i) { + i = 0 and result = min(string path | path = api.(Function).getCanonicalPath() | path) } string partialNeutralModelRow(Callable api, int i) { result = partialModelRow(api, i) } From 170dd6c9ccf09a23a073e4e3ae42ddaf8b4c65c5 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 14:29:22 +0200 Subject: [PATCH 124/340] Rust: regenerate models --- rust/ql/lib/ext/generated/actix-web.model.yml | 1160 +++ ....com-actix-actix-web-actix-files.model.yml | 74 - ...-actix-actix-web-actix-http-test.model.yml | 10 - ...b.com-actix-actix-web-actix-http.model.yml | 301 - ...-actix-actix-web-actix-multipart.model.yml | 73 - ...com-actix-actix-web-actix-router.model.yml | 41 - ...b.com-actix-actix-web-actix-test.model.yml | 44 - ...actix-actix-web-actix-web-actors.model.yml | 33 - ...ctix-actix-web-actix-web-codegen.model.yml | 24 - ...ub.com-actix-actix-web-actix-web.model.yml | 441 -- ...s-github.com-actix-actix-web-awc.model.yml | 288 - rust/ql/lib/ext/generated/clap.model.yml | 546 ++ ...tps-github.com-clap-rs-clap-clap.model.yml | 24 - ...thub.com-clap-rs-clap-clap_bench.model.yml | 11 - ...ub.com-clap-rs-clap-clap_builder.model.yml | 448 -- ...b.com-clap-rs-clap-clap_complete.model.yml | 79 - ...ap-rs-clap-clap_complete_nushell.model.yml | 13 - ...hub.com-clap-rs-clap-clap_derive.model.yml | 55 - ...github.com-clap-rs-clap-clap_lex.model.yml | 12 - ...hub.com-clap-rs-clap-clap_mangen.model.yml | 19 - rust/ql/lib/ext/generated/hyper.model.yml | 443 ++ ...-github.com-hyperium-hyper-hyper.model.yml | 323 - rust/ql/lib/ext/generated/libc.model.yml | 86 + ...hub.com-rust-lang-libc-libc-test.model.yml | 19 - ...s-github.com-rust-lang-libc-libc.model.yml | 68 - rust/ql/lib/ext/generated/log.model.yml | 67 + ...tps-github.com-rust-lang-log-log.model.yml | 73 - rust/ql/lib/ext/generated/memchr.model.yml | 162 + ...hub.com-BurntSushi-memchr-memchr.model.yml | 191 - rust/ql/lib/ext/generated/once_cell.model.yml | 25 + ....com-matklad-once_cell-once_cell.model.yml | 25 - rust/ql/lib/ext/generated/rand.model.yml | 87 + .../ext/generated/rand/repo-benches.model.yml | 9 - ...github.com-rust-random-rand-rand.model.yml | 71 - ...com-rust-random-rand-rand_chacha.model.yml | 28 - ...b.com-rust-random-rand-rand_core.model.yml | 15 - ...ub.com-rust-random-rand-rand_pcg.model.yml | 10 - rust/ql/lib/ext/generated/reqwest.model.yml | 443 ++ ....com-seanmonstar-reqwest-reqwest.model.yml | 488 -- rust/ql/lib/ext/generated/rocket.model.yml | 898 +++ .../generated/rocket/repo-cookies.model.yml | 7 - .../generated/rocket/repo-fairings.model.yml | 10 - ...ps-github.com-rwf2-Rocket-rocket.model.yml | 659 -- ...b.com-rwf2-Rocket-rocket_codegen.model.yml | 74 - ...thub.com-rwf2-Rocket-rocket_http.model.yml | 274 - ...contrib-db_pools-rocket_db_pools.model.yml | 28 - ...n_templates-rocket_dyn_templates.model.yml | 26 - ...nc_db_pools-rocket_sync_db_pools.model.yml | 11 - ...t-tree-v0.5-contrib-ws-rocket_ws.model.yml | 19 - .../rocket/repo-manual_routes.model.yml | 9 - .../generated/rocket/repo-pastebin.model.yml | 8 - .../ext/generated/rocket/repo-state.model.yml | 10 - .../rocket/repo-static-files.model.yml | 7 - .../ext/generated/rocket/repo-tls.model.yml | 9 - .../ext/generated/rocket/repo-todo.model.yml | 7 - rust/ql/lib/ext/generated/rust.model.yml | 6860 +++++++++++++++++ .../ext/generated/rust/lang-alloc.model.yml | 708 -- .../ext/generated/rust/lang-core.model.yml | 3200 -------- .../ext/generated/rust/lang-other.model.yml | 8 - .../generated/rust/lang-proc_macro.model.yml | 142 - .../lib/ext/generated/rust/lang-std.model.yml | 822 -- .../generated/rust/repo-dylib-dep.model.yml | 7 - ...rust-lang-backtrace-rs-backtrace.model.yml | 42 - ...ust-lang-portable-simd-core_simd.model.yml | 48 - ....com-rust-lang-stdarch-core_arch.model.yml | 1195 --- .../rust/repo-intrinsic-test.model.yml | 52 - .../generated/rust/repo-std_float.model.yml | 7 - .../rust/repo-stdarch-gen-arm.model.yml | 98 - .../rust/repo-stdarch-gen-loongarch.model.yml | 7 - .../rust/repo-stdarch-test.model.yml | 10 - .../rust/repo-stdarch_examples.model.yml | 8 - .../rust/repo-test_helpers.model.yml | 12 - rust/ql/lib/ext/generated/serde.model.yml | 265 + ...-github.com-serde-rs-serde-serde.model.yml | 221 - ....com-serde-rs-serde-serde_derive.model.yml | 78 - .../serde/repo-serde_test_suite.model.yml | 34 - rust/ql/lib/ext/generated/smallvec.model.yml | 54 + ...com-servo-rust-smallvec-smallvec.model.yml | 54 - rust/ql/lib/ext/generated/tokio.model.yml | 1639 ++++ .../generated/tokio/repo-benches.model.yml | 7 - .../generated/tokio/repo-examples.model.yml | 7 - ....com-tokio-rs-tokio-tokio-macros.model.yml | 10 - ....com-tokio-rs-tokio-tokio-stream.model.yml | 192 - ...ub.com-tokio-rs-tokio-tokio-test.model.yml | 36 - ...ub.com-tokio-rs-tokio-tokio-util.model.yml | 284 - ...-github.com-tokio-rs-tokio-tokio.model.yml | 1158 --- .../modelgenerator/internal/CaptureModels.qll | 46 +- .../internal/CaptureModelsPrinting.qll | 4 +- 88 files changed, 12754 insertions(+), 12946 deletions(-) create mode 100644 rust/ql/lib/ext/generated/actix-web.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml delete mode 100644 rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml create mode 100644 rust/ql/lib/ext/generated/clap.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml delete mode 100644 rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml create mode 100644 rust/ql/lib/ext/generated/hyper.model.yml delete mode 100644 rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml create mode 100644 rust/ql/lib/ext/generated/libc.model.yml delete mode 100644 rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml create mode 100644 rust/ql/lib/ext/generated/log.model.yml delete mode 100644 rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml create mode 100644 rust/ql/lib/ext/generated/memchr.model.yml delete mode 100644 rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml create mode 100644 rust/ql/lib/ext/generated/once_cell.model.yml delete mode 100644 rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml create mode 100644 rust/ql/lib/ext/generated/rand.model.yml delete mode 100644 rust/ql/lib/ext/generated/rand/repo-benches.model.yml delete mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml delete mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml delete mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml delete mode 100644 rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml create mode 100644 rust/ql/lib/ext/generated/reqwest.model.yml delete mode 100644 rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml create mode 100644 rust/ql/lib/ext/generated/rocket.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-cookies.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-fairings.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-manual_routes.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-state.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-static-files.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-tls.model.yml delete mode 100644 rust/ql/lib/ext/generated/rocket/repo-todo.model.yml create mode 100644 rust/ql/lib/ext/generated/rust.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/lang-alloc.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/lang-core.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/lang-other.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/lang-std.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-dylib-dep.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-backtrace-rs-backtrace.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-portable-simd-core_simd.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-stdarch-core_arch.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-intrinsic-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-std_float.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-stdarch-gen-arm.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-stdarch-gen-loongarch.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-stdarch-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-stdarch_examples.model.yml delete mode 100644 rust/ql/lib/ext/generated/rust/repo-test_helpers.model.yml create mode 100644 rust/ql/lib/ext/generated/serde.model.yml delete mode 100644 rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml delete mode 100644 rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml delete mode 100644 rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml create mode 100644 rust/ql/lib/ext/generated/smallvec.model.yml delete mode 100644 rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml create mode 100644 rust/ql/lib/ext/generated/tokio.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-benches.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-examples.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml delete mode 100644 rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml diff --git a/rust/ql/lib/ext/generated/actix-web.model.yml b/rust/ql/lib/ext/generated/actix-web.model.yml new file mode 100644 index 00000000000..ea9da767d9c --- /dev/null +++ b/rust/ql/lib/ext/generated/actix-web.model.yml @@ -0,0 +1,1160 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::project_ref", "Argument[self]", "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"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::default_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::files_listing_renderer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::index_file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::method_guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mime_override", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::show_files_listing", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::set_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_content_encoding", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::encoding].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::set_content_encoding", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::encoding].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::set_content_encoding", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_content_type", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::content_type]", "value", "dfc-generated"] + - ["::set_content_type", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::content_type]", "value", "dfc-generated"] + - ["::set_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_status_code", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::status_code]", "value", "dfc-generated"] + - ["::set_status_code", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::status_code]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::client_disconnect_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] + - ["::client_disconnect_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] + - ["::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::client_request_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["::client_request_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::client_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["::client_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] + - ["::client_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::expect]", "ReturnValue.Field[actix_http::service::HttpService::expect]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] + - ["::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::upgrade]", "ReturnValue.Field[actix_http::service::HttpService::upgrade]", "value", "dfc-generated"] + - ["::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::expect]", "ReturnValue.Field[actix_http::h1::service::H1Service::expect]", "value", "dfc-generated"] + - ["::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] + - ["::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::upgrade]", "ReturnValue.Field[actix_http::h1::service::H1Service::upgrade]", "value", "dfc-generated"] + - ["::h2", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] + - ["::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::local_addr", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::local_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::local_addr", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::local_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::local_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::secure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::upgrade", "Argument[self]", "ReturnValue", "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"] + - ["::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]", "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"] + - ["::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"] + - ["::with_cause", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::h1::Message::Item(0)]", "value", "dfc-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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::codec::Codec::config]", "value", "dfc-generated"] + - ["::length", "Argument[0]", "ReturnValue.Field[actix_http::h1::decoder::PayloadDecoder::kind].Field[actix_http::h1::decoder::Kind::Length(0)]", "value", "dfc-generated"] + - ["::chunk", "Argument[self].Field[actix_http::h1::decoder::PayloadItem::Chunk(0)]", "ReturnValue", "value", "dfc-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"] + - ["::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].Field[actix_http::h1::service::H1Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::new_service", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-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"] + - ["::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].Field[actix_http::h2::service::H2Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::new_service", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-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"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::http_date::HttpDate(0)]", "value", "dfc-generated"] + - ["::try_from", "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"] + - ["::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"] + - ["::normalize", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::deref", "Argument[self].Field[actix_http::message::Message::head].Reference", "ReturnValue.Reference", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::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"] + - ["::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::message_body", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] + - ["::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::replace_body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::replace_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] + - ["::replace_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] + - ["::set_body", "Argument[0]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] + - ["::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].Field[actix_http::service::HttpService::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::new_service", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-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"] + - ["::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::upgrade", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::upgrade]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::decode", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::proto::CloseCode::Other(0)]", "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"] + - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["::surl", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::url", "Argument[0]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::new", "Argument[3]", "ReturnValue.Field[actix_multipart::field::Field::headers]", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[actix_multipart::field::Field::safety]", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[actix_multipart::field::Field::inner]", "value", "dfc-generated"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_multipart::form::MultipartForm(0)]", "ReturnValue", "value", "dfc-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"] + - ["::memory_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue", "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"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::url", "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"] + - ["::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::h1", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::h2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::listen_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::openssl", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Openssl(0)]", "value", "dfc-generated"] + - ["::openssl", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Openssl(0)]", "value", "dfc-generated"] + - ["::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::port", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::port]", "value", "dfc-generated"] + - ["::port", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::port]", "value", "dfc-generated"] + - ["::port", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_021", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_021", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_20", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls_0_20", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls_0_20", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_21", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_0_21", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_0_21", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls022(0)]", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls022(0)]", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls023(0)]", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls023(0)]", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::workers", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::workers]", "value", "dfc-generated"] + - ["::workers", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::workers]", "value", "dfc-generated"] + - ["::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::into_factory", "Argument[self].Field[actix_web::app::App::default]", "ReturnValue.Field[actix_web::app_service::AppInit::default]", "value", "dfc-generated"] + - ["::into_factory", "Argument[self].Field[actix_web::app::App::endpoint]", "ReturnValue.Field[actix_web::app_service::AppInit::endpoint]", "value", "dfc-generated"] + - ["::into_factory", "Argument[self].Field[actix_web::app::App::factory_ref]", "ReturnValue.Field[actix_web::app_service::AppInit::factory_ref]", "value", "dfc-generated"] + - ["::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::data_factory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::__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"] + - ["::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::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"] + - ["::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"] + - ["::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"] + - ["::configure", "Argument[self]", "Argument[0].Parameter[0]", "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"] + - ["::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"] + - ["::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].Field[0].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self].Field[actix_web::data::Data(0)].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue", "value", "dfc-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]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::http::header::content_length::ContentLength(0)]", "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"] + - ["::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"] + - ["::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"] + - ["::weak", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "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"] + - ["::permanent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::see_other", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::temporary", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::to", "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"] + - ["::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::response::customize_responder::CustomizeResponder::inner].Field[actix_web::response::customize_responder::CustomizeResponderInner::responder]", "value", "dfc-generated"] + - ["::with_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::with_status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] + - ["::map_into_boxed_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["::map_into_boxed_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"] + - ["::map_into_boxed_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"] + - ["::map_into_left_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["::map_into_left_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"] + - ["::map_into_left_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"] + - ["::map_into_right_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["::map_into_right_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"] + - ["::map_into_right_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"] + - ["::set_body", "Argument[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] + - ["::set_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::backlog", "Argument[0]", "Argument[self].Field[actix_web::server::HttpServer::backlog]", "value", "dfc-generated"] + - ["::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_auto_h2c", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_openssl", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_021", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_0_22", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::bind_rustls_0_23", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "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"] + - ["::client_shutdown", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::client_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_signals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::listen", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_auto_h2c", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_openssl", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_rustls", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_rustls_0_21", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_rustls_0_22", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_rustls_0_23", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::listen_uds", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::max_connection_rate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_connections", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_web::server::HttpServer::factory]", "value", "dfc-generated"] + - ["::on_connect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::server_hostname", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shutdown_signal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::shutdown_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::system_exit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::into_response", "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::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"] + - ["::map_into_boxed_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["::map_into_boxed_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"] + - ["::map_into_left_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["::map_into_left_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"] + - ["::map_into_right_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::param", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::peer_addr", "Argument[0]", "Argument[self].Field[actix_web::test::test_request::TestRequest::peer_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::peer_addr", "Argument[0]", "ReturnValue.Field[actix_web::test::test_request::TestRequest::peer_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::peer_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rmap", "Argument[0]", "Argument[self].Field[actix_web::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] + - ["::rmap", "Argument[0]", "ReturnValue.Field[actix_web::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] + - ["::rmap", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_json", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue", "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"] + - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::content_type_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::mimetype", "Argument[0]", "Argument[self].Field[actix_web::types::payload::PayloadConfig::mimetype].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::codec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::frame_size", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::frame_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::frame_size", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::frame_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::actor]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::req]", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::stream]", "value", "dfc-generated"] + - ["::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"] + - ["::try_from", "Argument[0].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::MethodTypeExt::Custom(0)]", "value", "dfc-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]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::Route::ast]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::connector", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::connector]", "value", "dfc-generated"] + - ["::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::finish", "Argument[self].Field[awc::builder::ClientBuilder::timeout]", "ReturnValue.Field[awc::client::Client(0)].Field[awc::client::ClientConfig::timeout]", "value", "dfc-generated"] + - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::initial_connection_window_size", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::conn_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::conn_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::stream_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::stream_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::local_address", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::local_address].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::local_address", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::local_address].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_http_version", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::max_http_version].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::max_http_version", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::max_http_version].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_redirects", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] + - ["::max_redirects", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] + - ["::max_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::timeout", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "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"] + - ["::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"] + - ["::conn_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::conn_lifetime", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] + - ["::conn_lifetime", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] + - ["::conn_lifetime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connector", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::connector]", "value", "dfc-generated"] + - ["::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"] + - ["::initial_connection_window_size", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] + - ["::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] + - ["::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] + - ["::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::limit", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] + - ["::limit", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] + - ["::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::openssl", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["::openssl", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] + - ["::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_021", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_021", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] + - ["::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] + - ["::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] + - ["::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::ssl", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["::ssl", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] + - ["::ssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::call", "Argument[0]", "ReturnValue.Field[awc::connect::ConnectRequestFuture::Connection::req].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[awc::connect::DefaultConnector::connector]", "value", "dfc-generated"] + - ["::extra_headers", "Argument[0]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::extra_headers]", "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"] + - ["::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"] + - ["::send", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_body", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_form", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_json", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::camel_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::content_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::method", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::version", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::_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"] + - ["::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"] + - ["::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"] + - ["::send_json", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::send_stream", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(0)]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::version", "Argument[0]", "ReturnValue.Field[awc::test::TestResponse::head].Field[actix_http::responses::head::ResponseHead::version]", "value", "dfc-generated"] + - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::address", "Argument[0]", "Argument[self].Field[awc::ws::WebsocketsRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::address", "Argument[0]", "ReturnValue.Field[awc::ws::WebsocketsRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_frame_size", "Argument[0]", "Argument[self].Field[awc::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] + - ["::max_frame_size", "Argument[0]", "ReturnValue.Field[awc::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] + - ["::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[awc::ws::WebsocketsRequest::config]", "value", "dfc-generated"] + - ["::origin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::server_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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::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_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"] + - ["actix_web_codegen::head", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::options", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::patch", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::post", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::put", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::route::with_method", "Argument[2]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::route::with_methods", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::route", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::routes", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::scope::with_scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["actix_web_codegen::trace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + 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"] + - ["::call", "Argument[0]", "log-injection", "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"] + - ["::strong", "Argument[0]", "log-injection", "df-generated"] + - ["::weak", "Argument[0]", "log-injection", "df-generated"] + - ["::new", "Argument[0]", "pointer-access", "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"] + - ["::respond_to", "Argument[self]", "log-injection", "df-generated"] + - ["::register", "Argument[self]", "pointer-access", "df-generated"] + - ["::register", "Argument[self]", "pointer-access", "df-generated"] + - ["::write", "Argument[self]", "log-injection", "df-generated"] + - ["::write_eof", "Argument[self]", "log-injection", "df-generated"] + - ["::binary", "Argument[self]", "log-injection", "df-generated"] + - ["::close", "Argument[self]", "log-injection", "df-generated"] + - ["::ping", "Argument[self]", "log-injection", "df-generated"] + - ["::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"] + - ["awc::client::h2proto::send_request", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml deleted file mode 100644 index 43197621ed7..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-files.model.yml +++ /dev/null @@ -1,74 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-files", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::new", "Argument[0]", "ReturnValue.Field[actix_files::directory::Directory::base]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::new", "Argument[1]", "ReturnValue.Field[actix_files::directory::Directory::path]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::default_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::files_listing_renderer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::index_file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::method_guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::mime_override", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::path_filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::redirect_to_slash_directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::show_files_listing", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_hidden_files", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::new_service", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::content_disposition", "Argument[self].Field[actix_files::named::NamedFile::content_disposition]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::content_encoding", "Argument[self].Field[actix_files::named::NamedFile::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::content_type", "Argument[self].Field[actix_files::named::NamedFile::content_type]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::disable_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::etag", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::file", "Argument[self].Field[actix_files::named::NamedFile::file]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::from_file", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_files::named::NamedFile::file]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::last_modified", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::metadata", "Argument[self].Field[actix_files::named::NamedFile::md]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::modified", "Argument[self].Field[actix_files::named::NamedFile::modified]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::path", "Argument[self].Field[actix_files::named::NamedFile::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::path", "Argument[self].Field[actix_files::named::NamedFile::path]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::prefer_utf8", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::content_disposition]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::content_disposition]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_disposition", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::encoding].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::encoding].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_encoding", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[0]", "Argument[self].Field[actix_files::named::NamedFile::status_code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[0]", "ReturnValue.Field[actix_files::named::NamedFile::status_code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::set_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_etag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::use_last_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::call", "Argument[self].Field[actix_files::named::NamedFileService::path].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::call", "Argument[self].Field[actix_files::named::NamedFileService::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::call", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::deref", "Argument[self].Field[actix_files::service::FilesService(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "crate::chunked::new_chunked_read", "Argument[0]", "ReturnValue.Field[actix_files::chunked::ChunkedReadFile::size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "crate::chunked::new_chunked_read", "Argument[1]", "ReturnValue.Field[actix_files::chunked::ChunkedReadFile::offset]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "crate::directory::directory_listing", "Argument[1].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "crate::encoding::equiv_utf8_text", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-files", "::respond_to", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::into_response", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "::last_modified", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-files", "crate::directory::directory_listing", "Argument[0]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml deleted file mode 100644 index 8adc705fa57..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http-test.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-http-test", "::addr", "Argument[self].Field[actix_http_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http-test", "::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http-test", "::surl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http-test", "::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml deleted file mode 100644 index f6fb3f75cd4..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-http.model.yml +++ /dev/null @@ -1,301 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-http", "<&crate::header::name::HeaderName as crate::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "<&crate::header::value::HeaderValue as crate::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "<&str as crate::header::into_value::TryIntoHeaderValue>::try_into_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from_io", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::body::body_stream::BodyStream::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::boxed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::as_pin_mut", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::as_pin_mut", "Argument[self]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::as_pin_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::body::message_body::MessageBodyMapErr::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[actix_http::body::message_body::MessageBodyMapErr::mapper].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::mapper]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::message_body::MessageBodyMapErr::mapper]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::size", "Argument[self].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue.Field[actix_http::body::size::BodySize::Sized(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::body::sized_stream::SizedStream::size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[actix_http::body::sized_stream::SizedStream::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::body::sized_stream::SizedStream::size]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_disconnect_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_timeout", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_timeout", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::expect]", "ReturnValue.Field[actix_http::service::HttpService::expect]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::upgrade]", "ReturnValue.Field[actix_http::service::HttpService::upgrade]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::expect]", "ReturnValue.Field[actix_http::h1::service::H1Service::expect]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::h1", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::upgrade]", "ReturnValue.Field[actix_http::h1::service::H1Service::upgrade]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::h2", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::on_connect_ext]", "ReturnValue.Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[0]", "Argument[self].Field[actix_http::builder::HttpServiceBuilder::local_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[0]", "ReturnValue.Field[actix_http::builder::HttpServiceBuilder::local_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::local_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::secure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::now", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_date", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from_headers", "Argument[0]", "ReturnValue.Field[actix_http::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::encoding::decoder::Decoder::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::response", "Argument[2]", "ReturnValue.Field[actix_http::encoding::encoder::Encoder::body].Field[actix_http::encoding::encoder::EncoderBody::Stream::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_bytes", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::encoding::encoder::EncoderError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::error::DispatchError::H2(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::error::DispatchError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::error::DispatchError::Parse(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_cause", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[alloc::string::FromUtf8Error::error]", "ReturnValue.Field[actix_http::error::ParseError::Utf8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::ParseError::Io(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::ParseError::Uri(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::ParseError::Utf8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::PayloadError::Http2Payload(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::PayloadError::Incomplete(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::error::PayloadError::Incomplete(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::error::PayloadError::Http2Payload(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::source", "Argument[self].Field[actix_http::error::PayloadError::Io(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::finish", "Argument[self].Field[actix_http::extensions::NoOpHasher(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::write_u64", "Argument[0]", "Argument[self].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::write_u64", "Argument[0]", "Argument[self].Field[actix_http::extensions::NoOpHasher(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::h1::Message::Item(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::chunk", "Argument[self].Field[actix_http::h1::Message::Chunk(0)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::message", "Argument[self].Field[actix_http::h1::Message::Item(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_payload_codec", "Argument[self].Field[actix_http::h1::client::ClientCodec::inner]", "ReturnValue.Field[actix_http::h1::client::ClientPayloadCodec::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::client::ClientCodec::inner].Field[actix_http::h1::client::ClientCodecInner::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_message_codec", "Argument[self].Field[actix_http::h1::client::ClientPayloadCodec::inner]", "ReturnValue.Field[actix_http::h1::client::ClientCodec::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::config", "Argument[self].Field[actix_http::h1::codec::Codec::config]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::codec::Codec::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::length", "Argument[0]", "ReturnValue.Field[actix_http::h1::decoder::PayloadDecoder::kind].Field[actix_http::h1::decoder::Kind::Length(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::chunk", "Argument[self].Field[actix_http::h1::decoder::PayloadItem::Chunk(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::unwrap", "Argument[self].Field[actix_http::h1::decoder::PayloadType::Payload(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::poll_count]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::dispatcher::Dispatcher::poll_count]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::length", "Argument[0]", "ReturnValue.Field[actix_http::h1::encoder::TransferEncoding::kind].Field[actix_http::h1::encoder::TransferEncodingKind::Length(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h1::service::H1Service::cfg].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::expect]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::upgrade]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[actix_http::h1::service::H1Service::cfg]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::h1::utils::SendResponse::framed].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::body]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::res]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::h1::utils::SendResponse::res]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::h2::Payload::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::connection]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::flow]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[2]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[3]", "ReturnValue.Field[actix_http::h2::dispatcher::Dispatcher::peer_addr]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h2::service::H2Service::cfg].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::h2::service::H2Service::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[actix_http::h2::service::H2Service::cfg]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::call", "Argument[0].Field[1]", "ReturnValue.Field[actix_http::h2::service::H2ServiceHandlerResponse::state].Field[actix_http::h2::service::State::Handshake(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::next", "Argument[self].Field[actix_http::header::map::Removed::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::deref", "Argument[self].Field[actix_http::header::map::Value::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_as_name", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::http_date::HttpDate(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::max", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::min", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[1]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::quality]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::zero", "Argument[0]", "ReturnValue.Field[actix_http::header::shared::quality_item::QualityItem::item]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::try_into_value", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::keep_alive::KeepAlive::Timeout(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::duration", "Argument[self].Field[actix_http::keep_alive::KeepAlive::Timeout(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::normalize", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::deref", "Argument[self].Field[actix_http::message::Message::head].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H1::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H2::payload].Field[actix_http::h2::Payload::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::H2::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::payload::Payload::Stream::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_pool", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::as_ref", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::requests::head::RequestHeadType::Owned(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[actix_http::requests::head::RequestHeadType::Owned(0)].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::requests::request::Request::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::head", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::head_mut", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[actix_http::requests::request::Request::head]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[actix_http::requests::request::Request::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::method", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::payload", "Argument[self].Field[actix_http::requests::request::Request::payload]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::peer_addr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_payload", "Argument[0]", "ReturnValue.Field[0].Field[actix_http::requests::request::Request::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::uri", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_payload", "Argument[0]", "ReturnValue.Field[actix_http::requests::request::Request::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::message_body", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::deref", "Argument[self].Field[actix_http::responses::head::BoxedResponseHead::head].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::deref_mut", "Argument[self].Field[actix_http::responses::head::BoxedResponseHead::head].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers_mut", "Argument[self].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::responses::head::ResponseHead::status]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::reason", "Argument[self].Field[actix_http::responses::head::ResponseHead::reason].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[actix_http::responses::response::Response::body].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Reference", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::drop_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::drop_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::head", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::head_mut", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::into_parts", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::map_body", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::map_into_boxed_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::map_into_boxed_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[0]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::replace_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[0].Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[0]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[self].Field[actix_http::responses::response::Response::extensions]", "ReturnValue.Field[actix_http::responses::response::Response::extensions]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::set_body", "Argument[self].Field[actix_http::responses::response::Response::head]", "ReturnValue.Field[actix_http::responses::response::Response::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_body", "Argument[1]", "ReturnValue.Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::service::HttpService::cfg].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new_service", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::expect", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::expect]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::on_connect_ext", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::upgrade", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::upgrade]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_config", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpService::cfg]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::service::HttpServiceHandler::cfg]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[4]", "ReturnValue.Field[actix_http::service::HttpServiceHandler::on_connect_ext]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::service::HttpServiceHandlerResponse::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::service::HttpServiceHandlerResponse::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::handshake_timeout", "Argument[0]", "ReturnValue.Field[actix_http::service::TlsAcceptorConfig::handshake_timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::read_buf_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::read_buf_slice_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::write_buf_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::write_buf_slice_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::err", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::write_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[actix_http::header::shared::http_date::HttpDate(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::decode", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::client_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[0]", "Argument[self].Field[actix_http::ws::codec::Codec::max_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[0]", "ReturnValue.Field[actix_http::ws::codec::Codec::max_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::max_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::ws::dispatcher::Dispatcher::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::Dispatcher::inner].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::framed", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::framed_mut", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::service", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::service_mut", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::service]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::tx", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::tx].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::tx", "Argument[self].Field[actix_http::ws::dispatcher::inner::Dispatcher::tx]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_rx", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::framed]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::with_rx", "Argument[2]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::Dispatcher::rx]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::dispatcher::inner::DispatcherError::Service(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::parse", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::proto::CloseCode::Other(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[0]", "ReturnValue.Field[actix_http::ws::proto::CloseReason::code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::proto::CloseReason::code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0].Field[actix_http::ws::proto::CloseCode::Other(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-http", "::from_io", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[4]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::new", "Argument[4]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "::call", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-http", "crate::ws::proto::hash_key", "Argument[0]", "hasher-input", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml deleted file mode 100644 index a080c4c2f91..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-multipart.model.yml +++ /dev/null @@ -1,73 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-multipart", "<_ as crate::form::FieldGroupReader>::from_state", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "<_ as crate::form::FieldGroupReader>::handle_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "<_ as crate::form::FieldGroupReader>::handle_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "<_ as crate::form::FieldGroupReader>::handle_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "<_ as crate::form::FieldGroupReader>::handle_field", "Argument[3]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::headers", "Argument[self].Field[actix_multipart::field::Field::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::name", "Argument[self].Field[actix_multipart::field::Field::content_disposition].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[0]", "ReturnValue.Field[actix_multipart::field::Field::content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[actix_multipart::field::Field::content_disposition]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[2].Field[core::option::Option::Some(0)]", "ReturnValue.Field[actix_multipart::field::Field::form_field_name]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[3]", "ReturnValue.Field[actix_multipart::field::Field::headers]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[4]", "ReturnValue.Field[actix_multipart::field::Field::safety]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[5]", "ReturnValue.Field[actix_multipart::field::Field::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_multipart::field::InnerField::boundary]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[0]", "ReturnValue.Field[actix_multipart::form::Limits::total_limit_remaining]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[1]", "ReturnValue.Field[actix_multipart::form::Limits::memory_limit_remaining]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[actix_multipart::form::MultipartForm(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[0]", "Argument[self].Field[actix_multipart::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[0]", "ReturnValue.Field[actix_multipart::form::MultipartFormConfig::memory_limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::memory_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[0]", "Argument[self].Field[actix_multipart::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[0]", "ReturnValue.Field[actix_multipart::form::MultipartFormConfig::total_limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::total_limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "Argument[self].Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "ReturnValue.Field[actix_multipart::form::json::JsonConfig::validate_content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::directory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::read_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::into_inner", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "Argument[self].Field[actix_multipart::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[0]", "ReturnValue.Field[actix_multipart::form::text::TextConfig::validate_content_type]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::validate_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[3]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::new", "Argument[0]", "ReturnValue.Field[actix_multipart::payload::PayloadBuffer::stream].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::clone", "Argument[self].Field[actix_multipart::payload::PayloadRef::payload]", "ReturnValue.Field[actix_multipart::payload::PayloadRef::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::clone", "Argument[self].Field[actix_multipart::safety::Safety::clean].Reference", "ReturnValue.Field[actix_multipart::safety::Safety::clean]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::clone", "Argument[self].Field[actix_multipart::safety::Safety::clean]", "ReturnValue.Field[actix_multipart::safety::Safety::clean]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::clone", "Argument[self].Field[actix_multipart::safety::Safety::payload]", "ReturnValue.Field[actix_multipart::safety::Safety::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::is_clean", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[2]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-multipart", "::handle_field", "Argument[3]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml deleted file mode 100644 index a51fb34941f..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-router.model.yml +++ /dev/null @@ -1,41 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-router", "<&crate::string::String as crate::pattern::IntoPatterns>::patterns", "Argument[self].Reference.Field[alloc::string::String::vec]", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "<&crate::string::String as crate::pattern::IntoPatterns>::patterns", "Argument[self].Reference.Reference", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "<&str as crate::resource_path::ResourcePath>::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "<_ as crate::resource_path::Resource>::resource_path", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[actix_router::de::PathDeserializer::path]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::resource_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::get_mut", "Argument[self].Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::get_ref", "Argument[self].Field[actix_router::path::Path::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::iter", "Argument[self]", "ReturnValue.Field[actix_router::path::PathIter::params]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[actix_router::path::Path::path]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::segment_count", "Argument[self].Field[actix_router::path::Path::segments].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::set", "Argument[0]", "Argument[self].Field[actix_router::path::Path::path]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::capture_match_info_fn", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::id", "Argument[self].Field[actix_router::resource::ResourceDef::id]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::is_prefix", "Argument[self].Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::join", "Argument[0].Field[actix_router::resource::ResourceDef::is_prefix]", "ReturnValue.Field[actix_router::resource::ResourceDef::is_prefix]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::pattern_iter", "Argument[self].Field[actix_router::resource::ResourceDef::patterns]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::set_id", "Argument[0]", "Argument[self].Field[actix_router::resource::ResourceDef::id]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::finish", "Argument[self].Field[actix_router::router::RouterBuilder::routes]", "ReturnValue.Field[actix_router::router::Router::routes]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::patterns", "Argument[self].Reference", "ReturnValue.Field[actix_router::pattern::Patterns::Single(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self].Field[actix_router::url::Url::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::new", "Argument[0]", "ReturnValue.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::new_with_quoter", "Argument[0]", "ReturnValue.Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::path", "Argument[self].Field[actix_router::url::Url::path].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::update", "Argument[0].Reference", "Argument[self].Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::update_with_quoter", "Argument[0].Reference", "Argument[self].Field[actix_router::url::Url::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "::uri", "Argument[self].Field[actix_router::url::Url::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-router", "crate::resource::insert_slash", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml deleted file mode 100644 index 2a52d054057..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-test.model.yml +++ /dev/null @@ -1,44 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-test", "::addr", "Argument[self].Field[actix_test::TestServer::addr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::url", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::url", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::h1", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::h2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::listen_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::port]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::port]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::port", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_20", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_21", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls022(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls022(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls023(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::stream].Field[actix_test::StreamType::Rustls023(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::workers]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[0]", "ReturnValue.Field[actix_test::TestServerConfig::workers]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-test", "::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml deleted file mode 100644 index 003c0df6f59..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-actors.model.yml +++ /dev/null @@ -1,33 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::parts", "Argument[self].Field[actix_web_actors::context::HttpContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::parts", "Argument[self].Field[actix_web_actors::ws::WebsocketContext::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::with_codec", "Argument[2]", "ReturnValue.Field[actix_web_actors::ws::WebsocketContextFut::encoder]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::codec].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::codec].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::codec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::frame_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::frame_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::actor]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[1]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::new", "Argument[2]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[0]", "Argument[self].Field[actix_web_actors::ws::WsResponseBuilder::protocols].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[0]", "ReturnValue.Field[actix_web_actors::ws::WsResponseBuilder::protocols].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::write", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::write_eof", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::binary", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::close", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::ping", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::pong", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::text", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-actors", "::write_raw", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml deleted file mode 100644 index ed06e35ec3e..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web-codegen.model.yml +++ /dev/null @@ -1,24 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::try_from", "Argument[0].Reference", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::MethodTypeExt::Custom(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::new", "Argument[0].Field[actix_web_codegen::route::RouteArgs::path]", "ReturnValue.Field[actix_web_codegen::route::Args::path]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[actix_web_codegen::route::Route::ast]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::connect", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::delete", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::get", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::head", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::options", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::patch", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::post", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::put", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route::with_method", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route::with_methods", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::route", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::routes", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::scope::with_scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::scope", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web-codegen", "crate::trace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml deleted file mode 100644 index 448f6267e46..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-actix-web.model.yml +++ /dev/null @@ -1,441 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::guard::Guard>::check", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::guard::Guard>::check", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "<_ as crate::handler::Handler>::call", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self].Field[test_error_propagation::Middleware::was_error].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self].Field[test_error_propagation::Middleware::was_error]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[actix_web::app::App::default]", "ReturnValue.Field[actix_web::app_service::AppInit::default]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[actix_web::app::App::endpoint]", "ReturnValue.Field[actix_web::app_service::AppInit::endpoint]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_factory", "Argument[self].Field[actix_web::app::App::factory_ref]", "ReturnValue.Field[actix_web::app_service::AppInit::factory_ref]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data_factory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::app_service::AppEntry::factory]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::config", "Argument[self].Field[actix_web::app_service::AppInitServiceState::config]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::pool", "Argument[self].Field[actix_web::app_service::AppInitServiceState::pool]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[self].Field[actix_web::app_service::AppInitServiceState::rmap]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppConfig::secure]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppConfig::host]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::__priv_test_new", "Argument[2]", "ReturnValue.Field[actix_web::config::AppConfig::addr]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::host", "Argument[self].Field[actix_web::config::AppConfig::host]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::local_addr", "Argument[self].Field[actix_web::config::AppConfig::addr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppConfig::secure]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppConfig::host]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[2]", "ReturnValue.Field[actix_web::config::AppConfig::addr]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::secure", "Argument[self].Field[actix_web::config::AppConfig::secure]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::clone_config", "Argument[self].Field[actix_web::config::AppService::config].Reference", "ReturnValue.Field[actix_web::config::AppService::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::clone_config", "Argument[self].Field[actix_web::config::AppService::default]", "ReturnValue.Field[actix_web::config::AppService::default]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::config", "Argument[self].Field[actix_web::config::AppService::config]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self].Field[actix_web::config::AppService::default]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_services", "Argument[self].Field[actix_web::config::AppService::config]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_services", "Argument[self].Field[actix_web::config::AppService::services]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::is_root", "Argument[self].Field[actix_web::config::AppService::root]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::config::AppService::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::config::AppService::default]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::external_resource", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::clone", "Argument[self].Field[0]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::clone", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[actix_web::data::Data(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::get_ref", "Argument[self].Field[0].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::get_ref", "Argument[self].Field[actix_web::data::Data(0)].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[actix_web::types::either::EitherExtractError::Bytes(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[actix_web::error::error::Error::cause].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[actix_web::error::error::Error::cause]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_response_error", "Argument[self].Field[actix_web::error::error::Error::cause].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::status_code", "Argument[self].Field[actix_web::error::internal::InternalError::status].Field[actix_web::error::internal::InternalErrorType::Status(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_response", "Argument[0]", "ReturnValue.Field[actix_web::error::internal::InternalError::cause]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::error::internal::InternalError::cause]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::error::internal::InternalError::status].Field[actix_web::error::internal::InternalErrorType::Status(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestOptFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestOptFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestResFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::extract::FromRequestResFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::and", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::check", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::check", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::match_star_star", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::guard::acceptable::Acceptable::mime]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::scheme", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_filename", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::Filename(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_name", "Argument[self].Field[actix_web::http::header::content_disposition::DispositionParam::Name(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[actix_web::http::header::content_length::ContentLength(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::weak]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_strong", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_weak", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::strong", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::tag", "Argument[self].Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::tag", "Argument[self].Field[actix_web::http::header::entity::EntityTag::tag]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::weak", "Argument[0]", "ReturnValue.Field[actix_web::http::header::entity::EntityTag::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_item", "Argument[self].Field[actix_web::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::item", "Argument[self].Field[actix_web::http::header::preference::Preference::Specific(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::host", "Argument[self].Field[actix_web::info::ConnectionInfo::host]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::scheme", "Argument[self].Field[actix_web::info::ConnectionInfo::scheme]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::info::PeerAddr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::middleware::compat::Compat::transform]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compat::CompatMiddlewareFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::compress::CompressResponse::encoding]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::middleware::condition::Condition::enable]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::middleware::condition::Condition::transformer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::add_content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self].Field[actix_web::middleware::default_headers::DefaultHeadersMiddleware::inner]", "ReturnValue.Field[actix_web::middleware::default_headers::DefaultHeaderFuture::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_transform", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self].Field[actix_web::middleware::from_fn::MiddlewareFnService::mw_fn]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self].Field[actix_web::middleware::from_fn::MiddlewareFnService::service]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_request_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_response_replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::exclude", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::exclude_regex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::log_level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::log_target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::permanent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::see_other", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::temporary", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[0]", "Argument[self].Field[actix_web::redirect::Redirect::status_code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[0]", "ReturnValue.Field[actix_web::redirect::Redirect::status_code]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::using_status_code", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::with_capacity", "Argument[0]", "ReturnValue.Field[actix_web::request::HttpRequestPool::cap]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::request_data::ReqData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::request_data::ReqData(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::add_guards", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::no_chunking", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::reason", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::add_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::response::customize_responder::CustomizeResponder::inner].Field[actix_web::response::customize_responder::CustomizeResponderInner::responder]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::with_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::with_status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[actix_web::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::drop_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::head", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::head_mut", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_body", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[0].Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_body", "Argument[self].Field[actix_web::response::response::HttpResponse::error]", "ReturnValue.Field[actix_web::response::response::HttpResponse::error]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::with_body", "Argument[1]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[actix_web::response::response::HttpResponse::res]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::match_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::match_pattern", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::rmap::ResourceMap::pattern]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_service", "Argument[self].Field[actix_web::route::Route::guards]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::to", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self].Field[actix_web::route::Route::guards]", "ReturnValue.Field[actix_web::route::Route::guards]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::default_service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::route", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::service", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::wrap_fn", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[0]", "Argument[self].Field[actix_web::server::HttpServer::backlog]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[0]", "ReturnValue.Field[actix_web::server::HttpServer::backlog]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::backlog", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_auto_h2c", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_openssl", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_021", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_0_22", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_rustls_0_23", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::bind_uds", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::client_disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::client_request_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::client_shutdown", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::client_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::disable_signals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_auto_h2c", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_openssl", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_rustls", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_rustls_0_21", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_rustls_0_22", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_rustls_0_23", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::listen_uds", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::max_connection_rate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::max_connections", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::server::HttpServer::factory]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::on_connect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::server_hostname", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::shutdown_signal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::shutdown_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::system_exit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::tls_handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::worker_max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::workers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceFactoryWrapper::factory].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_response", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_parts", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_parts", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::guard_ctx", "Argument[self]", "ReturnValue.Field[actix_web::guard::GuardContext::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceRequest::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::parts", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::parts", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::parts_mut", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::parts_mut", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::request", "Argument[self].Field[actix_web::service::ServiceRequest::req]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_payload", "Argument[0]", "Argument[self].Field[actix_web::service::ServiceRequest::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_response", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_err", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_parts", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceResponse::response]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_response", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_boxed_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_left_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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::map_into_right_body", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::service::ServiceResponse::request]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "ReturnValue.Field[actix_web::service::ServiceResponse::response]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::request", "Argument[self].Field[actix_web::service::ServiceResponse::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::response", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::response_mut", "Argument[self].Field[actix_web::service::ServiceResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[actix_web::service::WebService::guards]", "ReturnValue.Field[actix_web::service::WebServiceImpl::guards]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[actix_web::service::WebService::name]", "ReturnValue.Field[actix_web::service::WebServiceImpl::name]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::finish", "Argument[self].Field[actix_web::service::WebService::rdef]", "ReturnValue.Field[actix_web::service::WebServiceImpl::rdef]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::guard", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::app_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::param", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[0]", "Argument[self].Field[actix_web::test::test_request::TestRequest::peer_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[0]", "ReturnValue.Field[actix_web::test::test_request::TestRequest::peer_addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::peer_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[0]", "Argument[self].Field[actix_web::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[0]", "ReturnValue.Field[actix_web::test::test_request::TestRequest::rmap]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::rmap", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_mut", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::as_ref", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[actix_web::thin_data::ThinData(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::either::EitherExtractFut::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::unwrap_left", "Argument[self].Field[actix_web::types::either::Either::Left(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::unwrap_right", "Argument[self].Field[actix_web::types::either::Either::Right(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::req]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_web::types::either::EitherExtractFut::req]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::form::FormExtractFut::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::form::FormConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::form::FormConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::form::UrlEncoded::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::form::UrlEncoded::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::header::Header(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self].Field[0]", "ReturnValue.Field[actix_web::response::response::HttpResponse::res].Field[actix_http::responses::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::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"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from_request", "Argument[0].Reference", "ReturnValue.Field[actix_web::types::json::JsonExtractFut::req].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonBody::Body::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[0]", "Argument[self].Field[actix_web::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonConfig::content_type_required]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::content_type_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::json::JsonConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::json::JsonConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::HttpMessageBody::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::payload::Payload(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[0]", "Argument[self].Field[actix_web::types::payload::PayloadConfig::mimetype].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::mimetype].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::mimetype", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "ReturnValue.Field[actix_web::types::payload::PayloadConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::deref_mut", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::into_inner", "Argument[self].Field[actix_web::types::query::Query(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "Argument[self].Field[actix_web::types::readlines::Readlines::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[0]", "ReturnValue.Field[actix_web::types::readlines::Readlines::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::from", "Argument[0].Field[actix_web::http::header::content_length::ContentLength(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "crate::guard::Method", "Argument[0]", "ReturnValue.Field[actix_web::guard::MethodGuard(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "crate::guard::fn_guard", "Argument[0]", "ReturnValue.Field[actix_web::guard::FnGuard(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "crate::web::scope", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:actix-web", "::ranked", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::negotiate", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::ranked", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::ranked", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_strong", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new_weak", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::strong", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::weak", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_request_replace", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::custom_response_replace", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::new", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::respond_to", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::register", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:actix-web", "::register", "Argument[self]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml b/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml deleted file mode 100644 index 055651257c2..00000000000 --- a/rust/ql/lib/ext/generated/actix-web/repo-https-github.com-actix-actix-web-awc.model.yml +++ /dev/null @@ -1,288 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:awc", "::add_default_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::connector]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::disable_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::disable_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::finish", "Argument[self].Field[awc::builder::ClientBuilder::timeout]", "ReturnValue.Field[awc::client::Client(0)].Field[awc::client::ClientConfig::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::conn_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::conn_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::stream_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::stream_window_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::local_address].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::local_address].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::max_http_version].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::max_http_version].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::max_redirects]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirects", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::no_default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[awc::builder::ClientBuilder::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::wrap", "Argument[0]", "ReturnValue.Field[awc::builder::ClientBuilder::middleware].Field[awc::middleware::NestTransform::parent]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::delete", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::delete", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::head", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::head", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::options", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::options", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::patch", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::patch", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::post", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::post", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::put", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::put", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::request", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::request", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::request", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::request_from", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::request_from", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::ws", "Argument[self].Field[0].Reference", "ReturnValue.Field[awc::ws::WebsocketsRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::ws", "Argument[self].Field[awc::client::Client(0)].Reference", "ReturnValue.Field[awc::ws::WebsocketsRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::no_disconnect_timeout", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::open_tunnel", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::open_tunnel", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::client::connection::H2ConnectionInner::sender]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_keep_alive]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_lifetime]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::conn_lifetime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::connector]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[self].Field[awc::client::connector::Connector::config]", "ReturnValue.Field[awc::client::connector::Connector::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::connector", "Argument[self].Field[awc::client::connector::Connector::tls]", "ReturnValue.Field[awc::client::connector::Connector::tls]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::disconnect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::handshake_timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::handshake_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::conn_window_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::stream_window_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::initial_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_http_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::openssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls020(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls021(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_021", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls022(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_22", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Rustls023(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::rustls_0_23", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::tls].Field[awc::client::connector::OurTlsConnector::Openssl(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::ssl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[awc::client::connector::Connector::config].Field[awc::client::config::ConnectorConfig::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::connector::TcpConnectorInnerFuture::timeout]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[awc::client::connector::TlsConnectorService::timeout]", "ReturnValue.Field[awc::client::connector::TlsConnectorFuture::TcpConnect::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[actix_tls::connect::error::ConnectError::Io(0)]", "ReturnValue.Field[awc::client::error::ConnectError::Io(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[actix_tls::connect::error::ConnectError::Resolver(0)]", "ReturnValue.Field[awc::client::error::ConnectError::Resolver(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[awc::client::error::FreezeRequestError::Custom(0)]", "ReturnValue.Field[awc::client::error::SendRequestError::Custom(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0].Field[awc::client::error::FreezeRequestError::Custom(1)]", "ReturnValue.Field[awc::client::error::SendRequestError::Custom(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::h1proto::PlStream::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::client::h1proto::PlStream::framed]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::client::pool::ConnectionPool::connector]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::deref", "Argument[self].Field[awc::client::pool::ConnectionPoolInner(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[awc::client::pool::Key::authority]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[awc::client::pool::test::TestPoolConnector::generated]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::into_client_response", "Argument[self].Field[awc::connect::ConnectResponse::Client(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::into_tunnel_response", "Argument[self].Field[awc::connect::ConnectResponse::Tunnel(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::into_tunnel_response", "Argument[self].Field[awc::connect::ConnectResponse::Tunnel(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0]", "ReturnValue.Field[awc::connect::ConnectRequestFuture::Connection::req].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::connect::DefaultConnector::connector]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::extra_header", "Argument[self].Reference", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::extra_headers", "Argument[0]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::extra_headers", "Argument[self].Reference", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[self].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::extra_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::req]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::frozen::FrozenSendBuilder::extra_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self].Field[awc::frozen::FrozenSendBuilder::req].Field[awc::frozen::FrozenClientRequest::response_decompress]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::middleware::NestTransform::child]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::middleware::NestTransform::parent]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new_transform", "Argument[self].Field[awc::middleware::redirect::Redirect::max_redirect_times]", "ReturnValue.Field[awc::middleware::redirect::RedirectService::max_redirect_times]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[0]", "Argument[self].Field[awc::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[0]", "ReturnValue.Field[awc::middleware::redirect::Redirect::max_redirect_times]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_redirect_times", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0].Field[awc::connect::ConnectRequest::Client(1)].Field[awc::any_body::AnyBody::Bytes::body]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::body].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[0].Field[awc::connect::ConnectRequest::Client(2)]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::addr]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::call", "Argument[self].Field[awc::middleware::redirect::RedirectService::max_redirect_times]", "ReturnValue.Field[awc::middleware::redirect::RedirectServiceFuture::Client::max_redirect_times]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::camel_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::content_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::content_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::force_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get_method", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get_peer_addr", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::peer_addr]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get_uri", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::get_version", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::headers_mut", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::insert_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::method", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::method]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[2]", "ReturnValue.Field[awc::request::ClientRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::no_decompress", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::query", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::timeout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::uri", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "Argument[self].Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "ReturnValue.Field[awc::request::ClientRequest::head].Field[actix_http::requests::head::RequestHead::version]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::responses::read_body::ReadBody::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::responses::read_body::ReadBody::limit]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::limit]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[awc::responses::read_body::ReadBody::limit]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::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"] - - ["repo:https://github.com/actix/actix-web:awc", "::extensions", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::extensions_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self].Field[awc::responses::response::ClientResponse::head].Field[actix_http::responses::head::ResponseHead::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[0]", "Argument[self].Field[awc::responses::response::ClientResponse::timeout].Field[awc::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[0]", "ReturnValue.Field[awc::responses::response::ClientResponse::timeout].Field[awc::responses::ResponseTimeout::Disabled(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::cookies", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::head", "Argument[self].Field[awc::responses::response::ClientResponse::head]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::headers", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::map_body", "Argument[0].ReturnValue", "ReturnValue.Field[awc::responses::response::ClientResponse::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::responses::response::ClientResponse::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::responses::response::ClientResponse::payload]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::status", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::timeout", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::from", "Argument[0]", "ReturnValue.Field[awc::sender::SendClientRequest::Err(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[0]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::sender::SendClientRequest::Fut(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::append_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::finish", "Argument[self].Field[awc::test::TestResponse::head]", "ReturnValue.Field[awc::responses::response::ClientResponse::head]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::insert_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::set_payload", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "Argument[self].Field[awc::test::TestResponse::head].Field[actix_http::responses::head::ResponseHead::version]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[0]", "ReturnValue.Field[awc::test::TestResponse::head].Field[actix_http::responses::head::ResponseHead::version]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "Argument[self].Field[awc::ws::WebsocketsRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[0]", "ReturnValue.Field[awc::ws::WebsocketsRequest::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[0]", "Argument[self].Field[awc::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[0]", "ReturnValue.Field[awc::ws::WebsocketsRequest::max_size]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[1]", "ReturnValue.Field[awc::ws::WebsocketsRequest::config]", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::origin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::protocols", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::server_mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::set_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::set_header_if_none", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send", "Argument[3]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_body", "Argument[3]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_form", "Argument[3]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_json", "Argument[3]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::send_stream", "Argument[3]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "::new", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/actix/actix-web:awc", "crate::client::h2proto::send_request", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap.model.yml b/rust/ql/lib/ext/generated/clap.model.yml new file mode 100644 index 00000000000..cd563c5420b --- /dev/null +++ b/rust/ql/lib/ext/generated/clap.model.yml @@ -0,0 +1,546 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + 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"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::action", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_missing_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_missing_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_missing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_missing_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value_if_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value_ifs_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::global", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_env_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_short_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::ignore_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::long", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::long_help", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::overrides_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::overrides_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::raw", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::require_equals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_if_eq", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_if_eq_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_if_eq_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_unless_present", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_unless_present_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::required_unless_present_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::requires_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::requires_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::short", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_hint", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_names", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::value_terminator", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::after_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::after_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_external_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_missing_positional", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::arg_required_else_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::args_conflicts_with_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::args_override_self", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::author", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::before_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::before_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::bin_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::defer", "Argument[0]", "Argument[self].Field[clap_builder::builder::command::Command::deferred].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::defer", "Argument[0]", "ReturnValue.Field[clap_builder::builder::command::Command::deferred].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::defer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_help_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::disable_version_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::display_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::dont_collapse_args_in_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::help_expected", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::help_template", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::ignore_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::infer_long_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::infer_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::long_about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::multicall", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mut_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mut_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mut_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mut_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::name", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::no_binary_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::override_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::override_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::propagate_version", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand_negates_reqs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand_precedence_over_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommand_value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unset_global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::visible_long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[clap_builder::util::id::Id(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[clap_builder::builder::str::Str::name]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference.Reference", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::invalid", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::invalid]", "value", "dfc-generated"] + - ["::invalid", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::invalid]", "value", "dfc-generated"] + - ["::invalid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::literal", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::literal]", "value", "dfc-generated"] + - ["::literal", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::literal]", "value", "dfc-generated"] + - ["::literal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::placeholder", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::placeholder]", "value", "dfc-generated"] + - ["::placeholder", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::placeholder]", "value", "dfc-generated"] + - ["::placeholder", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::usage", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::usage]", "value", "dfc-generated"] + - ["::usage", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::usage]", "value", "dfc-generated"] + - ["::usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::valid", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::valid]", "value", "dfc-generated"] + - ["::valid", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::valid]", "value", "dfc-generated"] + - ["::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"] + - ["::parse", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::parse_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::parse", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::and_suggest", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[clap_builder::builder::value_parser::_AnonymousValueParser(0)]", "ReturnValue", "value", "dfc-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"] + - ["::insert_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::raw", "Argument[0]", "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"] + - ["::set_message", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::with_content", "Argument[0]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::content]", "value", "dfc-generated"] + - ["::with_content", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[clap_builder::parser::parser::Parser::cmd]", "value", "dfc-generated"] + - ["::parse", "Argument[self]", "Argument[1]", "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"] + - ["::from_str", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::hide", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] + - ["::hide", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] + - ["::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stdio", "Argument[self]", "ReturnValue", "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"] + - ["::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"] + - ["::action", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::from_subcommand_enum", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] + - ["::from_subcommand_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] + - ["::from_subcommand_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] + - ["::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"] + - ["::skip_group", "Argument[self].Field[clap_derive::item::Item::skip_group]", "ReturnValue", "value", "dfc-generated"] + - ["::value_parser", "Argument[self]", "Argument[0]", "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"] + - ["::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"] + - ["::translate", "Argument[self].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue", "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"] + - ["::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"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::date", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::generate_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::manual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[clap_mangen::Man::cmd]", "value", "dfc-generated"] + - ["::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"] + - ["::into_resettable", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-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"] + - ["::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_complete::aot::generator::utils::find_subcommand_with_path", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["clap_derive::utils::ty::inner_type", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::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_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"] + - ["::range", "Argument[self]", "log-injection", "df-generated"] + - ["::parse_ref", "Argument[1]", "pointer-access", "df-generated"] + - ["::range", "Argument[self]", "log-injection", "df-generated"] + - ["::wrap", "Argument[0]", "log-injection", "df-generated"] + - ["::get_required_usage_from", "Argument[1]", "pointer-access", "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"] + - ["::get_many", "Argument[0]", "log-injection", "df-generated"] + - ["::get_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["::get_one", "Argument[0]", "log-injection", "df-generated"] + - ["::get_raw", "Argument[0]", "log-injection", "df-generated"] + - ["::get_raw_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["::remove_many", "Argument[0]", "log-injection", "df-generated"] + - ["::remove_many", "Argument[self]", "log-injection", "df-generated"] + - ["::remove_occurrences", "Argument[0]", "log-injection", "df-generated"] + - ["::remove_occurrences", "Argument[self]", "log-injection", "df-generated"] + - ["::remove_one", "Argument[0]", "log-injection", "df-generated"] + - ["::remove_one", "Argument[self]", "log-injection", "df-generated"] + - ["::try_clear_id", "Argument[self]", "log-injection", "df-generated"] + - ["::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"] + - ["::get_matches_with", "Argument[0]", "log-injection", "df-generated"] + - ["::get_matches_with", "Argument[self]", "pointer-access", "df-generated"] + - ["::parse", "Argument[0]", "log-injection", "df-generated"] + - ["::parse", "Argument[self]", "pointer-access", "df-generated"] + - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::remove_entry", "Argument[self]", "log-injection", "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"] + - ["::write_complete", "Argument[2]", "log-injection", "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"] + - ["::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"] + - ["::generate_to", "Argument[self]", "path-injection", "df-generated"] + - ["::from_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"] + - ["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/clap/repo-https-github.com-clap-rs-clap-clap.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml deleted file mode 100644 index 68c81938798..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap.model.yml +++ /dev/null @@ -1,24 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap", "::augment_args", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::augment_args_for_update", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::augment_subcommands", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::augment_subcommands_for_update", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap", "::from_arg_matches", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::update_from_arg_matches", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::update_from_arg_matches_mut", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap", "::from_matches", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml deleted file mode 100644 index c22f0a231a0..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_bench.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_bench", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_bench", "::args", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_bench", "::args", "Argument[self].Field[complex::Args(1)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_bench", "::name", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_bench", "::name", "Argument[self].Field[complex::Args(0)]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml deleted file mode 100644 index 71fbb096932..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_builder.model.yml +++ /dev/null @@ -1,448 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_builder", "<_ as crate::builder::value_parser::AnyValueParser>::clone_any", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::action", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_missing_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_if_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_ifs_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_value_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::default_values_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::env_os", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::exclusive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_action", "Argument[self].Field[clap_builder::builder::arg::Arg::action].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_default_values", "Argument[self].Field[clap_builder::builder::arg::Arg::default_vals]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_display_order", "Argument[self].Field[clap_builder::builder::arg::Arg::disp_ord].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_env", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_id", "Argument[self].Field[clap_builder::builder::arg::Arg::id]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_index", "Argument[self].Field[clap_builder::builder::arg::Arg::index]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_num_args", "Argument[self].Field[clap_builder::builder::arg::Arg::num_vals]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_short", "Argument[self].Field[clap_builder::builder::arg::Arg::short]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_value_delimiter", "Argument[self].Field[clap_builder::builder::arg::Arg::val_delim]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_value_names", "Argument[self].Field[clap_builder::builder::arg::Arg::val_names]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::global", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_default_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_env_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_short_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ignore_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::num_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::number_of_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::overrides_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::overrides_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::require_equals", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_if_eq_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required_unless_present_any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_if", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_ifs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::use_value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_delimiter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_hint", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_names", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_terminator", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::conflicts_with_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_id", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::id]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_multiple", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_required_set", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::required]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[0]", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[0]", "ReturnValue.Field[clap_builder::builder::arg_group::ArgGroup::multiple]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multiple", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "Argument[self].Field[clap_builder::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "ReturnValue.Field[clap_builder::builder::arg_group::ArgGroup::required]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::after_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::after_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_external_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_hyphen_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_missing_positional", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::allow_negative_numbers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::arg_required_else_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args_conflicts_with_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::args_override_self", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::author", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::before_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::before_long_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::bin_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[0]", "Argument[self].Field[clap_builder::builder::command::Command::deferred].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[0]", "ReturnValue.Field[clap_builder::builder::command::Command::deferred].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::defer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_help_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::disable_version_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::dont_collapse_args_in_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::dont_delimit_trailing_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::external_subcommand_value_parser", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::flatten_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_display_order", "Argument[self].Field[clap_builder::builder::command::Command::disp_ord].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_keymap", "Argument[self].Field[clap_builder::builder::command::Command::args]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_short_flag", "Argument[self].Field[clap_builder::builder::command::Command::short_flag]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_expected", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help_template", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide_possible_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ignore_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_long_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_help_exists", "Argument[self].Field[clap_builder::builder::command::Command::long_help_exists]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::long_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::max_term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::multicall", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_line_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::no_binary_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::override_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::override_usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::propagate_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_help_heading", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_negates_reqs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_precedence_over_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_value_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommands", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::term_width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::trailing_var_arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_global_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unset_setting", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_long_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_long_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_flag_alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::visible_short_flag_aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::aliases", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[0]", "Argument[self].Field[clap_builder::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[0]", "ReturnValue.Field[clap_builder::builder::possible_value::PossibleValue::hide]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::is_hide_set", "Argument[self].Field[clap_builder::builder::possible_value::PossibleValue::hide]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::end_bound", "Argument[self].Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::start_bound", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::max_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::end_inclusive]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::min_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::num_values", "Argument[self].Field[clap_builder::builder::range::ValueRange::start_inclusive]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[0]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::start_inclusive]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[1]", "ReturnValue.Field[clap_builder::builder::range::ValueRange::end_inclusive]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[clap_builder::util::id::Id(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_inner", "Argument[self].Field[clap_builder::builder::str::Str::name]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference.Reference", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::ansi", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_styled_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_styled_str", "Argument[self].Field[clap_builder::builder::styled_str::StyledStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::error]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::error]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_error", "Argument[self].Field[clap_builder::builder::styling::Styles::error]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_header", "Argument[self].Field[clap_builder::builder::styling::Styles::header]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_invalid", "Argument[self].Field[clap_builder::builder::styling::Styles::invalid]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_literal", "Argument[self].Field[clap_builder::builder::styling::Styles::literal]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_placeholder", "Argument[self].Field[clap_builder::builder::styling::Styles::placeholder]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_usage", "Argument[self].Field[clap_builder::builder::styling::Styles::usage]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_valid", "Argument[self].Field[clap_builder::builder::styling::Styles::valid]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::header]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::header]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::invalid]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::invalid]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::invalid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::literal]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::literal]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::literal", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::placeholder]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::placeholder]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::placeholder", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::usage]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::usage]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::usage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[0]", "Argument[self].Field[clap_builder::builder::styling::Styles::valid]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[0]", "ReturnValue.Field[clap_builder::builder::styling::Styles::valid]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::valid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[2].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::and_suggest", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Field[clap_builder::builder::value_parser::_AnonymousValueParser(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::apply", "Argument[self].Field[clap_builder::error::Error::inner]", "ReturnValue.Field[clap_builder::error::Error::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::extend_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::format", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert_context_unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_color", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_colored_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_help_flag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_message", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_styles", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_cmd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_by_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::color_when]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[0]", "Argument[self].Field[clap_builder::output::fmt::Colorizer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[0]", "ReturnValue.Field[clap_builder::output::fmt::Colorizer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::with_content", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[2]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[3]", "ReturnValue.Field[clap_builder::output::help_template::AutoHelp::template].Field[clap_builder::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[1]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[2]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::usage]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[3]", "ReturnValue.Field[clap_builder::output::help_template::HelpTemplate::use_long]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::textwrap::wrap_algorithms::LineWrapper::hard_width]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::wrap", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::output::usage::Usage::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "Argument[self].Field[clap_builder::output::usage::Usage::required].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[0]", "ReturnValue.Field[clap_builder::output::usage::Usage::required].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::required", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::deref", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[0]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::key]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_inner", "Argument[self].Field[clap_builder::parser::arg_matcher::ArgMatcher::matches]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::pending_arg_id", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[1].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::subcommand_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::GroupedValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[clap_builder::parser::matches::arg_matches::IdsRef::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Indices::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::RawValues::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::Values::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::size_hint", "Argument[self].Field[clap_builder::parser::matches::arg_matches::ValuesRef::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::infer_type_id", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_vals", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::vals]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::set_source", "Argument[0]", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::source].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::source", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::source]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::type_id", "Argument[self].Field[clap_builder::parser::matches::matched_arg::MatchedArg::type_id]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_matches_with", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::parser::parser::Parser::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::new", "Argument[0]", "ReturnValue.Field[clap_builder::parser::validator::Validator::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::type_id", "Argument[self].Field[clap_builder::util::any_value::AnyValue::id]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[0]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::key]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[self]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Occupied(0)].Field[clap_builder::util::flat_map::OccupiedEntry::v]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::entry", "Argument[self]", "ReturnValue.Field[clap_builder::util::flat_map::Entry::Vacant(0)].Field[clap_builder::util::flat_map::VacantEntry::v]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_mut", "Argument[self].Field[clap_builder::util::flat_map::FlatMap::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[clap_builder::util::flat_map::Iter::keys].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::next", "Argument[self].Field[clap_builder::util::flat_map::Iter::values].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert", "Argument[self].Field[0].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert", "Argument[self].Field[clap_builder::util::graph::ChildGraph(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert_child", "Argument[self].Field[0].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::insert_child", "Argument[self].Field[clap_builder::util::graph::ChildGraph(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_internal_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::as_internal_str", "Argument[self].Field[clap_builder::util::id::Id(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::into_resettable", "Argument[self]", "ReturnValue.Field[clap_builder::builder::resettable::Resettable::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "crate::output::textwrap::word_separators::find_words_ascii_space", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_fn::FromFn(0)]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_builder", "<_ as crate::builder::value_parser::TypedValueParser>::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::value_hint", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::_panic_on_missing_help", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_group", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::mut_subcommand", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::range", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse_ref", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::wrap", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_required_usage_from", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::unwrap", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::contains_id", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_count", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_flag", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_many", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_occurrences", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_one", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_raw", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_raw_occurrences", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_many", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_many", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_occurrences", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_occurrences", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_one", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_one", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::try_clear_id", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::try_remove_many", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::try_remove_occurrences", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::try_remove_one", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::check_explicit", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_matches_with", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::get_matches_with", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::parse", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::remove_entry", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_builder", "::sort_by_key", "Argument[self]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml deleted file mode 100644 index c7ef53d6a79..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete.model.yml +++ /dev/null @@ -1,79 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCandidates>::candidates", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCompleter>::complete", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "<_ as crate::engine::custom::ValueCompleter>::complete", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::add_prefix", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::display_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_display_order", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::display_order]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::get_value", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::help]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::hide", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::id]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::is_hide_set", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::hidden]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[0]", "Argument[self].Field[clap_complete::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[0]", "ReturnValue.Field[clap_complete::engine::candidate::CompletionCandidate::tag]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::tag", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::filter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::stdio", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::bin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::completer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[0]", "Argument[self].Field[clap_complete::env::CompleteEnv::shells]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::shells]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::shells", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[0]", "Argument[self].Field[clap_complete::env::CompleteEnv::var]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::var]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::var", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::with_factory", "Argument[0]", "ReturnValue.Field[clap_complete::env::CompleteEnv::factory]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::aot::generator::utils::find_subcommand_with_path", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "::write_complete", "Argument[2]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[2]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[3]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::complete::complete", "Argument[3]", "path-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete", "crate::engine::custom::complete_path", "Argument[1]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml deleted file mode 100644 index 121e004b29b..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_complete_nushell.model.yml +++ /dev/null @@ -1,13 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "crate::has_command", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_complete_nushell", "crate::register_example", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml deleted file mode 100644 index 4cb827d0845..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_derive.model.yml +++ /dev/null @@ -1,55 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::lit_str_or_abort", "Argument[self].Field[clap_derive::attr::ClapAttr::value].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_or_abort", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::action", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::action", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::casing", "Argument[self].Field[clap_derive::item::Item::casing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::env_casing", "Argument[self].Field[clap_derive::item::Item::env_casing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_field", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_field", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_args_struct", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_enum", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_subcommand_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::name]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from_value_enum_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::env_casing]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::group_id", "Argument[self].Field[clap_derive::item::Item::group_id]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::id", "Argument[self].Field[clap_derive::item::Item::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::is_positional", "Argument[self].Field[clap_derive::item::Item::is_positional]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::kind", "Argument[self].Field[clap_derive::item::Item::kind].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::skip_group", "Argument[self].Field[clap_derive::item::Item::skip_group]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_parser", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::args", "Argument[self].Field[clap_derive::item::Method::args]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[0]", "ReturnValue.Field[clap_derive::item::Method::name]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[1]", "ReturnValue.Field[clap_derive::item::Method::args]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::translate", "Argument[self].Field[clap_derive::item::Name::Assigned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from", "Argument[0].Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::span]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::deref", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::deref_mut", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::get", "Argument[self].Field[clap_derive::utils::spanned::Sp::val]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[0]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::val]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::new", "Argument[1]", "ReturnValue.Field[clap_derive::utils::spanned::Sp::span]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::span", "Argument[self].Field[clap_derive::utils::spanned::Sp::span]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::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"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "crate::utils::ty::inner_type", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::action", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_derive", "::value_parser", "Argument[self]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml deleted file mode 100644 index 75135d83ba0..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_lex.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::to_value", "Argument[self].Field[clap_lex::ParsedArg::inner]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::to_value_os", "Argument[self].Field[clap_lex::ParsedArg::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::remaining", "Argument[self].Field[clap_lex::RawArgs::items].Field[alloc::vec::Vec::len]", "Argument[0].Field[clap_lex::ArgCursor::cursor]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::split", "Argument[0]", "ReturnValue.Field[clap_lex::ext::Split::needle]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_lex", "::split", "Argument[self]", "ReturnValue.Field[clap_lex::ext::Split::haystack].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml b/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml deleted file mode 100644 index 2eaf737de22..00000000000 --- a/rust/ql/lib/ext/generated/clap/repo-https-github.com-clap-rs-clap-clap_mangen.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::date", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::generate_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::get_filename", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::manual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::new", "Argument[0]", "ReturnValue.Field[clap_mangen::Man::cmd]", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::section", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::title", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/clap-rs/clap:clap_mangen", "::generate_to", "Argument[self]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/hyper.model.yml b/rust/ql/lib/ext/generated/hyper.model.yml new file mode 100644 index 00000000000..ceb116fa645 --- /dev/null +++ b/rust/ql/lib/ext/generated/hyper.model.yml @@ -0,0 +1,443 @@ +# 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].Field[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[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[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[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[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"] + - ["::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"] + - ["::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::handshake", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Reference", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-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"] + - ["::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"] + - ["::into_error", "Argument[self].Field[hyper::client::dispatch::TrySendError::error]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner].Reference", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] + - ["::bufs_cnt", "Argument[self].Field[hyper::common::buf::BufList::bufs].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::compat::Compat(0)]", "value", "dfc-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"] + - ["::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"] + - ["::with", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::wrap", "Argument[0]", "ReturnValue.Field[hyper::ffi::http_types::hyper_response(0)]", "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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::recv_msg", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::io::Cursor::bytes]", "value", "dfc-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"] + - ["::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"] + - ["::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[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"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::uninit", "Argument[0]", "ReturnValue.Field[hyper::rt::io::ReadBuf::raw]", "value", "dfc-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"] + - ["::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[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[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[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[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[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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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::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: + - ["::push", "Argument[self]", "log-injection", "df-generated"] + - ["::check", "Argument[1]", "log-injection", "df-generated"] + - ["::end_body", "Argument[self]", "log-injection", "df-generated"] + - ["::poll_drain_or_close_read", "Argument[self]", "log-injection", "df-generated"] + - ["::poll_read_body", "Argument[self]", "log-injection", "df-generated"] + - ["::write_body", "Argument[self]", "log-injection", "df-generated"] + - ["::write_body_and_end", "Argument[self]", "log-injection", "df-generated"] + - ["::write_trailers", "Argument[self]", "log-injection", "df-generated"] + - ["::encode_and_end", "Argument[1]", "log-injection", "df-generated"] + - ["::buffer", "Argument[self]", "log-injection", "df-generated"] + - ["::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"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["hyper::ffi::body::hyper_buf_bytes", "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::task::hyper_executor_new", "ReturnValue", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml b/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml deleted file mode 100644 index ffc0033a152..00000000000 --- a/rust/ql/lib/ext/generated/hyper/repo-https-github.com-hyperium-hyper-hyper.model.yml +++ /dev/null @@ -1,323 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/hyperium/hyper:hyper", "<_ as crate::ffi::task::IntoDynTaskType>::into_dyn_task_type", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ffi_mut", "Argument[self].Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::Ffi(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[0]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::recv]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[1]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::content_length]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::h2", "Argument[2]", "ReturnValue.Field[hyper::body::incoming::Incoming::kind].Field[hyper::body::incoming::Kind::H2::ping]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::checked_new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::body::length::DecodedLength(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::danger_len", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::danger_len", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_opt", "Argument[self].Field[hyper::body::length::DecodedLength(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::body::length::DecodedLength(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h09_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_preserve_header_order]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_read_buf_exact_size]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_exact_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "Argument[self].Field[hyper::client::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::with_upgrades", "Argument[self]", "ReturnValue.Field[hyper::client::conn::http1::upgrades::UpgradeableConnection::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::send_request", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::try_send_request", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::header_table_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_max_send_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::exec]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Reference", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::call_back]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::when]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::client::dispatch::SendWhen::when]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::unbound", "Argument[self].Field[hyper::client::dispatch::Sender::inner]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_error", "Argument[self].Field[hyper::client::dispatch::TrySendError::error]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::bufs_cnt", "Argument[self].Field[hyper::common::buf::BufList::bufs].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::compat::Compat(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::common::io::rewind::Rewind::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new_buffered", "Argument[0]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new_buffered", "Argument[1]", "ReturnValue.Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::rewind", "Argument[0]", "Argument[self].Field[hyper::common::io::rewind::Rewind::pre].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from_inner", "Argument[0]", "ReturnValue.Field[hyper::ext::Protocol::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::ext::Protocol::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_ref", "Argument[self].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_bytes", "Argument[self].Field[hyper::ext::h1_reason_phrase::ReasonPhrase(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::wrap", "Argument[0]", "ReturnValue.Field[hyper::ffi::http_types::hyper_response(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc].Reference", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::downgrade", "Argument[0].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[hyper::ffi::task::WeakExec(0)].Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::boxed", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::io]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::set_timer", "Argument[0]", "Argument[self].Field[hyper::proto::h1::conn::Conn::state].Field[hyper::proto::h1::conn::State::timer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::wants_read_again", "Argument[self].Field[hyper::proto::h1::conn::Conn::state].Field[hyper::proto::h1::conn::State::notify_read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::chunked", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::length", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Length(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h1::decode::Decoder::kind].Field[hyper::proto::h1::decode::Kind::Chunked::h1_max_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Client::rx]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::callback]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx_closed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::callback]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h1::dispatch::Client::rx_closed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::proto::h1::dispatch::Dispatcher::dispatch]", "ReturnValue.Field[2]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Dispatcher::dispatch]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h1::dispatch::Dispatcher::conn]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::recv_msg", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_service", "Argument[self].Field[hyper::proto::h1::dispatch::Server::service]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::dispatch::Server::service]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::chunk", "Argument[self].Field[hyper::proto::h1::encode::ChunkSize::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Chunked(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::from", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Limited(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::EncodedBuf::kind].Field[hyper::proto::h1::encode::BufKind::Exact(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::encode_and_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_chunked_with_trailing_fields", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::is_last", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::length", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::kind].Field[hyper::proto::h1::encode::Kind::Length(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[0]", "Argument[self].Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::encode::Encoder::is_last]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::set_last", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_inner", "Argument[self].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::io_mut", "Argument[self].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::is_read_blocked", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_blocked]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::io::Buffered::io]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::read_buf_mut", "Argument[self].Field[hyper::proto::h1::io::Buffered::read_buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::set_flush_pipeline", "Argument[0]", "Argument[self].Field[hyper::proto::h1::io::Buffered::flush_pipeline]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::write_buf", "Argument[self].Field[hyper::proto::h1::io::Buffered::write_buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::proto::h1::io::Cursor::bytes]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::body_tx]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::data_done]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::body_tx]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::data_done]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::PipeToSendStream::stream]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::is_terminated", "Argument[self].Field[hyper::proto::h2::client::ConnMapErr::is_terminated]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ConnTask::conn]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::PipeMap::pipe]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::client::ResponseFutMap::ping]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::for_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::date_header]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::reply]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::date_header]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::proto::h2::server::H2Stream::reply]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[1]", "ReturnValue.Field[hyper::proto::h2::server::Server::service]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[2].Field[hyper::proto::h2::server::Config::date_header]", "ReturnValue.Field[hyper::proto::h2::server::Server::date_header]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[3]", "ReturnValue.Field[hyper::proto::h2::server::Server::exec]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[4]", "ReturnValue.Field[hyper::proto::h2::server::Server::timer]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::into_dyn_task_type", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::init_len", "Argument[self].Field[hyper::rt::io::ReadBuf::init]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::len", "Argument[self].Field[hyper::rt::io::ReadBuf::filled]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::uninit", "Argument[0]", "ReturnValue.Field[hyper::rt::io::ReadBuf::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::date_header]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_half_close]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::half_close", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::header_read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::ignore_invalid_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_keep_alive]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::max_buf_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_max_headers].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::pipeline_flush]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::pipeline_flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_preserve_header_case]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::preserve_header_case", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_title_case_headers]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "Argument[self].Field[hyper::server::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http1::Builder::h1_writev].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::writev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http1::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http1::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::with_upgrades", "Argument[self]", "ReturnValue.Field[hyper::server::conn::http1::UpgradeableConnection::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::server::Config::adaptive_window]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::auto_date_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::enable_connect_protocol", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_concurrent_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_local_error_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_pending_accept_reset_streams", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::max_send_buf_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue.Field[hyper::server::conn::http2::Builder::exec]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[1]", "ReturnValue.Field[hyper::server::conn::http2::Connection::conn].Field[hyper::proto::h2::server::Server::service]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::serve_connection", "Argument[self].Field[hyper::server::conn::http2::Builder::exec].Reference", "ReturnValue.Field[hyper::server::conn::http2::Connection::conn].Field[hyper::proto::h2::server::Server::exec]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::timer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http2::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[hyper::server::conn::http2::Connection::conn]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[hyper::service::util::ServiceFn::f].Reference", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::clone", "Argument[self].Field[hyper::service::util::ServiceFn::f]", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::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"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::client::handshake", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::proto::h2::client::ClientTask::req_rx]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::client::handshake", "Argument[3]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[hyper::proto::h2::client::ClientTask::executor]", "value", "dfc-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::ping::channel", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::service::util::service_fn", "Argument[0]", "ReturnValue.Field[hyper::service::util::ServiceFn::f]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/hyperium/hyper:hyper", "::push", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::check", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::end_body", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::poll_drain_or_close_read", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::poll_read_body", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::write_body", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::write_body_and_end", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::write_trailers", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::encode_and_end", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::buffer", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::buffer", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "::encode", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::client::handshake", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::proto::h2::ping::channel", "Argument[1]", "pointer-access", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::body::hyper_buf_bytes", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::http_types::hyper_response_reason_phrase", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::hyper_version", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["repo:https://github.com/hyperium/hyper:hyper", "crate::ffi::task::hyper_executor_new", "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 new file mode 100644 index 00000000000..b264de98fa9 --- /dev/null +++ b/rust/ql/lib/ext/generated/libc.model.yml @@ -0,0 +1,86 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::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"] + - ["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"] + - ["libc::unix::linux_like::IPOPT_COPIED", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::IPOPT_NUMBER", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::IPTOS_ECN", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::KERNEL_VERSION", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::KERNEL_VERSION", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::KERNEL_VERSION", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::QCMD", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::QCMD", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::WEXITSTATUS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::WSTOPSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::WTERMSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::W_EXITCODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::W_EXITCODE", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::W_STOPCODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_CLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_JUMP", "Argument[0]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::code]", "value", "dfc-generated"] + - ["libc::unix::linux_like::linux::BPF_JUMP", "Argument[1]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::k]", "value", "dfc-generated"] + - ["libc::unix::linux_like::linux::BPF_JUMP", "Argument[2]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::jt]", "value", "dfc-generated"] + - ["libc::unix::linux_like::linux::BPF_JUMP", "Argument[3]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::jf]", "value", "dfc-generated"] + - ["libc::unix::linux_like::linux::BPF_MISCOP", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_MODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_OP", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_RVAL", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_SIZE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_SRC", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::BPF_STMT", "Argument[0]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::code]", "value", "dfc-generated"] + - ["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::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"] + - ["libc::unix::linux_like::linux::ELF32_R_TYPE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::ELF64_R_INFO", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::ELF64_R_INFO", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::ELF64_R_SYM", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::ELF64_R_TYPE", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::FUTEX_OP", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::FUTEX_OP", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::FUTEX_OP", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::FUTEX_OP", "Argument[3]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::IPTOS_PREC", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::IPTOS_TOS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::NLA_ALIGN", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::RT_ADDRCLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["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::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"] + - ["libc::unix::linux_like::linux::_IOR", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::_IOR", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["libc::unix::linux_like::linux::_IOW", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["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"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::check_file", "Argument[0]", "path-injection", "df-generated"] + - ["::check_file", "Argument[0]", "path-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["::check_file", "ReturnValue", "file", "df-generated"] + - ["::finalize", "ReturnValue", "file", "df-generated"] + - ["::check_file", "ReturnValue", "file", "df-generated"] + - ["::finalize", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml deleted file mode 100644 index 06195f8df2e..00000000000 --- a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc-test.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/libc:libc-test", "::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"] - - ["repo:https://github.com/rust-lang/libc:libc-test", "::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"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rust-lang/libc:libc-test", "::check_file", "Argument[0]", "path-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/rust-lang/libc:libc-test", "::check_file", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc-test", "::finalize", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml b/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml deleted file mode 100644 index 132aac67b73..00000000000 --- a/rust/ql/lib/ext/generated/libc/repo-https-github.com-rust-lang-libc-libc.model.yml +++ /dev/null @@ -1,68 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::CMSG_LEN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::CMSG_SPACE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::IPOPT_CLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::IPOPT_COPIED", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::IPOPT_NUMBER", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::IPTOS_ECN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::KERNEL_VERSION", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::KERNEL_VERSION", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::KERNEL_VERSION", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::QCMD", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::QCMD", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::WEXITSTATUS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::WSTOPSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::WTERMSIG", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::W_EXITCODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::W_EXITCODE", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::W_STOPCODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_CLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_JUMP", "Argument[0]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::code]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_JUMP", "Argument[1]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::k]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_JUMP", "Argument[2]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::jt]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_JUMP", "Argument[3]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::jf]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_MISCOP", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_MODE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_OP", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_RVAL", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_SIZE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_SRC", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_STMT", "Argument[0]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::code]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::BPF_STMT", "Argument[1]", "ReturnValue.Field[libc::unix::linux_like::linux::sock_filter::k]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::CMSG_NXTHDR", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::CPU_ALLOC_SIZE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF32_R_INFO", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF32_R_INFO", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF32_R_SYM", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF32_R_TYPE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF64_R_INFO", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF64_R_INFO", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF64_R_SYM", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::ELF64_R_TYPE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::FUTEX_OP", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::FUTEX_OP", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::FUTEX_OP", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::FUTEX_OP", "Argument[3]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::IPTOS_PREC", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::IPTOS_TOS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::NLA_ALIGN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::RT_ADDRCLASS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::RT_TOS", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::SCTP_PR_INDEX", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::SCTP_PR_POLICY", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::TPACKET_ALIGN", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IO", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IO", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOR", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOR", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOW", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOW", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOWR", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/libc:libc", "crate::unix::linux_like::linux::_IOWR", "Argument[1]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/log.model.yml b/rust/ql/lib/ext/generated/log.model.yml new file mode 100644 index 00000000000..bc523f01214 --- /dev/null +++ b/rust/ql/lib/ext/generated/log.model.yml @@ -0,0 +1,67 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - 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"] diff --git a/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml b/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml deleted file mode 100644 index 21e059fa1c8..00000000000 --- a/rust/ql/lib/ext/generated/log/repo-https-github.com-rust-lang-log-log.model.yml +++ /dev/null @@ -1,73 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/log:log", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self].Field[log::Metadata::level]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self].Field[log::Metadata::target]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[log::MetadataBuilder::metadata].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[0]", "Argument[self].Field[log::MetadataBuilder::metadata].Field[log::Metadata::level]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[0]", "ReturnValue.Field[log::MetadataBuilder::metadata].Field[log::Metadata::level]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[0]", "Argument[self].Field[log::MetadataBuilder::metadata].Field[log::Metadata::target]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[0]", "ReturnValue.Field[log::MetadataBuilder::metadata].Field[log::Metadata::target]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[self].Field[log::Record::args]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self].Field[log::Record::key_values].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self].Field[log::Record::key_values].Field[log::KeyValues(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self].Field[log::Record::metadata].Field[log::Metadata::level]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[self].Field[log::Record::line]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[self].Field[log::Record::metadata]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self].Field[log::Record::metadata].Field[log::Metadata::target]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_builder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::args]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::args]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::build", "Argument[self].Field[log::RecordBuilder::record].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::file_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::key_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::line]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::line]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::line", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[0]", "Argument[self].Field[log::RecordBuilder::record].Field[log::Record::metadata]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[0]", "ReturnValue.Field[log::RecordBuilder::record].Field[log::Record::metadata]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::metadata", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::target", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::count", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::from_value", "Argument[0]", "ReturnValue.Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Value(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::into_value", "Argument[self].Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Value(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::msg", "Argument[0]", "ReturnValue.Field[log::kv::error::Error::inner].Field[log::kv::error::Inner::Msg(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::borrow", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::as_ref", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::from", "Argument[0]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::as_str", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::from_str", "Argument[0]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_borrowed_str", "Argument[self].Field[log::kv::key::Key::key]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_value", "Argument[self].Field[log::kv::value::Value::inner].Reference", "ReturnValue.Field[log::kv::value::Value::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::to_key", "Argument[self]", "ReturnValue.Field[log::kv::key::Key::key]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::file", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::file_static", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::module_path_static", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/log:log", "::get", "Argument[self]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/memchr.model.yml b/rust/ql/lib/ext/generated/memchr.model.yml new file mode 100644 index 00000000000..a0600551e01 --- /dev/null +++ b/rust/ql/lib/ext/generated/memchr.model.yml @@ -0,0 +1,162 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::load_aligned", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::load_aligned", "Argument[0]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::find", "Argument[self]", "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.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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] + - ["::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr2::needle1]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr2::needle2]", "value", "dfc-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"] + - ["::next", "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::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"] + - ["::find_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "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"] + - ["::prefilter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::rfind_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-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"] + - ["::new", "Argument[0].Element", "ReturnValue.Field[memchr::memmem::searcher::SearcherRev::kind].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-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::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[1]", "ReturnValue", "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_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_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-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: + - ["::find", "Argument[self]", "log-injection", "df-generated"] + - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] + - ["::find", "Argument[self]", "log-injection", "df-generated"] + - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] + - ["::find", "Argument[self]", "log-injection", "df-generated"] + - ["::find_prefilter", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml b/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml deleted file mode 100644 index dd487b23533..00000000000 --- a/rust/ql/lib/ext/generated/memchr/repo-https-github.com-BurntSushi-memchr-memchr.model.yml +++ /dev/null @@ -1,191 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::OneIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::all::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[memchr::arch::all::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[2]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::all::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::all::memchr::TwoIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::all::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::arch::all::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::try_new", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::all::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[memchr::arch::all::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[0].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::byte2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_pair", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Finder::pair]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::index1", "Argument[self].Field[memchr::arch::all::packedpair::Pair::index1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::index2", "Argument[self].Field[memchr::arch::all::packedpair::Pair::index2]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_indices", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Pair::index1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::with_indices", "Argument[2]", "ReturnValue.Field[core::option::Option::Some(0)].Field[memchr::arch::all::packedpair::Pair::index2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::count", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next_back", "Argument[self].Field[memchr::arch::generic::memchr::Iter::end]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next_back", "Argument[self].Field[memchr::arch::generic::memchr::Iter::start]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[memchr::arch::generic::memchr::One::s1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[memchr::arch::generic::memchr::Three::s1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle2", "Argument[self].Field[memchr::arch::generic::memchr::Three::s2]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle3", "Argument[self].Field[memchr::arch::generic::memchr::Three::s3]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle1", "Argument[self].Field[memchr::arch::generic::memchr::Two::s1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::needle2", "Argument[self].Field[memchr::arch::generic::memchr::Two::s2]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::min_haystack_len", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::arch::generic::packedpair::Finder::pair]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::OneIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::One::avx2].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::One::sse2].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::avx2].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Three::sse2].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::TwoIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::avx2].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::sse2].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::avx2].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::avx2::memchr::Two::sse2].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::avx2::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::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"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[memchr::arch::x86_64::avx2::packedpair::Finder::avx2].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::OneIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::One(0)].Field[memchr::arch::generic::memchr::One::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::OneIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::ThreeIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[2]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Three(0)].Field[memchr::arch::generic::memchr::Three::s3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::ThreeIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_raw", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::iter", "Argument[self]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::TwoIter::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[0]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Two(0)].Field[memchr::arch::generic::memchr::Two::s1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new_unchecked", "Argument[1]", "ReturnValue.Field[memchr::arch::x86_64::sse2::memchr::Two(0)].Field[memchr::arch::generic::memchr::Two::s2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self].Field[memchr::arch::x86_64::sse2::memchr::TwoIter::it].Field[memchr::arch::generic::memchr::Iter::start]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::min_haystack_len", "Argument[self].Field[0].Field[memchr::arch::generic::packedpair::Finder::min_haystack_len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::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"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[0].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::pair", "Argument[self].Field[memchr::arch::x86_64::sse2::packedpair::Finder(0)].Field[memchr::arch::generic::packedpair::Finder::pair]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::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"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::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"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr2::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr2::needle2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr3::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr3::needle2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[2]", "ReturnValue.Field[memchr::memchr::Memchr3::needle3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FindIter::haystack]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FindIter::pos]", "ReturnValue.Field[memchr::memmem::FindIter::pos]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FindIter::prestate]", "ReturnValue.Field[memchr::memmem::FindIter::prestate]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::memmem::FindIter::finder]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FindRevIter::haystack]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FindRevIter::pos]", "ReturnValue.Field[memchr::memmem::FindRevIter::pos]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[1]", "ReturnValue.Field[memchr::memmem::FindRevIter::finder]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_iter", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::FindIter::finder].Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::Finder::searcher].Reference", "ReturnValue.Field[memchr::memmem::Finder::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[0]", "Argument[self].Field[memchr::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FinderBuilder::prefilter]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::prefilter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::as_ref", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::into_owned", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rfind_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rfind_iter", "Argument[self].Field[memchr::memmem::FinderRev::searcher].Reference", "ReturnValue.Field[memchr::memmem::FindRevIter::finder].Field[memchr::memmem::FinderRev::searcher]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[1]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[2]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0].Element", "ReturnValue.Field[memchr::memmem::searcher::SearcherRev::kind].Field[memchr::memmem::searcher::SearcherRevKind::OneByte::needle]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::new", "Argument[0]", "ReturnValue.Field[memchr::tests::memchr::Runner::needle_len]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::fwd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::fwd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::rev", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::all_zeros_except_least_significant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::and", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::clear_least_significant_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::or", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::count_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::fwd_byte_by_byte", "Argument[0].Reference", "Argument[2].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::fwd_byte_by_byte", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::arch::generic::memchr::search_slice_with_raw", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr2_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr2::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr2_iter", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr2::needle2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr3::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[1]", "ReturnValue.Field[memchr::memchr::Memchr3::needle2]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr3_iter", "Argument[2]", "ReturnValue.Field[memchr::memchr::Memchr3::needle3]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memchr::memchr_iter", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::find", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::find_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::memmem::rfind_iter", "Argument[0]", "ReturnValue.Field[memchr::memmem::FindRevIter::haystack]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::prefix_is_substring", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::prefix_is_substring", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::same_as_naive", "Argument[1]", "Argument[3].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::same_as_naive", "Argument[2]", "Argument[3].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::suffix_is_substring", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "crate::tests::substring::prop::suffix_is_substring", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_prefilter", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_prefilter", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/BurntSushi/memchr:memchr", "::find_prefilter", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/once_cell.model.yml b/rust/ql/lib/ext/generated/once_cell.model.yml new file mode 100644 index 00000000000..aea0b46936b --- /dev/null +++ b/rust/ql/lib/ext/generated/once_cell.model.yml @@ -0,0 +1,25 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::into_inner", "Argument[self].Field[once_cell::imp::OnceCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-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[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::get_or_try_init", "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"] + - ["::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"] + - ["::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"] + - ["::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-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/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml b/rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml deleted file mode 100644 index aedeac45465..00000000000 --- a/rust/ql/lib/ext/generated/once_cell/repo-https-github.com-matklad-once_cell-once_cell.model.yml +++ /dev/null @@ -1,25 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/matklad/once_cell:once_cell", "::into_inner", "Argument[self].Field[once_cell::imp::OnceCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::into_value", "Argument[0].Field[once_cell::sync::Lazy::init]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::into_value", "Argument[0].Field[once_cell::unsync::Lazy::init]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::into_inner", "Argument[self].Field[once_cell::unsync::OnceCell::inner].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/matklad/once_cell:once_cell", "::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 new file mode 100644 index 00000000000..2425829bce1 --- /dev/null +++ b/rust/ql/lib/ext/generated/rand.model.yml @@ -0,0 +1,87 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::extract_lane", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::replace", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::sample", "Argument[self]", "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"] + - ["::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"] + - ["::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"] + - ["::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_u64", "Argument[self].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"] + - ["::new", "Argument[1]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::reseeder]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_word_pos", "Argument[0]", "Argument[self]", "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"] + - ["::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::set_word_pos", "Argument[0]", "Argument[self]", "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"] + - ["::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"] + - ["::from", "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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128::Lcg128Xsl64::state]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128cm::Lcg128CmDxsm64::state]", "value", "dfc-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"] + - ["rand::seq::index_::sample", "Argument[2]", "ReturnValue", "taint", "df-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"] diff --git a/rust/ql/lib/ext/generated/rand/repo-benches.model.yml b/rust/ql/lib/ext/generated/rand/repo-benches.model.yml deleted file mode 100644 index aef54ca39c7..00000000000 --- a/rust/ql/lib/ext/generated/rand/repo-benches.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::benches", "::next", "Argument[self].Field[seq_choose::UnhintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::benches", "::next", "Argument[self].Field[seq_choose::WindowHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::benches", "::size_hint", "Argument[self].Field[seq_choose::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml deleted file mode 100644 index c7061767df7..00000000000 --- a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand.model.yml +++ /dev/null @@ -1,71 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-random/rand:rand", "<&_ as crate::distr::uniform::SampleBorrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "<_ as crate::distr::uniform::SampleBorrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::any", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::from_ratio", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::from_ratio", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::p", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rand::distr::slice::Choose::slice]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::num_choices", "Argument[self].Field[rand::distr::slice::Choose::num_choices]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::sample", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::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"] - - ["repo:https://github.com/rust-random/rand:rand", "::total_weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::total_weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::update_weights", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::cumulative_weights].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::weight", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndex::total_weight]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::weights", "Argument[self]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::weighted_index]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::clone", "Argument[self].Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "ReturnValue.Field[rand::distr::weighted::weighted_index::WeightedIndexIter::index]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::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"] - - ["repo:https://github.com/rust-random/rand:rand", "::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"] - - ["repo:https://github.com/rust-random/rand:rand", "::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next_u64", "Argument[self].Field[rand::rngs::mock::StepRng::v]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[rand::rngs::mock::StepRng::v]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[rand::rngs::mock::StepRng::a]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::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"] - - ["repo:https://github.com/rust-random/rand:rand", "::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"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[rand::rngs::reseeding::ReseedingCore::reseeder]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[rand::seq::coin_flipper::CoinFlipper::rng]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[0]", "ReturnValue.Field[rand::seq::increasing_uniform::IncreasingUniform::rng]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::new", "Argument[1]", "ReturnValue.Field[rand::seq::increasing_uniform::IncreasingUniform::n]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next_index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::from", "Argument[0]", "ReturnValue.Field[rand::seq::index_::IndexVec::U32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::from", "Argument[0]", "ReturnValue.Field[rand::seq::index_::IndexVec::U64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::len", "Argument[self].Field[rand::seq::index_::IndexVec::U32(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::len", "Argument[self].Field[rand::seq::index_::IndexVec::U64(0)].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_size]", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::size_hint", "Argument[self].Field[rand::seq::iterator::test::ChunkHintedIterator::chunk_remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[rand::seq::iterator::test::UnhintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self].Field[rand::seq::iterator::test::WindowHintedIterator::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::size_hint", "Argument[self].Field[rand::seq::iterator::test::WindowHintedIterator::window_size]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::extract_lane", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::replace", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::cast_from_int", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "::wmul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand", "crate::seq::index_::sample", "Argument[2]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml deleted file mode 100644 index 0763fc5c4a1..00000000000 --- a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_chacha.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_mut", "Argument[self].Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::as_ref", "Argument[self].Field[rand_chacha::chacha::Array64(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha12Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha20Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue.Field[rand_chacha::chacha::ChaCha8Rng::rng].Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::get_word_pos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::set_word_pos", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::diagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::round", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_chacha", "crate::guts::undiagonalize", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml deleted file mode 100644 index 3ec8b3dc024..00000000000 --- a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_core.model.yml +++ /dev/null @@ -1,15 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-random/rand:rand_core", "::re", "Argument[self].Field[0]", "ReturnValue.Field[rand_core::UnwrapMut(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::re", "Argument[self].Field[rand_core::UnwrapMut(0)]", "ReturnValue.Field[rand_core::UnwrapMut(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::next_u32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::generate_and_set", "Argument[0]", "Argument[self].Field[rand_core::block::BlockRng64::index]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::index", "Argument[self].Field[rand_core::block::BlockRng64::index]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::new", "Argument[0]", "ReturnValue.Field[rand_core::block::BlockRng64::core]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::generate_and_set", "Argument[0]", "Argument[self].Field[rand_core::block::BlockRng::index]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::index", "Argument[self].Field[rand_core::block::BlockRng::index]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_core", "::new", "Argument[0]", "ReturnValue.Field[rand_core::block::BlockRng::core]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml b/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml deleted file mode 100644 index f2f0fe4667e..00000000000 --- a/rust/ql/lib/ext/generated/rand/repo-https-github.com-rust-random-rand-rand_pcg.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128::Lcg128Xsl64::state]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg128cm::Lcg128CmDxsm64::state]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-random/rand:rand_pcg", "::new", "Argument[0]", "ReturnValue.Field[rand_pcg::pcg64::Lcg64Xsh32::state]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/reqwest.model.yml b/rust/ql/lib/ext/generated/reqwest.model.yml new file mode 100644 index 00000000000..d262da19765 --- /dev/null +++ b/rust/ql/lib/ext/generated/reqwest.model.yml @@ -0,0 +1,443 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "value", "dfc-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]", "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"] + - ["::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"] + - ["::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::build", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["::build", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connection_verbose", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] + - ["::connection_verbose", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] + - ["::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hickory_dns", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["::hickory_dns", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] + - ["::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] + - ["::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] + - ["::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] + - ["::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_ignore_invalid_headers_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] + - ["::http1_ignore_invalid_headers_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] + - ["::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_adaptive_window", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] + - ["::http2_adaptive_window", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] + - ["::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_keep_alive_while_idle", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] + - ["::http2_keep_alive_while_idle", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] + - ["::http2_keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_congestion_bbr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_conn_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_max_field_section_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_max_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_send_grease", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_send_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_stream_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::https_only", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::https_only]", "value", "dfc-generated"] + - ["::https_only", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::https_only]", "value", "dfc-generated"] + - ["::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::interface", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::pool_max_idle_per_host", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] + - ["::pool_max_idle_per_host", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] + - ["::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::redirect", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] + - ["::redirect", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] + - ["::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::referer", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::referer]", "value", "dfc-generated"] + - ["::referer", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::referer]", "value", "dfc-generated"] + - ["::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive_retries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_nodelay", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "value", "dfc-generated"] + - ["::tcp_nodelay", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "value", "dfc-generated"] + - ["::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_native_certs", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] + - ["::tls_built_in_native_certs", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] + - ["::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_webpki_certs", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] + - ["::tls_built_in_webpki_certs", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] + - ["::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_early_data", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] + - ["::tls_early_data", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] + - ["::tls_early_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_info", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "value", "dfc-generated"] + - ["::tls_info", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "value", "dfc-generated"] + - ["::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_sni", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] + - ["::tls_sni", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] + - ["::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trust_dns", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["::trust_dns", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] + - ["::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new_connection", "Argument[2]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::build", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] + - ["::build_split", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::build_split", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] + - ["::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"] + - ["::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::json", "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"] + - ["::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"] + - ["::text_with_charset", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::url", "Argument[self].Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::interface", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::no_zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_keepalive_retries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::into_reader", "Argument[self]", "ReturnValue.Field[reqwest::blocking::multipart::Reader::form]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::build", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] + - ["::build_split", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["::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"] + - ["::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::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::request]", "value", "dfc-generated"] + - ["::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::send", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::send", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request].Field[core::result::Result::Ok(0)]", "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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::config::RequestConfig(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"] + - ["::from_built_default_tls", "Argument[2]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["::from_built_default_tls", "Argument[3]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] + - ["::from_built_default_tls", "Argument[6]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["::from_built_default_tls", "Argument[7]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["::new_default_tls", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["::new_default_tls", "Argument[3]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] + - ["::new_default_tls", "Argument[6]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] + - ["::new_default_tls", "Argument[7]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] + - ["::new_rustls_tls", "Argument[0]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::RustlsTls::http]", "value", "dfc-generated"] + - ["::new_rustls_tls", "Argument[2]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DnsResolverWithOverrides::dns_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"] + - ["::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"] + - ["::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::custom_http_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::into_matcher", "Argument[self].Field[reqwest::proxy::Proxy::extra]", "ReturnValue.Field[reqwest::proxy::Matcher::extra]", "value", "dfc-generated"] + - ["::into_matcher", "Argument[self].Field[reqwest::proxy::Proxy::intercept].Field[reqwest::proxy::Intercept::Custom(0)]", "ReturnValue.Field[reqwest::proxy::Matcher::inner].Field[reqwest::proxy::Matcher_::Custom(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::limited", "Argument[0]", "ReturnValue.Field[reqwest::redirect::Policy::inner].Field[reqwest::redirect::PolicyKind::Limit(0)]", "value", "dfc-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"] + - ["::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[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["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::error::cast_to_internal_error", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::delete", "Argument[0]", "transmission", "df-generated"] + - ["::get", "Argument[0]", "transmission", "df-generated"] + - ["::head", "Argument[0]", "transmission", "df-generated"] + - ["::patch", "Argument[0]", "transmission", "df-generated"] + - ["::post", "Argument[0]", "transmission", "df-generated"] + - ["::put", "Argument[0]", "transmission", "df-generated"] + - ["::into_stream", "Argument[self]", "log-injection", "df-generated"] + - ["::stream", "Argument[self]", "log-injection", "df-generated"] + - ["::multipart", "Argument[0]", "log-injection", "df-generated"] + - ["::delete", "Argument[0]", "transmission", "df-generated"] + - ["::get", "Argument[0]", "transmission", "df-generated"] + - ["::head", "Argument[0]", "transmission", "df-generated"] + - ["::patch", "Argument[0]", "transmission", "df-generated"] + - ["::post", "Argument[0]", "transmission", "df-generated"] + - ["::put", "Argument[0]", "transmission", "df-generated"] + - ["::into_reader", "Argument[self]", "log-injection", "df-generated"] + - ["::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"] + - ["::call", "Argument[0]", "log-injection", "df-generated"] + - ["::new", "Argument[1]", "pointer-access", "df-generated"] + - ["reqwest::blocking::get", "Argument[0]", "transmission", "df-generated"] + - ["reqwest::blocking::wait::timeout", "Argument[1]", "pointer-access", "df-generated"] + - ["reqwest::get", "Argument[0]", "transmission", "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/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml b/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml deleted file mode 100644 index ee4af61e5c3..00000000000 --- a/rust/ql/lib/ext/generated/reqwest/repo-https-github.com-seanmonstar-reqwest-reqwest.model.yml +++ /dev/null @@ -1,488 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "<&str as crate::into_url::IntoUrlSealed>::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_url", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_stream", "Argument[self]", "ReturnValue.Field[reqwest::async_impl::body::DataStream(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::reusable", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::Body::inner].Field[reqwest::async_impl::body::Inner::Reusable(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_reuse", "Argument[self]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::sleep]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::request", "Argument[self].Reference", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::connection_verbose]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_obsolete_multiline_headers_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_allow_spaces_after_header_name_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http1_ignore_invalid_headers_in_responses]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_adaptive_window]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::http2_keep_alive_while_idle]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_keep_alive_while_idle", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_congestion_bbr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_conn_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_max_field_section_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_max_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_send_grease", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_send_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_stream_receive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::https_only]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::https_only]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::interface", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::pool_max_idle_per_host]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::redirect_policy]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::referer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::referer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive_retries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_native]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_built_in_certs_webpki]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_enable_early_data]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_early_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::tls_sni]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[0]", "Argument[self].Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::client::ClientBuilder::config].Field[reqwest::async_impl::client::Config::hickory_dns]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[self].Field[reqwest::async_impl::client::HyperService::cookie_store].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[self].Field[reqwest::async_impl::client::HyperService::cookie_store]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::async_impl::client::Pending::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::detect", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::decoder::Decoder::inner].Field[reqwest::async_impl::decoder::Inner::PlainText(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_stream", "Argument[self]", "ReturnValue.Field[reqwest::async_impl::decoder::IoStream(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::H3Client::connector]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[2]", "ReturnValue.Field[reqwest::async_impl::h3_client::H3Client::cookie_store]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::async_impl::h3_client::connect::H3Connector::resolver]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[4]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::async_impl::h3_client::connect::H3Connector::client_config]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_connection", "Argument[2]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolClient::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolConnection::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::h3_client::pool::PoolConnection::close_rx]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool", "Argument[self].Field[reqwest::async_impl::h3_client::pool::PoolConnection::client].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::boundary", "Argument[self].Field[reqwest::async_impl::multipart::Form::inner].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::boundary", "Argument[self].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::part", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_attr_chars", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_noop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::percent_encode_path_segment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::metadata", "Argument[self].Field[reqwest::async_impl::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::value_len", "Argument[self].Field[reqwest::async_impl::multipart::Part::body_length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::stream_with_length", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::multipart::Part::body_length].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fmt_fields", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[0]", "Argument[self].Field[reqwest::async_impl::multipart::PartMetadata::mime].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::multipart::PartMetadata::mime].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::mime", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body_mut", "Argument[self].Field[reqwest::async_impl::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::extensions", "Argument[self].Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::extensions_mut", "Argument[self].Field[reqwest::async_impl::request::Request::extensions]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers_mut", "Argument[self].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method", "Argument[self].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method_mut", "Argument[self].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pieces", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url_mut", "Argument[self].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self].Field[reqwest::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version_mut", "Argument[self].Field[reqwest::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[reqwest::async_impl::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fetch_mode_no_cors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_parts", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::request::RequestBuilder::request]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status_ref", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::response::Response::url].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text_with_charset", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundProcessor::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[connect_via_lower_priority_tokio_runtime::background_threadpool::BackgroundResponseFuture::rx]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Bytes(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_async", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(1)]", "ReturnValue.Field[2]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::len", "Argument[self].Field[reqwest::blocking::body::Body::kind].Field[reqwest::blocking::body::Kind::Reader(1)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::sized", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::request", "Argument[self].Reference", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from", "Argument[0]", "ReturnValue.Field[reqwest::blocking::client::ClientBuilder::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crl", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_crls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::add_root_certificate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connect_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connection_verbose", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::connector_layer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_provider", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::cookie_store", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::danger_accept_invalid_hostnames", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::default_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::dns_resolver", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_obsolete_multiline_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_allow_spaces_after_header_name_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_ignore_invalid_headers_in_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http1_title_case_headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_connection_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_initial_stream_window_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_frame_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_max_header_list_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http2_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::http3_prior_knowledge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::interface", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::local_address", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::max_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::min_tls_version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_brotli", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_deflate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_gzip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_hickory_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_idle_timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::pool_max_idle_per_host", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::redirect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve_to_addrs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_keepalive_retries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tcp_nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_native_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_root_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_built_in_webpki_certs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_info", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::tls_sni", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::trust_dns", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_native_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_preconfigured_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::use_rustls_tls", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::user_agent", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::zstd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::boundary", "Argument[self].Field[reqwest::blocking::multipart::Form::inner].Field[reqwest::async_impl::multipart::FormParts::boundary]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_reader", "Argument[self]", "ReturnValue.Field[reqwest::blocking::multipart::Reader::form]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::reader", "Argument[self]", "ReturnValue.Field[reqwest::blocking::multipart::Reader::form]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::metadata", "Argument[self].Field[reqwest::blocking::multipart::Part::meta]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file_name", "Argument[self].Field[reqwest::blocking::multipart::Part::value]", "ReturnValue.Field[reqwest::blocking::multipart::Part::value]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[reqwest::blocking::multipart::Part::value]", "ReturnValue.Field[reqwest::blocking::multipart::Part::value]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body_mut", "Argument[self].Field[reqwest::blocking::request::Request::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_async", "Argument[self].Field[reqwest::blocking::request::Request::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::method_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::method]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::version]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version_mut", "Argument[self].Field[reqwest::blocking::request::Request::inner].Field[reqwest::async_impl::request::Request::version]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bearer_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::client]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build_split", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::form", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_parts", "Argument[0]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::multipart", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::client]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::request::RequestBuilder::request]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::query", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::send", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::send", "Argument[self].Field[reqwest::blocking::request::RequestBuilder::request].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::timeout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::try_clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::version", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status_ref", "Argument[self].Field[reqwest::blocking::response::Response::inner]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::error_for_status_ref", "Argument[self].Field[reqwest::blocking::response::Response::inner]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::blocking::response::Response::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::blocking::response::Response::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[2]", "ReturnValue.Field[reqwest::blocking::response::Response::_thread_handle]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[reqwest::blocking::response::Response::inner].Field[reqwest::async_impl::response::Response::url]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fetch", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::config::RequestConfig(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[0]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::DefaultTls(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[1]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::DefaultTls(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[2]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[3]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[6]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_built_default_tls", "Argument[7]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[3]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[6]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_default_tls", "Argument[7]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[0]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::inner].Field[reqwest::connect::Inner::RustlsTls::http]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[2]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::proxies]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[3]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::user_agent]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[6]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new_rustls_tls", "Argument[7]", "ReturnValue.Field[reqwest::connect::ConnectorBuilder::tls_info]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_socks_resolver", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::resolver].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_timeout", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_verbose", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::verbose].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::set_verbose", "Argument[0]", "Argument[self].Field[reqwest::connect::ConnectorBuilder::verbose].Field[reqwest::connect::verbose::Wrapper(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::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"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::is_proxy]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::tls_info]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::is_proxy]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[reqwest::connect::sealed::Conn::tls_info]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::wrap", "Argument[0]", "ReturnValue.Reference.Field[reqwest::connect::verbose::Verbose::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::wrap", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self].Field[0].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self].Field[reqwest::dns::gai::GaiResolver(0)].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::resolve", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::source", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::source", "Argument[self].Field[reqwest::dns::hickory::HickoryDnsSystemConfError(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DnsResolverWithOverrides::dns_resolver]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DynResolver::resolver]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::without_url", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::intercept", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::maybe_has_http_auth", "Argument[self].Field[reqwest::proxy::Matcher::maybe_has_http_auth]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::maybe_has_http_custom_headers", "Argument[self].Field[reqwest::proxy::Matcher::maybe_has_http_custom_headers]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::basic_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::custom_http_auth", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::headers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_matcher", "Argument[self].Field[reqwest::proxy::Proxy::extra]", "ReturnValue.Field[reqwest::proxy::Matcher::extra]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_matcher", "Argument[self].Field[reqwest::proxy::Proxy::intercept].Field[reqwest::proxy::Intercept::Custom(0)]", "ReturnValue.Field[reqwest::proxy::Matcher::inner].Field[reqwest::proxy::Matcher_::Custom(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[0]", "Argument[self].Field[reqwest::proxy::Proxy::no_proxy]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[0]", "ReturnValue.Field[reqwest::proxy::Proxy::no_proxy]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::no_proxy", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::previous", "Argument[self].Field[reqwest::redirect::Attempt::previous]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::status", "Argument[self].Field[reqwest::redirect::Attempt::status]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::url", "Argument[self].Field[reqwest::redirect::Attempt::next]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::custom", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::limited", "Argument[0]", "ReturnValue.Field[reqwest::redirect::Policy::inner].Field[reqwest::redirect::PolicyKind::Limit(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_https_only", "Argument[0]", "Argument[self].Field[reqwest::redirect::TowerRedirectPolicy::https_only]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_https_only", "Argument[0]", "ReturnValue.Field[reqwest::redirect::TowerRedirectPolicy::https_only]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_https_only", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_referer", "Argument[0]", "Argument[self].Field[reqwest::redirect::TowerRedirectPolicy::referer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_referer", "Argument[0]", "ReturnValue.Field[reqwest::redirect::TowerRedirectPolicy::referer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_referer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[blocking::support::delay_layer::Delay::inner].Field[brotli::support::delay_layer::Delay::inner].Field[cookie::support::delay_layer::Delay::inner].Field[deflate::support::delay_layer::Delay::inner].Field[gzip::support::delay_layer::Delay::inner].Field[http3::support::delay_layer::Delay::inner].Field[multipart::support::delay_layer::Delay::inner].Field[zstd::support::delay_layer::Delay::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[blocking::support::delay_layer::Delay::delay].Field[brotli::support::delay_layer::Delay::delay].Field[cookie::support::delay_layer::Delay::delay].Field[deflate::support::delay_layer::Delay::delay].Field[gzip::support::delay_layer::Delay::delay].Field[http3::support::delay_layer::Delay::delay].Field[multipart::support::delay_layer::Delay::delay].Field[zstd::support::delay_layer::Delay::delay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[0]", "ReturnValue.Field[blocking::support::delay_layer::Delay::inner].Field[brotli::support::delay_layer::Delay::inner].Field[cookie::support::delay_layer::Delay::inner].Field[deflate::support::delay_layer::Delay::inner].Field[gzip::support::delay_layer::Delay::inner].Field[http3::support::delay_layer::Delay::inner].Field[multipart::support::delay_layer::Delay::inner].Field[zstd::support::delay_layer::Delay::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::layer", "Argument[self].Field[blocking::support::delay_layer::DelayLayer::delay].Field[brotli::support::delay_layer::DelayLayer::delay].Field[cookie::support::delay_layer::DelayLayer::delay].Field[deflate::support::delay_layer::DelayLayer::delay].Field[gzip::support::delay_layer::DelayLayer::delay].Field[http3::support::delay_layer::DelayLayer::delay].Field[multipart::support::delay_layer::DelayLayer::delay].Field[zstd::support::delay_layer::DelayLayer::delay]", "ReturnValue.Field[blocking::support::delay_layer::Delay::delay].Field[brotli::support::delay_layer::Delay::delay].Field[cookie::support::delay_layer::Delay::delay].Field[deflate::support::delay_layer::Delay::delay].Field[gzip::support::delay_layer::Delay::delay].Field[http3::support::delay_layer::Delay::delay].Field[multipart::support::delay_layer::Delay::delay].Field[zstd::support::delay_layer::Delay::delay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[blocking::support::delay_layer::DelayLayer::delay].Field[brotli::support::delay_layer::DelayLayer::delay].Field[cookie::support::delay_layer::DelayLayer::delay].Field[deflate::support::delay_layer::DelayLayer::delay].Field[gzip::support::delay_layer::DelayLayer::delay].Field[http3::support::delay_layer::DelayLayer::delay].Field[multipart::support::delay_layer::DelayLayer::delay].Field[zstd::support::delay_layer::DelayLayer::delay]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[blocking::support::delay_layer::ResponseFuture::response].Field[brotli::support::delay_layer::ResponseFuture::response].Field[cookie::support::delay_layer::ResponseFuture::response].Field[deflate::support::delay_layer::ResponseFuture::response].Field[gzip::support::delay_layer::ResponseFuture::response].Field[http3::support::delay_layer::ResponseFuture::response].Field[multipart::support::delay_layer::ResponseFuture::response].Field[zstd::support::delay_layer::ResponseFuture::response]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[blocking::support::delay_layer::ResponseFuture::sleep].Field[brotli::support::delay_layer::ResponseFuture::sleep].Field[cookie::support::delay_layer::ResponseFuture::sleep].Field[deflate::support::delay_layer::ResponseFuture::sleep].Field[gzip::support::delay_layer::ResponseFuture::sleep].Field[http3::support::delay_layer::ResponseFuture::sleep].Field[multipart::support::delay_layer::ResponseFuture::sleep].Field[zstd::support::delay_layer::ResponseFuture::sleep]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[blocking::support::delay_layer::ResponseFuture::response].Field[brotli::support::delay_layer::ResponseFuture::response].Field[cookie::support::delay_layer::ResponseFuture::response].Field[deflate::support::delay_layer::ResponseFuture::response].Field[gzip::support::delay_layer::ResponseFuture::response].Field[http3::support::delay_layer::ResponseFuture::response].Field[multipart::support::delay_layer::ResponseFuture::response].Field[zstd::support::delay_layer::ResponseFuture::response]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[blocking::support::delay_layer::ResponseFuture::sleep].Field[brotli::support::delay_layer::ResponseFuture::sleep].Field[cookie::support::delay_layer::ResponseFuture::sleep].Field[deflate::support::delay_layer::ResponseFuture::sleep].Field[gzip::support::delay_layer::ResponseFuture::sleep].Field[http3::support::delay_layer::ResponseFuture::sleep].Field[multipart::support::delay_layer::ResponseFuture::sleep].Field[zstd::support::delay_layer::ResponseFuture::sleep]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[blocking::support::delay_layer::ResponseFuture::response].Field[brotli::support::delay_layer::ResponseFuture::response].Field[cookie::support::delay_layer::ResponseFuture::response].Field[deflate::support::delay_layer::ResponseFuture::response].Field[gzip::support::delay_layer::ResponseFuture::response].Field[http3::support::delay_layer::ResponseFuture::response].Field[multipart::support::delay_layer::ResponseFuture::response].Field[zstd::support::delay_layer::ResponseFuture::response]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[blocking::support::delay_layer::ResponseFuture::sleep].Field[brotli::support::delay_layer::ResponseFuture::sleep].Field[cookie::support::delay_layer::ResponseFuture::sleep].Field[deflate::support::delay_layer::ResponseFuture::sleep].Field[gzip::support::delay_layer::ResponseFuture::sleep].Field[http3::support::delay_layer::ResponseFuture::sleep].Field[multipart::support::delay_layer::ResponseFuture::sleep].Field[zstd::support::delay_layer::ResponseFuture::sleep]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::addr", "Argument[self].Field[blocking::support::delay_server::Server::addr].Field[brotli::support::delay_server::Server::addr].Field[cookie::support::delay_server::Server::addr].Field[deflate::support::delay_server::Server::addr].Field[gzip::support::delay_server::Server::addr].Field[http3::support::delay_server::Server::addr].Field[multipart::support::delay_server::Server::addr].Field[zstd::support::delay_server::Server::addr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[0]", "Argument[self].Field[blocking::support::server::Http3::addr].Field[brotli::support::server::Http3::addr].Field[cookie::support::server::Http3::addr].Field[deflate::support::server::Http3::addr].Field[gzip::support::server::Http3::addr].Field[http3::support::server::Http3::addr].Field[multipart::support::server::Http3::addr].Field[zstd::support::server::Http3::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[0]", "ReturnValue.Field[blocking::support::server::Http3::addr].Field[brotli::support::server::Http3::addr].Field[cookie::support::server::Http3::addr].Field[deflate::support::server::Http3::addr].Field[gzip::support::server::Http3::addr].Field[http3::support::server::Http3::addr].Field[multipart::support::server::Http3::addr].Field[zstd::support::server::Http3::addr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::with_addr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::addr", "Argument[self].Field[blocking::support::server::Server::addr].Field[brotli::support::server::Server::addr].Field[cookie::support::server::Server::addr].Field[deflate::support::server::Server::addr].Field[gzip::support::server::Server::addr].Field[http3::support::server::Server::addr].Field[multipart::support::server::Server::addr].Field[zstd::support::server::Server::addr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::as_rustls_crl", "Argument[self].Field[reqwest::tls::CertificateRevocationList::inner].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::clone", "Argument[self].Field[reqwest::tls::ClientCert::Pem::certs].Reference", "ReturnValue.Field[reqwest::tls::ClientCert::Pem::certs]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::tls::IgnoreHostname::roots]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "ReturnValue.Field[reqwest::tls::IgnoreHostname::signature_algorithms]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::peer_certificate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[0]", "ReturnValue.Field[reqwest::util::Escape(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::total_timeout", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::TotalTimeoutBody::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::total_timeout", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::body::TotalTimeoutBody::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::with_read_timeout", "Argument[0]", "ReturnValue.Field[reqwest::async_impl::body::ReadTimeoutBody::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::async_impl::body::with_read_timeout", "Argument[1]", "ReturnValue.Field[reqwest::async_impl::body::ReadTimeoutBody::timeout]", "value", "dfc-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::error::cast_to_internal_error", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_stream", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::stream", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::multipart", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::delete", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::execute", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::get", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::head", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::patch", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::post", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::put", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::into_reader", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::reader", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::multipart", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::send", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::read", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::bytes", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::json", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::text_with_charset", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::call", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::new", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::blocking::get", "Argument[0]", "transmission", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::blocking::wait::timeout", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "crate::get", "Argument[0]", "transmission", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::file", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/seanmonstar/reqwest:reqwest", "::from_env", "ReturnValue", "environment", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket.model.yml b/rust/ql/lib/ext/generated/rocket.model.yml new file mode 100644 index 00000000000..6f6a60edd8d --- /dev/null +++ b/rust/ql/lib/ext/generated/rocket.model.yml @@ -0,0 +1,898 @@ +# 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_request", "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_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"] + - ["::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]", "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"] + - ["::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", "df-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", "df-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].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"] + - ["::set_streamed_body", "Argument[0]", "Argument[self]", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::next", "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"] + - ["::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"] + - ["::query", "Argument[self]", "pointer-access", "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"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-cookies.model.yml b/rust/ql/lib/ext/generated/rocket/repo-cookies.model.yml deleted file mode 100644 index 42653daa4cc..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-cookies.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::cookies", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-fairings.model.yml b/rust/ql/lib/ext/generated/rocket/repo-fairings.model.yml deleted file mode 100644 index 8efd6aecaa0..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-fairings.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::fairings", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::fairings", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::fairings", "::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::fairings", "::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml deleted file mode 100644 index 72ea2d607b5..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket.model.yml +++ /dev/null @@ -1,659 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&[u8] as crate::data::from_data::FromData>::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&[u8] as crate::data::from_data::FromData>::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&[u8] as crate::form::from_form_field::FromFormField>::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::config::config::Config as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::config::secret_key::SecretKey as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::cookies::CookieJar as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::data::limits::Limits as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::header::accept::Accept as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::header::content_type::ContentType as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::raw_str::RawStr as crate::data::from_data::FromData>::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::raw_str::RawStr as crate::data::from_data::FromData>::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::route::route::Route as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::state::State as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::uri::host::Host as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&crate::uri::origin::Origin as crate::request::from_request::FromRequest>::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&str as crate::data::from_data::FromData>::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&str as crate::data::from_data::FromData>::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&str as crate::form::from_form_field::FromFormField>::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<&str as crate::request::from_param::FromParam>::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Cloneable>::clone_handler", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[1]", "Argument[self].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::catcher::handler::Handler>::handle", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::ext::StreamExt>::join", "Argument[0]", "ReturnValue.Field[rocket::ext::Join::b]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::ext::StreamExt>::join", "Argument[self]", "ReturnValue.Field[rocket::ext::Join::a]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form_field::FromFieldContext::opts]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::push_value", "Argument[1].Field[rocket::form::field::ValueField::name]", "Argument[0].Field[rocket::form::from_form_field::FromFieldContext::field_name].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::form::from_form::FromForm>::push_value", "Argument[1].Field[rocket::form::field::ValueField::value]", "Argument[0].Field[rocket::form::from_form_field::FromFieldContext::field_value].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Cloneable>::clone_handler", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[0]", "Argument[self].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[1]", "Argument[self].Parameter[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "<_ as crate::route::handler::Handler>::handle", "Argument[self].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[0]", "ReturnValue.Field[rocket::fairing::info_kind::Info::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[recursive-singleton-fairing::Singleton(0)]", "ReturnValue.Field[rocket::fairing::info_kind::Info::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[rocket::catcher::catcher::StaticInfo::handler]", "ReturnValue.Field[rocket::catcher::catcher::Catcher::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self].Field[rocket::catcher::catcher::Catcher::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::catcher::catcher::Catcher::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[rocket::form::from_form::MapContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::MapContext::opts]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[rocket::form::from_form::MapContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::MapContext::opts]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::profile", "Argument[self].Field[rocket::config::config::Config::profile].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ca_certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[0]", "Argument[self].Field[rocket::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[0]", "ReturnValue.Field[rocket::config::tls::MutualTls::mandatory]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::mandatory", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::certs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::key", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::prefer_server_cipher_order", "Argument[self].Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_ciphers", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[0]", "Argument[self].Field[rocket::config::tls::TlsConfig::mutual].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[0]", "ReturnValue.Field[rocket::config::tls::TlsConfig::mutual].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_mutual", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[0]", "Argument[self].Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[0]", "ReturnValue.Field[rocket::config::tls::TlsConfig::prefer_server_cipher_order]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_preferred_server_cipher_order", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[rocket::cookies::CookieJar::config]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[rocket::cookies::CookieJar::jar].Reference", "ReturnValue.Field[rocket::cookies::CookieJar::jar]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::cookies::CookieJar::jar]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[1]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::cookies::CookieJar::config]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::complete", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::data::capped::Capped::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::is_complete", "Argument[self].Field[rocket::data::capped::Capped::n].Field[rocket::data::capped::N::complete]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[rocket::data::capped::Capped::n]", "ReturnValue.Field[rocket::data::capped::Capped::n]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[rocket::data::capped::Capped::value]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::data::capped::Capped::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::data::capped::Capped::n]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::data::capped::N::written]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::local", "Argument[0]", "ReturnValue.Field[rocket::data::data::Data::buffer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::peek", "Argument[self].Field[rocket::data::data::Data::buffer].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::peek_complete", "Argument[self].Field[rocket::data::data::Data::is_complete]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::data::data_stream::StreamReader::inner].Field[rocket::data::data_stream::StreamKind::Body(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::data::data_stream::StreamReader::inner].Field[rocket::data::data_stream::StreamKind::Multipart(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::data::io_stream::IoStream::kind].Field[rocket::data::io_stream::IoStreamKind::Upgraded(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::limit", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::kind", "Argument[self].Field[rocket::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::shutdown", "Argument[0]", "ReturnValue.Field[rocket::error::Error::kind].Field[rocket::error::ErrorKind::Shutdown(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::ext::CancellableIo::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[rocket::ext::CancellableIo::grace]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[3]", "ReturnValue.Field[rocket::ext::CancellableIo::mercy]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::ext::CancellableListener::trigger]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::ext::CancellableListener::listener]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[rocket::ext::CancellableListener::grace].Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[3]", "ReturnValue.Field[rocket::ext::CancellableListener::mercy].Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::get_ref", "Argument[self].Field[rocket::ext::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::get_ref", "Argument[self].Field[rocket::ext::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::ext::Chain::first]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::ext::Chain::second]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::ext::Join::a]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::ext::Join::b]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::cap]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::cap]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[rocket::ext::ReaderStream::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::info", "Argument[self].Field[rocket::fairing::ad_hoc::AdHoc::name]", "ReturnValue.Field[rocket::fairing::info_kind::Info::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::try_on_ignite", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::audit", "Argument[self].Field[rocket::fairing::fairings::Fairings::failures]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle_ignite", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[rocket::form::context::Context::status]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket::form::context::Contextual::context]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::error::Error::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_entity", "Argument[0]", "Argument[self].Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[rocket::form::error::Error::kind].Field[rocket::form::error::ErrorKind::Custom(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[0]", "Argument[self].Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[0]", "ReturnValue.Field[rocket::form::error::Error::entity]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_entity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::InvalidLength::min]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::OutOfRange::start]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::InvalidLength::max]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::error::ErrorKind::OutOfRange::end]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::error::ErrorKind::Custom(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::error::Errors(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::form::error::Errors(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::field::ValueField::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue.Field[rocket::form::field::ValueField::value]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::form::Form(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::form::form::Form(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::lenient::Lenient(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::form::lenient::Lenient(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[0]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[1]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::right]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::name::buf::NameBuf::left]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::name::key::Key(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[rocket::form::name::name::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::borrow", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_name", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::parent", "Argument[self].Field[rocket::form::name::view::NameView::name].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self].Field[rocket::form::name::view::NameView::end]", "Argument[self].Reference.Field[rocket::form::name::view::NameView::start]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::shift", "Argument[self].Field[rocket::form::name::view::NameView::name]", "Argument[self].Reference.Field[rocket::form::name::view::NameView::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::source", "Argument[self].Field[rocket::form::name::view::NameView::name]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::next", "Argument[self].Field[rocket::form::parser::RawStrParser::source].Element", "Argument[self].Field[rocket::form::parser::RawStrParser::source].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::form::parser::RawStrParser::buffer]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::form::parser::RawStrParser::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::form::strict::Strict(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::form::strict::Strict(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::file", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::file", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::file_mut", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::file_mut", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::take_file", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::take_file", "Argument[self].Field[rocket::fs::named_file::NamedFile(1)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue.Field[rocket::fs::server::FileServer::options]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[0]", "Argument[self].Field[rocket::fs::server::FileServer::rank]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[0]", "ReturnValue.Field[rocket::fs::server::FileServer::rank]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::rank", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[rocket::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[rocket::fs::temp_file::TempFile::File::len].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::path", "Argument[self].Field[rocket::fs::temp_file::TempFile::File::path].Field[either::Either::Right(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_name", "Argument[self].Reference.Field[rocket::fs::temp_file::TempFile::File::file_name]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket::local::asynchronous::client::Client::tracked]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_rocket", "Argument[self].Field[rocket::local::asynchronous::client::Client::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_body_mut", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_request", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_request_mut", "Argument[self].Field[rocket::local::asynchronous::request::LocalRequest::request]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::local::asynchronous::request::LocalRequest::client]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_cookies", "Argument[self].Field[rocket::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_response", "Argument[self].Field[rocket::local::asynchronous::response::LocalResponse::response]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_test", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_with_raw_cookies", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[rocket::local::blocking::client::Client::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::identity", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::local::blocking::request::LocalRequest::client]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::private_cookie", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::_cookies", "Argument[self].Field[rocket::local::blocking::response::LocalResponse::inner].Field[rocket::local::asynchronous::response::LocalResponse::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::and_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_mut", "Argument[self].Reference.Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_ref", "Argument[self].Reference.Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::error_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::expect", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::failed", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::forward_then", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::forwarded", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::log_display", "Argument[self]", "ReturnValue.Field[rocket::outcome::Display(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_error", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[0].ReturnValue", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_forward", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_error", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Error(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Forward(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ok_map_forward", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::pin", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::succeeded", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::success_or_else", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::unwrap", "Argument[self].Field[rocket::outcome::Outcome::Success(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Build(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Build(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Ignite(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Ignite(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_state_ref", "Argument[self]", "ReturnValue.Field[rocket::phase::StateRef::Orbit(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_state", "Argument[self]", "ReturnValue.Field[rocket::phase::State::Orbit(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::client_ip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::cookies_mut", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::cookies]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::headers", "Argument[self].Field[rocket::request::request::Request::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::rocket]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[rocket::request::request::Request::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::remote", "Argument[self].Field[rocket::request::request::Request::connection].Field[rocket::request::request::ConnectionMeta::remote]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::rocket", "Argument[self].Field[rocket::request::request::Request::state].Field[rocket::request::request::RequestState::rocket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::routed_segments", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_uri", "Argument[0]", "Argument[self].Field[rocket::request::request::Request::uri]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::uri", "Argument[self].Field[rocket::request::request::Request::uri]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::max_chunk_size", "Argument[self].Field[rocket::response::body::Body::max_chunk]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::preset_size", "Argument[self].Field[rocket::response::body::Body::size]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_max_chunk_size", "Argument[0]", "Argument[self].Field[rocket::response::body::Body::max_chunk]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::to_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_sized", "Argument[1]", "ReturnValue.Field[rocket::response::body::Body::size]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_unsized", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::debug::Debug(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::error", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::response::flash::Flash::kind]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::response::flash::Flash::message]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::kind", "Argument[self].Field[rocket::response::flash::Flash::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::message", "Argument[self].Field[rocket::response::flash::Flash::message]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::success", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::warning", "Argument[0]", "ReturnValue.Field[rocket::response::flash::Flash::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::max_chunk_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::response::response::Builder::response]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_header", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::raw_header_adjoin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::sized_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::streamed_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::upgrade", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self].Field[rocket::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::body_mut", "Argument[self].Field[rocket::response::response::Response::body]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::build_from", "Argument[0]", "ReturnValue.Field[rocket::response::response::Builder::response]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::headers", "Argument[self].Field[rocket::response::response::Response::headers]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[0].Field[rocket::response::response::Response::body]", "Argument[self].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::join", "Argument[0].Field[rocket::response::response::Response::status]", "Argument[self].Field[rocket::response::response::Response::status]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::merge", "Argument[0].Field[rocket::response::response::Response::body]", "Argument[self].Field[rocket::response::response::Response::body]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::set_status", "Argument[0]", "Argument[self].Field[rocket::response::response::Response::status].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::status", "Argument[self].Field[rocket::response::response::Response::status].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::tagged_body", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::bytes::ByteStream(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::one::One(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::reader::ReaderStream::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::event", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::id", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::retry", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_comment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_data", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[0]", "Argument[self].Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::Event::retry].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::with_retry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::sse::EventStream::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::heartbeat", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::response::stream::text::TextStream(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::contains", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_error", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0].Field[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0].Field[1]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[0]", "ReturnValue.Field[rocket::outcome::Outcome::Forward(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::or_forward", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[rocket::outcome::Outcome::Success(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::rkt::Rocket(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::rkt::Rocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::attach", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::configure", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::default_tcp_http_server", "Argument[self]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::manage", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::mount", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::register", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self].Field[rocket::route::route::Route::uri].Field[rocket::route::uri::RouteUri::base]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::map_base", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[0]", "ReturnValue.Field[rocket::route::route::Route::method]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::new", "Argument[2]", "ReturnValue.Field[rocket::route::route::Route::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ranked", "Argument[1]", "ReturnValue.Field[rocket::route::route::Route::method]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::ranked", "Argument[3]", "ReturnValue.Field[rocket::route::route::Route::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::route::uri::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::as_str", "Argument[self].Field[rocket::route::uri::RouteUri::source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::default_rank", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::serde::json::Json(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_uri_param", "Argument[0]", "ReturnValue.Field[rocket::serde::json::Json(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::serde::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "ReturnValue.Field[rocket::serde::msgpack::MsgPack(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref_mut", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_inner", "Argument[self].Field[rocket::serde::msgpack::MsgPack(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::allow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::block", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::disable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::enable", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::inner", "Argument[self].Field[rocket::state::State(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::respond_to", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_request", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_response", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[rocket::trip_wire::TripWire::state].Reference", "ReturnValue.Field[rocket::trip_wire::TripWire::state]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::clone", "Argument[self].Field[rocket::trip_wire::TripWire::state]", "ReturnValue.Field[rocket::trip_wire::TripWire::state]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::deref", "Argument[self].Field[rocket::trip_wire::TripWire::state]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_segments", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[rocket::form::from_form::VecContext::errors]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::finalize", "Argument[0].Field[rocket::form::from_form::VecContext::items]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::init", "Argument[0]", "ReturnValue.Field[rocket::form::from_form::VecContext::opts]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::push_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::len_into_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_value", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::form::validate::try_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::form::validate::with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "crate::prepend", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket", "::signal_stream", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::limit", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::add", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::append", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::from", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::log", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::expect", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::client_ip", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::respond_to", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::dispatch", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::handle_error", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::matches", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::respond_to", "Argument[self]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket", "::open", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket", "::open", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml deleted file mode 100644 index cb2474f1381..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_codegen.model.yml +++ /dev/null @@ -1,74 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::with_span", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from_data", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from_data", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::attribute::param::Dynamic::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::Parameter::Static(0)].Field[rocket_codegen::name::Name::span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::attribute::param::Guard::source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::fn_ident]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[2]", "ReturnValue.Field[rocket_codegen::attribute::param::Guard::ty]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::dynamic", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::dynamic_mut", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::guard", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Guard(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::ignored", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Ignored(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::parse", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::static", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Static(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::take_dynamic", "Argument[self].Field[rocket_codegen::attribute::param::Parameter::Dynamic(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::segment]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[2]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[0]", "Argument[self].Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[0]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[1]", "Argument[self].Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[1]", "ReturnValue.Field[rocket_codegen::attribute::param::parse::Error::source_span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::source", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::route::parse::Route::attr]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::route::parse::Route::handler]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::upgrade_dynamic", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[rocket_codegen::attribute::param::Guard::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::upgrade_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::attribute::route::parse::RouteUri::origin]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_expr", "Argument[self].Field[rocket_codegen::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::unwrap_expr", "Argument[self].Field[rocket_codegen::bang::uri_parsing::ArgExpr::Expr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::bang::uri_parsing::UriLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::derive::form_field::FieldName::Cased(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::derive::form_field::FieldName::Uncased(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::respanned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from_meta", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_ref", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::as_str", "Argument[self].Field[rocket_codegen::name::Name::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::new", "Argument[1]", "ReturnValue.Field[rocket_codegen::name::Name::span]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::span", "Argument[self].Field[rocket_codegen::name::Name::span]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "ReturnValue.Field[rocket_codegen::proc_macro_ext::Diagnostics(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::head_err_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::proc_macro_ext::StringLit(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::deref", "Argument[self].Field[rocket_codegen::syn_ext::Child::ty]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::ty", "Argument[self].Field[syn::ty::ReturnType::Type(1)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "crate::derive::form_field::first_duplicate", "Argument[0].Element", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::from", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_codegen", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml deleted file mode 100644 index 41bfa8fa2e8..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-rocket_http.model.yml +++ /dev/null @@ -1,274 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&[u8] as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&crate::path::Path as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<&str as crate::uri::fmt::from_uri_param::FromUriParam>::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "<_ as crate::ext::IntoCollection>::mapped", "Argument[self]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::accept::QMediaType(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[rocket_http::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[rocket_http::header::accept::QMediaType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight", "Argument[self].Field[rocket_http::header::accept::QMediaType(1)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[self].Field[1].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::weight_or", "Argument[self].Field[rocket_http::header::accept::QMediaType(1)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::media_type", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self].Field[0]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self].Field[rocket_http::header::content_type::ContentType(0)]", "ReturnValue.Field[rocket_http::header::content_type::ContentType(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::name", "Argument[self].Field[rocket_http::header::header::Header::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::value", "Argument[self].Field[rocket_http::header::header::Header::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_params", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::header::media_type::Source::Custom(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::listener]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[0]", "Argument[self].Field[rocket_http::listener::Incoming::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::nodelay]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::nodelay", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[0]", "Argument[self].Field[rocket_http::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[0]", "ReturnValue.Field[rocket_http::listener::Incoming::sleep_on_errors]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::sleep_on_errors", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::clone", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[pear::input::cursor::Extent::end]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[pear::input::cursor::Extent::start]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::add", "Argument[0].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::add", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce_lifetime", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::coerce_lifetime", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_cow_source", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_source", "Argument[0].Field[core::option::Option::Some(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_source", "Argument[self].Reference.Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::indices", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(0)]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::indices", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Indexed(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_concrete", "Argument[self].Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[rocket_http::parse::uri::error::Error::index]", "ReturnValue.Field[rocket_http::parse::uri::error::Error::index]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::index", "Argument[self].Field[rocket_http::parse::uri::error::Error::index]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::borrow", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_str", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_str", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::html_escape", "Argument[self].Field[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::html_escape", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::split_at_byte", "Argument[self].Element", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::split_at_byte", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::url_decode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::url_decode_lossy", "Argument[self].Field[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::url_decode_lossy", "Argument[self].Field[rocket_http::raw_str::RawStr(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::raw_str::RawStrBuf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_string", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_string", "Argument[self].Field[rocket_http::raw_str::RawStrBuf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[rocket_http::status::Status::code]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::visit_i64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::visit_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::peer_address", "Argument[self].Field[rocket_http::tls::listener::TlsStream::remote]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::peer_certificates", "Argument[self].Field[rocket_http::tls::listener::TlsStream::certs].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[rocket_http::tls::mtls::Certificate::x509].Field[x509_parser::certificate::X509Certificate::tbs_certificate]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_bytes", "Argument[self].Field[rocket_http::tls::mtls::Certificate::data].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::has_serial", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[nom::internal::Err::Error(0)]", "ReturnValue.Field[rocket_http::tls::mtls::Error::Parse(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[nom::internal::Err::Failure(0)]", "ReturnValue.Field[rocket_http::tls::mtls::Error::Parse(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::deref", "Argument[self].Field[rocket_http::tls::mtls::Name(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::prepend", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::absolute::Absolute::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::absolute::Absolute::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::scheme", "Argument[self].Field[rocket_http::uri::absolute::Absolute::scheme].Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::set_authority", "Argument[0]", "Argument[self].Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[0]", "Argument[self].Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[0]", "ReturnValue.Field[rocket_http::uri::absolute::Absolute::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_authority", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[2]", "ReturnValue.Field[rocket_http::uri::authority::Authority::port]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::host", "Argument[self].Field[rocket_http::uri::authority::Authority::host].Field[rocket_http::parse::indexed::Indexed::Concrete(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[3]", "ReturnValue.Field[rocket_http::uri::authority::Authority::port]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::user_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::fmt::formatter::Formatter::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[rocket_http::uri::fmt::formatter::PrefixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self].Field[rocket_http::uri::fmt::formatter::SuffixedRouteUri(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::host::Host(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::host::Host(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[0].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::port", "Argument[self].Field[rocket_http::uri::host::Host(0)].Field[rocket_http::uri::authority::Authority::port]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_absolute", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_absolute", "Argument[self].Field[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_absolute", "Argument[self].Field[rocket_http::uri::host::Host(0)].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::to_authority", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::map_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::origin::Origin::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::origin::Origin::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[rocket_http::uri::origin::Origin::path]", "ReturnValue.Field[rocket_http::uri::reference::Reference::path]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[rocket_http::uri::origin::Origin::query]", "ReturnValue.Field[rocket_http::uri::reference::Reference::query]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0].Field[rocket_http::uri::origin::Origin::source]", "ReturnValue.Field[rocket_http::uri::reference::Reference::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::try_from", "Argument[0].Field[rocket_http::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::prepend", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::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"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::const_new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::fragment", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_normalized", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::reference::Reference::path]", "ReturnValue.Field[rocket_http::uri::path_query::Path::data].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::path", "Argument[self].Field[rocket_http::uri::reference::Reference::source]", "ReturnValue.Field[rocket_http::uri::path_query::Path::source].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::query", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "ReturnValue.Field[rocket_http::uri::reference::Reference::authority]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::scheme", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_query_fragment_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[0]", "ReturnValue.Field[rocket_http::uri::segments::Segments::source]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[1]", "ReturnValue.Field[rocket_http::uri::segments::Segments::segments]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Absolute(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Authority(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Origin(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from", "Argument[0]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Reference(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self].Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "ReturnValue.Field[rocket_http::uri::uri::Uri::Asterisk(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::absolute", "Argument[self].Field[rocket_http::uri::uri::Uri::Absolute(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::authority", "Argument[self].Field[rocket_http::uri::uri::Uri::Authority(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::origin", "Argument[self].Field[rocket_http::uri::uri::Uri::Origin(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::reference", "Argument[self].Field[rocket_http::uri::uri::Uri::Reference(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_collection", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "crate::parse::uri::parser::complete", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "crate::parse::uri::scheme_from_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "crate::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: sinkModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::from_uri_param", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[4]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::render", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::with_suffix", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::append", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::new", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[2]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::into_owned", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[1]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[4]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket:rocket_http", "::raw", "Argument[5]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml deleted file mode 100644 index 645daf7bc3a..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-db_pools-rocket_db_pools.model.yml +++ /dev/null @@ -1,28 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::close", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::get", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::init", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::deref_mut", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::into_inner", "Argument[self].Field[rocket_db_pools::database::Connection(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::info", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[rocket::fairing::info_kind::Info::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::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"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::on_shutdown", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::on_shutdown", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::close", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::get", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::init", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::close", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::get", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/db_pools:rocket_db_pools", "::init", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml deleted file mode 100644 index 3a9898ed61c..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-dyn_templates-rocket_dyn_templates.model.yml +++ /dev/null @@ -1,26 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::context", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::context", "Argument[self].Field[rocket_dyn_templates::context::manager::ContextManager(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::new", "Argument[0]", "ReturnValue.Field[rocket_dyn_templates::context::manager::ContextManager(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::on_ignite", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::on_ignite", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::custom", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::try_custom", "Argument[0]", "ReturnValue.Field[rocket_dyn_templates::fairing::TemplateFairing::callback].Reference", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::init", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::finalize", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/dyn_templates:rocket_dyn_templates", "::render", "Argument[0]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml deleted file mode 100644 index 3be0817549c..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-sync_db_pools-rocket_sync_db_pools.model.yml +++ /dev/null @@ -1,11 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::fairing", "Argument[0]", "ReturnValue.Field[rocket::fairing::ad_hoc::AdHoc::name]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::from", "Argument[0]", "ReturnValue.Field[rocket_sync_db_pools::error::Error::Config(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/sync_db_pools:rocket_sync_db_pools", "::from", "Argument[0]", "ReturnValue.Field[rocket_sync_db_pools::error::Error::Pool(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml b/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml deleted file mode 100644 index 3adef7bbff1..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-https-github.com-rwf2-Rocket-tree-v0.5-contrib-ws-rocket_ws.model.yml +++ /dev/null @@ -1,19 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::io", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::io", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::io", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::io", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::accept_key", "Argument[self].Field[rocket_ws::websocket::WebSocket::key]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::channel", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::Channel::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::channel", "Argument[self]", "ReturnValue.Field[rocket_ws::websocket::Channel::ws]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[0]", "Argument[self].Field[rocket_ws::websocket::WebSocket::config]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::WebSocket::config]", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::config", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::stream", "Argument[0]", "ReturnValue.Field[rocket_ws::websocket::MessageStream::handler].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rwf2/Rocket/tree/v0.5/contrib/ws:rocket_ws", "::stream", "Argument[self]", "ReturnValue.Field[rocket_ws::websocket::MessageStream::ws]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-manual_routes.model.yml b/rust/ql/lib/ext/generated/rocket/repo-manual_routes.model.yml deleted file mode 100644 index 810332d85c4..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-manual_routes.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::manual_routes", "::handle", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::manual_routes", "::handle", "Argument[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::manual_routes", "::handle", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml b/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml deleted file mode 100644 index 2273ec8865f..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-pastebin.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::pastebin", "::from_param", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo::pastebin", "::file_path", "Argument[self]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-state.model.yml b/rust/ql/lib/ext/generated/rocket/repo-state.model.yml deleted file mode 100644 index da36bfd4540..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-state.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::state", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::state", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::state", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::state", "::from_request", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-static-files.model.yml b/rust/ql/lib/ext/generated/rocket/repo-static-files.model.yml deleted file mode 100644 index dfee6398949..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-static-files.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo::static-files", "crate::manual::second", "Argument[0]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml b/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml deleted file mode 100644 index d42f3c7d40a..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-tls.model.yml +++ /dev/null @@ -1,9 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::tls", "::on_liftoff", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::tls", "::on_liftoff", "Argument[self]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::tls", "::try_launch", "Argument[self].Field[tls::redirector::Redirector::port]", "Argument[0].Field[rocket::config::config::Config::port]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml b/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml deleted file mode 100644 index 756697d8ea7..00000000000 --- a/rust/ql/lib/ext/generated/rocket/repo-todo.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::todo", "::raw", "Argument[1]", "ReturnValue.Field[todo::Context::flash]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust.model.yml b/rust/ql/lib/ext/generated/rust.model.yml new file mode 100644 index 00000000000..90d4a9856f6 --- /dev/null +++ b/rust/ql/lib/ext/generated/rust.model.yml @@ -0,0 +1,6860 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "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]", "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)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-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"] + - ["::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].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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::deref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::deref_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-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"] + - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_inner", "Argument[0].Reference", "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", "taint", "df-generated"] + - ["::into_raw_with_allocator", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_unique", "Argument[0]", "ReturnValue", "taint", "df-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[alloc::collections::TryReserveError::kind]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::first_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-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]", "ReturnValue", "taint", "df-generated"] + - ["::len", "Argument[self].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]", "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"] + - ["::with_mutable_key", "Argument[self].Field[alloc::collections::btree::map::CursorMut::inner]", "ReturnValue", "value", "dfc-generated"] + - ["::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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::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"] + - ["::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"] + - ["::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"] + - ["::merge_tracking_child_edge", "Argument[0].Field[alloc::collections::btree::node::LeftOrRight::Left(0)]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["::merge_tracking_child_edge", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::merge_tracking_parent", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::parent].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] + - ["::steal_left", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::right_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] + - ["::cast_to_leaf_unchecked", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::left_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"] + - ["::left_kv", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::new_edge", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::right_kv", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_for_bifurcation", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "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"] + - ["::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"] + - ["::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]", "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"] + - ["::clone", "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"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "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"] + - ["::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::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::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"] + - ["::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]", "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]", "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]", "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]", "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"] + - ["::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::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-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"] + - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::downgrade", "Argument[0].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-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"] + - ["::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"] + - ["::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_mut", "Argument[self].Reference.Reference", "ReturnValue.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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_mut", "Argument[self]", "ReturnValue", "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"] + - ["::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"] + - ["::drain", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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"] + - ["::allocator", "Argument[0].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::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "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_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_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"] + - ["::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"] + - ["::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::string::String::vec]", "ReturnValue", "value", "dfc-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"] + - ["::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]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] + - ["::from_parts_in", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::to_ascii_lowercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::to_ascii_uppercase", "Argument[self].Reference", "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"] + - ["::from", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::bitxor_assign", "Argument[0]", "Argument[self]", "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"] + - ["::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"] + - ["::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::as_mut_array", "Argument[self]", "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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_tuple", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] + - ["::flags", "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"] + - ["::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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::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"] + - ["::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[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"] + - ["::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[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"] + - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::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"] + - ["::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"] + - ["::into_inner", "Argument[self].Field[core::future::ready::Ready(0)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::finish", "Argument[self]", "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].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::buf]", "value", "dfc-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"] + - ["::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"] + - ["::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::advance_unchecked", "Argument[self]", "ReturnValue", "value", "df-generated"] + - ["::capacity", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::written", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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[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"] + - ["::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0].Field[0]", "ReturnValue", "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]", "ReturnValue", "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"] + - ["::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"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-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::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::enumerate::Enumerate::iter]", "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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::Intersperse::separator]", "value", "dfc-generated"] + - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::IntersperseWith::separator]", "value", "dfc-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]", "ReturnValue", "value", "dfc-generated"] + - ["::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::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", "dfc-generated"] + - ["::next_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::try_rfold", "Argument[1].ReturnValue", "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].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"] + - ["::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"] + - ["::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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "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"] + - ["::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"] + - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[1].ReturnValue", "ReturnValue", "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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::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]", "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_size_hint", "Argument[self]", "ReturnValue", "taint", "df-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]", "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"] + - ["::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"] + - ["::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"] + - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::rfold", "Argument[1].ReturnValue", "ReturnValue", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_fold", "Argument[self]", "Argument[1]", "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"] + - ["::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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::fmt", "Argument[0]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::to_canonical", "Argument[self].Reference", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] + - ["::to_ipv4_mapped", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::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[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::len", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::write", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue.Field[core::option::Option::Some(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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from_output", "Argument[0]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] + - ["::break_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::continue_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::into_try", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::map_break", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] + - ["::map_break", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::map_break", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::map", "Argument[self].Field[core::ops::range::Bound::Included(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::clone", "Argument[self].Field[core::option::Iter::inner]", "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"] + - ["::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"] + - ["::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].Reference.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"] + - ["::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[self].Reference.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[0].ReturnValue", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::get_or_insert_with", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "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[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.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_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_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].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"] + - ["::unwrap", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or_default", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_unchecked", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unzip", "Argument[self].Field[core::option::Option::Some(0)].Field[0]", "ReturnValue.Field[0].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::unzip", "Argument[self].Field[core::option::Option::Some(0)].Field[1]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::xor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::xor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::zip", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] + - ["::zip", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "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"] + - ["::from", "Argument[0]", "ReturnValue.Field[core::ptr::unique::Unique::pointer]", "value", "dfc-generated"] + - ["::as_non_null_ptr", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[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].Reference.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"] + - ["::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"] + - ["::err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::expect", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::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]", "ReturnValue", "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"] + - ["::is_err_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::is_err_and", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::is_ok_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::is_ok_and", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::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_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"] + - ["::map_or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] + - ["::ok", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::or", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::transpose", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::transpose", "Argument[self].Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::unwrap", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_err_unchecked", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or_default", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::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", "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"] + - ["::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"] + - ["::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"] + - ["::as_ascii", "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"] + - ["::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"] + - ["::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_mut_slice", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from_days", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_hours", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_micros", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_millis", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_mins", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_nanos", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_secs", "Argument[0]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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_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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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_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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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_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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::clone", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::into_token_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::expand_expr", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::unmark", "Argument[self].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue.Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] + - ["::unmark", "Argument[self].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw]", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "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"] + - ["::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].Reference", "ReturnValue", "value", "dfc-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"] + - ["::custom_derive", "Argument[1]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::CustomDerive::attributes]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::handle::InternedStore::owned].Field[proc_macro::bridge::handle::OwnedStore::counter]", "value", "dfc-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"] + - ["::dispatch", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::sp", "Argument[self]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "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]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_os_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Metadata(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Permissions(0)]", "value", "dfc-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_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"] + - ["::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"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read", "Argument[self]", "Argument[0]", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] + - ["::read_to_end", "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"] + - ["::into_inner", "Argument[self].Field[std::io::pipe::PipeReader(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "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"] + - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_string", "Argument[self]", "Argument[0]", "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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_fd", "Argument[self].Reference", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::as_ref", "Argument[self].Reference.Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-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_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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::read_to_end", "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"] + - ["::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"] + - ["::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"] + - ["::read_to_end", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::args", "Argument[self]", "ReturnValue", "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"] + - ["::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stdout", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ExitStatus(0)]", "value", "dfc-generated"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::Stdio(0)]", "value", "dfc-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"] + - ["::iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::Iter::rx]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::hook", "Argument[0]", "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"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::utils::CachePadded::value]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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].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"] + - ["::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[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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-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_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"] + - ["::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"] + - ["::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["::try_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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::TcpListener::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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[0]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::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"] + - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] + - ["::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::is_poisoned", "Argument[self].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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue", "taint", "df-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"] + - ["::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"] + - ["::from_bytes_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "Argument[0]", "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"] + - ["::next", "Argument[self]", "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"] + - ["::no_hooks", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[std::thread::local::LocalKey::inner]", "value", "dfc-generated"] + - ["::try_with", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::provide_substitution_wildcard", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::provide_type_wildcard", "Argument[0]", "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"] + - ["::from_str", "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"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::build", "Argument[self]", "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]", "ReturnValue", "taint", "df-generated"] + - ["::resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::resolve", "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"] + - ["::from_str", "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"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::make_vector", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::populate_wildcard", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] + - ["::contains", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "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"] + - ["::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"] + - ["::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_str", "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"] + - ["::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"] + - ["as_if_std::the_backtrace_crate::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["backtrace::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "ReturnValue", "taint", "df-generated"] + - ["core::array::drain::drain_array_with", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-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"] + - ["core::cmp::max", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::max_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] + - ["core::cmp::max_by", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::max_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::max_by", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::max_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::max_by_key", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::max_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::max_by_key", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] + - ["core::cmp::min_by", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::min_by", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::min_by_key", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::min_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::min_by_key", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::cmp::minmax", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] + - ["core::cmp::minmax", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] + - ["core::cmp::minmax_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] + - ["core::cmp::minmax_by", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] + - ["core::cmp::minmax_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::minmax_by", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] + - ["core::cmp::minmax_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["core::cmp::minmax_by_key", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] + - ["core::cmp::minmax_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] + - ["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::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"] + - ["core::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512bw::_store_mask32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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::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::_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"] + - ["core::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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_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_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"] + - ["core::core_arch::x86::avx512f::_mm512_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_mask_load_sd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512f::_mm_mask_load_ss", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core::core_arch::x86::avx512f::_mm_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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_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"] + - ["core::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[12]", "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[13]", "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[14]", "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[15]", "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[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_set_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_set_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::_mm256_setr_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_setr_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_setr_ph", "Argument[11]", "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[12]", "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[13]", "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[14]", "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[15]", "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[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_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"] + - ["core::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[12]", "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[13]", "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[14]", "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[15]", "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[16]", "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[17]", "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[18]", "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[19]", "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[1]", "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[20]", "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[21]", "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[22]", "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[23]", "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[24]", "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[25]", "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[26]", "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[27]", "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[28]", "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[29]", "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[2]", "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[30]", "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[31]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_set_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_set_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::_mm512_setr_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_setr_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_setr_ph", "Argument[11]", "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[12]", "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[13]", "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[14]", "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[15]", "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[16]", "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[17]", "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[18]", "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[19]", "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[1]", "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[20]", "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[21]", "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[22]", "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[23]", "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[24]", "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[25]", "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[26]", "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[27]", "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[28]", "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[29]", "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[2]", "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[30]", "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[31]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_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"] + - ["core::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[2]", "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[3]", "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[4]", "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[5]", "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[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_set_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::avx512fp16::_mm_set_sh", "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_setr_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_setr_ph", "Argument[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[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_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_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_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"] + - ["core::core_arch::x86::avx::_mm256_set_pd", "Argument[1]", "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_set_pd", "Argument[2]", "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_set_pd", "Argument[3]", "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_set_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_ps", "Argument[1]", "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_ps", "Argument[2]", "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_ps", "Argument[3]", "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_ps", "Argument[4]", "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_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_set_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_set_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_setr_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_setr_pd", "Argument[1]", "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_setr_pd", "Argument[2]", "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_setr_pd", "Argument[3]", "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_setr_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_setr_ps", "Argument[1]", "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[2]", "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[3]", "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[4]", "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[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::_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::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_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"] + - ["core::core_arch::x86::sse2::_mm_set_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_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::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_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"] + - ["core::core_arch::x86::sse::_mm_set_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_set_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_set_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_set_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::sse::_mm_setr_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_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"] + - ["core::fmt::builders::debug_struct_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugStruct::fmt]", "value", "dfc-generated"] + - ["core::fmt::builders::debug_tuple_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] + - ["core::fmt::builders::from_fn", "Argument[0]", "ReturnValue.Field[core::fmt::builders::FromFn(0)]", "value", "dfc-generated"] + - ["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::select_unpredictable", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["core::intrinsics::select_unpredictable", "Argument[2]", "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::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_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"] + - ["core::num::int_log10::i16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::i32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::i64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::i8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::u128", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::u16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core::num::int_log10::u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["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::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"] + - ["core::ptr::with_exposed_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["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::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::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::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_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"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[1]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_store_mask32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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::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::_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"] + - ["core_arch::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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_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_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"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_mask_load_sd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_mask_load_ss", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] + - ["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_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"] + - ["core_arch::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[12]", "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[13]", "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[14]", "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[15]", "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[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_set_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_set_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::_mm256_setr_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_setr_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_setr_ph", "Argument[11]", "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[12]", "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[13]", "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[14]", "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[15]", "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[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_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"] + - ["core_arch::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[12]", "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[13]", "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[14]", "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[15]", "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[16]", "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[17]", "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[18]", "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[19]", "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[1]", "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[20]", "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[21]", "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[22]", "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[23]", "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[24]", "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[25]", "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[26]", "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[27]", "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[28]", "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[29]", "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[2]", "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[30]", "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[31]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_set_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_set_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::_mm512_setr_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_setr_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_setr_ph", "Argument[11]", "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[12]", "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[13]", "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[14]", "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[15]", "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[16]", "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[17]", "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[18]", "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[19]", "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[1]", "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[20]", "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[21]", "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[22]", "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[23]", "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[24]", "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[25]", "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[26]", "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[27]", "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[28]", "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[29]", "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[2]", "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[30]", "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[31]", "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[3]", "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[4]", "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[5]", "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[6]", "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[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_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"] + - ["core_arch::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[2]", "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[3]", "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[4]", "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[5]", "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[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_set_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::avx512fp16::_mm_set_sh", "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_setr_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_setr_ph", "Argument[1]", "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[2]", "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[3]", "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[4]", "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[5]", "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[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_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_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_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"] + - ["core_arch::core_arch::x86::avx::_mm256_set_pd", "Argument[1]", "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_set_pd", "Argument[2]", "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_set_pd", "Argument[3]", "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_set_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_ps", "Argument[1]", "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_ps", "Argument[2]", "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_ps", "Argument[3]", "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_ps", "Argument[4]", "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_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_set_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_set_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_setr_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_setr_pd", "Argument[1]", "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_setr_pd", "Argument[2]", "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_setr_pd", "Argument[3]", "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_setr_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_setr_ps", "Argument[1]", "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[2]", "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[3]", "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[4]", "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[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::_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::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_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"] + - ["core_arch::core_arch::x86::sse2::_mm_set_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_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::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_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"] + - ["core_arch::core_arch::x86::sse::_mm_set_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_set_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_set_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_set_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::sse::_mm_setr_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_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"] + - ["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"] + - ["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_rs::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "ReturnValue", "taint", "df-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::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_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-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::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::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::pipe::read2", "Argument[0]", "Argument[1]", "taint", "df-generated"] + - ["std::sys::pal::unix::pipe::read2", "Argument[2]", "Argument[3]", "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[2]", "ReturnValue", "taint", "df-generated"] + - ["stdarch-gen-arm::big_endian::create_mut_let_variable", "Argument[2]", "ReturnValue", "taint", "df-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"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::allocate", "Argument[0]", "alloc-layout", "df-generated"] + - ["::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] + - ["::grow", "Argument[2]", "alloc-layout", "df-generated"] + - ["::grow", "Argument[2]", "alloc-size", "df-generated"] + - ["::grow_zeroed", "Argument[2]", "alloc-layout", "df-generated"] + - ["::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_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"] + - ["::try_new_uninit_slice", "Argument[0]", "alloc-layout", "df-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::choose_parent_kv", "Argument[self]", "pointer-access", "df-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::make_contiguous", "Argument[self]", "log-injection", "df-generated"] + - ["::push_back", "Argument[self]", "log-injection", "df-generated"] + - ["::push_front", "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"] + - ["::rotate_right", "Argument[self]", "log-injection", "df-generated"] + - ["::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_in", "Argument[0]", "alloc-layout", "df-generated"] + - ["::try_with_capacity_in", "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"] + - ["::make_mut", "Argument[0]", "pointer-access", "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"] + - ["::make_mut", "Argument[0]", "pointer-access", "df-generated"] + - ["::from", "Argument[0]", "log-injection", "df-generated"] + - ["::insert", "Argument[0]", "log-injection", "df-generated"] + - ["::insert", "Argument[self]", "log-injection", "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_in", "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"] + - ["::new", "Argument[0]", "path-injection", "df-generated"] + - ["::new", "Argument[0]", "path-injection", "df-generated"] + - ["::force_mut", "Argument[0]", "pointer-access", "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"] + - ["::take", "Argument[0]", "pointer-access", "df-generated"] + - ["::expect", "Argument[0]", "log-injection", "df-generated"] + - ["::map", "Argument[self]", "pointer-access", "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"] + - ["::new", "Argument[0]", "log-injection", "df-generated"] + - ["::new_raw", "Argument[0]", "log-injection", "df-generated"] + - ["::f32_suffixed", "Argument[0]", "log-injection", "df-generated"] + - ["::f32_unsuffixed", "Argument[0]", "log-injection", "df-generated"] + - ["::f64_suffixed", "Argument[0]", "log-injection", "df-generated"] + - ["::f64_unsuffixed", "Argument[0]", "log-injection", "df-generated"] + - ["::new", "Argument[0]", "log-injection", "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"] + - ["::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"] + - ["::truncate", "Argument[0]", "log-injection", "df-generated"] + - ["::create_buffered", "Argument[0]", "path-injection", "df-generated"] + - ["::open_buffered", "Argument[0]", "path-injection", "df-generated"] + - ["::try_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"] + - ["::new_os", "Argument[0]", "log-injection", "df-generated"] + - ["::new_simple", "Argument[0]", "log-injection", "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"] + - ["::is_symlink", "Argument[self]", "path-injection", "df-generated"] + - ["::metadata", "Argument[self]", "path-injection", "df-generated"] + - ["::read_dir", "Argument[self]", "path-injection", "df-generated"] + - ["::read_link", "Argument[self]", "path-injection", "df-generated"] + - ["::symlink_metadata", "Argument[self]", "path-injection", "df-generated"] + - ["::unregister", "Argument[self]", "log-injection", "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"] + - ["::index", "Argument[0]", "log-injection", "df-generated"] + - ["::index", "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"] + - ["::to_tokens", "Argument[self]", "log-injection", "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"] + - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] + - ["::as_mut", "Argument[self]", "log-injection", "df-generated"] + - ["::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[self]", "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"] + - ["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"] + - ["core::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_store_mask32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512bw::_store_mask64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_store_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core::core_arch::x86::avx512f::_mm_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["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::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_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::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::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"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_store_mask32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512bw::_store_mask64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_store_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] + - ["core_arch::core_arch::x86::avx512f::_mm_store_epi32", "Argument[0]", "pointer-access", "df-generated"] + - ["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::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_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"] + - ["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::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::unix::copy", "Argument[0]", "path-injection", "df-generated"] + - ["std::sys::pal::unix::cvt_nz", "Argument[0]", "log-injection", "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::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"] + - ["stdarch_test::assert", "Argument[2]", "log-injection", "df-generated"] + - ["stdarch_test::assert_skip_test_ok", "Argument[0]", "log-injection", "df-generated"] + - ["stdarch_test::assert_skip_test_ok", "Argument[1]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["::drop", "Argument[self]", "pointer-invalidate", "df-generated"] + - ["::new", "ReturnValue", "file", "df-generated"] + - ["::new", "ReturnValue", "file", "df-generated"] + - ["::dealloc", "Argument[0]", "pointer-invalidate", "df-generated"] + - ["::new", "ReturnValue", "file", "df-generated"] + - ["::open_buffered", "ReturnValue", "file", "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::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"] + - ["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::fs::copy", "ReturnValue", "file", "df-generated"] + - ["std::fs::read", "ReturnValue", "file", "df-generated"] + - ["std::fs::read_to_string", "ReturnValue", "file", "df-generated"] + - ["std::path::absolute", "ReturnValue", "commandargs", "df-generated"] + - ["std::sys::fs::common::copy", "ReturnValue", "file", "df-generated"] + - ["std::sys::fs::unix::copy", "ReturnValue", "file", "df-generated"] + - ["std::sys::pal::unix::thread::cgroups::quota", "ReturnValue", "file", "df-generated"] + - ["std::sys::path::unix::absolute", "ReturnValue", "commandargs", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml b/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml deleted file mode 100644 index 464878585a8..00000000000 --- a/rust/ql/lib/ext/generated/rust/lang-alloc.model.yml +++ /dev/null @@ -1,708 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["lang:alloc", "<&&str as crate::string::SpecToString>::spec_to_string", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::collections::btree::map::BTreeMap as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Iter::head]", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::Iter::len]", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Iter::tail]", "value", "dfc-generated"] - - ["lang:alloc", "<&crate::string::String as crate::str::pattern::Pattern>::as_utf8_pattern", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::str::pattern::Utf8Pattern::StringPattern(0)]", "value", "dfc-generated"] - - ["lang:alloc", "<&mut crate::collections::btree::map::BTreeMap as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] - - ["lang:alloc", "<&mut crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::head]", "value", "dfc-generated"] - - ["lang:alloc", "<&mut crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::len]", "value", "dfc-generated"] - - ["lang:alloc", "<&mut crate::collections::linked_list::LinkedList as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] - - ["lang:alloc", "<&str as crate::string::SpecToString>::spec_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "<_ as crate::borrow::ToOwned>::clone_into", "Argument[self].Reference", "Argument[0].Reference", "value", "dfc-generated"] - - ["lang:alloc", "<_ as crate::borrow::ToOwned>::to_owned", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "<_ as crate::vec::spec_from_elem::SpecFromElem>::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Reference", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::add_assign", "Argument[0]", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::add_assign", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_owned", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::to_mut", "Argument[self].Reference.Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::deref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[0].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[0].Field[alloc::boxed::Box(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ptr", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_non_null_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::into_inner", "Argument[0].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::into_inner", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_non_null", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::into_pin", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_pin", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:alloc", "::into_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::into_raw_with_allocator", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::into_unique", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::leak", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_in", "Argument[1]", "ReturnValue.Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::boxed::Box(1)]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::deref_mut", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::index_mut", "Argument[self].Field[alloc::bstr::ByteString(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_bytes", "Argument[self].Field[alloc::bstr::ByteString(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[alloc::collections::TryReserveError::kind]", "value", "dfc-generated"] - - ["lang:alloc", "::kind", "Argument[self].Field[alloc::collections::TryReserveError::kind].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data].Reference", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data]", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::drain_sorted", "Argument[self]", "ReturnValue.Field[alloc::collections::binary_heap::DrainSorted::inner]", "value", "dfc-generated"] - - ["lang:alloc", "::into_iter_sorted", "Argument[self]", "ReturnValue.Field[alloc::collections::binary_heap::IntoIterSorted::inner]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::binary_heap::BinaryHeap::data].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::peek_mut", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::collections::binary_heap::PeekMut::heap]", "value", "dfc-generated"] - - ["lang:alloc", "::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_into_iter", "Argument[self].Field[alloc::collections::binary_heap::IntoIter::iter]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[self].Field[alloc::collections::binary_heap::IntoIter::iter].Field[alloc::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::next", "Argument[self].Field[alloc::collections::binary_heap::Iter::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[1].Field[alloc::collections::btree::borrow::DormantMutRef::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::dedup_sorted_iter::DedupSortedIter::iter].Field[core::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::entry", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::entry::Entry::Vacant(0)].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::extract_if", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[alloc::collections::btree::map::ExtractIf::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::extract_if_inner", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:alloc", "::first_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::get_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["lang:alloc", "::iter_mut", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue.Field[alloc::collections::btree::map::IterMut::length]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::last_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::lower_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc].Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[self].Field[alloc::collections::btree::map::BTreeMap::alloc].Reference", "ReturnValue.Field[alloc::collections::btree::map::BTreeMap::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::collections::btree::map::entry::OccupiedError::value]", "value", "dfc-generated"] - - ["lang:alloc", "::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::upper_bound_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::collections::btree::map::Cursor::current]", "ReturnValue.Field[alloc::collections::btree::map::Cursor::current]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::collections::btree::map::Cursor::root]", "ReturnValue.Field[alloc::collections::btree::map::Cursor::root]", "value", "dfc-generated"] - - ["lang:alloc", "::with_mutable_key", "Argument[self].Field[alloc::collections::btree::map::CursorMut::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::ExtractIfInner::length].Reference", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::IntoKeys::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoKeys::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::IntoValues::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IntoValues::inner].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[alloc::collections::btree::map::Iter::length]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::Keys::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::Values::inner].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::map::ValuesMut::inner].Field[alloc::collections::btree::map::IterMut::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::insert_entry", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::alloc]", "ReturnValue.Field[alloc::collections::btree::map::entry::OccupiedEntry::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::into_key", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::key", "Argument[self].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::a]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::merge_iter::MergeIterInner::b]", "value", "dfc-generated"] - - ["lang:alloc", "::nexts", "Argument[self].Field[alloc::collections::btree::merge_iter::MergeIterInner::a].Element", "ReturnValue.Field[0].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::nexts", "Argument[self].Field[alloc::collections::btree::merge_iter::MergeIterInner::b].Element", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::navigate::LazyLeafHandle::Edge(0)].Reference", "ReturnValue.Field[alloc::collections::btree::navigate::LazyLeafHandle::Edge(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::navigate::LazyLeafHandle::Root(0)].Reference", "ReturnValue.Field[alloc::collections::btree::navigate::LazyLeafHandle::Root(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::into_left_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_right_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::right_child]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::merge_tracking_child", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::merge_tracking_child_edge", "Argument[0].Field[alloc::collections::btree::node::LeftOrRight::Left(0)]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::merge_tracking_child_edge", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::merge_tracking_parent", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::parent].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::steal_left", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::right_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::steal_right", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::steal_right", "Argument[self].Field[alloc::collections::btree::node::BalancingContext::left_child]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::awaken", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::cast_to_leaf_unchecked", "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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::consider_for_balancing", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::BalancingContext::parent]", "value", "dfc-generated"] - - ["lang:alloc", "::descend", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::dormant", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::forget_node_type", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::idx", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_node", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::left_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::left_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::left_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"] - - ["lang:alloc", "::left_kv", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::new_edge", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::new_edge", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::new_kv", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::new_kv", "Argument[1]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::reborrow", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::reborrow_mut", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::remove", "Argument[self].Field[alloc::collections::btree::node::Handle::idx]", "ReturnValue.Field[1].Field[alloc::collections::btree::node::Handle::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::remove", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[1].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::right_edge", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::right_kv", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::split", "Argument[self].Field[alloc::collections::btree::node::Handle::node]", "ReturnValue.Field[alloc::collections::btree::node::SplitResult::left]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::awaken", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::awaken", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_valmut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_valmut", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::calc_split_length", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::cast_to_leaf_unchecked", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::dormant", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::dormant", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::find_lower_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:alloc", "::find_lower_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::find_upper_bound_edge", "Argument[0]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:alloc", "::find_upper_bound_edge", "Argument[self]", "ReturnValue.Field[0].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::first_edge", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::first_kv", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::force", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::forget_type", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::forget_type", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::height", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_dying", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::into_dying", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::last_edge", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::last_kv", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::push_internal_level", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::push_internal_level", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::reborrow", "Argument[self].Field[alloc::collections::btree::node::NodeRef::height]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::height]", "value", "dfc-generated"] - - ["lang:alloc", "::reborrow", "Argument[self].Field[alloc::collections::btree::node::NodeRef::node]", "ReturnValue.Field[alloc::collections::btree::node::NodeRef::node]", "value", "dfc-generated"] - - ["lang:alloc", "::search_node", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::search::SearchResult::Found(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::search_node", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::search::SearchResult::GoDown(0)].Field[alloc::collections::btree::node::Handle::node]", "value", "dfc-generated"] - - ["lang:alloc", "::search_tree_for_bifurcation", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::visit_nodes_in_order", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::forget_node_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from_range", "Argument[0].Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[alloc::collections::btree::search::SearchBound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_range", "Argument[0].Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[alloc::collections::btree::search::SearchBound::Included(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Reference", "ReturnValue.Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map]", "ReturnValue.Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - - ["lang:alloc", "::clone_from", "Argument[0].Field[alloc::collections::btree::set::BTreeSet::map]", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone_from", "Argument[0].Field[alloc::collections::btree::set::BTreeSet::map]", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map]", "value", "dfc-generated"] - - ["lang:alloc", "::difference", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::Difference::inner].Field[alloc::collections::btree::set::DifferenceInner::Search::other_set]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::get_or_insert_with", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:alloc", "::intersection", "Argument[0]", "ReturnValue.Field[alloc::collections::btree::set::Intersection::inner].Field[alloc::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - - ["lang:alloc", "::intersection", "Argument[self]", "ReturnValue.Field[alloc::collections::btree::set::Intersection::inner].Field[alloc::collections::btree::set::IntersectionInner::Search::large_set]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::set::BTreeSet::map].Field[alloc::collections::btree::map::BTreeMap::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::btree::set::IntoIter::iter].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::btree::set::IntoIter::iter].Field[alloc::collections::btree::map::IntoIter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::Iter::iter].Reference", "ReturnValue.Field[alloc::collections::btree::set::Iter::iter]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::Iter::iter]", "ReturnValue.Field[alloc::collections::btree::set::Iter::iter]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::Range::iter].Reference", "ReturnValue.Field[alloc::collections::btree::set::Range::iter]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::collections::btree::set::Range::iter]", "ReturnValue.Field[alloc::collections::btree::set::Range::iter]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::insert", "Argument[self].Field[alloc::collections::btree::set::entry::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::get", "Argument[self].Field[alloc::collections::btree::set::entry::VacantEntry::inner].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::into_value", "Argument[self].Field[alloc::collections::btree::set::entry::VacantEntry::inner].Field[alloc::collections::btree::map::entry::VacantEntry::key]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::current]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::index]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Reference.Field[alloc::collections::linked_list::Cursor::list]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["lang:alloc", "::as_list", "Argument[self].Field[alloc::collections::linked_list::Cursor::list]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::Cursor::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["lang:alloc", "::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::index]", "value", "dfc-generated"] - - ["lang:alloc", "::as_cursor", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["lang:alloc", "::as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::list]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::remove_current", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::remove_current", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::remove_current_as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::remove_current_as_list", "Argument[self].Field[alloc::collections::linked_list::CursorMut::current].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::split_before", "Argument[self].Field[alloc::collections::linked_list::CursorMut::index]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::linked_list::IntoIter::list].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::linked_list::Iter::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::linked_list::IterMut::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::clone_from", "Argument[0].Field[alloc::collections::linked_list::LinkedList::len]", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_back", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_back", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_back_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_back_mut", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_front", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::current]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_front", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::Cursor::list]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_front_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::current]", "value", "dfc-generated"] - - ["lang:alloc", "::cursor_front_mut", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::CursorMut::list]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[0]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::it]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::old_len]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[self]", "ReturnValue.Field[alloc::collections::linked_list::ExtractIf::list]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::Iter::head]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::Iter::len]", "value", "dfc-generated"] - - ["lang:alloc", "::iter", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::Iter::tail]", "value", "dfc-generated"] - - ["lang:alloc", "::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::head]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::head]", "value", "dfc-generated"] - - ["lang:alloc", "::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::len]", "value", "dfc-generated"] - - ["lang:alloc", "::iter_mut", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::IterMut::tail]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[0]", "Argument[self].Field[alloc::collections::linked_list::LinkedList::len]", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[self].Field[alloc::collections::linked_list::LinkedList::alloc].Reference", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::split_off", "Argument[self].Field[alloc::collections::linked_list::LinkedList::tail]", "ReturnValue.Field[alloc::collections::linked_list::LinkedList::tail]", "value", "dfc-generated"] - - ["lang:alloc", "::spec_from_iter", "Argument[0].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::drain", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::deque]", "value", "dfc-generated"] - - ["lang:alloc", "::from_contiguous_raw_parts_in", "Argument[1].Field[core::ops::range::Range::start]", "ReturnValue.Field[alloc::collections::vec_deque::VecDeque::head]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::resize", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["lang:alloc", "::resize_with", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["lang:alloc", "::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::retain_mut", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::shrink_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["lang:alloc", "::truncate", "Argument[0]", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:alloc", "::size_hint", "Argument[self].Field[alloc::collections::vec_deque::drain::Drain::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::deque]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::idx]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[2]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::drain_len]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[2]", "ReturnValue.Field[alloc::collections::vec_deque::drain::Drain::remaining]", "value", "dfc-generated"] - - ["lang:alloc", "::advance_back_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:alloc", "::count", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::into_vecdeque", "Argument[self].Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::into_iter::IntoIter::inner]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::next", "Argument[self].Field[alloc::collections::vec_deque::iter::Iter::i1].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::try_fold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_fold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::iter::Iter::i1]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::iter::Iter::i2]", "value", "dfc-generated"] - - ["lang:alloc", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_rfold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_rfold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_fold", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_fold", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::collections::vec_deque::iter_mut::IterMut::i1]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[alloc::collections::vec_deque::iter_mut::IterMut::i2]", "value", "dfc-generated"] - - ["lang:alloc", "::into_c_string", "Argument[self].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_bytes_with_nul", "Argument[self].Field[alloc::ffi::c_str::CString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_c_str", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from_vec_with_nul", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::ffi::c_str::FromVecWithNulError::bytes]", "value", "dfc-generated"] - - ["lang:alloc", "::as_bytes", "Argument[self].Field[alloc::ffi::c_str::FromVecWithNulError::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::into_bytes", "Argument[self].Field[alloc::ffi::c_str::FromVecWithNulError::bytes]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::source", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:alloc", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::into_cstring", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::utf8_error", "Argument[self].Field[alloc::ffi::c_str::IntoStringError::error]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_vec", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_vec", "Argument[self].Field[alloc::ffi::c_str::NulError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::nul_position", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::nul_position", "Argument[self].Field[alloc::ffi::c_str::NulError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[self].Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from_nonnull_in", "Argument[2]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_parts_in", "Argument[2]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::with_capacity_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::with_capacity_zeroed_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[0].Field[alloc::rc::Rc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::rc::Rc::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::rc::Rc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_zeroed_slice_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::strong_ref", "Argument[self].Field[alloc::rc::RcInner::strong]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::weak_ref", "Argument[self].Field[alloc::rc::RcInner::weak]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::rc::UniqueRc::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::rc::Weak::alloc].Reference", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::rc::Weak::alloc]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[alloc::rc::Weak::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[self].Field[alloc::rc::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[alloc::rc::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::upgrade", "Argument[self].Field[alloc::rc::Weak::alloc].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::rc::Rc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::upgrade", "Argument[self].Field[alloc::rc::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::rc::Rc::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::strong_ref", "Argument[self].Field[alloc::rc::WeakInner::strong]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::weak_ref", "Argument[self].Field[alloc::rc::WeakInner::weak]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::as_bytes", "Argument[self].Field[alloc::string::FromUtf8Error::bytes].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::into_bytes", "Argument[self].Field[alloc::string::FromUtf8Error::bytes]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::utf8_error", "Argument[self].Field[alloc::string::FromUtf8Error::error]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::into_string", "Argument[self].Field[alloc::string::IntoChars::bytes].Element", "ReturnValue.Field[alloc::string::String::vec].Element", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::deref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::as_mut_vec", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::drain", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from_utf8", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[alloc::string::FromUtf8Error::bytes]", "value", "dfc-generated"] - - ["lang:alloc", "::from_utf8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from_utf8_lossy_owned", "Argument[0]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from_utf8_unchecked", "Argument[0]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::into_bytes", "Argument[self].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::remove", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[0]", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::truncate", "Argument[0]", "Argument[self].Field[alloc::string::String::vec].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::try_from", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[0].Field[alloc::sync::Arc::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::sync::Arc::alloc].Reference", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::downgrade", "Argument[0].Field[alloc::sync::Arc::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::new_uninit_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_uninit_slice_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_zeroed_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_zeroed_slice_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_uninit_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_new_zeroed_in", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::try_unwrap", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::unwrap_or_clone", "Argument[0].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::sync::Weak::alloc].Reference", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::sync::Weak::alloc]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::clone", "Argument[self].Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[alloc::sync::Weak::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[self].Field[alloc::sync::Weak::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::from_raw_in", "Argument[1]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::new_in", "Argument[0]", "ReturnValue.Field[alloc::sync::Weak::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::upgrade", "Argument[self].Field[alloc::sync::Weak::alloc].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::sync::Arc::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::upgrade", "Argument[self].Field[alloc::sync::Weak::ptr]", "ReturnValue.Field[core::option::Option::Some(0)].Field[alloc::sync::Arc::ptr]", "value", "dfc-generated"] - - ["lang:alloc", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::borrow_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::bstr::ByteString(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::collections::binary_heap::BinaryHeap::data]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::from", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::drain", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[alloc::vec::drain::Drain::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[1]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] - - ["lang:alloc", "::extract_if", "Argument[self]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::from_parts_in", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::from_raw_parts_in", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::len", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::push_within_capacity", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::resize", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::resize_with", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::set_len", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::split_off", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::truncate", "Argument[0]", "Argument[self].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::try_with_capacity_in", "Argument[1]", "ReturnValue.Field[alloc::raw_vec::RawVec::inner].Field[alloc::raw_vec::RawVecInner::alloc]", "value", "dfc-generated"] - - ["lang:alloc", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::new", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::old_len]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::vec]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[1]", "ReturnValue.Field[alloc::vec::extract_if::ExtractIf::pred]", "value", "dfc-generated"] - - ["lang:alloc", "::as_inner", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::next_back", "Argument[self].Field[alloc::vec::into_iter::IntoIter::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:alloc", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:alloc", "::as_into_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::allocator", "Argument[self].Field[alloc::vec::into_iter::IntoIter::alloc]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::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"] - - ["lang:alloc", "::current_len", "Argument[self].Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "ReturnValue", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0].Reference", "ReturnValue.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::local_len]", "value", "dfc-generated"] - - ["lang:alloc", "::new", "Argument[0]", "ReturnValue.Field[alloc::vec::set_len_on_drop::SetLenOnDrop::len]", "value", "dfc-generated"] - - ["lang:alloc", "::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:alloc", "::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "::spec_to_string", "Argument[self]", "ReturnValue", "value", "df-generated"] - - ["lang:alloc", "::from_elem", "Argument[1]", "ReturnValue.Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:alloc", "crate::collections::btree::mem::replace", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:alloc", "crate::collections::btree::mem::take_mut", "Argument[0].Reference", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:alloc", "crate::collections::btree::mem::take_mut", "Argument[1].ReturnValue", "Argument[0].Reference", "value", "dfc-generated"] - - ["lang:alloc", "crate::str::convert_while_ascii", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["lang:alloc", "<[_]>::sort", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "<[_]>::sort_by", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "<[_]>::sort_by_key", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::allocate", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::grow", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::grow", "Argument[2]", "alloc-size", "df-generated"] - - ["lang:alloc", "::grow_zeroed", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::grow_zeroed", "Argument[2]", "alloc-size", "df-generated"] - - ["lang:alloc", "::shrink", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::shrink", "Argument[2]", "alloc-size", "df-generated"] - - ["lang:alloc", "::try_new_uninit_slice", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::try_new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::deallocating_next_back_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::deallocating_next_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_unchecked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back_checked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_checked", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::consider_for_balancing", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::append_from_sorted_iters", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::bulk_push", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::choose_parent_kv", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::fix_node_and_affected_ancestors", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::full_range", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::push_internal_level", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::last", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::max", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::min", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::clone_from", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::spec_extend", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::extend", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::extend_one", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::extend_reserve", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::append", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::insert", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::insert", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::make_contiguous", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::push_back", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::push_front", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::remove", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::reserve", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::reserve_exact", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::resize", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::resize_with", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::rotate_left", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::rotate_left", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::rotate_right", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::rotate_right", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::shrink_to", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::shrink_to", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::shrink_to_fit", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::try_reserve", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::try_reserve_exact", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::make_mut", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:alloc", "::new_uninit_slice_in", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::new_zeroed_slice_in", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::make_mut", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:alloc", "::new_zeroed_slice", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:alloc", "::from", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::insert", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::insert", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::remove", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::split_off", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::swap_remove", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "::swap_remove", "Argument[self]", "log-injection", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:alloc", "crate::alloc::__alloc_error_handler::__rdl_oom", "Argument[0]", "log-injection", "df-generated"] - - ["lang:alloc", "crate::collections::btree::mem::replace", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:alloc", "crate::collections::btree::mem::take_mut", "Argument[0]", "pointer-access", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["lang:alloc", "::drop", "Argument[self]", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-core.model.yml b/rust/ql/lib/ext/generated/rust/lang-core.model.yml deleted file mode 100644 index f08c7469e55..00000000000 --- a/rust/ql/lib/ext/generated/rust/lang-core.model.yml +++ /dev/null @@ -1,3200 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["lang:core", "<&_ as crate::borrow::Borrow>::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "<&_ as crate::clone::Clone>::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&_ as crate::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&bool as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitAnd>::bitand", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::BitOr>::bitor", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::Not>::not", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv4Addr as crate::ops::bit::Not>::not", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitAnd>::bitand", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::BitOr>::bitor", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::Not>::not", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::net::ip_addr::Ipv6Addr as crate::ops::bit::Not>::not", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::saturating::Saturating as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::num::wrapping::Wrapping as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&crate::result::Result as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&f64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i128 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i16 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i32 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i64 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&i8 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Neg>::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&isize as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&mut _ as crate::borrow::Borrow>::borrow", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::borrow::BorrowMut>::borrow_mut", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIterator>::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIterator>::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::double_ended::DoubleEndedIteratorRefSpec>::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::Iterator>::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::iter::traits::iterator::IteratorRefSpec>::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::ops::deref::Deref>::deref", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut _ as crate::ops::deref::DerefMut>::deref_mut", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<&mut crate::result::Result as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&str as crate::str::pattern::Pattern>::as_utf8_pattern", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&str as crate::str::pattern::Pattern>::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::StrSearcher::haystack]", "value", "dfc-generated"] - - ["lang:core", "<&str as crate::str::pattern::Pattern>::into_searcher", "Argument[self]", "ReturnValue.Field[core::str::pattern::StrSearcher::needle]", "value", "dfc-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u128 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u16 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u32 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u64 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&u8 as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Add>::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Add>::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Div>::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Div>::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Mul>::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Mul>::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Rem>::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Rem>::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::arith::Sub>::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitOr>::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitXor>::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::BitXor>::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Not>::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shl>::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shl>::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shr>::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<&usize as crate::ops::bit::Shr>::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_] as crate::convert::AsMut>::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[_] as crate::convert::AsRef>::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[_] as crate::slice::SlicePattern>::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[_]>::align_to", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::align_to_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::array_windows", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::as_simd", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::as_simd_mut", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunk_by", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunk_by", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunk_by_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunk_by_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunkByMut::slice]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks", "Argument[0]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks", "Argument[self]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks_exact", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks_exact_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::chunks_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::ChunksMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::partition_dedup", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::partition_dedup_by", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::partition_dedup_by_key", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks", "Argument[self]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks_exact", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks_exact_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rchunks_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::RChunksMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplit", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplit", "Argument[self]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplit_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplit_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplit_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::rsplitn", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::rsplitn_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split", "Argument[0]", "ReturnValue.Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split", "Argument[self]", "ReturnValue.Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_inclusive", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_inclusive", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_inclusive_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_inclusive_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_mut", "Argument[self]", "ReturnValue.Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::split_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[_]>::splitn", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::splitn_mut", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "<[_]>::windows", "Argument[self]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] - - ["lang:core", "<[crate::ascii::ascii_char::AsciiChar]>::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::ascii::ascii_char::AsciiChar]>::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::assume_init_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::assume_init_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_clone_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_copy_of_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_filled", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::write_with", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[u8] as crate::num::dec2flt::common::ByteSlice>::parse_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[u8]>::as_ascii", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[u8]>::as_ascii_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<[u8]>::trim_ascii", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[u8]>::trim_ascii_end", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[u8]>::trim_ascii_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<[u8]>::utf8_chunks", "Argument[self]", "ReturnValue.Field[core::str::lossy::Utf8Chunks::source]", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::array::SpecArrayClone>::clone", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::async_iter::async_iter::IntoAsyncIterator>::into_async_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::borrow::Borrow>::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::borrow::BorrowMut>::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::clone::uninit::CopySpec>::clone_one", "Argument[0].Reference", "Argument[1].Reference", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::convert::From>::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::future::into_future::IntoFuture>::into_future", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::iter::adapters::step_by::SpecRangeSetup>::setup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::ops::bit::BitOr>::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "<_ as crate::slice::sort::shared::smallsort::StableSmallSortTypeImpl>::small_sort", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["lang:core", "<_ as crate::slice::sort::shared::smallsort::UnstableSmallSortFreezeTypeImpl>::small_sort", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "<_ as crate::str::pattern::MultiCharEq>::matches", "Argument[0]", "Argument[self].Reference.Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "<_ as crate::str::pattern::MultiCharEq>::matches", "Argument[self].Reference.ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::max", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::max", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::min", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::min", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::select_unpredictable", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::select_unpredictable", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::then", "Argument[0].ReturnValue", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::then_some", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_utf8_pattern", "Argument[self].Reference", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::str::pattern::Utf8Pattern::CharPattern(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::CharSearcher::haystack]", "value", "dfc-generated"] - - ["lang:core", "::into_searcher", "Argument[self]", "ReturnValue.Field[core::str::pattern::CharSearcher::needle]", "value", "dfc-generated"] - - ["lang:core", "::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_ascii_lowercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::to_ascii_uppercase", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::align", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::from_size_align", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] - - ["lang:core", "::from_size_align_unchecked", "Argument[0]", "ReturnValue.Field[core::alloc::layout::Layout::size]", "value", "dfc-generated"] - - ["lang:core", "::repeat", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::size", "Argument[self].Field[core::alloc::layout::Layout::size]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::array::iter::IntoIter::data]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::to_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_capture", "Argument[self].Field[0].Reference", "Argument[0].Field[core::asserting::Capture::elem].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::borrow", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::borrow", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::borrow_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::borrow_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index", "Argument[self].Field[core::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::index_mut", "Argument[self].Field[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index_mut", "Argument[self].Field[core::bstr::ByteStr(0)].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_bytes", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_bytes", "Argument[self].Field[core::bstr::ByteStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::from_bytes", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_bytes_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::cell::BorrowRef::borrow]", "ReturnValue.Field[core::cell::BorrowRef::borrow]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_array_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_slice_of_cells", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::cell::Cell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::update", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::filter_map", "Argument[0].Field[core::cell::Ref::borrow]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::cell::Ref::borrow]", "value", "dfc-generated"] - - ["lang:core", "::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].Field[core::cell::Ref::borrow]", "ReturnValue.Field[core::cell::Ref::borrow]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::borrow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::borrow_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::try_borrow_unguarded", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::undo_leak", "Argument[self].Field[core::cell::RefCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::filter_map", "Argument[0].Field[core::cell::RefMut::borrow]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[core::cell::RefMut::borrow]", "value", "dfc-generated"] - - ["lang:core", "::filter_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::filter_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].Field[core::cell::RefMut::borrow]", "ReturnValue.Field[core::cell::RefMut::borrow]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_split", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "::map_split", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::cell::SyncUnsafeCell::value].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::raw_get", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::cell::once::OnceCell::inner].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[0].Field[core::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::char::EscapeDebug(0)].Field[core::char::EscapeDebugInner::Char(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::next", "Argument[self].Field[core::char::decode::DecodeUtf16::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unpaired_surrogate", "Argument[self].Field[core::char::decode::DecodeUtf16Error::code]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::then", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::then", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::then_with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::then_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::provide_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::provide_ref_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::provide_value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::provide_value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::error::Source::current]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_request", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::backslash", "Argument[0]", "ReturnValue.Field[core::escape::EscapeIterInner::data].Element", "value", "dfc-generated"] - - ["lang:core", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::escape::EscapeIterInner::alive].Field[core::ops::range::Range::start]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::escape::EscapeIterInner::alive].Field[core::ops::range::Range::end]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::deref", "Argument[self].Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[core::ffi::va_list::VaList::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_va_list", "Argument[self]", "ReturnValue.Field[core::ffi::va_list::VaList::inner]", "value", "dfc-generated"] - - ["lang:core", "::with_copy", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_statically_known_str", "Argument[self].Field[core::fmt::Arguments::pieces].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::as_str", "Argument[self].Field[core::fmt::Arguments::pieces].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_const", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - - ["lang:core", "::new_v1", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - - ["lang:core", "::new_v1", "Argument[1]", "ReturnValue.Field[core::fmt::Arguments::args]", "value", "dfc-generated"] - - ["lang:core", "::new_v1_formatted", "Argument[0]", "ReturnValue.Field[core::fmt::Arguments::pieces]", "value", "dfc-generated"] - - ["lang:core", "::new_v1_formatted", "Argument[1]", "ReturnValue.Field[core::fmt::Arguments::args]", "value", "dfc-generated"] - - ["lang:core", "::new_v1_formatted", "Argument[2]", "ReturnValue.Field[core::fmt::Arguments::fmt].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::debug_list", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - - ["lang:core", "::debug_map", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugMap::fmt]", "value", "dfc-generated"] - - ["lang:core", "::debug_set", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - - ["lang:core", "::debug_struct", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugStruct::fmt]", "value", "dfc-generated"] - - ["lang:core", "::debug_tuple", "Argument[self]", "ReturnValue.Field[core::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] - - ["lang:core", "::flags", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - - ["lang:core", "::options", "Argument[self].Field[core::fmt::Formatter::options]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::pad", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pad_integral", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::padding", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::precision", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::width", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::with_options", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - - ["lang:core", "::with_options", "Argument[self].Field[core::fmt::Formatter::buf]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] - - ["lang:core", "::align", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::alternate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::create_formatter", "Argument[0]", "ReturnValue.Field[core::fmt::Formatter::buf]", "value", "dfc-generated"] - - ["lang:core", "::create_formatter", "Argument[self]", "ReturnValue.Field[core::fmt::Formatter::options]", "value", "dfc-generated"] - - ["lang:core", "::debug_as_hex", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fill", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_precision", "Argument[self].Field[core::fmt::FormattingOptions::precision]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_width", "Argument[self].Field[core::fmt::FormattingOptions::width]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::precision", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::sign", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::sign_aware_zero_pad", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::width", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::finish", "Argument[self].Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish", "Argument[self].Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugMap::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::key", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::key_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::value", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::value_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entries", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entry", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::entry_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::finish", "Argument[self].Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish", "Argument[self].Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugStruct::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::field", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::field_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish", "Argument[self].Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::finish_non_exhaustive", "Argument[self].Field[core::fmt::builders::DebugTuple::result]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::from_usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::fmt::rt::Placeholder::position]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::fmt::rt::Placeholder::fill]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::fmt::rt::Placeholder::align]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[core::fmt::rt::Placeholder::flags]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[4]", "ReturnValue.Field[core::fmt::rt::Placeholder::precision]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[5]", "ReturnValue.Field[core::fmt::rt::Placeholder::width]", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::future::ready::Ready(0)].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new_with_keys", "Argument[0]", "ReturnValue.Field[core::hash::sip::SipHasher13::hasher].Field[core::hash::sip::Hasher::k0]", "value", "dfc-generated"] - - ["lang:core", "::new_with_keys", "Argument[1]", "ReturnValue.Field[core::hash::sip::SipHasher13::hasher].Field[core::hash::sip::Hasher::k1]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::buf]", "value", "dfc-generated"] - - ["lang:core", "::clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::init_len", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::len", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::set_init", "Argument[0]", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - - ["lang:core", "::set_init", "Argument[0]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - - ["lang:core", "::set_init", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::init]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedBuf::init]", "value", "dfc-generated"] - - ["lang:core", "::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unfilled", "Argument[self].Field[core::io::borrowed_buf::BorrowedBuf::filled]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] - - ["lang:core", "::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_unchecked", "Argument[self]", "ReturnValue", "value", "df-generated"] - - ["lang:core", "::capacity", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::ensure_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::reborrow", "Argument[self].Field[core::io::borrowed_buf::BorrowedCursor::start]", "ReturnValue.Field[core::io::borrowed_buf::BorrowedCursor::start]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::set_init", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::written", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_remainder", "Argument[self].Field[core::iter::adapters::array_chunks::ArrayChunks::remainder]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::array_chunks::ArrayChunks::iter]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::by_ref_sized::ByRefSized(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::by_ref_sized::ByRefSized(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::chain::Chain::a].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::chain::Chain::b].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cloned::Cloned::it]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::copied::Copied::it]", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig].Reference", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[core::iter::adapters::cycle::Cycle::orig]", "Argument[self].Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0].Reference", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::orig]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::cycle::Cycle::orig]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::__iterator_get_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::count]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::enumerate::Enumerate::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::enumerate::Enumerate::iter]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::filter::Filter::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::filter::Filter::predicate]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::filter_map::FilterMap::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::filter_map::FilterMap::f]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Reference", "ReturnValue.Field[core::iter::adapters::flatten::FlatMap::inner]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_parts", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Field[core::iter::adapters::flatten::FlattenCompat::backiter]", "ReturnValue.Field[2]", "value", "dfc-generated"] - - ["lang:core", "::into_parts", "Argument[self].Field[core::iter::adapters::flatten::FlatMap::inner].Field[core::iter::adapters::flatten::FlattenCompat::frontiter]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::iter::adapters::flatten::Flatten::inner].Reference", "ReturnValue.Field[core::iter::adapters::flatten::Flatten::inner]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::find", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfind", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::iter::adapters::fuse::Fuse::iter]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::fuse::Fuse::iter].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::inspect::Inspect::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::inspect::Inspect::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::inspect::Inspect::f]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::intersperse::Intersperse::separator].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::Intersperse::separator]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::intersperse::IntersperseWith::separator]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::__iterator_get_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::iter::adapters::map::Map::iter]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::map::Map::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map::Map::f]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::map_while::MapWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::map_while::MapWhile::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map_while::MapWhile::predicate]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::iter::adapters::map_windows::Buffer::start]", "ReturnValue.Field[core::iter::adapters::map_windows::Buffer::start]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::map_windows::MapWindows::f]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::peekable::Peekable::iter]", "value", "dfc-generated"] - - ["lang:core", "::next_if", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::next_if", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next_if_eq", "Argument[self].Field[core::iter::adapters::peekable::Peekable::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::peek", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::peek_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::iter::adapters::rev::Rev::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::rev::Rev::iter]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::scan::Scan::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::scan::Scan::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::scan::Scan::state]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::iter::adapters::scan::Scan::f]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::skip::Skip::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::skip::Skip::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::skip::Skip::n]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::skip_while::SkipWhile::predicate]", "value", "dfc-generated"] - - ["lang:core", "::spec_next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::spec_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_rfold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::spec_next", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::spec_nth", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[core::iter::adapters::step_by::StepBy::iter].Element", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::spec_fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::len", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::adapters::take::Take::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::iter::adapters::take::Take::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::take::Take::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::take::Take::n]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::adapters::take_while::TakeWhile::iter].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::take_while::TakeWhile::predicate]", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::spec_fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::iter::adapters::zip::Zip::a]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::iter::adapters::zip::Zip::b]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::sources::repeat::Repeat::element].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::iter::sources::repeat::Repeat::element]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatN::count]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::advance_back_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::nth_back", "Argument[self].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::rfold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::len", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::advance_by", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::count", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::iter::sources::repeat_n::RepeatN::count]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_fold", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::deref", "Argument[self].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[0].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::mem::manually_drop::ManuallyDrop::value]", "value", "dfc-generated"] - - ["lang:core", "::take", "Argument[0].Field[core::mem::manually_drop::ManuallyDrop::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::copy_from_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fill", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fill_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_as_mut_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_as_ptr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_assume_init_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::slice_assume_init_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V4(0)].Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V4(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)].Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - - ["lang:core", "::to_canonical", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_octets", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::from_octets", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[core::net::ip_addr::Ipv4Addr::octets].Element", "value", "dfc-generated"] - - ["lang:core", "::octets", "Argument[self].Field[core::net::ip_addr::Ipv4Addr::octets]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_octets", "Argument[self].Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::from_octets", "Argument[0]", "ReturnValue.Field[core::net::ip_addr::Ipv6Addr::octets]", "value", "dfc-generated"] - - ["lang:core", "::octets", "Argument[self].Field[core::net::ip_addr::Ipv6Addr::octets]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::to_canonical", "Argument[self].Reference", "ReturnValue.Field[core::net::ip_addr::IpAddr::V6(0)]", "value", "dfc-generated"] - - ["lang:core", "::to_ipv4_mapped", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0].Field[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V4(0)].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddr::V6(0)].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::ip", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["lang:core", "::port", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::set_ip", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::ip]", "value", "dfc-generated"] - - ["lang:core", "::set_port", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV4::port]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::flowinfo", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::ip", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::ip]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[core::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] - - ["lang:core", "::port", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::port]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::scope_id", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::scope_id]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::set_flowinfo", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::flowinfo]", "value", "dfc-generated"] - - ["lang:core", "::set_ip", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::ip]", "value", "dfc-generated"] - - ["lang:core", "::set_port", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::port]", "value", "dfc-generated"] - - ["lang:core", "::set_scope_id", "Argument[0]", "Argument[self].Field[core::net::socket_addr::SocketAddrV6::scope_id]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::num::bignum::Big32x40::base]", "ReturnValue.Field[core::num::bignum::Big32x40::base]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[self].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::digits", "Argument[self].Field[core::num::bignum::Big32x40::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::div_rem", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[2].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::from_small", "Argument[0]", "ReturnValue.Field[core::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_pow2", "Argument[self].Field[core::num::bignum::Big32x40::base].Element", "ReturnValue.Field[core::num::bignum::Big32x40::base].Element", "value", "dfc-generated"] - - ["lang:core", "::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_small", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[0].Field[core::num::bignum::Big32x40::size]", "Argument[self].Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[self].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::num::bignum::tests::Big8x3::base]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::add_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::digits", "Argument[self].Field[core::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::div_rem", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[2].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::div_rem_small", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::from_small", "Argument[0]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_bit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_bit", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul_digits", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_pow2", "Argument[self].Field[core::num::bignum::tests::Big8x3::base].Element", "ReturnValue.Field[core::num::bignum::tests::Big8x3::base].Element", "value", "dfc-generated"] - - ["lang:core", "::mul_pow2", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_pow5", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::mul_small", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::mul_small", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[0].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[self].Field[core::num::bignum::tests::Big8x3::size]", "ReturnValue.Field[core::num::bignum::tests::Big8x3::size]", "value", "dfc-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::zero_pow2", "Argument[0]", "ReturnValue.Field[core::num::dec2flt::common::BiasedFp::p_biased]", "value", "dfc-generated"] - - ["lang:core", "::right_shift", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::try_add_digit", "Argument[0]", "Argument[self].Field[core::num::dec2flt::decimal_seq::DecimalSeq::digits].Element", "value", "dfc-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::normalize", "Argument[self].Field[core::num::diy_float::Fp::e]", "ReturnValue.Field[core::num::diy_float::Fp::e]", "value", "dfc-generated"] - - ["lang:core", "::normalize", "Argument[self].Field[core::num::diy_float::Fp::f]", "ReturnValue.Field[core::num::diy_float::Fp::f]", "value", "dfc-generated"] - - ["lang:core", "::normalize_to", "Argument[0]", "ReturnValue.Field[core::num::diy_float::Fp::e]", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::kind", "Argument[self].Field[core::num::error::ParseIntError::kind]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::len", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::write", "Argument[self].Reference.Field[core::num::fmt::Part::Zero(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::I32NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::I64NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::I64NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI128Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI128Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI16Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI16Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI32Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI32Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI64Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI64Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroI8Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroI8Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroIsizeInner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroIsizeInner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU128Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU128Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU16Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU16Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU32Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU32Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU64Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU64Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroU8Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroU8Inner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::NonZeroUsizeInner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::NonZeroUsizeInner(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::U32NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::U32NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::U64NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::U64NotAllOnes(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::num::niche_types::UsizeNoHighBit(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::from_mut_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self].Field[0]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] - - ["lang:core", "::abs", "Argument[self].Field[core::num::saturating::Saturating(0)]", "ReturnValue.Field[core::num::saturating::Saturating(0)]", "value", "dfc-generated"] - - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::shr_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self].Field[0]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - - ["lang:core", "::abs", "Argument[self].Field[core::num::wrapping::Wrapping(0)]", "ReturnValue.Field[core::num::wrapping::Wrapping(0)]", "value", "dfc-generated"] - - ["lang:core", "::from_residual", "Argument[0].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::branch", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::break_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::continue_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_try", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_value", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_break", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_break", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_break", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_continue", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_continue", "Argument[self].Field[core::ops::control_flow::ControlFlow::Break(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Break(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_continue", "Argument[self].Field[core::ops::control_flow::ControlFlow::Continue(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::end", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[1]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["lang:core", "::start", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["lang:core", "::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["lang:core", "::take_prefix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["lang:core", "::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["lang:core", "::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "Argument[self].Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["lang:core", "::take_suffix", "Argument[self].Field[core::ops::index_range::IndexRange::start]", "ReturnValue.Field[core::ops::index_range::IndexRange::start]", "value", "dfc-generated"] - - ["lang:core", "::zero_to", "Argument[0]", "ReturnValue.Field[core::ops::index_range::IndexRange::end]", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Reference.Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Reference.Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Reference.Field[core::ops::range::Bound::Excluded(0)]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Reference.Field[core::ops::range::Bound::Included(0)]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[core::ops::range::Bound::Excluded(0)].Reference", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[core::ops::range::Bound::Included(0)].Reference", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[core::ops::range::Bound::Excluded(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[core::ops::range::Bound::Included(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Range::end]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Range::start]", "value", "dfc-generated"] - - ["lang:core", "::setup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_next", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_next_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_next_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_nth", "Argument[self].Field[core::ops::range::Range::end].Reference", "Argument[self].Field[core::ops::range::Range::start]", "value", "dfc-generated"] - - ["lang:core", "::spec_nth", "Argument[self].Field[core::ops::range::Range::end]", "Argument[self].Field[core::ops::range::Range::start]", "value", "dfc-generated"] - - ["lang:core", "::spec_nth_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_nth_back", "Argument[self].Field[core::ops::range::Range::start]", "Argument[self].Field[core::ops::range::Range::end]", "value", "dfc-generated"] - - ["lang:core", "::spec_nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::max", "Argument[self].Field[core::ops::range::Range::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::max", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::min", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::RangeFrom::start]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::get", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_mut", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_unchecked", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_unchecked_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::index", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::index_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_next", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_next", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::spec_try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::spec_try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::spec_try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::try_rfold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::max", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::max", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::min", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::min", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::ops::range::RangeInclusive::end].Reference", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start].Reference", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::end", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::ops::range::RangeInclusive::start]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::ops::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["lang:core", "::start", "Argument[self].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::ops::range::RangeToInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::branch", "Argument[self].Field[0]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::branch", "Argument[self].Field[core::ops::try_trait::NeverShortCircuit(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[core::ops::try_trait::NeverShortCircuit(0)]", "value", "dfc-generated"] - - ["lang:core", "::wrap_mut_1", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrap_mut_2", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::option::Iter::inner].Reference", "ReturnValue.Field[core::option::Iter::inner]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::option::Iter::inner]", "ReturnValue.Field[core::option::Iter::inner]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::option::Option::Some(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::branch", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[core::option::Option::Some(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::copied", "Argument[self].Field[core::option::Option::Some(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::expect", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::flatten", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert_default", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert_with", "Argument[0].ReturnValue", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert_with", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::get_or_insert_with", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::insert", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::insert", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_none_or", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_none_or", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::is_some_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_some_and", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::map", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:core", "::map", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[self].Field[core::option::Option::Some(0)].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::ok_or", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::ok_or", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::ok_or_else", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::ok_or_else", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::ok_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::or_else", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::take_if", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::unwrap", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_default", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_unchecked", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unzip", "Argument[self].Field[core::option::Option::Some(0)].Field[0]", "ReturnValue.Field[0].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::unzip", "Argument[self].Field[core::option::Option::Some(0)].Field[1]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::xor", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::xor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::zip", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::zip", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::zip_with", "Argument[0].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "::zip_with", "Argument[1].ReturnValue", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::zip_with", "Argument[self].Field[core::option::Option::Some(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::column", "Argument[self].Field[core::panic::location::Location::col]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::file", "Argument[self].Field[core::panic::location::Location::file]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::internal_constructor", "Argument[0]", "ReturnValue.Field[core::panic::location::Location::file]", "value", "dfc-generated"] - - ["lang:core", "::internal_constructor", "Argument[1]", "ReturnValue.Field[core::panic::location::Location::line]", "value", "dfc-generated"] - - ["lang:core", "::internal_constructor", "Argument[2]", "ReturnValue.Field[core::panic::location::Location::col]", "value", "dfc-generated"] - - ["lang:core", "::line", "Argument[self].Field[core::panic::location::Location::line]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::can_unwind", "Argument[self].Field[core::panic::panic_info::PanicInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::force_no_backtrace", "Argument[self].Field[core::panic::panic_info::PanicInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::location", "Argument[self].Field[core::panic::panic_info::PanicInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::message", "Argument[self].Field[core::panic::panic_info::PanicInfo::message]", "ReturnValue.Field[core::panic::panic_info::PanicMessage::message]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::message]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::location]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::can_unwind]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[core::panic::panic_info::PanicInfo::force_no_backtrace]", "value", "dfc-generated"] - - ["lang:core", "::as_str", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::deref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref", "Argument[self].Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[core::panic::unwind_safe::AssertUnwindSafe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::call_once", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::deref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::deref_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_ref", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::get_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[0].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner_unchecked", "Argument[0].Field[core::pin::Pin::__pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_ref", "Argument[self].Field[core::pin::Pin::__pointer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked", "Argument[0].ReturnValue.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked_mut", "Argument[0].ReturnValue.Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked_mut", "Argument[0].ReturnValue", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[0]", "ReturnValue.Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_unchecked_mut", "Argument[self].Field[core::pin::Pin::__pointer]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::set", "Argument[0]", "Argument[self].Field[core::pin::Pin::__pointer].Reference", "value", "dfc-generated"] - - ["lang:core", "::static_mut", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::static_mut", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::static_ref", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::static_ref", "Argument[0]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["lang:core", "::as_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::max", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::max", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_ref", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::ptr::unique::Unique::pointer]", "value", "dfc-generated"] - - ["lang:core", "::as_non_null_ptr", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::range::Range::end]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::range::Range::start]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::range::Range::end]", "ReturnValue.Field[core::ops::range::Bound::Excluded(0)]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::Range::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::RangeFrom::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::range::RangeInclusive::end]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::range::RangeInclusive::start]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[1].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_bounds", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[0].Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::end_bound", "Argument[self].Field[core::range::RangeInclusive::end]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::start_bound", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::ops::range::Bound::Included(0)]", "value", "dfc-generated"] - - ["lang:core", "::into_slice_range", "Argument[self].Field[core::range::RangeInclusive::start]", "ReturnValue.Field[core::range::Range::start]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::nth_back", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::last", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::max", "Argument[self].Field[0].Field[core::ops::range::Range::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::min", "Argument[self].Field[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::next", "Argument[self].Field[0].Field[core::ops::range::Range::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::remainder", "Argument[self].Field[0].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] - - ["lang:core", "::remainder", "Argument[self].Field[core::range::iter::IterRangeFrom(0)].Field[core::ops::range::RangeFrom::start]", "ReturnValue.Field[core::range::RangeFrom::start]", "value", "dfc-generated"] - - ["lang:core", "::advance_back_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::advance_by", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::last", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::max", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::end]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::min", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::next", "Argument[self].Field[0].Field[core::ops::range::RangeInclusive::start]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::remainder", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::result::Iter::inner]", "ReturnValue.Field[core::result::Iter::inner]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::result::Result::Err(0)].Reference", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::result::Result::Ok(0)].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::branch", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::ops::control_flow::ControlFlow::Continue(0)]", "value", "dfc-generated"] - - ["lang:core", "::from_output", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::and", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::and", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::and_then", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::as_deref", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_deref_mut", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self].Reference.Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Reference.Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self].Reference.Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::cloned", "Argument[self].Field[core::result::Result::Ok(0)].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::copied", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::copied", "Argument[self].Field[core::result::Result::Ok(0)].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::expect", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::expect_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::flatten", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::flatten", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::inspect_err", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_ok", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_err_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_err_and", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::is_ok_and", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::is_ok_and", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::iter", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::iter_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::ok", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::or", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::transpose", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::transpose", "Argument[self].Field[core::result::Result::Ok(0)].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::unwrap", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_err", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_err_unchecked", "Argument[self].Field[core::result::Result::Err(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_default", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[self].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::unwrap_unchecked", "Argument[self].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::ArrayChunks::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::remainder", "Argument[self].Field[core::slice::iter::ArrayChunks::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_remainder", "Argument[self].Field[core::slice::iter::ArrayChunksMut::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::count", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::ArrayWindows::num]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkBy::slice]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunkBy::predicate]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunkByMut::slice]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunkByMut::predicate]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Chunks::chunk_size]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Chunks::v]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "Argument[self].Field[core::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "Argument[self].Field[core::slice::iter::Chunks::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::Chunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Chunks::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Chunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::ChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::ChunksExact::rem]", "ReturnValue.Field[core::slice::iter::ChunksExact::rem]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::ChunksExact::v]", "ReturnValue.Field[core::slice::iter::ChunksExact::v]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::ChunksExact::v].Element", "Argument[self].Field[core::slice::iter::ChunksExact::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::ChunksExact::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::remainder", "Argument[self].Field[core::slice::iter::ChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_remainder", "Argument[self].Field[core::slice::iter::ChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::ChunksMut::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::ChunksMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::GenericSplitN::iter].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Iter::_marker]", "ReturnValue.Field[core::slice::iter::Iter::_marker]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Iter::end_or_len]", "ReturnValue.Field[core::slice::iter::Iter::end_or_len]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Iter::ptr]", "ReturnValue.Field[core::slice::iter::Iter::ptr]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::RChunks::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::RChunks::v]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "Argument[self].Field[core::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "Argument[self].Field[core::slice::iter::RChunks::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::RChunks::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunks::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunks::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::RChunksExact::chunk_size]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::RChunksExact::rem]", "ReturnValue.Field[core::slice::iter::RChunksExact::rem]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::RChunksExact::v]", "ReturnValue.Field[core::slice::iter::RChunksExact::v]", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::RChunksExact::v].Element", "Argument[self].Field[core::slice::iter::RChunksExact::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::RChunksExact::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksExact::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::remainder", "Argument[self].Field[core::slice::iter::RChunksExact::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_remainder", "Argument[self].Field[core::slice::iter::RChunksExactMut::rem]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksExactMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RChunksMut::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RChunksMut::chunk_size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplit::inner].Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitMut::inner].Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::RSplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::finish", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::as_slice", "Argument[self].Field[core::slice::iter::Split::v]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Split::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Split::pred]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::SplitInclusive::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusive::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitInclusive::pred]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitInclusiveMut::pred]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitMut::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitMut::pred]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitN::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::size_hint", "Argument[self].Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::iter]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::SplitNMut::inner].Field[core::slice::iter::GenericSplitN::count]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Windows::size]", "ReturnValue.Field[core::slice::iter::Windows::size]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::slice::iter::Windows::v]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth_back", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::last", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::Windows::v].Element", "Argument[self].Field[core::slice::iter::Windows::v].Reference", "value", "dfc-generated"] - - ["lang:core", "::nth", "Argument[self].Field[core::slice::iter::Windows::v].Element", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::slice::iter::Windows::v]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::slice::iter::Windows::size]", "value", "dfc-generated"] - - ["lang:core", "::call", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::error_len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::valid_up_to", "Argument[self].Field[core::str::error::Utf8Error::valid_up_to]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::last", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::offset", "Argument[self].Field[core::str::iter::CharIndices::front_offset]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self].Field[core::str::iter::EncodeUtf16::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Reference", "ReturnValue.Field[core::str::iter::MatchIndicesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::str::iter::MatchIndicesInternal(0)].Reference", "ReturnValue.Field[core::str::iter::MatchIndicesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[0].Reference", "ReturnValue.Field[core::str::iter::MatchesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::str::iter::MatchesInternal(0)].Reference", "ReturnValue.Field[core::str::iter::MatchesInternal(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::str::iter::SplitInternal::matcher].Reference", "ReturnValue.Field[core::str::iter::SplitInternal::matcher]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::str::iter::SplitNInternal::iter].Reference", "ReturnValue.Field[core::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Field[core::str::iter::SplitNInternal::iter]", "ReturnValue.Field[core::str::iter::SplitNInternal::iter]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::invalid", "Argument[self].Field[core::str::lossy::Utf8Chunk::invalid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::valid", "Argument[self].Field[core::str::lossy::Utf8Chunk::valid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::debug", "Argument[self].Field[core::str::lossy::Utf8Chunks::source]", "ReturnValue.Field[core::str::lossy::Debug(0)]", "value", "dfc-generated"] - - ["lang:core", "::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_match_back", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "value", "dfc-generated"] - - ["lang:core", "::next_match_back", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::haystack", "Argument[self].Field[core::str::pattern::CharSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_match", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::next_match", "Argument[self].Field[core::str::pattern::CharSearcher::finger_back]", "Argument[self].Field[core::str::pattern::CharSearcher::finger]", "value", "dfc-generated"] - - ["lang:core", "::matching", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[0]", "value", "dfc-generated"] - - ["lang:core", "::matching", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[1]", "value", "dfc-generated"] - - ["lang:core", "::into_searcher", "Argument[0]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::haystack]", "value", "dfc-generated"] - - ["lang:core", "::into_searcher", "Argument[self].Field[0]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] - - ["lang:core", "::into_searcher", "Argument[self].Field[core::str::pattern::MultiCharEqPattern(0)]", "ReturnValue.Field[core::str::pattern::MultiCharEqSearcher::char_eq]", "value", "dfc-generated"] - - ["lang:core", "::haystack", "Argument[self].Field[core::str::pattern::MultiCharEqSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::matching", "Argument[0]", "ReturnValue.Field[core::str::pattern::SearchStep::Match(0)]", "value", "dfc-generated"] - - ["lang:core", "::matching", "Argument[1]", "ReturnValue.Field[core::str::pattern::SearchStep::Match(1)]", "value", "dfc-generated"] - - ["lang:core", "::rejecting", "Argument[0]", "ReturnValue.Field[core::str::pattern::SearchStep::Reject(0)]", "value", "dfc-generated"] - - ["lang:core", "::rejecting", "Argument[1]", "ReturnValue.Field[core::str::pattern::SearchStep::Reject(1)]", "value", "dfc-generated"] - - ["lang:core", "::haystack", "Argument[self].Field[core::str::pattern::StrSearcher::haystack]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicI8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicIsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicPtr::p].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU128::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU16::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU32::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU64::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicU8::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::get_mut_slice", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::atomic::AtomicUsize::v].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:core", "::from_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_pin_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::get_mut", "Argument[self].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::get_pin_mut", "Argument[self].Field[core::pin::Pin::__pointer].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::into_inner", "Argument[self].Field[core::sync::exclusive::Exclusive::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::sync::exclusive::Exclusive::inner]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::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"] - - ["lang:core", "::async_gen_ready", "Argument[0]", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)]", "value", "dfc-generated"] - - ["lang:core", "::map", "Argument[self].Field[core::task::poll::Poll::Ready(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::map_err", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:core", "::map_err", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Err(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::map_ok", "Argument[0].ReturnValue", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::map_ok", "Argument[self].Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "::from_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::Context::waker]", "value", "dfc-generated"] - - ["lang:core", "::local_waker", "Argument[self].Field[core::task::wake::Context::local_waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::waker", "Argument[self].Field[core::task::wake::Context::waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::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"] - - ["lang:core", "::build", "Argument[self].Field[core::task::wake::ContextBuilder::local_waker]", "ReturnValue.Field[core::task::wake::Context::local_waker]", "value", "dfc-generated"] - - ["lang:core", "::build", "Argument[self].Field[core::task::wake::ContextBuilder::waker]", "ReturnValue.Field[core::task::wake::Context::waker]", "value", "dfc-generated"] - - ["lang:core", "::ext", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::ext].Field[core::task::wake::ExtData::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::task::wake::Context::local_waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0].Field[core::task::wake::Context::waker]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - - ["lang:core", "::from_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - - ["lang:core", "::local_waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::local_waker]", "value", "dfc-generated"] - - ["lang:core", "::waker", "Argument[0]", "ReturnValue.Field[core::task::wake::ContextBuilder::waker]", "value", "dfc-generated"] - - ["lang:core", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["lang:core", "::data", "Argument[self].Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from_raw", "Argument[0]", "ReturnValue.Field[core::task::wake::LocalWaker::waker]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - - ["lang:core", "::vtable", "Argument[self].Field[core::task::wake::LocalWaker::waker].Field[core::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::task::wake::RawWakerVTable::clone]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::task::wake::RawWakerVTable::wake]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[2]", "ReturnValue.Field[core::task::wake::RawWakerVTable::wake_by_ref]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[3]", "ReturnValue.Field[core::task::wake::RawWakerVTable::drop]", "value", "dfc-generated"] - - ["lang:core", "::clone_from", "Argument[0].Reference", "Argument[self].Reference", "value", "dfc-generated"] - - ["lang:core", "::data", "Argument[self].Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::data]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from_raw", "Argument[0]", "ReturnValue.Field[core::task::wake::Waker::waker]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::data]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::vtable]", "value", "dfc-generated"] - - ["lang:core", "::vtable", "Argument[self].Field[core::task::wake::Waker::waker].Field[core::task::wake::RawWaker::vtable]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::as_micros", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_millis", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_millis_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_millis_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_nanos", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_secs", "Argument[self].Field[core::time::Duration::secs]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_secs_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_secs_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_duration_f32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_duration_f32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_duration_f64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_duration_f64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_days", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_hours", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_micros", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_millis", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_mins", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_nanos", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_secs", "Argument[0]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["lang:core", "::from_weeks", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::new", "Argument[0]", "ReturnValue.Field[core::time::Duration::secs]", "value", "dfc-generated"] - - ["lang:core", "::new", "Argument[1]", "ReturnValue.Field[core::time::Duration::nanos].Field[core::num::niche_types::Nanoseconds(0)]", "value", "dfc-generated"] - - ["lang:core", "::saturating_mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_mut_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_ref_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::downcast_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sources", "Argument[self]", "ReturnValue.Field[core::error::Source::current].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::minimum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::minimum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::minimum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clamp", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clamp", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::maximum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::minimum", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::minimum", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_down", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::next_up", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::cast_unsigned", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_abs", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::checked_ilog10", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:core", "::overflowing_neg", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::saturating_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::strict_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::wrapping_abs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ascii", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_bytes_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_mut_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_ptr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::as_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rsplitn", "Argument[0]", "ReturnValue.Field[core::str::iter::RSplitN(0)].Field[core::str::iter::SplitNInternal::count]", "value", "dfc-generated"] - - ["lang:core", "::splitn", "Argument[0]", "ReturnValue.Field[core::str::iter::SplitN(0)].Field[core::str::iter::SplitNInternal::count]", "value", "dfc-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_div_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::full_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::ascii_change_case_unchecked", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_ascii_lowercase", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_ascii_uppercase", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::from_u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u128", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u64", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::to_u8", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::carrying_mul_add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::disjoint_bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::steps_between", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::mul", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shl", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::shr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::index", "Argument[0].Reference.Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::index_mut", "Argument[0].Reference.Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:core", "::abs_diff", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::abs_diff", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::cast_signed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::checked_next_multiple_of", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "::div_ceil", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_ceil", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::div_floor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_least_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::isolate_most_significant_one", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::midpoint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::next_multiple_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "::overflowing_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::overflowing_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::pow", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::repeat_u16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::strict_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_div_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "::wrapping_rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::array::drain::drain_array_with", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::char::convert::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::char::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::cmp::max", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by_key", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::max_by_key", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by_key", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::min_by_key", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by", "Argument[0]", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by_key", "Argument[0]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by_key", "Argument[0]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by_key", "Argument[1]", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::cmp::minmax_by_key", "Argument[1]", "ReturnValue.Element", "value", "dfc-generated"] - - ["lang:core", "crate::contracts::build_check_ensures", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::convert::identity", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::debug_list_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugList::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::debug_map_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugMap::fmt]", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::debug_set_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugSet::inner].Field[core::fmt::builders::DebugInner::fmt]", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::debug_struct_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugStruct::fmt]", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::debug_tuple_new", "Argument[0]", "ReturnValue.Field[core::fmt::builders::DebugTuple::fmt]", "value", "dfc-generated"] - - ["lang:core", "crate::fmt::builders::from_fn", "Argument[0]", "ReturnValue.Field[core::fmt::builders::FromFn(0)]", "value", "dfc-generated"] - - ["lang:core", "crate::future::poll_fn::poll_fn", "Argument[0]", "ReturnValue.Field[core::future::poll_fn::PollFn::f]", "value", "dfc-generated"] - - ["lang:core", "crate::future::ready::ready", "Argument[0]", "ReturnValue.Field[core::future::ready::Ready(0)].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:core", "crate::hint::must_use", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::intrinsics::contract_check_ensures", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:core", "crate::intrinsics::select_unpredictable", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::intrinsics::select_unpredictable", "Argument[2]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::iter::adapters::try_process", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "crate::iter::sources::from_coroutine::from_coroutine", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_coroutine::FromCoroutine(0)]", "value", "dfc-generated"] - - ["lang:core", "crate::iter::sources::from_fn::from_fn", "Argument[0]", "ReturnValue.Field[core::iter::sources::from_fn::FromFn(0)]", "value", "dfc-generated"] - - ["lang:core", "crate::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"] - - ["lang:core", "crate::iter::sources::repeat::repeat", "Argument[0]", "ReturnValue.Field[core::iter::sources::repeat::Repeat::element]", "value", "dfc-generated"] - - ["lang:core", "crate::iter::sources::repeat_n::repeat_n", "Argument[1]", "ReturnValue.Field[core::iter::sources::repeat_n::RepeatN::count]", "value", "dfc-generated"] - - ["lang:core", "crate::iter::sources::repeat_with::repeat_with", "Argument[0]", "ReturnValue.Field[core::iter::sources::repeat_with::RepeatWith::repeater]", "value", "dfc-generated"] - - ["lang:core", "crate::iter::sources::successors::successors", "Argument[0]", "ReturnValue.Field[core::iter::sources::successors::Successors::next]", "value", "dfc-generated"] - - ["lang:core", "crate::iter::sources::successors::successors", "Argument[1]", "ReturnValue.Field[core::iter::sources::successors::Successors::succ]", "value", "dfc-generated"] - - ["lang:core", "crate::mem::copy", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::mem::transmute_copy", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::estimator::estimate_scaling_factor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::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"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0].Field[core::num::bignum::Big32x40::size]", "ReturnValue.Field[core::num::bignum::Big32x40::size]", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::dragon::mul_pow10", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_exact", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::strategy::grisu::format_shortest", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::flt2dec::to_exact_exp_str", "Argument[5].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::to_exact_fixed_str", "Argument[4].Element", "Argument[0].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::to_shortest_exp_str", "Argument[5]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "crate::num::flt2dec::to_shortest_str", "Argument[4]", "Argument[0].Parameter[1]", "value", "dfc-generated"] - - ["lang:core", "crate::num::int_log10::i128", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::i16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::i32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::i64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::i8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::u128", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::u16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::u8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::num::int_log10::usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::panic::abort_unwind", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::ptr::from_mut", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::ptr::from_ref", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:core", "crate::ptr::with_exposed_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::ptr::with_exposed_provenance_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::slice::index::range", "Argument[1].Field[core::ops::range::RangeTo::end]", "ReturnValue.Field[core::ops::range::Range::end]", "value", "dfc-generated"] - - ["lang:core", "crate::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"] - - ["lang:core", "crate::slice::sort::shared::find_existing_run", "Argument[1].ReturnValue", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::shared::pivot::choose_pivot", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "crate::slice::sort::shared::smallsort::sort4_stable", "Argument[0].Reference", "Argument[2].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::stable::drift::sort", "Argument[0].Element", "Argument[3].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::stable::merge::merge", "Argument[1]", "Argument[3]", "taint", "df-generated"] - - ["lang:core", "crate::slice::sort::stable::quicksort::quicksort", "Argument[0].Element", "Argument[4].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::stable::sort", "Argument[0].Element", "Argument[1].Parameter[1].Reference", "value", "dfc-generated"] - - ["lang:core", "crate::slice::sort::unstable::quicksort::quicksort", "Argument[0]", "Argument[3]", "taint", "df-generated"] - - ["lang:core", "crate::slice::sort::unstable::sort", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:core", "crate::str::converts::from_utf8_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::str::converts::from_utf8_unchecked_mut", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:core", "crate::str::validations::next_code_point", "Argument[0].Element", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["lang:core", "<[_]>::select_nth_unstable", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "<[_]>::select_nth_unstable_by", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "<[_]>::select_nth_unstable_by_key", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "<_ as crate::clone::uninit::CopySpec>::clone_one", "Argument[1]", "pointer-access", "df-generated"] - - ["lang:core", "::force_mut", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:core", "::index", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::digit", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::take", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:core", "::expect", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::map", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:core", "::expect", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::expect_err", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "::unwrap_or_else", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "crate::mem::transmute_copy", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:core", "crate::panicking::assert_failed", "Argument[3]", "log-injection", "df-generated"] - - ["lang:core", "crate::panicking::assert_matches_failed", "Argument[2]", "log-injection", "df-generated"] - - ["lang:core", "crate::panicking::panic_display", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "crate::panicking::panic_str_2015", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "crate::panicking::unreachable_display", "Argument[0]", "log-injection", "df-generated"] - - ["lang:core", "crate::slice::sort::select::partition_at_index", "Argument[1]", "log-injection", "df-generated"] - - ["lang:core", "crate::slice::sort::stable::drift::sort", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:core", "crate::slice::sort::stable::quicksort::quicksort", "Argument[0]", "pointer-access", "df-generated"] - - ["lang:core", "crate::slice::sort::stable::sort", "Argument[0]", "pointer-access", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["lang:core", "<[crate::mem::maybe_uninit::MaybeUninit]>::assume_init_drop", "Argument[self]", "pointer-invalidate", "df-generated"] - - ["lang:core", "crate::intrinsics::drop_in_place", "Argument[0]", "pointer-invalidate", "df-generated"] - - ["lang:core", "crate::ptr::dangling", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["lang:core", "crate::ptr::drop_in_place", "Argument[0]", "pointer-invalidate", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-other.model.yml b/rust/ql/lib/ext/generated/rust/lang-other.model.yml deleted file mode 100644 index 9966c5313e5..00000000000 --- a/rust/ql/lib/ext/generated/rust/lang-other.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["lang:other", "::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:other", "::unset", "Argument[0]", "Argument[self]", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml b/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml deleted file mode 100644 index e8a9ec56f28..00000000000 --- a/rust/ql/lib/ext/generated/rust/lang-proc_macro.model.yml +++ /dev/null @@ -1,142 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["lang:proc_macro", "<&[u8] as crate::bridge::Mark>::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "<&[u8] as crate::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "<&[u8] as crate::bridge::rpc::DecodeMut>::decode", "Argument[0].Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&[u8] as crate::bridge::rpc::DecodeMut>::decode", "Argument[0].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::Unmark>::unmark", "Argument[self].Field[proc_macro::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::FreeFunctions].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::SourceFile].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&crate::bridge::Marked as crate::bridge::rpc::Decode>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::TokenStream].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::Unmark>::unmark", "Argument[self].Field[proc_macro::bridge::Marked::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::FreeFunctions].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::SourceFile].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&mut crate::bridge::Marked as crate::bridge::rpc::DecodeMut>::decode", "Argument[1].Field[proc_macro::bridge::server::HandleStore::TokenStream].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "<&str as crate::bridge::Mark>::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "<&str as crate::bridge::Unmark>::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::delimiter", "Argument[self].Field[0].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::delimiter", "Argument[self].Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[1].Field[proc_macro::TokenStream(0)]", "ReturnValue.Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "value", "dfc-generated"] - - ["lang:proc_macro", "::stream", "Argument[self].Field[0].Field[proc_macro::bridge::Group::stream]", "ReturnValue.Field[proc_macro::TokenStream(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::stream", "Argument[self].Field[proc_macro::Group(0)].Field[proc_macro::bridge::Group::stream]", "ReturnValue.Field[proc_macro::TokenStream(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[1].Field[proc_macro::Span(0)]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new_raw", "Argument[1].Field[0]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new_raw", "Argument[1].Field[proc_macro::Span(0)]", "ReturnValue.Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "value", "dfc-generated"] - - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[proc_macro::bridge::Ident::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[proc_macro::Ident(0)].Field[proc_macro::bridge::Ident::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[proc_macro::bridge::Literal::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[proc_macro::Literal(0)].Field[proc_macro::bridge::Literal::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::as_char", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::set_span", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[0].Field[proc_macro::bridge::Punct::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::span", "Argument[self].Field[proc_macro::Punct(0)].Field[proc_macro::bridge::Punct::span]", "ReturnValue.Field[proc_macro::Span(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::into_token_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::expand_expr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Group(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Ident(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Literal(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue.Field[proc_macro::TokenTree::Punct(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0].Field[proc_macro::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::close]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::entire]", "value", "dfc-generated"] - - ["lang:proc_macro", "::from_single", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::DelimSpan::open]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Diagnostic::level]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::level]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Diagnostic::message]", "ReturnValue.Field[proc_macro::bridge::Diagnostic::message]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Group::delimiter]", "ReturnValue.Field[proc_macro::bridge::Group::delimiter]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Ident::is_raw]", "ReturnValue.Field[proc_macro::bridge::Ident::is_raw]", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Literal::kind]", "ReturnValue.Field[proc_macro::bridge::Literal::kind]", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::Marked::value]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Marked::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Punct::ch]", "ReturnValue.Field[proc_macro::bridge::Punct::ch]", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self].Field[proc_macro::bridge::Punct::joint]", "ReturnValue.Field[proc_macro::bridge::Punct::joint]", "value", "dfc-generated"] - - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::attr", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::Attr::name]", "value", "dfc-generated"] - - ["lang:proc_macro", "::bang", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::Bang::name]", "value", "dfc-generated"] - - ["lang:proc_macro", "::custom_derive", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::CustomDerive::trait_name]", "value", "dfc-generated"] - - ["lang:proc_macro", "::custom_derive", "Argument[1]", "ReturnValue.Field[proc_macro::bridge::client::ProcMacro::CustomDerive::attributes]", "value", "dfc-generated"] - - ["lang:proc_macro", "::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::Attr::name]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::Bang::name]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::name", "Argument[self].Field[proc_macro::bridge::client::ProcMacro::CustomDerive::trait_name]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::call", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:proc_macro", "::call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::finish", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:proc_macro", "::copy", "Argument[self].Field[proc_macro::bridge::handle::InternedStore::owned].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::handle::InternedStore::owned].Field[proc_macro::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::handle::OwnedStore::counter]", "value", "dfc-generated"] - - ["lang:proc_macro", "::as_str", "Argument[self].Field[proc_macro::bridge::rpc::PanicMessage::StaticStr(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::as_str", "Argument[self].Field[proc_macro::bridge::rpc::PanicMessage::String(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::dispatch", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[proc_macro::bridge::server::MaybeCrossThread::cross_thread]", "value", "dfc-generated"] - - ["lang:proc_macro", "::run_bridge_and_client", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::next", "Argument[self].Field[proc_macro::diagnostic::Children(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:proc_macro", "::error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::level", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::level]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::message", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::message]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "ReturnValue.Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - - ["lang:proc_macro", "::note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::set_level", "Argument[0]", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - - ["lang:proc_macro", "::span_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::span_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::span_note", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::span_warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::spanned", "Argument[1]", "ReturnValue.Field[proc_macro::diagnostic::Diagnostic::level]", "value", "dfc-generated"] - - ["lang:proc_macro", "::spans", "Argument[self].Field[proc_macro::diagnostic::Diagnostic::spans]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::into_spans", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "::decode", "Argument[0].Element", "Argument[0].Reference.Reference", "value", "dfc-generated"] - - ["lang:proc_macro", "crate::bridge::client::state::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:proc_macro", "crate::bridge::client::state::set", "Argument[1]", "Argument[1].Parameter[0]", "value", "dfc-generated"] - - ["lang:proc_macro", "crate::bridge::client::state::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["lang:proc_macro", "::new", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::new_raw", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::f32_suffixed", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::f32_unsuffixed", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::f64_suffixed", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::f64_unsuffixed", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::new", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::new_ident", "Argument[0]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["lang:proc_macro", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/lang-std.model.yml b/rust/ql/lib/ext/generated/rust/lang-std.model.yml deleted file mode 100644 index 7050005e8d1..00000000000 --- a/rust/ql/lib/ext/generated/rust/lang-std.model.yml +++ /dev/null @@ -1,822 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["lang:std", "<&[u8] as crate::io::BufRead>::consume", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::BufRead>::fill_buf", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::Read>::read_buf_exact", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::Read>::read_exact", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::Read>::read_to_end", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::Read>::read_to_string", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&[u8] as crate::io::copy::BufferedReaderSpec>::copy_to", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::arith::Sub>::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::bit::BitAnd>::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::collections::hash::set::HashSet as crate::ops::bit::BitAnd>::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::fs::File as crate::io::Read>::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::fs::File as crate::io::Read>::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stdin as crate::io::Read>::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&crate::os::unix::net::listener::UnixListener as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] - - ["lang:std", "<&crate::sync::mpmc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::Iter::rx]", "value", "dfc-generated"] - - ["lang:std", "<&crate::sync::mpsc::Receiver as crate::iter::traits::collect::IntoIterator>::into_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::Iter::rx]", "value", "dfc-generated"] - - ["lang:std", "<&mut _ as crate::io::BufRead>::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::BufRead>::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "<&mut _ as crate::io::Read>::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[alloc::borrow::Cow::Owned(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::and_modify", "Argument[self].Field[std::collections::hash::map::Entry::Occupied(0)]", "ReturnValue.Field[std::collections::hash::map::Entry::Occupied(0)]", "value", "dfc-generated"] - - ["lang:std", "::and_modify", "Argument[self].Field[std::collections::hash::map::Entry::Vacant(0)]", "ReturnValue.Field[std::collections::hash::map::Entry::Vacant(0)]", "value", "dfc-generated"] - - ["lang:std", "::insert_entry", "Argument[self].Field[std::collections::hash::map::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::HashMap::base].Reference", "ReturnValue.Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::HashMap::base]", "ReturnValue.Field[std::collections::hash::map::HashMap::base]", "value", "dfc-generated"] - - ["lang:std", "::try_insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::collections::hash::map::OccupiedError::value]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Iter::base].Reference", "ReturnValue.Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Iter::base]", "ReturnValue.Field[std::collections::hash::map::Iter::base]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Keys::inner].Reference", "ReturnValue.Field[std::collections::hash::map::Keys::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Keys::inner]", "ReturnValue.Field[std::collections::hash::map::Keys::inner]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Values::inner].Reference", "ReturnValue.Field[std::collections::hash::map::Values::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::map::Values::inner]", "ReturnValue.Field[std::collections::hash::map::Values::inner]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Difference::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Difference::iter]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Difference::iter]", "ReturnValue.Field[std::collections::hash::set::Difference::iter]", "value", "dfc-generated"] - - ["lang:std", "::insert", "Argument[self].Field[std::collections::hash::set::Entry::Occupied(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::HashSet::base].Reference", "ReturnValue.Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::HashSet::base]", "ReturnValue.Field[std::collections::hash::set::HashSet::base]", "value", "dfc-generated"] - - ["lang:std", "::difference", "Argument[0]", "ReturnValue.Field[std::collections::hash::set::Difference::other]", "value", "dfc-generated"] - - ["lang:std", "::intersection", "Argument[0]", "ReturnValue.Field[std::collections::hash::set::Intersection::other]", "value", "dfc-generated"] - - ["lang:std", "::intersection", "Argument[self]", "ReturnValue.Field[std::collections::hash::set::Intersection::other]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Intersection::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Intersection::iter]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Intersection::iter]", "ReturnValue.Field[std::collections::hash::set::Intersection::iter]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Iter::base].Reference", "ReturnValue.Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Iter::base]", "ReturnValue.Field[std::collections::hash::set::Iter::base]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::SymmetricDifference::iter].Reference", "ReturnValue.Field[std::collections::hash::set::SymmetricDifference::iter]", "value", "dfc-generated"] - - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::collections::hash::set::Union::iter].Reference", "ReturnValue.Field[std::collections::hash::set::Union::iter]", "value", "dfc-generated"] - - ["lang:std", "::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::read_to_string", "Argument[self].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::copy_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::error::Report::error]", "value", "dfc-generated"] - - ["lang:std", "::pretty", "Argument[0]", "Argument[self].Field[std::error::Report::pretty]", "value", "dfc-generated"] - - ["lang:std", "::pretty", "Argument[0]", "ReturnValue.Field[std::error::Report::pretty]", "value", "dfc-generated"] - - ["lang:std", "::pretty", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::show_backtrace", "Argument[0]", "Argument[self].Field[std::error::Report::show_backtrace]", "value", "dfc-generated"] - - ["lang:std", "::show_backtrace", "Argument[0]", "ReturnValue.Field[std::error::Report::show_backtrace]", "value", "dfc-generated"] - - ["lang:std", "::show_backtrace", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_bytes", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::ffi::os_str::OsStr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::display", "Argument[self]", "ReturnValue.Field[std::ffi::os_str::Display::os_str]", "value", "dfc-generated"] - - ["lang:std", "::borrow", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::ffi::os_str::OsString::inner].Reference", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::ffi::os_str::OsString::inner]", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::from", "Argument[0].Field[std::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::deref", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::deref_mut", "Argument[self].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_vec", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_str", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::from_str", "Argument[0].Field[std::path::PathBuf::inner]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::ffi::os_str::OsString::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::ffi::os_str::OsString::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_os_str", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::into_encoded_bytes", "Argument[self].Field[std::ffi::os_str::OsString::inner].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[std::fs::DirBuilder::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::recursive", "Argument[0]", "Argument[self].Field[std::fs::DirBuilder::recursive]", "value", "dfc-generated"] - - ["lang:std", "::recursive", "Argument[0]", "ReturnValue.Field[std::fs::DirBuilder::recursive]", "value", "dfc-generated"] - - ["lang:std", "::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::DirEntry(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::File::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::File::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::fs::File::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[std::fs::FileTimes(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::set_accessed", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::set_modified", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::FileType(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::Metadata(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Metadata(0)]", "value", "dfc-generated"] - - ["lang:std", "::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[std::fs::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::fs::Permissions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::fs::Permissions(0)]", "value", "dfc-generated"] - - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["lang:std", "::drop", "Argument[self].Field[std::io::Guard::len]", "Argument[self].Field[std::io::Guard::buf].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::lower_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::upper_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::min_limit", "Argument[self].Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::taken", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::Take::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::limit", "Argument[self].Field[std::io::Take::limit]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::set_limit", "Argument[0]", "Argument[self].Field[std::io::Take::limit]", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::write_all", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::write_all_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::write_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::error", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::error", "Argument[self].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_error", "Argument[self].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_error", "Argument[self].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::buffered::IntoInnerError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_parts", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::consume", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_buf", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_vectored", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::seek_relative", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::buffered::bufreader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["lang:std", "::seek_relative", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::with_buffer", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["lang:std", "::with_buffer", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::buf]", "value", "dfc-generated"] - - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufreader::BufReader::inner]", "value", "dfc-generated"] - - ["lang:std", "::consume", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "value", "dfc-generated"] - - ["lang:std", "::filled", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::filled]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::pos", "Argument[self].Field[std::io::buffered::bufreader::buffer::Buffer::pos]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::buffer", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::buffer_mut", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["lang:std", "::with_buffer", "Argument[0]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["lang:std", "::with_buffer", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::buf]", "value", "dfc-generated"] - - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["lang:std", "::write_to_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::buffered::bufwriter::WriterPanicked::buf]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["lang:std", "::with_capacity", "Argument[1]", "ReturnValue.Field[std::io::buffered::linewriter::LineWriter::inner].Field[std::io::buffered::bufwriter::BufWriter::inner]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::io::buffered::linewritershim::LineWriterShim::buffer]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::io::cursor::Cursor::inner].Reference", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["lang:std", "::clone_from", "Argument[0].Field[std::io::cursor::Cursor::inner]", "Argument[self].Field[std::io::cursor::Cursor::inner].Reference", "value", "dfc-generated"] - - ["lang:std", "::clone_from", "Argument[0].Field[std::io::cursor::Cursor::inner]", "Argument[self].Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone_from", "Argument[0].Field[std::io::cursor::Cursor::pos]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["lang:std", "::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["lang:std", "::seek", "Argument[0].Field[std::io::SeekFrom::Start(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::seek", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::stream_position", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::cursor::Cursor::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::io::cursor::Cursor::inner]", "value", "dfc-generated"] - - ["lang:std", "::position", "Argument[self].Field[std::io::cursor::Cursor::pos]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::set_position", "Argument[0]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[1]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::pipe::PipeReader(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::io::pipe::PipeWriter(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::lines", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::fill_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "::as_mut_buf", "Argument[self].Field[std::io::stdio::StdinLock::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::net::tcp::TcpListener(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::net::tcp::TcpListener(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::net::tcp::TcpListener(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::incoming", "Argument[self]", "ReturnValue.Field[std::net::tcp::Incoming::listener]", "value", "dfc-generated"] - - ["lang:std", "::into_incoming", "Argument[self]", "ReturnValue.Field[std::net::tcp::IntoIncoming::listener]", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::net::tcp::TcpStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::net::tcp::TcpStream(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::net::tcp::TcpStream(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::net::udp::UdpSocket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::net::udp::UdpSocket(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::net::udp::UdpSocket(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_fd", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::os::linux::process::PidFd::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::os::linux::process::PidFd::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::os::linux::process::PidFd::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_parts", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::os::unix::net::addr::SocketAddr::addr]", "value", "dfc-generated"] - - ["lang:std", "::from_parts", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::os::unix::net::addr::SocketAddr::len]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::next", "Argument[self].Field[0].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self].Field[std::os::unix::net::ancillary::ScmRights(0)].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::len", "Argument[self].Field[std::os::unix::net::ancillary::SocketAncillary::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::os::unix::net::ancillary::SocketAncillary::buffer]", "value", "dfc-generated"] - - ["lang:std", "::truncated", "Argument[self].Field[std::os::unix::net::ancillary::SocketAncillary::truncated]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_gid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_gid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_pid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_pid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_uid", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::uid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_uid", "Argument[self].Field[std::os::unix::net::ancillary::SocketCred(0)].Field[libc::unix::linux_like::linux::ucred::uid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::set_gid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::gid]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::set_pid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::pid]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::set_uid", "Argument[0]", "Argument[self].Field[0].Field[libc::unix::linux_like::linux::ucred::uid]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::os::unix::net::datagram::UnixDatagram(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::incoming", "Argument[self]", "ReturnValue.Field[std::os::unix::net::listener::Incoming::listener]", "value", "dfc-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::os::unix::net::stream::UnixStream(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::can_unwind", "Argument[self].Field[std::panic::PanicHookInfo::can_unwind]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::force_no_backtrace", "Argument[self].Field[std::panic::PanicHookInfo::force_no_backtrace]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::location", "Argument[self].Field[std::panic::PanicHookInfo::location]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::panic::PanicHookInfo::location]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[1]", "ReturnValue.Field[std::panic::PanicHookInfo::payload]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[2]", "ReturnValue.Field[std::panic::PanicHookInfo::can_unwind]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[3]", "ReturnValue.Field[std::panic::PanicHookInfo::force_no_backtrace]", "value", "dfc-generated"] - - ["lang:std", "::payload", "Argument[self].Field[std::panic::PanicHookInfo::payload]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self].Field[std::path::Ancestors::next]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Reference.Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_os_str", "Argument[self].Field[std::path::Component::Normal(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::next_back", "Argument[self].Field[std::path::Components::path].Element", "Argument[self].Field[std::path::Components::path].Reference", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self].Field[std::path::Components::path].Element", "Argument[self].Field[std::path::Components::path].Reference", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::ancestors", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_mut_os_str", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_os_str", "Argument[self].Field[std::path::Path::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::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"] - - ["lang:std", "::clone", "Argument[self].Field[std::path::PathBuf::inner].Reference", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Field[std::path::PathBuf::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_mut_os_string", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_path", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_os_string", "Argument[self].Field[std::path::PathBuf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_os_str", "Argument[self].Field[std::path::PrefixComponent::raw]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::kind", "Argument[self].Field[std::path::PrefixComponent::parsed]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::into_pidfd", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::Child::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0].Field[0]", "ReturnValue.Field[std::process::Child::handle]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::process::Child::handle]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::ChildStderr::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStderr::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::process::ChildStderr::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::ChildStdin::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStdin::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::process::ChildStdin::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::ChildStdout::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStdout::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::process::ChildStdout::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::create_pidfd", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::groups", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[std::process::Command::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::env_clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::env_remove", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::envs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::report", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::ExitCode(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ExitCode(0)]", "value", "dfc-generated"] - - ["lang:std", "::to_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::process::ExitStatus(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ExitStatus(0)]", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::process::Stdio(0)]", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_ref", "Argument[self].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::barrier::Barrier::num_threads]", "value", "dfc-generated"] - - ["lang:std", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::is_leader", "Argument[self].Field[std::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::Iter::rx]", "value", "dfc-generated"] - - ["lang:std", "::try_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpmc::TryIter::rx]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::capacity", "Argument[self].Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::len", "Argument[self].Field[std::sync::mpmc::array::Channel::cap]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] - - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - - ["lang:std", "::with_capacity", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::array::Channel::cap]", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::acquire", "Argument[self].Field[std::sync::mpmc::counter::Receiver::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Receiver::counter]", "value", "dfc-generated"] - - ["lang:std", "::acquire", "Argument[self].Field[std::sync::mpmc::counter::Sender::counter]", "ReturnValue.Field[std::sync::mpmc::counter::Sender::counter]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[std::sync::mpsc::SendError(0)]", "ReturnValue.Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::hook", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::select::Selected::Operation(0)].Field[std::sync::mpmc::select::Operation(0)]", "value", "dfc-generated"] - - ["lang:std", "::into", "Argument[self].Field[std::sync::mpmc::select::Selected::Operation(0)].Field[std::sync::mpmc::select::Operation(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::deref", "Argument[self].Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::deref_mut", "Argument[self].Field[std::sync::mpmc::utils::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::mpmc::utils::CachePadded::value]", "value", "dfc-generated"] - - ["lang:std", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpmc::error::SendTimeoutError::Disconnected(0)]", "value", "dfc-generated"] - - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - - ["lang:std", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::mpsc::TrySendError::Full(0)]", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::Iter::rx]", "value", "dfc-generated"] - - ["lang:std", "::try_iter", "Argument[self]", "ReturnValue.Field[std::sync::mpsc::TryIter::rx]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sync::mpsc::Sender::inner].Reference", "ReturnValue.Field[std::sync::mpsc::Sender::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sync::mpsc::Sender::inner]", "ReturnValue.Field[std::sync::mpsc::Sender::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sync::mpsc::SyncSender::inner].Reference", "ReturnValue.Field[std::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sync::mpsc::SyncSender::inner]", "ReturnValue.Field[std::sync::mpsc::SyncSender::inner]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from", "Argument[0].Field[std::sync::mpsc::SendError(0)]", "ReturnValue.Field[std::sync::mpsc::TrySendError::Disconnected(0)]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::try_insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_ref", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sync::poison::PoisonError::data]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::TryLockError::Poisoned(0)]", "value", "dfc-generated"] - - ["lang:std", "::cause", "Argument[self].Reference.Field[std::sync::poison::TryLockError::Poisoned(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::wait_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["lang:std", "::wait_timeout_ms", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["lang:std", "::wait_timeout_while", "Argument[0].Reference", "Argument[2].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:std", "::wait_timeout_while", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["lang:std", "::wait_while", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:std", "::wait_while", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::timed_out", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::timed_out", "Argument[self].Field[std::sync::poison::condvar::WaitTimeoutResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::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"] - - ["lang:std", "::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"] - - ["lang:std", "::lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::mutex::Mutex::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::replace", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::is_poisoned", "Argument[self].Field[std::sync::poison::once::OnceState::inner].Field[std::sys::sync::once::futex::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::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"] - - ["lang:std", "::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"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::poison::rwlock::RwLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::replace", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[std::sync::poison::PoisonError::data]", "value", "dfc-generated"] - - ["lang:std", "::try_read", "Argument[self].Field[std::sync::poison::rwlock::RwLock::inner]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockReadGuard::inner_lock].Reference", "value", "dfc-generated"] - - ["lang:std", "::try_write", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::try_write", "Argument[self]", "ReturnValue.Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::map", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::get_mut", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::lock", "Argument[self]", "ReturnValue.Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sync::reentrant_lock::ReentrantLock::data]", "value", "dfc-generated"] - - ["lang:std", "::try_lock", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock]", "value", "dfc-generated"] - - ["lang:std", "::deref", "Argument[self].Field[std::sync::reentrant_lock::ReentrantLockGuard::lock].Field[std::sync::reentrant_lock::ReentrantLock::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::set_mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::ino", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner_mut", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::fs::unix::File(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::fs::unix::FileAttr::stat]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::accessed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::file_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::modified", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::perm", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::mode", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::set_accessed", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::FileTimes::accessed].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::set_modified", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::FileTimes::modified].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::append", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::append]", "value", "dfc-generated"] - - ["lang:std", "::create", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::create]", "value", "dfc-generated"] - - ["lang:std", "::create_new", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::create_new]", "value", "dfc-generated"] - - ["lang:std", "::custom_flags", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::custom_flags]", "value", "dfc-generated"] - - ["lang:std", "::mode", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::read", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::read]", "value", "dfc-generated"] - - ["lang:std", "::truncate", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::truncate]", "value", "dfc-generated"] - - ["lang:std", "::write", "Argument[0]", "Argument[self].Field[std::sys::fs::unix::OpenOptions::write]", "value", "dfc-generated"] - - ["lang:std", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::properties", "Argument[self].Field[1].Reference", "ReturnValue.Field[std::sys::pal::unix::kernel_copy::CopyParams(0)].Field[std::sys::pal::unix::kernel_copy::FdMeta::Metadata(0)]", "value", "dfc-generated"] - - ["lang:std", "::properties", "Argument[self].Field[std::sys::fs::unix::cfm::CachedFileMetadata(1)].Reference", "ReturnValue.Field[std::sys::pal::unix::kernel_copy::CopyParams(0)].Field[std::sys::pal::unix::kernel_copy::FdMeta::Metadata(0)]", "value", "dfc-generated"] - - ["lang:std", "::properties", "Argument[self].Field[1].Reference", "ReturnValue.Field[std::sys::pal::unix::kernel_copy::CopyParams(0)].Field[std::sys::pal::unix::kernel_copy::FdMeta::Metadata(0)]", "value", "dfc-generated"] - - ["lang:std", "::properties", "Argument[self].Field[std::sys::fs::unix::cfm::CachedFileMetadata(1)].Reference", "ReturnValue.Field[std::sys::pal::unix::kernel_copy::CopyParams(0)].Field[std::sys::pal::unix::kernel_copy::FdMeta::Metadata(0)]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::port", "Argument[self].Field[std::sys::net::connection::socket::LookupHost::port]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::TcpListener::inner]", "value", "dfc-generated"] - - ["lang:std", "::bind", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::bind", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_socket", "Argument[self].Field[std::sys::net::connection::socket::TcpListener::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::socket", "Argument[self].Field[std::sys::net::connection::socket::TcpListener::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::TcpStream::inner]", "value", "dfc-generated"] - - ["lang:std", "::connect", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::connect", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_socket", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::socket", "Argument[self].Field[std::sys::net::connection::socket::TcpStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::net::connection::socket::UdpSocket::inner]", "value", "dfc-generated"] - - ["lang:std", "::bind", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::bind", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::connect", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::connect", "Argument[0].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_socket", "Argument[self].Field[std::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::socket", "Argument[self].Field[std::sys::net::connection::socket::UdpSocket::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::net::connection::socket::unix::Socket(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner].Reference", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["lang:std", "::clone", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_encoded_bytes_unchecked", "Argument[0]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["lang:std", "::from_string", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::sys::os_str::bytes::Buf::inner]", "value", "dfc-generated"] - - ["lang:std", "::into_encoded_bytes", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::truncate", "Argument[0]", "Argument[self].Field[std::sys::os_str::bytes::Buf::inner].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::as_encoded_bytes", "Argument[self].Field[std::sys::os_str::bytes::Slice::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::pal::unix::fd::FileDesc(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::pal::unix::linux::pidfd::PidFd(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_file_desc", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_file_desc", "Argument[self].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["lang:std", "::id", "Argument[self].Field[std::sys::pal::unix::thread::Thread::id]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::checked_sub_instant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::checked_sub_instant", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::time::Timespec::tv_sec]", "value", "dfc-generated"] - - ["lang:std", "::sub_time", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::sub_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::sub_timespec", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::sub_timespec", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::weak::DlsymWeak::name]", "value", "dfc-generated"] - - ["lang:std", "::get", "Argument[self].Field[std::sys::pal::unix::weak::ExternWeak::weak_ptr]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::pal::unix::weak::ExternWeak::weak_ptr]", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::personality::dwarf::DwarfReader::ptr]", "value", "dfc-generated"] - - ["lang:std", "::fd", "Argument[self].Reference.Field[std::sys::process::unix::common::ChildStdio::Explicit(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::create_pidfd", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::create_pidfd]", "value", "dfc-generated"] - - ["lang:std", "::env_mut", "Argument[self].Field[std::sys::process::unix::common::Command::env]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_argv", "Argument[self].Field[std::sys::process::unix::common::Command::argv].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::get_closures", "Argument[self].Field[std::sys::process::unix::common::Command::closures]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_create_pidfd", "Argument[self].Field[std::sys::process::unix::common::Command::create_pidfd]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_gid", "Argument[self].Field[std::sys::process::unix::common::Command::gid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_pgroup", "Argument[self].Field[std::sys::process::unix::common::Command::pgroup]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_program_cstr", "Argument[self].Field[std::sys::process::unix::common::Command::program].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::get_program_kind", "Argument[self].Field[std::sys::process::unix::common::Command::program_kind]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_uid", "Argument[self].Field[std::sys::process::unix::common::Command::uid]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::gid", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::gid].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::pgroup", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::pgroup].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::saw_nul", "Argument[self].Field[std::sys::process::unix::common::Command::saw_nul]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::stderr", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stderr].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::stdin", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stdin].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::stdout", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::stdout].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::uid", "Argument[0]", "Argument[self].Field[std::sys::process::unix::common::Command::uid].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::as_i32", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from", "Argument[0].Field[0]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[std::sys::fs::unix::File(0)]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0].Field[std::sys::pal::unix::pipe::AnonPipe(0)]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::common::Stdio::Fd(0)]", "value", "dfc-generated"] - - ["lang:std", "::from", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_raw", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_raw", "Argument[self].Field[std::sys::process::unix::unix::ExitStatus(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::process::unix::unix::ExitStatus(0)]", "value", "dfc-generated"] - - ["lang:std", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::is_poisoned", "Argument[self].Field[std::sys::sync::once::futex::OnceState::poisoned]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::get_or_init", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::thread_local::key::racy::LazyKey::dtor]", "value", "dfc-generated"] - - ["lang:std", "::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::sys::thread_local::native::eager::Storage::val].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["lang:std", "::does_clear", "Argument[self].Field[std::sys_common::process::CommandEnv::clear]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::len", "Argument[self].Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::size_hint", "Argument[self].Field[std::sys_common::process::CommandEnvs::iter].Field[alloc::collections::btree::map::Iter::length]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_char", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_u32", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - - ["lang:std", "::from_u32_unchecked", "Argument[0]", "ReturnValue.Field[std::sys_common::wtf8::CodePoint::value]", "value", "dfc-generated"] - - ["lang:std", "::to_lead_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::to_trail_surrogate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::to_u32", "Argument[self].Field[std::sys_common::wtf8::CodePoint::value]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self].Field[std::sys_common::wtf8::EncodeWide::extra]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::index", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_bytes", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::ascii_byte_at", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes].Element", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::from_bytes_unchecked", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::from_bytes_unchecked", "Argument[0]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "value", "dfc-generated"] - - ["lang:std", "::from_string", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "value", "dfc-generated"] - - ["lang:std", "::into_bytes", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::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"] - - ["lang:std", "::into_string", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_string_lossy", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes]", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["lang:std", "::truncate", "Argument[0]", "Argument[self].Field[std::sys_common::wtf8::Wtf8::bytes].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:std", "::truncate", "Argument[0]", "Argument[self].Field[std::sys_common::wtf8::Wtf8Buf::bytes].Field[alloc::vec::Vec::len]", "value", "dfc-generated"] - - ["lang:std", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::name", "Argument[0]", "Argument[self].Field[std::thread::Builder::name].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::name", "Argument[0]", "ReturnValue.Field[std::thread::Builder::name].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::no_hooks", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::stack_size", "Argument[0]", "Argument[self].Field[std::thread::Builder::stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::stack_size", "Argument[0]", "ReturnValue.Field[std::thread::Builder::stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["lang:std", "::stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[0].Field[std::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_inner", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::native]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0].Field[std::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::native]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::thread", "Argument[self].Field[0].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::thread", "Argument[self].Field[std::thread::JoinHandle(0)].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_u64", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::as_u64", "Argument[self].Field[std::thread::ThreadId(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "ReturnValue.Field[std::thread::local::LocalKey::inner]", "value", "dfc-generated"] - - ["lang:std", "::try_with", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::with_borrow", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::with_borrow_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::thread", "Argument[self].Field[0].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::thread", "Argument[self].Field[std::thread::scoped::ScopedJoinHandle(0)].Field[std::thread::JoinInner::thread]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::as_cstr", "Argument[self].Field[std::thread::thread_name_string::ThreadNameString::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["lang:std", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::elapsed", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::from_inner", "Argument[0]", "ReturnValue.Field[std::time::SystemTime(0)]", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::into_inner", "Argument[self].Field[std::time::SystemTime(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::duration", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::duration", "Argument[self].Field[std::time::SystemTimeError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "::buffer_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::copy_from", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["lang:std", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "::rem_euclid", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::backtrace::helper::lazy_resolve", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::append_to_string", "Argument[0].Field[alloc::string::String::vec]", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["lang:std", "crate::io::append_to_string", "Argument[1].Field[alloc::collections::vec_deque::VecDeque::len]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "crate::io::append_to_string", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::default_read_buf", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::io::default_read_exact", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "crate::io::default_read_to_end", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::io::default_read_to_string", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::io::default_read_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::default_write_vectored", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::io::read_to_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::io::util::repeat", "Argument[0]", "ReturnValue.Field[std::io::util::Repeat::byte]", "value", "dfc-generated"] - - ["lang:std", "crate::sync::poison::map_result", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "crate::sync::poison::map_result", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::sync::poison::map_result", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::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"] - - ["lang:std", "crate::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"] - - ["lang:std", "crate::sys::backtrace::__rust_begin_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::sys::backtrace::__rust_end_short_backtrace", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::sys::pal::common::small_c_string::run_path_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::sys::pal::common::small_c_string::run_with_cstr", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::sys::pal::unix::cvt", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["lang:std", "crate::sys::pal::unix::pipe::read2", "Argument[0]", "Argument[1]", "taint", "df-generated"] - - ["lang:std", "crate::sys::pal::unix::pipe::read2", "Argument[2]", "Argument[3]", "taint", "df-generated"] - - ["lang:std", "crate::sys_common::ignore_notfound", "Argument[0].Field[core::result::Result::Err(0)]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "crate::sys_common::mul_div_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::sys_common::mul_div_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::sys_common::mul_div_u64", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["lang:std", "crate::thread::current::set_current", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["lang:std", "crate::thread::current::try_with_current", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["lang:std", "crate::thread::with_current_name", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["lang:std", "<&crate::io::stdio::Stderr as crate::io::Write>::write", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stderr as crate::io::Write>::write_all", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stdout as crate::io::Write>::write", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "<&crate::io::stdio::Stdout as crate::io::Write>::write_all", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::allocate", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "::allocate_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "::grow", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:std", "::grow_zeroed", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:std", "::shrink", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:std", "::alloc", "Argument[0]", "alloc-size", "df-generated"] - - ["lang:std", "::alloc_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "::alloc_zeroed", "Argument[0]", "alloc-size", "df-generated"] - - ["lang:std", "::realloc", "Argument[2]", "alloc-layout", "df-generated"] - - ["lang:std", "::realloc", "Argument[2]", "alloc-size", "df-generated"] - - ["lang:std", "::write", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "::write_all", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "::write_all_vectored", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "::write_vectored", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:std", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:std", "::truncate", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::create_buffered", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "::open_buffered", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "::try_with_capacity", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "::from", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::from_raw_os_error", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::new", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::new_os", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::new_simple", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::exists", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::is_dir", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::is_file", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::is_symlink", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::metadata", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::read_dir", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::read_link", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::symlink_metadata", "Argument[self]", "path-injection", "df-generated"] - - ["lang:std", "::unregister", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "::check_public_boundary", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::next_back", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:std", "::next", "Argument[self]", "pointer-access", "df-generated"] - - ["lang:std", "::index", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "::index", "Argument[self]", "log-injection", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_alloc", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_alloc", "Argument[0]", "alloc-size", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_alloc_zeroed", "Argument[0]", "alloc-layout", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_alloc_zeroed", "Argument[0]", "alloc-size", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_realloc", "Argument[3]", "alloc-layout", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_realloc", "Argument[3]", "alloc-size", "df-generated"] - - ["lang:std", "crate::sys::fs::common::copy", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "crate::sys::fs::common::copy", "Argument[1]", "path-injection", "df-generated"] - - ["lang:std", "crate::sys::fs::common::exists", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "crate::sys::fs::common::remove_dir_all", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "crate::sys::fs::unix::copy", "Argument[0]", "path-injection", "df-generated"] - - ["lang:std", "crate::sys::pal::unix::cvt_nz", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "crate::sys_common::wtf8::check_utf8_boundary", "Argument[1]", "log-injection", "df-generated"] - - ["lang:std", "crate::sys_common::wtf8::slice_error_fail", "Argument[0]", "log-injection", "df-generated"] - - ["lang:std", "crate::sys_common::wtf8::slice_error_fail", "Argument[1]", "log-injection", "df-generated"] - - ["lang:std", "crate::sys_common::wtf8::slice_error_fail", "Argument[2]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["lang:std", "::dealloc", "Argument[0]", "pointer-invalidate", "df-generated"] - - ["lang:std", "::open_buffered", "ReturnValue", "file", "df-generated"] - - ["lang:std", "::get", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["lang:std", "::get_or_init", "ReturnValue", "pointer-invalidate", "df-generated"] - - ["lang:std", "crate::alloc::__default_lib_allocator::__rdl_dealloc", "Argument[0]", "pointer-invalidate", "df-generated"] - - ["lang:std", "crate::fs::copy", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::fs::read", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::fs::read_to_string", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::path::absolute", "ReturnValue", "commandargs", "df-generated"] - - ["lang:std", "crate::sys::fs::common::copy", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::sys::fs::unix::copy", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::sys::pal::unix::thread::cgroups::quota", "ReturnValue", "file", "df-generated"] - - ["lang:std", "crate::sys::path::unix::absolute", "ReturnValue", "commandargs", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-dylib-dep.model.yml b/rust/ql/lib/ext/generated/rust/repo-dylib-dep.model.yml deleted file mode 100644 index 426b1765346..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-dylib-dep.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::dylib-dep", "crate::foo", "Argument[0]", "Argument[1].Parameter[0]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-backtrace-rs-backtrace.model.yml b/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-backtrace-rs-backtrace.model.yml deleted file mode 100644 index db50a4bd3f0..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-backtrace-rs-backtrace.model.yml +++ /dev/null @@ -1,42 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::sp", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::symbols", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::section", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::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"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::allocate", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "crate::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::new", "Argument[0]", "path-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "::new", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/rust-lang/backtrace-rs:backtrace", "crate::symbolize::gimli::parse_running_mmaps::parse_maps", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-portable-simd-core_simd.model.yml b/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-portable-simd-core_simd.model.yml deleted file mode 100644 index 7a6434f57a8..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-portable-simd-core_simd.model.yml +++ /dev/null @@ -1,48 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitand_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitxor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::bitxor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::select_mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::select_mask", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::select_mask", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_int", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_int", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::as_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::as_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::recip", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_degrees", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_radians", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::abs", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::not", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::as_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::as_mut_array", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::to_usize", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::reverse_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::reverse_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::reverse_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "::reverse_bits", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "crate::simd_inv4x4", "Argument[0].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[matrix_inversion::Matrix4x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/portable-simd:core_simd", "crate::simd_inv4x4", "Argument[0].Field[matrix_inversion::Matrix4x4(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Field[matrix_inversion::Matrix4x4(0)]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-stdarch-core_arch.model.yml b/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-stdarch-core_arch.model.yml deleted file mode 100644 index c12588236ef..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-https-github.com-rust-lang-stdarch-core_arch.model.yml +++ /dev/null @@ -1,1195 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x16(0)].Field[core_arch::core_arch::simd::f16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f16x32(0)].Field[core_arch::core_arch::simd::f16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x4(0)].Field[core_arch::core_arch::simd::f16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f16x8(0)].Field[core_arch::core_arch::simd::f16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::f32x16(0)].Field[core_arch::core_arch::simd::f32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x2(0)].Field[core_arch::core_arch::simd::f32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x4(0)].Field[core_arch::core_arch::simd::f32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f32x8(0)].Field[core_arch::core_arch::simd::f32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x1(0)].Field[core_arch::core_arch::simd::f64x1(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x2(0)].Field[core_arch::core_arch::simd::f64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x4(0)].Field[core_arch::core_arch::simd::f64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::f64x8(0)].Field[core_arch::core_arch::simd::f64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x16(0)].Field[core_arch::core_arch::simd::i16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x2(0)].Field[core_arch::core_arch::simd::i16x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i16x32(0)].Field[core_arch::core_arch::simd::i16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x4(0)].Field[core_arch::core_arch::simd::i16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i16x8(0)].Field[core_arch::core_arch::simd::i16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x16(0)].Field[core_arch::core_arch::simd::i32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x2(0)].Field[core_arch::core_arch::simd::i32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i32x32(0)].Field[core_arch::core_arch::simd::i32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x4(0)].Field[core_arch::core_arch::simd::i32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i32x8(0)].Field[core_arch::core_arch::simd::i32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x1(0)].Field[core_arch::core_arch::simd::i64x1(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x2(0)].Field[core_arch::core_arch::simd::i64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x4(0)].Field[core_arch::core_arch::simd::i64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i64x8(0)].Field[core_arch::core_arch::simd::i64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x16(0)].Field[core_arch::core_arch::simd::i8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x2(0)].Field[core_arch::core_arch::simd::i8x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x32(0)].Field[core_arch::core_arch::simd::i8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x4(0)].Field[core_arch::core_arch::simd::i8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::i8x64(0)].Field[core_arch::core_arch::simd::i8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::i8x8(0)].Field[core_arch::core_arch::simd::i8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x16(0)].Field[core_arch::core_arch::simd::u16x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x2(0)].Field[core_arch::core_arch::simd::u16x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x32(0)].Field[core_arch::core_arch::simd::u16x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x4(0)].Field[core_arch::core_arch::simd::u16x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u16x64(0)].Field[core_arch::core_arch::simd::u16x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u16x8(0)].Field[core_arch::core_arch::simd::u16x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x16(0)].Field[core_arch::core_arch::simd::u32x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x2(0)].Field[core_arch::core_arch::simd::u32x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u32x32(0)].Field[core_arch::core_arch::simd::u32x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x4(0)].Field[core_arch::core_arch::simd::u32x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u32x8(0)].Field[core_arch::core_arch::simd::u32x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x1(0)].Field[core_arch::core_arch::simd::u64x1(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x2(0)].Field[core_arch::core_arch::simd::u64x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x4(0)].Field[core_arch::core_arch::simd::u64x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u64x8(0)].Field[core_arch::core_arch::simd::u64x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x16(0)].Field[core_arch::core_arch::simd::u8x16(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x2(0)].Field[core_arch::core_arch::simd::u8x2(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x32(0)].Field[core_arch::core_arch::simd::u8x32(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x4(0)].Field[core_arch::core_arch::simd::u8x4(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[10]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[11]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[12]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[13]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[14]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[15]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[16]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[17]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[18]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[19]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[20]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[21]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[22]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[23]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[24]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[25]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[26]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[27]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[28]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[29]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[30]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[31]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[32]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[33]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[34]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[35]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[36]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[37]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[38]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[39]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[40]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[41]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[42]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[43]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[44]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[45]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[46]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[47]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[48]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[49]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[50]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[51]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[52]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[53]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[54]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[55]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[56]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[57]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[58]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[59]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[60]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[61]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[62]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[63]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[8]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[9]", "ReturnValue.Field[core::core_arch::simd::u8x64(0)].Field[core_arch::core_arch::simd::u8x64(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_array", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[0]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[1]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[2]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[3]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[4]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[5]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[6]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::new", "Argument[7]", "ReturnValue.Field[core::core_arch::simd::u8x8(0)].Field[core_arch::core_arch::simd::u8x8(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::from_bits", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::to_bits", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "::to_bits", "Argument[self].Field[core::core_arch::x86::bf16(0)].Field[core_arch::core_arch::x86::bf16(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bf16::_mm_mask_cvtneps_pbh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_cvtmask32_u32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_cvtu32_mask32", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kadd_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kadd_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kadd_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kadd_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kand_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kand_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kand_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kand_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kandn_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kandn_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kandn_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kandn_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_knot_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_knot_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kshiftli_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kshiftli_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kshiftri_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kshiftri_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxnor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxnor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxor_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxor_mask32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxor_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_kxor_mask64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_kunpackd", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_kunpackw", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_store_mask32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_store_mask64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_cvtmask8_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_cvtu32_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kadd_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kadd_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kadd_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kadd_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kand_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kand_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kandn_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kandn_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_knot_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kshiftli_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kshiftri_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kxnor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kxor_mask8", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_kxor_mask8", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_load_mask8", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512dq::_store_mask8", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_cvtmask16_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_cvtu32_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kand_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kand_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kandn_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kandn_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_knot_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kshiftli_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kshiftri_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kxnor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kxnor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kxor_mask16", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_kxor_mask16", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_load_mask16", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_int2mask", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kand", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kandn", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kandn", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kmov", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_knot", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kunpackb", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kxnor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kxnor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kxor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_kxor", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_mask2int", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_mask_load_sd", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_mask_load_ss", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_store_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_store_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_store_mask16", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[12]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[13]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[14]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[15]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_set_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[12]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[13]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[14]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[15]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm256_setr_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m256h(0)].Field[core_arch::core_arch::x86::__m256h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[12]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[13]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[14]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[15]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[16]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[17]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[18]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[19]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[20]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[21]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[22]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[23]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[24]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[25]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[26]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[27]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[28]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[29]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[30]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[31]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[8]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_set_ph", "Argument[9]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[10]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[11]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[12]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[13]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[14]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[15]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[16]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[17]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[18]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[19]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[20]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[21]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[22]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[23]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[24]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[25]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[26]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[27]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[28]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[29]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[30]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[31]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm512_setr_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m512h(0)].Field[core_arch::core_arch::x86::__m512h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_mask_load_sh", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_ph", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_set_sh", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512fp16::_mm_setr_ph", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m128h(0)].Field[core_arch::core_arch::x86::__m128h(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_load_si256", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_pd", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_pd", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_pd", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[5]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[6]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_set_ps", "Argument[7]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_pd", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_pd", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_pd", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_pd", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256d(0)].Field[core_arch::core_arch::x86::__m256d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_ps", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_ps", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_ps", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_setr_ps", "Argument[4]", "ReturnValue.Field[core::core_arch::x86::__m256(0)].Field[core_arch::core_arch::x86::__m256(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx::_mm256_store_si256", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi1::_andn_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi1::_andn_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi1::_blsi_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi1::_blsmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi1::_blsr_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi2::_mulx_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::bmi2::_mulx_u32", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::rtm::_xabort_code", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_load_pd", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_load_si128", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_set_pd", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128d(0)].Field[core_arch::core_arch::x86::__m128d(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_store_pd", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_store_si128", "Argument[1]", "Argument[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_MM_SHUFFLE", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_MM_SHUFFLE", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_MM_SHUFFLE", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_MM_SHUFFLE", "Argument[3]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_load_ps", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_set_ps", "Argument[1]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_set_ps", "Argument[2]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_set_ps", "Argument[3]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_set_ss", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_setr_ps", "Argument[0]", "ReturnValue.Field[core::core_arch::x86::__m128(0)].Field[core_arch::core_arch::x86::__m128(0)].Element", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::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"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse::_mm_store_ps", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blcfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blci_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blcic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blcmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blcs_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blsfill_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_blsic_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_t1mskc_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::tbm::_tzmsk_u32", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::avx512bw::_cvtmask64_u64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::avx512bw::_cvtu64_mask64", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "Argument[2]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi2::_mulx_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "Argument[2]", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi2::_mulx_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi::_andn_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi::_andn_u64", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi::_blsi_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi::_blsmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::bmi::_blsr_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blcfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blci_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blcic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blcmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blcs_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blsfill_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_blsic_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_t1mskc_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86_64::tbm::_tzmsk_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_load_mask32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_load_mask64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm256_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm512_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_loadu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_loadu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_storeu_epi16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_mm_storeu_epi8", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_store_mask32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512bw::_store_mask64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_load_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_load_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_store_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_store_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm256_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_pd", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_ps", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_load_si512", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_pd", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_ps", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_loadu_si512", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_pd", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_ps", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_store_si512", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_pd", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_ps", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm512_storeu_si512", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_load_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_load_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_loadu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_loadu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_store_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_store_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_storeu_epi32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::avx512f::_mm_storeu_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_loadl_epi64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_loadu_si16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_loadu_si32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_loadu_si64", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_storeu_si16", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_storeu_si32", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/rust-lang/stdarch:core_arch", "crate::core_arch::x86::sse2::_mm_storeu_si64", "Argument[0]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-intrinsic-test.model.yml b/rust/ql/lib/ext/generated/rust/repo-intrinsic-test.model.yml deleted file mode 100644 index 87535d51b1f..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-intrinsic-test.model.yml +++ /dev/null @@ -1,52 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::intrinsic-test", "::from_c", "Argument[0]", "ReturnValue.Field[intrinsic-test::argument::Argument::pos]", "value", "dfc-generated"] - - ["repo::intrinsic-test", "::from_c", "Argument[1].Element", "ReturnValue.Field[intrinsic-test::argument::Argument::name].Reference", "value", "dfc-generated"] - - ["repo::intrinsic-test", "::type_and_name_from_c", "Argument[0].Element", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo::intrinsic-test", "::load_values_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::load_values_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::load_values_rust", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::to_range", "Argument[self].Field[intrinsic-test::argument::Constraint::Range(0)].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo::intrinsic-test", "::generate_loop_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_c", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_c", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_rust", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_rust", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_rust", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_rust", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::print_result_c", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::print_result_c", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::c_single_vector_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::c_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::kind", "Argument[self].Reference.Field[intrinsic-test::types::IntrinsicType::Type::kind]", "ReturnValue", "value", "dfc-generated"] - - ["repo::intrinsic-test", "::populate_random", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::rust_type", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::intrinsic-test", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo::intrinsic-test", "::from_c", "Argument[1]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::generate_loop_c", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::print_result_c", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::c_scalar_type", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::c_type", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::get_lane_function", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::get_load_function", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::populate_random", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::rust_scalar_type", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::rust_type", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::c_prefix", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "::rust_prefix", "Argument[self]", "log-injection", "df-generated"] - - ["repo::intrinsic-test", "crate::json_parser::get_neon_intrinsics", "Argument[0]", "path-injection", "df-generated"] - - ["repo::intrinsic-test", "crate::values::value_for_array", "Argument[0]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo::intrinsic-test", "crate::json_parser::get_neon_intrinsics", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-std_float.model.yml b/rust/ql/lib/ext/generated/rust/repo-std_float.model.yml deleted file mode 100644 index 92150d0d52c..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-std_float.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::std_float", "::fract", "Argument[self]", "ReturnValue", "taint", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-arm.model.yml b/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-arm.model.yml deleted file mode 100644 index fa28fd6eb4c..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-arm.model.yml +++ /dev/null @@ -1,98 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::stdarch-gen-arm", "::make_assertion_from_constraint", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::make_assertion_from_constraint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::new", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::input]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::new", "Argument[1].Field[stdarch-gen-arm::intrinsic::Intrinsic::signature].Reference", "ReturnValue.Field[stdarch-gen-arm::context::LocalContext::signature]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::provide_substitution_wildcard", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::provide_type_wildcard", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::provide_type_wildcard", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::FnCall(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::Identifier(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::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"] - - ["repo::stdarch-gen-arm", "::predicate_form", "Argument[self].Field[stdarch-gen-arm::input::InputType::PredicateForm(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::predicate_form_mut", "Argument[self].Field[stdarch-gen-arm::input::InputType::PredicateForm(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::typekind", "Argument[self].Field[stdarch-gen-arm::input::InputType::Type(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::generate_variant", "Argument[self].Reference.Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::generate_variant", "Argument[self].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::apply_conversions_to_call", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[stdarch-gen-arm::expression::Expression::FnCall(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::make_fn_call", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::resolve", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::doc_name", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::drop_argument", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::get_typeset_index", "Argument[self].Reference.Field[stdarch-gen-arm::intrinsic::Test::Load(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::get_typeset_index", "Argument[self].Reference.Field[stdarch-gen-arm::intrinsic::Test::Store(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::get", "Argument[self].Field[stdarch-gen-arm::matching::MatchKindValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::get", "Argument[self].Field[stdarch-gen-arm::matching::MatchSizeValues::default]", "ReturnValue.Field[core::result::Result::Ok(0)].Reference", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::has_dont_care", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::x]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::has_merging", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::m]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::has_zeroing", "Argument[self].Field[stdarch-gen-arm::predicate_forms::PredicationMask::z]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::repr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::get_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::kind", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Sized(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::kind", "Argument[self].Field[stdarch-gen-arm::typekinds::BaseType::Unsized(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::make_vector", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::populate_wildcard", "Argument[0]", "Argument[self].Reference", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::contains", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::try_from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::repr", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::base_type", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::base_type_mut", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::cast_base_type_as", "Argument[0]", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::lanes", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::lanes]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::make_from_base", "Argument[0].Field[stdarch-gen-arm::typekinds::BaseType::Sized(1)]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::lanes]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::make_from_base", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::base_type]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::make_from_base", "Argument[1]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::is_scalable]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::make_from_base", "Argument[2]", "ReturnValue.Field[stdarch-gen-arm::typekinds::VectorType::tuple_size]", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::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"] - - ["repo::stdarch-gen-arm", "::tuple_size", "Argument[self].Field[stdarch-gen-arm::typekinds::VectorType::tuple_size]", "ReturnValue", "value", "dfc-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "::from_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::stdarch-gen-arm", "crate::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"] - - ["repo::stdarch-gen-arm", "crate::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"] - - ["repo::stdarch-gen-arm", "crate::fn_suffix::make_neon_suffix", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::is_static_assert", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::requires_unsafe_wrapper", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::requires_unsafe_wrapper", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::generate_variant", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::generate_variants", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::build", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::build_and_save", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::drop_argument", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::as_mut", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::as_ref", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::as_mut", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::as_ref", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::post_build", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::repr", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::repr", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::to_tokens", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "::prepend_str", "Argument[self]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "crate::fn_suffix::make_neon_suffix", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "crate::fn_suffix::type_to_size", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-gen-arm", "crate::load_store_tests::generate_load_store_tests", "Argument[2]", "path-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-loongarch.model.yml b/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-loongarch.model.yml deleted file mode 100644 index 691d36638ab..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-stdarch-gen-loongarch.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::stdarch-gen-loongarch", "::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-loongarch::Lines::lines]", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-stdarch-test.model.yml b/rust/ql/lib/ext/generated/rust/repo-stdarch-test.model.yml deleted file mode 100644 index bbe62b0a4aa..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-stdarch-test.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo::stdarch-test", "crate::assert", "Argument[1]", "log-injection", "df-generated"] - - ["repo::stdarch-test", "crate::assert", "Argument[2]", "log-injection", "df-generated"] - - ["repo::stdarch-test", "crate::assert_skip_test_ok", "Argument[0]", "log-injection", "df-generated"] - - ["repo::stdarch-test", "crate::assert_skip_test_ok", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-stdarch_examples.model.yml b/rust/ql/lib/ext/generated/rust/repo-stdarch_examples.model.yml deleted file mode 100644 index f7a10c66502..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-stdarch_examples.model.yml +++ /dev/null @@ -1,8 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::stdarch_examples", "::add", "Argument[0]", "Argument[self].Field[connect5::List::p_move].Element", "value", "dfc-generated"] - - ["repo::stdarch_examples", "::size", "Argument[self].Field[connect5::List::p_size]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/rust/repo-test_helpers.model.yml b/rust/ql/lib/ext/generated/rust/repo-test_helpers.model.yml deleted file mode 100644 index d39494b8a36..00000000000 --- a/rust/ql/lib/ext/generated/rust/repo-test_helpers.model.yml +++ /dev/null @@ -1,12 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::test_helpers", "::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"] - - ["repo::test_helpers", "::new", "Argument[0]", "ReturnValue.Field[test_helpers::array::UniformArrayStrategy::strategy]", "value", "dfc-generated"] - - ["repo::test_helpers", "::flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo::test_helpers", "::flush", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo::test_helpers", "crate::subnormals::flush", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo::test_helpers", "crate::subnormals::flush_in", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/serde.model.yml b/rust/ql/lib/ext/generated/serde.model.yml new file mode 100644 index 00000000000..0d06a220b93 --- /dev/null +++ b/rust/ql/lib/ext/generated/serde.model.yml @@ -0,0 +1,265 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::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"] + - ["::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"] + - ["::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"] + - ["::__deserialize_content", "Argument[self].Field[serde::__private::de::content::ContentDeserializer::content]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Bytes(0)]", "value", "dfc-generated"] + - ["::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Str(0)]", "value", "dfc-generated"] + - ["::visit_byte_buf", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::ByteBuf(0)]", "value", "dfc-generated"] + - ["::visit_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Char(0)]", "value", "dfc-generated"] + - ["::visit_f32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::F32(0)]", "value", "dfc-generated"] + - ["::visit_f64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::F64(0)]", "value", "dfc-generated"] + - ["::visit_i16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I16(0)]", "value", "dfc-generated"] + - ["::visit_i32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I32(0)]", "value", "dfc-generated"] + - ["::visit_i64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I64(0)]", "value", "dfc-generated"] + - ["::visit_i8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I8(0)]", "value", "dfc-generated"] + - ["::visit_string", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::String(0)]", "value", "dfc-generated"] + - ["::visit_u16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U16(0)]", "value", "dfc-generated"] + - ["::visit_u32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U32(0)]", "value", "dfc-generated"] + - ["::visit_u64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U64(0)]", "value", "dfc-generated"] + - ["::visit_u8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U8(0)]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::EnumDeserializer::variant]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::EnumDeserializer::value]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::InternallyTaggedUnitVisitor::type_name]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::InternallyTaggedUnitVisitor::variant_name]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::TaggedContentVisitor::tag_name]", "value", "dfc-generated"] + - ["::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"] + - ["::serialize_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Bool(0)]", "value", "dfc-generated"] + - ["::serialize_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Char(0)]", "value", "dfc-generated"] + - ["::serialize_f32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::F32(0)]", "value", "dfc-generated"] + - ["::serialize_f64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::F64(0)]", "value", "dfc-generated"] + - ["::serialize_i16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I16(0)]", "value", "dfc-generated"] + - ["::serialize_i32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I32(0)]", "value", "dfc-generated"] + - ["::serialize_i64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I64(0)]", "value", "dfc-generated"] + - ["::serialize_i8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I8(0)]", "value", "dfc-generated"] + - ["::serialize_newtype_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeStruct(0)]", "value", "dfc-generated"] + - ["::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_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"] + - ["::serialize_u8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U8(0)]", "value", "dfc-generated"] + - ["::serialize_unit_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitStruct(0)]", "value", "dfc-generated"] + - ["::serialize_unit_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(0)]", "value", "dfc-generated"] + - ["::serialize_unit_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(1)]", "value", "dfc-generated"] + - ["::serialize_unit_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(2)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeMap::entries]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Map(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeSeq::elements]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Seq(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeStruct::fields]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Struct(1)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeStruct::name]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Struct(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] + - ["::new", "Argument[1]", "ReturnValue.Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeTuple::elements]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Tuple(0)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeTupleStruct::fields]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::TupleStruct(1)]", "value", "dfc-generated"] + - ["::end", "Argument[self].Field[serde::__private::ser::content::SerializeTupleStruct::name]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::TupleStruct(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::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_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_string", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-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].Reference", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::IsizeDeserializer::value]", "value", "dfc-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"] + - ["::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"] + - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[serde::de::value::SeqAccessDeserializer::seq]", "value", "dfc-generated"] + - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-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]", "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"] + - ["::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"] + - ["::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]", "ReturnValue.Field[serde_derive::internals::name::MultiName::deserialize]", "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"] + - ["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"] + - ["serde::de::value::private::unit_only", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] + - ["serde_derive::bound::with_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["serde_derive::bound::with_self_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] + - ["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]", "ReturnValue", "value", "dfc-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::serialize_map", "Argument[0]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml deleted file mode 100644 index 75c62ab3cc0..00000000000 --- a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde.model.yml +++ /dev/null @@ -1,221 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/serde-rs/serde:serde", "<&[u8] as crate::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "<&[u8] as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "<&crate::__private::de::content::Content as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "<&mut crate::fmt::Formatter as crate::ser::Serializer>::serialize_unit_variant", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "<&str as crate::__private::de::IdentifierDeserializer>::from", "Argument[self]", "ReturnValue.Field[serde::__private::de::StrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "<&str as crate::de::IntoDeserializer>::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::StrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::BoolDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::CharDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[0]", "ReturnValue.Field[serde::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[0]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[serde::__private::de::Borrowed(0)]", "ReturnValue.Field[serde::__private::de::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self].Field[serde::__private::de::Borrowed(0)]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::as_str", "Argument[self].Reference.Field[serde::__private::de::content::Content::Str(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::as_str", "Argument[self].Reference.Field[serde::__private::de::content::Content::String(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::__deserialize_content", "Argument[self].Field[serde::__private::de::content::ContentDeserializer::content]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::ContentDeserializer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::__deserialize_content", "Argument[self].Field[serde::__private::de::content::ContentRefDeserializer::content].Reference", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::ContentRefDeserializer::content]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Bool(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Bytes(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Str(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_byte_buf", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::ByteBuf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::Char(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_f32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::F32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_f64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::F64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_i8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::I8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::String(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_u8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::de::content::Content::U8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::EnumDeserializer::variant]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::EnumDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::InternallyTaggedUnitVisitor::type_name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::InternallyTaggedUnitVisitor::variant_name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::TaggedContentVisitor::tag_name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::TaggedContentVisitor::expecting]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::de::content::UntaggedUnitVisitor::type_name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::de::content::UntaggedUnitVisitor::variant_name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_map", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeMap(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStruct(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_tuple_variant", "Argument[self].Field[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::FlatMapSerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_struct_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_tuple_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Bool(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Char(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_f32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::F32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_f64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::F64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_i8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::I8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeStruct(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_newtype_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::NewtypeVariant(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u16", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U16(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u32", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U32(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u64", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U64(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_u8", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::U8(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_struct", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitStruct(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_unit_variant", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::UnitVariant(2)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeMap::entries]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Map(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeSeq::elements]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Seq(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeStruct::fields]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Struct(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeStruct::name]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Struct(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::ser::content::SerializeStructVariantAsMapValue::name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeTuple::elements]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::Tuple(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeTupleStruct::fields]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::TupleStruct(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self].Field[serde::__private::ser::content::SerializeTupleStruct::name]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[serde::__private::ser::content::Content::TupleStruct(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::end", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[1]", "ReturnValue.Field[serde::__private::ser::content::SerializeTupleVariantAsMapValue::name]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_bool", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_bytes", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_char", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_str", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0].Field[alloc::borrow::Cow::Owned(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[std::path::PathBuf::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_borrowed_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_byte_buf", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "Argument[self].Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "Argument[self].Field[serde::de::impls::StringInPlaceVisitor(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_byte_buf", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[alloc::string::String::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::visit_string", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BoolDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BorrowedBytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BorrowedStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::BytesDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::CharDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[serde::de::value::CowStrDeserializer::value].Reference", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[serde::de::value::CowStrDeserializer::value]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::CowStrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::EnumAccessDeserializer::access]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::description", "Argument[self].Field[serde::de::value::Error::err]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::F32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::F64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I128Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I16Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::I8Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::MapAccessDeserializer::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::deserialize_any", "Argument[self].Field[serde::de::value::NeverDeserializer::never]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::SeqAccessDeserializer::seq]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::StrDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[serde::de::value::StringDeserializer::value].Reference", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Field[serde::de::value::StringDeserializer::value]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U128Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U16Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::U8Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::new", "Argument[0]", "ReturnValue.Field[serde::format::Buf::bytes]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::StringDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::F32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::F64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I128Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I16Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::I8Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::IsizeDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U128Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U16Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U32Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::from", "Argument[self]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U64Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::U8Deserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "::into_deserializer", "Argument[self]", "ReturnValue.Field[serde::de::value::UsizeDeserializer::value]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "crate::__private::ser::constrain", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::size_hint::cautious", "Argument[0].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::value::private::map_as_enum", "Argument[0]", "ReturnValue.Field[serde::de::value::private::MapAsEnum::map]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde", "crate::de::value::private::unit_only", "Argument[0]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/serde-rs/serde:serde", "::serialize_map", "Argument[0]", "pointer-access", "df-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml b/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml deleted file mode 100644 index 2c97f209b9f..00000000000 --- a/rust/ql/lib/ext/generated/serde/repo-https-github.com-serde-rs-serde-serde_derive.model.yml +++ /dev/null @@ -1,78 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::as_ref", "Argument[self].Field[serde_derive::fragment::Fragment::Block(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::as_ref", "Argument[self].Field[serde_derive::fragment::Fragment::Expr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_ast", "Argument[1]", "ReturnValue.Field[core::option::Option::Some(0)].Field[serde_derive::internals::ast::Container::original]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::get", "Argument[self].Field[serde_derive::internals::attr::Attr::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::default", "Argument[self].Field[serde_derive::internals::attr::Container::default]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deny_unknown_fields", "Argument[self].Field[serde_derive::internals::attr::Container::deny_unknown_fields]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::expecting", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::identifier", "Argument[self].Field[serde_derive::internals::attr::Container::identifier]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::is_packed", "Argument[self].Field[serde_derive::internals::attr::Container::is_packed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[serde_derive::internals::attr::Container::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::non_exhaustive", "Argument[self].Field[serde_derive::internals::attr::Container::non_exhaustive]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_fields_rules", "Argument[self].Field[serde_derive::internals::attr::Container::rename_all_fields_rules]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_rules", "Argument[self].Field[serde_derive::internals::attr::Container::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::serde_path", "Argument[self].Field[serde_derive::internals::attr::Container::serde_path].Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::tag", "Argument[self].Field[serde_derive::internals::attr::Container::tag]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::transparent", "Argument[self].Field[serde_derive::internals::attr::Container::transparent]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::aliases", "Argument[self].Field[serde_derive::internals::attr::Field::name].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::borrowed_lifetimes", "Argument[self].Field[serde_derive::internals::attr::Field::borrowed_lifetimes]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::default", "Argument[self].Field[serde_derive::internals::attr::Field::default]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::flatten", "Argument[self].Field[serde_derive::internals::attr::Field::flatten]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[serde_derive::internals::attr::Field::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_deserializing", "Argument[self].Field[serde_derive::internals::attr::Field::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_serializing", "Argument[self].Field[serde_derive::internals::attr::Field::skip_serializing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::transparent", "Argument[self].Field[serde_derive::internals::attr::Field::transparent]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0].Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0].Field[serde_derive::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self].Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::deserialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self].Field[serde_derive::internals::attr::RenameAllRules::serialize]", "ReturnValue.Field[serde_derive::internals::attr::RenameAllRules::serialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::aliases", "Argument[self].Field[serde_derive::internals::attr::Variant::name].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::de_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::name", "Argument[self].Field[serde_derive::internals::attr::Variant::name]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::other", "Argument[self].Field[serde_derive::internals::attr::Variant::other]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::rename_all_rules", "Argument[self].Field[serde_derive::internals::attr::Variant::rename_all_rules]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::ser_bound", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_deserializing", "Argument[self].Field[serde_derive::internals::attr::Variant::skip_deserializing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::skip_serializing", "Argument[self].Field[serde_derive::internals::attr::Variant::skip_serializing]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::untagged", "Argument[self].Field[serde_derive::internals::attr::Variant::untagged]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::get", "Argument[self].Field[serde_derive::internals::attr::VecAttr::values]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::apply_to_variant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_str", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[serde_derive::internals::case::ParseError::unknown]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::or", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_aliases", "Argument[self].Field[serde_derive::internals::name::MultiName::deserialize_aliases]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::deserialize_name", "Argument[self].Field[serde_derive::internals::name::MultiName::deserialize]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[0].Reference", "ReturnValue.Field[serde_derive::internals::name::MultiName::serialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from_attrs", "Argument[0]", "ReturnValue.Field[serde_derive::internals::name::MultiName::deserialize]", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::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"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::serialize_name", "Argument[self].Field[serde_derive::internals::name::MultiName::serialize]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_self_bound", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates_from_fields", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::bound::with_where_predicates_from_variants", "Argument[1].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/serde-rs/serde:serde_derive", "crate::internals::ungroup", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml b/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml deleted file mode 100644 index 4405cf828e8..00000000000 --- a/rust/ql/lib/ext/generated/serde/repo-serde_test_suite.model.yml +++ /dev/null @@ -1,34 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo::serde_test_suite", "::variant_seed", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[1]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::visit_byte_buf", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::visit_string", "Argument[0].Field[alloc::string::String::vec]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[0]", "ReturnValue.Field[test_remote::remote::NewtypePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[test_remote::NewtypePrivDef(0)]", "ReturnValue.Field[test_remote::remote::NewtypePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::get", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::get", "Argument[self].Field[test_remote::remote::NewtypePriv(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[test_remote::remote::NewtypePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[0]", "ReturnValue.Field[test_remote::remote::PrimitivePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[test_remote::PrimitivePrivDef(0)]", "ReturnValue.Field[test_remote::remote::PrimitivePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::get", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::get", "Argument[self].Field[test_remote::remote::PrimitivePriv(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[test_remote::remote::PrimitivePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[test_remote::StructGenericWithGetterDef::value]", "ReturnValue.Field[test_remote::remote::StructGeneric::value]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::get_value", "Argument[self].Field[test_remote::remote::StructGeneric::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[test_remote::StructPrivDef::a]", "ReturnValue.Field[test_remote::remote::StructPriv::a]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0].Field[test_remote::StructPrivDef::b]", "ReturnValue.Field[test_remote::remote::StructPriv::b]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::a", "Argument[self].Field[test_remote::remote::StructPriv::a]", "ReturnValue", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::b", "Argument[self].Field[test_remote::remote::StructPriv::b]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[test_remote::remote::StructPriv::a]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[1]", "ReturnValue.Field[test_remote::remote::StructPriv::b]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo::serde_test_suite", "::first", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::first", "Argument[self].Field[test_remote::remote::TuplePriv(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[0]", "ReturnValue.Field[test_remote::remote::TuplePriv(0)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::new", "Argument[1]", "ReturnValue.Field[test_remote::remote::TuplePriv(1)]", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::second", "Argument[self].Field[1]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo::serde_test_suite", "::second", "Argument[self].Field[test_remote::remote::TuplePriv(1)]", "ReturnValue.Reference", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/smallvec.model.yml b/rust/ql/lib/ext/generated/smallvec.model.yml new file mode 100644 index 00000000000..9e78c1e496d --- /dev/null +++ b/rust/ql/lib/ext/generated/smallvec.model.yml @@ -0,0 +1,54 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::size_hint", "Argument[self]", "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"] + - ["::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"] + - ["::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]", "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"] + - ["::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"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::insert", "Argument[0]", "log-injection", "df-generated"] + - ["::insert", "Argument[self]", "log-injection", "df-generated"] + - ["::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/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml b/rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml deleted file mode 100644 index 48ffb1bfe44..00000000000 --- a/rust/ql/lib/ext/generated/smallvec/repo-https-github.com-servo-rust-smallvec-smallvec.model.yml +++ /dev/null @@ -1,54 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drop", "Argument[self].Field[smallvec::SetLenOnDrop::local_len]", "Argument[self].Field[smallvec::SetLenOnDrop::len].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::borrow", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::borrow_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::clone", "Argument[self].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_ref", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::index", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::index_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_mut_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::as_slice", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::capacity", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::Drain::tail_start]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain_filter", "Argument[0]", "ReturnValue.Field[smallvec::DrainFilter::pred]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain_filter", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue.Field[smallvec::DrainFilter::old_len]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::drain_filter", "Argument[self]", "ReturnValue.Field[smallvec::DrainFilter::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_buf_and_len", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_buf_and_len_unchecked", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_const_with_len_unchecked", "Argument[1]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_raw_parts", "Argument[2]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::from_vec", "Argument[0].Field[alloc::vec::Vec::len]", "ReturnValue.Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::grow", "Argument[0]", "Argument[self].Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::into_inner", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::len", "Argument[self].Field[smallvec::SmallVec::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::retain", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::retain_mut", "Argument[self].Element", "Argument[0].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::try_grow", "Argument[0]", "Argument[self].Field[smallvec::SmallVec::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::next", "Argument[self].Field[smallvec::tests::MockHintIter::x].Element", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self].Field[smallvec::tests::MockHintIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::size_hint", "Argument[self].Field[smallvec::tests::insert_many_panic::BadIter::hint]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::into_inner", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::insert", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::insert", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::remove", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::remove", "Argument[self]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/servo/rust-smallvec:smallvec", "::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 new file mode 100644 index 00000000000..be824c6ffb3 --- /dev/null +++ b/rust/ql/lib/ext/generated/tokio.model.yml @@ -0,0 +1,1639 @@ +# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. +extensions: + - addsTo: + pack: codeql/rust-all + extensible: summaryModel + data: + - ["::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"] + - ["::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[io_buf_writer::support::io_vec::IoBufs(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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[self]", "ReturnValue", "value", "dfc-generated"] + - ["::set_max_buf_size", "Argument[0]", "Argument[self].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"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::fs::open_options::OpenOptions(0)]", "value", "dfc-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"] + - ["::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::mode", "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"] + - ["::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"] + - ["::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"] + - ["::try_io_mut", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::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"] + - ["::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[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"] + - ["::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"] + - ["::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"] + - ["::copy_from", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["::copy_from_bufs", "Argument[1]", "ReturnValue", "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"] + - ["::bitor_assign", "Argument[0]", "Argument[self]", "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"] + - ["::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"] + - ["::advance_mut", "Argument[0]", "Argument[self]", "taint", "df-generated"] + - ["::remaining_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::assume_init", "Argument[0]", "Argument[self]", "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"] + - ["::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"] + - ["::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unfilled_mut", "Argument[self].Field[tokio::io::read_buf::ReadBuf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::uninit", "Argument[0]", "ReturnValue.Field[tokio::io::read_buf::ReadBuf::buf]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_stream::BufStream::inner]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::unsync_load", "Argument[self]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::split", "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"] + - ["::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[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::process::Command::std]", "value", "dfc-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"] + - ["::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"] + - ["::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[self]", "ReturnValue", "value", "dfc-generated"] + - ["::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::uid", "Argument[self]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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]", "ReturnValue.Field[tokio::runtime::blocking::task::BlockingTask::func].Field[core::option::Option::Some(0)]", "value", "dfc-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[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[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[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"] + - ["::on_thread_park", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::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[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"] + - ["::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::as_ref", "Argument[self].Field[tokio::runtime::driver::IoHandle::Enabled(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] + - ["::consume_signal_ready", "Argument[self].Field[tokio::runtime::io::driver::Driver::signal_ready]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::process::Driver::park]", "value", "dfc-generated"] + - ["::wrap", "Argument[0]", "ReturnValue.Field[tokio_util::context::TokioContext::inner]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::Task::raw].Field[tokio::runtime::task::raw::RawTask::ptr]", "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"] + - ["::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"] + - ["::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::assert_owner", "Argument[0].Field[tokio::runtime::task::Notified(0)]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::tick_to_duration", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::elapsed", "Argument[self].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"] + - ["::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"] + - ["::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"] + - ["::event_info", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::for_each", "Argument[self]", "Argument[0]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendTimeoutError::Closed(0)]", "value", "dfc-generated"] + - ["::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] + - ["::try_reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::try_reserve_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] + - ["::try_reserve_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] + - ["::notified", "Argument[self]", "ReturnValue.Field[tokio::sync::notify::Notified::notify]", "value", "dfc-generated"] + - ["::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-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"] + - ["::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"] + - ["::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_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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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"] + - ["::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"] + - ["::acquire_many_owned", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] + - ["::acquire_many_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["::acquire_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] + - ["::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::try_acquire", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["::try_acquire_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] + - ["::try_acquire_many", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio::time::error::Error(0)]", "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"] + - ["::new_timeout", "Argument[0]", "ReturnValue.Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "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"] + - ["::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"] + - ["::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"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio::util::cacheline::CachePadded::value]", "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"] + - ["::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"] + - ["::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]", "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"] + - ["::expose_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::from_exposed_addr", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::map_codec", "Argument[0].ReturnValue", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] + - ["::map_codec", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_impl::ReadFrame::buffer]", "value", "dfc-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"] + - ["::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"] + - ["::map_decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::map_encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] + - ["::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"] + - ["::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[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[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[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[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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::read", "Argument[self]", "Argument[0]", "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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0].Field[tokio_util::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] + - ["::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["::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"] + - ["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::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"] + - ["tokio::io::util::read::read", "Argument[0]", "ReturnValue.Field[tokio::io::util::read::Read::reader]", "value", "dfc-generated"] + - ["tokio::io::util::read::read", "Argument[1]", "ReturnValue.Field[tokio::io::util::read::Read::buf]", "value", "dfc-generated"] + - ["tokio::io::util::read_buf::read_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_buf::ReadBuf::reader]", "value", "dfc-generated"] + - ["tokio::io::util::read_buf::read_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_buf::ReadBuf::buf]", "value", "dfc-generated"] + - ["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::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"] + - ["tokio::io::util::read_line::read_line_internal", "Argument[4]", "Argument[2]", "taint", "df-generated"] + - ["tokio::io::util::read_to_end::read_to_end", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "value", "dfc-generated"] + - ["tokio::io::util::read_to_end::read_to_end", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_to_end::ReadToEnd::buf].Field[tokio::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] + - ["tokio::io::util::read_to_string::read_to_string", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_to_string::ReadToString::reader]", "value", "dfc-generated"] + - ["tokio::io::util::read_to_string::read_to_string", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_to_string::ReadToString::output]", "value", "dfc-generated"] + - ["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::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"] + - ["tokio::io::util::split::split", "Argument[1]", "ReturnValue.Field[tokio::io::util::split::Split::delim]", "value", "dfc-generated"] + - ["tokio::io::util::take::take", "Argument[0]", "ReturnValue.Field[tokio::io::util::take::Take::inner]", "value", "dfc-generated"] + - ["tokio::io::util::take::take", "Argument[1]", "ReturnValue.Field[tokio::io::util::take::Take::limit_]", "value", "dfc-generated"] + - ["tokio::io::util::write::write", "Argument[0]", "ReturnValue.Field[tokio::io::util::write::Write::writer]", "value", "dfc-generated"] + - ["tokio::io::util::write::write", "Argument[1]", "ReturnValue.Field[tokio::io::util::write::Write::buf]", "value", "dfc-generated"] + - ["tokio::io::util::write_all::write_all", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_all::WriteAll::writer]", "value", "dfc-generated"] + - ["tokio::io::util::write_all::write_all", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_all::WriteAll::buf]", "value", "dfc-generated"] + - ["tokio::io::util::write_all_buf::write_all_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "value", "dfc-generated"] + - ["tokio::io::util::write_all_buf::write_all_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "value", "dfc-generated"] + - ["tokio::io::util::write_buf::write_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_buf::WriteBuf::writer]", "value", "dfc-generated"] + - ["tokio::io::util::write_buf::write_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_buf::WriteBuf::buf]", "value", "dfc-generated"] + - ["tokio::io::util::write_vectored::write_vectored", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_vectored::WriteVectored::writer]", "value", "dfc-generated"] + - ["tokio::io::util::write_vectored::write_vectored", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "value", "dfc-generated"] + - ["tokio::net::tcp::split::split", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["tokio::net::tcp::split_owned::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] + - ["tokio::net::tcp::split_owned::reunite", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] + - ["tokio::net::unix::split::split", "Argument[0]", "ReturnValue.Field[0].Field[tokio::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] + - ["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::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::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"] + - ["tokio::task::coop::with_unconstrained", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["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::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::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"] + - ["tokio_macros::entry::main", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["tokio_macros::entry::test", "Argument[1]", "ReturnValue", "value", "dfc-generated"] + - ["tokio_macros::select::clean_pattern_macro", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["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"] + - addsTo: + pack: codeql/rust-all + extensible: sinkModel + data: + - ["::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"] + - ["::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[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"] + - ["::poll_read", "Argument[1]", "log-injection", "df-generated"] + - ["::copy_to", "Argument[0]", "log-injection", "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"] + - ["::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"] + - ["::transition_to_terminal", "Argument[0]", "log-injection", "df-generated"] + - ["::poll", "Argument[0]", "log-injection", "df-generated"] + - ["::poll", "Argument[self]", "log-injection", "df-generated"] + - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::next_expiration", "Argument[0]", "log-injection", "df-generated"] + - ["::next_expiration", "Argument[self]", "log-injection", "df-generated"] + - ["::register_listener", "Argument[0]", "log-injection", "df-generated"] + - ["::drop", "Argument[self]", "log-injection", "df-generated"] + - ["::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"] + - ["::add_permits", "Argument[0]", "log-injection", "df-generated"] + - ["::drop", "Argument[self]", "log-injection", "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"] + - ["::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"] + - ["::next", "Argument[self]", "log-injection", "df-generated"] + - ["::wait", "Argument[self]", "log-injection", "df-generated"] + - ["::poll_read", "Argument[1]", "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"] + - ["::poll_expired", "Argument[self]", "log-injection", "df-generated"] + - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::reset", "Argument[self]", "log-injection", "df-generated"] + - ["::reset_at", "Argument[self]", "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"] + - ["::poll", "Argument[0]", "log-injection", "df-generated"] + - ["::poll", "Argument[self]", "log-injection", "df-generated"] + - ["::remove", "Argument[self]", "log-injection", "df-generated"] + - ["::next_expiration", "Argument[0]", "log-injection", "df-generated"] + - ["::next_expiration", "Argument[self]", "log-injection", "df-generated"] + - ["signal_ctrl_c::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["signal_drop_recv::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["signal_drop_rt::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["signal_drop_signal::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["signal_multi_rt::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["signal_notify_both::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] + - ["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::signal::unix::signal", "Argument[0]", "log-injection", "df-generated"] + - ["tokio::signal::unix::signal_with_handle", "Argument[0]", "log-injection", "df-generated"] + - addsTo: + pack: codeql/rust-all + extensible: sourceModel + data: + - ["::file_name", "ReturnValue", "file", "df-generated"] + - ["::path", "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/lib/ext/generated/tokio/repo-benches.model.yml b/rust/ql/lib/ext/generated/tokio/repo-benches.model.yml deleted file mode 100644 index 16d65ece86d..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-benches.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo::benches", "::poll_read", "Argument[1]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-examples.model.yml b/rust/ql/lib/ext/generated/tokio/repo-examples.model.yml deleted file mode 100644 index e06ff8659f5..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-examples.model.yml +++ /dev/null @@ -1,7 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo::examples", "crate::connect", "ReturnValue", "remote", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml deleted file mode 100644 index cee63758be2..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-macros.model.yml +++ /dev/null @@ -1,10 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::entry::main", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::entry::test", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::select::clean_pattern_macro", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-macros", "crate::select_priv_clean_pattern", "Argument[0]", "ReturnValue", "value", "dfc-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml deleted file mode 100644 index a24ca2465d5..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-stream.model.yml +++ /dev/null @@ -1,192 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::extend", "Argument[2].Field[core::result::Result::Err(0)]", "Argument[1].Reference.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::stream_close::StreamNotifyClose::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_close::StreamNotifyClose::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_close::StreamNotifyClose::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::all::AllFuture::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::all::AllFuture::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::all::AllFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::any::AnyFuture::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::any::AnyFuture::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::chain::Chain::b]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::chunks_timeout::ChunksTimeout::cap]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[2]", "ReturnValue.Field[tokio_stream::stream_ext::chunks_timeout::ChunksTimeout::duration]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::collect::Collect::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::collection]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::collect::Collect::collection]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::filter::Filter::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::filter::Filter::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter::Filter::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::filter_map::FilterMap::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::filter_map::FilterMap::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::acc].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[2]", "ReturnValue.Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::acc]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::acc]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::fold::FoldFuture::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::fuse::Fuse::stream].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::map::Map::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::map::Map::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map::Map::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::map_while::MapWhile::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::map_while::MapWhile::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::merge::Merge::a_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::next::Next::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::next::Next::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::next::Next::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::peek]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::peekable::Peekable::peek]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::skip::Skip::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::skip::Skip::remaining]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip::Skip::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::skip_while::SkipWhile::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::skip_while::SkipWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::size_hint", "Argument[self].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::take::Take::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::take::Take::remaining]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take::Take::remaining]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::take_while::TakeWhile::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::done]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::done]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::take_while::TakeWhile::predicate]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::then::Then::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::then::Then::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::stream_ext::then::Then::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::get_mut", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::get_ref", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::timeout::Timeout::duration]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::timeout_repeating::TimeoutRepeating::interval]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::try_next::TryNext::inner].Field[tokio_stream::stream_ext::next::Next::stream]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::len", "Argument[self].Field[tokio_stream::stream_map::StreamMap::entries].Field[alloc::vec::Vec::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::interval::IntervalStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::lines::LinesStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::lines::LinesStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_bounded::ReceiverStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::mpsc_unbounded::UnboundedReceiverStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::read_dir::ReadDirStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::signal_unix::SignalStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::split::SplitStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_stream::wrappers::split::SplitStream::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::tcp_listener::TcpListenerStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_mut", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::as_ref", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::into_inner", "Argument[self].Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::new", "Argument[0]", "ReturnValue.Field[tokio_stream::wrappers::unix_listener::UnixListenerStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "crate::stream_ext::throttle::throttle", "Argument[0]", "ReturnValue.Field[tokio_stream::stream_ext::throttle::Throttle::duration]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "crate::stream_ext::throttle::throttle", "Argument[1]", "ReturnValue.Field[tokio_stream::stream_ext::throttle::Throttle::stream]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::insert", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::poll_next_many", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-stream", "::remove", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml deleted file mode 100644 index caa755b005e..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-test.model.yml +++ /dev/null @@ -1,36 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::build", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write_error", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::build", "Argument[self].Field[tokio_test::stream_mock::StreamMockBuilder::actions]", "ReturnValue.Field[tokio_test::stream_mock::StreamMock::actions]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::next", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::deref", "Argument[self].Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::deref_mut", "Argument[self].Field[tokio_test::task::Spawn::future]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::enter", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::into_inner", "Argument[self].Field[tokio_test::task::Spawn::future].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "crate::task::spawn", "Argument[0]", "ReturnValue.Field[tokio_test::task::Spawn::future].Reference", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::read_error", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::write_error", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::next", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-test", "::wait", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml deleted file mode 100644 index ef0a59f70ac..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio-util.model.yml +++ /dev/null @@ -1,284 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[length_delimited::Op::Data(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_length", "Argument[self].Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::seek_delimiters]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::sequence_writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_max_length", "Argument[2]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodec::max_length]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::any_delimiter_codec::AnyDelimiterCodecError::Io(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec_mut", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_codec", "Argument[0].ReturnValue", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_codec", "Argument[self].Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed::Framed::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::io]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed::FramedParts::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::codec::framed_impl::FramedImpl::state]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow_mut", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::read]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::borrow_mut", "Argument[self].Field[tokio_util::codec::framed_impl::RWFrames::write]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_impl::ReadFrame::buffer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_impl::WriteFrame::buffer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_decoder", "Argument[self].Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::map_encoder", "Argument[self].Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::big_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_adjustment]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_adjustment", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_field_len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::length_field_offset]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_offset", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::length_field_type", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::little_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::max_frame_len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_frame_length", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::native_endian", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_codec", "Argument[self].Reference", "ReturnValue.Field[tokio_util::codec::length_delimited::LengthDelimitedCodec::builder]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_framed", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed::Framed::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_read", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_read::FramedRead::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_write", "Argument[0]", "ReturnValue.Field[tokio_util::codec::framed_write::FramedWrite::inner].Field[tokio_util::codec::framed_impl::FramedImpl::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[0]", "Argument[self].Field[tokio_util::codec::length_delimited::Builder::num_skip].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[0]", "ReturnValue.Field[tokio_util::codec::length_delimited::Builder::num_skip].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::num_skip", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::max_length", "Argument[self].Field[tokio_util::codec::lines_codec::LinesCodec::max_length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_max_length", "Argument[0]", "ReturnValue.Field[tokio_util::codec::lines_codec::LinesCodec::max_length]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0]", "ReturnValue.Field[tokio_util::codec::lines_codec::LinesCodecError::Io(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::compat::Compat::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::seek_pos]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::compat::Compat::seek_pos]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::handle", "Argument[self].Field[tokio_util::context::TokioContext::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::context::TokioContext::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::context::TokioContext::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::context::TokioContext::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::handle]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::handle]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::context::TokioContext::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::copy_to_bytes::CopyToBytes::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::inspect::InspectReader::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::inspect::InspectReader::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::io::inspect::InspectReader::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectReader::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::inspect::InspectWriter::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::inspect::InspectWriter::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::io::inspect::InspectWriter::f]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::inspect::InspectWriter::f]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::reader].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[0]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::reader].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::with_capacity", "Argument[1]", "ReturnValue.Field[tokio_util::io::reader_stream::ReaderStream::capacity]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::sink_writer::SinkWriter::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::sink_writer::SinkWriter::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner_with_chunk", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::chunk]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner_with_chunk", "Argument[self].Field[tokio_util::io::stream_reader::StreamReader::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::stream_reader::StreamReader::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_mut", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_to_end", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_to_string", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_handle", "Argument[0]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new_with_handle", "Argument[1]", "ReturnValue.Field[tokio_util::io::sync_bridge::SyncIoBridge::rt]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wrap", "Argument[0]", "ReturnValue.Field[tokio_util::context::TokioContext::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wrap", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Field[tokio_util::context::TokioContext::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::sync::cancellation_token::CancellationToken::inner].Reference", "ReturnValue.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "ReturnValue.Field[tokio_util::sync::cancellation_token::CancellationToken::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::cancelled", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::cancelled_owned", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::drop_guard", "Argument[self]", "ReturnValue.Field[tokio_util::sync::cancellation_token::guard::DropGuard::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFuture::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::sync::cancellation_token::WaitForCancellationFutureOwned::cancellation_token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::notified", "Argument[self].Field[tokio_util::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[tokio::sync::notify::Notified::notify].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::notified", "Argument[self].Field[tokio_util::sync::cancellation_token::tree_node::TreeNode::waker]", "ReturnValue.Field[tokio::sync::notify::Notified::notify]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::sync::mpsc::PollSendError(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0].Reference", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::sender].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::mpsc::PollSender::state].Field[tokio_util::sync::mpsc::State::Idle(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::poll_semaphore::PollSemaphore::semaphore]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::sync::reusable_box::ReusableBoxFuture::boxed].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::try_set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::as_ref", "Argument[self].Field[tokio_util::task::abort_on_drop::AbortOnDropHandle(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::abort_handle", "Argument[self].Field[0].Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::clone", "Argument[self].Field[tokio_util::task::task_tracker::TaskTracker::inner]", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTracker::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::token", "Argument[self].Reference", "ReturnValue.Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::track_future", "Argument[0]", "ReturnValue.Field[tokio_util::task::task_tracker::TrackedFuture::future]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::wait", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::task_tracker", "Argument[self].Field[tokio_util::task::task_tracker::TaskTrackerToken::task_tracker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TaskTrackerWaitFuture::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio_util::task::task_tracker::TrackedFuture::token]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::deadline", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::peek", "Argument[self].Field[tokio_util::time::delay_queue::DelayQueue::expired].Field[tokio_util::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::try_remove", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::deadline", "Argument[self].Field[tokio_util::time::delay_queue::Expired::deadline]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::time::delay_queue::Expired::data]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::key", "Argument[self].Field[tokio_util::time::delay_queue::Expired::key]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0].Field[tokio_util::time::delay_queue::KeyInternal::index]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::delay_queue::Key::index]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::from", "Argument[0].Field[tokio_util::time::delay_queue::Key::index]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::delay_queue::KeyInternal::index]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index", "Argument[self].Field[tokio_util::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index_mut", "Argument[self].Field[tokio_util::time::delay_queue::SlabStorage::inner].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::peek", "Argument[self].Field[tokio_util::time::delay_queue::Stack::head]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::push", "Argument[0]", "Argument[self].Field[tokio_util::time::delay_queue::Stack::head].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::elapsed", "Argument[self].Field[tokio_util::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::insert", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll", "Argument[0]", "Argument[self].Field[tokio_util::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::time::wheel::level::Level::level]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::codec_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::codec]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::get_ref", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::into_inner", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::socket]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[0]", "ReturnValue.Field[tokio_util::udp::frame::UdpFramed::socket]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::new", "Argument[1]", "ReturnValue.Field[tokio_util::udp::frame::UdpFramed::codec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_buffer", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::read_buffer_mut", "Argument[self].Field[tokio_util::udp::frame::UdpFramed::rd]", "ReturnValue.Reference", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::write", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_write", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::drop", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::fmt", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_next", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll_expired", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::reset", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::reset_at", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::try_remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::index_mut", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::poll", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::next_expiration", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio-util", "::next_expiration", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml b/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml deleted file mode 100644 index 5c27e57efa8..00000000000 --- a/rust/ql/lib/ext/generated/tokio/repo-https-github.com-tokio-rs-tokio-tokio.model.yml +++ /dev/null @@ -1,1158 +0,0 @@ -# THIS FILE IS AN AUTO-GENERATED MODELS AS DATA FILE. DO NOT EDIT. -extensions: - - addsTo: - pack: codeql/rust-all - extensible: summaryModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_buf_read::AsyncBufRead>::consume", "Argument[self].Element", "Argument[self].Reference.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_buf_read::AsyncBufRead>::poll_fill_buf", "Argument[self].Reference", "ReturnValue.Field[core::task::poll::Poll::Ready(0)].Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&crate::task::wake::Waker as crate::sync::task::atomic_waker::WakerRef>::into_waker", "Argument[self].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&crate::util::linked_list::tests::Entry as crate::util::linked_list::Link>::as_raw", "Argument[0].Field[core::pin::Pin::__pointer].Field[core::ptr::unique::Unique::pointer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&mut crate::runtime::scheduler::inject::synced::Synced as crate::runtime::scheduler::lock::Lock>::lock", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_write_vectored", "Argument[self].Field[io_buf_writer::MockWriter::vectored]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[net_unix_pipe::TempFifo::path]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[net_unix_pipe::TempFifo::path]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[0]", "Argument[self].Field[tokio::fs::dir_builder::DirBuilder::mode].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[0]", "ReturnValue.Field[tokio::fs::dir_builder::DirBuilder::mode].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[0]", "Argument[self].Field[tokio::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[0]", "ReturnValue.Field[tokio::fs::dir_builder::DirBuilder::recursive]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::recursive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_max_buf_size", "Argument[0]", "Argument[self].Field[tokio::fs::file::File::max_buf_size]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_into_std", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::fs::open_options::OpenOptions(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::append", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner_mut", "Argument[self].Field[0]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner_mut", "Argument[self].Field[tokio::fs::open_options::OpenOptions(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::create", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::create_new", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::custom_flags", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mode", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::truncate", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_inner", "Argument[self].Field[tokio::fs::read_dir::DirEntry::std]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future1]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future2]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::future::try_join::TryJoin3::future3]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::async_fd::AsyncFd::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFd::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ready", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ready_mut", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io_mut", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_new", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_with_interest", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[self].Field[tokio::io::async_fd::AsyncFdReadyMutGuard::async_fd]", "Argument[0].Parameter[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::source", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_parts", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_parts", "Argument[self].Field[tokio::io::async_fd::AsyncFdTryNewError::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::blocking::Blocking::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bytes", "Argument[self].Field[tokio::io::blocking::Buf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_from", "Argument[1]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_from_bufs", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::io::async_fd::AsyncFdTryNewError::cause]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::runtime::blocking::pool::SpawnError::NoThreads(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::reader]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::join::Join::writer]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reader", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reader_mut", "Argument[self].Field[tokio::io::join::Join::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::writer", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::writer_mut", "Argument[self].Field[tokio::io::join::Join::writer]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[tokio::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::registration", "Argument[self].Field[tokio::io::poll_evented::PollEvented::registration]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::advance_mut", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remaining_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assume_init", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::initialize_unfilled_to", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::inner_mut", "Argument[self].Field[tokio::io::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remaining", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_filled", "Argument[0]", "Argument[self].Field[tokio::io::read_buf::ReadBuf::filled]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::take", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unfilled_mut", "Argument[self].Field[tokio::io::read_buf::ReadBuf::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uninit", "Argument[0]", "ReturnValue.Field[tokio::io::read_buf::ReadBuf::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitand", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitand", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::bitor", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_usize", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_usize", "Argument[self].Field[tokio::io::ready::Ready(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_usize", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::intersection", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::pos]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::seek]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::pos]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::seek::Seek::seek]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::stdio_common::SplitByUtf8BoundaryIfWindows::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::buffer", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::buf].Element", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::buf_reader::BufReader::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_capacity", "Argument[1]", "ReturnValue.Field[tokio::io::util::buf_reader::BufReader::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_stream::BufStream::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::buffer", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::buf]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::buf_writer::BufWriter::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_capacity", "Argument[1]", "ReturnValue.Field[tokio::io::util::buf_writer::BufWriter::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::first]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::second]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::chain::Chain::done_first]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::fill_buf::FillBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::fill_buf::FillBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::flush::Flush::a]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::flush::Flush::a]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::lines::Lines::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_unsplit", "Argument[0]", "ReturnValue.Field[tokio::io::util::mem::SimplexStream::max_buf_size]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read::Read::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_buf::ReadBuf::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_exact::ReadExact::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF32::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF32Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF64::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadF64Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadF64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI128::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI128Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI16::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI16Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI32::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI32Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI64::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI64Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadI64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadI8::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU128::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU128Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU128Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU16::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU16Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU16Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU32::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU32Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU32Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU64::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU64Le::src]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_int::ReadU64Le::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_int::ReadU8::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::read]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::shutdown::Shutdown::a]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::shutdown::Shutdown::a]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::io::util::take::Take::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::limit", "Argument[self].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::take::Take::limit_]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_limit", "Argument[0]", "Argument[self].Field[tokio::io::util::take::Take::limit_]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write::Write::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all::WriteAll::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_buf::WriteBuf::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF32::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF32Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF64::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteF64Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteF64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI128::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI128Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI16::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI16Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI32::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI32Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI64::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI64Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteI8::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_int::WriteI8::byte]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteI8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU128::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU128Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU128Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU16::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU16Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU16Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU32::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU32Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU32Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU64::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU64Le::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::buf]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU64Le::written]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_int::WriteU8::dst]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_int::WriteU8::byte]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_int::WriteU8::byte]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::io::util::write_vectored::WriteVectored::writer]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::loom::std::barrier::Barrier::num_threads]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[tokio::loom::std::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::lock", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::wait", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::wait_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_write", "Argument[self].Field[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[std::sync::poison::rwlock::RwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::write", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::loom::std::unsafe_cell::UnsafeCell(0)].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::tcp::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read_buf", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::tcp::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::tcp::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read", "Argument[self]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::tcp::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read_write", "Argument[0]", "Argument[self].Field[tokio::net::unix::pipe::OpenOptions::read_write]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read_write", "Argument[0]", "ReturnValue.Field[tokio::net::unix::pipe::OpenOptions::read_write]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::read_write", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[0]", "Argument[self].Field[tokio::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[0]", "ReturnValue.Field[tokio::net::unix::pipe::OpenOptions::unchecked]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unchecked", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::net::unix::socketaddr::SocketAddr(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::unix::split::ReadHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::unix::split::WriteHalf(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::unix::split_owned::OwnedReadHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::net::unix::split_owned::OwnedWriteHalf::inner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reunite", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::unix::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::io::poll_evented::PollEvented::io].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue.Field[0].Field[tokio::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::split", "Argument[self]", "ReturnValue.Field[1].Field[tokio::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::gid", "Argument[self].Field[tokio::net::unix::ucred::UCred::gid]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pid", "Argument[self].Field[tokio::net::unix::ucred::UCred::pid]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uid", "Argument[self].Field[tokio::net::unix::ucred::UCred::uid]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::net::unix::socketaddr::SocketAddr(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::process::Command::std]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::arg0", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_std", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_std_mut", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::current_dir", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env_clear", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::env_remove", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::envs", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_kill_on_drop", "Argument[self].Field[tokio::process::Command::kill_on_drop]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::gid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_std", "Argument[self].Field[tokio::process::Command::std]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[0]", "Argument[self].Field[tokio::process::Command::kill_on_drop]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[0]", "ReturnValue.Field[tokio::process::Command::kill_on_drop]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::kill_on_drop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pre_exec", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::process_group", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stderr", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stdin", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::stdout", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::uid", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[1]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::process::imp::pidfd_reaper::PidfdReaper::orphan_queue]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::inner_mut", "Argument[self].Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::inner].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::orphan_queue]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[2]", "ReturnValue.Field[tokio::process::imp::reap::Reaper::signal]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::process::test::Mock::poll_result]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::spawner", "Argument[self].Field[tokio::runtime::blocking::pool::BlockingPool::spawner]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::blocking::pool::Task::task]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::blocking::pool::Task::mandatory]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0].Reference", "ReturnValue.Field[tokio::runtime::blocking::schedule::BlockingSchedule::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::blocking::task::BlockingTask::func].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_io", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::enable_time", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::event_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::global_queue_interval].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::global_queue_interval].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::global_queue_interval", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::max_blocking_threads]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_blocking_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::nevents]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::nevents]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::max_io_events_per_tick", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::kind]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::builder::Builder::event_interval]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_park", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_start", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_stop", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::on_thread_unpark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::start_paused]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_paused", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::keep_alive].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::keep_alive].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_keep_alive", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_name", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_name_fn", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::thread_stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::thread_stack_size].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::thread_stack_size", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[0]", "Argument[self].Field[tokio::runtime::builder::Builder::worker_threads].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[0]", "ReturnValue.Field[tokio::runtime::builder::Builder::worker_threads].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_threads", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_current", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_ref", "Argument[self].Field[tokio::runtime::driver::IoHandle::Enabled(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Reference", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::consume_signal_ready", "Argument[self].Field[tokio::runtime::io::driver::Driver::signal_ready]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[0]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::ready]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[self].Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::is_shutdown]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_ready", "Argument[self].Field[tokio::runtime::io::driver::ReadyEvent::tick]", "ReturnValue.Field[tokio::runtime::io::driver::ReadyEvent::tick]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_interest_and_handle", "Argument[2]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::runtime::io::registration::Registration::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_write_io", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_io", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_shutdown", "Argument[0].Field[tokio::runtime::io::registration_set::Synced::is_shutdown]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpark", "Argument[self].Field[tokio::runtime::park::ParkThread::inner].Reference", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpark", "Argument[self].Field[tokio::runtime::park::ParkThread::inner]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::process::Driver::park]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[0]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::scheduler]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[1]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_parts", "Argument[2]", "ReturnValue.Field[tokio::runtime::runtime::Runtime::blocking_pool]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::handle", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle].Reference", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::metrics", "Argument[self].Field[tokio::runtime::runtime::Runtime::handle]", "ReturnValue.Field[tokio::runtime::metrics::runtime::RuntimeMetrics::handle]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expect_current_thread", "Argument[self].Field[tokio::runtime::scheduler::Context::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expect_multi_thread", "Argument[self].Field[tokio::runtime::scheduler::Context::MultiThread(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_current_thread", "Argument[self].Field[tokio::runtime::scheduler::Handle::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_closed", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::is_closed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[0].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::synced]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[1]", "ReturnValue.Field[tokio::runtime::scheduler::inject::pop::Pop::len]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[1]", "Argument[0]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self].Field[tokio::runtime::scheduler::inject::synced::Synced::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::trace_core", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::worker_metrics", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[0].Field[tokio::runtime::scheduler::multi_thread::idle::Idle::num_workers]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::handle", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::runtime::signal::Driver::io]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::Notified(0)].Field[tokio::runtime::task::Task::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_raw", "Argument[self].Field[0].Field[tokio::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_raw", "Argument[self].Field[tokio::runtime::task::Notified(0)].Field[tokio::runtime::task::Task::raw]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Field[tokio::runtime::task::Task::raw].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::Task::raw].Field[tokio::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[3]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_mut", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::cancelled", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::error::JoinError::id]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self].Field[tokio::runtime::task::error::JoinError::id]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::panic", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::error::JoinError::id]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_into_panic", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::abort_handle", "Argument[self].Field[tokio::runtime::task::join::JoinHandle::raw]", "ReturnValue.Field[tokio::runtime::task::abort::AbortHandle::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::join::JoinHandle::raw]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[tokio::runtime::task::Notified(0)]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[0]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::assert_owner", "Argument[0].Field[tokio::runtime::task::Notified(0)]", "ReturnValue.Field[tokio::runtime::task::LocalNotified::task]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::task::raw::RawTask::ptr]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::header_ptr", "Argument[self].Field[tokio::runtime::task::raw::RawTask::ptr]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::ref_count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::runtime::task::waker::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_config", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::id", "Argument[self].Field[tokio::runtime::task_hooks::TaskMeta::id]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[0].Field[tokio::runtime::time::Driver::park]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deadline", "Argument[self].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::entry::TimerEntry::driver]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[1]", "ReturnValue.Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Field[tokio::runtime::time::entry::TimerHandle::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::entry::TimerHandle::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::handle", "Argument[self].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[tokio::runtime::time::entry::TimerHandle::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::time_source", "Argument[self].Field[tokio::runtime::time::handle::Handle::time_source]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::start_time", "Argument[self].Field[tokio::runtime::time::source::TimeSource::start_time]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::tick_to_duration", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::elapsed", "Argument[self].Field[tokio::runtime::time::wheel::Wheel::elapsed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::insert", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration_time", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[0]", "Argument[self].Field[tokio::runtime::time::wheel::Wheel::elapsed]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_at", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::time::wheel::level::Level::level]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::signal::registry::Globals::extra]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::storage", "Argument[self].Field[tokio::signal::registry::Globals::registry].Field[tokio::signal::registry::Registry::storage]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw_value", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw_value", "Argument[self].Field[tokio::signal::unix::SignalKind(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[io_buf_writer::support::io_vec::IoBufs(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::advance", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[io_buf_writer::support::io_vec::IoBufs(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::barrier::Barrier::n]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::is_leader", "Argument[self].Field[tokio::sync::barrier::BarrierWaitResult(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[0]", "ReturnValue.Field[tokio::sync::batch_semaphore::Acquire::num_permits]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[self]", "ReturnValue.Field[tokio::sync::batch_semaphore::Acquire::semaphore]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::resubscribe", "Argument[self].Field[tokio::sync::broadcast::Receiver::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::resubscribe", "Argument[self].Field[tokio::sync::broadcast::Receiver::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Sender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::broadcast::error::SendError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[tokio::sync::broadcast::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[tokio::sync::broadcast::Sender::shared]", "ReturnValue.Field[tokio::sync::broadcast::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared].Reference", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::broadcast::WeakSender::shared]", "ReturnValue.Field[tokio::sync::broadcast::WeakSender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[0]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::size_hint", "Argument[self].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "ReturnValue.Field[1].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Receiver::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::Sender::chan]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::bounded::Sender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::reserve_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendTimeoutError::Closed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_timeout", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mpsc::bounded::PermitIterator::n]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_reserve_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::WeakSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::bounded::WeakSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue.Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue.Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade", "Argument[self].Field[tokio::sync::mpsc::chan::Tx::inner]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[0]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::sync::mpsc::chan::Tx::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::SendTimeoutError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::SendTimeoutError::Timeout(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue.Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::sync::mpsc::error::SendError(0)]", "ReturnValue.Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::TrySendError::Closed(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::mpsc::error::TrySendError::Full(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedReceiver::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::mpsc::error::SendError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan].Reference", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "ReturnValue.Field[tokio::sync::mpsc::unbounded::WeakUnboundedSender::chan]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::upgrade", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::mutex::MappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::const_new", "Argument[0]", "ReturnValue.Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::mutex::Mutex::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mutex::MutexGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::mutex::OwnedMutexGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mutex", "Argument[0].Field[tokio::sync::mutex::MutexGuard::lock]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::mutex::OwnedMappedMutexGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::mutex", "Argument[0].Field[tokio::sync::mutex::OwnedMutexGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::notified", "Argument[self]", "ReturnValue.Field[tokio::sync::notify::Notified::notify]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::as_raw", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_raw", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::once_cell::SetError::AlreadyInitializedError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::once_cell::SetError::InitializingError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::const_new", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::const_with_max_readers", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::const_with_max_readers", "Argument[1]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_read_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_write_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_max_readers", "Argument[0]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::c].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with_max_readers", "Argument[1]", "ReturnValue.Field[tokio::sync::rwlock::RwLock::mr]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_read_guard::OwnedRwLockReadGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_write_guard::OwnedRwLockWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::rwlock", "Argument[0].Field[tokio::sync::rwlock::owned_write_guard_mapped::OwnedRwLockMappedWriteGuard::lock]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::read_guard::RwLockReadGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::rwlock::write_guard::RwLockWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_mapped", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_downgrade_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::sync::rwlock::write_guard_mapped::RwLockMappedWriteGuard::data].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0].Reference", "Argument[1].Parameter[0].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_map", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::semaphore", "Argument[self].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many_owned", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_many_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::acquire_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::forget_permits", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::permits]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::SemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many_owned", "Argument[0]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::permits]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_many_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_acquire_owned", "Argument[self]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[tokio::sync::semaphore::OwnedSemaphorePermit::sem]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::num_permits", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::has_changed", "Argument[self].Field[tokio::sync::watch::Ref::has_changed]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::watch::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::watch::Sender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::clone", "Argument[self].Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Sender::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::sync::watch::error::SendError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::send_replace", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[tokio::sync::watch::Sender::shared].Reference", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::subscribe", "Argument[self].Field[tokio::sync::watch::Sender::shared]", "ReturnValue.Field[tokio::sync::watch::Receiver::shared]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::version", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::Coop::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::Coop::fut]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::coop::unconstrained::Unconstrained::inner]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[tokio::task::join_set::JoinSet::inner].Field[tokio::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_join_next", "Argument[self].Field[tokio::task::join_set::JoinSet::inner]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[0]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::slot].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[1]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::future].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::scope", "Argument[self]", "ReturnValue.Field[tokio::task::task_local::TaskLocalFuture::local]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sync_scope", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_with", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::future]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::local]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::slot]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::local]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::task::task_local::TaskLocalFuture::slot]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_waker", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::fmt", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::time::error::Error(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0]", "ReturnValue.Field[tokio::time::instant::Instant::std]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::sub_assign", "Argument[0]", "Argument[self]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_std", "Argument[0]", "ReturnValue.Field[tokio::time::instant::Instant::std]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_std", "Argument[self].Field[tokio::time::instant::Instant::std]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::missed_tick_behavior", "Argument[self].Field[tokio::time::interval::Interval::missed_tick_behavior]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::period", "Argument[self].Field[tokio::time::interval::Interval::period]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_missed_tick_behavior", "Argument[0]", "Argument[self].Field[tokio::time::interval::Interval::missed_tick_behavior]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deadline", "Argument[self].Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_timeout", "Argument[0]", "ReturnValue.Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_mut", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::get_ref", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_delay", "Argument[0]", "ReturnValue.Field[tokio::time::timeout::Timeout::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new_with_delay", "Argument[1]", "ReturnValue.Field[tokio::time::timeout::Timeout::delay]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::delay]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::delay]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[tokio::time::timeout::Timeout::value]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pack", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unpack", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref_mut", "Argument[self].Field[tokio::util::cacheline::CachePadded::value]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::util::cacheline::CachePadded::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::insert_idle", "Argument[self]", "ReturnValue.Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::len", "Argument[self].Field[tokio::util::idle_notified_set::IdleNotifiedSet::length]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_notified", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_pop_notified", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::idle_notified_set::EntryInOneOfTheLists::set]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[0]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::filter]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[self].Field[tokio::util::linked_list::LinkedList::head]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::curr]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drain_filter", "Argument[self]", "ReturnValue.Field[tokio::util::linked_list::DrainFilter::list]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::last", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_back", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_back", "Argument[self].Field[tokio::util::linked_list::LinkedList::tail].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_front", "Argument[self].Field[tokio::util::linked_list::LinkedList::head].Field[core::option::Option::Some(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_front", "Argument[self].Field[tokio::util::linked_list::LinkedList::head].Field[core::result::Result::Ok(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::expose_provenance", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_exposed_addr", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_seed", "Argument[0].Field[tokio::util::rand::RngSeed::r]", "ReturnValue.Field[tokio::util::rand::FastRand::two]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from_seed", "Argument[0].Field[tokio::util::rand::RngSeed::s]", "ReturnValue.Field[tokio::util::rand::FastRand::one]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::r]", "Argument[self].Field[tokio::util::rand::FastRand::two]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[0].Field[tokio::util::rand::RngSeed::s]", "Argument[self].Field[tokio::util::rand::FastRand::one]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[self].Field[tokio::util::rand::FastRand::one]", "ReturnValue.Field[tokio::util::rand::RngSeed::s]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::replace_seed", "Argument[self].Field[tokio::util::rand::FastRand::two]", "ReturnValue.Field[tokio::util::rand::RngSeed::r]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::lock_shard", "Argument[self].Field[tokio::util::sharded_list::ShardedList::added]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::added].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::lock_shard", "Argument[self].Field[tokio::util::sharded_list::ShardedList::count]", "ReturnValue.Field[tokio::util::sharded_list::ShardGuard::count].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::shard_size", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self].Field[tokio::util::sync_wrapper::SyncWrapper::value]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::util::sync_wrapper::SyncWrapper::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::new", "Argument[0]", "ReturnValue.Field[tokio::util::try_lock::TryLock::data].Field[core::cell::UnsafeCell::value]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::try_lock", "Argument[self]", "ReturnValue.Field[core::option::Option::Some(0)].Field[tokio::util::try_lock::LockGuard::lock]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::deref", "Argument[self].Field[tokio::util::wake::WakerRef::waker]", "ReturnValue.Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::from", "Argument[0].Field[tokio::runtime::scheduler::multi_thread::idle::State(0)]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::join::join", "Argument[0]", "ReturnValue.Field[tokio::io::join::Join::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::join::join", "Argument[1]", "ReturnValue.Field[tokio::io::join::Join::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::seek::seek", "Argument[0]", "ReturnValue.Field[tokio::io::seek::Seek::seek]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::seek::seek", "Argument[1]", "ReturnValue.Field[tokio::io::seek::Seek::pos].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::chain::chain", "Argument[0]", "ReturnValue.Field[tokio::io::util::chain::Chain::first]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::chain::chain", "Argument[1]", "ReturnValue.Field[tokio::io::util::chain::Chain::second]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::flush::flush", "Argument[0]", "ReturnValue.Field[tokio::io::util::flush::Flush::a]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::lines::lines", "Argument[0]", "ReturnValue.Field[tokio::io::util::lines::Lines::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read::read", "Argument[0]", "ReturnValue.Field[tokio::io::util::read::Read::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read::read", "Argument[1]", "ReturnValue.Field[tokio::io::util::read::Read::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_buf::read_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_buf::ReadBuf::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_buf::read_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_buf::ReadBuf::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_exact::read_exact", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_exact::ReadExact::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::finish_string_read", "Argument[1].Field[core::result::Result::Ok(0)]", "Argument[3].Reference", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_line::ReadLine::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_line::ReadLine::output]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_line::read_line_internal", "Argument[4]", "Argument[2]", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_end::read_to_end", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_to_end::ReadToEnd::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_end::read_to_end", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_to_end::ReadToEnd::buf].Field[tokio::io::util::vec_with_initialized::VecWithInitialized::vec]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_string::read_to_string", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_to_string::ReadToString::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_to_string::read_to_string", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_to_string::ReadToString::output]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[0]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[1]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::delimiter]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::read_until::read_until", "Argument[2]", "ReturnValue.Field[tokio::io::util::read_until::ReadUntil::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::repeat::repeat", "Argument[0]", "ReturnValue.Field[tokio::io::util::repeat::Repeat::byte]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::shutdown::shutdown", "Argument[0]", "ReturnValue.Field[tokio::io::util::shutdown::Shutdown::a]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::split::split", "Argument[0]", "ReturnValue.Field[tokio::io::util::split::Split::reader]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::split::split", "Argument[1]", "ReturnValue.Field[tokio::io::util::split::Split::delim]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::take::take", "Argument[0]", "ReturnValue.Field[tokio::io::util::take::Take::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::take::take", "Argument[1]", "ReturnValue.Field[tokio::io::util::take::Take::limit_]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write::write", "Argument[0]", "ReturnValue.Field[tokio::io::util::write::Write::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write::write", "Argument[1]", "ReturnValue.Field[tokio::io::util::write::Write::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all::write_all", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_all::WriteAll::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all::write_all", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_all::WriteAll::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all_buf::write_all_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_all_buf::WriteAllBuf::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_all_buf::write_all_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_all_buf::WriteAllBuf::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_buf::write_buf", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_buf::WriteBuf::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_buf::write_buf", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_buf::WriteBuf::buf]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_vectored::write_vectored", "Argument[0]", "ReturnValue.Field[tokio::io::util::write_vectored::WriteVectored::writer]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::io::util::write_vectored::write_vectored", "Argument[1]", "ReturnValue.Field[tokio::io::util::write_vectored::WriteVectored::bufs]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split::split", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split_owned::reunite", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::tcp::split_owned::reunite", "Argument[1]", "ReturnValue.Field[core::result::Result::Err(0)].Field[tokio::net::tcp::split_owned::ReuniteError(1)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split::split", "Argument[0]", "ReturnValue.Field[0].Field[tokio::net::unix::split::ReadHalf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::net::unix::split::split", "Argument[0]", "ReturnValue.Field[1].Field[tokio::net::unix::split::WriteHalf(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::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"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::budget", "Argument[0].ReturnValue", "ReturnValue.Field[core::result::Result::Ok(0)]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::current::with_current", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime::enter_runtime", "Argument[2].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime_mt::exit_runtime", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::context::runtime_mt::exit_runtime", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::metrics::batch::duration_as_u64", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::block_in_place::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::block_in_place::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::runtime::scheduler::multi_thread::worker::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::sync::mpsc::block::offset", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::sync::mpsc::block::start_index", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::blocking::block_in_place", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::blocking::block_in_place", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::budget", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::cooperative", "Argument[0]", "ReturnValue.Field[tokio::task::coop::Coop::fut]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::unconstrained::unconstrained", "Argument[0]", "ReturnValue.Field[tokio::task::coop::unconstrained::Unconstrained::inner]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::task::coop::with_unconstrained", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::interval::interval", "Argument[0]", "ReturnValue.Field[tokio::time::interval::Interval::period]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::interval::interval_at", "Argument[1]", "ReturnValue.Field[tokio::time::interval::Interval::period]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::time::sleep::sleep_until", "Argument[0]", "ReturnValue.Field[tokio::time::sleep::Sleep::entry].Field[tokio::runtime::time::entry::TimerEntry::deadline]", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::bit::unpack", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::memchr::memchr", "Argument[1]", "ReturnValue", "taint", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::trace::blocking_task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::trace::task", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::util::typeid::try_transmute", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sinkModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio", "<&[u8] as crate::io::async_read::AsyncRead>::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::copy_to", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::put_slice", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_read", "Argument[1]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::unsync_load", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::with", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll_recv", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::shutdown", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::pop_n", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push_batch", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::push_batch", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::set_queue_next", "Argument[0]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::transition_to_terminal", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::poll", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::remove", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::next_expiration", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::register_listener", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::release", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_permits", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::into_inner", "Argument[self]", "pointer-access", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::add_permits", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::drop", "Argument[self]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::signal::unix::signal", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::signal::unix::signal_with_handle", "Argument[0]", "log-injection", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "crate::support::signal::send_signal", "Argument[0]", "log-injection", "df-generated"] - - addsTo: - pack: codeql/rust-all - extensible: sourceModelDeprecated - data: - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::file_name", "ReturnValue", "file", "df-generated"] - - ["repo:https://github.com/tokio-rs/tokio:tokio", "::path", "ReturnValue", "file", "df-generated"] diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index bfe71d2ef85..63571d686e7 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -1,5 +1,4 @@ private import codeql.util.Unit -private import rust private import rust as R private import codeql.rust.dataflow.DataFlow private import codeql.rust.dataflow.internal.DataFlowImpl as DataFlowImpl @@ -12,7 +11,7 @@ private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary private newtype TCallable = - TFunction(Function api, string path) { + TFunction(R::Function api, string path) { path = api.getCanonicalPath() and ( // This excludes closures (these are not exported API endpoints) and @@ -22,25 +21,25 @@ private newtype TCallable = or // If a method implements a public trait it is exposed through the trait. // We overapproximate this by including all trait method implementations. - exists(Impl impl | impl.hasTrait() and impl.getAssocItemList().getAssocItem(_) = api) + exists(R::Impl impl | impl.hasTrait() and impl.getAssocItemList().getAssocItem(_) = api) ) } -private class QualifiedCallable extends TCallable { - Function api; +class QualifiedCallable extends TCallable { + R::Function api; string path; QualifiedCallable() { this = TFunction(api, path) } string toString() { result = path } - Function asFunction() { result = api } + R::Function asFunction() { result = api } string getCanonicalPath() { result = path } } module ModelGeneratorCommonInput implements - ModelGeneratorCommonInputSig + ModelGeneratorCommonInputSig { // NOTE: We are not using type information for now. class Type = Unit; @@ -75,7 +74,7 @@ module ModelGeneratorCommonInput implements string parameterApproximateAccess(R::ParamBase p) { result = parameterExactAccess(p) } class InstanceParameterNode extends DataFlow::ParameterNode { - InstanceParameterNode() { this.asParameter() instanceof SelfParam } + InstanceParameterNode() { this.asParameter() instanceof R::SelfParam } } bindingset[c] @@ -105,31 +104,24 @@ module ModelGeneratorCommonInput implements c.(SingletonContentSet).getContent() instanceof ElementContent } - string partialModelRow(QualifiedCallable api, int i) { - i = 0 and result = min(string path | path = api.(Function).getCanonicalPath() | path) - } + string partialModelRow(Callable api, int i) { i = 0 and result = api.getCanonicalPath() } string partialNeutralModelRow(Callable api, int i) { result = partialModelRow(api, i) } } private import ModelGeneratorCommonInput -private import MakeModelGeneratorFactory +private import MakeModelGeneratorFactory private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputSig { - class SummaryTargetApi extends Callable { - private Callable lift; + class SummaryTargetApi extends QualifiedCallable { + QualifiedCallable lift() { result = this } - SummaryTargetApi() { - lift = this and - relevant(this) - } - - Callable lift() { result = lift } - - predicate isRelevant() { relevant(this) } + predicate isRelevant() { any() } } - Callable getAsExprEnclosingCallable(NodeExtended node) { result = node.asExpr().getScope() } + QualifiedCallable getAsExprEnclosingCallable(NodeExtended node) { + result.asFunction() = node.asExpr().getScope() + } Parameter asParameter(NodeExtended node) { result = node.asParameter() } @@ -171,17 +163,13 @@ private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputS } private module SourceModelGeneratorInput implements SourceModelGeneratorInputSig { - class SourceTargetApi extends Callable { - SourceTargetApi() { relevant(this) } - } + class SourceTargetApi extends QualifiedCallable { } predicate sourceNode(DataFlow::Node node, string kind) { FlowSource::sourceNode(node, kind) } } private module SinkModelGeneratorInput implements SinkModelGeneratorInputSig { - class SinkTargetApi extends Callable { - SinkTargetApi() { relevant(this) } - } + class SinkTargetApi extends QualifiedCallable { } /** * Holds if `source` is an API entrypoint, i.e., a source of input where data diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll index 789113f7580..58a80557d0a 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModelsPrinting.qll @@ -1,9 +1,9 @@ -private import rust as R private import codeql.mad.modelgenerator.internal.ModelPrinting private import CaptureModels::ModelGeneratorCommonInput as ModelGeneratorInput +private import CaptureModels private module ModelPrintingLang implements ModelPrintingLangSig { - class Callable = R::Callable; + class Callable = QualifiedCallable; predicate partialModelRow = ModelGeneratorInput::partialModelRow/2; From 049c0705a93b6f816143ebb08e1fda3b27c12213 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 17 Jun 2025 15:02:55 +0100 Subject: [PATCH 125/340] Tag quality queries that are high precision and dont use pointsto --- python/ql/src/Exceptions/CatchingBaseException.ql | 6 +++--- python/ql/src/Exceptions/EmptyExcept.ql | 5 +++-- python/ql/src/Expressions/CallToSuperWrongClass.ql | 6 +++--- python/ql/src/Expressions/ExplicitCallToDel.ql | 3 ++- python/ql/src/Expressions/IncorrectComparisonUsingIs.ql | 3 ++- python/ql/src/Functions/ConsistentReturns.ql | 5 +++-- python/ql/src/Functions/InitIsGenerator.ql | 3 ++- .../ql/src/Functions/ModificationOfParameterWithDefault.ql | 5 +++-- 8 files changed, 21 insertions(+), 15 deletions(-) diff --git a/python/ql/src/Exceptions/CatchingBaseException.ql b/python/ql/src/Exceptions/CatchingBaseException.ql index 5205af33441..79174488760 100644 --- a/python/ql/src/Exceptions/CatchingBaseException.ql +++ b/python/ql/src/Exceptions/CatchingBaseException.ql @@ -2,9 +2,9 @@ * @name Except block handles 'BaseException' * @description Handling 'BaseException' means that system exits and keyboard interrupts may be mis-handled. * @kind problem - * @tags reliability - * readability - * convention + * @tags quality + * reliability + * error-handling * external/cwe/cwe-396 * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Exceptions/EmptyExcept.ql b/python/ql/src/Exceptions/EmptyExcept.ql index bfd0915a783..e1bbb29cf8b 100644 --- a/python/ql/src/Exceptions/EmptyExcept.ql +++ b/python/ql/src/Exceptions/EmptyExcept.ql @@ -2,8 +2,9 @@ * @name Empty except * @description Except doesn't do anything and has no comment * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * error-handling * external/cwe/cwe-390 * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Expressions/CallToSuperWrongClass.ql b/python/ql/src/Expressions/CallToSuperWrongClass.ql index af5c33ef13a..10a1435ac31 100644 --- a/python/ql/src/Expressions/CallToSuperWrongClass.ql +++ b/python/ql/src/Expressions/CallToSuperWrongClass.ql @@ -2,9 +2,9 @@ * @name First argument to super() is not enclosing class * @description Calling super with something other than the enclosing class may cause incorrect object initialization. * @kind problem - * @tags reliability - * maintainability - * convention + * @tags quality + * reliability + * correctness * external/cwe/cwe-687 * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/ExplicitCallToDel.ql b/python/ql/src/Expressions/ExplicitCallToDel.ql index f60945ba05c..44011aa43b0 100644 --- a/python/ql/src/Expressions/ExplicitCallToDel.ql +++ b/python/ql/src/Expressions/ExplicitCallToDel.ql @@ -2,7 +2,8 @@ * @name `__del__` is called explicitly * @description The `__del__` special method is called by the virtual machine when an object is being finalized. It should not be called explicitly. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql b/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql index a60430aa4c1..6eda4abbde2 100644 --- a/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql +++ b/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql @@ -2,7 +2,8 @@ * @name Comparison using is when operands support `__eq__` * @description Comparison using 'is' when equivalence is not the same as identity * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Functions/ConsistentReturns.ql b/python/ql/src/Functions/ConsistentReturns.ql index f9d81c63936..a1b30851456 100644 --- a/python/ql/src/Functions/ConsistentReturns.ql +++ b/python/ql/src/Functions/ConsistentReturns.ql @@ -2,8 +2,9 @@ * @name Explicit returns mixed with implicit (fall through) returns * @description Mixing implicit and explicit returns indicates a likely error as implicit returns always return 'None'. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity recommendation * @sub-severity high * @precision high diff --git a/python/ql/src/Functions/InitIsGenerator.ql b/python/ql/src/Functions/InitIsGenerator.ql index 84bb935ad2e..a0bb9415331 100644 --- a/python/ql/src/Functions/InitIsGenerator.ql +++ b/python/ql/src/Functions/InitIsGenerator.ql @@ -2,7 +2,8 @@ * @name `__init__` method is a generator * @description `__init__` method is a generator. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Functions/ModificationOfParameterWithDefault.ql b/python/ql/src/Functions/ModificationOfParameterWithDefault.ql index 3c601091694..f0f80ef5946 100644 --- a/python/ql/src/Functions/ModificationOfParameterWithDefault.ql +++ b/python/ql/src/Functions/ModificationOfParameterWithDefault.ql @@ -3,8 +3,9 @@ * @description Modifying the default value of a parameter can lead to unexpected * results. * @kind path-problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high From 5c4548df45e1bbe5cfb0387e3a7247b9698163e0 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Tue, 17 Jun 2025 17:07:19 +0100 Subject: [PATCH 126/340] Tag more quality queries. Excluded for now for uncertainty: incomplete ordering, import deprecated module --- python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql | 6 +++--- python/ql/src/Classes/EqualsOrHash.ql | 3 ++- python/ql/src/Classes/MissingCallToDel.ql | 4 +++- python/ql/src/Classes/MissingCallToInit.ql | 3 ++- python/ql/src/Classes/MutatingDescriptor.ql | 3 ++- python/ql/src/Classes/SubclassShadowing.ql | 3 ++- python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql | 3 ++- python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql | 3 ++- python/ql/src/Exceptions/IncorrectExceptOrder.ql | 5 +++-- python/ql/src/Exceptions/NotImplementedIsNotAnException.ql | 5 +++-- .../ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql | 3 ++- .../Expressions/UnintentionalImplicitStringConcatenation.ql | 4 ++-- python/ql/src/Expressions/UnsupportedFormatCharacter.ql | 3 ++- python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql | 6 +++--- python/ql/src/Functions/IncorrectlyOverriddenMethod.ql | 4 +++- .../src/Functions/IncorrectlySpecifiedOverriddenMethod.ql | 4 +++- python/ql/src/Functions/OverlyComplexDelMethod.ql | 4 +--- python/ql/src/Functions/SignatureOverriddenMethod.ql | 3 ++- python/ql/src/Statements/ModificationOfLocals.ql | 3 ++- python/ql/src/Statements/SideEffectInAssert.ql | 5 +++-- python/ql/src/Statements/TopLevelPrint.ql | 4 ++-- 21 files changed, 49 insertions(+), 32 deletions(-) diff --git a/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql b/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql index 34a9e133075..947c547c050 100644 --- a/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql +++ b/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql @@ -2,9 +2,9 @@ * @name Conflicting attributes in base classes * @description When a class subclasses multiple base classes and more than one base class defines the same attribute, attribute overriding may result in unexpected behavior by instances of this class. * @kind problem - * @tags reliability - * maintainability - * modularity + * @tags quality + * reliability + * correctness * @problem.severity warning * @sub-severity low * @precision high diff --git a/python/ql/src/Classes/EqualsOrHash.ql b/python/ql/src/Classes/EqualsOrHash.ql index 26be0c2ec43..4c8cf2c1169 100644 --- a/python/ql/src/Classes/EqualsOrHash.ql +++ b/python/ql/src/Classes/EqualsOrHash.ql @@ -2,7 +2,8 @@ * @name Inconsistent equality and hashing * @description Defining equality for a class without also defining hashability (or vice-versa) violates the object model. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-581 * @problem.severity warning diff --git a/python/ql/src/Classes/MissingCallToDel.ql b/python/ql/src/Classes/MissingCallToDel.ql index 641968789d6..be49dc48b5f 100644 --- a/python/ql/src/Classes/MissingCallToDel.ql +++ b/python/ql/src/Classes/MissingCallToDel.ql @@ -2,8 +2,10 @@ * @name Missing call to `__del__` during object destruction * @description An omitted call to a super-class `__del__` method may lead to class instances not being cleaned up properly. * @kind problem - * @tags efficiency + * @tags quality + * reliability * correctness + * performance * @problem.severity error * @sub-severity low * @precision high diff --git a/python/ql/src/Classes/MissingCallToInit.ql b/python/ql/src/Classes/MissingCallToInit.ql index 81d1916056e..4f5d3d90e84 100644 --- a/python/ql/src/Classes/MissingCallToInit.ql +++ b/python/ql/src/Classes/MissingCallToInit.ql @@ -2,7 +2,8 @@ * @name Missing call to `__init__` during object initialization * @description An omitted call to a super-class `__init__` method may lead to objects of this class not being fully initialized. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Classes/MutatingDescriptor.ql b/python/ql/src/Classes/MutatingDescriptor.ql index 477ecc18206..aad468f8e3c 100644 --- a/python/ql/src/Classes/MutatingDescriptor.ql +++ b/python/ql/src/Classes/MutatingDescriptor.ql @@ -2,7 +2,8 @@ * @name Mutation of descriptor in `__get__` or `__set__` method. * @description Descriptor objects can be shared across many instances. Mutating them can cause strange side effects or race conditions. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Classes/SubclassShadowing.ql b/python/ql/src/Classes/SubclassShadowing.ql index 974230709bb..542cf31c76a 100644 --- a/python/ql/src/Classes/SubclassShadowing.ql +++ b/python/ql/src/Classes/SubclassShadowing.ql @@ -4,7 +4,8 @@ * method, hides the method in the subclass. * @kind problem * @problem.severity error - * @tags maintainability + * @tags quality + * reliability * correctness * @sub-severity low * @precision high diff --git a/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql b/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql index da301b6422a..019da4257aa 100644 --- a/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql +++ b/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql @@ -2,7 +2,8 @@ * @name Multiple calls to `__del__` during object destruction * @description A duplicated call to a super-class `__del__` method may lead to class instances not be cleaned up properly. * @kind problem - * @tags efficiency + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql b/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql index ec94202c0f3..6251ef274da 100644 --- a/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql +++ b/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql @@ -2,7 +2,8 @@ * @name Multiple calls to `__init__` during object initialization * @description A duplicated call to a super-class `__init__` method may lead to objects of this class not being properly initialized. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Exceptions/IncorrectExceptOrder.ql b/python/ql/src/Exceptions/IncorrectExceptOrder.ql index 0b57dd4659d..3c0c90b36d3 100644 --- a/python/ql/src/Exceptions/IncorrectExceptOrder.ql +++ b/python/ql/src/Exceptions/IncorrectExceptOrder.ql @@ -3,8 +3,9 @@ * @description Handling general exceptions before specific exceptions means that the specific * handlers are never executed. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * error-handling * external/cwe/cwe-561 * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql b/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql index 933d15ddf60..80dcd6f0dbe 100644 --- a/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql +++ b/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql @@ -6,8 +6,9 @@ * @sub-severity high * @precision very-high * @id py/raise-not-implemented - * @tags reliability - * maintainability + * @tags quality + * reliability + * error-handling */ import python diff --git a/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql b/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql index 7a5399700ec..166eae635fa 100644 --- a/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql +++ b/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql @@ -2,7 +2,8 @@ * @name Duplicate key in dict literal * @description Duplicate key in dict literal. All but the last will be lost. * @kind problem - * @tags reliability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 * @problem.severity warning diff --git a/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql b/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql index f653db40571..06528f1d754 100644 --- a/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql +++ b/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql @@ -2,9 +2,9 @@ * @name Implicit string concatenation in a list * @description Omitting a comma between strings causes implicit concatenation which is confusing in a list. * @kind problem - * @tags reliability + * @tags quality * maintainability - * convention + * readability * external/cwe/cwe-665 * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Expressions/UnsupportedFormatCharacter.ql b/python/ql/src/Expressions/UnsupportedFormatCharacter.ql index d3876725233..ff99a87487a 100644 --- a/python/ql/src/Expressions/UnsupportedFormatCharacter.ql +++ b/python/ql/src/Expressions/UnsupportedFormatCharacter.ql @@ -2,7 +2,8 @@ * @name Unsupported format character * @description An unsupported format character in a format string * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql b/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql index a99a66bca3b..4bf52af9061 100644 --- a/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql +++ b/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql @@ -2,9 +2,9 @@ * @name Non-standard exception raised in special method * @description Raising a non-standard exception in a special method alters the expected interface of that method. * @kind problem - * @tags reliability - * maintainability - * convention + * @tags quality + * reliability + * error-handling * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql index e607245f97f..af91411e54c 100644 --- a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql +++ b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql @@ -2,7 +2,9 @@ * @name Mismatch between signature and use of an overriding method * @description Method has a different signature from the overridden method and, if it were called, would be likely to cause an error. * @kind problem - * @tags maintainability + * @tags quality + * maintainability + * readability * @problem.severity error * @sub-severity low * @precision high diff --git a/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql b/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql index 0d68d0b506e..929371d82a5 100644 --- a/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql +++ b/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql @@ -3,7 +3,9 @@ * @description Method has a signature that differs from both the signature of its overriding methods and * the arguments with which it is called, and if it were called, would be likely to cause an error. * @kind problem - * @tags maintainability + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity high * @precision high diff --git a/python/ql/src/Functions/OverlyComplexDelMethod.ql b/python/ql/src/Functions/OverlyComplexDelMethod.ql index 19262332990..b93dc4af3c3 100644 --- a/python/ql/src/Functions/OverlyComplexDelMethod.ql +++ b/python/ql/src/Functions/OverlyComplexDelMethod.ql @@ -2,11 +2,9 @@ * @name Overly complex `__del__` method * @description `__del__` methods may be called at arbitrary times, perhaps never called at all, and should be simple. * @kind problem - * @tags efficiency + * @tags quality * maintainability * complexity - * statistical - * non-attributable * @problem.severity recommendation * @sub-severity low * @precision high diff --git a/python/ql/src/Functions/SignatureOverriddenMethod.ql b/python/ql/src/Functions/SignatureOverriddenMethod.ql index 85f1f0c2eb1..3e3877bc139 100644 --- a/python/ql/src/Functions/SignatureOverriddenMethod.ql +++ b/python/ql/src/Functions/SignatureOverriddenMethod.ql @@ -4,7 +4,8 @@ * number and type of parameters has the potential to cause an error when there is a mismatch. * @kind problem * @problem.severity warning - * @tags reliability + * @tags quality + * reliability * correctness * @sub-severity high * @precision very-high diff --git a/python/ql/src/Statements/ModificationOfLocals.ql b/python/ql/src/Statements/ModificationOfLocals.ql index f766000ec3e..05c2095f88c 100644 --- a/python/ql/src/Statements/ModificationOfLocals.ql +++ b/python/ql/src/Statements/ModificationOfLocals.ql @@ -2,7 +2,8 @@ * @name Modification of dictionary returned by locals() * @description Modifications of the dictionary returned by locals() are not propagated to the local variables of a function. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Statements/SideEffectInAssert.ql b/python/ql/src/Statements/SideEffectInAssert.ql index e4797d2dad4..92cb95d702b 100644 --- a/python/ql/src/Statements/SideEffectInAssert.ql +++ b/python/ql/src/Statements/SideEffectInAssert.ql @@ -3,8 +3,9 @@ * @description Side-effects in assert statements result in differences between normal * and optimized behavior. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high diff --git a/python/ql/src/Statements/TopLevelPrint.ql b/python/ql/src/Statements/TopLevelPrint.ql index 068bd594f74..a8ddd15d5de 100644 --- a/python/ql/src/Statements/TopLevelPrint.ql +++ b/python/ql/src/Statements/TopLevelPrint.ql @@ -2,9 +2,9 @@ * @name Use of a print statement at module level * @description Using a print statement at module scope (except when guarded by `if __name__ == '__main__'`) will cause surprising output when the module is imported. * @kind problem - * @tags reliability + * @tags quality * maintainability - * convention + * readability * @problem.severity recommendation * @sub-severity high * @precision high From 869e33e38c76647f9e7dc3b0e72345532e4636d6 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 10:04:47 +0100 Subject: [PATCH 127/340] Tag 'linter-like' quality queries that use pointto Excluded for now: unnecassary-delete; since the pattern is often intentional to break reference cycles, which the query doesn't account for; so uncertain about its claim of high precision --- python/ql/src/Expressions/CompareConstants.ql | 3 ++- python/ql/src/Expressions/CompareIdenticalValues.ql | 5 ++--- .../ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql | 5 +++-- python/ql/src/Expressions/EqualsNone.ql | 5 +++-- python/ql/src/Expressions/UnnecessaryLambda.ql | 3 ++- python/ql/src/Functions/ExplicitReturnInInit.ql | 3 ++- python/ql/src/Functions/UseImplicitNoneReturnValue.ql | 4 +++- python/ql/src/Statements/StatementNoEffect.ql | 3 ++- python/ql/src/Statements/UnreachableCode.ql | 3 ++- python/ql/src/Statements/UseOfExit.ql | 4 +++- .../src/Variables/SuspiciousUnusedLoopIterationVariable.ql | 3 ++- python/ql/src/Variables/UnusedLocalVariable.ql | 3 ++- python/ql/src/Variables/UnusedModuleVariable.ql | 3 ++- 13 files changed, 30 insertions(+), 17 deletions(-) diff --git a/python/ql/src/Expressions/CompareConstants.ql b/python/ql/src/Expressions/CompareConstants.ql index d2d8f827dc0..4b06e0a2a6e 100644 --- a/python/ql/src/Expressions/CompareConstants.ql +++ b/python/ql/src/Expressions/CompareConstants.ql @@ -2,7 +2,8 @@ * @name Comparison of constants * @description Comparison of constants is always constant, but is harder to read than a simple constant. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-570 * external/cwe/cwe-571 diff --git a/python/ql/src/Expressions/CompareIdenticalValues.ql b/python/ql/src/Expressions/CompareIdenticalValues.ql index c950d3ebb2e..705f715df6c 100644 --- a/python/ql/src/Expressions/CompareIdenticalValues.ql +++ b/python/ql/src/Expressions/CompareIdenticalValues.ql @@ -2,10 +2,9 @@ * @name Comparison of identical values * @description Comparison of identical values, the intent of which is unclear. * @kind problem - * @tags reliability - * correctness + * @tags quality + * maintainability * readability - * convention * external/cwe/cwe-570 * external/cwe/cwe-571 * @problem.severity warning diff --git a/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql b/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql index 554d7a087b6..fc63e570999 100644 --- a/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql +++ b/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql @@ -2,8 +2,9 @@ * @name Maybe missing 'self' in comparison * @description Comparison of identical values, the intent of which is unclear. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-570 * external/cwe/cwe-571 * @problem.severity warning diff --git a/python/ql/src/Expressions/EqualsNone.ql b/python/ql/src/Expressions/EqualsNone.ql index fa36dffb724..01f5def7f91 100644 --- a/python/ql/src/Expressions/EqualsNone.ql +++ b/python/ql/src/Expressions/EqualsNone.ql @@ -2,8 +2,9 @@ * @name Testing equality to None * @description Testing whether an object is 'None' using the == operator is inefficient and potentially incorrect. * @kind problem - * @tags efficiency - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Expressions/UnnecessaryLambda.ql b/python/ql/src/Expressions/UnnecessaryLambda.ql index 7486e27d695..5ba2dd17124 100644 --- a/python/ql/src/Expressions/UnnecessaryLambda.ql +++ b/python/ql/src/Expressions/UnnecessaryLambda.ql @@ -2,7 +2,8 @@ * @name Unnecessary lambda * @description A lambda is used that calls through to a function without modifying any parameters * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Functions/ExplicitReturnInInit.ql b/python/ql/src/Functions/ExplicitReturnInInit.ql index 000c671396e..c4deea6111c 100644 --- a/python/ql/src/Functions/ExplicitReturnInInit.ql +++ b/python/ql/src/Functions/ExplicitReturnInInit.ql @@ -2,7 +2,8 @@ * @name `__init__` method returns a value * @description Explicitly returning a value from an `__init__` method will raise a TypeError. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Functions/UseImplicitNoneReturnValue.ql b/python/ql/src/Functions/UseImplicitNoneReturnValue.ql index f45c9c42e0e..aeac382f638 100644 --- a/python/ql/src/Functions/UseImplicitNoneReturnValue.ql +++ b/python/ql/src/Functions/UseImplicitNoneReturnValue.ql @@ -2,7 +2,9 @@ * @name Use of the return value of a procedure * @description The return value of a procedure (a function that does not return a value) is used. This is confusing to the reader as the value (None) has no meaning. * @kind problem - * @tags maintainability + * @tags quality + * maintainability + * readability * @problem.severity warning * @sub-severity low * @precision high diff --git a/python/ql/src/Statements/StatementNoEffect.ql b/python/ql/src/Statements/StatementNoEffect.ql index 72a9c91f8ae..a5806e7082d 100644 --- a/python/ql/src/Statements/StatementNoEffect.ql +++ b/python/ql/src/Statements/StatementNoEffect.ql @@ -2,7 +2,8 @@ * @name Statement has no effect * @description A statement has no effect * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 * @problem.severity recommendation diff --git a/python/ql/src/Statements/UnreachableCode.ql b/python/ql/src/Statements/UnreachableCode.ql index 47426af2c34..98c99ac1218 100644 --- a/python/ql/src/Statements/UnreachableCode.ql +++ b/python/ql/src/Statements/UnreachableCode.ql @@ -2,7 +2,8 @@ * @name Unreachable code * @description Code is unreachable * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 * @problem.severity warning diff --git a/python/ql/src/Statements/UseOfExit.ql b/python/ql/src/Statements/UseOfExit.ql index 4a2730b7753..be3579481fc 100644 --- a/python/ql/src/Statements/UseOfExit.ql +++ b/python/ql/src/Statements/UseOfExit.ql @@ -2,7 +2,9 @@ * @name Use of exit() or quit() * @description exit() or quit() may fail if the interpreter is run with the -S option. * @kind problem - * @tags maintainability + * @tags quality + * reliability + * correctness * @problem.severity warning * @sub-severity low * @precision very-high diff --git a/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql b/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql index 169b686a22a..fbeb9b2b4f9 100644 --- a/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql +++ b/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql @@ -2,7 +2,8 @@ * @name Suspicious unused loop iteration variable * @description A loop iteration variable is unused, which suggests an error. * @kind problem - * @tags maintainability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Variables/UnusedLocalVariable.ql b/python/ql/src/Variables/UnusedLocalVariable.ql index a009d4a51b9..4acd7a08b54 100644 --- a/python/ql/src/Variables/UnusedLocalVariable.ql +++ b/python/ql/src/Variables/UnusedLocalVariable.ql @@ -2,7 +2,8 @@ * @name Unused local variable * @description Local variable is defined but not used * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-563 * @problem.severity recommendation diff --git a/python/ql/src/Variables/UnusedModuleVariable.ql b/python/ql/src/Variables/UnusedModuleVariable.ql index c9009d9bf36..855ca27a741 100644 --- a/python/ql/src/Variables/UnusedModuleVariable.ql +++ b/python/ql/src/Variables/UnusedModuleVariable.ql @@ -2,7 +2,8 @@ * @name Unused global variable * @description Global variable is defined but not used * @kind problem - * @tags efficiency + * @tags quality + * maintainability * useless-code * external/cwe/cwe-563 * @problem.severity recommendation From 4b1d31c9766d16c0984106f9d2904c1bcae7ffd3 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 10:23:25 +0100 Subject: [PATCH 128/340] Tag 'linter-like' quality queries that don't use pointsto --- python/ql/src/Imports/ImportandImportFrom.ql | 4 +++- python/ql/src/Imports/ModuleImportsItself.ql | 3 ++- python/ql/src/Imports/MultipleImports.ql | 3 ++- python/ql/src/Imports/UnintentionalImport.ql | 5 +++-- python/ql/src/Imports/UnusedImport.ql | 3 ++- python/ql/src/Statements/AssertOnTuple.ql | 5 +++-- python/ql/src/Statements/ConstantInConditional.ql | 3 ++- python/ql/src/Statements/NestedLoopsSameVariable.ql | 5 +++-- python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql | 3 ++- python/ql/src/Statements/RedundantAssignment.ql | 3 ++- python/ql/src/Statements/UnnecessaryElseClause.ql | 3 ++- python/ql/src/Statements/UnnecessaryPass.ql | 3 ++- python/ql/src/Variables/GlobalAtModuleLevel.ql | 3 ++- python/ql/src/Variables/MultiplyDefined.ql | 3 ++- 14 files changed, 32 insertions(+), 17 deletions(-) diff --git a/python/ql/src/Imports/ImportandImportFrom.ql b/python/ql/src/Imports/ImportandImportFrom.ql index f77ce345113..48ada91b11b 100644 --- a/python/ql/src/Imports/ImportandImportFrom.ql +++ b/python/ql/src/Imports/ImportandImportFrom.ql @@ -2,7 +2,9 @@ * @name Module is imported with 'import' and 'import from' * @description A module is imported with the "import" and "import from" statements * @kind problem - * @tags maintainability + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity low * @precision very-high diff --git a/python/ql/src/Imports/ModuleImportsItself.ql b/python/ql/src/Imports/ModuleImportsItself.ql index c876853fff5..72d223da3db 100644 --- a/python/ql/src/Imports/ModuleImportsItself.ql +++ b/python/ql/src/Imports/ModuleImportsItself.ql @@ -2,7 +2,8 @@ * @name Module imports itself * @description A module imports itself * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Imports/MultipleImports.ql b/python/ql/src/Imports/MultipleImports.ql index fdff082e0c5..f23ae25e674 100644 --- a/python/ql/src/Imports/MultipleImports.ql +++ b/python/ql/src/Imports/MultipleImports.ql @@ -2,7 +2,8 @@ * @name Module is imported more than once * @description Importing a module a second time has no effect and impairs readability * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Imports/UnintentionalImport.ql b/python/ql/src/Imports/UnintentionalImport.ql index cdbcec278dd..1faf3bb55f3 100644 --- a/python/ql/src/Imports/UnintentionalImport.ql +++ b/python/ql/src/Imports/UnintentionalImport.ql @@ -3,8 +3,9 @@ * @description Importing a module using 'import *' may unintentionally pollute the global * namespace if the module does not define `__all__` * @kind problem - * @tags maintainability - * modularity + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Imports/UnusedImport.ql b/python/ql/src/Imports/UnusedImport.ql index a4990a3a34c..02035690165 100644 --- a/python/ql/src/Imports/UnusedImport.ql +++ b/python/ql/src/Imports/UnusedImport.ql @@ -2,7 +2,8 @@ * @name Unused import * @description Import is not required as it is not used * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity recommendation * @sub-severity high diff --git a/python/ql/src/Statements/AssertOnTuple.ql b/python/ql/src/Statements/AssertOnTuple.ql index e86e05483c3..1dbdc5a0e17 100644 --- a/python/ql/src/Statements/AssertOnTuple.ql +++ b/python/ql/src/Statements/AssertOnTuple.ql @@ -2,8 +2,9 @@ * @name Asserting a tuple * @description Using an assert statement to test a tuple provides no validity checking. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * external/cwe/cwe-670 * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Statements/ConstantInConditional.ql b/python/ql/src/Statements/ConstantInConditional.ql index 0b12d6efd98..9aa180c1937 100644 --- a/python/ql/src/Statements/ConstantInConditional.ql +++ b/python/ql/src/Statements/ConstantInConditional.ql @@ -2,7 +2,8 @@ * @name Constant in conditional expression or statement * @description The conditional is always true or always false * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-561 * external/cwe/cwe-570 diff --git a/python/ql/src/Statements/NestedLoopsSameVariable.ql b/python/ql/src/Statements/NestedLoopsSameVariable.ql index f57fa9b361a..48d9c7beb78 100644 --- a/python/ql/src/Statements/NestedLoopsSameVariable.ql +++ b/python/ql/src/Statements/NestedLoopsSameVariable.ql @@ -3,8 +3,9 @@ * @description Nested loops in which the target variable is the same for each loop make * the behavior of the loops difficult to understand. * @kind problem - * @tags maintainability - * correctness + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql b/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql index de293a7aeea..c4deb4e6427 100644 --- a/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql +++ b/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql @@ -3,7 +3,8 @@ * @description Redefining a variable in an inner loop and then using * the variable in an outer loop causes unexpected behavior. * @kind problem - * @tags maintainability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Statements/RedundantAssignment.ql b/python/ql/src/Statements/RedundantAssignment.ql index 097e4d0052f..40acebf22a0 100644 --- a/python/ql/src/Statements/RedundantAssignment.ql +++ b/python/ql/src/Statements/RedundantAssignment.ql @@ -2,7 +2,8 @@ * @name Redundant assignment * @description Assigning a variable to itself is useless and very likely indicates an error in the code. * @kind problem - * @tags reliability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-563 * @problem.severity error diff --git a/python/ql/src/Statements/UnnecessaryElseClause.ql b/python/ql/src/Statements/UnnecessaryElseClause.ql index 35ac254b276..5e4763637a9 100644 --- a/python/ql/src/Statements/UnnecessaryElseClause.ql +++ b/python/ql/src/Statements/UnnecessaryElseClause.ql @@ -2,7 +2,8 @@ * @name Unnecessary 'else' clause in loop * @description An 'else' clause in a 'for' or 'while' statement that does not contain a 'break' is redundant. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Statements/UnnecessaryPass.ql b/python/ql/src/Statements/UnnecessaryPass.ql index 215fac5192e..1a842639b76 100644 --- a/python/ql/src/Statements/UnnecessaryPass.ql +++ b/python/ql/src/Statements/UnnecessaryPass.ql @@ -2,7 +2,8 @@ * @name Unnecessary pass * @description Unnecessary 'pass' statement * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Variables/GlobalAtModuleLevel.ql b/python/ql/src/Variables/GlobalAtModuleLevel.ql index e0ac59d2e72..e68caf2adf4 100644 --- a/python/ql/src/Variables/GlobalAtModuleLevel.ql +++ b/python/ql/src/Variables/GlobalAtModuleLevel.ql @@ -2,7 +2,8 @@ * @name Use of 'global' at module level * @description Use of the 'global' statement at module level * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Variables/MultiplyDefined.ql b/python/ql/src/Variables/MultiplyDefined.ql index 7d0e76fb6c3..3c26ff0b1eb 100644 --- a/python/ql/src/Variables/MultiplyDefined.ql +++ b/python/ql/src/Variables/MultiplyDefined.ql @@ -2,7 +2,8 @@ * @name Variable defined multiple times * @description Assignment to a variable occurs multiple times without any intermediate use of that variable * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * external/cwe/cwe-563 * @problem.severity warning From 02f8ec33f20a27eb225cdc890e45fb64e0c5bf0c Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 10:36:06 +0100 Subject: [PATCH 129/340] Tag 'type-checking'-like quality queries --- .../src/Classes/WrongNameForArgumentInClassInstantiation.ql | 3 ++- .../src/Classes/WrongNumberArgumentsInClassInstantiation.ql | 3 ++- python/ql/src/Exceptions/IllegalRaise.ql | 6 +++--- python/ql/src/Expressions/ContainsNonContainer.ql | 3 ++- python/ql/src/Expressions/ExpectedMappingForFormatString.ql | 3 ++- python/ql/src/Expressions/HashedButNoHash.ql | 3 ++- python/ql/src/Expressions/NonCallableCalled.ql | 4 ++-- python/ql/src/Expressions/WrongNameForArgumentInCall.ql | 3 ++- python/ql/src/Expressions/WrongNumberArgumentsInCall.ql | 3 ++- python/ql/src/Functions/IterReturnsNonIterator.ql | 3 ++- python/ql/src/Imports/EncodingError.ql | 3 ++- python/ql/src/Imports/SyntaxError.ql | 3 ++- python/ql/src/Statements/IterableStringOrSequence.ql | 6 +++--- python/ql/src/Statements/MismatchInMultipleAssignment.ql | 4 ++-- python/ql/src/Statements/NonIteratorInForLoop.ql | 4 ++-- 15 files changed, 32 insertions(+), 22 deletions(-) diff --git a/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql b/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql index 73631a134c8..1de99ebdbf6 100644 --- a/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql +++ b/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql @@ -4,7 +4,8 @@ * parameter of the __init__ method of the class being * instantiated, will result in a TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-628 * @problem.severity error diff --git a/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql b/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql index 8b456c91dce..8518905f3a9 100644 --- a/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql +++ b/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql @@ -3,7 +3,8 @@ * @description Using too many or too few arguments in a call to the `__init__` * method of a class will result in a TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-685 * @problem.severity error diff --git a/python/ql/src/Exceptions/IllegalRaise.ql b/python/ql/src/Exceptions/IllegalRaise.ql index 7d8e8987410..04319e246ed 100644 --- a/python/ql/src/Exceptions/IllegalRaise.ql +++ b/python/ql/src/Exceptions/IllegalRaise.ql @@ -2,9 +2,9 @@ * @name Illegal raise * @description Raising a non-exception object or type will result in a TypeError being raised instead. * @kind problem - * @tags reliability - * correctness - * types + * @tags quality + * reliability + * error-handling * @problem.severity error * @sub-severity high * @precision very-high diff --git a/python/ql/src/Expressions/ContainsNonContainer.ql b/python/ql/src/Expressions/ContainsNonContainer.ql index 87a3866085c..cf6af5ce7b1 100644 --- a/python/ql/src/Expressions/ContainsNonContainer.ql +++ b/python/ql/src/Expressions/ContainsNonContainer.ql @@ -2,7 +2,8 @@ * @name Membership test with a non-container * @description A membership test, such as 'item in sequence', with a non-container on the right hand side will raise a 'TypeError'. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity high diff --git a/python/ql/src/Expressions/ExpectedMappingForFormatString.ql b/python/ql/src/Expressions/ExpectedMappingForFormatString.ql index 76d2f874779..4342062270b 100644 --- a/python/ql/src/Expressions/ExpectedMappingForFormatString.ql +++ b/python/ql/src/Expressions/ExpectedMappingForFormatString.ql @@ -2,7 +2,8 @@ * @name Formatted object is not a mapping * @description The formatted object must be a mapping when the format includes a named specifier; otherwise a TypeError will be raised." * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/HashedButNoHash.ql b/python/ql/src/Expressions/HashedButNoHash.ql index 336c344fa37..eb86f3b5533 100644 --- a/python/ql/src/Expressions/HashedButNoHash.ql +++ b/python/ql/src/Expressions/HashedButNoHash.ql @@ -2,7 +2,8 @@ * @name Unhashable object hashed * @description Hashing an object which is not hashable will result in a TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/NonCallableCalled.ql b/python/ql/src/Expressions/NonCallableCalled.ql index aed13af8f63..2740dbe5fb2 100644 --- a/python/ql/src/Expressions/NonCallableCalled.ql +++ b/python/ql/src/Expressions/NonCallableCalled.ql @@ -2,9 +2,9 @@ * @name Non-callable called * @description A call to an object which is not a callable will raise a TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness - * types * @problem.severity error * @sub-severity high * @precision high diff --git a/python/ql/src/Expressions/WrongNameForArgumentInCall.ql b/python/ql/src/Expressions/WrongNameForArgumentInCall.ql index 053b0ef2ad2..21403c51c61 100644 --- a/python/ql/src/Expressions/WrongNameForArgumentInCall.ql +++ b/python/ql/src/Expressions/WrongNameForArgumentInCall.ql @@ -4,7 +4,8 @@ * parameter of the called function or method, will result in a * TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-628 * @problem.severity error diff --git a/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql b/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql index ffebb000034..bde54558c9b 100644 --- a/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql +++ b/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql @@ -2,7 +2,8 @@ * @name Wrong number of arguments in a call * @description Using too many or too few arguments in a call to a function will result in a TypeError at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-685 * @problem.severity error diff --git a/python/ql/src/Functions/IterReturnsNonIterator.ql b/python/ql/src/Functions/IterReturnsNonIterator.ql index ed4a240ec4d..367332cf49a 100644 --- a/python/ql/src/Functions/IterReturnsNonIterator.ql +++ b/python/ql/src/Functions/IterReturnsNonIterator.ql @@ -2,7 +2,8 @@ * @name `__iter__` method returns a non-iterator * @description The `__iter__` method returns a non-iterator which, if used in a 'for' loop, would raise a 'TypeError'. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Imports/EncodingError.ql b/python/ql/src/Imports/EncodingError.ql index 962ae4426df..6d60342e673 100644 --- a/python/ql/src/Imports/EncodingError.ql +++ b/python/ql/src/Imports/EncodingError.ql @@ -2,7 +2,8 @@ * @name Encoding error * @description Encoding errors cause failures at runtime and prevent analysis of the code. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Imports/SyntaxError.ql b/python/ql/src/Imports/SyntaxError.ql index fd92211d241..4a5c71b6901 100644 --- a/python/ql/src/Imports/SyntaxError.ql +++ b/python/ql/src/Imports/SyntaxError.ql @@ -2,7 +2,8 @@ * @name Syntax error * @description Syntax errors cause failures at runtime and prevent analysis of the code. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity high diff --git a/python/ql/src/Statements/IterableStringOrSequence.ql b/python/ql/src/Statements/IterableStringOrSequence.ql index a92a1d79d5f..5cf92754f62 100644 --- a/python/ql/src/Statements/IterableStringOrSequence.ql +++ b/python/ql/src/Statements/IterableStringOrSequence.ql @@ -2,9 +2,9 @@ * @name Iterable can be either a string or a sequence * @description Iteration over either a string or a sequence in the same loop can cause errors that are hard to find. * @kind problem - * @tags reliability - * maintainability - * non-local + * @tags quality + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high diff --git a/python/ql/src/Statements/MismatchInMultipleAssignment.ql b/python/ql/src/Statements/MismatchInMultipleAssignment.ql index 41db397bc73..188bdd7b915 100644 --- a/python/ql/src/Statements/MismatchInMultipleAssignment.ql +++ b/python/ql/src/Statements/MismatchInMultipleAssignment.ql @@ -3,9 +3,9 @@ * @description Assigning multiple variables without ensuring that you define a * value for each variable causes an exception at runtime. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness - * types * @problem.severity error * @sub-severity low * @precision very-high diff --git a/python/ql/src/Statements/NonIteratorInForLoop.ql b/python/ql/src/Statements/NonIteratorInForLoop.ql index 91ad69f8d44..92527a10e3b 100644 --- a/python/ql/src/Statements/NonIteratorInForLoop.ql +++ b/python/ql/src/Statements/NonIteratorInForLoop.ql @@ -2,9 +2,9 @@ * @name Non-iterable used in for loop * @description Using a non-iterable as the object in a 'for' loop causes a TypeError. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness - * types * @problem.severity error * @sub-severity low * @precision high From fa5b2ef7945671b8294d9c2814ce98e0f33a9a8b Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 11:45:44 +0100 Subject: [PATCH 130/340] Tag remaining high precision quality queries Excluded queries that are python 2 specific; as well as the cyclic import queries --- python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql | 3 ++- python/ql/src/Classes/InconsistentMRO.ql | 3 ++- python/ql/src/Exceptions/IllegalExceptionHandlerType.ql | 6 +++--- .../ql/src/Expressions/Comparisons/UselessComparisonTest.ql | 4 +++- .../Formatting/MixedExplicitImplicitIn3101Format.ql | 3 ++- .../Expressions/Formatting/UnusedArgumentIn3101Format.ql | 3 ++- .../Formatting/UnusedNamedArgumentIn3101Format.ql | 3 ++- .../Formatting/WrongNameInArgumentsFor3101Format.ql | 3 ++- .../Formatting/WrongNumberArgumentsFor3101Format.ql | 3 ++- python/ql/src/Expressions/Regex/BackspaceEscape.ql | 4 +++- python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql | 3 ++- python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql | 3 ++- python/ql/src/Expressions/Regex/UnmatchableCaret.ql | 3 ++- python/ql/src/Expressions/Regex/UnmatchableDollar.ql | 3 ++- python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql | 3 ++- python/ql/src/Lexical/CommentedOutCode.ql | 4 ++-- python/ql/src/Statements/ShouldUseWithStatement.ql | 4 ++-- python/ql/src/Statements/UnusedExceptionObject.ql | 5 +++-- python/ql/src/Testing/ImpreciseAssert.ql | 5 +++-- python/ql/src/Variables/UndefinedExport.ql | 5 +++-- 20 files changed, 46 insertions(+), 27 deletions(-) diff --git a/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql b/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql index e3101e7f6c0..f6829b237a8 100644 --- a/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql +++ b/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql @@ -2,7 +2,8 @@ * @name `__eq__` not overridden when adding attributes * @description When adding new attributes to instances of a class, equality for that class needs to be defined. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Classes/InconsistentMRO.ql b/python/ql/src/Classes/InconsistentMRO.ql index 90c1d386938..b479f86ec55 100644 --- a/python/ql/src/Classes/InconsistentMRO.ql +++ b/python/ql/src/Classes/InconsistentMRO.ql @@ -2,7 +2,8 @@ * @name Inconsistent method resolution order * @description Class definition will raise a type error at runtime due to inconsistent method resolution order(MRO) * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity high diff --git a/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql b/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql index 61850b2c0d1..2bf97b469ee 100644 --- a/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql +++ b/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql @@ -2,9 +2,9 @@ * @name Non-exception in 'except' clause * @description An exception handler specifying a non-exception type will never handle any exception. * @kind problem - * @tags reliability - * correctness - * types + * @tags quality + * reliability + * error-handling * @problem.severity error * @sub-severity low * @precision very-high diff --git a/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql b/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql index 3bd5f84fc67..c681a141cc5 100644 --- a/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql +++ b/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql @@ -2,7 +2,9 @@ * @name Redundant comparison * @description The result of a comparison is implied by a previous comparison. * @kind problem - * @tags useless-code + * @tags quality + * maintainability + * useless-code * external/cwe/cwe-561 * external/cwe/cwe-570 * external/cwe/cwe-571 diff --git a/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql b/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql index a52fada69b0..1f77542eb90 100644 --- a/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql +++ b/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql @@ -3,7 +3,8 @@ * @description Using implicit and explicit numbering in string formatting operations, such as '"{}: {1}".format(a,b)', will raise a ValueError. * @kind problem * @problem.severity error - * @tags reliability + * @tags quality + * reliability * correctness * @sub-severity low * @precision high diff --git a/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql b/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql index d8e1f0af1b4..9c8b83a680c 100644 --- a/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql +++ b/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql @@ -2,7 +2,8 @@ * @name Unused argument in a formatting call * @description Including surplus arguments in a formatting call makes code more difficult to read and may indicate an error. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql b/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql index d5aac3aaab2..e8aa7f07e8b 100644 --- a/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql +++ b/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql @@ -2,7 +2,8 @@ * @name Unused named argument in formatting call * @description Including surplus keyword arguments in a formatting call makes code more difficult to read and may indicate an error. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * useless-code * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql b/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql index 1cc1e4a9455..1dfab9c79b2 100644 --- a/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql +++ b/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql @@ -4,7 +4,8 @@ * where the names of format items in the format string differs from the names of the values to be formatted will raise a KeyError. * @kind problem * @problem.severity error - * @tags reliability + * @tags quality + * reliability * correctness * @sub-severity low * @precision high diff --git a/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql b/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql index e120cd6b5bb..70c5290bf4b 100644 --- a/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql +++ b/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql @@ -3,7 +3,8 @@ * @description A string formatting operation, such as '"{0}: {1}, {2}".format(a,b)', * where the number of values to be formatted is too few for the format string will raise an IndexError. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/Regex/BackspaceEscape.ql b/python/ql/src/Expressions/Regex/BackspaceEscape.ql index e67ced94312..f23d3e0e07c 100644 --- a/python/ql/src/Expressions/Regex/BackspaceEscape.ql +++ b/python/ql/src/Expressions/Regex/BackspaceEscape.ql @@ -3,7 +3,9 @@ * @description Using '\b' to escape the backspace character in a regular expression is confusing * since it could be mistaken for a word boundary assertion. * @kind problem - * @tags maintainability + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql b/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql index 1c7cfc39de9..69bb281810d 100644 --- a/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql +++ b/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql @@ -2,7 +2,8 @@ * @name Duplication in regular expression character class * @description Duplicate characters in a class have no effect and may indicate an error in the regular expression. * @kind problem - * @tags reliability + * @tags quality + * reliability * readability * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql b/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql index e03fc65518a..36709cee137 100644 --- a/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql +++ b/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql @@ -2,7 +2,8 @@ * @name Missing part of special group in regular expression * @description Incomplete special groups are parsed as normal groups and are unlikely to match the intended strings. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Expressions/Regex/UnmatchableCaret.ql b/python/ql/src/Expressions/Regex/UnmatchableCaret.ql index 0dcf88a5d08..106bd8eedf8 100644 --- a/python/ql/src/Expressions/Regex/UnmatchableCaret.ql +++ b/python/ql/src/Expressions/Regex/UnmatchableCaret.ql @@ -2,7 +2,8 @@ * @name Unmatchable caret in regular expression * @description Regular expressions containing a caret '^' in the middle cannot be matched, whatever the input. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/Regex/UnmatchableDollar.ql b/python/ql/src/Expressions/Regex/UnmatchableDollar.ql index 00b14998a04..dcc78c3730a 100644 --- a/python/ql/src/Expressions/Regex/UnmatchableDollar.ql +++ b/python/ql/src/Expressions/Regex/UnmatchableDollar.ql @@ -2,7 +2,8 @@ * @name Unmatchable dollar in regular expression * @description Regular expressions containing a dollar '$' in the middle cannot be matched, whatever the input. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * @problem.severity error * @sub-severity low diff --git a/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql b/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql index 2a6d3f62be8..e47d4a55bf5 100644 --- a/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql +++ b/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql @@ -3,7 +3,8 @@ * @description A string formatting operation, such as '"%s: %s, %s" % (a,b)', where the number of conversion specifiers in the * format string differs from the number of values to be formatted will raise a TypeError. * @kind problem - * @tags reliability + * @tags quality + * reliability * correctness * external/cwe/cwe-685 * @problem.severity error diff --git a/python/ql/src/Lexical/CommentedOutCode.ql b/python/ql/src/Lexical/CommentedOutCode.ql index d604e0290bf..d20ac798270 100644 --- a/python/ql/src/Lexical/CommentedOutCode.ql +++ b/python/ql/src/Lexical/CommentedOutCode.ql @@ -2,9 +2,9 @@ * @name Commented-out code * @description Commented-out code makes the remaining code more difficult to read. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * readability - * documentation * @problem.severity recommendation * @sub-severity high * @precision high diff --git a/python/ql/src/Statements/ShouldUseWithStatement.ql b/python/ql/src/Statements/ShouldUseWithStatement.ql index b453f971e86..2ad76b5c832 100644 --- a/python/ql/src/Statements/ShouldUseWithStatement.ql +++ b/python/ql/src/Statements/ShouldUseWithStatement.ql @@ -3,9 +3,9 @@ * @description Using a 'try-finally' block to ensure only that a resource is closed makes code more * difficult to read. * @kind problem - * @tags maintainability + * @tags quality + * maintainability * readability - * convention * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Statements/UnusedExceptionObject.ql b/python/ql/src/Statements/UnusedExceptionObject.ql index 2cb4c4e447a..90724b9f167 100644 --- a/python/ql/src/Statements/UnusedExceptionObject.ql +++ b/python/ql/src/Statements/UnusedExceptionObject.ql @@ -2,8 +2,9 @@ * @name Unused exception object * @description An exception object is created, but is not used. * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * error-handling * @problem.severity error * @sub-severity low * @precision very-high diff --git a/python/ql/src/Testing/ImpreciseAssert.ql b/python/ql/src/Testing/ImpreciseAssert.ql index 121ec6024e8..40ceba26983 100644 --- a/python/ql/src/Testing/ImpreciseAssert.ql +++ b/python/ql/src/Testing/ImpreciseAssert.ql @@ -2,8 +2,9 @@ * @name Imprecise assert * @description Using 'assertTrue' or 'assertFalse' rather than a more specific assertion can give uninformative failure messages. * @kind problem - * @tags maintainability - * testability + * @tags quality + * maintainability + * readability * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Variables/UndefinedExport.ql b/python/ql/src/Variables/UndefinedExport.ql index 537828616e5..173139e224a 100644 --- a/python/ql/src/Variables/UndefinedExport.ql +++ b/python/ql/src/Variables/UndefinedExport.ql @@ -3,8 +3,9 @@ * @description Including an undefined attribute in `__all__` causes an exception when * the module is imported using '*' * @kind problem - * @tags reliability - * maintainability + * @tags quality + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high From d28a19c9611d571f071cca56b8d03a5da60e8fe0 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 11:59:25 +0100 Subject: [PATCH 131/340] Update integration test output & add changenote --- .../python-code-quality.qls.expected | 91 +++++++++++++++++++ .../2025-06-18-quality-query-metadata.md | 5 + 2 files changed, 96 insertions(+) create mode 100644 python/ql/src/change-notes/2025-06-18-quality-query-metadata.md diff --git a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected index b93829875d2..ab401594c11 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected @@ -1,8 +1,99 @@ +ql/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql +ql/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql +ql/python/ql/src/Classes/EqualsOrHash.ql +ql/python/ql/src/Classes/InconsistentMRO.ql ql/python/ql/src/Classes/InitCallsSubclass/InitCallsSubclassMethod.ql +ql/python/ql/src/Classes/MissingCallToDel.ql +ql/python/ql/src/Classes/MissingCallToInit.ql +ql/python/ql/src/Classes/MutatingDescriptor.ql +ql/python/ql/src/Classes/SubclassShadowing.ql +ql/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql +ql/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql +ql/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql +ql/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql +ql/python/ql/src/Exceptions/CatchingBaseException.ql +ql/python/ql/src/Exceptions/EmptyExcept.ql +ql/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql +ql/python/ql/src/Exceptions/IllegalRaise.ql +ql/python/ql/src/Exceptions/IncorrectExceptOrder.ql +ql/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql +ql/python/ql/src/Expressions/CallToSuperWrongClass.ql +ql/python/ql/src/Expressions/CompareConstants.ql +ql/python/ql/src/Expressions/CompareIdenticalValues.ql +ql/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql +ql/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql +ql/python/ql/src/Expressions/ContainsNonContainer.ql +ql/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql +ql/python/ql/src/Expressions/EqualsNone.ql +ql/python/ql/src/Expressions/ExpectedMappingForFormatString.ql +ql/python/ql/src/Expressions/ExplicitCallToDel.ql +ql/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql +ql/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql +ql/python/ql/src/Expressions/HashedButNoHash.ql +ql/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql +ql/python/ql/src/Expressions/NonCallableCalled.ql +ql/python/ql/src/Expressions/Regex/BackspaceEscape.ql +ql/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql +ql/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql +ql/python/ql/src/Expressions/Regex/UnmatchableCaret.ql +ql/python/ql/src/Expressions/Regex/UnmatchableDollar.ql +ql/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql +ql/python/ql/src/Expressions/UnnecessaryLambda.ql +ql/python/ql/src/Expressions/UnsupportedFormatCharacter.ql +ql/python/ql/src/Expressions/WrongNameForArgumentInCall.ql +ql/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql +ql/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql +ql/python/ql/src/Functions/ConsistentReturns.ql +ql/python/ql/src/Functions/ExplicitReturnInInit.ql +ql/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql +ql/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql +ql/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql +ql/python/ql/src/Functions/InitIsGenerator.ql +ql/python/ql/src/Functions/IterReturnsNonIterator.ql ql/python/ql/src/Functions/IterReturnsNonSelf.ql +ql/python/ql/src/Functions/ModificationOfParameterWithDefault.ql ql/python/ql/src/Functions/NonCls.ql ql/python/ql/src/Functions/NonSelf.ql +ql/python/ql/src/Functions/OverlyComplexDelMethod.ql ql/python/ql/src/Functions/ReturnConsistentTupleSizes.ql +ql/python/ql/src/Functions/SignatureOverriddenMethod.ql ql/python/ql/src/Functions/SignatureSpecialMethods.ql +ql/python/ql/src/Functions/UseImplicitNoneReturnValue.ql +ql/python/ql/src/Imports/EncodingError.ql +ql/python/ql/src/Imports/ImportandImportFrom.ql +ql/python/ql/src/Imports/ModuleImportsItself.ql +ql/python/ql/src/Imports/MultipleImports.ql +ql/python/ql/src/Imports/SyntaxError.ql +ql/python/ql/src/Imports/UnintentionalImport.ql +ql/python/ql/src/Imports/UnusedImport.ql +ql/python/ql/src/Lexical/CommentedOutCode.ql ql/python/ql/src/Resources/FileNotAlwaysClosed.ql +ql/python/ql/src/Statements/AssertOnTuple.ql +ql/python/ql/src/Statements/ConstantInConditional.ql +ql/python/ql/src/Statements/IterableStringOrSequence.ql +ql/python/ql/src/Statements/MismatchInMultipleAssignment.ql +ql/python/ql/src/Statements/ModificationOfLocals.ql +ql/python/ql/src/Statements/NestedLoopsSameVariable.ql +ql/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql +ql/python/ql/src/Statements/NonIteratorInForLoop.ql +ql/python/ql/src/Statements/RedundantAssignment.ql +ql/python/ql/src/Statements/ShouldUseWithStatement.ql +ql/python/ql/src/Statements/SideEffectInAssert.ql +ql/python/ql/src/Statements/StatementNoEffect.ql +ql/python/ql/src/Statements/TopLevelPrint.ql +ql/python/ql/src/Statements/UnnecessaryElseClause.ql +ql/python/ql/src/Statements/UnnecessaryPass.ql +ql/python/ql/src/Statements/UnreachableCode.ql +ql/python/ql/src/Statements/UnusedExceptionObject.ql +ql/python/ql/src/Statements/UseOfExit.ql +ql/python/ql/src/Testing/ImpreciseAssert.ql +ql/python/ql/src/Variables/GlobalAtModuleLevel.ql ql/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql +ql/python/ql/src/Variables/MultiplyDefined.ql +ql/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql +ql/python/ql/src/Variables/UndefinedExport.ql +ql/python/ql/src/Variables/UnusedLocalVariable.ql +ql/python/ql/src/Variables/UnusedModuleVariable.ql \ No newline at end of file diff --git a/python/ql/src/change-notes/2025-06-18-quality-query-metadata.md b/python/ql/src/change-notes/2025-06-18-quality-query-metadata.md new file mode 100644 index 00000000000..92533f7df75 --- /dev/null +++ b/python/ql/src/change-notes/2025-06-18-quality-query-metadata.md @@ -0,0 +1,5 @@ + +--- +category: queryMetadata +--- +* The tag `quality` has been added to multiple Python quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. \ No newline at end of file From 09516a47d37eabdfdd355d82c5dd588f51102daf Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Wed, 18 Jun 2025 13:56:36 +0100 Subject: [PATCH 132/340] Fix integration test output --- .../query-suite/python-code-quality.qls.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected index ab401594c11..d64ca5a415f 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected @@ -96,4 +96,4 @@ ql/python/ql/src/Variables/MultiplyDefined.ql ql/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql ql/python/ql/src/Variables/UndefinedExport.ql ql/python/ql/src/Variables/UnusedLocalVariable.ql -ql/python/ql/src/Variables/UnusedModuleVariable.ql \ No newline at end of file +ql/python/ql/src/Variables/UnusedModuleVariable.ql From c3f7b18055f49fdbbd28cd8b9dbf1828e5573f28 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 19 Jun 2025 10:11:37 +0100 Subject: [PATCH 133/340] Review suggestions - update some tags --- python/ql/src/Expressions/EqualsNone.ql | 1 + python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql | 2 +- python/ql/src/Functions/IncorrectlyOverriddenMethod.ql | 4 ++-- .../ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql | 4 ++-- python/ql/src/Statements/TopLevelPrint.ql | 4 ++-- 5 files changed, 8 insertions(+), 7 deletions(-) diff --git a/python/ql/src/Expressions/EqualsNone.ql b/python/ql/src/Expressions/EqualsNone.ql index 01f5def7f91..8a2878c3b8a 100644 --- a/python/ql/src/Expressions/EqualsNone.ql +++ b/python/ql/src/Expressions/EqualsNone.ql @@ -5,6 +5,7 @@ * @tags quality * reliability * correctness + * performance * @problem.severity recommendation * @sub-severity high * @precision very-high diff --git a/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql b/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql index 69bb281810d..9f7f20a4f3e 100644 --- a/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql +++ b/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql @@ -3,7 +3,7 @@ * @description Duplicate characters in a class have no effect and may indicate an error in the regular expression. * @kind problem * @tags quality - * reliability + * maintainability * readability * @problem.severity warning * @sub-severity low diff --git a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql index af91411e54c..a46a2370c0e 100644 --- a/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql +++ b/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql @@ -3,8 +3,8 @@ * @description Method has a different signature from the overridden method and, if it were called, would be likely to cause an error. * @kind problem * @tags quality - * maintainability - * readability + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high diff --git a/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql b/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql index 929371d82a5..6b31795d94e 100644 --- a/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql +++ b/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql @@ -4,8 +4,8 @@ * the arguments with which it is called, and if it were called, would be likely to cause an error. * @kind problem * @tags quality - * maintainability - * readability + * reliability + * correctness * @problem.severity recommendation * @sub-severity high * @precision high diff --git a/python/ql/src/Statements/TopLevelPrint.ql b/python/ql/src/Statements/TopLevelPrint.ql index a8ddd15d5de..2d481421b7e 100644 --- a/python/ql/src/Statements/TopLevelPrint.ql +++ b/python/ql/src/Statements/TopLevelPrint.ql @@ -3,8 +3,8 @@ * @description Using a print statement at module scope (except when guarded by `if __name__ == '__main__'`) will cause surprising output when the module is imported. * @kind problem * @tags quality - * maintainability - * readability + * reliability + * correctness * @problem.severity recommendation * @sub-severity high * @precision high From c8c92a713990975341367d9da580ae587e79873a Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 19 Jun 2025 11:37:42 +0100 Subject: [PATCH 134/340] Update tags for mixed-tuple-returns to include exactly 1 subcategory --- python/ql/src/Functions/ReturnConsistentTupleSizes.ql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/python/ql/src/Functions/ReturnConsistentTupleSizes.ql b/python/ql/src/Functions/ReturnConsistentTupleSizes.ql index f0cb83067e0..d37ca3eda35 100644 --- a/python/ql/src/Functions/ReturnConsistentTupleSizes.ql +++ b/python/ql/src/Functions/ReturnConsistentTupleSizes.ql @@ -2,9 +2,9 @@ * @name Returning tuples with varying lengths * @description A function that potentially returns tuples of different lengths may indicate a problem. * @kind problem - * @tags reliability - * maintainability - * quality + * @tags quality + * reliability + * correctness * @problem.severity recommendation * @sub-severity high * @precision high From 63d7eac1275f4db93de795d98d978467e9ebf76a Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 19 Jun 2025 11:43:25 +0100 Subject: [PATCH 135/340] Ensure exactly one subcategory is used --- python/ql/src/Resources/FileNotAlwaysClosed.ql | 6 +++--- .../Variables/LoopVariableCapture/LoopVariableCapture.ql | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/python/ql/src/Resources/FileNotAlwaysClosed.ql b/python/ql/src/Resources/FileNotAlwaysClosed.ql index c3950eda805..f639bc4aa91 100644 --- a/python/ql/src/Resources/FileNotAlwaysClosed.ql +++ b/python/ql/src/Resources/FileNotAlwaysClosed.ql @@ -2,10 +2,10 @@ * @name File is not always closed * @description Opening a file without ensuring that it is always closed may lead to data loss or resource leaks. * @kind problem - * @tags efficiency + * @tags quality + * reliability * correctness - * resources - * quality + * performance * external/cwe/cwe-772 * @problem.severity warning * @sub-severity high diff --git a/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql b/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql index 034ac05ee94..38e686f9465 100644 --- a/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql +++ b/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql @@ -2,8 +2,9 @@ * @name Loop variable capture * @description Capturing a loop variable is not the same as capturing its value, and can lead to unexpected behavior or bugs. * @kind path-problem - * @tags correctness - * quality + * @tags quality + * reliability + * correctness * @problem.severity error * @sub-severity low * @precision high From e67f057b8546b2d1db292c8af800b21aa64b1e10 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 19 Jun 2025 13:28:14 +0100 Subject: [PATCH 136/340] Update integration test output --- .../python-code-quality-extended.qls.expected | 91 +++++++++++++++++++ .../python-code-quality.qls.expected | 2 +- 2 files changed, 92 insertions(+), 1 deletion(-) diff --git a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected index b93829875d2..960972c508c 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality-extended.qls.expected @@ -1,8 +1,99 @@ +ql/python/ql/src/Classes/ConflictingAttributesInBaseClasses.ql +ql/python/ql/src/Classes/DefineEqualsWhenAddingAttributes.ql +ql/python/ql/src/Classes/EqualsOrHash.ql +ql/python/ql/src/Classes/InconsistentMRO.ql ql/python/ql/src/Classes/InitCallsSubclass/InitCallsSubclassMethod.ql +ql/python/ql/src/Classes/MissingCallToDel.ql +ql/python/ql/src/Classes/MissingCallToInit.ql +ql/python/ql/src/Classes/MutatingDescriptor.ql +ql/python/ql/src/Classes/SubclassShadowing.ql +ql/python/ql/src/Classes/SuperclassDelCalledMultipleTimes.ql +ql/python/ql/src/Classes/SuperclassInitCalledMultipleTimes.ql +ql/python/ql/src/Classes/WrongNameForArgumentInClassInstantiation.ql +ql/python/ql/src/Classes/WrongNumberArgumentsInClassInstantiation.ql +ql/python/ql/src/Exceptions/CatchingBaseException.ql +ql/python/ql/src/Exceptions/EmptyExcept.ql +ql/python/ql/src/Exceptions/IllegalExceptionHandlerType.ql +ql/python/ql/src/Exceptions/IllegalRaise.ql +ql/python/ql/src/Exceptions/IncorrectExceptOrder.ql +ql/python/ql/src/Exceptions/NotImplementedIsNotAnException.ql +ql/python/ql/src/Expressions/CallToSuperWrongClass.ql +ql/python/ql/src/Expressions/CompareConstants.ql +ql/python/ql/src/Expressions/CompareIdenticalValues.ql +ql/python/ql/src/Expressions/CompareIdenticalValuesMissingSelf.ql +ql/python/ql/src/Expressions/Comparisons/UselessComparisonTest.ql +ql/python/ql/src/Expressions/ContainsNonContainer.ql +ql/python/ql/src/Expressions/DuplicateKeyInDictionaryLiteral.ql +ql/python/ql/src/Expressions/EqualsNone.ql +ql/python/ql/src/Expressions/ExpectedMappingForFormatString.ql +ql/python/ql/src/Expressions/ExplicitCallToDel.ql +ql/python/ql/src/Expressions/Formatting/MixedExplicitImplicitIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/UnusedArgumentIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/UnusedNamedArgumentIn3101Format.ql +ql/python/ql/src/Expressions/Formatting/WrongNameInArgumentsFor3101Format.ql +ql/python/ql/src/Expressions/Formatting/WrongNumberArgumentsFor3101Format.ql +ql/python/ql/src/Expressions/HashedButNoHash.ql +ql/python/ql/src/Expressions/IncorrectComparisonUsingIs.ql +ql/python/ql/src/Expressions/NonCallableCalled.ql +ql/python/ql/src/Expressions/Regex/BackspaceEscape.ql +ql/python/ql/src/Expressions/Regex/DuplicateCharacterInSet.ql +ql/python/ql/src/Expressions/Regex/MissingPartSpecialGroup.ql +ql/python/ql/src/Expressions/Regex/UnmatchableCaret.ql +ql/python/ql/src/Expressions/Regex/UnmatchableDollar.ql +ql/python/ql/src/Expressions/UnintentionalImplicitStringConcatenation.ql +ql/python/ql/src/Expressions/UnnecessaryLambda.ql +ql/python/ql/src/Expressions/UnsupportedFormatCharacter.ql +ql/python/ql/src/Expressions/WrongNameForArgumentInCall.ql +ql/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql +ql/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql +ql/python/ql/src/Functions/ConsistentReturns.ql +ql/python/ql/src/Functions/ExplicitReturnInInit.ql +ql/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql +ql/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql +ql/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql +ql/python/ql/src/Functions/InitIsGenerator.ql +ql/python/ql/src/Functions/IterReturnsNonIterator.ql ql/python/ql/src/Functions/IterReturnsNonSelf.ql +ql/python/ql/src/Functions/ModificationOfParameterWithDefault.ql ql/python/ql/src/Functions/NonCls.ql ql/python/ql/src/Functions/NonSelf.ql +ql/python/ql/src/Functions/OverlyComplexDelMethod.ql ql/python/ql/src/Functions/ReturnConsistentTupleSizes.ql +ql/python/ql/src/Functions/SignatureOverriddenMethod.ql ql/python/ql/src/Functions/SignatureSpecialMethods.ql +ql/python/ql/src/Functions/UseImplicitNoneReturnValue.ql +ql/python/ql/src/Imports/EncodingError.ql +ql/python/ql/src/Imports/ImportandImportFrom.ql +ql/python/ql/src/Imports/ModuleImportsItself.ql +ql/python/ql/src/Imports/MultipleImports.ql +ql/python/ql/src/Imports/SyntaxError.ql +ql/python/ql/src/Imports/UnintentionalImport.ql +ql/python/ql/src/Imports/UnusedImport.ql +ql/python/ql/src/Lexical/CommentedOutCode.ql ql/python/ql/src/Resources/FileNotAlwaysClosed.ql +ql/python/ql/src/Statements/AssertOnTuple.ql +ql/python/ql/src/Statements/ConstantInConditional.ql +ql/python/ql/src/Statements/IterableStringOrSequence.ql +ql/python/ql/src/Statements/MismatchInMultipleAssignment.ql +ql/python/ql/src/Statements/ModificationOfLocals.ql +ql/python/ql/src/Statements/NestedLoopsSameVariable.ql +ql/python/ql/src/Statements/NestedLoopsSameVariableWithReuse.ql +ql/python/ql/src/Statements/NonIteratorInForLoop.ql +ql/python/ql/src/Statements/RedundantAssignment.ql +ql/python/ql/src/Statements/ShouldUseWithStatement.ql +ql/python/ql/src/Statements/SideEffectInAssert.ql +ql/python/ql/src/Statements/StatementNoEffect.ql +ql/python/ql/src/Statements/TopLevelPrint.ql +ql/python/ql/src/Statements/UnnecessaryElseClause.ql +ql/python/ql/src/Statements/UnnecessaryPass.ql +ql/python/ql/src/Statements/UnreachableCode.ql +ql/python/ql/src/Statements/UnusedExceptionObject.ql +ql/python/ql/src/Statements/UseOfExit.ql +ql/python/ql/src/Testing/ImpreciseAssert.ql +ql/python/ql/src/Variables/GlobalAtModuleLevel.ql ql/python/ql/src/Variables/LoopVariableCapture/LoopVariableCapture.ql +ql/python/ql/src/Variables/MultiplyDefined.ql +ql/python/ql/src/Variables/SuspiciousUnusedLoopIterationVariable.ql +ql/python/ql/src/Variables/UndefinedExport.ql +ql/python/ql/src/Variables/UnusedLocalVariable.ql +ql/python/ql/src/Variables/UnusedModuleVariable.ql diff --git a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected index d64ca5a415f..960972c508c 100644 --- a/python/ql/integration-tests/query-suite/python-code-quality.qls.expected +++ b/python/ql/integration-tests/query-suite/python-code-quality.qls.expected @@ -48,9 +48,9 @@ ql/python/ql/src/Expressions/WrongNumberArgumentsForFormat.ql ql/python/ql/src/Expressions/WrongNumberArgumentsInCall.ql ql/python/ql/src/Functions/ConsistentReturns.ql ql/python/ql/src/Functions/ExplicitReturnInInit.ql +ql/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql ql/python/ql/src/Functions/IncorrectlyOverriddenMethod.ql ql/python/ql/src/Functions/IncorrectlySpecifiedOverriddenMethod.ql -ql/python/ql/src/Functions/IncorrectRaiseInSpecialMethod.ql ql/python/ql/src/Functions/InitIsGenerator.ql ql/python/ql/src/Functions/IterReturnsNonIterator.ql ql/python/ql/src/Functions/IterReturnsNonSelf.ql From 26e7b2d5f89c2c457bf4509aa73c1f9fb2b86d01 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 14:19:13 +0100 Subject: [PATCH 137/340] Rust: Accept path resolution consistency changes. --- .../PathResolutionConsistency.expected | 84 +++++++++++-------- 1 file changed, 48 insertions(+), 36 deletions(-) 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 9f291a9eb3e..1081f67078b 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,37 +1,49 @@ multiplePathResolutions -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:25:1851:36 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:46:1851:57 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1851:67:1851:78 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:26:1854:37 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:47:1854:58 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:1854:68:1854:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:25:1913:36 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:46:1913:57 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1913:67:1913:78 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:26:1916:37 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:47:1916:58 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1916:68:1916:79 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:1945:21:1945:29 | ...::from | file://:0:0:0:0 | fn from | From f457453647e64196e15357308103a5fc33161729 Mon Sep 17 00:00:00 2001 From: Joe Farebrother Date: Thu, 19 Jun 2025 14:22:12 +0100 Subject: [PATCH 138/340] Update redundant assignment to be a correctness issue for cross language consistency --- python/ql/src/Statements/RedundantAssignment.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/python/ql/src/Statements/RedundantAssignment.ql b/python/ql/src/Statements/RedundantAssignment.ql index 40acebf22a0..42561905bac 100644 --- a/python/ql/src/Statements/RedundantAssignment.ql +++ b/python/ql/src/Statements/RedundantAssignment.ql @@ -3,8 +3,8 @@ * @description Assigning a variable to itself is useless and very likely indicates an error in the code. * @kind problem * @tags quality - * maintainability - * useless-code + * reliability + * correctness * external/cwe/cwe-563 * @problem.severity error * @sub-severity low From b40bd75e64244c1da492e6e9e2ebb995929bebe3 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Thu, 19 Jun 2025 14:33:30 +0100 Subject: [PATCH 139/340] Rust: Revert consistency check failures (cross fingers...) --- .../PathResolutionConsistency.expected | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 739520afcbd..767f3366008 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,44 +1,29 @@ -multipleMethodCallTargets -| main.rs:187:13:187:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | -| main.rs:187:13:187:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | -| main.rs:188:13:188:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | -| main.rs:188:13:188:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | -| main.rs:195:13:195:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | -| main.rs:195:13:195:43 | ...::System.allocate(...) | file://:0:0:0:0 | fn allocate | -| main.rs:196:13:196:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | -| main.rs:196:13:196:50 | ...::System.allocate_zeroed(...) | file://:0:0:0:0 | fn allocate_zeroed | -| main.rs:208:21:208:55 | ...::System.grow(...) | file://:0:0:0:0 | fn grow | -| main.rs:208:21:208:55 | ...::System.grow(...) | file://:0:0:0:0 | fn grow | -| main.rs:210:21:210:62 | ...::System.grow_zeroed(...) | file://:0:0:0:0 | fn grow_zeroed | -| main.rs:210:21:210:62 | ...::System.grow_zeroed(...) | file://:0:0:0:0 | fn grow_zeroed | -| main.rs:213:17:213:53 | ...::System.shrink(...) | file://:0:0:0:0 | fn shrink | -| main.rs:213:17:213:53 | ...::System.shrink(...) | file://:0:0:0:0 | fn shrink | multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | From 0e9d4aacd9fdee94dfea18b9b0f27fd58b0eb17a Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 16:13:26 +0200 Subject: [PATCH 140/340] Rust: accept test changes --- .../dataflow/local/inline-flow.expected | 53 ++- .../test/library-tests/dataflow/local/main.rs | 2 +- .../dataflow/modeled/inline-flow.expected | 48 +-- .../library-tests/dataflow/modeled/main.rs | 2 +- .../dataflow/sources/TaintSources.expected | 2 - .../strings/inline-taint-flow.expected | 33 +- .../library-tests/dataflow/strings/main.rs | 2 +- .../dataflow/taint/inline-taint-flow.expected | 4 + .../security/CWE-020/RegexInjection.expected | 12 +- .../security/CWE-022/TaintedPath.expected | 5 +- .../security/CWE-089/SqlInjection.expected | 35 +- .../CWE-311/CleartextTransmission.expected | 32 +- .../CWE-312/CleartextLogging.expected | 44 +-- .../UncontrolledAllocationSize.expected | 336 ++++++++++-------- .../test/query-tests/security/CWE-770/main.rs | 4 +- .../CWE-825/AccessInvalidPointer.expected | 36 +- 16 files changed, 348 insertions(+), 302 deletions(-) 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 5d9fabca983..2ce9725fb38 100644 --- a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected @@ -1,15 +1,14 @@ models -| 1 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | -| 2 | Summary: lang:core; <_ as crate::convert::From>::from; Argument[0]; ReturnValue; value | -| 3 | Summary: lang:core; ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 4 | Summary: lang:core; ::unwrap_or; Argument[0]; ReturnValue; value | -| 5 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 6 | Summary: lang:core; ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | -| 7 | Summary: lang:core; ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 8 | Summary: lang:core; ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 9 | Summary: lang:core; ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 10 | Summary: lang:core; ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | -| 11 | Summary: lang:core; ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 1 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 2 | Summary: ::unwrap_or; Argument[0]; ReturnValue; value | +| 3 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 4 | Summary: ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | +| 5 | Summary: ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 6 | Summary: ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 7 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 8 | Summary: ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | +| 9 | Summary: ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 10 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | edges | main.rs:22:9:22:9 | s | main.rs:23:10:23:10 | s | provenance | | | main.rs:22:13:22:21 | source(...) | main.rs:22:9:22:9 | s | provenance | | @@ -25,7 +24,7 @@ edges | main.rs:56:9:56:17 | source(...) | main.rs:56:5:56:5 | i | provenance | | | main.rs:89:9:89:9 | i [&ref] | main.rs:90:11:90:11 | i [&ref] | provenance | | | main.rs:89:13:89:31 | ...::new(...) [&ref] | main.rs:89:9:89:9 | i [&ref] | provenance | | -| main.rs:89:22:89:30 | source(...) | main.rs:89:13:89:31 | ...::new(...) [&ref] | provenance | MaD:1 | +| main.rs:89:22:89:30 | source(...) | main.rs:89:13:89:31 | ...::new(...) [&ref] | provenance | MaD:10 | | main.rs:90:11:90:11 | i [&ref] | main.rs:90:10:90:11 | * ... | provenance | | | main.rs:97:9:97:9 | a [tuple.0] | main.rs:98:10:98:10 | a [tuple.0] | provenance | | | main.rs:97:13:97:26 | TupleExpr [tuple.0] | main.rs:97:9:97:9 | a [tuple.0] | provenance | | @@ -100,32 +99,32 @@ edges | main.rs:229:11:229:12 | s1 [Some] | main.rs:230:9:230:15 | Some(...) [Some] | provenance | | | main.rs:230:9:230:15 | Some(...) [Some] | main.rs:230:14:230:14 | n | provenance | | | main.rs:230:14:230:14 | n | main.rs:230:25:230:25 | n | provenance | | -| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:3 | +| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:1 | | main.rs:240:14:240:29 | Some(...) [Some] | main.rs:240:9:240:10 | s1 [Some] | provenance | | | main.rs:240:19:240:28 | source(...) | main.rs:240:14:240:29 | Some(...) [Some] | provenance | | -| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:5 | +| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:3 | | main.rs:245:14:245:29 | Some(...) [Some] | main.rs:245:9:245:10 | s1 [Some] | provenance | | | main.rs:245:19:245:28 | source(...) | main.rs:245:14:245:29 | Some(...) [Some] | provenance | | -| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:4 | -| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:7 | +| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:2 | +| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:5 | | main.rs:253:14:253:29 | Some(...) [Some] | main.rs:253:9:253:10 | s1 [Some] | provenance | | | main.rs:253:19:253:28 | source(...) | main.rs:253:14:253:29 | Some(...) [Some] | provenance | | -| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:6 | +| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:4 | | main.rs:261:9:261:10 | s1 [Some] | main.rs:263:14:263:15 | s1 [Some] | provenance | | | main.rs:261:14:261:29 | Some(...) [Some] | main.rs:261:9:261:10 | s1 [Some] | provenance | | | main.rs:261:19:261:28 | source(...) | main.rs:261:14:261:29 | Some(...) [Some] | provenance | | | main.rs:263:9:263:10 | i1 | main.rs:264:10:264:11 | i1 | provenance | | | main.rs:263:14:263:15 | s1 [Some] | main.rs:263:14:263:16 | TryExpr | provenance | | | main.rs:263:14:263:16 | TryExpr | main.rs:263:9:263:10 | i1 | provenance | | -| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:28:271:34 | r1.ok() [Some] | provenance | MaD:11 | +| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:28:271:34 | r1.ok() [Some] | provenance | MaD:9 | | main.rs:270:32:270:45 | Ok(...) [Ok] | main.rs:270:9:270:10 | r1 [Ok] | provenance | | | main.rs:270:35:270:44 | source(...) | main.rs:270:32:270:45 | Ok(...) [Ok] | provenance | | -| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:3 | +| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:1 | | main.rs:271:28:271:34 | r1.ok() [Some] | main.rs:271:9:271:11 | o1a [Some] | provenance | | -| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:28:278:35 | r2.err() [Some] | provenance | MaD:8 | +| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:28:278:35 | r2.err() [Some] | provenance | MaD:6 | | main.rs:276:32:276:46 | Err(...) [Err] | main.rs:276:9:276:10 | r2 [Err] | provenance | | | main.rs:276:36:276:45 | source(...) | main.rs:276:32:276:46 | Err(...) [Err] | provenance | | -| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:3 | +| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:1 | | main.rs:278:28:278:35 | r2.err() [Some] | main.rs:278:9:278:11 | o2b [Some] | provenance | | | main.rs:284:9:284:10 | s1 [Ok] | main.rs:287:14:287:15 | s1 [Ok] | provenance | | | main.rs:284:32:284:45 | Ok(...) [Ok] | main.rs:284:9:284:10 | s1 [Ok] | provenance | | @@ -133,10 +132,10 @@ edges | main.rs:287:9:287:10 | i1 | main.rs:289:10:289:11 | i1 | provenance | | | main.rs:287:14:287:15 | s1 [Ok] | main.rs:287:14:287:16 | TryExpr | provenance | | | main.rs:287:14:287:16 | TryExpr | main.rs:287:9:287:10 | i1 | provenance | | -| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:9 | +| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:7 | | main.rs:297:32:297:45 | Ok(...) [Ok] | main.rs:297:9:297:10 | s1 [Ok] | provenance | | | main.rs:297:35:297:44 | source(...) | main.rs:297:32:297:45 | Ok(...) [Ok] | provenance | | -| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:10 | +| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:8 | | main.rs:301:32:301:46 | Err(...) [Err] | main.rs:301:9:301:10 | s2 [Err] | provenance | | | main.rs:301:36:301:45 | source(...) | main.rs:301:32:301:46 | Err(...) [Err] | provenance | | | main.rs:312:9:312:10 | s1 [A] | main.rs:314:11:314:12 | s1 [A] | provenance | | @@ -236,9 +235,6 @@ edges | main.rs:519:17:519:18 | &c [&ref] | main.rs:519:9:519:13 | c_ref [&ref] | provenance | | | main.rs:519:18:519:18 | c | main.rs:519:17:519:18 | &c [&ref] | provenance | | | main.rs:524:11:524:15 | c_ref [&ref] | main.rs:524:10:524:15 | * ... | provenance | | -| main.rs:528:9:528:9 | a | main.rs:532:20:532:20 | a | provenance | | -| main.rs:528:18:528:27 | source(...) | main.rs:528:9:528:9 | a | provenance | | -| main.rs:532:20:532:20 | a | main.rs:532:10:532:21 | ...::from(...) | provenance | MaD:2 | nodes | main.rs:18:10:18:18 | source(...) | semmle.label | source(...) | | main.rs:22:9:22:9 | s | semmle.label | s | @@ -511,10 +507,6 @@ nodes | main.rs:521:10:521:10 | a | semmle.label | a | | main.rs:524:10:524:15 | * ... | semmle.label | * ... | | main.rs:524:11:524:15 | c_ref [&ref] | semmle.label | c_ref [&ref] | -| main.rs:528:9:528:9 | a | semmle.label | a | -| main.rs:528:18:528:27 | source(...) | semmle.label | source(...) | -| main.rs:532:10:532:21 | ...::from(...) | semmle.label | ...::from(...) | -| main.rs:532:20:532:20 | a | semmle.label | a | subpaths testFailures #select @@ -573,4 +565,3 @@ testFailures | main.rs:506:10:506:18 | vs_mut[0] | main.rs:504:23:504:32 | source(...) | main.rs:506:10:506:18 | vs_mut[0] | $@ | main.rs:504:23:504:32 | source(...) | source(...) | | main.rs:521:10:521:10 | a | main.rs:516:13:516:22 | source(...) | main.rs:521:10:521:10 | a | $@ | main.rs:516:13:516:22 | source(...) | source(...) | | main.rs:524:10:524:15 | * ... | main.rs:518:13:518:22 | source(...) | main.rs:524:10:524:15 | * ... | $@ | main.rs:518:13:518:22 | source(...) | source(...) | -| main.rs:532:10:532:21 | ...::from(...) | main.rs:528:18:528:27 | source(...) | main.rs:532:10:532:21 | ...::from(...) | $@ | main.rs:528:18:528: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 f8df7cff372..480154fd0a1 100644 --- a/rust/ql/test/library-tests/dataflow/local/main.rs +++ b/rust/ql/test/library-tests/dataflow/local/main.rs @@ -529,7 +529,7 @@ fn conversions() { sink(a as i64); // $ hasTaintFlow=50 sink(a.into()); // $ MISSING: hasValueFlow=50 - sink(i64::from(a)); // $ hasValueFlow=50 + sink(i64::from(a)); // $ hasTaintFlow=50 let b: i32 = source(51) as i32; 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 8219a03269f..cce06005edc 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -1,37 +1,37 @@ models -| 1 | Summary: lang:alloc; ::into_pin; Argument[0]; ReturnValue; value | -| 2 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | -| 3 | Summary: lang:alloc; ::pin; Argument[0]; ReturnValue.Reference; value | -| 4 | Summary: lang:core; ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 5 | Summary: lang:core; ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | -| 6 | Summary: lang:core; ::into_inner; Argument[0].Field[core::pin::Pin::__pointer]; ReturnValue; value | -| 7 | Summary: lang:core; ::into_inner; Argument[0]; ReturnValue; value | -| 8 | Summary: lang:core; ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::__pointer]; value | -| 9 | Summary: lang:core; ::new; Argument[0]; ReturnValue; value | -| 10 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 11 | Summary: lang:core; ::clone; Argument[self].Reference; ReturnValue; value | +| 1 | Summary: ::clone; Argument[self].Reference; ReturnValue; value | +| 2 | Summary: ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 3 | Summary: ::zip; Argument[0].Field[core::option::Option::Some(0)]; ReturnValue.Field[core::option::Option::Some(0)].Field[1]; value | +| 4 | Summary: ::into_inner; Argument[0].Field[core::pin::Pin::__pointer]; ReturnValue; value | +| 5 | Summary: ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::__pointer]; value | +| 6 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 7 | Summary: lang:alloc; ::into_pin; Argument[0]; ReturnValue; value | +| 8 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | +| 9 | Summary: lang:alloc; ::pin; Argument[0]; ReturnValue.Reference; value | +| 10 | Summary: lang:core; ::into_inner; Argument[0]; ReturnValue; value | +| 11 | Summary: lang:core; ::new; Argument[0]; ReturnValue; value | | 12 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | | 13 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | edges -| main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:4 | +| main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:2 | | 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:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:4 | +| main.rs:14:9:14:9 | b [Some] | main.rs:15:10:15:19 | b.unwrap() | provenance | MaD:2 | | main.rs:14:13:14:13 | a [Some] | main.rs:14:13:14:21 | a.clone() [Some] | provenance | generated | | main.rs:14:13:14:21 | a.clone() [Some] | main.rs:14:9:14:9 | b [Some] | provenance | | -| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:10 | +| main.rs:19:9:19:9 | a [Ok] | main.rs:20:10:20:19 | a.unwrap() | provenance | MaD:6 | | 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:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:10 | +| main.rs:21:9:21:9 | b [Ok] | main.rs:22:10:22:19 | b.unwrap() | provenance | MaD:6 | | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | 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: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() | provenance | MaD:1 | | main.rs:28:13:28:13 | a | main.rs:28:13:28:21 | a.clone() | provenance | generated | | main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:43:18:43:22 | SelfParam [Wrapper] | main.rs:44:26:44:29 | self [Wrapper] | provenance | | @@ -58,7 +58,7 @@ 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:5 | +| main.rs:67:23:67:23 | b [Some] | main.rs:67:17:67:24 | a.zip(...) [Some, tuple.1] | provenance | MaD:3 | | 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 | | @@ -76,20 +76,20 @@ 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(...) [&ref] | main.rs:109:13:109:20 | mut pin1 [&ref] | 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(...) [&ref] | provenance | MaD:9 | -| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:8 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [&ref] | provenance | MaD:11 | +| main.rs:109:33:109:34 | &i [&ref] | main.rs:109:24:109:35 | ...::new(...) [Pin, &ref] | provenance | MaD:5 | | main.rs:109:34:109:34 | i | main.rs:109:33:109:34 | &i [&ref] | provenance | | | main.rs:110:13:110:20 | mut pin2 [&ref] | main.rs:116:15:116:18 | pin2 [&ref] | provenance | | | main.rs:110:24:110:34 | ...::pin(...) [&ref] | main.rs:110:13:110:20 | mut pin2 [&ref] | provenance | | -| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [&ref] | provenance | MaD:3 | +| main.rs:110:33:110:33 | i | main.rs:110:24:110:34 | ...::pin(...) [&ref] | provenance | MaD:9 | | main.rs:111:13:111:20 | mut pin3 [&ref] | main.rs:117:15:117:18 | pin3 [&ref] | provenance | | | main.rs:111:24:111:49 | ...::into_pin(...) [&ref] | main.rs:111:13:111:20 | mut pin3 [&ref] | provenance | | -| main.rs:111:38:111:48 | ...::new(...) [&ref] | main.rs:111:24:111:49 | ...::into_pin(...) [&ref] | provenance | MaD:1 | -| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [&ref] | provenance | MaD:2 | +| main.rs:111:38:111:48 | ...::new(...) [&ref] | main.rs:111:24:111:49 | ...::into_pin(...) [&ref] | provenance | MaD:7 | +| main.rs:111:47:111:47 | i | main.rs:111:38:111:48 | ...::new(...) [&ref] | provenance | MaD:8 | | main.rs:114:15:114:18 | pin1 [&ref] | main.rs:114:14:114:18 | * ... | provenance | | | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | main.rs:115:14:115:35 | * ... | provenance | | -| main.rs:115:31:115:34 | pin1 [&ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:7 | -| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:6 | +| main.rs:115:31:115:34 | pin1 [&ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:10 | +| main.rs:115:31:115:34 | pin1 [Pin, &ref] | main.rs:115:15:115:35 | ...::into_inner(...) [&ref] | provenance | MaD:4 | | main.rs:116:15:116:18 | pin2 [&ref] | main.rs:116:14:116:18 | * ... | provenance | | | main.rs:117:15:117:18 | pin3 [&ref] | main.rs:117:14:117:18 | * ... | provenance | | | main.rs:122:13:122:18 | mut ms [MyStruct] | main.rs:127:14:127:15 | ms [MyStruct] | provenance | | diff --git a/rust/ql/test/library-tests/dataflow/modeled/main.rs b/rust/ql/test/library-tests/dataflow/modeled/main.rs index c660a33116d..567fe9c59c7 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/main.rs +++ b/rust/ql/test/library-tests/dataflow/modeled/main.rs @@ -115,7 +115,7 @@ fn test_pin() { sink(*Pin::into_inner(pin1)); // $ hasValueFlow=40 sink(*pin2); // $ hasValueFlow=40 sink(*pin3); // $ hasValueFlow=40 - sink(*pin4); // $ MISSING: hasValueFlow=40 + sink(*pin4); // $ hasTaintFlow=40 } { diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index b5028f38f76..5139573d185 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -62,8 +62,6 @@ | test.rs:444:31:444:45 | ...::read | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:449:22:449:46 | ...::read_to_string | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:455:26:455:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:455:26:455:29 | path | Flow source 'FileSource' of type file (DEFAULT). | -| test.rs:456:31:456:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:456:31:456:39 | file_name | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:462:22:462:41 | ...::read_link | Flow source 'FileSource' of type file (DEFAULT). | | test.rs:472:20:472:38 | ...::open | Flow source 'FileSource' of type file (DEFAULT). | 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 24306107de2..cd15c991628 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 @@ -1,8 +1,10 @@ models -| 1 | Summary: lang:alloc; ::from; Argument[0]; ReturnValue; value | -| 2 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | -| 3 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 4 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 1 | Summary: ::add; Argument[self]; ReturnValue; value | +| 2 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 3 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 4 | Summary: lang:alloc; ::from; Argument[0]; ReturnValue; value | +| 5 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | +| 6 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | edges | main.rs:26:9:26:9 | s | main.rs:27:19:27:25 | s[...] | provenance | | | main.rs:26:13:26:22 | source(...) | main.rs:26:9:26:9 | s | provenance | | @@ -10,44 +12,49 @@ edges | main.rs:27:18:27:25 | &... [&ref] | main.rs:27:9:27:14 | sliced [&ref] | provenance | | | main.rs:27:19:27:25 | s[...] | main.rs:27:18:27:25 | &... [&ref] | provenance | | | main.rs:32:9:32:10 | s1 | main.rs:35:9:35:10 | s4 | provenance | | +| 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:1 | +| main.rs:35:14:35:20 | ... + ... | main.rs:35:9:35:10 | s4 | 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 | | | main.rs:52:9:52:10 | s2 | main.rs:53:10:53:11 | s2 | provenance | | | 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:1 | +| main.rs:52:27:52:28 | s1 | main.rs:52:14:52:29 | ...::from(...) | provenance | MaD:4 | | main.rs:63:9:63:9 | s | main.rs:64:16:64:16 | s | provenance | | | main.rs:63:9:63:9 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:2 | +| main.rs:63:9:63:9 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:5 | | 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:2 | +| main.rs:64:16:64:16 | s | main.rs:64:16:64:25 | s.as_str() | provenance | MaD:5 | | 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:3 | +| main.rs:70:34:70:61 | MacroExpr | main.rs:70:22:70:62 | ...::format(...) | provenance | MaD:6 | | 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:3 | +| main.rs:73:34:73:59 | MacroExpr | main.rs:73:22:73:60 | ...::format(...) | provenance | MaD:6 | | 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:3 | +| main.rs:77:34:77:74 | MacroExpr | main.rs:77:22:77:75 | ...::format(...) | provenance | MaD:6 | | 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:10:86:26 | res | main.rs:86:18:86:25 | { ... } | provenance | | | main.rs:86:18:86:25 | ...::format(...) | main.rs:86:10:86:26 | res | 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:3 | -| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:4 | +| main.rs:86:18:86:25 | MacroExpr | main.rs:86:18:86:25 | ...::format(...) | provenance | MaD:6 | +| main.rs:86:18:86:25 | { ... } | main.rs:86:18:86:25 | ...::must_use(...) | provenance | MaD:3 | | main.rs:87:10:87:33 | res | main.rs:87:18:87:32 | { ... } | provenance | | | main.rs:87:18:87:32 | ...::format(...) | main.rs:87:10:87:33 | res | 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:3 | -| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:4 | +| main.rs:87:18:87:32 | MacroExpr | main.rs:87:18:87:32 | ...::format(...) | provenance | MaD:6 | +| main.rs:87:18:87:32 | { ... } | main.rs:87:18:87:32 | ...::must_use(...) | provenance | MaD:3 | nodes | main.rs:26:9:26:9 | s | semmle.label | s | | main.rs:26:13:26:22 | source(...) | semmle.label | source(...) | @@ -58,6 +65,8 @@ nodes | main.rs:32:9:32:10 | s1 | semmle.label | s1 | | main.rs:32:14:32:23 | source(...) | semmle.label | source(...) | | main.rs:35:9:35:10 | s4 | semmle.label | s4 | +| main.rs:35:14:35:15 | s1 | semmle.label | s1 | +| main.rs:35:14:35:20 | ... + ... | semmle.label | ... + ... | | main.rs:38:10:38:11 | s4 | semmle.label | s4 | | main.rs:51:9:51:10 | s1 | semmle.label | s1 | | main.rs:51:14:51:29 | source_slice(...) | semmle.label | source_slice(...) | diff --git a/rust/ql/test/library-tests/dataflow/strings/main.rs b/rust/ql/test/library-tests/dataflow/strings/main.rs index c2e1e02778e..91ab58d5f4c 100644 --- a/rust/ql/test/library-tests/dataflow/strings/main.rs +++ b/rust/ql/test/library-tests/dataflow/strings/main.rs @@ -35,7 +35,7 @@ fn string_add() { let s4 = s1 + s3; let s5 = s2 + s3; - sink(s4); // $ hasTaintFlow=83 + sink(s4); // $ hasValueFlow=83 sink(s5); } 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 55240680d53..a8f0b6321f5 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 @@ -1,9 +1,12 @@ models +| 1 | Summary: ::neg; Argument[self]; ReturnValue; taint | edges | main.rs:12:9:12:9 | a | main.rs:13:10:13:14 | ... + ... | provenance | | | main.rs:12:13:12:22 | source(...) | main.rs:12:9:12:9 | a | provenance | | | main.rs:17:9:17:9 | a | main.rs:18:10:18:11 | - ... | provenance | | +| main.rs:17:9:17:9 | a | main.rs:18:11:18:11 | a | provenance | | | main.rs:17:13:17:22 | source(...) | main.rs:17:9:17:9 | a | provenance | | +| main.rs:18:11:18:11 | a | main.rs:18:10:18:11 | - ... | provenance | MaD:1 | | main.rs:22:9:22:9 | a | main.rs:23:9:23:9 | b | provenance | | | main.rs:22:13:22:22 | source(...) | main.rs:22:9:22:9 | a | provenance | | | main.rs:23:9:23:9 | b | main.rs:24:10:24:17 | b as i64 | provenance | | @@ -23,6 +26,7 @@ nodes | main.rs:17:9:17:9 | a | semmle.label | a | | main.rs:17:13:17:22 | source(...) | semmle.label | source(...) | | main.rs:18:10:18:11 | - ... | semmle.label | - ... | +| main.rs:18:11:18:11 | a | semmle.label | a | | main.rs:22:9:22:9 | a | semmle.label | a | | main.rs:22:13:22:22 | source(...) | semmle.label | source(...) | | main.rs:23:9:23:9 | b | semmle.label | b | diff --git a/rust/ql/test/query-tests/security/CWE-020/RegexInjection.expected b/rust/ql/test/query-tests/security/CWE-020/RegexInjection.expected index 49ba42d13ef..e10d2807cf3 100644 --- a/rust/ql/test/query-tests/security/CWE-020/RegexInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-020/RegexInjection.expected @@ -3,20 +3,20 @@ edges | main.rs:4:9:4:16 | username | main.rs:5:25:5:44 | MacroExpr | provenance | | | main.rs:4:20:4:32 | ...::var | main.rs:4:20:4:40 | ...::var(...) [Ok] | provenance | Src:MaD:1 | -| main.rs:4:20:4:40 | ...::var(...) [Ok] | main.rs:4:20:4:66 | ... .unwrap_or(...) | provenance | MaD:3 | +| main.rs:4:20:4:40 | ...::var(...) [Ok] | main.rs:4:20:4:66 | ... .unwrap_or(...) | provenance | MaD:2 | | main.rs:4:20:4:66 | ... .unwrap_or(...) | main.rs:4:9:4:16 | username | provenance | | | main.rs:5:9:5:13 | regex | main.rs:6:26:6:30 | regex | provenance | | | main.rs:5:17:5:45 | res | main.rs:5:25:5:44 | { ... } | provenance | | | main.rs:5:25:5:44 | ...::format(...) | main.rs:5:17:5:45 | res | provenance | | | main.rs:5:25:5:44 | ...::must_use(...) | main.rs:5:9:5:13 | regex | provenance | | -| main.rs:5:25:5:44 | MacroExpr | main.rs:5:25:5:44 | ...::format(...) | provenance | MaD:2 | -| main.rs:5:25:5:44 | { ... } | main.rs:5:25:5:44 | ...::must_use(...) | provenance | MaD:4 | +| main.rs:5:25:5:44 | MacroExpr | main.rs:5:25:5:44 | ...::format(...) | provenance | MaD:4 | +| main.rs:5:25:5:44 | { ... } | main.rs:5:25:5:44 | ...::must_use(...) | provenance | MaD:3 | | main.rs:6:26:6:30 | regex | main.rs:6:25:6:30 | ®ex | provenance | | models | 1 | Source: lang:std; crate::env::var; ReturnValue.Field[core::result::Result::Ok(0)]; environment | -| 2 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 3 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 4 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 2 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 3 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 4 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | nodes | main.rs:4:9:4:16 | username | semmle.label | username | | main.rs:4:20:4:32 | ...::var | semmle.label | ...::var | 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 71879802efa..ba3ced65748 100644 --- a/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected +++ b/rust/ql/test/query-tests/security/CWE-022/TaintedPath.expected @@ -4,12 +4,13 @@ edges | src/main.rs:6:11:6:19 | file_name | src/main.rs:8:35:8:43 | file_name | provenance | | | src/main.rs:8:9:8:17 | file_path | src/main.rs:10:24:10:32 | file_path | provenance | | | src/main.rs:8:21:8:44 | ...::from(...) | src/main.rs:8:9:8:17 | file_path | provenance | | -| src/main.rs:8:35:8:43 | file_name | src/main.rs:8:21:8:44 | ...::from(...) | provenance | MaD:2 | +| src/main.rs:8:35:8:43 | file_name | src/main.rs:8:21:8:44 | ...::from(...) | provenance | MaD:3 | | src/main.rs:8:35:8:43 | file_name | src/main.rs:8:21:8:44 | ...::from(...) | provenance | MaD:2 | | src/main.rs:10:24:10:32 | file_path | src/main.rs:10:5:10:22 | ...::read_to_string | provenance | MaD:1 Sink:MaD:1 | models | 1 | Sink: lang:std; crate::fs::read_to_string; Argument[0]; path-injection | -| 2 | Summary: lang:std; ::from; Argument[0]; ReturnValue; taint | +| 2 | Summary: ::from; Argument[0]; ReturnValue; taint | +| 3 | Summary: lang:std; ::from; Argument[0]; ReturnValue; taint | nodes | src/main.rs:6:11:6:19 | file_name | semmle.label | file_name | | src/main.rs:8:9:8:17 | file_path | semmle.label | file_path | 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 1a6b417ce67..c4b4133907c 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -6,32 +6,37 @@ edges | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:1 | -| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:7 | -| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:4 | +| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:8 | +| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:3 | | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | | sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:2 | -| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:5 | -| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:8 | -| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:6 | +| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:4 | +| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:9 | +| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:5 | | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | sqlx.rs:48:9:48:21 | remote_string | provenance | | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:3 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:7 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:6 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:7 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:6 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:3 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | provenance | MaD:7 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | provenance | MaD:6 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:7 | +| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:6 | | sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | | sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | models | 1 | Source: lang:std; crate::env::args; ReturnValue.Element; commandargs | | 2 | Source: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | -| 3 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | -| 4 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 5 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 6 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 7 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 8 | Summary: repo:https://github.com/seanmonstar/reqwest:reqwest; ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 3 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 4 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 5 | Summary: ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 6 | Summary: ::as_str; Argument[self]; ReturnValue; value | +| 7 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | +| 8 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 9 | Summary: repo:https://github.com/seanmonstar/reqwest:reqwest; ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | nodes | sqlx.rs:47:9:47:18 | arg_string | semmle.label | arg_string | | sqlx.rs:47:22:47:35 | ...::args | semmle.label | ...::args | diff --git a/rust/ql/test/query-tests/security/CWE-311/CleartextTransmission.expected b/rust/ql/test/query-tests/security/CWE-311/CleartextTransmission.expected index 4eb499670b2..97e101eaa38 100644 --- a/rust/ql/test/query-tests/security/CWE-311/CleartextTransmission.expected +++ b/rust/ql/test/query-tests/security/CWE-311/CleartextTransmission.expected @@ -9,19 +9,19 @@ edges | main.rs:6:15:6:58 | res | main.rs:6:23:6:57 | { ... } | provenance | | | main.rs:6:23:6:57 | ...::format(...) | main.rs:6:15:6:58 | res | provenance | | | main.rs:6:23:6:57 | ...::must_use(...) | main.rs:6:9:6:11 | url | provenance | | -| main.rs:6:23:6:57 | MacroExpr | main.rs:6:23:6:57 | ...::format(...) | provenance | MaD:5 | -| main.rs:6:23:6:57 | { ... } | main.rs:6:23:6:57 | ...::must_use(...) | provenance | MaD:7 | +| main.rs:6:23:6:57 | MacroExpr | main.rs:6:23:6:57 | ...::format(...) | provenance | MaD:7 | +| main.rs:6:23:6:57 | { ... } | main.rs:6:23:6:57 | ...::must_use(...) | provenance | MaD:6 | | main.rs:6:50:6:57 | password | main.rs:6:23:6:57 | MacroExpr | provenance | | | main.rs:7:28:7:30 | url | main.rs:7:5:7:26 | ...::get | provenance | MaD:4 Sink:MaD:4 | | main.rs:12:9:12:15 | address | main.rs:13:27:13:33 | address | provenance | | | main.rs:12:19:12:60 | res | main.rs:12:27:12:59 | { ... } | provenance | | | main.rs:12:27:12:59 | ...::format(...) | main.rs:12:19:12:60 | res | provenance | | | main.rs:12:27:12:59 | ...::must_use(...) | main.rs:12:9:12:15 | address | provenance | | -| main.rs:12:27:12:59 | MacroExpr | main.rs:12:27:12:59 | ...::format(...) | provenance | MaD:5 | -| main.rs:12:27:12:59 | { ... } | main.rs:12:27:12:59 | ...::must_use(...) | provenance | MaD:7 | +| main.rs:12:27:12:59 | MacroExpr | main.rs:12:27:12:59 | ...::format(...) | provenance | MaD:7 | +| main.rs:12:27:12:59 | { ... } | main.rs:12:27:12:59 | ...::must_use(...) | provenance | MaD:6 | | main.rs:12:50:12:57 | password | main.rs:12:27:12:59 | MacroExpr | provenance | | | main.rs:13:9:13:11 | url | main.rs:14:28:14:30 | url | provenance | | -| main.rs:13:15:13:34 | ...::parse(...) [Ok] | main.rs:13:15:13:43 | ... .unwrap() | provenance | MaD:6 | +| main.rs:13:15:13:34 | ...::parse(...) [Ok] | main.rs:13:15:13:43 | ... .unwrap() | provenance | MaD:5 | | main.rs:13:15:13:43 | ... .unwrap() | main.rs:13:9:13:11 | url | provenance | | | main.rs:13:26:13:33 | &address [&ref] | main.rs:13:15:13:34 | ...::parse(...) [Ok] | provenance | MaD:8 | | main.rs:13:27:13:33 | address | main.rs:13:26:13:33 | &address [&ref] | provenance | | @@ -30,34 +30,34 @@ edges | main.rs:19:15:19:58 | res | main.rs:19:23:19:57 | { ... } | provenance | | | main.rs:19:23:19:57 | ...::format(...) | main.rs:19:15:19:58 | res | provenance | | | main.rs:19:23:19:57 | ...::must_use(...) | main.rs:19:9:19:11 | url | provenance | | -| main.rs:19:23:19:57 | MacroExpr | main.rs:19:23:19:57 | ...::format(...) | provenance | MaD:5 | -| main.rs:19:23:19:57 | { ... } | main.rs:19:23:19:57 | ...::must_use(...) | provenance | MaD:7 | +| main.rs:19:23:19:57 | MacroExpr | main.rs:19:23:19:57 | ...::format(...) | provenance | MaD:7 | +| main.rs:19:23:19:57 | { ... } | main.rs:19:23:19:57 | ...::must_use(...) | provenance | MaD:6 | | main.rs:19:50:19:57 | password | main.rs:19:23:19:57 | MacroExpr | provenance | | | main.rs:21:17:21:19 | url | main.rs:21:12:21:15 | post | provenance | MaD:1 Sink:MaD:1 | | main.rs:26:9:26:11 | url | main.rs:28:33:28:35 | url | provenance | | | main.rs:26:15:26:58 | res | main.rs:26:23:26:57 | { ... } | provenance | | | main.rs:26:23:26:57 | ...::format(...) | main.rs:26:15:26:58 | res | provenance | | | main.rs:26:23:26:57 | ...::must_use(...) | main.rs:26:9:26:11 | url | provenance | | -| main.rs:26:23:26:57 | MacroExpr | main.rs:26:23:26:57 | ...::format(...) | provenance | MaD:5 | -| main.rs:26:23:26:57 | { ... } | main.rs:26:23:26:57 | ...::must_use(...) | provenance | MaD:7 | +| main.rs:26:23:26:57 | MacroExpr | main.rs:26:23:26:57 | ...::format(...) | provenance | MaD:7 | +| main.rs:26:23:26:57 | { ... } | main.rs:26:23:26:57 | ...::must_use(...) | provenance | MaD:6 | | main.rs:26:50:26:57 | password | main.rs:26:23:26:57 | MacroExpr | provenance | | | main.rs:28:33:28:35 | url | main.rs:28:12:28:18 | request | provenance | MaD:3 Sink:MaD:3 | | main.rs:33:9:33:11 | url | main.rs:35:33:35:35 | url | provenance | | | main.rs:33:15:33:58 | res | main.rs:33:23:33:57 | { ... } | provenance | | | main.rs:33:23:33:57 | ...::format(...) | main.rs:33:15:33:58 | res | provenance | | | main.rs:33:23:33:57 | ...::must_use(...) | main.rs:33:9:33:11 | url | provenance | | -| main.rs:33:23:33:57 | MacroExpr | main.rs:33:23:33:57 | ...::format(...) | provenance | MaD:5 | -| main.rs:33:23:33:57 | { ... } | main.rs:33:23:33:57 | ...::must_use(...) | provenance | MaD:7 | +| main.rs:33:23:33:57 | MacroExpr | main.rs:33:23:33:57 | ...::format(...) | provenance | MaD:7 | +| main.rs:33:23:33:57 | { ... } | main.rs:33:23:33:57 | ...::must_use(...) | provenance | MaD:6 | | main.rs:33:50:33:57 | password | main.rs:33:23:33:57 | MacroExpr | provenance | | | main.rs:35:33:35:35 | url | main.rs:35:12:35:18 | request | provenance | MaD:2 Sink:MaD:2 | models -| 1 | Sink: repo:https://github.com/seanmonstar/reqwest:reqwest; ::post; Argument[0]; transmission | +| 1 | Sink: ::post; Argument[0]; transmission | | 2 | Sink: repo:https://github.com/seanmonstar/reqwest:reqwest; ::request; Argument[1]; transmission | | 3 | Sink: repo:https://github.com/seanmonstar/reqwest:reqwest; ::request; Argument[1]; transmission | -| 4 | Sink: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; Argument[0]; transmission | -| 5 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 6 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 7 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 4 | Sink: reqwest::blocking::get; Argument[0]; transmission | +| 5 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 6 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 7 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | | 8 | Summary: repo:https://github.com/servo/rust-url:url; ::parse; Argument[0].Reference; ReturnValue.Field[core::result::Result::Ok(0)]; taint | nodes | main.rs:6:9:6:11 | url | semmle.label | url | 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 1f44e6c07bc..199cde2ce74 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -137,8 +137,8 @@ edges | test_logging.rs:99:14:99:46 | res | test_logging.rs:99:22:99:45 | { ... } | provenance | | | test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:14:99:46 | res | 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:12 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:13 | +| test_logging.rs:99:22:99:45 | MacroExpr | test_logging.rs:99:22:99:45 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:12 | | 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:19 | ...::log | provenance | MaD:10 Sink:MaD:10 | | test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:42 | ...::log | provenance | MaD:10 Sink:MaD:10 | @@ -160,8 +160,8 @@ edges | test_logging.rs:176:34:176:79 | res | test_logging.rs:176:42:176:78 | { ... } | provenance | | | test_logging.rs:176:42:176:78 | ...::format(...) | test_logging.rs:176:34:176:79 | res | 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:12 | -| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:13 | +| test_logging.rs:176:42:176:78 | MacroExpr | test_logging.rs:176:42:176:78 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:12 | | 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:7 Sink:MaD:7 | | test_logging.rs:180:35:180:81 | &... [&ref] | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:7 Sink:MaD:7 | @@ -170,8 +170,8 @@ edges | test_logging.rs:180:36:180:81 | res | test_logging.rs:180:44:180:80 | { ... } | provenance | | | test_logging.rs:180:44:180:80 | ...::format(...) | test_logging.rs:180:36:180:81 | res | 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:12 | -| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:13 | +| test_logging.rs:180:44:180:80 | MacroExpr | test_logging.rs:180:44:180:80 | ...::format(...) | provenance | MaD:13 | +| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:12 | | 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 | | @@ -200,31 +200,31 @@ edges | test_logging.rs:208:42:208:49 | password | test_logging.rs:208:26:208:49 | MacroExpr | provenance | | | test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:52 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | | test_logging.rs:211:44:211:51 | password | test_logging.rs:211:28:211:51 | MacroExpr | provenance | | -| test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | provenance | MaD:2 | +| test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | Sink:MaD:2 | +| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | provenance | MaD:1 | | test_logging.rs:214:30:214:53 | MacroExpr | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:214:46:214:53 | password | test_logging.rs:214:30:214:53 | MacroExpr | provenance | | -| test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | provenance | MaD:2 | +| test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | Sink:MaD:2 | +| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | provenance | MaD:1 | | test_logging.rs:217:30:217:53 | MacroExpr | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | provenance | | | test_logging.rs:217:46:217:53 | password | test_logging.rs:217:30:217:53 | MacroExpr | provenance | | | test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:58 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | | test_logging.rs:220:50:220:57 | password | test_logging.rs:220:34:220:57 | MacroExpr | provenance | | -| test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | provenance | MaD:2 | +| test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | Sink:MaD:2 | +| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | provenance | MaD:1 | | test_logging.rs:223:36:223:59 | MacroExpr | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | provenance | | | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:36:223:59 | MacroExpr | provenance | | -| test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | provenance | MaD:2 | +| test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | Sink:MaD:2 | +| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | MaD:2 Sink:MaD:2 | +| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | provenance | MaD:1 | | 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 | | models -| 1 | Sink: lang:core; crate::panicking::assert_failed; Argument[3].Field[core::option::Option::Some(0)]; log-injection | -| 2 | Sink: lang:core; crate::panicking::assert_failed; Argument[3]; log-injection | +| 1 | Sink: core::panicking::assert_failed; Argument[3]; log-injection | +| 2 | Sink: lang:core; crate::panicking::assert_failed; Argument[3].Field[core::option::Option::Some(0)]; log-injection | | 3 | Sink: lang:core; crate::panicking::panic_fmt; Argument[0]; log-injection | | 4 | Sink: lang:std; crate::io::stdio::_eprint; Argument[0]; log-injection | | 5 | Sink: lang:std; crate::io::stdio::_print; Argument[0]; log-injection | @@ -234,8 +234,8 @@ models | 9 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_unwrap; Argument[self].Field[core::result::Result::Err(0)]; log-injection | | 10 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; Argument[1]; log-injection | | 11 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; Argument[3]; log-injection | -| 12 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 13 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 12 | Summary: core::hint::must_use; Argument[0]; ReturnValue; value | +| 13 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | nodes | test_logging.rs:42:5:42:36 | ...::log | semmle.label | ...::log | | test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | 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 9d0423390a7..4c4a795cb91 100644 --- a/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected +++ b/rust/ql/test/query-tests/security/CWE-770/UncontrolledAllocationSize.expected @@ -54,98 +54,105 @@ | 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 | 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:5 Sink:MaD:5 | +| main.rs:18:41:18:41 | v | main.rs:18:13:18:31 | ...::realloc | provenance | MaD:19 Sink:MaD:19 | | 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:32:60:32:89 | ... * ... | provenance | | | main.rs:18:41:18:41 | v | main.rs:35:9:35:10 | s6 | 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:36 | +| main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | main.rs:20:14:20:63 | ... .unwrap() | provenance | MaD:35 | | 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:26 | -| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:21:31:21:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:22 | -| main.rs:21:31:21:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:22 | +| main.rs:20:50:20:50 | v | main.rs:20:14:20:54 | ...::from_size_align(...) [Ok] | provenance | MaD:44 | +| main.rs:21:31:21:32 | l2 | main.rs:21:13:21:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:21:31:21:32 | l2 | main.rs:22:31:22:44 | l2.align_to(...) [Ok] | provenance | MaD:40 | +| main.rs:21:31:21:32 | l2 | main.rs:23:31:23:44 | l2.align_to(...) [Ok] | provenance | MaD:40 | | main.rs:21:31:21:32 | l2 | main.rs:24:38:24:39 | l2 | provenance | | -| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:36 | -| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:36 | -| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:29 | -| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:4 Sink:MaD:4 | +| main.rs:22:31:22:44 | l2.align_to(...) [Ok] | main.rs:22:31:22:53 | ... .unwrap() | provenance | MaD:35 | +| main.rs:22:31:22:53 | ... .unwrap() | main.rs:22:13:22:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:23:31:23:44 | l2.align_to(...) [Ok] | main.rs:23:31:23:53 | ... .unwrap() | provenance | MaD:35 | +| main.rs:23:31:23:53 | ... .unwrap() | main.rs:23:31:23:68 | ... .pad_to_align() | provenance | MaD:46 | +| main.rs:23:31:23:68 | ... .pad_to_align() | main.rs:23:13:23:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:24:38:24:39 | l2 | main.rs:24:13:24:36 | ...::alloc_zeroed | provenance | MaD:18 Sink:MaD:18 | | 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:28 | -| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:29:60:29:60 | v | main.rs:29:14:29:64 | ...::from_size_align_unchecked(...) | provenance | MaD:45 | +| main.rs:30:31:30:32 | l4 | main.rs:30:13:30:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:28 | -| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:32:60:32:60 | v | main.rs:32:60:32:89 | ... * ... | provenance | MaD:37 | +| main.rs:32:60:32:89 | ... * ... | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | provenance | MaD:45 | +| main.rs:33:31:33:32 | l5 | main.rs:33:13:33:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | main.rs:35:9:35:10 | s6 | main.rs:36:60:36:61 | s6 | provenance | | +| main.rs:35:15:35:49 | ... * ... | main.rs:35:9:35:10 | s6 | provenance | | +| main.rs:35:49:35:49 | v | main.rs:35:15:35:49 | ... * ... | provenance | MaD:36 | | main.rs:36:9:36:10 | l6 | main.rs:37:31:37:32 | l6 | provenance | | | main.rs:36:9:36:10 | l6 [Layout.size] | main.rs:37:31:37:32 | l6 [Layout.size] | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | main.rs:36:9:36:10 | l6 | provenance | | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | main.rs:36:9:36:10 | l6 [Layout.size] | provenance | | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:28 | -| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | provenance | MaD:27 | -| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:33 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | provenance | MaD:45 | +| main.rs:36:60:36:61 | s6 | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) [Layout.size] | provenance | MaD:31 | +| main.rs:37:31:37:32 | l6 | main.rs:37:13:37:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:37:31:37:32 | l6 | main.rs:39:60:39:68 | l6.size() | provenance | MaD:49 | | main.rs:37:31:37:32 | l6 [Layout.size] | main.rs:39:60:39:68 | l6.size() | provenance | MaD:32 | | 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:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:28 | -| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:39:60:39:68 | l6.size() | main.rs:39:14:39:72 | ...::from_size_align_unchecked(...) | provenance | MaD:45 | +| main.rs:40:31:40:32 | l7 | main.rs:40:13:40:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:45 | ... + ... | 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:53 | ... * ... | 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:36 | +| main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | main.rs:50:31:50:51 | ... .unwrap() [tuple.0] | provenance | MaD:35 | | 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:3 Sink:MaD:3 | -| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:30 | -| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:36 | +| main.rs:50:31:50:53 | ... .0 | main.rs:50:13:50:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:50:41:50:41 | v | main.rs:50:31:50:42 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:47 | +| main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | main.rs:51:31:51:55 | ... .unwrap() [tuple.0] | provenance | MaD:35 | | 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:3 Sink:MaD:3 | -| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:30 | -| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:36 | -| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:31 | -| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:36 | -| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:31 | +| main.rs:51:31:51:57 | ... .0 | main.rs:51:13:51:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:51:41:51:45 | ... + ... | main.rs:51:31:51:46 | l2.repeat(...) [Ok, tuple.0] | provenance | MaD:47 | +| main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | main.rs:53:31:53:58 | ... .unwrap() | provenance | MaD:35 | +| main.rs:53:31:53:58 | ... .unwrap() | main.rs:53:13:53:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:53:48:53:48 | v | main.rs:53:31:53:49 | l2.repeat_packed(...) [Ok] | provenance | MaD:48 | +| main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | main.rs:54:31:54:63 | ... .unwrap() | provenance | MaD:35 | +| main.rs:54:31:54:63 | ... .unwrap() | main.rs:54:13:54:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:54:48:54:53 | ... * ... | main.rs:54:31:54:54 | l2.repeat_packed(...) [Ok] | provenance | MaD:48 | | 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:35 | +| main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | main.rs:58:24:58:66 | ... .expect(...) [tuple.0] | provenance | MaD:34 | | 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:30 | -| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:58:34:58:34 | v | main.rs:58:24:58:35 | l3.repeat(...) [Ok, tuple.0] | provenance | MaD:47 | +| main.rs:59:31:59:32 | k1 | main.rs:59:13:59:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | main.rs:59:31:59:32 | k1 | main.rs:60:34:60:35 | k1 | provenance | | | main.rs:59:31:59:32 | k1 | main.rs:64:48:64:49 | 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:36 | +| main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | main.rs:60:24:60:45 | ... .unwrap() [tuple.0] | provenance | MaD:35 | | 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:24 | -| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:36 | -| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:25 | +| main.rs:60:34:60:35 | k1 | main.rs:60:24:60:36 | l3.extend(...) [Ok, tuple.0] | provenance | MaD:42 | +| main.rs:61:31:61:32 | k2 | main.rs:61:13:61:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | main.rs:64:31:64:59 | ... .unwrap() | provenance | MaD:35 | +| main.rs:64:31:64:59 | ... .unwrap() | main.rs:64:13:64:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:64:48:64:49 | k1 | main.rs:64:31:64:50 | l3.extend_packed(...) [Ok] | provenance | MaD:43 | | 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:36 | +| main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | main.rs:67:14:67:56 | ... .unwrap() | provenance | MaD:35 | | 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:23 | -| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:67:46:67:46 | v | main.rs:67:14:67:47 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | +| main.rs:68:31:68:32 | l4 | main.rs:68:13:68:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | main.rs:87:18:87:67 | ... .unwrap() | provenance | MaD:35 | | 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:26 | -| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:87:54:87:54 | v | main.rs:87:18:87:58 | ...::from_size_align(...) [Ok] | provenance | MaD:44 | +| main.rs:88:31:88:36 | layout | main.rs:88:13:88:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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 | | @@ -155,166 +162,185 @@ 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:36 | +| main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | main.rs:92:14:92:57 | ... .unwrap() | provenance | MaD:35 | | 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:23 | -| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:92:47:92:47 | v | main.rs:92:14:92:48 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | +| main.rs:96:35:96:36 | l1 | main.rs:96:17:96:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | main.rs:101:18:101:61 | ... .unwrap() | provenance | MaD:35 | | 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:23 | -| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:101:51:101:51 | v | main.rs:101:18:101:52 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | +| main.rs:102:35:102:36 | l1 | main.rs:102:17:102:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:3 Sink:MaD:3 | +| main.rs:103:35:103:36 | l3 | main.rs:103:17:103:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:3 Sink:MaD:3 | +| main.rs:109:35:109:36 | l1 | main.rs:109:17:109:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:3 Sink:MaD:3 | +| main.rs:111:35:111:36 | l1 | main.rs:111:17:111:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | main.rs:145:18:145:61 | ... .unwrap() | provenance | MaD:35 | | 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:23 | -| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:145:51:145:51 | v | main.rs:145:18:145:52 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | +| main.rs:146:35:146:36 | l1 | main.rs:146:17:146:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:3 Sink:MaD:3 | +| main.rs:148:35:148:36 | l9 | main.rs:148:17:148:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | main.rs:151:15:151:78 | ... .unwrap() | provenance | MaD:35 | | 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:23 | +| main.rs:151:48:151:68 | ...::min(...) | main.rs:151:15:151:69 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | | main.rs:151:62:151:62 | v | main.rs:151:48:151:68 | ...::min(...) | provenance | MaD:39 | -| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:152:31:152:33 | l10 | main.rs:152:13:152:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | main.rs:154:15:154:78 | ... .unwrap() | provenance | MaD:35 | | 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:23 | +| main.rs:154:48:154:68 | ...::max(...) | main.rs:154:15:154:69 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | | main.rs:154:62:154:62 | v | main.rs:154:48:154:68 | ...::max(...) | provenance | MaD:38 | -| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:155:31:155:33 | l11 | main.rs:155:13:155:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | main.rs:161:19:161:68 | ... .unwrap() | provenance | MaD:35 | | 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:26 | -| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:161:55:161:55 | v | main.rs:161:19:161:59 | ...::from_size_align(...) [Ok] | provenance | MaD:44 | +| main.rs:162:35:162:37 | l13 | main.rs:162:17:162:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:3 Sink:MaD:3 | -| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | +| main.rs:169:35:169:37 | l13 | main.rs:169:17:169:33 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:177:31:177:32 | l1 | main.rs:177:13:177:29 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | | 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:36 | +| main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | main.rs:192:14:192:56 | ... .unwrap() | provenance | MaD:35 | | 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:23 | -| 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:193:32:193:36 | alloc | provenance | MaD:12 Sink:MaD:12 | +| main.rs:192:46:192:46 | v | main.rs:192:14:192:47 | ...::array::<...>(...) [Ok] | provenance | MaD:41 | +| main.rs:193:38:193:39 | l2 | main.rs:193:32:193:36 | alloc | provenance | MaD:24 Sink:MaD:24 | +| 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:13 Sink:MaD:13 | -| 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:194:32:194:43 | alloc_zeroed | provenance | MaD:14 Sink:MaD:14 | +| main.rs:194:45:194:46 | l2 | main.rs:194:32:194:43 | alloc_zeroed | provenance | MaD:25 Sink:MaD:25 | +| 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: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:6 Sink:MaD:6 | +| main.rs:195:41:195:42 | l2 | main.rs:195:32:195:39 | allocate | provenance | MaD:20 Sink:MaD:20 | +| 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:7 Sink:MaD:7 | +| main.rs:196:48:196:49 | l2 | main.rs:196:32:196:46 | allocate_zeroed | provenance | MaD:21 Sink:MaD:21 | +| 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:197:32:197:39 | allocate | provenance | MaD:15 Sink:MaD:15 | | 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 | | -| main.rs:198:48:198:49 | l2 | main.rs:198:32:198:46 | allocate_zeroed | provenance | MaD:2 Sink:MaD:2 | +| main.rs:198:48:198:49 | l2 | main.rs:198:32:198:46 | allocate_zeroed | provenance | MaD:16 Sink:MaD:16 | | main.rs:198:48:198:49 | l2 | main.rs:198:32:198:46 | allocate_zeroed | provenance | MaD:2 Sink:MaD:2 | | 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:15 Sink:MaD:15 | -| main.rs:202:48:202:48 | v | main.rs:202:32:202:38 | realloc | provenance | MaD:16 Sink:MaD:16 | -| main.rs:208:53:208:54 | l2 | main.rs:208:40:208:43 | grow | provenance | MaD:8 Sink:MaD:8 | -| 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: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: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:22 Sink:MaD:22 | +| 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:23 Sink:MaD:23 | +| 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:19 Sink:MaD:19 | +| main.rs:219:26:219:26 | v | main.rs:219:13:219:24 | ...::malloc | provenance | MaD:28 Sink:MaD:28 | | 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:17 Sink:MaD:17 | +| main.rs:220:36:220:36 | v | main.rs:220:13:220:31 | ...::aligned_alloc | provenance | MaD:26 Sink:MaD:26 | | 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:18 Sink:MaD:18 | +| main.rs:222:30:222:30 | v | main.rs:222:13:222:24 | ...::calloc | provenance | MaD:27 Sink:MaD:27 | | 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:18 Sink:MaD:18 | +| main.rs:223:26:223:26 | v | main.rs:223:13:223:24 | ...::calloc | provenance | MaD:27 Sink:MaD:27 | | 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:20 Sink:MaD:20 | -| main.rs:279:24:279:41 | ...: String | main.rs:280:21:280:47 | user_input.parse() [Ok] | provenance | MaD:37 | +| main.rs:224:31:224:31 | v | main.rs:224:13:224:25 | ...::realloc | provenance | MaD:29 Sink:MaD:29 | +| 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: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:47 | user_input.parse() [Ok] | provenance | MaD:50 | | main.rs:280:9:280:17 | num_bytes | main.rs:282:54:282:62 | num_bytes | provenance | | | 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:9:280:17 | num_bytes | provenance | | +| main.rs:280:21:280:48 | TryExpr | main.rs:280:21:280:77 | ... * ... | provenance | MaD:37 | +| 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:36 | +| main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | main.rs:282:18:282:75 | ... .unwrap() | provenance | MaD:35 | | 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:26 | -| main.rs:284:40:284:45 | layout | main.rs:284:22:284:38 | ...::alloc | provenance | MaD:3 Sink:MaD:3 | -| main.rs:308:25:308:38 | ...::args | main.rs:308:25:308:40 | ...::args(...) [element] | provenance | Src:MaD:21 | -| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:40 | -| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:34 | +| main.rs:282:54:282:62 | num_bytes | main.rs:282:18:282:66 | ...::from_size_align(...) [Ok] | provenance | MaD:44 | +| main.rs:284:40:284:45 | layout | main.rs:284:22:284:38 | ...::alloc | provenance | MaD:17 Sink:MaD:17 | +| main.rs:308:25:308:38 | ...::args | main.rs:308:25:308:40 | ...::args(...) [element] | provenance | Src:MaD:30 | +| main.rs:308:25:308:40 | ...::args(...) [element] | main.rs:308:25:308:47 | ... .nth(...) [Some] | provenance | MaD:51 | +| main.rs:308:25:308:47 | ... .nth(...) [Some] | main.rs:308:25:308:74 | ... .unwrap_or(...) | provenance | MaD:33 | | 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:13:317:26 | ...::args | main.rs:317:13:317:28 | ...::args(...) [element] | provenance | Src:MaD:21 | -| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:40 | -| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:34 | -| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:37 | -| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:36 | +| 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:30 | +| main.rs:317:13:317:28 | ...::args(...) [element] | main.rs:317:13:317:35 | ... .nth(...) [Some] | provenance | MaD:51 | +| main.rs:317:13:317:35 | ... .nth(...) [Some] | main.rs:317:13:317:65 | ... .unwrap_or(...) | provenance | MaD:33 | +| main.rs:317:13:317:65 | ... .unwrap_or(...) | main.rs:317:13:317:82 | ... .parse() [Ok] | provenance | MaD:50 | +| main.rs:317:13:317:82 | ... .parse() [Ok] | main.rs:317:13:317:91 | ... .unwrap() | provenance | MaD:35 | | 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 | | models -| 1 | Sink: lang:alloc; ::allocate; Argument[0]; alloc-layout | -| 2 | Sink: lang:alloc; ::allocate_zeroed; Argument[0]; alloc-layout | -| 3 | Sink: lang:alloc; crate::alloc::alloc; Argument[0]; alloc-layout | -| 4 | Sink: lang:alloc; crate::alloc::alloc_zeroed; Argument[0]; alloc-layout | -| 5 | Sink: lang:alloc; crate::alloc::realloc; Argument[2]; alloc-size | -| 6 | Sink: lang:std; ::allocate; Argument[0]; alloc-layout | -| 7 | Sink: lang:std; ::allocate_zeroed; Argument[0]; alloc-layout | -| 8 | Sink: lang:std; ::grow; Argument[2]; alloc-layout | -| 9 | Sink: lang:std; ::grow_zeroed; Argument[2]; alloc-layout | -| 10 | Sink: lang:std; ::shrink; Argument[2]; alloc-layout | -| 11 | Sink: lang:std; ::alloc; Argument[0]; alloc-layout | -| 12 | Sink: lang:std; ::alloc; Argument[0]; alloc-size | -| 13 | Sink: lang:std; ::alloc_zeroed; Argument[0]; alloc-layout | -| 14 | Sink: lang:std; ::alloc_zeroed; Argument[0]; alloc-size | -| 15 | Sink: lang:std; ::realloc; Argument[2]; alloc-layout | -| 16 | Sink: lang:std; ::realloc; Argument[2]; alloc-size | -| 17 | Sink: repo:https://github.com/rust-lang/libc:libc; ::aligned_alloc; Argument[1]; alloc-size | -| 18 | Sink: repo:https://github.com/rust-lang/libc:libc; ::calloc; Argument[0,1]; alloc-size | -| 19 | Sink: repo:https://github.com/rust-lang/libc:libc; ::malloc; Argument[0]; alloc-size | -| 20 | Sink: repo:https://github.com/rust-lang/libc:libc; ::realloc; Argument[1]; alloc-size | -| 21 | Source: lang:std; crate::env::args; ReturnValue.Element; commandargs | -| 22 | Summary: lang:core; ::align_to; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 23 | Summary: lang:core; ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 24 | Summary: lang:core; ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 25 | Summary: lang:core; ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 26 | Summary: lang:core; ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 27 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue.Field[core::alloc::layout::Layout::size]; value | -| 28 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | -| 29 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | -| 30 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | -| 31 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 32 | Summary: lang:core; ::size; Argument[self].Field[core::alloc::layout::Layout::size]; ReturnValue; value | -| 33 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | -| 34 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 35 | Summary: lang:core; ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 36 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 37 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | -| 38 | Summary: lang:core; crate::cmp::max; Argument[0]; ReturnValue; value | -| 39 | Summary: lang:core; crate::cmp::min; Argument[0]; ReturnValue; value | -| 40 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 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: lang:alloc; ::allocate; Argument[0]; alloc-layout | +| 16 | Sink: lang:alloc; ::allocate_zeroed; Argument[0]; alloc-layout | +| 17 | Sink: lang:alloc; crate::alloc::alloc; Argument[0]; alloc-layout | +| 18 | Sink: lang:alloc; crate::alloc::alloc_zeroed; Argument[0]; alloc-layout | +| 19 | Sink: lang:alloc; crate::alloc::realloc; Argument[2]; alloc-size | +| 20 | Sink: lang:std; ::allocate; Argument[0]; alloc-layout | +| 21 | Sink: lang:std; ::allocate_zeroed; Argument[0]; alloc-layout | +| 22 | Sink: lang:std; ::grow; Argument[2]; alloc-layout | +| 23 | Sink: lang:std; ::grow_zeroed; Argument[2]; alloc-layout | +| 24 | Sink: lang:std; ::alloc; Argument[0]; alloc-layout | +| 25 | Sink: lang:std; ::alloc_zeroed; Argument[0]; alloc-layout | +| 26 | Sink: repo:https://github.com/rust-lang/libc:libc; ::aligned_alloc; Argument[1]; alloc-size | +| 27 | Sink: repo:https://github.com/rust-lang/libc:libc; ::calloc; Argument[0,1]; alloc-size | +| 28 | Sink: repo:https://github.com/rust-lang/libc:libc; ::malloc; Argument[0]; alloc-size | +| 29 | Sink: repo:https://github.com/rust-lang/libc:libc; ::realloc; Argument[1]; alloc-size | +| 30 | Source: lang:std; crate::env::args; ReturnValue.Element; commandargs | +| 31 | Summary: ::from_size_align_unchecked; Argument[0]; ReturnValue.Field[core::alloc::layout::Layout::size]; value | +| 32 | Summary: ::size; Argument[self].Field[core::alloc::layout::Layout::size]; ReturnValue; value | +| 33 | Summary: ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 34 | Summary: ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 35 | Summary: ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 36 | Summary: ::mul; Argument[0]; ReturnValue; taint | +| 37 | Summary: ::mul; Argument[self]; ReturnValue; taint | +| 38 | Summary: core::cmp::max; Argument[0]; ReturnValue; value | +| 39 | Summary: core::cmp::min; Argument[0]; ReturnValue; value | +| 40 | Summary: lang:core; ::align_to; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 41 | Summary: lang:core; ::array; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 42 | Summary: lang:core; ::extend; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 43 | Summary: lang:core; ::extend_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 44 | Summary: lang:core; ::from_size_align; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 45 | Summary: lang:core; ::from_size_align_unchecked; Argument[0]; ReturnValue; taint | +| 46 | Summary: lang:core; ::pad_to_align; Argument[self]; ReturnValue; taint | +| 47 | Summary: lang:core; ::repeat; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)].Field[0]; taint | +| 48 | Summary: lang:core; ::repeat_packed; Argument[0]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 49 | Summary: lang:core; ::size; Argument[self]; ReturnValue; taint | +| 50 | Summary: lang:core; ::parse; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 51 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | nodes | main.rs:12:36:12:43 | ...: usize | semmle.label | ...: usize | | main.rs:18:13:18:31 | ...::realloc | semmle.label | ...::realloc | @@ -341,10 +367,13 @@ nodes | main.rs:30:31:30:32 | l4 | semmle.label | l4 | | main.rs:32:9:32:10 | l5 | semmle.label | l5 | | main.rs:32:14:32:118 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | +| main.rs:32:60:32:60 | v | semmle.label | v | | main.rs:32:60:32:89 | ... * ... | semmle.label | ... * ... | | main.rs:33:13:33:29 | ...::alloc | semmle.label | ...::alloc | | main.rs:33:31:33:32 | l5 | semmle.label | l5 | | main.rs:35:9:35:10 | s6 | semmle.label | s6 | +| main.rs:35:15:35:49 | ... * ... | semmle.label | ... * ... | +| main.rs:35:49:35:49 | v | semmle.label | v | | main.rs:36:9:36:10 | l6 | semmle.label | l6 | | main.rs:36:9:36:10 | l6 [Layout.size] | semmle.label | l6 [Layout.size] | | main.rs:36:14:36:65 | ...::from_size_align_unchecked(...) | semmle.label | ...::from_size_align_unchecked(...) | @@ -506,10 +535,16 @@ nodes | main.rs:223:26:223:26 | v | semmle.label | v | | 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: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 | +| 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: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() | @@ -532,4 +567,5 @@ nodes | 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 | 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 f0b70190042..0b39862ef32 100644 --- a/rust/ql/test/query-tests/security/CWE-770/main.rs +++ b/rust/ql/test/query-tests/security/CWE-770/main.rs @@ -227,8 +227,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_in(v, std::alloc::Global).unwrap(); // $ MISSING: Alert[rust/uncontrolled-allocation-size] - let _ = Vec::::with_capacity_in(v, std::alloc::Global); // $ MISSING: Alert[rust/uncontrolled-allocation-size] + 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 let mut v1 = Vec::::with_capacity(100); v1.reserve(v); // $ MISSING: Alert[rust/uncontrolled-allocation-size] diff --git a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected index f4f85a37d7c..f0c67e6f5d8 100644 --- a/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected +++ b/rust/ql/test/query-tests/security/CWE-825/AccessInvalidPointer.expected @@ -18,47 +18,49 @@ | deallocation.rs:248:18:248:20 | ptr | deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:248:18:248:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:242:3:242:25 | ...::drop_in_place | invalid | | deallocation.rs:248:18:248:20 | ptr | deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:248:18:248:20 | ptr | This operation dereferences a pointer that may be $@. | deallocation.rs:242:3:242:25 | ...::drop_in_place | invalid | edges -| deallocation.rs:20:3:20:21 | ...::dealloc | deallocation.rs:20:23:20:24 | [post] m1 | provenance | Src:MaD:3 MaD:3 | +| deallocation.rs:20:3:20:21 | ...::dealloc | deallocation.rs:20:23:20:24 | [post] m1 | provenance | Src:MaD:5 MaD:5 | | deallocation.rs:20:23:20:24 | [post] m1 | deallocation.rs:26:15:26:16 | m1 | provenance | | | deallocation.rs:20:23:20:24 | [post] m1 | deallocation.rs:37:35:37:36 | m1 | provenance | | | deallocation.rs:20:23:20:24 | [post] m1 | deallocation.rs:44:6:44:7 | m1 | provenance | | | deallocation.rs:20:23:20:24 | [post] m1 | deallocation.rs:49:27:49:28 | m1 | provenance | | | deallocation.rs:37:35:37:36 | m1 | deallocation.rs:37:14:37:33 | ...::read::<...> | provenance | MaD:1 Sink:MaD:1 | | deallocation.rs:49:27:49:28 | m1 | deallocation.rs:49:5:49:25 | ...::write::<...> | provenance | MaD:2 Sink:MaD:2 | -| deallocation.rs:70:3:70:21 | ...::dealloc | deallocation.rs:70:23:70:35 | [post] m2 as ... | provenance | Src:MaD:3 MaD:3 | +| deallocation.rs:70:3:70:21 | ...::dealloc | deallocation.rs:70:23:70:35 | [post] m2 as ... | provenance | Src:MaD:5 MaD:5 | | deallocation.rs:70:23:70:35 | [post] m2 as ... | deallocation.rs:76:16:76:17 | m2 | provenance | | | deallocation.rs:70:23:70:35 | [post] m2 as ... | deallocation.rs:81:16:81:17 | m2 | provenance | | | deallocation.rs:70:23:70:35 | [post] m2 as ... | deallocation.rs:86:7:86:8 | m2 | provenance | | | deallocation.rs:70:23:70:35 | [post] m2 as ... | deallocation.rs:90:7:90:8 | m2 | provenance | | | deallocation.rs:70:23:70:35 | [post] m2 as ... | deallocation.rs:95:33:95:34 | m2 | provenance | | | deallocation.rs:95:33:95:34 | m2 | deallocation.rs:95:5:95:31 | ...::write::<...> | provenance | MaD:2 Sink:MaD:2 | -| deallocation.rs:112:3:112:12 | ...::free | deallocation.rs:112:14:112:40 | [post] my_ptr as ... | provenance | Src:MaD:8 MaD:8 | +| deallocation.rs:112:3:112:12 | ...::free | deallocation.rs:112:14:112:40 | [post] my_ptr as ... | provenance | Src:MaD:10 MaD:10 | | deallocation.rs:112:14:112:40 | [post] my_ptr as ... | deallocation.rs:115:13:115:18 | my_ptr | provenance | | | deallocation.rs:123:6:123:7 | p1 | deallocation.rs:130:14:130:15 | p1 | provenance | | -| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | -| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:4 MaD:4 | +| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:6 MaD:6 | +| deallocation.rs:123:23:123:40 | ...::dangling | deallocation.rs:123:23:123:42 | ...::dangling(...) | provenance | Src:MaD:3 MaD:3 | | deallocation.rs:123:23:123:42 | ...::dangling(...) | deallocation.rs:123:6:123:7 | p1 | provenance | | | deallocation.rs:124:6:124:7 | p2 | deallocation.rs:131:14:131:15 | p2 | provenance | | -| deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:124:21:124:44 | ...::dangling_mut(...) | provenance | Src:MaD:5 MaD:5 | +| deallocation.rs:124:21:124:42 | ...::dangling_mut | deallocation.rs:124:21:124:44 | ...::dangling_mut(...) | provenance | Src:MaD:7 MaD:7 | | deallocation.rs:124:21:124:44 | ...::dangling_mut(...) | deallocation.rs:124:6:124:7 | p2 | provenance | | | deallocation.rs:125:6:125:7 | p3 | deallocation.rs:132:14:132:15 | p3 | provenance | | -| deallocation.rs:125:23:125:36 | ...::null | deallocation.rs:125:23:125:38 | ...::null(...) | provenance | Src:MaD:7 MaD:7 | +| deallocation.rs:125:23:125:36 | ...::null | deallocation.rs:125:23:125:38 | ...::null(...) | provenance | Src:MaD:9 MaD:9 | | deallocation.rs:125:23:125:38 | ...::null(...) | deallocation.rs:125:6:125:7 | p3 | provenance | | -| deallocation.rs:176:3:176:25 | ...::drop_in_place | deallocation.rs:176:27:176:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:176:3:176:25 | ...::drop_in_place | deallocation.rs:176:27:176:28 | [post] p1 | provenance | Src:MaD:6 MaD:6 | +| deallocation.rs:176:3:176:25 | ...::drop_in_place | deallocation.rs:176:27:176:28 | [post] p1 | provenance | Src:MaD:8 MaD:8 | +| deallocation.rs:176:3:176:25 | ...::drop_in_place | deallocation.rs:176:27:176:28 | [post] p1 | provenance | Src:MaD:4 MaD:4 | | deallocation.rs:176:27:176:28 | [post] p1 | deallocation.rs:180:15:180:16 | p1 | provenance | | -| deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:242:27:242:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | -| deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:242:27:242:29 | [post] ptr | provenance | Src:MaD:6 MaD:6 | +| deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:242:27:242:29 | [post] ptr | provenance | Src:MaD:8 MaD:8 | +| deallocation.rs:242:3:242:25 | ...::drop_in_place | deallocation.rs:242:27:242:29 | [post] ptr | provenance | Src:MaD:4 MaD:4 | | deallocation.rs:242:27:242:29 | [post] ptr | deallocation.rs:248:18:248:20 | ptr | provenance | | models | 1 | Sink: lang:core; crate::ptr::read; Argument[0]; pointer-access | | 2 | Sink: lang:core; crate::ptr::write; Argument[0]; pointer-access | -| 3 | Source: lang:alloc; crate::alloc::dealloc; Argument[0]; pointer-invalidate | -| 4 | Source: lang:core; crate::ptr::dangling; ReturnValue; pointer-invalidate | -| 5 | Source: lang:core; crate::ptr::dangling_mut; ReturnValue; pointer-invalidate | -| 6 | Source: lang:core; crate::ptr::drop_in_place; Argument[0]; pointer-invalidate | -| 7 | Source: lang:core; crate::ptr::null; ReturnValue; pointer-invalidate | -| 8 | Source: repo:https://github.com/rust-lang/libc:libc; ::free; Argument[0]; pointer-invalidate | +| 3 | Source: core::ptr::dangling; ReturnValue; pointer-invalidate | +| 4 | Source: core::ptr::drop_in_place; Argument[0]; pointer-invalidate | +| 5 | Source: lang:alloc; crate::alloc::dealloc; Argument[0]; pointer-invalidate | +| 6 | Source: lang:core; crate::ptr::dangling; ReturnValue; pointer-invalidate | +| 7 | Source: lang:core; crate::ptr::dangling_mut; ReturnValue; pointer-invalidate | +| 8 | Source: lang:core; crate::ptr::drop_in_place; Argument[0]; pointer-invalidate | +| 9 | Source: lang:core; crate::ptr::null; ReturnValue; pointer-invalidate | +| 10 | Source: repo:https://github.com/rust-lang/libc:libc; ::free; Argument[0]; pointer-invalidate | nodes | deallocation.rs:20:3:20:21 | ...::dealloc | semmle.label | ...::dealloc | | deallocation.rs:20:23:20:24 | [post] m1 | semmle.label | [post] m1 | From b5a7f87bbcbbea6d386e4753549a07339344e623 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 16:17:18 +0200 Subject: [PATCH 141/340] Rust: fix `debug/CaptureSummaryModelsPartialPath.ql` --- .../modelgenerator/debug/CaptureSummaryModelsPartialPath.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index b10b638129b..83f36617bce 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -23,6 +23,6 @@ from where PartialFlow::partialFlow(source, sink, _) and p = source.getNode() and - p.asParameter() = api.getParamList().getAParamBase() + p.asParameter() = api.asFunction().getParamList().getAParamBase() select sink.getNode(), source, sink, "There is flow from a $@ to $@.", source.getNode(), "parameter", sink.getNode(), "intermediate value" From 244bf428a187fc615c3477307b7c8b8fbd964cee Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 16:11:27 +0200 Subject: [PATCH 142/340] JS: Fixed typo. --- javascript/ql/src/DOM/PseudoEval.ql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/DOM/PseudoEval.ql b/javascript/ql/src/DOM/PseudoEval.ql index d2255cf594d..9ea1e9d2fb4 100644 --- a/javascript/ql/src/DOM/PseudoEval.ql +++ b/javascript/ql/src/DOM/PseudoEval.ql @@ -8,7 +8,7 @@ * @tags quality * maintainability * readability - * external/cwe/cwe-67 + * external/cwe/cwe-676 * @precision very-high */ From c18fe303d026bd9b354655c625de1bcdbe1344cc Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 16:27:00 +0200 Subject: [PATCH 143/340] JS: Changed `MissingThisQualifier` to `reliability` and `correctness` --- javascript/ql/src/Declarations/MissingThisQualifier.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Declarations/MissingThisQualifier.ql b/javascript/ql/src/Declarations/MissingThisQualifier.ql index f5e50df9aa7..3bdf1080b11 100644 --- a/javascript/ql/src/Declarations/MissingThisQualifier.ql +++ b/javascript/ql/src/Declarations/MissingThisQualifier.ql @@ -5,8 +5,8 @@ * @problem.severity error * @id js/missing-this-qualifier * @tags quality - * maintainability - * readability + * reliability + * correctness * methods * @precision high */ From 2bf5a70884bc4b7b89dca41635bda19f4700fcf7 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 17:08:33 +0200 Subject: [PATCH 144/340] Rust: update model generator tests --- .../modelgenerator/CaptureSinkModels.ext.yml | 4 +- .../modelgenerator/CaptureSinkModels.ql | 4 +- .../CaptureSourceModels.ext.yml | 4 +- .../modelgenerator/CaptureSourceModels.ql | 4 +- .../modelgenerator/CaptureSummaryModels.ql | 6 +- .../test/utils-tests/modelgenerator/option.rs | 144 +++++++++--------- .../test/utils-tests/modelgenerator/sinks.rs | 2 +- .../utils-tests/modelgenerator/sources.rs | 4 +- .../utils-tests/modelgenerator/summaries.rs | 30 ++-- 9 files changed, 105 insertions(+), 97 deletions(-) diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ext.yml b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ext.yml index afb95025f38..707f5c2e6d9 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ext.yml +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ext.yml @@ -1,6 +1,6 @@ extensions: - addsTo: pack: codeql/rust-all - extensible: sinkModelDeprecated + extensible: sinkModel data: - - ["repo::test", "crate::sinks::known_sink", "Argument[0]", "test-sink", "manual"] + - ["test::sinks::known_sink", "Argument[0]", "test-sink", "manual"] diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql index 4b8041fb444..1e297dbc635 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql @@ -4,7 +4,9 @@ import SinkModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Function f) { result = Heuristic::captureSink(f) } + string getCapturedModel(Function f) { + exists(QualifiedCallable qc | f = qc.asFunction() | result = Heuristic::captureSink(qc)) + } string getKind() { result = "sink" } } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ext.yml b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ext.yml index a4ead6e478a..251b58c7a39 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ext.yml +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ext.yml @@ -1,6 +1,6 @@ extensions: - addsTo: pack: codeql/rust-all - extensible: sourceModelDeprecated + extensible: sourceModel data: - - ["repo::test", "crate::sources::known_source", "ReturnValue", "test-source", "manual"] + - ["test::sources::known_source", "ReturnValue", "test-source", "manual"] diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql index c535ce78704..d698256c903 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql @@ -5,7 +5,9 @@ import utils.test.InlineMadTest import codeql.rust.dataflow.internal.ModelsAsData module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Function c) { result = Heuristic::captureSource(c) } + string getCapturedModel(Function c) { + exists(QualifiedCallable qc | c = qc.asFunction() | result = Heuristic::captureSource(qc)) + } string getKind() { result = "source" } } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql index fe5e532394b..5099679e90a 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql @@ -4,7 +4,11 @@ import SummaryModels import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { - string getCapturedModel(Function f) { result = ContentSensitive::captureFlow(f, _, _, _, _) } + string getCapturedModel(Function f) { + exists(QualifiedCallable qc | f = qc.asFunction() | + result = ContentSensitive::captureFlow(qc, _, _, _, _) + ) + } string getKind() { result = "summary" } } diff --git a/rust/ql/test/utils-tests/modelgenerator/option.rs b/rust/ql/test/utils-tests/modelgenerator/option.rs index 4cb8bff2bc9..13e49806f93 100644 --- a/rust/ql/test/utils-tests/modelgenerator/option.rs +++ b/rust/ql/test/utils-tests/modelgenerator/option.rs @@ -8,9 +8,9 @@ use core::pin::Pin; use core::ptr; use core::{hint, mem}; -// summary=repo::test;crate::option::replace;Argument[0].Reference;ReturnValue;value;dfc-generated -// summary=repo::test;crate::option::replace;Argument[1];Argument[0].Reference;value;dfc-generated -// sink=repo::test;crate::option::replace;Argument[0];pointer-access;df-generated +// summary=test::option::replace;Argument[0].Reference;ReturnValue;value;dfc-generated +// summary=test::option::replace;Argument[1];Argument[0].Reference;value;dfc-generated +// sink=test::option::replace;Argument[0];pointer-access;df-generated pub fn replace(dest: &mut T, src: T) -> T { unsafe { let result = ptr::read(dest); @@ -34,8 +34,8 @@ impl MyOption { matches!(*self, MySome(_)) } - // summary=repo::test;::is_some_and;Argument[0].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::is_some_and;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated + // summary=::is_some_and;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::is_some_and;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated pub fn is_some_and(self, f: impl FnOnce(T) -> bool) -> bool { match self { MyNone => false, @@ -47,8 +47,8 @@ impl MyOption { !self.is_some() } - // summary=repo::test;::is_none_or;Argument[0].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::is_none_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated + // summary=::is_none_or;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::is_none_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated pub fn is_none_or(self, f: impl FnOnce(T) -> bool) -> bool { match self { MyNone => true, @@ -56,7 +56,7 @@ impl MyOption { } } - // summary=repo::test;::as_ref;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated + // summary=::as_ref;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated pub fn as_ref(&self) -> MyOption<&T> { match *self { MySome(ref x) => MySome(x), @@ -64,7 +64,7 @@ impl MyOption { } } - // summary=repo::test;::as_mut;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated + // summary=::as_mut;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated pub fn as_mut(&mut self) -> MyOption<&mut T> { match *self { MySome(ref mut x) => MySome(x), @@ -96,7 +96,7 @@ impl MyOption { } } - // summary=repo::test;::unwrap;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::unwrap;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated pub fn unwrap(self) -> T { match self { MySome(val) => val, @@ -104,8 +104,8 @@ impl MyOption { } } - // summary=repo::test;::unwrap_or;Argument[0];ReturnValue;value;dfc-generated - // summary=repo::test;::unwrap_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::unwrap_or;Argument[0];ReturnValue;value;dfc-generated + // summary=::unwrap_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated pub fn unwrap_or(self, default: T) -> T { match self { MySome(x) => x, @@ -113,8 +113,8 @@ impl MyOption { } } - // summary=repo::test;::unwrap_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated - // summary=repo::test;::unwrap_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::unwrap_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::unwrap_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated pub fn unwrap_or_else(self, f: F) -> T where F: FnOnce() -> T, @@ -125,7 +125,7 @@ impl MyOption { } } - // summary=repo::test;::unwrap_or_default;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::unwrap_or_default;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated pub fn unwrap_or_default(self) -> T where T: Default, @@ -135,7 +135,7 @@ impl MyOption { MyNone => T::default(), } } - // summary=repo::test;::unwrap_unchecked;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::unwrap_unchecked;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated #[track_caller] pub unsafe fn unwrap_unchecked(self) -> T { match self { @@ -147,8 +147,8 @@ impl MyOption { // Transforming contained values - // summary=repo::test;::map;Argument[0].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated - // summary=repo::test;::map;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated + // summary=::map;Argument[0].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::map;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated pub fn map(self, f: F) -> MyOption where F: FnOnce(T) -> U, @@ -159,7 +159,7 @@ impl MyOption { } } - // summary=repo::test;::inspect;Argument[self];ReturnValue;value;dfc-generated + // summary=::inspect;Argument[self];ReturnValue;value;dfc-generated // MISSING: Due to `ref` pattern. pub fn inspect(self, f: F) -> Self { if let MySome(ref x) = self { @@ -169,9 +169,9 @@ impl MyOption { self } - // summary=repo::test;::map_or;Argument[0];ReturnValue;value;dfc-generated - // summary=repo::test;::map_or;Argument[1].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::map_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated + // summary=::map_or;Argument[0];ReturnValue;value;dfc-generated + // summary=::map_or;Argument[1].ReturnValue;ReturnValue;value;dfc-generated + // summary=::map_or;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated pub fn map_or(self, default: U, f: F) -> U where F: FnOnce(T) -> U, @@ -182,9 +182,9 @@ impl MyOption { } } - // summary=repo::test;::map_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::map_or_else;Argument[1].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::map_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated + // summary=::map_or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::map_or_else;Argument[1].ReturnValue;ReturnValue;value;dfc-generated + // summary=::map_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated pub fn map_or_else(self, default: D, f: F) -> U where D: FnOnce() -> U, @@ -196,8 +196,8 @@ impl MyOption { } } - // summary=repo::test;::ok_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated - // summary=repo::test;::ok_or;Argument[0];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated + // summary=::ok_or;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated + // summary=::ok_or;Argument[0];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated pub fn ok_or(self, err: E) -> Result { match self { MySome(v) => Ok(v), @@ -205,8 +205,8 @@ impl MyOption { } } - // summary=repo::test;::ok_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated - // summary=repo::test;::ok_or_else;Argument[0].ReturnValue;ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated + // summary=::ok_or_else;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[core::result::Result::Ok(0)];value;dfc-generated + // summary=::ok_or_else;Argument[0].ReturnValue;ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated pub fn ok_or_else(self, err: F) -> Result where F: FnOnce() -> E, @@ -233,7 +233,7 @@ impl MyOption { self.as_mut().map(|t| t.deref_mut()) } - // summary=repo::test;::and;Argument[0];ReturnValue;value;dfc-generated + // summary=::and;Argument[0];ReturnValue;value;dfc-generated pub fn and(self, optb: MyOption) -> MyOption { match self { MySome(_) => optb, @@ -241,8 +241,8 @@ impl MyOption { } } - // summary=repo::test;::and_then;Argument[0].ReturnValue;ReturnValue;value;dfc-generated - // summary=repo::test;::and_then;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated + // summary=::and_then;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::and_then;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0];value;dfc-generated pub fn and_then(self, f: F) -> MyOption where F: FnOnce(T) -> MyOption, @@ -266,8 +266,8 @@ impl MyOption { MyNone } - // summary=repo::test;::or;Argument[0];ReturnValue;value;dfc-generated - // summary=repo::test;::or;Argument[self];ReturnValue;value;dfc-generated + // summary=::or;Argument[0];ReturnValue;value;dfc-generated + // summary=::or;Argument[self];ReturnValue;value;dfc-generated pub fn or(self, optb: MyOption) -> MyOption { match self { x @ MySome(_) => x, @@ -275,8 +275,8 @@ impl MyOption { } } - // summary=repo::test;::or_else;Argument[self];ReturnValue;value;dfc-generated - // summary=repo::test;::or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated + // summary=::or_else;Argument[self];ReturnValue;value;dfc-generated + // summary=::or_else;Argument[0].ReturnValue;ReturnValue;value;dfc-generated pub fn or_else(self, f: F) -> MyOption where F: FnOnce() -> MyOption, @@ -287,8 +287,8 @@ impl MyOption { } } - // summary=repo::test;::xor;Argument[0];ReturnValue;value;dfc-generated - // summary=repo::test;::xor;Argument[self];ReturnValue;value;dfc-generated + // summary=::xor;Argument[0];ReturnValue;value;dfc-generated + // summary=::xor;Argument[self];ReturnValue;value;dfc-generated pub fn xor(self, optb: MyOption) -> MyOption { match (self, optb) { (a @ MySome(_), MyNone) => a, @@ -297,10 +297,10 @@ impl MyOption { } } - // summary=repo::test;::insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated - // summary=repo::test;::insert;Argument[0];ReturnValue.Reference;value;dfc-generated + // summary=::insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::insert;Argument[0];ReturnValue.Reference;value;dfc-generated // The content of `self` is overwritten so it does not flow to the return value. - // SPURIOUS-summary=repo::test;::insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated + // SPURIOUS-summary=::insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated pub fn insert(&mut self, value: T) -> &mut T { *self = MySome(value); @@ -308,14 +308,14 @@ impl MyOption { unsafe { self.as_mut().unwrap_unchecked() } } - // summary=repo::test;::get_or_insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated - // summary=repo::test;::get_or_insert;Argument[0];ReturnValue.Reference;value;dfc-generated - // summary=repo::test;::get_or_insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated + // summary=::get_or_insert;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::get_or_insert;Argument[0];ReturnValue.Reference;value;dfc-generated + // summary=::get_or_insert;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated pub fn get_or_insert(&mut self, value: T) -> &mut T { self.get_or_insert_with(|| value) } - // summary=repo::test;::get_or_insert_default;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated + // summary=::get_or_insert_default;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated pub fn get_or_insert_default(&mut self) -> &mut T where T: Default, @@ -323,7 +323,7 @@ impl MyOption { self.get_or_insert_with(T::default) } - // summary=repo::test;::get_or_insert_with;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated + // summary=::get_or_insert_with;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Reference;value;dfc-generated // MISSING: Mutating `self` parameter. pub fn get_or_insert_with(&mut self, f: F) -> &mut T where @@ -338,16 +338,16 @@ impl MyOption { unsafe { self.as_mut().unwrap_unchecked() } } - // summary=repo::test;::take;Argument[self].Reference;ReturnValue;value;dfc-generated - // sink=repo::test;::take;Argument[self];pointer-access;df-generated + // summary=::take;Argument[self].Reference;ReturnValue;value;dfc-generated + // sink=::take;Argument[self];pointer-access;df-generated pub fn take(&mut self) -> MyOption { // FIXME(const-hack) replace `mem::replace` by `mem::take` when the latter is const ready replace(self, MyNone) } - // summary=repo::test;::take_if;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0].Reference;value;dfc-generated - // summary=repo::test;::take_if;Argument[self].Reference;ReturnValue;value;dfc-generated - // sink=repo::test;::take_if;Argument[self];pointer-access;df-generated + // summary=::take_if;Argument[self].Reference.Field[test::option::MyOption::MySome(0)];Argument[0].Parameter[0].Reference;value;dfc-generated + // summary=::take_if;Argument[self].Reference;ReturnValue;value;dfc-generated + // sink=::take_if;Argument[self];pointer-access;df-generated pub fn take_if

    (&mut self, predicate: P) -> MyOption where P: FnOnce(&mut T) -> bool, @@ -359,15 +359,15 @@ impl MyOption { } } - // summary=repo::test;::replace;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated - // summary=repo::test;::replace;Argument[self].Reference;ReturnValue;value;dfc-generated - // sink=repo::test;::replace;Argument[self];pointer-access;df-generated + // summary=::replace;Argument[0];Argument[self].Reference.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::replace;Argument[self].Reference;ReturnValue;value;dfc-generated + // sink=::replace;Argument[self];pointer-access;df-generated pub fn replace(&mut self, value: T) -> MyOption { replace(self, MySome(value)) } - // summary=repo::test;::zip;Argument[0].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[1];value;dfc-generated - // summary=repo::test;::zip;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[0];value;dfc-generated + // summary=::zip;Argument[0].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[1];value;dfc-generated + // summary=::zip;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Field[0];value;dfc-generated pub fn zip(self, other: MyOption) -> MyOption<(T, U)> { match (self, other) { (MySome(a), MySome(b)) => MySome((a, b)), @@ -375,9 +375,9 @@ impl MyOption { } } - // summary=repo::test;::zip_with;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated - // summary=repo::test;::zip_with;Argument[0].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[1];value;dfc-generated - // summary=repo::test;::zip_with;Argument[1].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::zip_with;Argument[self].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[0];value;dfc-generated + // summary=::zip_with;Argument[0].Field[test::option::MyOption::MySome(0)];Argument[1].Parameter[1];value;dfc-generated + // summary=::zip_with;Argument[1].ReturnValue;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn zip_with(self, other: MyOption, f: F) -> MyOption where F: FnOnce(T, U) -> R, @@ -390,8 +390,8 @@ impl MyOption { } impl MyOption<(T, U)> { - // summary=repo::test;::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[0];ReturnValue.Field[0].Field[test::option::MyOption::MySome(0)];value;dfc-generated - // summary=repo::test;::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[1];ReturnValue.Field[1].Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[0];ReturnValue.Field[0].Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::unzip;Argument[self].Field[test::option::MyOption::MySome(0)].Field[1];ReturnValue.Field[1].Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn unzip(self) -> (MyOption, MyOption) { match self { MySome((a, b)) => (MySome(a), MySome(b)), @@ -401,7 +401,7 @@ impl MyOption<(T, U)> { } impl MyOption<&T> { - // summary=repo::test;::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn copied(self) -> MyOption where T: Copy, @@ -414,7 +414,7 @@ impl MyOption<&T> { } } - // MISSING: summary=repo::test;::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // MISSING: summary=::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn cloned(self) -> MyOption where T: Clone, @@ -427,7 +427,7 @@ impl MyOption<&T> { } impl MyOption<&mut T> { - // summary=repo::test;::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::copied;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn copied(self) -> MyOption where T: Copy, @@ -438,7 +438,7 @@ impl MyOption<&mut T> { } } - // MISSING: summary=repo::test;::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // MISSING: summary=::cloned;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn cloned(self) -> MyOption where T: Clone, @@ -451,8 +451,8 @@ impl MyOption<&mut T> { } impl MyOption> { - // summary=repo::test;::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Err(0)];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated - // summary=repo::test;::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Ok(0)];ReturnValue.Field[core::result::Result::Ok(0)].Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Err(0)];ReturnValue.Field[core::result::Result::Err(0)];value;dfc-generated + // summary=::transpose;Argument[self].Field[test::option::MyOption::MySome(0)].Field[core::result::Result::Ok(0)];ReturnValue.Field[core::result::Result::Ok(0)].Field[test::option::MyOption::MySome(0)];value;dfc-generated pub fn transpose(self) -> Result, E> { match self { MySome(Ok(x)) => Ok(MySome(x)), @@ -466,7 +466,7 @@ impl Clone for MyOption where T: Clone, { - // MISSING: summary=repo::test;::clone;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // MISSING: summary=::clone;Argument[self].Field[test::option::MyOption::MySome(0)].Reference;ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated fn clone(&self) -> Self { match self { MySome(x) => MySome(x.clone()), @@ -490,21 +490,21 @@ impl Default for MyOption { } impl From for MyOption { - // summary=repo::test;::from;Argument[0];ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated + // summary=::from;Argument[0];ReturnValue.Field[test::option::MyOption::MySome(0)];value;dfc-generated fn from(val: T) -> MyOption { MySome(val) } } impl<'a, T> From<&'a MyOption> for MyOption<&'a T> { - // summary=repo::test;::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated + // summary=::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated fn from(o: &'a MyOption) -> MyOption<&'a T> { o.as_ref() } } impl<'a, T> From<&'a mut MyOption> for MyOption<&'a mut T> { - // summary=repo::test;::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated + // summary=::from;Argument[0].Reference.Field[test::option::MyOption::MySome(0)];ReturnValue.Field[test::option::MyOption::MySome(0)].Reference;value;dfc-generated fn from(o: &'a mut MyOption) -> MyOption<&'a mut T> { o.as_mut() } @@ -524,7 +524,7 @@ impl PartialEq for MyOption { } impl MyOption> { - // summary=repo::test;::flatten;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated + // summary=::flatten;Argument[self].Field[test::option::MyOption::MySome(0)];ReturnValue;value;dfc-generated pub fn flatten(self) -> MyOption { // FIXME(const-hack): could be written with `and_then` match self { diff --git a/rust/ql/test/utils-tests/modelgenerator/sinks.rs b/rust/ql/test/utils-tests/modelgenerator/sinks.rs index fff593826b3..1a7c945961b 100644 --- a/rust/ql/test/utils-tests/modelgenerator/sinks.rs +++ b/rust/ql/test/utils-tests/modelgenerator/sinks.rs @@ -3,7 +3,7 @@ fn known_sink(n: i64) { () } -// sink=repo::test;crate::sinks::derived_sink;Argument[1];test-sink;df-generated +// sink=test::sinks::derived_sink;Argument[1];test-sink;df-generated pub fn derived_sink(c: bool, n: i64) -> i64 { if c { known_sink(n); diff --git a/rust/ql/test/utils-tests/modelgenerator/sources.rs b/rust/ql/test/utils-tests/modelgenerator/sources.rs index a9c88843024..7ac8f19d9c7 100644 --- a/rust/ql/test/utils-tests/modelgenerator/sources.rs +++ b/rust/ql/test/utils-tests/modelgenerator/sources.rs @@ -3,8 +3,8 @@ fn known_source(n: i64) -> i64 { n } -// source=repo::test;crate::sources::derived_source;ReturnValue;test-source;df-generated -// summary=repo::test;crate::sources::derived_source;Argument[1];ReturnValue;value;dfc-generated +// source=test::sources::derived_source;ReturnValue;test-source;df-generated +// summary=test::sources::derived_source;Argument[1];ReturnValue;value;dfc-generated pub fn derived_source(c: bool, n: i64) -> i64 { if c { known_source(n) diff --git a/rust/ql/test/utils-tests/modelgenerator/summaries.rs b/rust/ql/test/utils-tests/modelgenerator/summaries.rs index 71ecbf6398d..491ecc3c81d 100644 --- a/rust/ql/test/utils-tests/modelgenerator/summaries.rs +++ b/rust/ql/test/utils-tests/modelgenerator/summaries.rs @@ -1,4 +1,4 @@ -// summary=repo::test;crate::summaries::identity;Argument[0];ReturnValue;value;dfc-generated +// summary=test::summaries::identity;Argument[0];ReturnValue;value;dfc-generated pub fn identity(a: A) -> A { a } @@ -16,12 +16,12 @@ pub enum Either { use Either::*; impl Either { - // summary=repo::test;::new;Argument[0];ReturnValue.Field[test::summaries::Either::Right(0)];value;dfc-generated + // summary=::new;Argument[0];ReturnValue.Field[test::summaries::Either::Right(0)];value;dfc-generated pub fn new(b: B) -> Self { Right(b) } - // summary=repo::test;::unwrap;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue;value;dfc-generated + // summary=::unwrap;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue;value;dfc-generated pub fn unwrap(self) -> B { match self { Left(a) => panic!("Left cannot be unwrapped"), @@ -29,10 +29,10 @@ impl Either { } } - // summary=repo::test;::zip;Argument[0].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated - // summary=repo::test;::zip;Argument[0].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[1];value;dfc-generated - // summary=repo::test;::zip;Argument[self].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated - // summary=repo::test;::zip;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[0];value;dfc-generated + // summary=::zip;Argument[0].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated + // summary=::zip;Argument[0].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[1];value;dfc-generated + // summary=::zip;Argument[self].Field[test::summaries::Either::Left(0)];ReturnValue.Field[test::summaries::Either::Left(0)];value;dfc-generated + // summary=::zip;Argument[self].Field[test::summaries::Either::Right(0)];ReturnValue.Field[test::summaries::Either::Right(0)].Field[0];value;dfc-generated pub fn zip(self, other: Either) -> Either { match (self, other) { (Right(b), Right(d)) => Right((b, d)), @@ -48,20 +48,20 @@ pub struct MyStruct { } impl MyStruct { - // summary=repo::test;::new;Argument[0];ReturnValue.Field[test::summaries::MyStruct::foo];value;dfc-generated - // summary=repo::test;::new;Argument[1];ReturnValue.Field[test::summaries::MyStruct::bar];value;dfc-generated + // summary=::new;Argument[0];ReturnValue.Field[test::summaries::MyStruct::foo];value;dfc-generated + // summary=::new;Argument[1];ReturnValue.Field[test::summaries::MyStruct::bar];value;dfc-generated pub fn new(a: i64, b: f64) -> MyStruct { MyStruct { foo: a, bar: b } } - // summary=repo::test;::get_foo;Argument[self].Field[test::summaries::MyStruct::foo];ReturnValue;value;dfc-generated + // summary=::get_foo;Argument[self].Field[test::summaries::MyStruct::foo];ReturnValue;value;dfc-generated pub fn get_foo(self) -> i64 { match self { MyStruct { foo, bar: _ } => foo, } } - // summary=repo::test;::get_bar;Argument[self].Field[test::summaries::MyStruct::bar];ReturnValue;value;dfc-generated + // summary=::get_bar;Argument[self].Field[test::summaries::MyStruct::bar];ReturnValue;value;dfc-generated pub fn get_bar(self) -> f64 { match self { MyStruct { foo: _, bar } => bar, @@ -71,8 +71,8 @@ impl MyStruct { // Higher-order functions -// summary=repo::test;crate::summaries::apply;Argument[0];Argument[1].Parameter[0];value;dfc-generated -// summary=repo::test;crate::summaries::apply;Argument[1].ReturnValue;ReturnValue;value;dfc-generated +// summary=test::summaries::apply;Argument[0];Argument[1].Parameter[0];value;dfc-generated +// summary=test::summaries::apply;Argument[1].ReturnValue;ReturnValue;value;dfc-generated pub fn apply(n: i64, f: F) -> i64 where F: FnOnce(i64) -> i64, @@ -82,12 +82,12 @@ where // Flow out of mutated arguments -// summary=repo::test;crate::summaries::set_int;Argument[1];Argument[0].Reference;value;dfc-generated +// summary=test::summaries::set_int;Argument[1];Argument[0].Reference;value;dfc-generated pub fn set_int(n: &mut i64, c: i64) { *n = c; } -// summary=repo::test;crate::summaries::read_int;Argument[0].Reference;ReturnValue;value;dfc-generated +// summary=test::summaries::read_int;Argument[0].Reference;ReturnValue;value;dfc-generated pub fn read_int(n: &mut i64) -> i64 { *n } From ad6c6b2d26d85671b7a440536ad1faf13b272fa4 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 17:16:32 +0200 Subject: [PATCH 145/340] Changed `js/angular/dependency-injection-mismatch` to `reliability` and `correctness` --- javascript/ql/src/AngularJS/DependencyMismatch.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/AngularJS/DependencyMismatch.ql b/javascript/ql/src/AngularJS/DependencyMismatch.ql index 5518653795b..a6990a44477 100644 --- a/javascript/ql/src/AngularJS/DependencyMismatch.ql +++ b/javascript/ql/src/AngularJS/DependencyMismatch.ql @@ -8,8 +8,8 @@ * @precision very-high * @id js/angular/dependency-injection-mismatch * @tags quality - * maintainability - * readability + * reliability + * correctness * frameworks/angularjs */ From 094b67f88c88e5ca2af762217bd0c4b9a8c5970b Mon Sep 17 00:00:00 2001 From: Frazer Smith Date: Thu, 19 Jun 2025 16:22:46 +0100 Subject: [PATCH 146/340] JS: Update Fastify tld --- javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll index dafc38ca857..26dde3fc78b 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Fastify.qll @@ -1,12 +1,12 @@ /** - * Provides classes for working with [Fastify](https://www.fastify.io/) applications. + * Provides classes for working with [Fastify](https://www.fastify.dev/) applications. */ import javascript import semmle.javascript.frameworks.HTTP /** - * Provides classes for working with [Fastify](https://www.fastify.io/) applications. + * Provides classes for working with [Fastify](https://www.fastify.dev/) applications. */ module Fastify { /** From c4ccc5502d74ff8d0d54cc58c8a4b1b06f546655 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 29 May 2025 16:49:27 +0100 Subject: [PATCH 147/340] Ruby: add support for extracting overlays --- Cargo.lock | 1 + .../tree_sitter_extractors_deps/defs.bzl | 1 + ruby/codeql-extractor.yml | 1 + ruby/extractor/Cargo.toml | 1 + ruby/extractor/src/extractor.rs | 52 +++++++++++++++++++ 5 files changed, 56 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 80417917020..83ecc3a31b6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -405,6 +405,7 @@ dependencies = [ "lazy_static", "rayon", "regex", + "serde_json", "tracing", "tracing-subscriber", "tree-sitter", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index 547a1e47606..985d7c70182 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -301,6 +301,7 @@ _NORMAL_DEPENDENCIES = { "lazy_static": Label("@vendor_ts__lazy_static-1.5.0//:lazy_static"), "rayon": Label("@vendor_ts__rayon-1.10.0//:rayon"), "regex": Label("@vendor_ts__regex-1.11.1//:regex"), + "serde_json": Label("@vendor_ts__serde_json-1.0.140//:serde_json"), "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), "tree-sitter": Label("@vendor_ts__tree-sitter-0.24.6//:tree_sitter"), diff --git a/ruby/codeql-extractor.yml b/ruby/codeql-extractor.yml index abb50db2a29..a832b0c1065 100644 --- a/ruby/codeql-extractor.yml +++ b/ruby/codeql-extractor.yml @@ -3,6 +3,7 @@ display_name: "Ruby" version: 0.1.0 column_kind: "utf8" legacy_qltest_extraction: true +overlay_support_version: 20250108 build_modes: - none github_api_languages: diff --git a/ruby/extractor/Cargo.toml b/ruby/extractor/Cargo.toml index 8d3a94113fa..16cdcca246c 100644 --- a/ruby/extractor/Cargo.toml +++ b/ruby/extractor/Cargo.toml @@ -17,5 +17,6 @@ rayon = "1.10.0" regex = "1.11.1" encoding = "0.2" lazy_static = "1.5.0" +serde_json = "1.0.140" codeql-extractor = { path = "../../shared/tree-sitter-extractor" } diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index d4271312226..92bcf748a08 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -1,7 +1,9 @@ use clap::Args; use lazy_static::lazy_static; use rayon::prelude::*; +use serde_json; use std::borrow::Cow; +use std::collections::HashSet; use std::fs; use std::io::BufRead; use std::path::{Path, PathBuf}; @@ -78,6 +80,8 @@ pub fn run(options: Options) -> std::io::Result<()> { let file_list = fs::File::open(file_paths::path_from_string(&options.file_list))?; + let overlay_changed_files: Option> = get_overlay_changed_files(); + let language: Language = tree_sitter_ruby::LANGUAGE.into(); let erb: Language = tree_sitter_embedded_template::LANGUAGE.into(); // Look up tree-sitter kind ids now, to avoid string comparisons when scanning ERB files. @@ -94,6 +98,13 @@ pub fn run(options: Options) -> std::io::Result<()> { .try_for_each(|line| { let mut diagnostics_writer = diagnostics.logger(); let path = PathBuf::from(line).canonicalize()?; + match &overlay_changed_files { + Some(changed_files) if !changed_files.contains(&path) => { + // We are extracting an overlay and this file is not in the list of changes files, so we should skip it. + return Result::Ok(()); + } + _ => {}, + } let src_archive_file = file_paths::path_for(&src_archive_dir, &path, ""); let mut source = std::fs::read(&path)?; let mut needs_conversion = false; @@ -212,6 +223,12 @@ pub fn run(options: Options) -> std::io::Result<()> { let mut trap_writer = trap::Writer::new(); extractor::populate_empty_location(&mut trap_writer); let res = write_trap(&trap_dir, path, &trap_writer, trap_compression); + if let Ok(output_path) = std::env::var("CODEQL_EXTRACTOR_RUBY_OVERLAY_BASE_METADATA_OUT") { + // We're extracting an overlay base. For now, we don't have any metadata we need to store + // that would get read when extracting the overlay, but the CLI expects us to write + // *something*. An empty file will do. + std::fs::write(output_path, b"")?; + } tracing::info!("Extraction complete"); res } @@ -302,6 +319,41 @@ fn skip_space(content: &[u8], index: usize) -> usize { } index } + +/** +* If the relevant environment variable has been set by the CLI, indicating that we are extracting +* an overlay, this function reads the JSON file at the path given by its value, and returns a set +* of canonicalized paths of source files that have changed and should therefore be extracted. +* +* If the environment variable is not set (i.e. we're not extracting an overlay), or if the file +* cannot be read, this function returns `None`. In that case, all files should be extracted. +*/ +fn get_overlay_changed_files() -> Option> { + let path = std::env::var("CODEQL_EXTRACTOR_RUBY_OVERLAY_CHANGES").ok()?; + let file_content = fs::read_to_string(path).ok()?; + let json_value: serde_json::Value = serde_json::from_str(&file_content).ok()?; + + // The JSON file is expected to have the following structure: + // { + // "changes": [ + // "relative/path/to/changed/file1.rb", + // "relative/path/to/changed/file2.rb", + // ... + // ] + // } + json_value + .get("changes")? + .as_array()? + .iter() + .map(|change| { + change + .as_str() + .map(|s| PathBuf::from(s).canonicalize().ok()) + .flatten() + }) + .collect() +} + fn scan_coding_comment(content: &[u8]) -> std::option::Option> { let mut index = 0; // skip UTF-8 BOM marker if there is one From 1bd7c4f11c2772a92431899fa77205212cfffc90 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Thu, 29 May 2025 18:22:36 +0100 Subject: [PATCH 148/340] Ruby: add databaseMetadata relation to dbscheme This is required for overlay support. --- config/dbscheme-fragments.json | 3 +- ql/extractor/src/generator.rs | 2 +- .../old.dbscheme | 1532 +++++++++++++++++ .../ruby.dbscheme | 1526 ++++++++++++++++ .../upgrade.properties | 3 + ruby/extractor/src/generator.rs | 2 +- ruby/ql/lib/ruby.dbscheme | 6 + ruby/ql/lib/ruby.dbscheme.stats | 36 + .../old.dbscheme | 1526 ++++++++++++++++ .../ruby.dbscheme | 1532 +++++++++++++++++ .../upgrade.properties | 2 + .../src/generator/mod.rs | 34 + 12 files changed, 6201 insertions(+), 3 deletions(-) create mode 100644 ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/old.dbscheme create mode 100644 ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/ruby.dbscheme create mode 100644 ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/upgrade.properties create mode 100644 ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/old.dbscheme create mode 100644 ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/ruby.dbscheme create mode 100644 ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/upgrade.properties diff --git a/config/dbscheme-fragments.json b/config/dbscheme-fragments.json index c56289ff171..b8c79fc8f3a 100644 --- a/config/dbscheme-fragments.json +++ b/config/dbscheme-fragments.json @@ -11,6 +11,7 @@ "/*- Diagnostic messages -*/", "/*- Diagnostic messages: severity -*/", "/*- Source location prefix -*/", + "/*- Database metadata -*/", "/*- Lines of code -*/", "/*- Configuration files with key value pairs -*/", "/*- YAML -*/", @@ -31,4 +32,4 @@ "/*- Python dbscheme -*/", "/*- Empty location -*/" ] -} \ No newline at end of file +} diff --git a/ql/extractor/src/generator.rs b/ql/extractor/src/generator.rs index 1dca6969f34..ea663896e64 100644 --- a/ql/extractor/src/generator.rs +++ b/ql/extractor/src/generator.rs @@ -36,5 +36,5 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library) + generate(languages, options.dbscheme, options.library, false) } diff --git a/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/old.dbscheme b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/old.dbscheme new file mode 100644 index 00000000000..dc51d416301 --- /dev/null +++ b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/old.dbscheme @@ -0,0 +1,1532 @@ +// 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 +); + +/*- 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/dc51d416301df12df5b70fbc4338de6cc1f82bfd/ruby.dbscheme b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/ruby.dbscheme new file mode 100644 index 00000000000..40a6b0a5e81 --- /dev/null +++ b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/ruby.dbscheme @@ -0,0 +1,1526 @@ +// 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; + +/*- 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/dc51d416301df12df5b70fbc4338de6cc1f82bfd/upgrade.properties b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/upgrade.properties new file mode 100644 index 00000000000..1d437ec8ac6 --- /dev/null +++ b/ruby/downgrades/dc51d416301df12df5b70fbc4338de6cc1f82bfd/upgrade.properties @@ -0,0 +1,3 @@ +description: Add databaseMetadata relation +compatibility: full +databaseMetadata.rel: delete diff --git a/ruby/extractor/src/generator.rs b/ruby/extractor/src/generator.rs index 00d878243ae..1601d2edda6 100644 --- a/ruby/extractor/src/generator.rs +++ b/ruby/extractor/src/generator.rs @@ -28,5 +28,5 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library) + generate(languages, options.dbscheme, options.library, true) } diff --git a/ruby/ql/lib/ruby.dbscheme b/ruby/ql/lib/ruby.dbscheme index 40a6b0a5e81..dc51d416301 100644 --- a/ruby/ql/lib/ruby.dbscheme +++ b/ruby/ql/lib/ruby.dbscheme @@ -108,6 +108,12 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + /*- Ruby dbscheme -*/ @ruby_underscore_arg = @ruby_assignment | @ruby_binary | @ruby_conditional | @ruby_operator_assignment | @ruby_range | @ruby_unary | @ruby_underscore_primary diff --git a/ruby/ql/lib/ruby.dbscheme.stats b/ruby/ql/lib/ruby.dbscheme.stats index fd8850293b4..74a9e97f4bd 100644 --- a/ruby/ql/lib/ruby.dbscheme.stats +++ b/ruby/ql/lib/ruby.dbscheme.stats @@ -21521,6 +21521,42 @@ + + databaseMetadata + 1 + + + metadataKey + 1 + + + value + 1 + + + + + metadataKey + value + + + 12 + + + + + + value + metadataKey + + + 12 + + + + + + yaml_aliases 0 diff --git a/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/old.dbscheme b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/old.dbscheme new file mode 100644 index 00000000000..40a6b0a5e81 --- /dev/null +++ b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/old.dbscheme @@ -0,0 +1,1526 @@ +// 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; + +/*- 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/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/ruby.dbscheme b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/ruby.dbscheme new file mode 100644 index 00000000000..dc51d416301 --- /dev/null +++ b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/ruby.dbscheme @@ -0,0 +1,1532 @@ +// 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 +); + +/*- 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/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/upgrade.properties b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/upgrade.properties new file mode 100644 index 00000000000..9b83871fb9b --- /dev/null +++ b/ruby/ql/lib/upgrades/40a6b0a5e81115bd870b3a12a1fe954b06362bb7/upgrade.properties @@ -0,0 +1,2 @@ +description: Add databaseMetadata relation +compatibility: full diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index d972e9fb128..cb35f7ab768 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, + add_metadata_relation: bool, ) -> std::io::Result<()> { let dbscheme_file = File::create(dbscheme_path).map_err(|e| { tracing::error!("Failed to create dbscheme file: {}", e); @@ -32,6 +33,16 @@ pub fn generate( writeln!(dbscheme_writer, include_str!("prefix.dbscheme"))?; + // Eventually all languages will have the metadata relation (for overlay support), at which + // point this could be moved to prefix.dbscheme. + if add_metadata_relation { + writeln!(dbscheme_writer, "/*- Database metadata -*/",)?; + dbscheme::write( + &mut dbscheme_writer, + &[dbscheme::Entry::Table(create_database_metadata())], + )?; + } + let mut ql_writer = LineWriter::new(File::create(ql_library_path)?); writeln!( ql_writer, @@ -442,3 +453,26 @@ fn create_token_case<'a>(name: &'a str, token_kinds: Map<&'a str, usize>) -> dbs branches, } } + +fn create_database_metadata() -> dbscheme::Table<'static> { + dbscheme::Table { + name: "databaseMetadata", + keysets: None, + columns: vec![ + dbscheme::Column { + db_type: dbscheme::DbColumnType::String, + name: "metadataKey", + unique: false, + ql_type: ql::Type::String, + ql_type_is_ref: true, + }, + dbscheme::Column { + db_type: dbscheme::DbColumnType::String, + name: "value", + unique: false, + ql_type: ql::Type::String, + ql_type_is_ref: true, + }, + ], + } +} From 665df4baef33a11a8ac65b9b79be4f70056f2a10 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 6 Jun 2025 11:36:27 +0100 Subject: [PATCH 149/340] Ruby: add minimal path transformer support Supports only a minimal subset of the project layout specification; enough to work with the transformers produced by the CLI when building an overlay database. --- ruby/extractor/src/extractor.rs | 28 ++++-- rust/extractor/src/archive.rs | 2 +- rust/extractor/src/trap.rs | 3 +- .../src/extractor/mod.rs | 34 ++++--- .../src/extractor/simple.rs | 15 ++- .../tree-sitter-extractor/src/file_paths.rs | 94 ++++++++++++++++++- 6 files changed, 145 insertions(+), 31 deletions(-) diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 92bcf748a08..983a918fee6 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -1,4 +1,5 @@ use clap::Args; +use codeql_extractor::file_paths::PathTransformer; use lazy_static::lazy_static; use rayon::prelude::*; use serde_json; @@ -81,6 +82,7 @@ pub fn run(options: Options) -> std::io::Result<()> { let file_list = fs::File::open(file_paths::path_from_string(&options.file_list))?; let overlay_changed_files: Option> = get_overlay_changed_files(); + let path_transformer = file_paths::load_path_transformer()?; let language: Language = tree_sitter_ruby::LANGUAGE.into(); let erb: Language = tree_sitter_embedded_template::LANGUAGE.into(); @@ -105,7 +107,7 @@ pub fn run(options: Options) -> std::io::Result<()> { } _ => {}, } - let src_archive_file = file_paths::path_for(&src_archive_dir, &path, ""); + let src_archive_file = file_paths::path_for(&src_archive_dir, &path, "", path_transformer.as_ref()); let mut source = std::fs::read(&path)?; let mut needs_conversion = false; let code_ranges; @@ -118,6 +120,7 @@ pub fn run(options: Options) -> std::io::Result<()> { &erb_schema, &mut diagnostics_writer, &mut trap_writer, + path_transformer.as_ref(), &path, &source, &[], @@ -162,7 +165,7 @@ pub fn run(options: Options) -> std::io::Result<()> { "character-decoding-error", "Character decoding error", ) - .file(&file_paths::normalize_path(&path)) + .file(&file_paths::normalize_and_transform_path(&path, path_transformer.as_ref())) .message( "Could not decode the file contents as {}: {}. The contents of the file must match the character encoding specified in the {} {}.", &[ @@ -182,7 +185,7 @@ pub fn run(options: Options) -> std::io::Result<()> { diagnostics_writer.write( diagnostics_writer .new_entry("unknown-character-encoding", "Could not process some files due to an unknown character encoding") - .file(&file_paths::normalize_path(&path)) + .file(&file_paths::normalize_and_transform_path(&path, path_transformer.as_ref())) .message( "Unknown character encoding {} in {} {}.", &[ @@ -205,6 +208,7 @@ pub fn run(options: Options) -> std::io::Result<()> { &schema, &mut diagnostics_writer, &mut trap_writer, + path_transformer.as_ref(), &path, &source, &code_ranges, @@ -215,14 +219,20 @@ pub fn run(options: Options) -> std::io::Result<()> { } else { std::fs::copy(&path, &src_archive_file)?; } - write_trap(&trap_dir, path, &trap_writer, trap_compression) + write_trap(&trap_dir, path, &trap_writer, trap_compression, path_transformer.as_ref()) }) .expect("failed to extract files"); let path = PathBuf::from("extras"); let mut trap_writer = trap::Writer::new(); extractor::populate_empty_location(&mut trap_writer); - let res = write_trap(&trap_dir, path, &trap_writer, trap_compression); + let res = write_trap( + &trap_dir, + path, + &trap_writer, + trap_compression, + path_transformer.as_ref(), + ); if let Ok(output_path) = std::env::var("CODEQL_EXTRACTOR_RUBY_OVERLAY_BASE_METADATA_OUT") { // We're extracting an overlay base. For now, we don't have any metadata we need to store // that would get read when extracting the overlay, but the CLI expects us to write @@ -254,8 +264,14 @@ fn write_trap( path: PathBuf, trap_writer: &trap::Writer, trap_compression: trap::Compression, + path_transformer: Option<&PathTransformer>, ) -> std::io::Result<()> { - let trap_file = file_paths::path_for(trap_dir, &path, trap_compression.extension()); + let trap_file = file_paths::path_for( + trap_dir, + &path, + trap_compression.extension(), + path_transformer, + ); std::fs::create_dir_all(trap_file.parent().unwrap())?; trap_writer.write_to_file(&trap_file, trap_compression) } diff --git a/rust/extractor/src/archive.rs b/rust/extractor/src/archive.rs index ad27c483942..2cc3be22701 100644 --- a/rust/extractor/src/archive.rs +++ b/rust/extractor/src/archive.rs @@ -15,7 +15,7 @@ impl Archiver { } fn try_archive(&self, source: &Path) -> std::io::Result<()> { - let dest = file_paths::path_for(&self.root, source, ""); + let dest = file_paths::path_for(&self.root, source, "", None); if fs::metadata(&dest).is_ok() { return Ok(()); } diff --git a/rust/extractor/src/trap.rs b/rust/extractor/src/trap.rs index 2206c4c067b..a7cb43a6432 100644 --- a/rust/extractor/src/trap.rs +++ b/rust/extractor/src/trap.rs @@ -212,7 +212,7 @@ impl TrapFile { ); } pub fn emit_file(&mut self, absolute_path: &Path) -> Label { - let untyped = extractor::populate_file(&mut self.writer, absolute_path); + let untyped = extractor::populate_file(&mut self.writer, absolute_path, None); // SAFETY: populate_file emits `@file` typed labels unsafe { Label::from_untyped(untyped) } } @@ -268,6 +268,7 @@ impl TrapFileProvider { &self.trap_dir.join(category), key.as_ref(), self.compression.extension(), + None, ); debug!("creating trap file {}", path.display()); let mut writer = trap::Writer::new(); diff --git a/shared/tree-sitter-extractor/src/extractor/mod.rs b/shared/tree-sitter-extractor/src/extractor/mod.rs index 18a0cfc9452..0bc489cd559 100644 --- a/shared/tree-sitter-extractor/src/extractor/mod.rs +++ b/shared/tree-sitter-extractor/src/extractor/mod.rs @@ -67,19 +67,26 @@ pub fn default_subscriber_with_level( ), ) } -pub fn populate_file(writer: &mut trap::Writer, absolute_path: &Path) -> trap::Label { +pub fn populate_file( + writer: &mut trap::Writer, + absolute_path: &Path, + transformer: Option<&file_paths::PathTransformer>, +) -> trap::Label { let (file_label, fresh) = writer.global_id(&trap::full_id_for_file( - &file_paths::normalize_path(absolute_path), + &file_paths::normalize_and_transform_path(absolute_path, transformer), )); if fresh { writer.add_tuple( "files", vec![ trap::Arg::Label(file_label), - trap::Arg::String(file_paths::normalize_path(absolute_path)), + trap::Arg::String(file_paths::normalize_and_transform_path( + absolute_path, + transformer, + )), ], ); - populate_parent_folders(writer, file_label, absolute_path.parent()); + populate_parent_folders(writer, file_label, absolute_path.parent(), transformer); } file_label } @@ -117,6 +124,7 @@ pub fn populate_parent_folders( writer: &mut trap::Writer, child_label: trap::Label, path: Option<&Path>, + transformer: Option<&file_paths::PathTransformer>, ) { let mut path = path; let mut child_label = child_label; @@ -124,9 +132,9 @@ pub fn populate_parent_folders( match path { None => break, Some(folder) => { - let (folder_label, fresh) = writer.global_id(&trap::full_id_for_folder( - &file_paths::normalize_path(folder), - )); + let parent = folder.parent(); + let folder = file_paths::normalize_and_transform_path(folder, transformer); + let (folder_label, fresh) = writer.global_id(&trap::full_id_for_folder(&folder)); writer.add_tuple( "containerparent", vec![ @@ -137,12 +145,9 @@ pub fn populate_parent_folders( if fresh { writer.add_tuple( "folders", - vec![ - trap::Arg::Label(folder_label), - trap::Arg::String(file_paths::normalize_path(folder)), - ], + vec![trap::Arg::Label(folder_label), trap::Arg::String(folder)], ); - path = folder.parent(); + path = parent; child_label = folder_label; } else { break; @@ -205,11 +210,12 @@ pub fn extract( schema: &NodeTypeMap, diagnostics_writer: &mut diagnostics::LogWriter, trap_writer: &mut trap::Writer, + transformer: Option<&file_paths::PathTransformer>, path: &Path, source: &[u8], ranges: &[Range], ) { - let path_str = file_paths::normalize_path(path); + let path_str = file_paths::normalize_and_transform_path(path, transformer); let span = tracing::span!( tracing::Level::TRACE, "extract", @@ -225,7 +231,7 @@ pub fn extract( parser.set_included_ranges(ranges).unwrap(); let tree = parser.parse(source, None).expect("Failed to parse file"); trap_writer.comment(format!("Auto-generated TRAP file for {}", path_str)); - let file_label = populate_file(trap_writer, path); + let file_label = populate_file(trap_writer, path, transformer); let mut visitor = Visitor::new( source, diagnostics_writer, diff --git a/shared/tree-sitter-extractor/src/extractor/simple.rs b/shared/tree-sitter-extractor/src/extractor/simple.rs index eb1232a8ef2..10414a7665b 100644 --- a/shared/tree-sitter-extractor/src/extractor/simple.rs +++ b/shared/tree-sitter-extractor/src/extractor/simple.rs @@ -1,4 +1,4 @@ -use crate::trap; +use crate::{file_paths, trap}; use globset::{GlobBuilder, GlobSetBuilder}; use rayon::prelude::*; use std::fs::File; @@ -111,6 +111,8 @@ impl Extractor { ) }; + let path_transformer = file_paths::load_path_transformer()?; + let lines: std::io::Result> = file_lists .iter() .flat_map(|file_list| std::io::BufReader::new(file_list).lines()) @@ -122,8 +124,12 @@ impl Extractor { .try_for_each(|line| { let mut diagnostics_writer = diagnostics.logger(); let path = PathBuf::from(line).canonicalize()?; - let src_archive_file = - crate::file_paths::path_for(&self.source_archive_dir, &path, ""); + let src_archive_file = crate::file_paths::path_for( + &self.source_archive_dir, + &path, + "", + path_transformer.as_ref(), + ); let source = std::fs::read(&path)?; let mut trap_writer = trap::Writer::new(); @@ -152,6 +158,7 @@ impl Extractor { &schemas[i], &mut diagnostics_writer, &mut trap_writer, + None, &path, &source, &[], @@ -183,7 +190,7 @@ fn write_trap( trap_writer: &trap::Writer, trap_compression: trap::Compression, ) -> std::io::Result<()> { - let trap_file = crate::file_paths::path_for(trap_dir, path, trap_compression.extension()); + let trap_file = crate::file_paths::path_for(trap_dir, path, trap_compression.extension(), None); std::fs::create_dir_all(trap_file.parent().unwrap())?; trap_writer.write_to_file(&trap_file, trap_compression) } diff --git a/shared/tree-sitter-extractor/src/file_paths.rs b/shared/tree-sitter-extractor/src/file_paths.rs index 917a2fb6322..bdb9dd035f0 100644 --- a/shared/tree-sitter-extractor/src/file_paths.rs +++ b/shared/tree-sitter-extractor/src/file_paths.rs @@ -1,8 +1,81 @@ -use std::path::{Path, PathBuf}; +use std::{ + fs, + path::{Path, PathBuf}, +}; -/// Normalizes the path according the common CodeQL specification. Assumes that -/// `path` has already been canonicalized using `std::fs::canonicalize`. -pub fn normalize_path(path: &Path) -> String { +/// This represents the minimum supported path transformation that is needed to support extracting +/// overlay databases. Specifically, it represents a transformer where one path prefix is replaced +/// with a different prefix. +pub struct PathTransformer { + pub original: String, + pub replacement: String, +} + +/// Normalizes the path according to the common CodeQL specification, and, applies the given path +/// transformer, if any. Assumes that `path` has already been canonicalized using +/// `std::fs::canonicalize`. +pub fn normalize_and_transform_path(path: &Path, transformer: Option<&PathTransformer>) -> String { + let path = normalize_path(path); + match transformer { + Some(transformer) => match path.strip_prefix(&transformer.original) { + Some(suffix) => format!("{}{}", transformer.replacement, suffix), + None => path, + }, + None => path, + } +} + +/** + * Attempts to load a path transformer. + * + * If the `CODEQL_PATH_TRANSFORMER` environment variable is not set, no transformer has been + * specified and the function returns `Ok(None)`. + * + * If the environment variable is set, the function attempts to load the transformer from the file + * at the specified path. If this is successful, it returns `Ok(Some(PathTransformer))`. + * + * If the file cannot be read, or if it does not match the minimal subset of the path-transformer + * syntax supported by this extractor, the function returns an error. + */ +pub fn load_path_transformer() -> std::io::Result> { + let path = match std::env::var("CODEQL_PATH_TRANSFORMER") { + Ok(p) => p, + Err(_) => return Ok(None), + }; + let file_content = fs::read_to_string(path)?; + let lines = file_content + .lines() + .map(|line| line.trim().to_owned()) + .filter(|line| !line.is_empty()) + .collect::>(); + + if lines.len() != 2 { + return Err(unsupported_transformer_error()); + } + let replacement = lines[0] + .strip_prefix('#') + .ok_or(unsupported_transformer_error())?; + let original = lines[1] + .strip_suffix("//") + .ok_or(unsupported_transformer_error())?; + + Ok(Some(PathTransformer { + original: original.to_owned(), + replacement: replacement.to_owned(), + })) +} + +fn unsupported_transformer_error() -> std::io::Error { + std::io::Error::new( + std::io::ErrorKind::InvalidData, + "This extractor only supports path transformers specifying a single path-prefix rewrite, \ + with the first line starting with a # and the second line ending with //.", + ) +} + +/// Normalizes the path according to the common CodeQL specification. Assumes that `path` has +/// already been canonicalized using `std::fs::canonicalize`. +fn normalize_path(path: &Path) -> String { if cfg!(windows) { // The way Rust canonicalizes paths doesn't match the CodeQL spec, so we // have to do a bit of work removing certain prefixes and replacing @@ -93,7 +166,18 @@ pub fn path_from_string(path: &str) -> PathBuf { result } -pub fn path_for(dir: &Path, path: &Path, ext: &str) -> PathBuf { +pub fn path_for( + dir: &Path, + path: &Path, + ext: &str, + transformer: Option<&PathTransformer>, +) -> PathBuf { + let path = if transformer.is_some() { + let transformed = normalize_and_transform_path(path, transformer); + PathBuf::from(transformed) + } else { + path.to_path_buf() + }; let mut result = PathBuf::from(dir); for component in path.components() { match component { From 7a9f23c759631f6ce9ae69ec2155cd1b871cce2c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 18:19:26 +0200 Subject: [PATCH 150/340] Rust: fix `sphinx` error --- .../analyzing-data-flow-in-rust.rst | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 3337dde2faa..47f2366faf3 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -26,17 +26,23 @@ You can use the local data flow library by importing the ``codeql.rust.dataflow. Common ``Node`` types include expression nodes (``ExprNode``) and parameter nodes (``ParameterNode``). You can use the ``asExpr`` member predicate to map a data flow ``ExprNode`` to its corresponding ``ExprCfgNode`` in the control-flow library. Similarly, you can map a data flow ``ParameterNode`` to its corresponding ``Parameter`` AST node using the ``asParameter`` member predicate. + .. code-block:: ql - class Node { - /** Gets the expression corresponding to this node, if any. */ - CfgNodes::ExprCfgNode asExpr() { ... } + class Node { + /** + * Gets the expression corresponding to this node, if any. + */ + CfgNodes::ExprCfgNode asExpr() { ... } - /** Gets the parameter corresponding to this node, if any. */ - Parameter asParameter() { ... } + /** + * Gets the parameter corresponding to this node, if any. + */ + Parameter asParameter() { ... } ... - } + } + Note that since ``asExpr`` maps from data-flow to control-flow nodes, you then need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node, for example by writing ``node.asExpr().getExpr()``. From bb9a2289a369465793de62b6f6fa10cf7357cf0f Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 18:25:31 +0200 Subject: [PATCH 151/340] Changed `js/conditional-comment` to `reliability` and `correctness` --- javascript/ql/src/LanguageFeatures/ConditionalComments.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/LanguageFeatures/ConditionalComments.ql b/javascript/ql/src/LanguageFeatures/ConditionalComments.ql index 607fc47c38d..8ded33afe59 100644 --- a/javascript/ql/src/LanguageFeatures/ConditionalComments.ql +++ b/javascript/ql/src/LanguageFeatures/ConditionalComments.ql @@ -5,8 +5,8 @@ * @problem.severity warning * @id js/conditional-comment * @tags quality - * maintainability - * readability + * reliability + * correctness * portability * language-features * external/cwe/cwe-758 From c1d29cc48a4cc8897b572bf07456c1e50e703e96 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 18:26:12 +0200 Subject: [PATCH 152/340] Changed `js/whitespace-contradicts-precedence` to `reliability` and `correctness` --- .../ql/src/Expressions/WhitespaceContradictsPrecedence.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql b/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql index b8711db8fab..bb3d1484658 100644 --- a/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql +++ b/javascript/ql/src/Expressions/WhitespaceContradictsPrecedence.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @id js/whitespace-contradicts-precedence * @tags quality - * maintainability - * readability + * reliability + * correctness * statistical * non-attributable * external/cwe/cwe-783 From f812b6461cbd02243ec8edd8e9e0be3235d9ce14 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Thu, 19 Jun 2025 18:28:13 +0200 Subject: [PATCH 153/340] Rust: address review --- .../codeql-language-guides/codeql-library-for-rust.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst index 348490e22dd..c2357a8264c 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst @@ -39,9 +39,8 @@ The data flow library is imported using import codeql.rust.dataflow.DataFlow Data flow tracks the flow of data through the program, including through function calls (interprocedural data flow) and between steps in a job or workflow. -Data flow is particularly useful for security queries, where untrusted data flows to vulnerable parts of the program -to exploit it. Related to data flow, is the taint-tracking library, which finds how data can *influence* other values -in a program, even when it is not copied exactly. +Data flow is particularly useful for security queries, where untrusted data flows to vulnerable parts of the program. Related to data flow is the taint-tracking library, +which finds how data can *influence* other values in a program, even when it is not copied exactly. To summarize, the main Rust library modules are: From 2ab35d6a453ca9214c0f9b3967d3c4880d5de26b Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:21:06 +0200 Subject: [PATCH 154/340] Changed `js/node/assignment-to-exports-variable` to `reliability` and `correctness` --- javascript/ql/src/NodeJS/InvalidExport.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/NodeJS/InvalidExport.ql b/javascript/ql/src/NodeJS/InvalidExport.ql index f7858102e75..95d945bc048 100644 --- a/javascript/ql/src/NodeJS/InvalidExport.ql +++ b/javascript/ql/src/NodeJS/InvalidExport.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @id js/node/assignment-to-exports-variable * @tags quality - * maintainability - * readability + * reliability + * correctness * frameworks/node.js * external/cwe/cwe-563 * @precision very-high From 125add1e190865ae9bad389e880dbb50c0258e6e Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:24:00 +0200 Subject: [PATCH 155/340] Changed `js/node/missing-exports-qualifier` to `reliability` and `correctness` --- javascript/ql/src/NodeJS/MissingExports.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/NodeJS/MissingExports.ql b/javascript/ql/src/NodeJS/MissingExports.ql index c606ce14eb2..f10fac15b7a 100644 --- a/javascript/ql/src/NodeJS/MissingExports.ql +++ b/javascript/ql/src/NodeJS/MissingExports.ql @@ -6,8 +6,8 @@ * @problem.severity error * @id js/node/missing-exports-qualifier * @tags quality - * maintainability - * readability + * reliability + * correctness * frameworks/node.js * @precision high */ From 4bc97326d140ee837ad0c4a2eabd9d841eff968a Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:30:53 +0200 Subject: [PATCH 156/340] Changed `js/label-in-switch` to `reliability` and `correctness` --- javascript/ql/src/Statements/LabelInCase.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Statements/LabelInCase.ql b/javascript/ql/src/Statements/LabelInCase.ql index b401e89d0fa..15690c83bcc 100644 --- a/javascript/ql/src/Statements/LabelInCase.ql +++ b/javascript/ql/src/Statements/LabelInCase.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @id js/label-in-switch * @tags quality - * maintainability - * readability + * reliability + * correctness * @precision very-high */ From 4fd3ef8f1cebddab5027afcf62a5ef829c2d1b7e Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:37:13 +0200 Subject: [PATCH 157/340] Changed `js/useless-assignment-in-return` to `reliability` and `correctness` --- javascript/ql/src/Statements/ReturnAssignsLocal.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Statements/ReturnAssignsLocal.ql b/javascript/ql/src/Statements/ReturnAssignsLocal.ql index 7ac1fa7fd5f..e0e60e689a3 100644 --- a/javascript/ql/src/Statements/ReturnAssignsLocal.ql +++ b/javascript/ql/src/Statements/ReturnAssignsLocal.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @id js/useless-assignment-in-return * @tags quality - * maintainability - * readability + * reliability + * correctness * external/cwe/cwe-563 * @precision very-high */ From 32dd665472b1bb93c3eb775a8eae7d6568457ec7 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:45:20 +0200 Subject: [PATCH 158/340] Changed `js/unused-loop-variable` to `reliability` and `correctness` --- .../src/Statements/SuspiciousUnusedLoopIterationVariable.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql b/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql index 308c5412d9b..e472c8e0dce 100644 --- a/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql +++ b/javascript/ql/src/Statements/SuspiciousUnusedLoopIterationVariable.ql @@ -5,8 +5,8 @@ * @problem.severity error * @id js/unused-loop-variable * @tags quality - * maintainability - * readability + * reliability + * correctness * @precision high */ From aa3e9c65799a68ade1767e86b4c3826d523b8755 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Thu, 19 Jun 2025 19:52:03 +0200 Subject: [PATCH 159/340] Changed `js/unreachable-statement` to `reliability` and `correctness` --- javascript/ql/src/Statements/UnreachableStatement.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Statements/UnreachableStatement.ql b/javascript/ql/src/Statements/UnreachableStatement.ql index 7ffd585563e..b7d8e48980b 100644 --- a/javascript/ql/src/Statements/UnreachableStatement.ql +++ b/javascript/ql/src/Statements/UnreachableStatement.ql @@ -5,8 +5,8 @@ * @problem.severity warning * @id js/unreachable-statement * @tags quality - * maintainability - * useless-code + * reliability + * correctness * external/cwe/cwe-561 * @precision very-high */ From 09bf05f0df804ca03537f1a8eb6e365bc515cf14 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 19 Jun 2025 15:31:59 +0200 Subject: [PATCH 160/340] Rust: Fix types for `*` to `deref` overload --- .../rust/elements/internal/CallImpl.qll | 23 ++- .../rust/elements/internal/OperationImpl.qll | 2 +- .../codeql/rust/internal/TypeInference.qll | 178 ++++++++++-------- .../type-inference/dereference.rs | 10 +- .../test/library-tests/type-inference/main.rs | 4 +- .../type-inference/type-inference.expected | 156 +++++---------- 6 files changed, 170 insertions(+), 203 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll index 84d9aaab5ef..f350e88efad 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll @@ -35,7 +35,7 @@ module Impl { */ abstract class Call extends ExprImpl::Expr { /** Holds if the receiver of this call is implicitly borrowed. */ - predicate receiverImplicitlyBorrowed() { this.implicitBorrowAt(TSelfArgumentPosition()) } + predicate receiverImplicitlyBorrowed() { this.implicitBorrowAt(TSelfArgumentPosition(), _) } /** Gets the trait targeted by this call, if any. */ abstract Trait getTrait(); @@ -47,7 +47,7 @@ module Impl { abstract Expr getArgument(ArgumentPosition pos); /** Holds if the argument at `pos` might be implicitly borrowed. */ - abstract predicate implicitBorrowAt(ArgumentPosition pos); + abstract predicate implicitBorrowAt(ArgumentPosition pos, boolean certain); /** Gets the number of arguments _excluding_ any `self` argument. */ int getNumberOfArguments() { result = count(this.getArgument(TPositionalArgumentPosition(_))) } @@ -85,7 +85,7 @@ module Impl { override Trait getTrait() { none() } - override predicate implicitBorrowAt(ArgumentPosition pos) { none() } + override predicate implicitBorrowAt(ArgumentPosition pos, boolean certain) { none() } override Expr getArgument(ArgumentPosition pos) { result = super.getArgList().getArg(pos.asPosition()) @@ -109,7 +109,7 @@ module Impl { qualifier.toString() != "Self" } - override predicate implicitBorrowAt(ArgumentPosition pos) { none() } + override predicate implicitBorrowAt(ArgumentPosition pos, boolean certain) { none() } override Expr getArgument(ArgumentPosition pos) { pos.isSelf() and result = super.getArgList().getArg(0) @@ -123,7 +123,9 @@ module Impl { override Trait getTrait() { none() } - override predicate implicitBorrowAt(ArgumentPosition pos) { pos.isSelf() } + override predicate implicitBorrowAt(ArgumentPosition pos, boolean certain) { + pos.isSelf() and certain = false + } override Expr getArgument(ArgumentPosition pos) { pos.isSelf() and result = this.(MethodCallExpr).getReceiver() @@ -143,10 +145,13 @@ module Impl { override Trait getTrait() { result = trait } - override predicate implicitBorrowAt(ArgumentPosition pos) { - pos.isSelf() and borrows >= 1 - or - pos.asPosition() = 0 and borrows = 2 + override predicate implicitBorrowAt(ArgumentPosition pos, boolean certain) { + ( + pos.isSelf() and borrows >= 1 + or + pos.asPosition() = 0 and borrows = 2 + ) and + certain = true } override Expr getArgument(ArgumentPosition pos) { diff --git a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll index a65f99f7952..ea76293a1bd 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll @@ -22,7 +22,7 @@ private predicate isOverloaded(string op, int arity, string path, string method, op = "!" and path = "core::ops::bit::Not" and method = "not" and borrows = 0 or // Dereference - op = "*" and path = "core::ops::deref::Deref" and method = "deref" and borrows = 0 + op = "*" and path = "core::ops::deref::Deref" and method = "deref" and borrows = 1 ) or arity = 2 and diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 73c18b86cd0..a6034608d88 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -273,10 +273,6 @@ private predicate typeEquality(AstNode n1, TypePath prefix1, AstNode n2, TypePat prefix1.isEmpty() and prefix2 = TypePath::singleton(TRefTypeParameter()) or - n1 = n2.(DerefExpr).getExpr() and - prefix1 = TypePath::singleton(TRefTypeParameter()) and - prefix2.isEmpty() - or exists(BlockExpr be | n1 = be and n2 = be.getStmtList().getTailExpr() and @@ -640,20 +636,20 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } private newtype TAccessPosition = - TArgumentAccessPosition(ArgumentPosition pos, Boolean borrowed) or + TArgumentAccessPosition(ArgumentPosition pos, Boolean borrowed, Boolean certain) or TReturnAccessPosition() class AccessPosition extends TAccessPosition { - ArgumentPosition getArgumentPosition() { this = TArgumentAccessPosition(result, _) } + ArgumentPosition getArgumentPosition() { this = TArgumentAccessPosition(result, _, _) } - predicate isBorrowed() { this = TArgumentAccessPosition(_, true) } + predicate isBorrowed(boolean certain) { this = TArgumentAccessPosition(_, true, certain) } predicate isReturn() { this = TReturnAccessPosition() } string toString() { - exists(ArgumentPosition pos, boolean borrowed | - this = TArgumentAccessPosition(pos, borrowed) and - result = pos + ":" + borrowed + exists(ArgumentPosition pos, boolean borrowed, boolean certain | + this = TArgumentAccessPosition(pos, borrowed, certain) and + result = pos + ":" + borrowed + ":" + certain ) or this.isReturn() and @@ -674,10 +670,15 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { } AstNode getNodeAt(AccessPosition apos) { - exists(ArgumentPosition pos, boolean borrowed | - apos = TArgumentAccessPosition(pos, borrowed) and - result = this.getArgument(pos) and - if this.implicitBorrowAt(pos) then borrowed = true else borrowed = false + exists(ArgumentPosition pos, boolean borrowed, boolean certain | + apos = TArgumentAccessPosition(pos, borrowed, certain) and + result = this.getArgument(pos) + | + if this.implicitBorrowAt(pos, _) + then borrowed = true and this.implicitBorrowAt(pos, certain) + else ( + borrowed = false and certain = true + ) ) or result = this and apos.isReturn() @@ -705,51 +706,54 @@ private module CallExprBaseMatchingInput implements MatchingInputSig { predicate adjustAccessType( AccessPosition apos, Declaration target, TypePath path, Type t, TypePath pathAdj, Type tAdj ) { - if apos.isBorrowed() - then - exists(Type selfParamType | - selfParamType = - target - .getParameterType(TArgumentDeclarationPosition(apos.getArgumentPosition()), - TypePath::nil()) - | - if selfParamType = TRefType() + apos.isBorrowed(true) and + pathAdj = TypePath::cons(TRefTypeParameter(), path) and + tAdj = t + or + apos.isBorrowed(false) and + exists(Type selfParamType | + selfParamType = + target + .getParameterType(TArgumentDeclarationPosition(apos.getArgumentPosition()), + TypePath::nil()) + | + if selfParamType = TRefType() + then + if t != TRefType() and path.isEmpty() then - if t != TRefType() and path.isEmpty() - then - // adjust for implicit borrow - pathAdj.isEmpty() and - tAdj = TRefType() - or - // adjust for implicit borrow - pathAdj = TypePath::singleton(TRefTypeParameter()) and - tAdj = t - else - if path.isCons(TRefTypeParameter(), _) - then - pathAdj = path and - tAdj = t - else ( - // adjust for implicit borrow - not (t = TRefType() and path.isEmpty()) and - pathAdj = TypePath::cons(TRefTypeParameter(), path) and - tAdj = t - ) - else ( - // adjust for implicit deref - path.isCons(TRefTypeParameter(), pathAdj) and - tAdj = t + // adjust for implicit borrow + pathAdj.isEmpty() and + tAdj = TRefType() or - not path.isCons(TRefTypeParameter(), _) and - not (t = TRefType() and path.isEmpty()) and - pathAdj = path and + // adjust for implicit borrow + pathAdj = TypePath::singleton(TRefTypeParameter()) and tAdj = t - ) + else + if path.isCons(TRefTypeParameter(), _) + then + pathAdj = path and + tAdj = t + else ( + // adjust for implicit borrow + not (t = TRefType() and path.isEmpty()) and + pathAdj = TypePath::cons(TRefTypeParameter(), path) and + tAdj = t + ) + else ( + // adjust for implicit deref + path.isCons(TRefTypeParameter(), pathAdj) and + tAdj = t + or + not path.isCons(TRefTypeParameter(), _) and + not (t = TRefType() and path.isEmpty()) and + pathAdj = path and + tAdj = t ) - else ( - pathAdj = path and - tAdj = t ) + or + not apos.isBorrowed(_) and + pathAdj = path and + tAdj = t } } @@ -766,35 +770,47 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { TypePath path0 | n = a.getNodeAt(apos) and - result = CallExprBaseMatching::inferAccessType(a, apos, path0) and - if apos.isBorrowed() - then - exists(Type argType | argType = inferType(n) | - if argType = TRefType() - then - path = path0 and - path0.isCons(TRefTypeParameter(), _) - or - // adjust for implicit deref + result = CallExprBaseMatching::inferAccessType(a, apos, path0) + | + ( + apos.isBorrowed(true) + or + // The desugaring of the unary `*e` is `*Deref::deref(&e)`. To handle the + // deref expression after the call we must strip a `&` from the type at + // the return position. + apos.isReturn() and a instanceof DerefExpr + ) and + path0.isCons(TRefTypeParameter(), path) + or + apos.isBorrowed(false) and + exists(Type argType | argType = inferType(n) | + if argType = TRefType() + then + path = path0 and + path0.isCons(TRefTypeParameter(), _) + or + // adjust for implicit deref + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) and + path = TypePath::cons(TRefTypeParameter(), path0) + else ( + not ( + argType.(StructType).asItemNode() instanceof StringStruct and + result.(StructType).asItemNode() instanceof Builtins::Str + ) and + ( not path0.isCons(TRefTypeParameter(), _) and not (path0.isEmpty() and result = TRefType()) and - path = TypePath::cons(TRefTypeParameter(), path0) - else ( - not ( - argType.(StructType).asItemNode() instanceof StringStruct and - result.(StructType).asItemNode() instanceof Builtins::Str - ) and - ( - not path0.isCons(TRefTypeParameter(), _) and - not (path0.isEmpty() and result = TRefType()) and - path = path0 - or - // adjust for implicit borrow - path0.isCons(TRefTypeParameter(), path) - ) + path = path0 + or + // adjust for implicit borrow + path0.isCons(TRefTypeParameter(), path) ) ) - else path = path0 + ) + or + not apos.isBorrowed(_) and + path = path0 ) } @@ -1387,7 +1403,7 @@ private module Cached { predicate receiverHasImplicitDeref(AstNode receiver) { exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | apos.getArgumentPosition().isSelf() and - apos.isBorrowed() and + apos.isBorrowed(_) and receiver = a.getNodeAt(apos) and inferType(receiver) = TRefType() and CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) != TRefType() @@ -1399,7 +1415,7 @@ private module Cached { predicate receiverHasImplicitBorrow(AstNode receiver) { exists(CallExprBaseMatchingInput::Access a, CallExprBaseMatchingInput::AccessPosition apos | apos.getArgumentPosition().isSelf() and - apos.isBorrowed() and + apos.isBorrowed(_) and receiver = a.getNodeAt(apos) and CallExprBaseMatching::inferAccessType(a, apos, TypePath::nil()) = TRefType() and inferType(receiver) != TRefType() diff --git a/rust/ql/test/library-tests/type-inference/dereference.rs b/rust/ql/test/library-tests/type-inference/dereference.rs index df0018cbf20..fb16eb00cf3 100644 --- a/rust/ql/test/library-tests/type-inference/dereference.rs +++ b/rust/ql/test/library-tests/type-inference/dereference.rs @@ -34,7 +34,7 @@ fn explicit_monomorphic_dereference() { // Dereference with overloaded dereference operator let a2 = MyIntPointer { value: 34i64 }; - let _b2 = *a2; // $ method=MyIntPointer::deref MISSING: type=_b2:i64 + let _b2 = *a2; // $ method=MyIntPointer::deref type=_b2:i64 // Call method on explicitly dereferenced value let a3 = MyIntPointer { value: 34i64 }; @@ -48,11 +48,11 @@ fn explicit_polymorphic_dereference() { // Explicit dereference with type parameter let c2 = MySmartPointer { value: 'a' }; - let _d2 = *c2; // $ method=MySmartPointer::deref MISSING: type=_d2:char + let _d2 = *c2; // $ method=MySmartPointer::deref type=_d2:char // Call method on explicitly dereferenced value with type parameter let c3 = MySmartPointer { value: 34i64 }; - let _d3 = (*c3).is_positive(); // $ method=MySmartPointer::deref MISSING: method=is_positive type=_d3:bool + let _d3 = (*c3).is_positive(); // $ method=MySmartPointer::deref method=is_positive type=_d3:bool } fn explicit_ref_dereference() { @@ -76,11 +76,11 @@ fn explicit_box_dereference() { // Explicit dereference with type parameter let g2: Box = Box::new('a'); - let _h2 = *g2; // $ method=deref MISSING: type=_h2:char + let _h2 = *g2; // $ method=deref type=_h2:char // Call method on explicitly dereferenced value with type parameter let g3: Box = Box::new(34i64); - let _h3 = (*g3).is_positive(); // $ method=deref MISSING: method=is_positive type=_h3:bool + let _h3 = (*g3).is_positive(); // $ method=deref method=is_positive type=_h3:bool } fn implicit_dereference() { diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index a6f98ffebc4..bd8f6a1f25a 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1140,7 +1140,7 @@ mod method_call_type_conversion { println!("{:?}", x5.m1()); // $ method=m1 println!("{:?}", x5.0); // $ fieldof=S - let x6 = &S(S2); // $ SPURIOUS: type=x6:&T.&T.S + let x6 = &S(S2); // explicit dereference println!("{:?}", (*x6).m1()); // $ method=m1 method=deref @@ -1717,7 +1717,7 @@ mod overloadable_operators { // Here the type of `default_vec2` must be inferred from the `==` call // and the type of the borrowed second argument is unknown at the call. - let default_vec2 = Default::default(); // $ MISSING: type=default_vec2:Vec2 + let default_vec2 = Default::default(); // $ type=default_vec2:Vec2 let vec2_zero_plus = Vec2 { x: 0, y: 0 } == default_vec2; // $ method=Vec2::eq } } 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 8a3bfb24e60..e39428cc2d7 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -28,51 +28,27 @@ inferType | dereference.rs:33:15:33:24 | a1.deref() | | file://:0:0:0:0 | & | | dereference.rs:33:15:33:24 | a1.deref() | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:36:9:36:10 | a2 | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:36:9:36:10 | a2 | | file://:0:0:0:0 | & | -| dereference.rs:36:9:36:10 | a2 | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:36:9:36:10 | a2 | &T | file://:0:0:0:0 | & | -| dereference.rs:36:9:36:10 | a2 | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:36:14:36:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:36:14:36:42 | MyIntPointer {...} | | file://:0:0:0:0 | & | -| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T | file://:0:0:0:0 | & | -| dereference.rs:36:14:36:42 | MyIntPointer {...} | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:36:36:36:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:37:9:37:11 | _b2 | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:9:37:11 | _b2 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:9:37:11 | _b2 | | file://:0:0:0:0 | & | | dereference.rs:37:9:37:11 | _b2 | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:37:15:37:17 | * ... | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:37:15:37:17 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:15:37:17 | * ... | | file://:0:0:0:0 | & | | dereference.rs:37:15:37:17 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:16:37:17 | a2 | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:37:16:37:17 | a2 | | file://:0:0:0:0 | & | -| dereference.rs:37:16:37:17 | a2 | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:37:16:37:17 | a2 | &T | file://:0:0:0:0 | & | -| dereference.rs:37:16:37:17 | a2 | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:40:9:40:10 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:40:9:40:10 | a3 | | file://:0:0:0:0 | & | -| dereference.rs:40:9:40:10 | a3 | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:40:9:40:10 | a3 | &T | file://:0:0:0:0 | & | -| dereference.rs:40:9:40:10 | a3 | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:40:14:40:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:40:14:40:42 | MyIntPointer {...} | | file://:0:0:0:0 | & | -| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T | file://:0:0:0:0 | & | -| dereference.rs:40:14:40:42 | MyIntPointer {...} | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:40:36:40:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:9:41:11 | _b3 | | {EXTERNAL LOCATION} | bool | -| dereference.rs:41:15:41:19 | (...) | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:15:41:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:15:41:19 | (...) | | file://:0:0:0:0 | & | | dereference.rs:41:15:41:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:15:41:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | -| dereference.rs:41:16:41:18 | * ... | | dereference.rs:4:1:6:1 | MyIntPointer | +| dereference.rs:41:16:41:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:16:41:18 | * ... | | file://:0:0:0:0 | & | | dereference.rs:41:16:41:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:17:41:18 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:41:17:41:18 | a3 | | file://:0:0:0:0 | & | -| dereference.rs:41:17:41:18 | a3 | &T | dereference.rs:4:1:6:1 | MyIntPointer | -| dereference.rs:41:17:41:18 | a3 | &T | file://:0:0:0:0 | & | -| dereference.rs:41:17:41:18 | a3 | &T.&T | {EXTERNAL LOCATION} | i64 | | dereference.rs:46:9:46:10 | c1 | | dereference.rs:17:1:19:1 | MySmartPointer | | dereference.rs:46:9:46:10 | c1 | T | {EXTERNAL LOCATION} | char | | dereference.rs:46:14:46:42 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | @@ -85,44 +61,32 @@ inferType | dereference.rs:47:15:47:24 | c1.deref() | | file://:0:0:0:0 | & | | dereference.rs:47:15:47:24 | c1.deref() | &T | {EXTERNAL LOCATION} | char | | dereference.rs:50:9:50:10 | c2 | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:50:9:50:10 | c2 | | file://:0:0:0:0 | & | -| dereference.rs:50:9:50:10 | c2 | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:50:9:50:10 | c2 | &T | file://:0:0:0:0 | & | | dereference.rs:50:9:50:10 | c2 | T | {EXTERNAL LOCATION} | char | | dereference.rs:50:14:50:42 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:50:14:50:42 | MySmartPointer {...} | | file://:0:0:0:0 | & | -| dereference.rs:50:14:50:42 | MySmartPointer {...} | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:50:14:50:42 | MySmartPointer {...} | &T | file://:0:0:0:0 | & | | dereference.rs:50:14:50:42 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | char | | dereference.rs:50:38:50:40 | 'a' | | {EXTERNAL LOCATION} | char | -| dereference.rs:51:9:51:11 | _d2 | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:9:51:11 | _d2 | | {EXTERNAL LOCATION} | char | | dereference.rs:51:9:51:11 | _d2 | | file://:0:0:0:0 | & | -| dereference.rs:51:15:51:17 | * ... | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:51:9:51:11 | _d2 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:51:15:51:17 | * ... | | {EXTERNAL LOCATION} | char | | dereference.rs:51:15:51:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:51:15:51:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:51:16:51:17 | c2 | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:51:16:51:17 | c2 | | file://:0:0:0:0 | & | -| dereference.rs:51:16:51:17 | c2 | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:51:16:51:17 | c2 | &T | file://:0:0:0:0 | & | | dereference.rs:51:16:51:17 | c2 | T | {EXTERNAL LOCATION} | char | | dereference.rs:54:9:54:10 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:54:9:54:10 | c3 | | file://:0:0:0:0 | & | -| dereference.rs:54:9:54:10 | c3 | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:54:9:54:10 | c3 | &T | file://:0:0:0:0 | & | | dereference.rs:54:9:54:10 | c3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:54:14:54:44 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:54:14:54:44 | MySmartPointer {...} | | file://:0:0:0:0 | & | -| dereference.rs:54:14:54:44 | MySmartPointer {...} | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:54:14:54:44 | MySmartPointer {...} | &T | file://:0:0:0:0 | & | | dereference.rs:54:14:54:44 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:54:38:54:42 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:55:15:55:19 | (...) | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:9:55:11 | _d3 | | {EXTERNAL LOCATION} | bool | +| dereference.rs:55:15:55:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:15:55:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:55:16:55:18 | * ... | | dereference.rs:17:1:19:1 | MySmartPointer | +| dereference.rs:55:15:55:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:55:15:55:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | +| dereference.rs:55:16:55:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:16:55:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:55:16:55:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:17:55:18 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:55:17:55:18 | c3 | | file://:0:0:0:0 | & | -| dereference.rs:55:17:55:18 | c3 | &T | dereference.rs:17:1:19:1 | MySmartPointer | -| dereference.rs:55:17:55:18 | c3 | &T | file://:0:0:0:0 | & | | dereference.rs:55:17:55:18 | c3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:60:9:60:10 | e1 | | file://:0:0:0:0 | & | | dereference.rs:60:9:60:10 | e1 | &T | {EXTERNAL LOCATION} | char | @@ -139,36 +103,32 @@ inferType | dereference.rs:61:15:61:24 | e1.deref() | | file://:0:0:0:0 | & | | dereference.rs:64:9:64:10 | e2 | | file://:0:0:0:0 | & | | dereference.rs:64:9:64:10 | e2 | &T | {EXTERNAL LOCATION} | char | -| dereference.rs:64:9:64:10 | e2 | &T | file://:0:0:0:0 | & | | dereference.rs:64:14:64:17 | &'a' | | file://:0:0:0:0 | & | | dereference.rs:64:14:64:17 | &'a' | &T | {EXTERNAL LOCATION} | char | -| dereference.rs:64:14:64:17 | &'a' | &T | file://:0:0:0:0 | & | | dereference.rs:64:15:64:17 | 'a' | | {EXTERNAL LOCATION} | char | -| dereference.rs:64:15:64:17 | 'a' | | file://:0:0:0:0 | & | | dereference.rs:65:9:65:11 | _f2 | | {EXTERNAL LOCATION} | char | | dereference.rs:65:9:65:11 | _f2 | | file://:0:0:0:0 | & | +| dereference.rs:65:9:65:11 | _f2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:65:15:65:17 | * ... | | {EXTERNAL LOCATION} | char | | dereference.rs:65:15:65:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:65:15:65:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:65:16:65:17 | e2 | | file://:0:0:0:0 | & | | dereference.rs:65:16:65:17 | e2 | &T | {EXTERNAL LOCATION} | char | -| dereference.rs:65:16:65:17 | e2 | &T | file://:0:0:0:0 | & | | dereference.rs:68:9:68:10 | e3 | | file://:0:0:0:0 | & | | dereference.rs:68:9:68:10 | e3 | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:68:9:68:10 | e3 | &T | file://:0:0:0:0 | & | | dereference.rs:68:14:68:19 | &34i64 | | file://:0:0:0:0 | & | | dereference.rs:68:14:68:19 | &34i64 | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:68:14:68:19 | &34i64 | &T | file://:0:0:0:0 | & | | dereference.rs:68:15:68:19 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:68:15:68:19 | 34i64 | | file://:0:0:0:0 | & | | dereference.rs:69:9:69:11 | _f3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:15:69:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:15:69:19 | (...) | | file://:0:0:0:0 | & | +| dereference.rs:69:15:69:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:15:69:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:16:69:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:16:69:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:69:16:69:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:17:69:18 | e3 | | file://:0:0:0:0 | & | | dereference.rs:69:17:69:18 | e3 | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:69:17:69:18 | e3 | &T | file://:0:0:0:0 | & | | dereference.rs:74:9:74:10 | g1 | | {EXTERNAL LOCATION} | Box | | dereference.rs:74:9:74:10 | g1 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:74:9:74:10 | g1 | T | {EXTERNAL LOCATION} | char | @@ -184,49 +144,37 @@ inferType | dereference.rs:75:15:75:24 | g1.deref() | | file://:0:0:0:0 | & | | dereference.rs:75:15:75:24 | g1.deref() | &T | {EXTERNAL LOCATION} | char | | dereference.rs:78:9:78:10 | g2 | | {EXTERNAL LOCATION} | Box | -| dereference.rs:78:9:78:10 | g2 | | file://:0:0:0:0 | & | -| dereference.rs:78:9:78:10 | g2 | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:78:9:78:10 | g2 | &T | file://:0:0:0:0 | & | | dereference.rs:78:9:78:10 | g2 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:78:9:78:10 | g2 | T | {EXTERNAL LOCATION} | char | | dereference.rs:78:25:78:37 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| dereference.rs:78:25:78:37 | ...::new(...) | | file://:0:0:0:0 | & | -| dereference.rs:78:25:78:37 | ...::new(...) | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:78:25:78:37 | ...::new(...) | &T | file://:0:0:0:0 | & | | dereference.rs:78:25:78:37 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | dereference.rs:78:25:78:37 | ...::new(...) | T | {EXTERNAL LOCATION} | char | | dereference.rs:78:34:78:36 | 'a' | | {EXTERNAL LOCATION} | char | -| dereference.rs:79:9:79:11 | _h2 | | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:9:79:11 | _h2 | | {EXTERNAL LOCATION} | char | | dereference.rs:79:9:79:11 | _h2 | | file://:0:0:0:0 | & | -| dereference.rs:79:15:79:17 | * ... | | {EXTERNAL LOCATION} | Box | +| dereference.rs:79:9:79:11 | _h2 | &T | {EXTERNAL LOCATION} | char | +| dereference.rs:79:15:79:17 | * ... | | {EXTERNAL LOCATION} | char | | dereference.rs:79:15:79:17 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:79:15:79:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:79:16:79:17 | g2 | | {EXTERNAL LOCATION} | Box | -| dereference.rs:79:16:79:17 | g2 | | file://:0:0:0:0 | & | -| dereference.rs:79:16:79:17 | g2 | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:79:16:79:17 | g2 | &T | file://:0:0:0:0 | & | | dereference.rs:79:16:79:17 | g2 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:79:16:79:17 | g2 | T | {EXTERNAL LOCATION} | char | | dereference.rs:82:9:82:10 | g3 | | {EXTERNAL LOCATION} | Box | -| dereference.rs:82:9:82:10 | g3 | | file://:0:0:0:0 | & | -| dereference.rs:82:9:82:10 | g3 | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:82:9:82:10 | g3 | &T | file://:0:0:0:0 | & | | dereference.rs:82:9:82:10 | g3 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:82:9:82:10 | g3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:82:24:82:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| dereference.rs:82:24:82:38 | ...::new(...) | | file://:0:0:0:0 | & | -| dereference.rs:82:24:82:38 | ...::new(...) | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:82:24:82:38 | ...::new(...) | &T | file://:0:0:0:0 | & | | dereference.rs:82:24:82:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | dereference.rs:82:24:82:38 | ...::new(...) | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:82:33:82:37 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:83:15:83:19 | (...) | | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:9:83:11 | _h3 | | {EXTERNAL LOCATION} | bool | +| dereference.rs:83:15:83:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:15:83:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:83:16:83:18 | * ... | | {EXTERNAL LOCATION} | Box | +| dereference.rs:83:15:83:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | +| dereference.rs:83:15:83:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | +| dereference.rs:83:16:83:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:16:83:18 | * ... | | file://:0:0:0:0 | & | +| dereference.rs:83:16:83:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:17:83:18 | g3 | | {EXTERNAL LOCATION} | Box | -| dereference.rs:83:17:83:18 | g3 | | file://:0:0:0:0 | & | -| dereference.rs:83:17:83:18 | g3 | &T | {EXTERNAL LOCATION} | Box | -| dereference.rs:83:17:83:18 | g3 | &T | file://:0:0:0:0 | & | | dereference.rs:83:17:83:18 | g3 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:83:17:83:18 | g3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:88:9:88:9 | x | | dereference.rs:4:1:6:1 | MyIntPointer | @@ -1549,34 +1497,36 @@ inferType | main.rs:1103:33:1103:36 | SelfParam | | main.rs:1101:5:1104:5 | Self [trait ATrait] | | main.rs:1109:29:1109:33 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1109:29:1109:33 | SelfParam | &T | file://:0:0:0:0 | & | -| main.rs:1109:29:1109:33 | SelfParam | &T.&T | file://:0:0:0:0 | & | +| main.rs:1109:29:1109:33 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1109:29:1109:33 | SelfParam | &T.&T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1109:29:1109:33 | SelfParam | &T.&T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1109:43:1111:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | main.rs:1110:13:1110:22 | (...) | | file://:0:0:0:0 | & | | main.rs:1110:13:1110:22 | (...) | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:13:1110:22 | (...) | &T | file://:0:0:0:0 | & | | main.rs:1110:13:1110:22 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:13:1110:22 | (...) | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:13:1110:24 | ... .a | | {EXTERNAL LOCATION} | i64 | | main.rs:1110:14:1110:21 | * ... | | file://:0:0:0:0 | & | | main.rs:1110:14:1110:21 | * ... | | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:14:1110:21 | * ... | &T | file://:0:0:0:0 | & | | main.rs:1110:14:1110:21 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | +| main.rs:1110:14:1110:21 | * ... | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:15:1110:21 | (...) | | file://:0:0:0:0 | & | +| main.rs:1110:15:1110:21 | (...) | | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:15:1110:21 | (...) | &T | file://:0:0:0:0 | & | | main.rs:1110:15:1110:21 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:15:1110:21 | (...) | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:16:1110:20 | * ... | | file://:0:0:0:0 | & | +| main.rs:1110:16:1110:20 | * ... | | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:16:1110:20 | * ... | &T | file://:0:0:0:0 | & | | main.rs:1110:16:1110:20 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:16:1110:20 | * ... | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:17:1110:20 | self | | file://:0:0:0:0 | & | | main.rs:1110:17:1110:20 | self | &T | file://:0:0:0:0 | & | -| main.rs:1110:17:1110:20 | self | &T.&T | file://:0:0:0:0 | & | +| main.rs:1110:17:1110:20 | self | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:17:1110:20 | self | &T.&T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:17:1110:20 | self | &T.&T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1114:33:1114:36 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1114:33:1114:36 | SelfParam | &T | file://:0:0:0:0 | & | | main.rs:1114:33:1114:36 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1114:33:1114:36 | SelfParam | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1114:46:1116:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | main.rs:1115:13:1115:19 | (...) | | file://:0:0:0:0 | & | | main.rs:1115:13:1115:19 | (...) | | main.rs:1082:5:1085:5 | MyInt | @@ -1586,9 +1536,7 @@ inferType | main.rs:1115:14:1115:18 | * ... | | main.rs:1082:5:1085:5 | MyInt | | main.rs:1115:14:1115:18 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1115:15:1115:18 | self | | file://:0:0:0:0 | & | -| main.rs:1115:15:1115:18 | self | &T | file://:0:0:0:0 | & | | main.rs:1115:15:1115:18 | self | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1115:15:1115:18 | self | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1120:13:1120:14 | x1 | | main.rs:1076:5:1077:19 | S | | main.rs:1120:13:1120:14 | x1 | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1120:18:1120:22 | S(...) | | main.rs:1076:5:1077:19 | S | @@ -1675,21 +1623,12 @@ inferType | main.rs:1141:26:1141:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1141:26:1141:29 | x5.0 | | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:13:1143:14 | x6 | | file://:0:0:0:0 | & | -| main.rs:1143:13:1143:14 | x6 | &T | file://:0:0:0:0 | & | | main.rs:1143:13:1143:14 | x6 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1143:13:1143:14 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1143:13:1143:14 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:13:1143:14 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:18:1143:23 | &... | | file://:0:0:0:0 | & | -| main.rs:1143:18:1143:23 | &... | &T | file://:0:0:0:0 | & | | main.rs:1143:18:1143:23 | &... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1143:18:1143:23 | &... | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1143:18:1143:23 | &... | &T.&T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:18:1143:23 | &... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1143:19:1143:23 | S(...) | | file://:0:0:0:0 | & | | main.rs:1143:19:1143:23 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1143:19:1143:23 | S(...) | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1143:19:1143:23 | S(...) | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:19:1143:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:21:1143:22 | S2 | | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:18:1146:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | @@ -1705,10 +1644,7 @@ inferType | main.rs:1146:27:1146:29 | * ... | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:27:1146:29 | * ... | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:28:1146:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1146:28:1146:29 | x6 | &T | file://:0:0:0:0 | & | | main.rs:1146:28:1146:29 | x6 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:28:1146:29 | x6 | &T.&T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:28:1146:29 | x6 | &T.&T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:28:1146:29 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1148:13:1148:14 | x7 | | main.rs:1076:5:1077:19 | S | | main.rs:1148:13:1148:14 | x7 | T | file://:0:0:0:0 | & | @@ -1915,20 +1851,27 @@ inferType | main.rs:1251:16:1251:16 | x | | main.rs:1227:5:1227:13 | S | | main.rs:1253:13:1253:13 | n | | {EXTERNAL LOCATION} | bool | | main.rs:1253:13:1253:13 | n | | file://:0:0:0:0 | & | +| main.rs:1253:13:1253:13 | n | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:13:1253:13 | n | &T | file://:0:0:0:0 | & | +| main.rs:1253:13:1253:13 | n | &T.&T | {EXTERNAL LOCATION} | bool | | main.rs:1253:17:1253:24 | * ... | | {EXTERNAL LOCATION} | bool | | main.rs:1253:17:1253:24 | * ... | | file://:0:0:0:0 | & | +| main.rs:1253:17:1253:24 | * ... | &T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:17:1253:24 | * ... | &T | file://:0:0:0:0 | & | +| main.rs:1253:17:1253:24 | * ... | &T.&T | {EXTERNAL LOCATION} | bool | +| main.rs:1253:18:1253:24 | * ... | | {EXTERNAL LOCATION} | bool | | main.rs:1253:18:1253:24 | * ... | | file://:0:0:0:0 | & | | main.rs:1253:18:1253:24 | * ... | &T | {EXTERNAL LOCATION} | bool | | main.rs:1253:18:1253:24 | * ... | &T | file://:0:0:0:0 | & | +| main.rs:1253:18:1253:24 | * ... | &T.&T | {EXTERNAL LOCATION} | bool | | main.rs:1253:19:1253:24 | &... | | file://:0:0:0:0 | & | +| main.rs:1253:19:1253:24 | &... | &T | {EXTERNAL LOCATION} | bool | | main.rs:1253:19:1253:24 | &... | &T | file://:0:0:0:0 | & | | main.rs:1253:19:1253:24 | &... | &T.&T | {EXTERNAL LOCATION} | bool | -| main.rs:1253:19:1253:24 | &... | &T.&T | file://:0:0:0:0 | & | +| main.rs:1253:20:1253:24 | &true | | {EXTERNAL LOCATION} | bool | | main.rs:1253:20:1253:24 | &true | | file://:0:0:0:0 | & | | main.rs:1253:20:1253:24 | &true | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1253:20:1253:24 | &true | &T | file://:0:0:0:0 | & | | main.rs:1253:21:1253:24 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1253:21:1253:24 | true | | file://:0:0:0:0 | & | | main.rs:1257:13:1257:20 | mut flag | | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1257:24:1257:41 | ...::default(...) | | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1258:22:1258:30 | &mut flag | | file://:0:0:0:0 | & | @@ -2794,6 +2737,8 @@ inferType | main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1716:46:1716:46 | 0 | | {EXTERNAL LOCATION} | i64 | | main.rs:1716:52:1716:63 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1720:13:1720:24 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | +| main.rs:1720:28:1720:45 | ...::default(...) | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1721:13:1721:26 | vec2_zero_plus | | {EXTERNAL LOCATION} | bool | | main.rs:1721:30:1721:48 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1721:30:1721:64 | ... == ... | | {EXTERNAL LOCATION} | bool | @@ -2801,6 +2746,7 @@ inferType | main.rs:1721:40:1721:40 | 0 | | {EXTERNAL LOCATION} | i64 | | main.rs:1721:46:1721:46 | 0 | | {EXTERNAL LOCATION} | i32 | | main.rs:1721:46:1721:46 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1721:53:1721:64 | default_vec2 | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1731:18:1731:21 | SelfParam | | main.rs:1728:5:1728:14 | S1 | | main.rs:1734:25:1736:5 | { ... } | | main.rs:1728:5:1728:14 | S1 | | main.rs:1735:9:1735:10 | S1 | | main.rs:1728:5:1728:14 | S1 | @@ -2990,14 +2936,14 @@ inferType | main.rs:1899:19:1899:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1899:26:1899:30 | value | | file://:0:0:0:0 | & | | main.rs:1899:26:1899:30 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:26:1899:30 | value | &T | file://:0:0:0:0 | & | | main.rs:1899:47:1901:9 | { ... } | | {EXTERNAL LOCATION} | i64 | | main.rs:1899:47:1901:9 | { ... } | | file://:0:0:0:0 | & | +| main.rs:1899:47:1901:9 | { ... } | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1900:13:1900:18 | * ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1900:13:1900:18 | * ... | | file://:0:0:0:0 | & | +| main.rs:1900:13:1900:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1900:14:1900:18 | value | | file://:0:0:0:0 | & | | main.rs:1900:14:1900:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:14:1900:18 | value | &T | file://:0:0:0:0 | & | | main.rs:1906:19:1906:23 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1906:19:1906:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1906:26:1906:30 | value | | {EXTERNAL LOCATION} | bool | From 6b2c125bb0cf1a386ce701cae5c09576a9391fb5 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Thu, 19 Jun 2025 16:14:22 +0200 Subject: [PATCH 161/340] Rust: Updated expected files --- .../test/library-tests/dataflow/global/main.rs | 2 +- .../dataflow/global/viableCallable.expected | 2 ++ .../dataflow/local/DataFlowStep.expected | 18 ++++++++++++++++++ .../PathResolutionConsistency.expected | 3 +++ .../PathResolutionConsistency.expected | 6 ++++++ 5 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/test/library-tests/dataflow/global/main.rs b/rust/ql/test/library-tests/dataflow/global/main.rs index 6ca8f20f027..fb5acfb7c60 100644 --- a/rust/ql/test/library-tests/dataflow/global/main.rs +++ b/rust/ql/test/library-tests/dataflow/global/main.rs @@ -227,7 +227,7 @@ fn test_operator_overloading() { let a = MyInt { value: source(28) }; let c = *a; - sink(c); // $ MISSING: hasValueFlow=28 + sink(c); // $ hasTaintFlow=28 MISSING: hasValueFlow=28 } trait MyTrait { diff --git a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected index be147a36ed3..6fdac9700b6 100644 --- a/rust/ql/test/library-tests/dataflow/global/viableCallable.expected +++ b/rust/ql/test/library-tests/dataflow/global/viableCallable.expected @@ -40,6 +40,8 @@ | main.rs:165:13:165:34 | ...::new(...) | main.rs:158:5:161:5 | fn new | | main.rs:165:24:165:33 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:167:5:167:11 | sink(...) | main.rs:5:1:7:1 | fn sink | +| main.rs:181:10:181:14 | * ... | main.rs:188:5:190:5 | fn deref | +| main.rs:189:11:189:15 | * ... | main.rs:188:5:190:5 | fn deref | | main.rs:195:28:195:36 | source(...) | main.rs:1:1:3:1 | fn source | | main.rs:197:13:197:17 | ... + ... | main.rs:173:5:176:5 | fn add | | main.rs:198:5:198:17 | sink(...) | main.rs:5:1:7:1 | fn sink | diff --git a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected index dd9bb4ae810..10fe084f0a2 100644 --- a/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected +++ b/rust/ql/test/library-tests/dataflow/local/DataFlowStep.expected @@ -114,6 +114,8 @@ localStep | main.rs:89:9:89:9 | i | main.rs:89:9:89:9 | [SSA] i | | main.rs:89:9:89:9 | i | main.rs:89:9:89:9 | i | | main.rs:89:13:89:31 | ...::new(...) | main.rs:89:9:89:9 | i | +| main.rs:90:11:90:11 | [post] receiver for i | main.rs:90:11:90:11 | [post] i | +| main.rs:90:11:90:11 | i | main.rs:90:11:90:11 | receiver for i | | main.rs:97:9:97:9 | [SSA] a | main.rs:98:10:98:10 | a | | main.rs:97:9:97:9 | a | main.rs:97:9:97:9 | [SSA] a | | main.rs:97:9:97:9 | a | main.rs:97:9:97:9 | a | @@ -732,6 +734,8 @@ localStep | main.rs:482:11:482:19 | vs.iter() | main.rs:482:11:482:19 | receiver for vs.iter() | | main.rs:482:11:482:26 | ... .next() | main.rs:482:11:482:26 | receiver for ... .next() | | main.rs:482:11:482:26 | [post] receiver for ... .next() | main.rs:482:11:482:26 | [post] ... .next() | +| main.rs:482:11:482:35 | ... .unwrap() | main.rs:482:11:482:35 | receiver for ... .unwrap() | +| main.rs:482:11:482:35 | [post] receiver for ... .unwrap() | main.rs:482:11:482:35 | [post] ... .unwrap() | | main.rs:483:11:483:12 | [post] receiver for vs | main.rs:483:11:483:12 | [post] vs | | main.rs:483:11:483:12 | [post] vs | main.rs:485:14:485:15 | vs | | main.rs:483:11:483:12 | vs | main.rs:483:11:483:12 | receiver for vs | @@ -740,6 +744,8 @@ localStep | main.rs:483:11:483:19 | vs.iter() | main.rs:483:11:483:19 | receiver for vs.iter() | | main.rs:483:11:483:26 | ... .nth(...) | main.rs:483:11:483:26 | receiver for ... .nth(...) | | main.rs:483:11:483:26 | [post] receiver for ... .nth(...) | main.rs:483:11:483:26 | [post] ... .nth(...) | +| main.rs:483:11:483:35 | ... .unwrap() | main.rs:483:11:483:35 | receiver for ... .unwrap() | +| main.rs:483:11:483:35 | [post] receiver for ... .unwrap() | main.rs:483:11:483:35 | [post] ... .unwrap() | | main.rs:485:9:485:9 | [SSA] v | main.rs:486:14:486:14 | v | | main.rs:485:9:485:9 | v | main.rs:485:9:485:9 | [SSA] v | | main.rs:485:9:485:9 | v | main.rs:485:9:485:9 | v | @@ -774,6 +780,8 @@ localStep | main.rs:497:20:497:20 | [SSA] x | main.rs:497:29:497:29 | x | | main.rs:497:20:497:20 | x | main.rs:497:20:497:20 | [SSA] x | | main.rs:497:20:497:20 | x | main.rs:497:20:497:20 | x | +| main.rs:497:29:497:29 | [post] receiver for x | main.rs:497:29:497:29 | [post] x | +| main.rs:497:29:497:29 | x | main.rs:497:29:497:29 | receiver for x | | main.rs:498:5:498:6 | [post] receiver for vs | main.rs:498:5:498:6 | [post] vs | | main.rs:498:5:498:6 | [post] vs | main.rs:500:14:500:15 | vs | | main.rs:498:5:498:6 | vs | main.rs:498:5:498:6 | receiver for vs | @@ -784,6 +792,8 @@ localStep | main.rs:498:25:498:25 | [SSA] x | main.rs:498:34:498:34 | x | | main.rs:498:25:498:25 | x | main.rs:498:25:498:25 | [SSA] x | | main.rs:498:25:498:25 | x | main.rs:498:25:498:25 | x | +| main.rs:498:34:498:34 | [post] receiver for x | main.rs:498:34:498:34 | [post] x | +| main.rs:498:34:498:34 | x | main.rs:498:34:498:34 | receiver for x | | main.rs:500:9:500:9 | [SSA] v | main.rs:501:14:501:14 | v | | main.rs:500:9:500:9 | v | main.rs:500:9:500:9 | [SSA] v | | main.rs:500:9:500:9 | v | main.rs:500:9:500:9 | v | @@ -809,6 +819,8 @@ localStep | main.rs:507:11:507:23 | vs_mut.iter() | main.rs:507:11:507:23 | receiver for vs_mut.iter() | | main.rs:507:11:507:30 | ... .next() | main.rs:507:11:507:30 | receiver for ... .next() | | main.rs:507:11:507:30 | [post] receiver for ... .next() | main.rs:507:11:507:30 | [post] ... .next() | +| main.rs:507:11:507:39 | ... .unwrap() | main.rs:507:11:507:39 | receiver for ... .unwrap() | +| main.rs:507:11:507:39 | [post] receiver for ... .unwrap() | main.rs:507:11:507:39 | [post] ... .unwrap() | | main.rs:508:11:508:16 | [SSA] vs_mut | main.rs:510:19:510:24 | vs_mut | | main.rs:508:11:508:16 | [post] receiver for vs_mut | main.rs:508:11:508:16 | [post] vs_mut | | main.rs:508:11:508:16 | [post] vs_mut | main.rs:510:19:510:24 | vs_mut | @@ -818,6 +830,8 @@ localStep | main.rs:508:11:508:23 | vs_mut.iter() | main.rs:508:11:508:23 | receiver for vs_mut.iter() | | main.rs:508:11:508:30 | ... .nth(...) | main.rs:508:11:508:30 | receiver for ... .nth(...) | | main.rs:508:11:508:30 | [post] receiver for ... .nth(...) | main.rs:508:11:508:30 | [post] ... .nth(...) | +| main.rs:508:11:508:39 | ... .unwrap() | main.rs:508:11:508:39 | receiver for ... .unwrap() | +| main.rs:508:11:508:39 | [post] receiver for ... .unwrap() | main.rs:508:11:508:39 | [post] ... .unwrap() | | main.rs:510:5:512:5 | for ... in ... { ... } | main.rs:478:16:513:1 | { ... } | | main.rs:510:14:510:14 | [SSA] v | main.rs:511:14:511:14 | v | | main.rs:510:14:510:14 | v | main.rs:510:14:510:14 | [SSA] v | @@ -842,6 +856,8 @@ localStep | main.rs:519:17:519:18 | &c | main.rs:519:9:519:13 | c_ref | | main.rs:523:14:523:18 | [post] c_ref | main.rs:524:11:524:15 | c_ref | | main.rs:523:14:523:18 | c_ref | main.rs:524:11:524:15 | c_ref | +| main.rs:524:11:524:15 | [post] receiver for c_ref | main.rs:524:11:524:15 | [post] c_ref | +| main.rs:524:11:524:15 | c_ref | main.rs:524:11:524:15 | receiver for c_ref | | main.rs:528:9:528:9 | [SSA] a | main.rs:530:10:530:10 | a | | main.rs:528:9:528:9 | a | main.rs:528:9:528:9 | [SSA] a | | main.rs:528:9:528:9 | a | main.rs:528:9:528:9 | a | @@ -867,6 +883,7 @@ localStep | main.rs:577:36:577:41 | [post] MacroExpr | main.rs:577:36:577:41 | [post] ...::new(...) | readStep | main.rs:36:9:36:15 | Some(...) | {EXTERNAL LOCATION} | Some | main.rs:36:14:36:14 | _ | +| main.rs:90:11:90:11 | [post] receiver for i | file://:0:0:0:0 | &ref | main.rs:90:11:90:11 | [post] i | | main.rs:90:11:90:11 | i | file://:0:0:0:0 | &ref | main.rs:90:10:90:11 | * ... | | main.rs:98:10:98:10 | a | file://:0:0:0:0 | tuple.0 | main.rs:98:10:98:12 | a.0 | | main.rs:99:10:99:10 | a | file://:0:0:0:0 | tuple.1 | main.rs:99:10:99:12 | a.1 | @@ -981,6 +998,7 @@ readStep | main.rs:510:19:510:35 | vs_mut.iter_mut() | file://:0:0:0:0 | element | main.rs:510:9:510:14 | &mut ... | | main.rs:524:11:524:15 | c_ref | file://:0:0:0:0 | &ref | main.rs:524:10:524:15 | * ... | storeStep +| main.rs:90:11:90:11 | i | file://:0:0:0:0 | &ref | main.rs:90:11:90:11 | receiver for i | | main.rs:97:14:97:22 | source(...) | file://:0:0:0:0 | tuple.0 | main.rs:97:13:97:26 | TupleExpr | | main.rs:97:25:97:25 | 2 | file://:0:0:0:0 | tuple.1 | main.rs:97:13:97:26 | TupleExpr | | main.rs:103:14:103:14 | 2 | file://:0:0:0:0 | tuple.0 | main.rs:103:13:103:30 | TupleExpr | diff --git a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..81551e369e2 --- /dev/null +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,3 @@ +multipleMethodCallTargets +| dereference.rs:61:15:61:24 | e1.deref() | file://:0:0:0:0 | fn deref | +| dereference.rs:61:15:61:24 | e1.deref() | file://:0:0:0:0 | fn deref | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 36e75877d2b..b67b05a0531 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -5,3 +5,9 @@ multipleMethodCallTargets | test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | +| test_logging.rs:103:12:103:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | +| test_logging.rs:103:12:103:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | +| test_logging.rs:107:14:107:46 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | +| test_logging.rs:107:14:107:46 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | +| test_logging.rs:111:12:111:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | +| test_logging.rs:111:12:111:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | From 7c25bcdad161b573f14452f49d986fa909e81ac4 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 08:06:03 +0200 Subject: [PATCH 162/340] Changed `js/duplicate-condition` to `reliability` and `correctness` --- javascript/ql/src/Expressions/DuplicateCondition.ql | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/javascript/ql/src/Expressions/DuplicateCondition.ql b/javascript/ql/src/Expressions/DuplicateCondition.ql index 75f020d382a..1f58d9d200a 100644 --- a/javascript/ql/src/Expressions/DuplicateCondition.ql +++ b/javascript/ql/src/Expressions/DuplicateCondition.ql @@ -6,8 +6,8 @@ * @problem.severity warning * @id js/duplicate-condition * @tags quality - * maintainability - * readability + * reliability + * correctness * external/cwe/cwe-561 * @precision very-high */ From e935bd6faf58744d1b69f3faaa418156b1f1b976 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 11:19:06 +0200 Subject: [PATCH 163/340] Rust: expand derive macros --- misc/codegen/templates/rust_classes.mustache | 14 + rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 731 ++++---- rust/extractor/src/translate/base.rs | 98 +- rust/ql/.generated.list | 32 +- rust/ql/.gitattributes | 6 + rust/ql/lib/codeql/rust/elements.qll | 1 + rust/ql/lib/codeql/rust/elements/Adt.qll | 13 + rust/ql/lib/codeql/rust/elements/Enum.qll | 2 +- rust/ql/lib/codeql/rust/elements/Struct.qll | 2 +- rust/ql/lib/codeql/rust/elements/Union.qll | 2 +- .../codeql/rust/elements/internal/AdtImpl.qll | 19 + .../rust/elements/internal/generated/Adt.qll | 45 + .../rust/elements/internal/generated/Enum.qll | 4 +- .../internal/generated/ParentChild.qll | 292 +-- .../rust/elements/internal/generated/Raw.qll | 273 +-- .../elements/internal/generated/Struct.qll | 4 +- .../elements/internal/generated/Synth.qll | 51 +- .../elements/internal/generated/Union.qll | 4 +- rust/ql/lib/rust.dbscheme | 297 +-- .../extractor-tests/generated/Enum/Enum.ql | 12 +- .../Enum/Enum_getDeriveMacroExpansion.ql | 7 + .../generated/Struct/Struct.ql | 13 +- .../Struct/Struct_getDeriveMacroExpansion.ql | 7 + .../extractor-tests/generated/Union/Union.ql | 13 +- .../Union/Union_getDeriveMacroExpansion.ql | 7 + .../macro-expansion/PrintAst.expected | 1635 +++++++++++++++++ .../macro-expansion/macro_expansion.rs | 24 +- .../macro-expansion/proc_macro.rs | 17 + .../macro-expansion/test.expected | 6 + .../extractor-tests/macro-expansion/test.ql | 4 + rust/schema/annotations.py | 13 +- 32 files changed, 2856 insertions(+), 794 deletions(-) create mode 100644 rust/ql/lib/codeql/rust/elements/Adt.qll create mode 100644 rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll create mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll create mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql create mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql create mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql diff --git a/misc/codegen/templates/rust_classes.mustache b/misc/codegen/templates/rust_classes.mustache index 77a0335da51..b30a039e522 100644 --- a/misc/codegen/templates/rust_classes.mustache +++ b/misc/codegen/templates/rust_classes.mustache @@ -66,6 +66,20 @@ impl {{name}} { pub fn emit_{{singular_field_name}}(id: trap::Label{{^is_predicate}}{{#is_repeated}}{{^is_unordered}}, i: usize{{/is_unordered}}{{/is_repeated}}, value: {{base_type}}{{/is_predicate}}, out: &mut trap::Writer) { out.add_tuple("{{table_name}}", vec![id.into(){{^is_predicate}}{{#is_repeated}}{{^is_unordered}}, i.into(){{/is_unordered}}{{/is_repeated}}, value.into(){{/is_predicate}}]); } + + {{#is_repeated}} + pub fn emit_{{field_name}}(id: trap::Label, values: impl IntoIterator, out: &mut trap::Writer) { + values + .into_iter() + {{^is_unordered}} + .enumerate() + .for_each(|(i, value)| Self::emit_{{singular_field_name}}(id, i, value, out)); + {{/is_unordered}} + {{#is_unordered}} + .for_each(|value| Self::emit_{{singular_field_name}}(id, value, out)); + {{/is_unordered}} + } + {{/is_repeated}} {{/detached_fields}} } {{/has_detached_fields}} diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 121c5b5a7aa..356bff6824f 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 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de +top.rs 78da6fde6bc6f66baf63b298b3d565d6a057b54e891f739a3510aff4563a9f1b 78da6fde6bc6f66baf63b298b3d565d6a057b54e891f739a3510aff4563a9f1b diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index fd9b0ca6b91..88fb5167b2a 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -335,9 +335,11 @@ impl Addressable { pub fn emit_extended_canonical_path(id: trap::Label, value: String, out: &mut trap::Writer) { out.add_tuple("addressable_extended_canonical_paths", vec![id.into(), value.into()]); } + pub fn emit_crate_origin(id: trap::Label, value: String, out: &mut trap::Writer) { out.add_tuple("addressable_crate_origins", vec![id.into(), value.into()]); } + } impl trap::TrapClass for Addressable { @@ -2058,9 +2060,11 @@ impl PathSegment { pub fn emit_type_repr(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { out.add_tuple("path_segment_type_reprs", vec![id.into(), value.into()]); } + pub fn emit_trait_type_repr(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { out.add_tuple("path_segment_trait_type_reprs", vec![id.into(), value.into()]); } + } impl trap::TrapClass for PathSegment { @@ -2153,9 +2157,11 @@ impl Resolvable { pub fn emit_resolved_path(id: trap::Label, value: String, out: &mut trap::Writer) { out.add_tuple("resolvable_resolved_paths", vec![id.into(), value.into()]); } + pub fn emit_resolved_crate_origin(id: trap::Label, value: String, out: &mut trap::Writer) { out.add_tuple("resolvable_resolved_crate_origins", vec![id.into(), value.into()]); } + } impl trap::TrapClass for Resolvable { @@ -5764,6 +5770,7 @@ impl Item { pub fn emit_attribute_macro_expansion(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { out.add_tuple("item_attribute_macro_expansions", vec![id.into(), value.into()]); } + } impl trap::TrapClass for Item { @@ -8865,6 +8872,82 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct Adt { + _unused: () +} + +impl Adt { + pub fn emit_derive_macro_expansion(id: trap::Label, i: usize, value: trap::Label, out: &mut trap::Writer) { + out.add_tuple("adt_derive_macro_expansions", vec![id.into(), i.into(), value.into()]); + } + + pub fn emit_derive_macro_expansions(id: trap::Label, values: impl IntoIterator>, out: &mut trap::Writer) { + values + .into_iter() + .enumerate() + .for_each(|(i, value)| Self::emit_derive_macro_expansion(id, i, value, out)); + } +} + +impl trap::TrapClass for Adt { + fn class_name() -> &'static str { "Adt" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Adt is a subclass of Item + 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 Adt is a subclass of Stmt + 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 Adt 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 Adt 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 Adt is a subclass of Element + 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 Adt is a subclass of Addressable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct BlockExpr { pub id: trap::TrapId, @@ -9088,6 +9171,7 @@ impl Const { pub fn emit_has_implementation(id: trap::Label, out: &mut trap::Writer) { out.add_tuple("const_has_implementation", vec![id.into()]); } + } impl trap::TrapClass for Const { @@ -9157,103 +9241,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct Enum { - pub id: trap::TrapId, - pub attrs: Vec>, - pub generic_param_list: Option>, - pub name: Option>, - pub variant_list: Option>, - pub visibility: Option>, - pub where_clause: Option>, -} - -impl trap::TrapEntry for Enum { - 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("enums", vec![id.into()]); - for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("enum_attrs", vec![id.into(), i.into(), v.into()]); - } - if let Some(v) = self.generic_param_list { - out.add_tuple("enum_generic_param_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.name { - out.add_tuple("enum_names", vec![id.into(), v.into()]); - } - if let Some(v) = self.variant_list { - out.add_tuple("enum_variant_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.visibility { - out.add_tuple("enum_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("enum_where_clauses", vec![id.into(), v.into()]); - } - } -} - -impl trap::TrapClass for Enum { - fn class_name() -> &'static str { "Enum" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Enum is a subclass of Item - 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 Enum is a subclass of Stmt - 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 Enum 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 Enum 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 Enum is a subclass of Element - 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 Enum is a subclass of Addressable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct ExternBlock { pub id: trap::TrapId, @@ -9507,6 +9494,7 @@ impl Function { pub fn emit_has_implementation(id: trap::Label, out: &mut trap::Writer) { out.add_tuple("function_has_implementation", vec![id.into()]); } + } impl trap::TrapClass for Function { @@ -9792,6 +9780,7 @@ impl MacroCall { pub fn emit_macro_call_expansion(id: trap::Label, value: trap::Label, out: &mut trap::Writer) { out.add_tuple("macro_call_macro_call_expansions", vec![id.into(), value.into()]); } + } impl trap::TrapClass for MacroCall { @@ -10515,112 +10504,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct Struct { - pub id: trap::TrapId, - pub attrs: Vec>, - pub field_list: Option>, - pub generic_param_list: Option>, - pub name: Option>, - pub visibility: Option>, - pub where_clause: Option>, -} - -impl trap::TrapEntry for Struct { - 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("structs", vec![id.into()]); - for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("struct_attrs", vec![id.into(), i.into(), v.into()]); - } - if let Some(v) = self.field_list { - out.add_tuple("struct_field_lists_", vec![id.into(), v.into()]); - } - if let Some(v) = self.generic_param_list { - out.add_tuple("struct_generic_param_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.name { - out.add_tuple("struct_names", vec![id.into(), v.into()]); - } - if let Some(v) = self.visibility { - out.add_tuple("struct_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("struct_where_clauses", vec![id.into(), v.into()]); - } - } -} - -impl trap::TrapClass for Struct { - fn class_name() -> &'static str { "Struct" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Struct is a subclass of Item - 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 Struct is a subclass of Stmt - 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 Struct 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 Struct 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 Struct is a subclass of Element - 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 Struct is a subclass of Addressable - 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 Struct is a subclass of VariantDef - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct StructExpr { pub id: trap::TrapId, @@ -11193,112 +11076,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct Union { - pub id: trap::TrapId, - pub attrs: Vec>, - pub generic_param_list: Option>, - pub name: Option>, - pub struct_field_list: Option>, - pub visibility: Option>, - pub where_clause: Option>, -} - -impl trap::TrapEntry for Union { - 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("unions", vec![id.into()]); - for (i, v) in self.attrs.into_iter().enumerate() { - out.add_tuple("union_attrs", vec![id.into(), i.into(), v.into()]); - } - if let Some(v) = self.generic_param_list { - out.add_tuple("union_generic_param_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.name { - out.add_tuple("union_names", vec![id.into(), v.into()]); - } - if let Some(v) = self.struct_field_list { - out.add_tuple("union_struct_field_lists", vec![id.into(), v.into()]); - } - if let Some(v) = self.visibility { - out.add_tuple("union_visibilities", vec![id.into(), v.into()]); - } - if let Some(v) = self.where_clause { - out.add_tuple("union_where_clauses", vec![id.into(), v.into()]); - } - } -} - -impl trap::TrapClass for Union { - fn class_name() -> &'static str { "Union" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Union is a subclass of Item - 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 Union is a subclass of Stmt - 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 Union 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 Union 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 Union is a subclass of Element - 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 Union is a subclass of Addressable - 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 Union is a subclass of VariantDef - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct Use { pub id: trap::TrapId, @@ -11384,6 +11161,112 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct Enum { + pub id: trap::TrapId, + pub attrs: Vec>, + pub generic_param_list: Option>, + pub name: Option>, + pub variant_list: Option>, + pub visibility: Option>, + pub where_clause: Option>, +} + +impl trap::TrapEntry for Enum { + 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("enums", vec![id.into()]); + for (i, v) in self.attrs.into_iter().enumerate() { + out.add_tuple("enum_attrs", vec![id.into(), i.into(), v.into()]); + } + if let Some(v) = self.generic_param_list { + out.add_tuple("enum_generic_param_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.name { + out.add_tuple("enum_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.variant_list { + out.add_tuple("enum_variant_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("enum_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("enum_where_clauses", vec![id.into(), v.into()]); + } + } +} + +impl trap::TrapClass for Enum { + fn class_name() -> &'static str { "Enum" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Enum is a subclass of Adt + 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 Enum is a subclass of Item + 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 Enum is a subclass of Stmt + 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 Enum 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 Enum 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 Enum is a subclass of Element + 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 Enum is a subclass of Addressable + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct ForExpr { pub id: trap::TrapId, @@ -11562,6 +11445,236 @@ impl From> for trap::Label { } } +#[derive(Debug)] +pub struct Struct { + pub id: trap::TrapId, + pub attrs: Vec>, + pub field_list: Option>, + pub generic_param_list: Option>, + pub name: Option>, + pub visibility: Option>, + pub where_clause: Option>, +} + +impl trap::TrapEntry for Struct { + 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("structs", vec![id.into()]); + for (i, v) in self.attrs.into_iter().enumerate() { + out.add_tuple("struct_attrs", vec![id.into(), i.into(), v.into()]); + } + if let Some(v) = self.field_list { + out.add_tuple("struct_field_lists_", vec![id.into(), v.into()]); + } + if let Some(v) = self.generic_param_list { + out.add_tuple("struct_generic_param_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.name { + out.add_tuple("struct_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("struct_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("struct_where_clauses", vec![id.into(), v.into()]); + } + } +} + +impl trap::TrapClass for Struct { + fn class_name() -> &'static str { "Struct" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Struct is a subclass of Adt + 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 Struct is a subclass of Item + 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 Struct is a subclass of Stmt + 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 Struct 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 Struct 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 Struct is a subclass of Element + 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 Struct is a subclass of Addressable + 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 Struct is a subclass of VariantDef + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + +#[derive(Debug)] +pub struct Union { + pub id: trap::TrapId, + pub attrs: Vec>, + pub generic_param_list: Option>, + pub name: Option>, + pub struct_field_list: Option>, + pub visibility: Option>, + pub where_clause: Option>, +} + +impl trap::TrapEntry for Union { + 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("unions", vec![id.into()]); + for (i, v) in self.attrs.into_iter().enumerate() { + out.add_tuple("union_attrs", vec![id.into(), i.into(), v.into()]); + } + if let Some(v) = self.generic_param_list { + out.add_tuple("union_generic_param_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.name { + out.add_tuple("union_names", vec![id.into(), v.into()]); + } + if let Some(v) = self.struct_field_list { + out.add_tuple("union_struct_field_lists", vec![id.into(), v.into()]); + } + if let Some(v) = self.visibility { + out.add_tuple("union_visibilities", vec![id.into(), v.into()]); + } + if let Some(v) = self.where_clause { + out.add_tuple("union_where_clauses", vec![id.into(), v.into()]); + } + } +} + +impl trap::TrapClass for Union { + fn class_name() -> &'static str { "Union" } +} + +impl From> for trap::Label { + fn from(value: trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Union is a subclass of Adt + 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 Union is a subclass of Item + 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 Union is a subclass of Stmt + 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 Union 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 Union 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 Union is a subclass of Element + 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 Union is a subclass of Addressable + 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 Union is a subclass of VariantDef + unsafe { + Self::from_untyped(value.as_untyped()) + } + } +} + #[derive(Debug)] pub struct WhileExpr { pub id: trap::TrapId, diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 9e9123c4570..db60b7e29ed 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -16,7 +16,7 @@ use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; use ra_ap_span::TextSize; -use ra_ap_syntax::ast::HasName; +use ra_ap_syntax::ast::{HasAttrs, HasName}; use ra_ap_syntax::{ AstNode, NodeOrToken, SyntaxElementChildren, SyntaxError, SyntaxNode, SyntaxToken, TextRange, ast, @@ -45,12 +45,15 @@ macro_rules! post_emit { $self.extract_canonical_origin($node, $label.into()); }; (Struct, $self:ident, $node:ident, $label:ident) => { + $self.emit_derive_expansion($node, $label); $self.extract_canonical_origin($node, $label.into()); }; (Enum, $self:ident, $node:ident, $label:ident) => { + $self.emit_derive_expansion($node, $label); $self.extract_canonical_origin($node, $label.into()); }; (Union, $self:ident, $node:ident, $label:ident) => { + $self.emit_derive_expansion($node, $label); $self.extract_canonical_origin($node, $label.into()); }; (Module, $self:ident, $node:ident, $label:ident) => { @@ -250,6 +253,25 @@ impl<'a> Translator<'a> { .emit_diagnostic(severity, tag, message, full_message, location); } } + + pub fn emit_diagnostic_for_node( + &mut self, + node: &impl ast::AstNode, + severity: DiagnosticSeverity, + tag: String, + message: String, + full_message: String, + ) { + let location = self.location_for_node(node); + self.emit_diagnostic( + severity, + tag, + message, + full_message, + location.unwrap_or(UNKNOWN_LOCATION), + ); + } + pub fn emit_parse_error(&mut self, owner: &impl ast::AstNode, err: &SyntaxError) { let owner_range: TextRange = owner.syntax().text_range(); let err_range = err.range(); @@ -726,6 +748,39 @@ impl<'a> Translator<'a> { None } + fn process_item_macro_expansion( + &mut self, + node: &impl ast::AstNode, + ExpandResult { value, err }: ExpandResult, + ) -> Option> { + let semantics = self.semantics.unwrap(); // if we are here, we have semantics + self.emit_macro_expansion_parse_errors(node, &value); + if let Some(err) = err { + let rendered = err.render_to_string(semantics.db); + self.emit_diagnostic_for_node( + node, + DiagnosticSeverity::Warning, + "item_expansion".to_owned(), + format!("item expansion failed ({})", rendered.kind), + rendered.message, + ); + } + if let Some(items) = ast::MacroItems::cast(value) { + self.emit_macro_items(&items) + } else { + let message = + "attribute or derive macro expansion cannot be cast to MacroItems".to_owned(); + self.emit_diagnostic_for_node( + node, + DiagnosticSeverity::Warning, + "item_expansion".to_owned(), + message.clone(), + message, + ); + None + } + } + fn emit_attribute_macro_expansion( &mut self, node: &ast::Item, @@ -741,23 +796,8 @@ impl<'a> Translator<'a> { // only expand the outermost attribute macro return None; } - let ExpandResult { - value: expanded, .. - } = semantics.expand_attr_macro(node)?; - self.emit_macro_expansion_parse_errors(node, &expanded); - let macro_items = ast::MacroItems::cast(expanded).or_else(|| { - let message = "attribute macro expansion cannot be cast to MacroItems".to_owned(); - let location = self.location_for_node(node); - self.emit_diagnostic( - DiagnosticSeverity::Warning, - "item_expansion".to_owned(), - message.clone(), - message, - location.unwrap_or(UNKNOWN_LOCATION), - ); - None - })?; - self.emit_macro_items(¯o_items) + let expansion = semantics.expand_attr_macro(node)?; + self.process_item_macro_expansion(node, expansion) } pub(crate) fn emit_item_expansion(&mut self, node: &ast::Item, label: Label) { @@ -785,4 +825,26 @@ impl<'a> Translator<'a> { generated::Const::emit_has_implementation(label, &mut self.trap.writer); } } + + pub(crate) fn emit_derive_expansion( + &mut self, + node: &(impl Into + Clone), + label: impl Into> + Copy, + ) { + let Some(semantics) = self.semantics else { + return; + }; + let node: ast::Adt = node.clone().into(); + let expansions = node + .attrs() + .filter_map(|attr| semantics.expand_derive_macro(&attr)) + .flatten() + .filter_map(|expansion| self.process_item_macro_expansion(&node, expansion)) + .collect::>(); + generated::Adt::emit_derive_macro_expansions( + label.into(), + expansions, + &mut self.trap.writer, + ); + } } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 7c60da3abb7..4aa4e6d7da0 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -1,6 +1,7 @@ lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll 6a103a6d04c951ca2f0c2989bed737cdbac56dd5ea9432b858da3416412bbf79 cf2bc67b65a1555de58bbd0a35b834b8867112a2f7c1951307c9416400ce70d0 lib/codeql/rust/elements/Abi.qll 485a2e79f6f7bfd1c02a6e795a71e62dede3c3e150149d5f8f18b761253b7208 6159ba175e7ead0dd2e3f2788f49516c306ee11b1a443bd4bdc00b7017d559bd lib/codeql/rust/elements/Addressable.qll 13011bfd2e1556694c3d440cc34af8527da4df49ad92b62f2939d3699ff2cea5 ddb25935f7553a1a384b1abe2e4b4fa90ab50b952dadec32fd867afcb054f4be +lib/codeql/rust/elements/Adt.qll c2afed4ac2e17039ccd98f74ea22111f4d765c4e232c50ccd3128da0d26da837 1380bde2eb667c6ec2ef5f8710aa24e926851c9e321ebc72ba514fa92c369dc3 lib/codeql/rust/elements/ArgList.qll 3d2f6f5542340b80a4c6e944ac17aba0d00727588bb66e501453ac0f80c82f83 afd52700bf5a337f19827846667cd0fb1fea5abbbcbc353828e292a727ea58c9 lib/codeql/rust/elements/ArrayExpr.qll e4e7cff3518c50ec908271906dd46c1fbe9098faa1e8cd06a27f0a6e8d165ed1 fe02a4f4197f57ecd1e8e82d6c9384148ec29d8b106d7f696795b2f325e4a71b lib/codeql/rust/elements/ArrayListExpr.qll 451aedcecb479c385ff497588c7a07fda304fd5b873270223a4f2c804e96b245 a8cb008f6f732215623b5626c84b37b651ca01ccafb2cf4c835df35d5140c6ad @@ -46,7 +47,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95 lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 -lib/codeql/rust/elements/Enum.qll accb97d0bd8c0f41df873d41886f606b6ae4cd1ffa38b70fe9504cfb89d0bd7d b456103ac992e384165d151eb0f169499be4961c3ec35b94a32201b5e4e22189 +lib/codeql/rust/elements/Enum.qll 55d5a4a775f07d9c1d5183af76f9d8de1d700bfe1dea427cc7ff3083f39e13de f00a585596f1d0ab34e6f2b7cdaba6d4a89005820478f810e8685478cf88100e lib/codeql/rust/elements/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 @@ -145,7 +146,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll a6d73152ddecb53a127aa3a4139f97007cd77b46203691c287600aa7200b8beb 547197e794803b3ea0c0e220f050980adec815a16fdef600f98ff795aa77f677 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll e874859ce03672d0085e47e0ca5e571b92b539b31bf0d5a8802f9727bef0c6b0 e5fe83237f713cdb57c446a6e1c20f645c2f49d9f5ef2c984032df83acb3c0de -lib/codeql/rust/elements/Struct.qll c1f607aa4b039fc24bbbedc5992e49bd13e9851731296645c7ec2669425f19ad d7720c76a5a50284bd62df707cb113dfb19104226e9ee7578e75eb207da0655c +lib/codeql/rust/elements/Struct.qll 6ae1ce11044a1f6bf3150ddce947c1be17e462613edf7ea4fe7d861aa3dbe0d1 043ef682d71f31e8808962032c05ab3045e7cbc8663ec7e06dc9255e12e53c12 lib/codeql/rust/elements/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed0705b2845b086b8953f16019fab 2d33d86b035a15c1b31c3e07e0e74c4bbe57a71c5a55d60e720827814e73b7ba lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -174,7 +175,7 @@ lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c38 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll f035871f9d265a002f8a4535da11d6191f04337c1d22dc54f545e3b527067e20 fdb86022a4f4f7e323899aaf47741d0a4c4e6a987fe1b4e8fea24e28b1377177 +lib/codeql/rust/elements/Union.qll 3e277155fc7ea77f645cb5c5b227efd1474aa745b12a8be228eab694536c49dc a4bf9b54b8262517371000a842e5fdcdaabd324e52afd7919bbf76bc887b18b6 lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad @@ -192,6 +193,7 @@ lib/codeql/rust/elements/YeetExpr.qll 4172bf70de31cab17639da6eed4a12a7afcefd7aa9 lib/codeql/rust/elements/YieldExpr.qll de2dc096a077f6c57bba9d1c2b2dcdbecce501333753b866d77c3ffbe06aa516 1f3e8949689c09ed356ff4777394fe39f2ed2b1e6c381fd391790da4f5d5c76a lib/codeql/rust/elements/internal/AbiConstructor.qll 4484538db49d7c1d31c139f0f21879fceb48d00416e24499a1d4b1337b4141ac 460818e397f2a1a8f2e5466d9551698b0e569d4640fcb87de6c4268a519b3da1 lib/codeql/rust/elements/internal/AbiImpl.qll 28a2b6bdb38fd626e5d7d1ed29b839b95976c3a03717d840669eb17c4d6f0c7a 8e83877855abe760f3be8f45c2cf91c1f6e810ec0301313910b8104b2474d9cf +lib/codeql/rust/elements/internal/AdtImpl.qll 2dc727a14a0fc775512d35e224eab7955884ec143dbd7dbf4cada9a1f5516df4 f3991cea544c5537b0a810492979a317b47685e1c0e58b948df2a957c7a18fdc lib/codeql/rust/elements/internal/ArgListConstructor.qll a73685c8792ae23a2d628e7357658efb3f6e34006ff6e9661863ef116ec0b015 0bee572a046e8dfc031b1216d729843991519d94ae66280f5e795d20aea07a22 lib/codeql/rust/elements/internal/ArgListImpl.qll 0903b2ca31b3e5439f631582d12f17d77721d63fdb54dc41372d19b742881ce4 2c71c153ccca4b4988e6a25c37e58dc8ecb5a7483273afff563a8542f33e7949 lib/codeql/rust/elements/internal/ArrayExprInternal.qll 07a219b3d3fba3ff8b18e77686b2f58ab01acd99e0f5d5cad5d91af937e228f5 7528fc0e2064c481f0d6cbff3835950a044e429a2cd00c4d8442d2e132560d37 @@ -459,6 +461,7 @@ lib/codeql/rust/elements/internal/YieldExprConstructor.qll 8cbfa6405acb151ee31cc lib/codeql/rust/elements/internal/YieldExprImpl.qll af184649a348ddd0be16dee9daae307240bf123ace09243950342e9d71ededd9 17df90f67dd51623e8a5715b344ccd8740c8fc415af092469f801b99caacb70d lib/codeql/rust/elements/internal/generated/Abi.qll f5a22afe5596c261b4409395056ce3227b25d67602d51d0b72734d870f614df3 06d1c242ccd31f1cc90212823077e1a7a9e93cd3771a14ebe2f0659c979f3dd1 lib/codeql/rust/elements/internal/generated/Addressable.qll 96a8b45166dd035b8d2c6d36b8b67019f2d4d0b4ccff6d492677c0c87197613e d8f1ce29feafc8ff7179399fc7eac5db031a7e1a8bc6b2cd75cfce1da3132e9b +lib/codeql/rust/elements/internal/generated/Adt.qll 155f4025a26c3d2d5d3c42dfce9274a10f0862ea0574843c5d276179de421569 17138b271eea81d3ee2697c82cccfd7af752cd18cd925dd5fa20d7fce0e2432f lib/codeql/rust/elements/internal/generated/ArgList.qll e41f48258082876a8ceac9107209d94fdd00a62d2e4c632987a01a8394c4aff6 bf1982d14f8cd55fa0c3da2c6aab56fc73b15a3572ffc72d9a94f2c860f8f3b7 lib/codeql/rust/elements/internal/generated/ArrayExpr.qll 73806a0de8168b38a9436fa6b8c6d68c92eeab3d64a1ae7edfff82f871929992 7ad998cdd8f4fed226473517ad7a5765cb35608033047aad53bf8aa3969fd03b lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll 67a7b0fae04b11cf771727ff39a123fb2d5ce6e2d650d32478fcb33a26ed5688 15833405fa85f6abe0e5146dac283cb5a142a07f08300ccc15a1dae30ed88942 @@ -505,7 +508,7 @@ lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83 lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e -lib/codeql/rust/elements/internal/generated/Enum.qll ad2a79ae52665f88a41ee045adce4e60beb43483547d958f8230b9917824f0a1 cb12e304d04dffb4d8fb838eb9dbecf00fa8ac18fbf3edc37ee049ad248a4f67 +lib/codeql/rust/elements/internal/generated/Enum.qll 477eaa102c1268f0fa7603ecd88f1b83db1388c17c25e3719d4113ea980256f7 2d60db61ba4a385218f0a01e366e04ba1e7dad386b7e6a027c31f32fb730cca2 lib/codeql/rust/elements/internal/generated/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8 lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 @@ -577,7 +580,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 5278b74de04d54708f078fd813d83ae5f934fa12d420b188c1334e3a7c3b8324 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 +lib/codeql/rust/elements/internal/generated/ParentChild.qll b58a01c0d2cca085a77ed7a98a0318cfc20450e48c64124f8a875ae45416ac25 92e9b6434629508868a5cf69c1236729409dcab4c4cda63af537d591a840127a 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 @@ -592,7 +595,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 b6e439cc24f8c02fe73301cd2bc16d59dfd28e2a8a201388d8318c43937309e2 62139c3df2f6c4dca1c897b1384233ff0151b7e5fb1c41a178c5e8e41b5e7f05 +lib/codeql/rust/elements/internal/generated/Raw.qll f9370ca510d47144f7a22255341dc0f45407fcc8c22d42a74dbc423a68a36635 2301eb8a7b4d59c05413e07f95fe9ac2d0f42d3673d9b7e809bd49a6c1bee506 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 @@ -609,7 +612,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 34a4cdb9f4a93414499a30aeeaad1b3388f2341c982af5688815c3b0a0e9c57b 3c8354336eff68d580b804600df9abf49ee5ee10ec076722089087820cefe731 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 816aebf8f56e179f5f0ba03e80d257ee85459ea757392356a0af6dbd0cd9ef5e 6aa51cdcdc8d93427555fa93f0e84afdfbbd4ffc8b8d378ae4a22b5b6f94f48b -lib/codeql/rust/elements/internal/generated/Struct.qll 955c7e1e6453685fbc392e32514cf26a9aec948cecf9e62705ddc5c56c9dc97d cf47a9c53eebc0c7165985cd6120530b8a0fe965895d2293d01f7b95013c0102 +lib/codeql/rust/elements/internal/generated/Struct.qll ce40dd64d61f6ca0a8425019dd8368ca3d79d3a238d7afb9b3f1c86c2c95c1b5 214946f9cdbf134a181d98b02bb630504ad524541febc4c0b8490a9a6fab8750 lib/codeql/rust/elements/internal/generated/StructExpr.qll c6d861eaa0123b103fd9ffd2485423419ef9b7e0b4af9ed2a2090d8ec534f65d 50da99ee44771e1239ed8919f711991dd3ec98589fbe49b49b68c88074a07d74 lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -618,7 +621,7 @@ 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 eb248f4e57985ec8eabf9ed5cfb8ba8f5ebd6ca17fb712c992811bced0e342d4 bbcbdba484d3b977a0d6b9158c5fa506f59ced2ad3ae8239d536bf826bfb7e31 +lib/codeql/rust/elements/internal/generated/Synth.qll ef45765a8e077bc0168ec226b3b84902acd8d774cd7af637e0b1b1b16ff1deaf 58dd7076517e5d680c6d8b0489530bd8e1d15d629a233f1742cca3f028d5ec81 lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -640,7 +643,7 @@ lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll 0d5528d9331cc7599f0c7bc4d2b17908a9f90037bc94b8b7cd8bed058df98e45 986b33efddc36ff34acaf3d38bd3f90055aa14ec018432f5d4510037fc8ee59f +lib/codeql/rust/elements/internal/generated/Union.qll 328d714dba5b19f8bf94c17efee21c9ca9e693a3a568a2afed3dc0d03fcc3f50 9be7039ce837a3217e97f64c8667d78e4d69e19c8fe7c19198389acb83a15957 lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a @@ -656,7 +659,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 da721d51bc659921998521579df5bff6172d9079d8e243c2b65a5b9eb441b52e da721d51bc659921998521579df5bff6172d9079d8e243c2b65a5b9eb441b52e +lib/codeql/rust/elements.qll 34c5c8e6e25cce86f0617d552f788eb30ad8bb24fbc43723af962ce9cdc7d177 34c5c8e6e25cce86f0617d552f788eb30ad8bb24fbc43723af962ce9cdc7d177 test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871bd78b51997d3cffd969105e5fdd 2f936b6ca005c6157c755121584410c03e4a3949c23bee302fbe05ee10ce118f test/extractor-tests/generated/Abi/Abi_getAbiString.ql a496762fcec5a0887b87023bbf93e9b650f02e20113e25c44d6e4281ae8f5335 14109c7ce11ba25e3cd6e7f1b3fcb4cb00622f2a4eac91bfe43145c5f366bc52 test/extractor-tests/generated/ArgList/ArgList.ql e412927756e72165d0e7c5c9bd3fca89d08197bbf760db8fb7683c64bb2229bc 043dba8506946fbb87753e22c387987d7eded6ddb963aa067f9e60ef9024d684 @@ -772,10 +775,11 @@ test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql 39dae987 test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 513d64b564f359e1022ae6f3d6d4a8ad637f595f01f29a6c2a167d1c2e8f1f99 0c7a7af6ee1005126b9ab77b2a7732821f85f1d2d426312c98206cbbedc19bb2 test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b20720ff0b147d55cea6f2de44d5bf297e79991eaf103938ccd7ab9d129e9656 eb8c9db2581cea00c29d7772de0b0a125be02c37092217a419f1a2b6a9711a6c -test/extractor-tests/generated/Enum/Enum.ql eebc780aef77b87e6062724dd8ddb8f3ad33021061c95924c2c2439798ffbb87 0d19552872a2254f66a78b999a488ce2becdb0b0611b858e0bee2b119ee08eae +test/extractor-tests/generated/Enum/Enum.ql 7c96c17f4adae679a7a8b097c5bfb26978263398b77dfa6e5b0e7f547d8bbd64 18375fad5a3d574c627b563529fa9c03f7d140e872ce7db81895fcb8da87f001 test/extractor-tests/generated/Enum/Enum_getAttr.ql 8109ef2495f4a154e3bb408d549a16c6085e28de3aa9b40b51043af3d007afa7 868cf275a582266ffa8da556d99247bc8af0fdf3b43026c49e250cf0cac64687 test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql 571ec6396fb7fc703b23aab651b3c6c05c9b5cd9d69a9ae8f5e36d69a18c89d3 c04025992f76bce7638728847f1ef835d3a48d3dc3368a4d3b73b778f1334618 test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql 76d32838b7800ed8e5cab895c9dbea76129f96afab949598bebec2b0cb34b7ff 226d099377c9d499cc614b45aa7e26756124d82f07b797863ad2ac6a6b2f5acb +test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql c7d3c2f1661a0a39bacf7f4977bd484133d9ee3934956d33f77ae1c83145b027 f5e374a3b620d3ef69bcc23123598179bcb4f1167dd29c18c84ad05c94c7957b test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql 001bb634adc4b20afb241bff41194bc91ba8544d1edd55958a01975e2ac428e1 c7c3fe3dc22a1887981a895a1e5262b1d0ad18f5052c67aa73094586de5212f6 test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql 2a858a07195a4b26b8c92e28519995bd6eba64889bddd126e161038f4a8d78e0 db188f238db915c67b084bc85aa0784c6a20b97b5a5f1966b3530c4c945b5527 test/extractor-tests/generated/Enum/Enum_getName.ql 32a8638534f37bfd416a6906114a3bcaf985af118a165b78f2c8fffd9f1841b8 c9ca8030622932dd6ceab7d41e05f86b923f77067b457fb7ec196fe4f4155397 @@ -1091,10 +1095,11 @@ test/extractor-tests/generated/StmtList/StmtList.ql 0010df0d5e30f7bed3bd5d916faf test/extractor-tests/generated/StmtList/StmtList_getAttr.ql 78d4bf65273498f04238706330b03d0b61dd03b001531f05fcb2230f24ceab64 6e02cee05c0b9f104ddea72b20097034edb76e985188b3f10f079bb03163b830 test/extractor-tests/generated/StmtList/StmtList_getStatement.ql abbc3bcf98aab395fc851d5cc58c9c8a13fe1bdd531723bec1bc1b8ddbec6614 e302a26079986fa055306a1f641533dfde36c9bc0dd7958d21e2518b59e808c2 test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql 578d7c944ef42bdb822fc6ce52fe3d49a0012cf7854cfddbb3d5117133700587 64ea407455a3b4dfbb86202e71a72b5abbff885479367b2834c0dd16d1f9d0ee -test/extractor-tests/generated/Struct/Struct.ql a4e5d3fe4f994bdf911ebed54a65d237cd5a00510337e911bd5286637bc8ea80 a335224605f3cc35635bf5fd0bebcb50800429c0a82a5aa86a37cb9f6eb3f651 +test/extractor-tests/generated/Struct/Struct.ql ffaaa49314c26bd0a206b692d480254acc6e87233f679fbe936094c81c071de2 cae27f50c3bf787aead37077c9fe32e66c1a247a8a8c1f6f9b241493b1b793fc test/extractor-tests/generated/Struct/Struct_getAttr.ql 028d90ddc5189b82cfc8de20f9e05d98e8a12cc185705481f91dd209f2cb1f87 760780a48c12be4581c1675c46aae054a6198196a55b6b989402cc29b7caf245 test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql a17504527a307615d26c2c4b6c21fe9b508f5a77a741d68ca605d2e69668e385 f755d8965c10568a57ff44432a795a0a36b86007fc7470bc652d555946e19231 test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql 289622244a1333277d3b1507c5cea7c7dd29a7905774f974d8c2100cea50b35f d32941a2d08d7830b42c263ee336bf54de5240bfc22082341b4420a20a1886c7 +test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql e4849a63be9f413426dd0f183d1229fa4dd1c521e87479622a80c52179e3bb03 5ae88d61ffa7b0a52a62fd16ba5cc5816c2b7b2c0db726e3125e525bbbc10a18 test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql 866a5893bd0869224fb8aadd071fba35b5386183bb476f5de45c9de7ab88c583 267aedc228d69e31ca8e95dcab6bcb1aa30f9ebaea43896a55016b7d68e3c441 test/extractor-tests/generated/Struct/Struct_getFieldList.ql f45d6d5d953741e52aca67129994b80f6904b2e6b43c519d6d42c29c7b663c42 77a7d07e8462fa608efc58af97ce8f17c5369f9573f9d200191136607cb0e600 test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql cd72452713004690b77086163541fa319f8ab5faf503bb4a6a20bcaf2f790d38 4d72e891c5fac6e491d9e18b87ecf680dc423787d6b419da8f700fe1a14bc26f @@ -1206,10 +1211,11 @@ test/extractor-tests/generated/TypeParam/TypeParam_getName.ql 9d5b6d6a9f2a5793e2 test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql 080a6b370ad460bf128fdfd632aa443af2ad91c3483e192ad756eb234dbfa4d8 8b048d282963f670db357f1eef9b8339f83d03adf57489a22b441d5c782aff62 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql 4ad6ed0c803fb4f58094a55b866940b947b16259756c674200172551ee6546e0 d3270bdcc4c026325159bd2a59848eb51d96298b2bf21402ea0a83ac1ea6d291 test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql d8502be88bcd97465f387c410b5078a4709e32b2baa556a4918ea5e609c40dd7 b238dc37404254e3e7806d50a7b1453e17e71da122931331b16a55853d3a843f -test/extractor-tests/generated/Union/Union.ql 2795c83d4511fadf24cc66a762adbabca084bc6ac48501715f666979d2ea9ea5 7efae5209ae3ee8c73cd1c9e9e05f01b3fdda65d9a553c2ac5216351b6f15e5c +test/extractor-tests/generated/Union/Union.ql 4974339feb10ab65bef60ba713058cb73ba7dcf5e451ddf6c919e94f96f56a80 f0f0025666940e4b0f72ef2e64b28e96b1a410f25f56c98cbebdd019ceece7b6 test/extractor-tests/generated/Union/Union_getAttr.ql 42fa0878a6566208863b1d884baf7b68b46089827fdb1dbbfacbfccf5966a9a2 54aa94f0281ca80d1a4bdb0e2240f4384af2ab8d50f251875d1877d0964579fc test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql ddd0133a497dc057a353b86acc8ed991fefeaefa335d8ad9fe95109a90e39e54 fcaed4287815226843157c007674b1f1405cae31856fed1113d569bab5608d9b test/extractor-tests/generated/Union/Union_getCrateOrigin.ql c218308cf17b1490550229a725542d248617661b1a5fa14e9b0e18d29c5ecc00 e0489242c8ff7aa4dbfdebcd46a5e0d9bea0aa618eb0617e76b9b6f863a2907a +test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql 82ee99ea42d6de9a45289a4b8e750cba887ac9daa2f6387b8c2a9062224da45c 1f18cd80f93ca2e19d3ac8ce733f264522ba785078f541342c816e16194748d6 test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql 6268ddb68c3e05906e3fc85e40635925b84e5c7290746ded9c6814d362033068 04473b3b9891012e95733463018db8da0e96659ea0b10458b33dc857c091d278 test/extractor-tests/generated/Union/Union_getGenericParamList.ql c55156ae26b766e385be7d21e67f8c3c45c29274201c93d660077fcc47e1ceee 4c4d338e17c32876ef6e51fd19cff67d125dd89c10e939dfaadbac824bef6a68 test/extractor-tests/generated/Union/Union_getName.ql 17247183e1a8c8bbb15e67120f65ca323630bddeb614fa8a48e1e74319f8ed37 e21c2a0205bc991ba86f3e508451ef31398bdf5441f6d2a3f72113aaae9e152b diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 65c3aae0e9e..e847ecd7644 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -3,6 +3,7 @@ /lib/codeql/rust/controlflow/internal/generated/CfgNodes.qll linguist-generated /lib/codeql/rust/elements/Abi.qll linguist-generated /lib/codeql/rust/elements/Addressable.qll linguist-generated +/lib/codeql/rust/elements/Adt.qll linguist-generated /lib/codeql/rust/elements/ArgList.qll linguist-generated /lib/codeql/rust/elements/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/ArrayListExpr.qll linguist-generated @@ -194,6 +195,7 @@ /lib/codeql/rust/elements/YieldExpr.qll linguist-generated /lib/codeql/rust/elements/internal/AbiConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/AbiImpl.qll linguist-generated +/lib/codeql/rust/elements/internal/AdtImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/ArgListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/ArrayExprInternal.qll linguist-generated @@ -461,6 +463,7 @@ /lib/codeql/rust/elements/internal/YieldExprImpl.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Abi.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Addressable.qll linguist-generated +/lib/codeql/rust/elements/internal/generated/Adt.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArgList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExpr.qll linguist-generated /lib/codeql/rust/elements/internal/generated/ArrayExprInternal.qll linguist-generated @@ -778,6 +781,7 @@ /test/extractor-tests/generated/Enum/Enum_getAttr.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Enum/Enum_getName.ql linguist-generated @@ -1097,6 +1101,7 @@ /test/extractor-tests/generated/Struct/Struct_getAttr.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getFieldList.ql linguist-generated /test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql linguist-generated @@ -1212,6 +1217,7 @@ /test/extractor-tests/generated/Union/Union_getAttr.ql linguist-generated /test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Union/Union_getCrateOrigin.ql linguist-generated +/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql linguist-generated /test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql linguist-generated /test/extractor-tests/generated/Union/Union_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Union/Union_getName.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 4456cb4b44a..0ae5e4a9514 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -6,6 +6,7 @@ import codeql.files.FileSystem import codeql.rust.elements.Abi import codeql.rust.elements.Addressable +import codeql.rust.elements.Adt import codeql.rust.elements.ArgList import codeql.rust.elements.ArrayExpr import codeql.rust.elements.ArrayListExpr diff --git a/rust/ql/lib/codeql/rust/elements/Adt.qll b/rust/ql/lib/codeql/rust/elements/Adt.qll new file mode 100644 index 00000000000..c8fa30d743d --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/Adt.qll @@ -0,0 +1,13 @@ +// generated by codegen, do not edit +/** + * This module provides the public class `Adt`. + */ + +private import internal.AdtImpl +import codeql.rust.elements.Item +import codeql.rust.elements.MacroItems + +/** + * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + */ +final class Adt = Impl::Adt; diff --git a/rust/ql/lib/codeql/rust/elements/Enum.qll b/rust/ql/lib/codeql/rust/elements/Enum.qll index 3901b382723..9d52b558f53 100644 --- a/rust/ql/lib/codeql/rust/elements/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/Enum.qll @@ -4,9 +4,9 @@ */ private import internal.EnumImpl +import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index 9b57316e0ec..27b6a37b791 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -4,10 +4,10 @@ */ private import internal.StructImpl +import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index fac11390b1b..4bf596f4d7a 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -4,9 +4,9 @@ */ private import internal.UnionImpl +import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.VariantDef diff --git a/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll new file mode 100644 index 00000000000..2243aed17a3 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/AdtImpl.qll @@ -0,0 +1,19 @@ +// generated by codegen, remove this comment if you wish to edit this file +/** + * This module provides a hand-modifiable wrapper around the generated class `Adt`. + * + * INTERNAL: Do not use. + */ + +private import codeql.rust.elements.internal.generated.Adt + +/** + * INTERNAL: This module contains the customizable definition of `Adt` and should not + * be referenced directly. + */ +module Impl { + /** + * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + */ + class Adt extends Generated::Adt { } +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll new file mode 100644 index 00000000000..385e3930fb8 --- /dev/null +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Adt.qll @@ -0,0 +1,45 @@ +// generated by codegen, do not edit +/** + * This module provides the generated definition of `Adt`. + * 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.internal.ItemImpl::Impl as ItemImpl +import codeql.rust.elements.MacroItems + +/** + * INTERNAL: This module contains the fully generated definition of `Adt` and should not + * be referenced directly. + */ +module Generated { + /** + * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + * INTERNAL: Do not reference the `Generated::Adt` class directly. + * Use the subclass `Adt`, where the following predicates are available. + */ + class Adt extends Synth::TAdt, ItemImpl::Item { + /** + * Gets the `index`th derive macro expansion of this adt (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + result = + Synth::convertMacroItemsFromRaw(Synth::convertAdtToRaw(this) + .(Raw::Adt) + .getDeriveMacroExpansion(index)) + } + + /** + * Gets any of the derive macro expansions of this adt. + */ + final MacroItems getADeriveMacroExpansion() { result = this.getDeriveMacroExpansion(_) } + + /** + * Gets the number of derive macro expansions of this adt. + */ + final int getNumberOfDeriveMacroExpansions() { + result = count(int i | exists(this.getDeriveMacroExpansion(i))) + } + } +} diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll index ec5c97892f5..b829ead848c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll @@ -6,9 +6,9 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility @@ -29,7 +29,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Enum` class directly. * Use the subclass `Enum`, where the following predicates are available. */ - class Enum extends Synth::TEnum, ItemImpl::Item { + class Enum extends Synth::TEnum, AdtImpl::Adt { override string getAPrimaryQlClass() { result = "Enum" } /** 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 5c8e5f86820..a0ccc4d728b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -3164,6 +3164,24 @@ private module Impl { ) } + private Element getImmediateChildOfAdt(Adt e, int index, string partialPredicateCall) { + exists(int b, int bItem, int n, int nDeriveMacroExpansion | + b = 0 and + bItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and + n = bItem and + nDeriveMacroExpansion = + n + 1 + max(int i | i = -1 or exists(e.getDeriveMacroExpansion(i)) | i) and + ( + none() + or + result = getImmediateChildOfItem(e, index - b, partialPredicateCall) + or + result = e.getDeriveMacroExpansion(index - n) and + partialPredicateCall = "DeriveMacroExpansion(" + (index - n).toString() + ")" + ) + ) + } + private Element getImmediateChildOfArrayListExpr( ArrayListExpr e, int index, string partialPredicateCall ) { @@ -3275,47 +3293,6 @@ private module Impl { ) } - private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { - exists( - int b, int bItem, int n, int nAttr, int nGenericParamList, int nName, int nVariantList, - int nVisibility, int nWhereClause - | - b = 0 and - bItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and - n = bItem and - nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and - nGenericParamList = nAttr + 1 and - nName = nGenericParamList + 1 and - nVariantList = nName + 1 and - nVisibility = nVariantList + 1 and - nWhereClause = nVisibility + 1 and - ( - none() - or - result = getImmediateChildOfItem(e, index - b, partialPredicateCall) - or - result = e.getAttr(index - n) and - partialPredicateCall = "Attr(" + (index - n).toString() + ")" - or - index = nAttr and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" - or - index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" - or - index = nName and result = e.getVariantList() and partialPredicateCall = "VariantList()" - or - index = nVariantList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" - or - index = nVisibility and - result = e.getWhereClause() and - partialPredicateCall = "WhereClause()" - ) - ) - } - private Element getImmediateChildOfExternBlock( ExternBlock e, int index, string partialPredicateCall ) { @@ -3730,49 +3707,6 @@ private module Impl { ) } - private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { - exists( - int b, int bItem, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, - int nName, int nVisibility, int nWhereClause - | - b = 0 and - bItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and - bVariantDef = - bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and - n = bVariantDef and - nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and - nFieldList = nAttr + 1 and - nGenericParamList = nFieldList + 1 and - nName = nGenericParamList + 1 and - nVisibility = nName + 1 and - nWhereClause = nVisibility + 1 and - ( - none() - or - result = getImmediateChildOfItem(e, index - b, partialPredicateCall) - or - result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) - or - result = e.getAttr(index - n) and - partialPredicateCall = "Attr(" + (index - n).toString() + ")" - or - index = nAttr and result = e.getFieldList() and partialPredicateCall = "FieldList()" - or - index = nFieldList and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" - or - index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" - or - index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" - or - index = nVisibility and - result = e.getWhereClause() and - partialPredicateCall = "WhereClause()" - ) - ) - } - private Element getImmediateChildOfStructExpr(StructExpr e, int index, string partialPredicateCall) { exists(int b, int bExpr, int bPathAstNode, int n, int nStructExprFieldList | b = 0 and @@ -3978,53 +3912,6 @@ private module Impl { ) } - private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { - exists( - int b, int bItem, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, - int nStructFieldList, int nVisibility, int nWhereClause - | - b = 0 and - bItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and - bVariantDef = - bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and - n = bVariantDef and - nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and - nGenericParamList = nAttr + 1 and - nName = nGenericParamList + 1 and - nStructFieldList = nName + 1 and - nVisibility = nStructFieldList + 1 and - nWhereClause = nVisibility + 1 and - ( - none() - or - result = getImmediateChildOfItem(e, index - b, partialPredicateCall) - or - result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) - or - result = e.getAttr(index - n) and - partialPredicateCall = "Attr(" + (index - n).toString() + ")" - or - index = nAttr and - result = e.getGenericParamList() and - partialPredicateCall = "GenericParamList()" - or - index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" - or - index = nName and - result = e.getStructFieldList() and - partialPredicateCall = "StructFieldList()" - or - index = nStructFieldList and - result = e.getVisibility() and - partialPredicateCall = "Visibility()" - or - index = nVisibility and - result = e.getWhereClause() and - partialPredicateCall = "WhereClause()" - ) - ) - } - private Element getImmediateChildOfUse(Use e, int index, string partialPredicateCall) { exists(int b, int bItem, int n, int nAttr, int nUseTree, int nVisibility | b = 0 and @@ -4048,6 +3935,47 @@ private module Impl { ) } + private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { + exists( + int b, int bAdt, int n, int nAttr, int nGenericParamList, int nName, int nVariantList, + int nVisibility, int nWhereClause + | + b = 0 and + bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and + n = bAdt and + nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and + nGenericParamList = nAttr + 1 and + nName = nGenericParamList + 1 and + nVariantList = nName + 1 and + nVisibility = nVariantList + 1 and + nWhereClause = nVisibility + 1 and + ( + none() + or + result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) + or + result = e.getAttr(index - n) and + partialPredicateCall = "Attr(" + (index - n).toString() + ")" + or + index = nAttr and + result = e.getGenericParamList() and + partialPredicateCall = "GenericParamList()" + or + index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" + or + index = nName and result = e.getVariantList() and partialPredicateCall = "VariantList()" + or + index = nVariantList and + result = e.getVisibility() and + partialPredicateCall = "Visibility()" + or + index = nVisibility and + result = e.getWhereClause() and + partialPredicateCall = "WhereClause()" + ) + ) + } + private Element getImmediateChildOfForExpr(ForExpr e, int index, string partialPredicateCall) { exists(int b, int bLoopingExpr, int n, int nAttr, int nIterable, int nPat | b = 0 and @@ -4090,6 +4018,96 @@ private module Impl { ) } + private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { + exists( + int b, int bAdt, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, + int nName, int nVisibility, int nWhereClause + | + b = 0 and + bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and + bVariantDef = + bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + n = bVariantDef and + nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and + nFieldList = nAttr + 1 and + nGenericParamList = nFieldList + 1 and + nName = nGenericParamList + 1 and + nVisibility = nName + 1 and + nWhereClause = nVisibility + 1 and + ( + none() + or + result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) + or + result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) + or + result = e.getAttr(index - n) and + partialPredicateCall = "Attr(" + (index - n).toString() + ")" + or + index = nAttr and result = e.getFieldList() and partialPredicateCall = "FieldList()" + or + index = nFieldList and + result = e.getGenericParamList() and + partialPredicateCall = "GenericParamList()" + or + index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" + or + index = nName and result = e.getVisibility() and partialPredicateCall = "Visibility()" + or + index = nVisibility and + result = e.getWhereClause() and + partialPredicateCall = "WhereClause()" + ) + ) + } + + private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { + exists( + int b, int bAdt, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, + int nStructFieldList, int nVisibility, int nWhereClause + | + b = 0 and + bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and + bVariantDef = + bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + n = bVariantDef and + nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and + nGenericParamList = nAttr + 1 and + nName = nGenericParamList + 1 and + nStructFieldList = nName + 1 and + nVisibility = nStructFieldList + 1 and + nWhereClause = nVisibility + 1 and + ( + none() + or + result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) + or + result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) + or + result = e.getAttr(index - n) and + partialPredicateCall = "Attr(" + (index - n).toString() + ")" + or + index = nAttr and + result = e.getGenericParamList() and + partialPredicateCall = "GenericParamList()" + or + index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" + or + index = nName and + result = e.getStructFieldList() and + partialPredicateCall = "StructFieldList()" + or + index = nStructFieldList and + result = e.getVisibility() and + partialPredicateCall = "Visibility()" + or + index = nVisibility and + result = e.getWhereClause() and + partialPredicateCall = "WhereClause()" + ) + ) + } + private Element getImmediateChildOfWhileExpr(WhileExpr e, int index, string partialPredicateCall) { exists(int b, int bLoopingExpr, int n, int nAttr, int nCondition | b = 0 and @@ -4395,8 +4413,6 @@ private module Impl { or result = getImmediateChildOfConst(e, index, partialAccessor) or - result = getImmediateChildOfEnum(e, index, partialAccessor) - or result = getImmediateChildOfExternBlock(e, index, partialAccessor) or result = getImmediateChildOfExternCrate(e, index, partialAccessor) @@ -4423,8 +4439,6 @@ private module Impl { or result = getImmediateChildOfStatic(e, index, partialAccessor) or - result = getImmediateChildOfStruct(e, index, partialAccessor) - or result = getImmediateChildOfStructExpr(e, index, partialAccessor) or result = getImmediateChildOfStructPat(e, index, partialAccessor) @@ -4437,14 +4451,18 @@ private module Impl { or result = getImmediateChildOfTypeAlias(e, index, partialAccessor) or - result = getImmediateChildOfUnion(e, index, partialAccessor) - or result = getImmediateChildOfUse(e, index, partialAccessor) or + result = getImmediateChildOfEnum(e, index, partialAccessor) + or result = getImmediateChildOfForExpr(e, index, partialAccessor) or result = getImmediateChildOfLoopExpr(e, index, partialAccessor) or + result = getImmediateChildOfStruct(e, index, partialAccessor) + or + result = getImmediateChildOfUnion(e, index, partialAccessor) + or result = getImmediateChildOfWhileExpr(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 503691bb83b..8835f4588c0 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -3610,6 +3610,19 @@ module Raw { Expr getExpr() { yield_expr_exprs(this, result) } } + /** + * INTERNAL: Do not use. + * An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + */ + class Adt extends @adt, Item { + /** + * Gets the `index`th derive macro expansion of this adt (0-based). + */ + MacroItems getDeriveMacroExpansion(int index) { + adt_derive_macro_expansions(this, index, result) + } + } + /** * INTERNAL: Do not use. * A block expression. For example: @@ -3744,49 +3757,6 @@ module Raw { predicate hasImplementation() { const_has_implementation(this) } } - /** - * INTERNAL: Do not use. - * An enum declaration. - * - * For example: - * ```rust - * enum E {A, B(i32), C {x: i32}} - * ``` - */ - class Enum extends @enum, Item { - override string toString() { result = "Enum" } - - /** - * Gets the `index`th attr of this enum (0-based). - */ - Attr getAttr(int index) { enum_attrs(this, index, result) } - - /** - * Gets the generic parameter list of this enum, if it exists. - */ - GenericParamList getGenericParamList() { enum_generic_param_lists(this, result) } - - /** - * Gets the name of this enum, if it exists. - */ - Name getName() { enum_names(this, result) } - - /** - * Gets the variant list of this enum, if it exists. - */ - VariantList getVariantList() { enum_variant_lists(this, result) } - - /** - * Gets the visibility of this enum, if it exists. - */ - Visibility getVisibility() { enum_visibilities(this, result) } - - /** - * Gets the where clause of this enum, if it exists. - */ - WhereClause getWhereClause() { enum_where_clauses(this, result) } - } - /** * INTERNAL: Do not use. * An extern block containing foreign function declarations. @@ -4273,50 +4243,6 @@ module Raw { Visibility getVisibility() { static_visibilities(this, result) } } - /** - * INTERNAL: Do not use. - * A Struct. For example: - * ```rust - * struct Point { - * x: i32, - * y: i32, - * } - * ``` - */ - class Struct extends @struct, Item, VariantDef { - override string toString() { result = "Struct" } - - /** - * Gets the `index`th attr of this struct (0-based). - */ - Attr getAttr(int index) { struct_attrs(this, index, result) } - - /** - * Gets the field list of this struct, if it exists. - */ - FieldList getFieldList() { struct_field_lists_(this, result) } - - /** - * Gets the generic parameter list of this struct, if it exists. - */ - GenericParamList getGenericParamList() { struct_generic_param_lists(this, result) } - - /** - * Gets the name of this struct, if it exists. - */ - Name getName() { struct_names(this, result) } - - /** - * Gets the visibility of this struct, if it exists. - */ - Visibility getVisibility() { struct_visibilities(this, result) } - - /** - * Gets the where clause of this struct, if it exists. - */ - WhereClause getWhereClause() { struct_where_clauses(this, result) } - } - /** * INTERNAL: Do not use. * A struct expression. For example: @@ -4538,49 +4464,6 @@ module Raw { WhereClause getWhereClause() { type_alias_where_clauses(this, result) } } - /** - * INTERNAL: Do not use. - * A union declaration. - * - * For example: - * ```rust - * union U { f1: u32, f2: f32 } - * ``` - */ - class Union extends @union, Item, VariantDef { - override string toString() { result = "Union" } - - /** - * Gets the `index`th attr of this union (0-based). - */ - Attr getAttr(int index) { union_attrs(this, index, result) } - - /** - * Gets the generic parameter list of this union, if it exists. - */ - GenericParamList getGenericParamList() { union_generic_param_lists(this, result) } - - /** - * Gets the name of this union, if it exists. - */ - Name getName() { union_names(this, result) } - - /** - * Gets the struct field list of this union, if it exists. - */ - StructFieldList getStructFieldList() { union_struct_field_lists(this, result) } - - /** - * Gets the visibility of this union, if it exists. - */ - Visibility getVisibility() { union_visibilities(this, result) } - - /** - * Gets the where clause of this union, if it exists. - */ - WhereClause getWhereClause() { union_where_clauses(this, result) } - } - /** * INTERNAL: Do not use. * A `use` statement. For example: @@ -4607,6 +4490,49 @@ module Raw { Visibility getVisibility() { use_visibilities(this, result) } } + /** + * INTERNAL: Do not use. + * An enum declaration. + * + * For example: + * ```rust + * enum E {A, B(i32), C {x: i32}} + * ``` + */ + class Enum extends @enum, Adt { + override string toString() { result = "Enum" } + + /** + * Gets the `index`th attr of this enum (0-based). + */ + Attr getAttr(int index) { enum_attrs(this, index, result) } + + /** + * Gets the generic parameter list of this enum, if it exists. + */ + GenericParamList getGenericParamList() { enum_generic_param_lists(this, result) } + + /** + * Gets the name of this enum, if it exists. + */ + Name getName() { enum_names(this, result) } + + /** + * Gets the variant list of this enum, if it exists. + */ + VariantList getVariantList() { enum_variant_lists(this, result) } + + /** + * Gets the visibility of this enum, if it exists. + */ + Visibility getVisibility() { enum_visibilities(this, result) } + + /** + * Gets the where clause of this enum, if it exists. + */ + WhereClause getWhereClause() { enum_where_clauses(this, result) } + } + /** * INTERNAL: Do not use. * A for loop expression. @@ -4671,6 +4597,93 @@ module Raw { Attr getAttr(int index) { loop_expr_attrs(this, index, result) } } + /** + * INTERNAL: Do not use. + * A Struct. For example: + * ```rust + * struct Point { + * x: i32, + * y: i32, + * } + * ``` + */ + class Struct extends @struct, Adt, VariantDef { + override string toString() { result = "Struct" } + + /** + * Gets the `index`th attr of this struct (0-based). + */ + Attr getAttr(int index) { struct_attrs(this, index, result) } + + /** + * Gets the field list of this struct, if it exists. + */ + FieldList getFieldList() { struct_field_lists_(this, result) } + + /** + * Gets the generic parameter list of this struct, if it exists. + */ + GenericParamList getGenericParamList() { struct_generic_param_lists(this, result) } + + /** + * Gets the name of this struct, if it exists. + */ + Name getName() { struct_names(this, result) } + + /** + * Gets the visibility of this struct, if it exists. + */ + Visibility getVisibility() { struct_visibilities(this, result) } + + /** + * Gets the where clause of this struct, if it exists. + */ + WhereClause getWhereClause() { struct_where_clauses(this, result) } + } + + /** + * INTERNAL: Do not use. + * A union declaration. + * + * For example: + * ```rust + * union U { f1: u32, f2: f32 } + * ``` + */ + class Union extends @union, Adt, VariantDef { + override string toString() { result = "Union" } + + /** + * Gets the `index`th attr of this union (0-based). + */ + Attr getAttr(int index) { union_attrs(this, index, result) } + + /** + * Gets the generic parameter list of this union, if it exists. + */ + GenericParamList getGenericParamList() { union_generic_param_lists(this, result) } + + /** + * Gets the name of this union, if it exists. + */ + Name getName() { union_names(this, result) } + + /** + * Gets the struct field list of this union, if it exists. + */ + StructFieldList getStructFieldList() { union_struct_field_lists(this, result) } + + /** + * Gets the visibility of this union, if it exists. + */ + Visibility getVisibility() { union_visibilities(this, result) } + + /** + * Gets the where clause of this union, if it exists. + */ + WhereClause getWhereClause() { union_where_clauses(this, result) } + } + /** * INTERNAL: Do not use. * A while loop expression. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 6776d9a8007..8589273ff4c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -6,10 +6,10 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility @@ -31,7 +31,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, ItemImpl::Item, VariantDefImpl::VariantDef { + class Struct extends Synth::TStruct, AdtImpl::Adt, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Struct" } /** 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 04588e2861e..28300de4580 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -688,6 +688,11 @@ module Synth { */ class TAddressable = TItem or TVariant; + /** + * INTERNAL: Do not use. + */ + class TAdt = TEnum or TStruct or TUnion; + /** * INTERNAL: Do not use. */ @@ -770,9 +775,9 @@ module Synth { * INTERNAL: Do not use. */ class TItem = - TConst or TEnum or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or - TMacroDef or TMacroRules or TModule or TStatic or TStruct or TTrait or TTraitAlias or - TTypeAlias or TUnion or TUse; + TAdt or TConst or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or + TMacroDef or TMacroRules or TModule or TStatic or TTrait or TTraitAlias or TTypeAlias or + TUse; /** * INTERNAL: Do not use. @@ -1864,6 +1869,18 @@ module Synth { result = convertVariantFromRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a raw DB element to a synthesized `TAdt`, if possible. + */ + TAdt convertAdtFromRaw(Raw::Element e) { + result = convertEnumFromRaw(e) + or + result = convertStructFromRaw(e) + or + result = convertUnionFromRaw(e) + } + /** * INTERNAL: Do not use. * Converts a raw DB element to a synthesized `TArrayExpr`, if possible. @@ -2213,9 +2230,9 @@ module Synth { * Converts a raw DB element to a synthesized `TItem`, if possible. */ TItem convertItemFromRaw(Raw::Element e) { - result = convertConstFromRaw(e) + result = convertAdtFromRaw(e) or - result = convertEnumFromRaw(e) + result = convertConstFromRaw(e) or result = convertExternBlockFromRaw(e) or @@ -2235,16 +2252,12 @@ module Synth { or result = convertStaticFromRaw(e) or - result = convertStructFromRaw(e) - or result = convertTraitFromRaw(e) or result = convertTraitAliasFromRaw(e) or result = convertTypeAliasFromRaw(e) or - result = convertUnionFromRaw(e) - or result = convertUseFromRaw(e) } @@ -3464,6 +3477,18 @@ module Synth { result = convertVariantToRaw(e) } + /** + * INTERNAL: Do not use. + * Converts a synthesized `TAdt` to a raw DB element, if possible. + */ + Raw::Element convertAdtToRaw(TAdt e) { + result = convertEnumToRaw(e) + or + result = convertStructToRaw(e) + or + result = convertUnionToRaw(e) + } + /** * INTERNAL: Do not use. * Converts a synthesized `TArrayExpr` to a raw DB element, if possible. @@ -3813,9 +3838,9 @@ module Synth { * Converts a synthesized `TItem` to a raw DB element, if possible. */ Raw::Element convertItemToRaw(TItem e) { - result = convertConstToRaw(e) + result = convertAdtToRaw(e) or - result = convertEnumToRaw(e) + result = convertConstToRaw(e) or result = convertExternBlockToRaw(e) or @@ -3835,16 +3860,12 @@ module Synth { or result = convertStaticToRaw(e) or - result = convertStructToRaw(e) - or result = convertTraitToRaw(e) or result = convertTraitAliasToRaw(e) or result = convertTypeAliasToRaw(e) or - result = convertUnionToRaw(e) - or result = convertUseToRaw(e) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index 63f76703bcb..88040c4ad13 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -6,9 +6,9 @@ private import codeql.rust.elements.internal.generated.Synth private import codeql.rust.elements.internal.generated.Raw +import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl @@ -30,7 +30,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, ItemImpl::Item, VariantDefImpl::VariantDef { + class Union extends Synth::TUnion, AdtImpl::Adt, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Union" } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index aa9a0bda17c..9d208615c27 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1917,8 +1917,8 @@ infer_type_reprs( ); @item = - @const -| @enum + @adt +| @const | @extern_block | @extern_crate | @function @@ -1928,11 +1928,9 @@ infer_type_reprs( | @macro_rules | @module | @static -| @struct | @trait | @trait_alias | @type_alias -| @union | @use ; @@ -2714,6 +2712,19 @@ yield_expr_exprs( int expr: @expr ref ); +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + block_exprs( unique int id: @block_expr ); @@ -2821,47 +2832,6 @@ const_has_implementation( int id: @const ref ); -enums( - unique int id: @enum -); - -#keyset[id, index] -enum_attrs( - int id: @enum ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -enum_generic_param_lists( - int id: @enum ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -enum_names( - int id: @enum ref, - int name: @name ref -); - -#keyset[id] -enum_variant_lists( - int id: @enum ref, - int variant_list: @variant_list ref -); - -#keyset[id] -enum_visibilities( - int id: @enum ref, - int visibility: @visibility ref -); - -#keyset[id] -enum_where_clauses( - int id: @enum ref, - int where_clause: @where_clause ref -); - extern_blocks( unique int id: @extern_block ); @@ -3278,47 +3248,6 @@ static_visibilities( int visibility: @visibility ref ); -structs( - unique int id: @struct -); - -#keyset[id, index] -struct_attrs( - int id: @struct ref, - int index: int ref, - int attr: @attr ref -); - -#keyset[id] -struct_field_lists_( - int id: @struct ref, - int field_list: @field_list ref -); - -#keyset[id] -struct_generic_param_lists( - int id: @struct ref, - int generic_param_list: @generic_param_list ref -); - -#keyset[id] -struct_names( - int id: @struct ref, - int name: @name ref -); - -#keyset[id] -struct_visibilities( - int id: @struct ref, - int visibility: @visibility ref -); - -#keyset[id] -struct_where_clauses( - int id: @struct ref, - int where_clause: @where_clause ref -); - struct_exprs( unique int id: @struct_expr ); @@ -3500,6 +3429,145 @@ type_alias_where_clauses( 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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + unions( unique int id: @union ); @@ -3541,63 +3609,6 @@ union_where_clauses( 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 -); - -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 -); - -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 -); - while_exprs( unique int id: @while_expr ); diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index e6639d783d2..4c7f7a835ac 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -4,8 +4,8 @@ import TestUtils from Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - int getNumberOfAttrs, string hasGenericParamList, string hasName, string hasVariantList, - string hasVisibility, string hasWhereClause + int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, string hasGenericParamList, + string hasName, string hasVariantList, string hasVisibility, string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -20,6 +20,7 @@ where then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -27,6 +28,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVariantList:", - hasVariantList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", + getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "hasName:", hasName, "hasVariantList:", hasVariantList, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql new file mode 100644 index 00000000000..1bb9710f97d --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Enum x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index 4471b94700c..f5f0439f175 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -4,8 +4,9 @@ import TestUtils from Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasFieldList, - string hasGenericParamList, string hasName, string hasVisibility, string hasWhereClause + string hasAttributeMacroExpansion, int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, + string hasFieldList, string hasGenericParamList, string hasName, string hasVisibility, + string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -20,6 +21,7 @@ where then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and @@ -27,6 +29,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasFieldList:", hasFieldList, "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, - "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", + getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasFieldList:", + hasFieldList, "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql new file mode 100644 index 00000000000..3009a782a88 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Struct x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index 81d3ffb3adf..a67dee68ec1 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -4,8 +4,9 @@ import TestUtils from Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, - string hasName, string hasStructFieldList, string hasVisibility, string hasWhereClause + string hasAttributeMacroExpansion, int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, + string hasGenericParamList, string hasName, string hasStructFieldList, string hasVisibility, + string hasWhereClause where toBeTested(x) and not x.isUnknown() and @@ -20,6 +21,7 @@ where then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and @@ -27,6 +29,7 @@ where (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", - hasStructFieldList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause + "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", + getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", + hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", hasStructFieldList, + "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql new file mode 100644 index 00000000000..1851791caef --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Union x, int index +where toBeTested(x) and not x.isUnknown() +select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index 092c26051d6..288bc25d58b 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -169,6 +169,10 @@ macro_expansion.rs: # 1| getPath(): [Path] erase # 1| getSegment(): [PathSegment] erase # 1| getIdentifier(): [NameRef] erase +# 1| getUseTree(3): [UseTree] MyTrait +# 1| getPath(): [Path] MyTrait +# 1| getSegment(): [PathSegment] MyTrait +# 1| getIdentifier(): [NameRef] MyTrait # 3| getItem(1): [Function] fn foo # 4| getAttributeMacroExpansion(): [MacroItems] MacroItems # 4| getItem(0): [Function] fn foo @@ -686,6 +690,295 @@ macro_expansion.rs: # 79| getSegment(): [PathSegment] i32 # 79| getIdentifier(): [NameRef] i32 # 78| getName(): [Name] MyStruct +# 83| getItem(17): [Struct] struct MyDerive +# 84| getDeriveMacroExpansion(0): [MacroItems] MacroItems +# 84| getItem(0): [Impl] impl ...::Debug for MyDerive::<...> { ... } +# 84| getAssocItemList(): [AssocItemList] AssocItemList +# 84| getAssocItem(0): [Function] fn fmt +# 83| getParamList(): [ParamList] ParamList +# 83| getParam(0): [Param] ...: ... +# 83| getTypeRepr(): [RefTypeRepr] RefTypeRepr +# 83| getTypeRepr(): [PathTypeRepr] ...::Formatter +# 83| getPath(): [Path] ...::Formatter +# 83| getQualifier(): [Path] ...::fmt +# 83| getQualifier(): [Path] $crate +# 83| getSegment(): [PathSegment] $crate +# 83| getIdentifier(): [NameRef] $crate +# 83| getSegment(): [PathSegment] fmt +# 83| getIdentifier(): [NameRef] fmt +# 83| getSegment(): [PathSegment] Formatter +# 83| getIdentifier(): [NameRef] Formatter +# 83| getPat(): [IdentPat] f +# 83| getName(): [Name] f +# 83| getSelfParam(): [SelfParam] SelfParam +# 83| getName(): [Name] self +# 84| getBody(): [BlockExpr] { ... } +# 84| getStmtList(): [StmtList] StmtList +# 84| getTailExpr(): [MatchExpr] match self { ... } +# 83| getScrutinee(): [PathExpr,VariableAccess] self +# 83| getPath(): [Path] self +# 83| getSegment(): [PathSegment] self +# 83| getIdentifier(): [NameRef] self +# 84| getMatchArmList(): [MatchArmList] MatchArmList +# 84| getArm(0): [MatchArm] ... => ... +# 85| getExpr(): [MethodCallExpr] ... .finish() +# 83| getArgList(): [ArgList] ArgList +# 83| getIdentifier(): [NameRef] finish +# 85| getReceiver(): [MethodCallExpr] ... .field(...) +# 85| getArgList(): [ArgList] ArgList +# 83| getArg(0): [StringLiteralExpr] "field" +# 85| getArg(1): [RefExpr] &field +# 85| getExpr(): [PathExpr,VariableAccess] field +# 85| getPath(): [Path] field +# 85| getSegment(): [PathSegment] field +# 85| getIdentifier(): [NameRef] field +# 83| getIdentifier(): [NameRef] field +# 83| getReceiver(): [MethodCallExpr] f.debug_struct(...) +# 83| getArgList(): [ArgList] ArgList +# 83| getArg(0): [StringLiteralExpr] "MyDerive" +# 83| getIdentifier(): [NameRef] debug_struct +# 83| getReceiver(): [PathExpr,VariableAccess] f +# 83| getPath(): [Path] f +# 83| getSegment(): [PathSegment] f +# 83| getIdentifier(): [NameRef] f +# 84| getPat(): [StructPat] MyDerive {...} +# 84| getPath(): [Path] MyDerive +# 84| getSegment(): [PathSegment] MyDerive +# 84| getIdentifier(): [NameRef] MyDerive +# 85| getStructPatFieldList(): [StructPatFieldList] StructPatFieldList +# 85| getField(0): [StructPatField] field: ... +# 85| getIdentifier(): [NameRef] field +# 85| getPat(): [IdentPat] field +# 85| getName(): [Name] field +# 83| getName(): [Name] fmt +# 83| getRetType(): [RetTypeRepr] RetTypeRepr +# 83| getTypeRepr(): [PathTypeRepr] ...::Result +# 83| getPath(): [Path] ...::Result +# 83| getQualifier(): [Path] ...::fmt +# 83| getQualifier(): [Path] $crate +# 83| getSegment(): [PathSegment] $crate +# 83| getIdentifier(): [NameRef] $crate +# 83| getSegment(): [PathSegment] fmt +# 83| getIdentifier(): [NameRef] fmt +# 83| getSegment(): [PathSegment] Result +# 83| getIdentifier(): [NameRef] Result +# 83| getGenericParamList(): [GenericParamList] <...> +# 84| getSelfTy(): [PathTypeRepr] MyDerive::<...> +# 84| getPath(): [Path] MyDerive::<...> +# 84| getSegment(): [PathSegment] MyDerive::<...> +# 83| getGenericArgList(): [GenericArgList] <...> +# 84| getIdentifier(): [NameRef] MyDerive +# 83| getTrait(): [PathTypeRepr] ...::Debug +# 83| getPath(): [Path] ...::Debug +# 83| getQualifier(): [Path] ...::fmt +# 83| getQualifier(): [Path] $crate +# 83| getSegment(): [PathSegment] $crate +# 83| getIdentifier(): [NameRef] $crate +# 83| getSegment(): [PathSegment] fmt +# 83| getIdentifier(): [NameRef] fmt +# 83| getSegment(): [PathSegment] Debug +# 83| getIdentifier(): [NameRef] Debug +# 83| getWhereClause(): [WhereClause] WhereClause +# 83| getAttr(0): [Attr] Attr +# 83| getMeta(): [Meta] Meta +# 83| getPath(): [Path] derive +# 83| getSegment(): [PathSegment] derive +# 83| getIdentifier(): [NameRef] derive +# 83| getTokenTree(): [TokenTree] TokenTree +# 84| getFieldList(): [StructFieldList] StructFieldList +# 85| getField(0): [StructField] StructField +# 85| getName(): [Name] field +# 85| getTypeRepr(): [PathTypeRepr] usize +# 85| getPath(): [Path] usize +# 85| getSegment(): [PathSegment] usize +# 85| getIdentifier(): [NameRef] usize +# 84| getName(): [Name] MyDerive +# 88| getItem(18): [Enum] enum MyDeriveEnum +# 89| getDeriveMacroExpansion(0): [MacroItems] MacroItems +# 89| getItem(0): [Impl] impl ...::PartialEq for MyDeriveEnum::<...> { ... } +# 89| getAssocItemList(): [AssocItemList] AssocItemList +# 89| getAssocItem(0): [Function] fn eq +# 88| getParamList(): [ParamList] ParamList +# 88| getParam(0): [Param] ...: ... +# 88| getTypeRepr(): [RefTypeRepr] RefTypeRepr +# 88| getTypeRepr(): [PathTypeRepr] Self +# 88| getPath(): [Path] Self +# 88| getSegment(): [PathSegment] Self +# 88| getIdentifier(): [NameRef] Self +# 88| getPat(): [IdentPat] other +# 88| getName(): [Name] other +# 88| getSelfParam(): [SelfParam] SelfParam +# 88| getName(): [Name] self +# 89| getBody(): [BlockExpr] { ... } +# 89| getStmtList(): [StmtList] StmtList +# 89| getTailExpr(): [MatchExpr] match ... { ... } +# 88| getScrutinee(): [TupleExpr] TupleExpr +# 88| getField(0): [PathExpr,VariableAccess] self +# 88| getPath(): [Path] self +# 88| getSegment(): [PathSegment] self +# 88| getIdentifier(): [NameRef] self +# 88| getField(1): [PathExpr,VariableAccess] other +# 88| getPath(): [Path] other +# 88| getSegment(): [PathSegment] other +# 88| getIdentifier(): [NameRef] other +# 89| getMatchArmList(): [MatchArmList] MatchArmList +# 89| getArm(0): [MatchArm] ... => true +# 88| getExpr(): [BooleanLiteralExpr] true +# 89| getPat(): [TuplePat] TuplePat +# 89| getField(0): [PathPat] ...::Variant1 +# 89| getPath(): [Path] ...::Variant1 +# 89| getQualifier(): [Path] MyDeriveEnum +# 89| getSegment(): [PathSegment] MyDeriveEnum +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 90| getSegment(): [PathSegment] Variant1 +# 90| getIdentifier(): [NameRef] Variant1 +# 89| getField(1): [PathPat] ...::Variant1 +# 89| getPath(): [Path] ...::Variant1 +# 89| getQualifier(): [Path] MyDeriveEnum +# 89| getSegment(): [PathSegment] MyDeriveEnum +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 90| getSegment(): [PathSegment] Variant1 +# 90| getIdentifier(): [NameRef] Variant1 +# 89| getArm(1): [MatchArm] ... => true +# 88| getExpr(): [BooleanLiteralExpr] true +# 89| getPat(): [TuplePat] TuplePat +# 89| getField(0): [PathPat] ...::Variant2 +# 89| getPath(): [Path] ...::Variant2 +# 89| getQualifier(): [Path] MyDeriveEnum +# 89| getSegment(): [PathSegment] MyDeriveEnum +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 91| getSegment(): [PathSegment] Variant2 +# 91| getIdentifier(): [NameRef] Variant2 +# 89| getField(1): [PathPat] ...::Variant2 +# 89| getPath(): [Path] ...::Variant2 +# 89| getQualifier(): [Path] MyDeriveEnum +# 89| getSegment(): [PathSegment] MyDeriveEnum +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 91| getSegment(): [PathSegment] Variant2 +# 91| getIdentifier(): [NameRef] Variant2 +# 88| getArm(2): [MatchArm] ... => false +# 88| getExpr(): [BooleanLiteralExpr] false +# 88| getPat(): [IdentPat] _unused +# 88| getName(): [Name] _unused +# 88| getName(): [Name] eq +# 88| getRetType(): [RetTypeRepr] RetTypeRepr +# 88| getTypeRepr(): [PathTypeRepr] bool +# 88| getPath(): [Path] bool +# 88| getSegment(): [PathSegment] bool +# 88| getIdentifier(): [NameRef] bool +# 88| getGenericParamList(): [GenericParamList] <...> +# 89| getSelfTy(): [PathTypeRepr] MyDeriveEnum::<...> +# 89| getPath(): [Path] MyDeriveEnum::<...> +# 89| getSegment(): [PathSegment] MyDeriveEnum::<...> +# 88| getGenericArgList(): [GenericArgList] <...> +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 88| getTrait(): [PathTypeRepr] ...::PartialEq +# 88| getPath(): [Path] ...::PartialEq +# 88| getQualifier(): [Path] ...::cmp +# 88| getQualifier(): [Path] $crate +# 88| getSegment(): [PathSegment] $crate +# 88| getIdentifier(): [NameRef] $crate +# 88| getSegment(): [PathSegment] cmp +# 88| getIdentifier(): [NameRef] cmp +# 88| getSegment(): [PathSegment] PartialEq +# 88| getIdentifier(): [NameRef] PartialEq +# 88| getWhereClause(): [WhereClause] WhereClause +# 89| getDeriveMacroExpansion(1): [MacroItems] MacroItems +# 89| getItem(0): [Impl] impl ...::Eq for MyDeriveEnum::<...> { ... } +# 88| getAssocItemList(): [AssocItemList] AssocItemList +# 88| getGenericParamList(): [GenericParamList] <...> +# 89| getSelfTy(): [PathTypeRepr] MyDeriveEnum::<...> +# 89| getPath(): [Path] MyDeriveEnum::<...> +# 89| getSegment(): [PathSegment] MyDeriveEnum::<...> +# 88| getGenericArgList(): [GenericArgList] <...> +# 89| getIdentifier(): [NameRef] MyDeriveEnum +# 88| getTrait(): [PathTypeRepr] ...::Eq +# 88| getPath(): [Path] ...::Eq +# 88| getQualifier(): [Path] ...::cmp +# 88| getQualifier(): [Path] $crate +# 88| getSegment(): [PathSegment] $crate +# 88| getIdentifier(): [NameRef] $crate +# 88| getSegment(): [PathSegment] cmp +# 88| getIdentifier(): [NameRef] cmp +# 88| getSegment(): [PathSegment] Eq +# 88| getIdentifier(): [NameRef] Eq +# 88| getWhereClause(): [WhereClause] WhereClause +# 88| getAttr(0): [Attr] Attr +# 88| getMeta(): [Meta] Meta +# 88| getPath(): [Path] derive +# 88| getSegment(): [PathSegment] derive +# 88| getIdentifier(): [NameRef] derive +# 88| getTokenTree(): [TokenTree] TokenTree +# 89| getName(): [Name] MyDeriveEnum +# 89| getVariantList(): [VariantList] VariantList +# 90| getVariant(0): [Variant] Variant1 +# 90| getName(): [Name] Variant1 +# 91| getVariant(1): [Variant] Variant2 +# 91| getName(): [Name] Variant2 +# 94| getItem(19): [Trait] trait MyTrait +# 94| getAssocItemList(): [AssocItemList] AssocItemList +# 95| getAssocItem(0): [Function] fn my_method +# 95| getParamList(): [ParamList] ParamList +# 95| getName(): [Name] my_method +# 95| getRetType(): [RetTypeRepr] RetTypeRepr +# 95| getTypeRepr(): [PathTypeRepr] u32 +# 95| getPath(): [Path] u32 +# 95| getSegment(): [PathSegment] u32 +# 95| getIdentifier(): [NameRef] u32 +# 94| getName(): [Name] MyTrait +# 98| getItem(20): [Union] union MyDeriveUnion +# 99| getDeriveMacroExpansion(0): [MacroItems] MacroItems +# 99| getItem(0): [Const] Const +# 98| getBody(): [IntegerLiteralExpr] 42 +# 99| getName(): [Name] CONST_MyDeriveUnion +# 98| getTypeRepr(): [PathTypeRepr] u32 +# 98| getPath(): [Path] u32 +# 98| getSegment(): [PathSegment] u32 +# 98| getIdentifier(): [NameRef] u32 +# 99| getItem(1): [Impl] impl MyTrait for MyDeriveUnion { ... } +# 99| getAssocItemList(): [AssocItemList] AssocItemList +# 99| getAssocItem(0): [Function] fn my_method +# 98| getParamList(): [ParamList] ParamList +# 99| getBody(): [BlockExpr] { ... } +# 99| getStmtList(): [StmtList] StmtList +# 99| getTailExpr(): [PathExpr] CONST_MyDeriveUnion +# 99| getPath(): [Path] CONST_MyDeriveUnion +# 99| getSegment(): [PathSegment] CONST_MyDeriveUnion +# 99| getIdentifier(): [NameRef] CONST_MyDeriveUnion +# 98| getName(): [Name] my_method +# 98| getRetType(): [RetTypeRepr] RetTypeRepr +# 98| getTypeRepr(): [PathTypeRepr] u32 +# 98| getPath(): [Path] u32 +# 98| getSegment(): [PathSegment] u32 +# 98| getIdentifier(): [NameRef] u32 +# 99| getSelfTy(): [PathTypeRepr] MyDeriveUnion +# 99| getPath(): [Path] MyDeriveUnion +# 99| getSegment(): [PathSegment] MyDeriveUnion +# 99| getIdentifier(): [NameRef] MyDeriveUnion +# 98| getTrait(): [PathTypeRepr] MyTrait +# 98| getPath(): [Path] MyTrait +# 98| getSegment(): [PathSegment] MyTrait +# 98| getIdentifier(): [NameRef] MyTrait +# 98| getAttr(0): [Attr] Attr +# 98| getMeta(): [Meta] Meta +# 98| getPath(): [Path] derive +# 98| getSegment(): [PathSegment] derive +# 98| getIdentifier(): [NameRef] derive +# 98| getTokenTree(): [TokenTree] TokenTree +# 99| getName(): [Name] MyDeriveUnion +# 99| getStructFieldList(): [StructFieldList] StructFieldList +# 100| getField(0): [StructField] StructField +# 100| getName(): [Name] field1 +# 100| getTypeRepr(): [PathTypeRepr] usize +# 100| getPath(): [Path] usize +# 100| getSegment(): [PathSegment] usize +# 100| getIdentifier(): [NameRef] usize +# 101| getField(1): [StructField] StructField +# 101| getName(): [Name] field2 +# 101| getTypeRepr(): [PathTypeRepr] f64 +# 101| getPath(): [Path] f64 +# 101| getSegment(): [PathSegment] f64 +# 101| getIdentifier(): [NameRef] f64 # 44| [Comment] //... # 56| [Comment] //... # 63| [Comment] //... @@ -2172,3 +2465,1345 @@ proc_macro.rs: # 32| getSegment(): [PathSegment] TokenStream # 32| getIdentifier(): [NameRef] TokenStream # 32| getVisibility(): [Visibility] Visibility +# 36| getItem(5): [Function] fn my_trait_derive +# 37| getParamList(): [ParamList] ParamList +# 37| getParam(0): [Param] ...: TokenStream +# 37| getTypeRepr(): [PathTypeRepr] TokenStream +# 37| getPath(): [Path] TokenStream +# 37| getSegment(): [PathSegment] TokenStream +# 37| getIdentifier(): [NameRef] TokenStream +# 37| getPat(): [IdentPat] input +# 37| getName(): [Name] input +# 36| getAttr(0): [Attr] Attr +# 36| getMeta(): [Meta] Meta +# 36| getPath(): [Path] proc_macro_derive +# 36| getSegment(): [PathSegment] proc_macro_derive +# 36| getIdentifier(): [NameRef] proc_macro_derive +# 36| getTokenTree(): [TokenTree] TokenTree +# 37| getBody(): [BlockExpr] { ... } +# 37| getStmtList(): [StmtList] StmtList +# 38| getStatement(0): [LetStmt] let ... = ... +# 38| getInitializer(): [MacroExpr] MacroExpr +# 38| getMacroCall(): [MacroCall] ...::parse_macro_input!... +# 38| getPath(): [Path] ...::parse_macro_input +# 38| getQualifier(): [Path] syn +# 38| getSegment(): [PathSegment] syn +# 38| getIdentifier(): [NameRef] syn +# 38| getSegment(): [PathSegment] parse_macro_input +# 38| getIdentifier(): [NameRef] parse_macro_input +# 38| getTokenTree(): [TokenTree] TokenTree +# 38| getMacroCallExpansion(): [MatchExpr] match ... { ... } +# 38| getScrutinee(): [CallExpr] ...::parse::<...>(...) +# 38| getArgList(): [ArgList] ArgList +# 38| getArg(0): [PathExpr,VariableAccess] input +# 38| getPath(): [Path] input +# 38| getSegment(): [PathSegment] input +# 38| getIdentifier(): [NameRef] input +# 38| getFunction(): [PathExpr] ...::parse::<...> +# 38| getPath(): [Path] ...::parse::<...> +# 38| getQualifier(): [Path] $crate +# 38| getSegment(): [PathSegment] $crate +# 38| getIdentifier(): [NameRef] $crate +# 38| getSegment(): [PathSegment] parse::<...> +# 38| getGenericArgList(): [GenericArgList] <...> +# 38| getGenericArg(0): [TypeArg] TypeArg +# 38| getTypeRepr(): [PathTypeRepr] ...::DeriveInput +# 38| getPath(): [Path] ...::DeriveInput +# 38| getQualifier(): [Path] syn +# 38| getSegment(): [PathSegment] syn +# 38| getIdentifier(): [NameRef] syn +# 38| getSegment(): [PathSegment] DeriveInput +# 38| getIdentifier(): [NameRef] DeriveInput +# 38| getIdentifier(): [NameRef] parse +# 38| getMatchArmList(): [MatchArmList] MatchArmList +# 38| getArm(0): [MatchArm] ... => data +# 38| getExpr(): [PathExpr,VariableAccess] data +# 38| getPath(): [Path] data +# 38| getSegment(): [PathSegment] data +# 38| getIdentifier(): [NameRef] data +# 38| getPat(): [TupleStructPat] ...::Ok(...) +# 38| getPath(): [Path] ...::Ok +# 38| getQualifier(): [Path] ...::__private +# 38| getQualifier(): [Path] $crate +# 38| getSegment(): [PathSegment] $crate +# 38| getIdentifier(): [NameRef] $crate +# 38| getSegment(): [PathSegment] __private +# 38| getIdentifier(): [NameRef] __private +# 38| getSegment(): [PathSegment] Ok +# 38| getIdentifier(): [NameRef] Ok +# 38| getField(0): [IdentPat] data +# 38| getName(): [Name] data +# 38| getArm(1): [MatchArm] ... => ... +# 38| getExpr(): [BlockExpr] { ... } +# 38| getStmtList(): [StmtList] StmtList +# 38| getStatement(0): [ExprStmt] ExprStmt +# 38| getExpr(): [ReturnExpr] return ... +# 38| getExpr(): [CallExpr] ...::from(...) +# 38| getArgList(): [ArgList] ArgList +# 38| getArg(0): [MethodCallExpr] err.to_compile_error() +# 38| getArgList(): [ArgList] ArgList +# 38| getIdentifier(): [NameRef] to_compile_error +# 38| getReceiver(): [PathExpr,VariableAccess] err +# 38| getPath(): [Path] err +# 38| getSegment(): [PathSegment] err +# 38| getIdentifier(): [NameRef] err +# 38| getFunction(): [PathExpr] ...::from +# 38| getPath(): [Path] ...::from +# 38| getQualifier(): [Path] ...::TokenStream +# 38| getQualifier(): [Path] ...::__private +# 38| getQualifier(): [Path] $crate +# 38| getSegment(): [PathSegment] $crate +# 38| getIdentifier(): [NameRef] $crate +# 38| getSegment(): [PathSegment] __private +# 38| getIdentifier(): [NameRef] __private +# 38| getSegment(): [PathSegment] TokenStream +# 38| getIdentifier(): [NameRef] TokenStream +# 38| getSegment(): [PathSegment] from +# 38| getIdentifier(): [NameRef] from +# 38| getPat(): [TupleStructPat] ...::Err(...) +# 38| getPath(): [Path] ...::Err +# 38| getQualifier(): [Path] ...::__private +# 38| getQualifier(): [Path] $crate +# 38| getSegment(): [PathSegment] $crate +# 38| getIdentifier(): [NameRef] $crate +# 38| getSegment(): [PathSegment] __private +# 38| getIdentifier(): [NameRef] __private +# 38| getSegment(): [PathSegment] Err +# 38| getIdentifier(): [NameRef] Err +# 38| getField(0): [IdentPat] err +# 38| getName(): [Name] err +# 38| getPat(): [IdentPat] ast +# 38| getName(): [Name] ast +# 39| getStatement(1): [LetStmt] let ... = ... +# 39| getInitializer(): [RefExpr] &... +# 39| getExpr(): [FieldExpr] ast.ident +# 39| getContainer(): [PathExpr,VariableAccess] ast +# 39| getPath(): [Path] ast +# 39| getSegment(): [PathSegment] ast +# 39| getIdentifier(): [NameRef] ast +# 39| getIdentifier(): [NameRef] ident +# 39| getPat(): [IdentPat] name +# 39| getName(): [Name] name +# 40| getStatement(2): [LetStmt] let ... = ... +# 40| getInitializer(): [CallExpr] ...::new(...) +# 40| getArgList(): [ArgList] ArgList +# 40| getArg(0): [RefExpr] &... +# 40| getExpr(): [MacroExpr] MacroExpr +# 40| getMacroCall(): [MacroCall] format!... +# 40| getPath(): [Path] format +# 40| getSegment(): [PathSegment] format +# 40| getIdentifier(): [NameRef] format +# 40| getTokenTree(): [TokenTree] TokenTree +# 40| getMacroCallExpansion(): [CallExpr] ...::must_use(...) +# 40| getArgList(): [ArgList] ArgList +# 40| getArg(0): [BlockExpr] { ... } +# 40| getStmtList(): [StmtList] StmtList +# 40| getStatement(0): [LetStmt] let ... = ... +# 40| getInitializer(): [CallExpr] ...::format(...) +# 40| getArgList(): [ArgList] ArgList +# 40| getArg(0): [MacroExpr] MacroExpr +# 40| getMacroCall(): [MacroCall] ...::format_args!... +# 40| getPath(): [Path] ...::format_args +# 40| getQualifier(): [Path] ...::__export +# 40| getQualifier(): [Path] $crate +# 40| getSegment(): [PathSegment] $crate +# 40| getIdentifier(): [NameRef] $crate +# 40| getSegment(): [PathSegment] __export +# 40| getIdentifier(): [NameRef] __export +# 40| getSegment(): [PathSegment] format_args +# 40| getIdentifier(): [NameRef] format_args +# 40| getTokenTree(): [TokenTree] TokenTree +# 40| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr +# 40| getArg(0): [FormatArgsArg] FormatArgsArg +# 40| getExpr(): [PathExpr,VariableAccess] name +# 40| getPath(): [Path] name +# 40| getSegment(): [PathSegment] name +# 40| getIdentifier(): [NameRef] name +# 40| getTemplate(): [StringLiteralExpr] "CONST_{}" +# 40| getFormat(0): [Format] {} +# 40| getFunction(): [PathExpr] ...::format +# 40| getPath(): [Path] ...::format +# 40| getQualifier(): [Path] ...::fmt +# 40| getQualifier(): [Path] $crate +# 40| getSegment(): [PathSegment] $crate +# 40| getIdentifier(): [NameRef] $crate +# 40| getSegment(): [PathSegment] fmt +# 40| getIdentifier(): [NameRef] fmt +# 40| getSegment(): [PathSegment] format +# 40| getIdentifier(): [NameRef] format +# 40| getPat(): [IdentPat] res +# 40| getName(): [Name] res +# 40| getTailExpr(): [PathExpr,VariableAccess] res +# 40| getPath(): [Path] res +# 40| getSegment(): [PathSegment] res +# 40| getIdentifier(): [NameRef] res +# 40| getFunction(): [PathExpr] ...::must_use +# 40| getPath(): [Path] ...::must_use +# 40| getQualifier(): [Path] ...::__export +# 40| getQualifier(): [Path] $crate +# 40| getSegment(): [PathSegment] $crate +# 40| getIdentifier(): [NameRef] $crate +# 40| getSegment(): [PathSegment] __export +# 40| getIdentifier(): [NameRef] __export +# 40| getSegment(): [PathSegment] must_use +# 40| getIdentifier(): [NameRef] must_use +# 40| getArg(1): [MethodCallExpr] name.span() +# 40| getArgList(): [ArgList] ArgList +# 40| getIdentifier(): [NameRef] span +# 40| getReceiver(): [PathExpr,VariableAccess] name +# 40| getPath(): [Path] name +# 40| getSegment(): [PathSegment] name +# 40| getIdentifier(): [NameRef] name +# 40| getFunction(): [PathExpr] ...::new +# 40| getPath(): [Path] ...::new +# 40| getQualifier(): [Path] ...::Ident +# 40| getQualifier(): [Path] syn +# 40| getSegment(): [PathSegment] syn +# 40| getIdentifier(): [NameRef] syn +# 40| getSegment(): [PathSegment] Ident +# 40| getIdentifier(): [NameRef] Ident +# 40| getSegment(): [PathSegment] new +# 40| getIdentifier(): [NameRef] new +# 40| getPat(): [IdentPat] const_ident +# 40| getName(): [Name] const_ident +# 41| getTailExpr(): [MethodCallExpr] ... .into() +# 49| getArgList(): [ArgList] ArgList +# 49| getIdentifier(): [NameRef] into +# 41| getReceiver(): [MacroExpr] MacroExpr +# 41| getMacroCall(): [MacroCall] quote!... +# 41| getPath(): [Path] quote +# 41| getSegment(): [PathSegment] quote +# 41| getIdentifier(): [NameRef] quote +# 41| getTokenTree(): [TokenTree] TokenTree +# 42| getMacroCallExpansion(): [BlockExpr] { ... } +# 42| 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 +# 42| getStatement(1): [ExprStmt] ExprStmt +# 42| getExpr(): [MacroExpr] MacroExpr +# 42| 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 +# 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 +# 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 +# 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| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [CallExpr] ...::push_ident(...) +# 42| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [PathExpr] _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(): [MacroBlockExpr] MacroBlockExpr +# 42| getStatement(0): [ExprStmt] ExprStmt +# 42| getExpr(): [CallExpr] ...::to_tokens(...) +# 42| getArgList(): [ArgList] ArgList +# 42| getArg(0): [RefExpr] &const_ident +# 42| getExpr(): [PathExpr,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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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 +# 44| getStatement(0): [ExprStmt] ExprStmt +# 44| getExpr(): [CallExpr] ...::push_ident(...) +# 44| getArgList(): [ArgList] ArgList +# 41| getArg(0): [RefExpr] &mut _s +# 41| getExpr(): [PathExpr] _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(): [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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr,VariableAccess] name +# 44| getPath(): [Path] name +# 44| getSegment(): [PathSegment] name +# 44| getIdentifier(): [NameRef] name +# 41| getArg(1): [RefExpr] &mut _s +# 41| getExpr(): [PathExpr] _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(): [PathExpr] _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| 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| 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 +# 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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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(): [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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr] _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(): [PathExpr,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(): [PathExpr] _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(): [PathExpr] _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 +# 41| getTailExpr(): [PathExpr] _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 +# 41| getTailExpr(): [PathExpr] _s +# 41| getPath(): [Path] _s +# 41| getSegment(): [PathSegment] _s +# 41| getIdentifier(): [NameRef] _s +# 37| getName(): [Name] my_trait_derive +# 37| getRetType(): [RetTypeRepr] RetTypeRepr +# 37| getTypeRepr(): [PathTypeRepr] TokenStream +# 37| getPath(): [Path] TokenStream +# 37| getSegment(): [PathSegment] TokenStream +# 37| getIdentifier(): [NameRef] TokenStream +# 37| getVisibility(): [Visibility] Visibility diff --git a/rust/ql/test/extractor-tests/macro-expansion/macro_expansion.rs b/rust/ql/test/extractor-tests/macro-expansion/macro_expansion.rs index 419105547a1..14567252883 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/macro_expansion.rs +++ b/rust/ql/test/extractor-tests/macro-expansion/macro_expansion.rs @@ -1,4 +1,4 @@ -use proc_macro::{repeat, add_one, erase}; +use proc_macro::{repeat, add_one, erase, MyTrait}; #[add_one] pub fn foo() { @@ -78,3 +78,25 @@ type MyInt = my_int!(); // this didn't expand in 0.0.274..0.0.287 struct MyStruct { field: my_int!(), // this didn't expand in 0.0.274..0.0.287 } + + +#[derive(Debug)] +struct MyDerive { + field: usize, +} + +#[derive(PartialEq, Eq)] +enum MyDeriveEnum { + Variant1, + Variant2, +} + +trait MyTrait { + fn my_method() -> u32; +} + +#[derive(MyTrait)] +union MyDeriveUnion { + field1: usize, + field2: f64, +} \ No newline at end of file diff --git a/rust/ql/test/extractor-tests/macro-expansion/proc_macro.rs b/rust/ql/test/extractor-tests/macro-expansion/proc_macro.rs index 3e9e7ccd1cf..05c6f0b09a6 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/proc_macro.rs +++ b/rust/ql/test/extractor-tests/macro-expansion/proc_macro.rs @@ -32,3 +32,20 @@ pub fn add_one(_attr: TokenStream, item: TokenStream) -> TokenStream { pub fn erase(_attr: TokenStream, _item: TokenStream) -> TokenStream { TokenStream::new() } + +#[proc_macro_derive(MyTrait)] +pub fn my_trait_derive(input: TokenStream) -> TokenStream { + let ast = syn::parse_macro_input!(input as syn::DeriveInput); + let name = &ast.ident; + let const_ident = syn::Ident::new(&format!("CONST_{}", name), name.span()); + quote! { + const #const_ident: u32 = 42; + + impl MyTrait for #name { + fn my_method() -> u32 { + #const_ident + } + } + }.into() +} + diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.expected b/rust/ql/test/extractor-tests/macro-expansion/test.expected index 10a73fd947c..19bceca9212 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/test.expected @@ -11,6 +11,12 @@ attribute_macros | macro_expansion.rs:15:1:16:14 | fn bar_0 | 1 | macro_expansion.rs:16:1:16:14 | fn bar_0_new | | macro_expansion.rs:15:1:16:14 | fn bar_1 | 0 | macro_expansion.rs:16:1:16:14 | fn bar_1 | | macro_expansion.rs:15:1:16:14 | fn bar_1 | 1 | macro_expansion.rs:16:1:16:14 | fn bar_1_new | +derive_macros +| macro_expansion.rs:83:1:86:1 | struct MyDerive | 0 | 0 | macro_expansion.rs:84:8:85:9 | impl ...::Debug for MyDerive::<...> { ... } | +| macro_expansion.rs:88:1:92:1 | enum MyDeriveEnum | 0 | 0 | macro_expansion.rs:89:6:91:12 | impl ...::PartialEq for MyDeriveEnum::<...> { ... } | +| macro_expansion.rs:88:1:92:1 | enum MyDeriveEnum | 1 | 0 | macro_expansion.rs:89:6:89:17 | impl ...::Eq for MyDeriveEnum::<...> { ... } | +| macro_expansion.rs:98:1:102:1 | union MyDeriveUnion | 0 | 0 | macro_expansion.rs:99:7:99:19 | Const | +| macro_expansion.rs:98:1:102:1 | union MyDeriveUnion | 0 | 1 | macro_expansion.rs:99:7:99:19 | impl MyTrait for MyDeriveUnion { ... } | macro_calls | included/included.rs:2:9:2:39 | concat!... | included/included.rs:2:17:2:38 | "Hello world!" | | macro_expansion.rs:5:9:5:34 | concat!... | macro_expansion.rs:5:17:5:34 | "Hello world!" | diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.ql b/rust/ql/test/extractor-tests/macro-expansion/test.ql index 1952dff3041..7d97ea6a10f 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.ql +++ b/rust/ql/test/extractor-tests/macro-expansion/test.ql @@ -5,6 +5,10 @@ query predicate attribute_macros(Item i, int index, Item expanded) { i.fromSource() and expanded = i.getAttributeMacroExpansion().getItem(index) } +query predicate derive_macros(Adt i, int index, int subIndex, Item expanded) { + i.fromSource() and expanded = i.getDeriveMacroExpansion(index).getItem(subIndex) +} + query predicate macro_calls(MacroCall c, AstNode expansion) { c.fromSource() and not c.getLocation().getFile().getAbsolutePath().matches("%proc_macro.rs") and diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index aebf9a7a410..ab5a62d9a98 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -16,6 +16,13 @@ class LoopingExpr(LabelableExpr): loop_body: optional["BlockExpr"] | child +class Adt(Item): + """ + An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. + """ + derive_macro_expansions: list[MacroItems] | child | rust.detach + + @annotate(Module) @rust.doc_test_signature(None) class _: @@ -1032,7 +1039,7 @@ class _: """ -@annotate(Enum) +@annotate(Enum, replace_bases={Item: Adt}) class _: """ An enum declaration. @@ -1827,7 +1834,7 @@ class _: """ -@annotate(Struct) +@annotate(Struct, replace_bases={Item: Adt}) class _: """ A Struct. For example: @@ -2006,7 +2013,7 @@ class _: """ -@annotate(Union) +@annotate(Union, replace_bases={Item: Adt}) class _: """ A union declaration. From 84e93e2dc53ca9a77d4a14231c71c841176c270e Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 20 Jun 2025 11:49:30 +0200 Subject: [PATCH 164/340] C#: Add another test for `MissingAccessControl.ql` --- .../MissingAccessControl/MVCTests/ProfileController.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/MVCTests/ProfileController.cs b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/MVCTests/ProfileController.cs index 9c20313b84b..84af3b50d1f 100644 --- a/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/MVCTests/ProfileController.cs +++ b/csharp/ql/test/query-tests/Security Features/CWE-285/MissingAccessControl/MVCTests/ProfileController.cs @@ -41,6 +41,14 @@ public class ProfileController : Controller doThings(); return View(); } + + // GOOD: The Authorize attribute is used. + [Authorize("foo")] + public ActionResult Delete5(int id) + { + doThings(); + return View(); + } } [Authorize] From bd2812c82180eb3b653e752f404d3557c2075202 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 20 Jun 2025 11:09:01 +0200 Subject: [PATCH 165/340] Rust: Only resolve `deref` methods on references to avoid blowup --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 9 +++++++++ rust/ql/test/library-tests/type-inference/main.rs | 6 +++--- .../type-inference/type-inference.expected | 14 -------------- .../CONSISTENCY/PathResolutionConsistency.expected | 6 ------ .../CONSISTENCY/PathResolutionConsistency.expected | 14 +++++++------- 5 files changed, 19 insertions(+), 30 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index a6034608d88..b560ac5ec8c 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1157,6 +1157,15 @@ final class MethodCall extends Call { ( path0.isCons(TRefTypeParameter(), path) or + ( + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) + or + // Ideally we should find all methods on reference types, but as + // that currently causes a blowup we limit this to the `deref` + // method in order to make dereferencing work. + this.getMethodName() = "deref" + ) and path = path0 ) | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index bd8f6a1f25a..109581588a5 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1157,14 +1157,14 @@ mod method_call_type_conversion { // https://doc.rust-lang.org/std/string/struct.String.html#deref. let u = x9.parse::(); // $ method=parse type=u:T.u32 - let my_thing = &MyInt { a: 37 }; // $ SPURIOUS: type=my_thing:&T.&T.MyInt + let my_thing = &MyInt { a: 37 }; // implicit borrow of a `&` - let a = my_thing.method_on_borrow(); // $ method=MyInt::method_on_borrow + let a = my_thing.method_on_borrow(); // $ MISSING: method=MyInt::method_on_borrow println!("{:?}", a); // no implicit borrow let my_thing = &MyInt { a: 38 }; - let a = my_thing.method_not_on_borrow(); // $ method=MyInt::method_not_on_borrow + let a = my_thing.method_not_on_borrow(); // $ MISSING: method=MyInt::method_not_on_borrow println!("{:?}", 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 e39428cc2d7..fdbe769eba8 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1675,26 +1675,15 @@ inferType | main.rs:1158:17:1158:33 | x9.parse() | | {EXTERNAL LOCATION} | Result | | main.rs:1158:17:1158:33 | x9.parse() | T | {EXTERNAL LOCATION} | u32 | | main.rs:1160:13:1160:20 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1160:13:1160:20 | my_thing | &T | file://:0:0:0:0 | & | | main.rs:1160:13:1160:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1160:13:1160:20 | my_thing | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1160:24:1160:39 | &... | | file://:0:0:0:0 | & | -| main.rs:1160:24:1160:39 | &... | &T | file://:0:0:0:0 | & | | main.rs:1160:24:1160:39 | &... | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1160:24:1160:39 | &... | &T.&T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1160:25:1160:39 | MyInt {...} | | file://:0:0:0:0 | & | | main.rs:1160:25:1160:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1160:25:1160:39 | MyInt {...} | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i32 | | main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1162:13:1162:13 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1162:17:1162:24 | my_thing | | file://:0:0:0:0 | & | -| main.rs:1162:17:1162:24 | my_thing | &T | file://:0:0:0:0 | & | | main.rs:1162:17:1162:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1162:17:1162:24 | my_thing | &T.&T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1162:17:1162:43 | my_thing.method_on_borrow() | | {EXTERNAL LOCATION} | i64 | | main.rs:1163:18:1163:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1163:26:1163:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1166:13:1166:20 | my_thing | | file://:0:0:0:0 | & | | main.rs:1166:13:1166:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1166:24:1166:39 | &... | | file://:0:0:0:0 | & | @@ -1702,12 +1691,9 @@ inferType | main.rs:1166:25:1166:39 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | | main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i32 | | main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1167:13:1167:13 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1167:17:1167:24 | my_thing | | file://:0:0:0:0 | & | | main.rs:1167:17:1167:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1167:17:1167:47 | my_thing.method_not_on_borrow() | | {EXTERNAL LOCATION} | i64 | | main.rs:1168:18:1168:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1168:26:1168:26 | a | | {EXTERNAL LOCATION} | i64 | | main.rs:1175:16:1175:20 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1175:16:1175:20 | SelfParam | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | | main.rs:1178:16:1178:20 | SelfParam | | file://:0:0:0:0 | & | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index b67b05a0531..36e75877d2b 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -5,9 +5,3 @@ multipleMethodCallTargets | test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:103:12:103:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | -| test_logging.rs:103:12:103:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | -| test_logging.rs:107:14:107:46 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | -| test_logging.rs:107:14:107:46 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | -| test_logging.rs:111:12:111:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | -| test_logging.rs:111:12:111:44 | ... .write_fmt(...) | file://:0:0:0:0 | fn write_fmt | diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 767f3366008..e3bd532388b 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,30 +1,30 @@ multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | From b7f66f865307f56d2ada185dcc3f16e48a9adde5 Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Thu, 19 Jun 2025 16:57:27 +0200 Subject: [PATCH 166/340] Rust: Rust: expand attribute macros on `AssocItem` and `ExternItem` --- rust/extractor/src/translate/base.rs | 64 +++++-- .../macro-expansion/PrintAst.expected | 180 ++++++++++++++---- .../macro-expansion/test.expected | 16 +- 3 files changed, 209 insertions(+), 51 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 9e9123c4570..3a34bf29fa5 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -26,12 +26,33 @@ use ra_ap_syntax::{ macro_rules! pre_emit { (Item, $self:ident, $node:ident) => { if let Some(label) = $self.prepare_item_expansion($node) { - return Some(label); + return Some(label.into()); + } + }; + (AssocItem, $self:ident, $node:ident) => { + if let Some(label) = $self.prepare_item_expansion(&$node.clone().into()) { + return Some(label.into()); + } + }; + (ExternItem, $self:ident, $node:ident) => { + if let Some(label) = $self.prepare_item_expansion(&$node.clone().into()) { + return Some(label.into()); } }; ($($_:tt)*) => {}; } - +impl From> for crate::trap::Label { + fn from(value: crate::trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Item is a subclass of Stmt + unsafe { Self::from_untyped(value.as_untyped()) } + } +} +impl From> for crate::trap::Label { + fn from(value: crate::trap::Label) -> Self { + // SAFETY: this is safe because in the dbscheme Item is a subclass of Stmt + unsafe { Self::from_untyped(value.as_untyped()) } + } +} #[macro_export] macro_rules! post_emit { (MacroCall, $self:ident, $node:ident, $label:ident) => { @@ -62,6 +83,18 @@ macro_rules! post_emit { (Item, $self:ident, $node:ident, $label:ident) => { $self.emit_item_expansion($node, $label); }; + (AssocItem, $self:ident, $node:ident, $label:ident) => { + $self.emit_item_expansion( + &$node.clone().into(), + From::>::from($label), + ); + }; + (ExternItem, $self:ident, $node:ident, $label:ident) => { + $self.emit_item_expansion( + &$node.clone().into(), + From::>::from($label), + ); + }; // TODO canonical origin of other items (PathExpr, $self:ident, $node:ident, $label:ident) => { $self.extract_path_canonical_destination($node, $label.into()); @@ -694,10 +727,21 @@ impl<'a> Translator<'a> { } } + fn is_attribute_macro_target(&self, node: &ast::Item) -> bool { + // rust-analyzer considers as an `attr_macro_call` also a plain macro call, but we want to + // process that differently (in `extract_macro_call_expanded`) + !matches!(node, ast::Item::MacroCall(_)) + && self.semantics.is_some_and(|semantics| { + let file = semantics.hir_file_for(node.syntax()); + let node = InFile::new(file, node); + semantics.is_attr_macro_call(node) + }) + } + pub(crate) fn prepare_item_expansion( &mut self, node: &ast::Item, - ) -> Option> { + ) -> Option> { if self.source_kind == SourceKind::Library { // if the item expands via an attribute macro, we want to only emit the expansion if let Some(expanded) = self.emit_attribute_macro_expansion(node) { @@ -714,13 +758,10 @@ impl<'a> Translator<'a> { expanded.into(), &mut self.trap.writer, ); - return Some(label.into()); + return Some(label); } } - let semantics = self.semantics.as_ref()?; - let file = semantics.hir_file_for(node.syntax()); - let node = InFile::new(file, node); - if semantics.is_attr_macro_call(node) { + if self.is_attribute_macro_target(node) { self.macro_context_depth += 1; } None @@ -730,10 +771,7 @@ impl<'a> Translator<'a> { &mut self, node: &ast::Item, ) -> Option> { - let semantics = self.semantics?; - let file = semantics.hir_file_for(node.syntax()); - let infile_node = InFile::new(file, node); - if !semantics.is_attr_macro_call(infile_node) { + if !self.is_attribute_macro_target(node) { return None; } self.macro_context_depth -= 1; @@ -743,7 +781,7 @@ impl<'a> Translator<'a> { } let ExpandResult { value: expanded, .. - } = semantics.expand_attr_macro(node)?; + } = self.semantics.and_then(|s| s.expand_attr_macro(node))?; self.emit_macro_expansion_parse_errors(node, &expanded); let macro_items = ast::MacroItems::cast(expanded).or_else(|| { let message = "attribute macro expansion cannot be cast to MacroItems".to_owned(); diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index 092c26051d6..a89072531cc 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -406,6 +406,151 @@ macro_expansion.rs: # 30| getItem(6): [Impl] impl S { ... } # 30| getAssocItemList(): [AssocItemList] AssocItemList # 31| getAssocItem(0): [Function] fn bzz +# 32| getAttributeMacroExpansion(): [MacroItems] MacroItems +# 32| getItem(0): [Function] fn bzz_0 +# 32| getParamList(): [ParamList] ParamList +# 32| getBody(): [BlockExpr] { ... } +# 32| getStmtList(): [StmtList] StmtList +# 33| getStatement(0): [ExprStmt] ExprStmt +# 33| getExpr(): [MacroExpr] MacroExpr +# 33| getMacroCall(): [MacroCall] hello!... +# 33| getPath(): [Path] hello +# 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| 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] Visibility +# 32| getItem(1): [Function] fn bzz_1 +# 32| getParamList(): [ParamList] ParamList +# 32| getBody(): [BlockExpr] { ... } +# 32| getStmtList(): [StmtList] StmtList +# 33| getStatement(0): [ExprStmt] ExprStmt +# 33| getExpr(): [MacroExpr] MacroExpr +# 33| getMacroCall(): [MacroCall] hello!... +# 33| getPath(): [Path] hello +# 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| 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] Visibility +# 32| getItem(2): [Function] fn bzz_2 +# 32| getParamList(): [ParamList] ParamList +# 32| getBody(): [BlockExpr] { ... } +# 32| getStmtList(): [StmtList] StmtList +# 33| getStatement(0): [ExprStmt] ExprStmt +# 33| getExpr(): [MacroExpr] MacroExpr +# 33| getMacroCall(): [MacroCall] hello!... +# 33| getPath(): [Path] hello +# 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| 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] Visibility # 32| getParamList(): [ParamList] ParamList # 31| getAttr(0): [Attr] Attr # 31| getMeta(): [Meta] Meta @@ -422,41 +567,6 @@ macro_expansion.rs: # 33| getSegment(): [PathSegment] hello # 33| getIdentifier(): [NameRef] hello # 33| getTokenTree(): [TokenTree] TokenTree -# 33| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 33| getStatement(0): [ExprStmt] ExprStmt -# 33| getExpr(): [MacroExpr] MacroExpr -# 33| getMacroCall(): [MacroCall] println!... -# 33| getPath(): [Path] println -# 33| getSegment(): [PathSegment] println -# 33| getIdentifier(): [NameRef] println -# 33| getTokenTree(): [TokenTree] TokenTree -# 33| getMacroCallExpansion(): [MacroBlockExpr] MacroBlockExpr -# 33| getTailExpr(): [BlockExpr] { ... } -# 33| getStmtList(): [StmtList] StmtList -# 33| getStatement(0): [ExprStmt] ExprStmt -# 33| getExpr(): [CallExpr] ...::_print(...) -# 33| getArgList(): [ArgList] ArgList -# 33| getArg(0): [MacroExpr] MacroExpr -# 33| getMacroCall(): [MacroCall] ...::format_args_nl!... -# 33| getPath(): [Path] ...::format_args_nl -# 33| getQualifier(): [Path] $crate -# 33| getSegment(): [PathSegment] $crate -# 33| getIdentifier(): [NameRef] $crate -# 33| getSegment(): [PathSegment] format_args_nl -# 33| getIdentifier(): [NameRef] format_args_nl -# 33| getTokenTree(): [TokenTree] TokenTree -# 33| getMacroCallExpansion(): [FormatArgsExpr] FormatArgsExpr -# 33| getTemplate(): [StringLiteralExpr] "hello!\n" -# 33| getFunction(): [PathExpr] ...::_print -# 33| getPath(): [Path] ...::_print -# 33| getQualifier(): [Path] ...::io -# 33| getQualifier(): [Path] $crate -# 33| getSegment(): [PathSegment] $crate -# 33| getIdentifier(): [NameRef] $crate -# 33| getSegment(): [PathSegment] io -# 33| getIdentifier(): [NameRef] io -# 33| getSegment(): [PathSegment] _print -# 33| getIdentifier(): [NameRef] _print # 32| getName(): [Name] bzz # 32| getVisibility(): [Visibility] Visibility # 30| getSelfTy(): [PathTypeRepr] S diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.expected b/rust/ql/test/extractor-tests/macro-expansion/test.expected index 10a73fd947c..5940c63da2b 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/test.expected @@ -11,13 +11,22 @@ attribute_macros | macro_expansion.rs:15:1:16:14 | fn bar_0 | 1 | macro_expansion.rs:16:1:16:14 | fn bar_0_new | | macro_expansion.rs:15:1:16:14 | fn bar_1 | 0 | macro_expansion.rs:16:1:16:14 | fn bar_1 | | macro_expansion.rs:15:1:16:14 | fn bar_1 | 1 | macro_expansion.rs:16:1:16:14 | fn bar_1_new | +| macro_expansion.rs:31:5:34:5 | fn bzz | 0 | macro_expansion.rs:32:5:33:17 | fn bzz_0 | +| macro_expansion.rs:31:5:34:5 | fn bzz | 1 | macro_expansion.rs:32:5:33:17 | fn bzz_1 | +| macro_expansion.rs:31:5:34:5 | fn bzz | 2 | macro_expansion.rs:32:5:33:17 | fn bzz_2 | macro_calls | included/included.rs:2:9:2:39 | concat!... | included/included.rs:2:17:2:38 | "Hello world!" | | macro_expansion.rs:5:9:5:34 | concat!... | macro_expansion.rs:5:17:5:34 | "Hello world!" | | macro_expansion.rs:5:9:5:34 | concat!... | macro_expansion.rs:5:17:5:34 | "Hello world!" | -| macro_expansion.rs:33:9:33:16 | ...::format_args_nl!... | macro_expansion.rs:33:9:33:16 | FormatArgsExpr | -| macro_expansion.rs:33:9:33:16 | hello!... | macro_expansion.rs:33:9:33:16 | MacroBlockExpr | -| macro_expansion.rs:33:9:33:16 | println!... | macro_expansion.rs:33:9:33:16 | MacroBlockExpr | +| 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:15 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | +| macro_expansion.rs:33:9:33:15 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | +| macro_expansion.rs:33:9:33:15 | hello!... | macro_expansion.rs:31:5:31:16 | MacroBlockExpr | | macro_expansion.rs:44:5:44:13 | def_x!... | macro_expansion.rs:44:5:44:13 | 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 | @@ -34,4 +43,5 @@ macro_calls | macro_expansion.rs:79:12:79:20 | my_int!... | macro_expansion.rs:79:12:79:20 | i32 | unexpanded_macro_calls | macro_expansion.rs:5:9:5:35 | concat!... | +| macro_expansion.rs:33:9:33:16 | hello!... | warnings From 2acce96bb5ed7c4168ae9072c36b2676cab0640a Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Fri, 20 Jun 2025 13:20:35 +0200 Subject: [PATCH 167/340] Apply suggestions from code review Co-authored-by: Paolo Tranquilli --- rust/extractor/src/translate/base.rs | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 3a34bf29fa5..c8ebf1309bf 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -41,15 +41,20 @@ macro_rules! pre_emit { }; ($($_:tt)*) => {}; } + +// TODO: remove the mannually written Label conversions. These can be auto-generated by +// changing the base class of AssocItem from AstNode to Item impl From> for crate::trap::Label { fn from(value: crate::trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Item is a subclass of Stmt + // SAFETY: this is safe because every concrete instance of `@assoc_item` is also an instance of `@item` unsafe { Self::from_untyped(value.as_untyped()) } } } +// TODO: remove the mannually written Label conversions. These can be auto-generated by +// changing the base class of ExternItem from AstNode to Item impl From> for crate::trap::Label { fn from(value: crate::trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Item is a subclass of Stmt + // SAFETY: this is safe because every concrete instance of `@extern_item` is also an instance of `@item` unsafe { Self::from_untyped(value.as_untyped()) } } } From 17ce5f42e668be469a0cba9422f1422bd246ab45 Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Fri, 20 Jun 2025 13:44:14 +0200 Subject: [PATCH 168/340] C++: Update expected test results after extractor changes --- .../floats/float128/usertypes.ql | 7 +++-- .../library-tests/ir/ir/PrintAST.expected | 30 +++++++++---------- .../library-tests/ir/ir/aliased_ir.expected | 2 +- .../test/library-tests/ir/ir/raw_ir.expected | 2 +- .../WrongTypeFormatArguments.expected | 2 ++ .../Microsoft/printf1.h | 4 +-- .../WrongTypeFormatArguments.expected | 2 ++ .../Microsoft_no_wchar/printf1.h | 4 +-- 8 files changed, 30 insertions(+), 23 deletions(-) diff --git a/cpp/ql/test/library-tests/floats/float128/usertypes.ql b/cpp/ql/test/library-tests/floats/float128/usertypes.ql index d3677562532..2b85c9519ab 100644 --- a/cpp/ql/test/library-tests/floats/float128/usertypes.ql +++ b/cpp/ql/test/library-tests/floats/float128/usertypes.ql @@ -2,6 +2,9 @@ import cpp from UserType t, Type related where - related = t.(Class).getABaseClass() or - related = t.(TypedefType).getUnderlyingType() + ( + related = t.(Class).getABaseClass() or + related = t.(TypedefType).getUnderlyingType() + ) and + exists(t.getFile()) select t, related diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index d3ef1de1e13..7a50fbe51de 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -10807,22 +10807,22 @@ ir.cpp: # 885| Type = [FunctionPointerType] ..(*)(..) # 885| ValueCategory = prvalue # 886| getStmt(2): [ReturnStmt] return ... -# 888| [TopLevelFunction] void VAListUsage(int, __va_list_tag[1]) +# 888| [TopLevelFunction] void VAListUsage(int, __builtin_va_list) # 888| : # 888| getParameter(0): [Parameter] x # 888| Type = [IntType] int # 888| getParameter(1): [Parameter] args -# 888| Type = [ArrayType] __va_list_tag[1] +# 888| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 888| getEntryPoint(): [BlockStmt] { ... } # 889| getStmt(0): [DeclStmt] declaration # 889| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args2 -# 889| Type = [ArrayType] __va_list_tag[1] +# 889| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 890| getStmt(1): [ExprStmt] ExprStmt # 890| getExpr(): [BuiltInVarArgCopy] __builtin_va_copy # 890| Type = [VoidType] void # 890| ValueCategory = prvalue # 890| getDestinationVAList(): [VariableAccess] args2 -# 890| Type = [ArrayType] __va_list_tag[1] +# 890| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 890| ValueCategory = lvalue # 890| getSourceVAList(): [VariableAccess] args # 890| Type = [PointerType] __va_list_tag * @@ -10859,7 +10859,7 @@ ir.cpp: # 893| Type = [VoidType] void # 893| ValueCategory = prvalue # 893| getVAList(): [VariableAccess] args2 -# 893| Type = [ArrayType] __va_list_tag[1] +# 893| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 893| ValueCategory = lvalue # 893| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 893| Type = [PointerType] __va_list_tag * @@ -10872,13 +10872,13 @@ ir.cpp: # 896| getEntryPoint(): [BlockStmt] { ... } # 897| getStmt(0): [DeclStmt] declaration # 897| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args -# 897| Type = [ArrayType] __va_list_tag[1] +# 897| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 899| getStmt(1): [ExprStmt] ExprStmt # 899| getExpr(): [BuiltInVarArgsStart] __builtin_va_start # 899| Type = [VoidType] void # 899| ValueCategory = prvalue # 899| getVAList(): [VariableAccess] args -# 899| Type = [ArrayType] __va_list_tag[1] +# 899| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 899| ValueCategory = lvalue # 899| getLastNamedParameter(): [VariableAccess] x # 899| Type = [IntType] int @@ -10888,16 +10888,16 @@ ir.cpp: # 899| ValueCategory = prvalue # 900| getStmt(2): [DeclStmt] declaration # 900| getDeclarationEntry(0): [VariableDeclarationEntry] definition of args2 -# 900| Type = [ArrayType] __va_list_tag[1] +# 900| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 901| getStmt(3): [ExprStmt] ExprStmt # 901| getExpr(): [BuiltInVarArgCopy] __builtin_va_copy # 901| Type = [VoidType] void # 901| ValueCategory = prvalue # 901| getDestinationVAList(): [VariableAccess] args2 -# 901| Type = [ArrayType] __va_list_tag[1] +# 901| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 901| ValueCategory = lvalue # 901| getSourceVAList(): [VariableAccess] args -# 901| Type = [ArrayType] __va_list_tag[1] +# 901| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 901| ValueCategory = lvalue # 901| getDestinationVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 901| Type = [PointerType] __va_list_tag * @@ -10913,7 +10913,7 @@ ir.cpp: # 902| Type = [DoubleType] double # 902| ValueCategory = prvalue(load) # 902| getVAList(): [VariableAccess] args -# 902| Type = [ArrayType] __va_list_tag[1] +# 902| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 902| ValueCategory = lvalue # 902| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 902| Type = [PointerType] __va_list_tag * @@ -10926,7 +10926,7 @@ ir.cpp: # 903| Type = [IntType] int # 903| ValueCategory = prvalue(load) # 903| getVAList(): [VariableAccess] args -# 903| Type = [ArrayType] __va_list_tag[1] +# 903| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 903| ValueCategory = lvalue # 903| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 903| Type = [PointerType] __va_list_tag * @@ -10940,7 +10940,7 @@ ir.cpp: # 904| Type = [VoidType] void # 904| ValueCategory = prvalue # 904| getVAList(): [VariableAccess] args -# 904| Type = [ArrayType] __va_list_tag[1] +# 904| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 904| ValueCategory = lvalue # 904| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 904| Type = [PointerType] __va_list_tag * @@ -10953,7 +10953,7 @@ ir.cpp: # 905| Type = [IntType] int # 905| ValueCategory = prvalue(load) # 905| getArgument(1): [VariableAccess] args2 -# 905| Type = [ArrayType] __va_list_tag[1] +# 905| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 905| ValueCategory = lvalue # 905| getArgument(1).getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 905| Type = [PointerType] __va_list_tag * @@ -10963,7 +10963,7 @@ ir.cpp: # 906| Type = [VoidType] void # 906| ValueCategory = prvalue # 906| getVAList(): [VariableAccess] args2 -# 906| Type = [ArrayType] __va_list_tag[1] +# 906| Type = [BuiltInVarArgsList,CTypedefType] __builtin_va_list # 906| ValueCategory = lvalue # 906| getVAList().getFullyConverted(): [ArrayToPointerConversion] array to pointer conversion # 906| Type = [PointerType] __va_list_tag * diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index c6f2bb1639e..e258fd81f3e 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -8614,7 +8614,7 @@ ir.cpp: # 883| v883_13(void) = AliasedUse : m883_3 # 883| v883_14(void) = ExitFunction : -# 888| void VAListUsage(int, __va_list_tag[1]) +# 888| void VAListUsage(int, __builtin_va_list) # 888| Block 0 # 888| v888_1(void) = EnterFunction : # 888| m888_2(unknown) = AliasedDefinition : diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index f594062a0a5..97d7e7c43b4 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -7955,7 +7955,7 @@ ir.cpp: # 883| v883_12(void) = AliasedUse : ~m? # 883| v883_13(void) = ExitFunction : -# 888| void VAListUsage(int, __va_list_tag[1]) +# 888| void VAListUsage(int, __builtin_va_list) # 888| Block 0 # 888| v888_1(void) = EnterFunction : # 888| mu888_2(unknown) = AliasedDefinition : diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/WrongTypeFormatArguments.expected b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/WrongTypeFormatArguments.expected index 8a05434fde6..6e17cecc33b 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/WrongTypeFormatArguments.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/WrongTypeFormatArguments.expected @@ -10,6 +10,8 @@ | printf1.h:44:18:44:20 | ull | This format specifier for type 'int' does not match the argument type 'unsigned long long'. | | printf1.h:45:18:45:20 | ull | This format specifier for type 'unsigned int' does not match the argument type 'unsigned long long'. | | printf1.h:46:18:46:20 | ull | This format specifier for type 'unsigned int' does not match the argument type 'unsigned long long'. | +| printf1.h:62:19:62:20 | ul | This format specifier for type 'size_t' does not match the argument type 'unsigned long'. | +| printf1.h:68:19:68:21 | sst | This format specifier for type 'size_t' does not match the argument type 'long'. | | printf1.h:71:19:71:20 | st | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | | printf1.h:72:19:72:20 | ST | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | | printf1.h:73:19:73:22 | c_st | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/printf1.h b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/printf1.h index e2d4f50fc1f..2fb361d485c 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/printf1.h +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft/printf1.h @@ -59,13 +59,13 @@ void g() const SIZE_T C_ST = sizeof(st); ssize_t sst; - printf("%zu", ul); // ok (dubious, e.g. on 64-bit Windows `long` is 4 bytes but `size_t` is 8) + printf("%zu", ul); // not ok printf("%zu", st); // ok printf("%zu", ST); // ok printf("%zu", c_st); // ok printf("%zu", C_ST); // ok printf("%zu", sizeof(ul)); // ok - printf("%zu", sst); // not ok [NOT DETECTED] + printf("%zu", sst); // not ok printf("%zd", ul); // not ok [NOT DETECTED] printf("%zd", st); // not ok diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/WrongTypeFormatArguments.expected b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/WrongTypeFormatArguments.expected index f50708f9eb4..0958cba59e7 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/WrongTypeFormatArguments.expected +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/WrongTypeFormatArguments.expected @@ -10,6 +10,8 @@ | printf1.h:44:18:44:20 | ull | This format specifier for type 'int' does not match the argument type 'unsigned long long'. | | printf1.h:45:18:45:20 | ull | This format specifier for type 'unsigned int' does not match the argument type 'unsigned long long'. | | printf1.h:46:18:46:20 | ull | This format specifier for type 'unsigned int' does not match the argument type 'unsigned long long'. | +| printf1.h:62:19:62:20 | ul | This format specifier for type 'size_t' does not match the argument type 'unsigned long'. | +| printf1.h:68:19:68:21 | sst | This format specifier for type 'size_t' does not match the argument type 'long'. | | printf1.h:71:19:71:20 | st | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | | printf1.h:72:19:72:20 | ST | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | | printf1.h:73:19:73:22 | c_st | This format specifier for type 'ssize_t' does not match the argument type 'unsigned long long'. | diff --git a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/printf1.h b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/printf1.h index 223ffc6a212..8222cfa67b2 100644 --- a/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/printf1.h +++ b/cpp/ql/test/query-tests/Likely Bugs/Format/WrongTypeFormatArguments/Microsoft_no_wchar/printf1.h @@ -59,13 +59,13 @@ void g() const SIZE_T C_ST = sizeof(st); ssize_t sst; - printf("%zu", ul); // ok (dubious, e.g. on 64-bit Windows `long` is 4 bytes but `size_t` is 8) + printf("%zu", ul); // not ok printf("%zu", st); // ok printf("%zu", ST); // ok printf("%zu", c_st); // ok printf("%zu", C_ST); // ok printf("%zu", sizeof(ul)); // ok - printf("%zu", sst); // not ok [NOT DETECTED] + printf("%zu", sst); // not ok printf("%zd", ul); // not ok [NOT DETECTED] printf("%zd", st); // not ok From cd2fe64b3981c767e9308e577655921fa7080e5b Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Fri, 30 May 2025 12:09:41 +0200 Subject: [PATCH 169/340] Add script to add overlay annotations --- config/add-overlay-annotations.py | 273 ++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) create mode 100644 config/add-overlay-annotations.py diff --git a/config/add-overlay-annotations.py b/config/add-overlay-annotations.py new file mode 100644 index 00000000000..f93929d41c6 --- /dev/null +++ b/config/add-overlay-annotations.py @@ -0,0 +1,273 @@ +# This script is used to annotate .qll files without any existing overlay annotations +# with overlay[local?] and overlay[caller] annotations. Maintenance of overlay annotations +# in annotated files will be handled by QL-for-QL queries. + +# It will walk the directory tree and annotate most .qll files, skipping only +# some specific cases (e.g., empty files, files that configure dataflow for queries). + +# The script takes a list of languages and processes the corresponding directories. +# If the optional --check argument is provided, the script checks for missing annotations, +# but does not modify any files. + +# Usage: python3 add-overlay-annotations.py [--check] ... + +# The script will modify the files in place and print the changes made. +# The script is designed to be run from the root of the repository. + +#!/usr/bin/python3 +import sys +import os +from difflib import * + + +def has_overlay_annotations(lines): + ''' + Check whether the given lines contain any overlay[...] annotations. + ''' + overlays = ["local", "local?", "global", "caller"] + annotations = [f"overlay[{t}]" for t in overlays] + return any(ann in line for ann in annotations for line in lines) + + +def is_line_comment(line): + return line.startswith("//") or (line.startswith("/*") and line.endswith("*/")) + + +def find_file_level_module_declaration(lines): + ''' + Returns the index of the existing file-level module declaration if one + exists. Returns None otherwise. + ''' + comment = False + for i, line in enumerate(lines): + trimmed = line.strip() + + if is_line_comment(trimmed): + continue + elif trimmed.startswith("/*"): + comment = True + elif comment and trimmed.endswith("*/"): + comment = False + elif not comment and trimmed.endswith("module;"): + return i + + return None + + +def is_file_module_qldoc(i, lines): + ''' + Assuming a qldoc ended on line i, determine if it belongs to the implicit + file-level module. If it is followed by another qldoc or imports, then it + does and if it is followed by any other non-empty, non-comment lines, then + we assume that is a declaration of some kind and the qldoc is attached to + that declaration. + ''' + comment = False + + for line in lines[i+1:]: + trimmed = line.strip() + + if trimmed.startswith("import ") or trimmed.startswith("private import ") or trimmed.startswith("/**"): + return True + elif is_line_comment(trimmed) or not trimmed: + continue + elif trimmed.startswith("/*"): + comment = True + elif comment and trimmed.endswith("*/"): + comment = False + elif not comment and trimmed: + return False + + return True + + +def find_file_module_qldoc_declaration(lines): + ''' + Returns the index of last line of the implicit file module qldoc if one + exists. Returns None otherwise. + ''' + + qldoc = False + comment = False + for i, line in enumerate(lines): + trimmed = line.strip() + + if trimmed.startswith("//"): + continue + elif (qldoc or trimmed.startswith("/**")) and trimmed.endswith("*/"): + # a qldoc just ended; determine if it belongs to the implicit file module + if is_file_module_qldoc(i, lines): + return i + else: + return None + elif trimmed.startswith("/**"): + qldoc = True + elif trimmed.startswith("/*"): + comment = True + elif comment and trimmed.endswith("*/"): + comment = False + elif (not qldoc and not comment) and trimmed: + return None + + return None + + +def only_comments(lines): + ''' + Returns true if the lines contain only comments and empty lines. + ''' + comment = False + + for line in lines: + trimmed = line.strip() + + if not trimmed or is_line_comment(trimmed): + continue + elif trimmed.startswith("/*"): + comment = True + elif comment and trimmed.endswith("*/"): + comment = False + elif comment: + continue + elif trimmed: + return False + + return True + + +def insert_toplevel_maybe_local_annotation(filename, lines): + ''' + Find a suitable place to insert an overlay[local?] annotation at the top of the file. + Returns a pair consisting of description and the modified lines or None if no overlay + annotation is necessary (e.g., for files that only contain comments). + ''' + if only_comments(lines): + return None + + i = find_file_level_module_declaration(lines) + if not i == None: + out_lines = lines[:i] + out_lines.append("overlay[local?]\n") + out_lines.extend(lines[i:]) + return (f"Annotating \"{filename}\" via existing file-level module statement", out_lines) + + i = find_file_module_qldoc_declaration(lines) + if not i == None: + out_lines = lines[:i+1] + out_lines.append("overlay[local?]\n") + out_lines.append("module;\n") + out_lines.extend(lines[i+1:]) + return (f"Annotating \"{filename}\" which has a file-level module qldoc", out_lines) + + out_lines = ["overlay[local?]\n", "module;\n", "\n"] + lines + return (f"Annotating \"{filename}\" without file-level module qldoc", out_lines) + + +def insert_overlay_caller_annotations(lines): + ''' + Mark pragma[inline] predicates as overlay[caller] if they are not declared private. + ''' + out_lines = [] + for i, line in enumerate(lines): + trimmed = line.strip() + if trimmed == "pragma[inline]": + if i + 1 < len(lines) and not "private" in lines[i+1]: + whitespace = line[0: line.find(trimmed)] + out_lines.append(f"{whitespace}overlay[caller]\n") + out_lines.append(line) + return out_lines + + +def annotate_as_appropriate(filename, lines): + ''' + Insert new overlay[...] annotations according to heuristics in files without existing + overlay annotations. + + Returns None if no annotations are needed. Otherwise, returns a pair consisting of a + string describing the action taken and the modified content as a list of lines. + ''' + if has_overlay_annotations(lines): + return None + + # These simple heuristics filter out those .qll files that we no _not_ want to annotate + # as overlay[local?]. It is not clear that these heuristics are exactly what we want, + # but they seem to work well enough for now (as determined by speed and accuracy numbers). + if (filename.endswith("Test.qll") or + ((filename.endswith("Query.qll") or filename.endswith("Config.qll")) and + any("implements DataFlow::ConfigSig" in line for line in lines))): + return None + elif not any(line for line in lines if line.strip()): + return None + + lines = insert_overlay_caller_annotations(lines) + return insert_toplevel_maybe_local_annotation(filename, lines) + + +def process_single_file(write, filename): + ''' + Process a single file, annotating it as appropriate. + If write is set, the changes are written back to the file. + Returns True if the file requires changes. + ''' + old = [line for line in open(filename)] + + annotate_result = annotate_as_appropriate(filename, old) + if annotate_result is None: + return False + + if not write: + return True + + new = annotate_result[1] + + diff = context_diff(old, new, fromfile=filename, tofile=filename) + diff = [line for line in diff] + if diff: + print(annotate_result[0]) + for line in diff: + print(line.rstrip()) + with open(filename, "w") as out_file: + for line in new: + out_file.write(line) + + return True + + +if len(sys.argv) > 1 and sys.argv[1] == "--check": + check = True + langs = sys.argv[2:] +else: + check = False + langs = sys.argv[1:] + +dirs = [] +for lang in langs: + if lang in ["cpp", "go", "csharp", "java", "javascript", "python", "ruby", "rust", "swift"]: + dirs.append(f"{lang}/ql/lib") + else: + raise Exception(f"Unknown language \"{lang}\".") + +if dirs: + dirs.append("shared") + +missingAnnotations = [] + +for roots in dirs: + for dirpath, dirnames, filenames in os.walk(roots): + for filename in filenames: + if filename.endswith(".qll") and not dirpath.endswith("tutorial"): + path = os.path.join(dirpath, filename) + res = process_single_file(not check, path) + if check and res: + missingAnnotations.append(path) + + +if len(missingAnnotations) > 0: + print("The following files have no overlay annotations:") + for path in missingAnnotations[:10]: + print("- " + path) + if len(missingAnnotations) > 10: + print("and " + str(len(missingAnnotations) - 10) + " additional files.") + print() + print("Please manually add overlay annotations or use the config/add-overlay-annotations.py script to automatically add sensible default overlay annotations.") + exit(-1) From b1346e2ddb7c86209d071e75c5f3029ca2f83460 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Tue, 17 Jun 2025 08:54:02 +0200 Subject: [PATCH 170/340] Address copilot review comments --- config/add-overlay-annotations.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/add-overlay-annotations.py b/config/add-overlay-annotations.py index f93929d41c6..ecd2a9378b6 100644 --- a/config/add-overlay-annotations.py +++ b/config/add-overlay-annotations.py @@ -17,7 +17,7 @@ #!/usr/bin/python3 import sys import os -from difflib import * +from difflib import context_diff def has_overlay_annotations(lines): @@ -209,7 +209,8 @@ def process_single_file(write, filename): If write is set, the changes are written back to the file. Returns True if the file requires changes. ''' - old = [line for line in open(filename)] + with open(filename) as f: + old = [line for line in f] annotate_result = annotate_as_appropriate(filename, old) if annotate_result is None: @@ -270,4 +271,4 @@ if len(missingAnnotations) > 0: print("and " + str(len(missingAnnotations) - 10) + " additional files.") print() print("Please manually add overlay annotations or use the config/add-overlay-annotations.py script to automatically add sensible default overlay annotations.") - exit(-1) + exit(1) From ed8b787f289f448f7941390cf20f38794d9b576b Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Fri, 20 Jun 2025 13:00:44 +0200 Subject: [PATCH 171/340] rename overlay[caller] to overlay[caller?] --- config/add-overlay-annotations.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/add-overlay-annotations.py b/config/add-overlay-annotations.py index ecd2a9378b6..c6e3db24ae0 100644 --- a/config/add-overlay-annotations.py +++ b/config/add-overlay-annotations.py @@ -1,5 +1,5 @@ # This script is used to annotate .qll files without any existing overlay annotations -# with overlay[local?] and overlay[caller] annotations. Maintenance of overlay annotations +# with overlay[local?] and overlay[caller?] annotations. Maintenance of overlay annotations # in annotated files will be handled by QL-for-QL queries. # It will walk the directory tree and annotate most .qll files, skipping only @@ -24,7 +24,7 @@ def has_overlay_annotations(lines): ''' Check whether the given lines contain any overlay[...] annotations. ''' - overlays = ["local", "local?", "global", "caller"] + overlays = ["local", "local?", "global", "caller", "caller?"] annotations = [f"overlay[{t}]" for t in overlays] return any(ann in line for ann in annotations for line in lines) @@ -165,7 +165,7 @@ def insert_toplevel_maybe_local_annotation(filename, lines): def insert_overlay_caller_annotations(lines): ''' - Mark pragma[inline] predicates as overlay[caller] if they are not declared private. + Mark pragma[inline] predicates as overlay[caller?] if they are not declared private. ''' out_lines = [] for i, line in enumerate(lines): @@ -173,7 +173,7 @@ def insert_overlay_caller_annotations(lines): if trimmed == "pragma[inline]": if i + 1 < len(lines) and not "private" in lines[i+1]: whitespace = line[0: line.find(trimmed)] - out_lines.append(f"{whitespace}overlay[caller]\n") + out_lines.append(f"{whitespace}overlay[caller?]\n") out_lines.append(line) return out_lines From 7f1769e8d19337591bea9d1387a59ea1c5952ba3 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 14:03:24 +0200 Subject: [PATCH 172/340] Rust: fix nightly toolchain version for tests using it Rather than fixing the version separately for each test, we can just request to use a nightly in the `options.yml` file, with the specific version hard-coded in `qltest.rs`. We can update it if we need to. It's better to have a single nightly version for all tests that require it, in order to avoid downloading more versions than necessary. --- rust/extractor/src/config.rs | 1 + rust/extractor/src/qltest.rs | 23 +++++++++++++++++-- rust/extractor/src/qltest_cargo.mustache | 4 ++-- rust/ql/test/.gitignore | 7 ++++-- .../query-tests/security/CWE-022/options.yml | 1 + .../security/CWE-022/rust-toolchain.toml | 8 ------- .../query-tests/security/CWE-770/options.yml | 2 +- .../security/CWE-770/rust-toolchain.toml | 2 -- .../PathResolutionConsistency.expected | 6 ++--- .../query-tests/security/CWE-825/options.yml | 2 +- .../security/CWE-825/rust-toolchain.toml | 2 -- 11 files changed, 35 insertions(+), 23 deletions(-) delete mode 100644 rust/ql/test/query-tests/security/CWE-022/rust-toolchain.toml delete mode 100644 rust/ql/test/query-tests/security/CWE-770/rust-toolchain.toml delete mode 100644 rust/ql/test/query-tests/security/CWE-825/rust-toolchain.toml diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index a2a74420b5d..8108dec032f 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -62,6 +62,7 @@ pub struct Config { pub qltest: bool, pub qltest_cargo_check: bool, pub qltest_dependencies: Vec, + pub qltest_use_nightly: bool, pub sysroot: Option, pub sysroot_src: Option, pub rustc_src: Option, diff --git a/rust/extractor/src/qltest.rs b/rust/extractor/src/qltest.rs index d21e1d816f2..f989ecf2eaa 100644 --- a/rust/extractor/src/qltest.rs +++ b/rust/extractor/src/qltest.rs @@ -8,6 +8,9 @@ use std::path::Path; use std::process::Command; use tracing::info; +const EDITION: &str = "2021"; +const NIGHTLY: &str = "nightly-2025-06-01"; + fn dump_lib() -> anyhow::Result<()> { let path_iterator = glob("*.rs").context("globbing test sources")?; let paths = path_iterator @@ -29,8 +32,11 @@ enum TestCargoManifest<'a> { uses_proc_macro: bool, uses_main: bool, dependencies: &'a [String], + edition: &'a str, + }, + Macro { + edition: &'a str, }, - Macro {}, } impl TestCargoManifest<'_> { @@ -56,16 +62,26 @@ fn dump_cargo_manifest(dependencies: &[String]) -> anyhow::Result<()> { uses_proc_macro, uses_main: fs::exists("main.rs").context("checking existence of main.rs")?, dependencies, + edition: EDITION, }; if uses_proc_macro { TestCargoManifest::Workspace {}.dump("")?; lib_manifest.dump(".lib")?; - TestCargoManifest::Macro {}.dump(".proc_macro") + TestCargoManifest::Macro { edition: EDITION }.dump(".proc_macro") } else { lib_manifest.dump("") } } +fn dump_nightly_toolchain() -> anyhow::Result<()> { + fs::write( + "rust-toolchain.toml", + format!("[toolchain]\nchannel = \"{NIGHTLY}\"\n"), + ) + .context("writing rust-toolchain.toml")?; + Ok(()) +} + fn set_sources(config: &mut Config) -> anyhow::Result<()> { let path_iterator = glob("**/*.rs").context("globbing test sources")?; config.inputs = path_iterator @@ -79,6 +95,9 @@ pub(crate) fn prepare(config: &mut Config) -> anyhow::Result<()> { dump_lib()?; set_sources(config)?; dump_cargo_manifest(&config.qltest_dependencies)?; + if config.qltest_use_nightly { + dump_nightly_toolchain()?; + } if config.qltest_cargo_check { let status = Command::new("cargo") .env("RUSTFLAGS", "-Awarnings") diff --git a/rust/extractor/src/qltest_cargo.mustache b/rust/extractor/src/qltest_cargo.mustache index 38db2ca02bf..ed405bae05d 100644 --- a/rust/extractor/src/qltest_cargo.mustache +++ b/rust/extractor/src/qltest_cargo.mustache @@ -11,7 +11,7 @@ members = [".lib", ".proc_macro"] [package] name = "test" version = "0.0.1" -edition = "2021" +edition = "{{ edition }}" [lib] path = "{{#uses_proc_macro}}../{{/uses_proc_macro}}lib.rs" {{#uses_main}} @@ -32,7 +32,7 @@ proc_macro = { path = "../.proc_macro" } [package] name = "proc_macro" version = "0.0.1" -edition = "2021" +edition = "{{ edition }}" [lib] path = "../proc_macro.rs" proc_macro = true diff --git a/rust/ql/test/.gitignore b/rust/ql/test/.gitignore index 3c36d8c7797..65baed5837a 100644 --- a/rust/ql/test/.gitignore +++ b/rust/ql/test/.gitignore @@ -1,6 +1,9 @@ -Cargo.toml -lib.rs target/ + +# these are all generated, see `rust/extractor/src/qltest.rs` for details +Cargo.toml +rust-toolchain.toml +lib.rs .proc_macro/ .lib/ diff --git a/rust/ql/test/query-tests/security/CWE-022/options.yml b/rust/ql/test/query-tests/security/CWE-022/options.yml index 5277d967cc0..e0b9bbfb5cf 100644 --- a/rust/ql/test/query-tests/security/CWE-022/options.yml +++ b/rust/ql/test/query-tests/security/CWE-022/options.yml @@ -1,2 +1,3 @@ +qltest_use_nightly: true qltest_dependencies: - poem = { version = "3.1.7" } diff --git a/rust/ql/test/query-tests/security/CWE-022/rust-toolchain.toml b/rust/ql/test/query-tests/security/CWE-022/rust-toolchain.toml deleted file mode 100644 index bd988b08396..00000000000 --- a/rust/ql/test/query-tests/security/CWE-022/rust-toolchain.toml +++ /dev/null @@ -1,8 +0,0 @@ -# This file specifies the Rust version used to develop and test the -# extractors written in rust. It is set to the lowest version of Rust -# we want to support. - -[toolchain] -channel = "nightly" -profile = "minimal" -components = [ ] diff --git a/rust/ql/test/query-tests/security/CWE-770/options.yml b/rust/ql/test/query-tests/security/CWE-770/options.yml index 95a17a53b43..46c4e09d121 100644 --- a/rust/ql/test/query-tests/security/CWE-770/options.yml +++ b/rust/ql/test/query-tests/security/CWE-770/options.yml @@ -1,3 +1,3 @@ -qltest_cargo_check: true +qltest_use_nightly: true qltest_dependencies: - libc = { version = "0.2.11" } diff --git a/rust/ql/test/query-tests/security/CWE-770/rust-toolchain.toml b/rust/ql/test/query-tests/security/CWE-770/rust-toolchain.toml deleted file mode 100644 index 5d56faf9ae0..00000000000 --- a/rust/ql/test/query-tests/security/CWE-770/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "nightly" diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index d326b510db4..c3a7f4451fb 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,13 +1,13 @@ multiplePathResolutions -| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | -| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | -| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.171) | +| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/query-tests/security/CWE-825/options.yml b/rust/ql/test/query-tests/security/CWE-825/options.yml index 95a17a53b43..46c4e09d121 100644 --- a/rust/ql/test/query-tests/security/CWE-825/options.yml +++ b/rust/ql/test/query-tests/security/CWE-825/options.yml @@ -1,3 +1,3 @@ -qltest_cargo_check: true +qltest_use_nightly: true qltest_dependencies: - libc = { version = "0.2.11" } diff --git a/rust/ql/test/query-tests/security/CWE-825/rust-toolchain.toml b/rust/ql/test/query-tests/security/CWE-825/rust-toolchain.toml deleted file mode 100644 index afeb5929325..00000000000 --- a/rust/ql/test/query-tests/security/CWE-825/rust-toolchain.toml +++ /dev/null @@ -1,2 +0,0 @@ -[toolchain] -channel = "nightly-2025-03-17" From 691281a4811960c18f2be3c3ce4d3041b6157cd8 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 14:13:37 +0200 Subject: [PATCH 173/340] Rust: mark one value flow as spurious (should be taint) --- rust/ql/test/library-tests/dataflow/strings/main.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/library-tests/dataflow/strings/main.rs b/rust/ql/test/library-tests/dataflow/strings/main.rs index 91ab58d5f4c..772a45f1993 100644 --- a/rust/ql/test/library-tests/dataflow/strings/main.rs +++ b/rust/ql/test/library-tests/dataflow/strings/main.rs @@ -35,7 +35,7 @@ fn string_add() { let s4 = s1 + s3; let s5 = s2 + s3; - sink(s4); // $ hasValueFlow=83 + sink(s4); // $ SPURIOUS: hasValueFlow=83 MISSING: hasTaintFlow=83 sink(s5); } From c1b2fd86b2b6ff9164dffda47e328b0f81bb05c3 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 14:29:51 +0200 Subject: [PATCH 174/340] Update javascript/ql/lib/semmle/javascript/frameworks/Express.qll Co-authored-by: Taus --- javascript/ql/lib/semmle/javascript/frameworks/Express.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll index dac9fe0f118..bcfcffb82a0 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Express.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Express.qll @@ -618,7 +618,7 @@ module Express { kind = "body" and this = ref.getAPropertyRead("body") or - // `req.path` + // `req.path` and `req._parsedUrl` kind = "url" and this = ref.getAPropertyRead(["path", "_parsedUrl"]) ) From 3590ccaa69a252fa4a00d7fe73cfe2a7fc104b46 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 14:32:24 +0200 Subject: [PATCH 175/340] Rust: fix tests --- .../canonical_path/canonical_paths.expected | 8 + .../canonical_paths.expected | 8 + .../generated/Enum/Enum.expected | 2 +- .../generated/MacroItems/MacroItems.expected | 1 + .../MacroItems/MacroItems_getItem.expected | 1 + .../generated/Struct/Struct.expected | 2 +- .../generated/Union/Union.expected | 2 +- .../PathResolutionConsistency.expected | 4 + .../type-inference/type-inference.expected | 1059 +++++++++++++++++ rust/ql/test/library-tests/variables/main.rs | 2 +- .../PathResolutionConsistency.expected | 14 +- 11 files changed, 1092 insertions(+), 11 deletions(-) diff --git a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected index 0376d52b26e..49bf47841d0 100644 --- a/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected +++ b/rust/ql/test/extractor-tests/canonical_path/canonical_paths.expected @@ -5,6 +5,9 @@ canonicalPath | lib.rs:1:1:1:14 | mod anonymous | test::anonymous | | lib.rs:2:1:2:12 | mod regular | test::regular | | regular.rs:1:1:2:18 | struct Struct | test::regular::Struct | +| regular.rs:2:12:2:17 | fn eq | ::eq | +| regular.rs:2:12:2:17 | impl ...::Eq for Struct::<...> { ... } | | +| regular.rs:2:12:2:17 | impl ...::PartialEq for Struct::<...> { ... } | | | regular.rs:4:1:6:1 | trait Trait | test::regular::Trait | | regular.rs:5:5:5:16 | fn f | <_ as test::regular::Trait>::f | | regular.rs:8:1:10:1 | impl Trait for Struct { ... } | | @@ -42,6 +45,9 @@ canonicalPaths | lib.rs:1:1:1:14 | mod anonymous | repo::test | crate::anonymous | | lib.rs:2:1:2:12 | mod regular | repo::test | crate::regular | | regular.rs:1:1:2:18 | struct Struct | repo::test | crate::regular::Struct | +| regular.rs:2:12:2:17 | fn eq | repo::test | ::eq | +| regular.rs:2:12:2:17 | impl ...::Eq for Struct::<...> { ... } | None | None | +| regular.rs:2:12:2:17 | impl ...::PartialEq for Struct::<...> { ... } | None | None | | regular.rs:4:1:6:1 | trait Trait | repo::test | crate::regular::Trait | | regular.rs:5:5:5:16 | fn f | repo::test | crate::regular::Trait::f | | regular.rs:8:1:10:1 | impl Trait for Struct { ... } | None | None | @@ -66,6 +72,8 @@ resolvedPaths | anonymous.rs:29:9:29:9 | s | None | None | | anonymous.rs:29:9:29:13 | s.g() | None | None | | anonymous.rs:30:9:30:14 | nested | None | None | +| regular.rs:1:1:1:24 | other | None | None | +| regular.rs:1:1:1:24 | self | None | None | | regular.rs:27:13:27:21 | Struct {...} | repo::test | crate::regular::Struct | | regular.rs:28:5:28:5 | s | None | None | | regular.rs:28:5:28:9 | s.f() | repo::test | ::f | diff --git a/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected b/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected index 21564515385..d411ab289c9 100644 --- a/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected +++ b/rust/ql/test/extractor-tests/canonical_path_disabled/canonical_paths.expected @@ -5,6 +5,9 @@ canonicalPath | lib.rs:1:1:1:14 | mod anonymous | test::anonymous | | lib.rs:2:1:2:12 | mod regular | test::regular | | regular.rs:4:1:5:18 | struct Struct | test::regular::Struct | +| regular.rs:5:12:5:17 | fn eq | ::eq | +| regular.rs:5:12:5:17 | impl ...::Eq for Struct::<...> { ... } | | +| regular.rs:5:12:5:17 | impl ...::PartialEq for Struct::<...> { ... } | | | regular.rs:7:1:9:1 | trait Trait | test::regular::Trait | | regular.rs:8:5:8:16 | fn f | <_ as test::regular::Trait>::f | | regular.rs:11:1:13:1 | impl Trait for Struct { ... } | | @@ -42,6 +45,9 @@ canonicalPaths | lib.rs:1:1:1:14 | mod anonymous | None | None | | lib.rs:2:1:2:12 | mod regular | None | None | | regular.rs:4:1:5:18 | struct Struct | None | None | +| regular.rs:5:12:5:17 | fn eq | None | None | +| regular.rs:5:12:5:17 | impl ...::Eq for Struct::<...> { ... } | None | None | +| regular.rs:5:12:5:17 | impl ...::PartialEq for Struct::<...> { ... } | None | None | | regular.rs:7:1:9:1 | trait Trait | None | None | | regular.rs:8:5:8:16 | fn f | None | None | | regular.rs:11:1:13:1 | impl Trait for Struct { ... } | None | None | @@ -66,6 +72,8 @@ resolvedPaths | anonymous.rs:32:9:32:9 | s | None | None | | anonymous.rs:32:9:32:13 | s.g() | None | None | | anonymous.rs:33:9:33:14 | nested | None | None | +| regular.rs:4:1:4:24 | other | None | None | +| regular.rs:4:1:4:24 | self | None | None | | regular.rs:30:13:30:21 | Struct {...} | None | None | | regular.rs:31:5:31:5 | s | None | None | | regular.rs:31:5:31:9 | s.f() | None | None | diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected index 02547a2400e..cefb56b3334 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected @@ -1 +1 @@ -| gen_enum.rs:4:5:7:34 | enum E | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasVariantList: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_enum.rs:4:5:7:34 | enum E | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasVariantList: | yes | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected index 651c7cdec66..00f51a7b82b 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected @@ -1 +1,2 @@ | gen_macro_items.rs:5:5:5:38 | MacroItems | getNumberOfItems: | 2 | +| gen_macro_items.rs:13:12:13:14 | MacroItems | getNumberOfItems: | 1 | diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected index e86dfee101a..803bf159c94 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected @@ -1,2 +1,3 @@ | gen_macro_items.rs:5:5:5:38 | MacroItems | 0 | gen_macro_items.rs:5:5:5:38 | use ...::Path | | gen_macro_items.rs:5:5:5:38 | MacroItems | 1 | gen_macro_items.rs:5:5:5:38 | fn get_parent | +| gen_macro_items.rs:13:12:13:14 | MacroItems | 0 | gen_macro_items.rs:13:12:13:14 | impl ...::Debug for Bar::<...> { ... } | diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected index 63c314de869..971e141a202 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected @@ -1 +1 @@ -| gen_struct.rs:4:5:8:5 | struct Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasFieldList: | yes | hasGenericParamList: | no | hasName: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_struct.rs:4:5:8:5 | struct Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasFieldList: | yes | hasGenericParamList: | no | hasName: | yes | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.expected b/rust/ql/test/extractor-tests/generated/Union/Union.expected index bc0b9974b40..22d383104ea 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.expected +++ b/rust/ql/test/extractor-tests/generated/Union/Union.expected @@ -1 +1 @@ -| gen_union.rs:4:5:7:32 | union U | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasStructFieldList: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_union.rs:4:5:7:32 | union U | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasStructFieldList: | yes | hasVisibility: | no | hasWhereClause: | no | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index 5667ceb627d..e7649be55f9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -86,6 +86,10 @@ multiplePathResolutions | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | | test_futures_io.rs:145:26:145:43 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | | test_futures_io.rs:145:26:145:43 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | +| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | +| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | +| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | +| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | multipleCanonicalPaths | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | 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 758882f52d8..4f3361d12a0 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -2,6 +2,90 @@ inferType | loop/main.rs:7:12:7:15 | SelfParam | | loop/main.rs:6:1:8:1 | Self [trait T1] | | loop/main.rs:11:12:11:15 | SelfParam | | loop/main.rs:10:1:14:1 | Self [trait T2] | | loop/main.rs:12:9:12:12 | self | | loop/main.rs:10:1:14:1 | Self [trait T2] | +| main.rs:2:5:2:20 | "S" | | {EXTERNAL LOCATION} | str | +| main.rs:2:5:2:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:2:5:2:20 | SelfParam | &T | main.rs:2:5:3:13 | S | +| main.rs:2:5:2:20 | f | | file://:0:0:0:0 | & | +| main.rs:2:5:2:20 | f | | file://:0:0:0:0 | & | +| main.rs:2:5:2:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:2:5:2:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:2:5:2:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:2:5:2:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:2:5:2:20 | self | | file://:0:0:0:0 | & | +| main.rs:2:5:2:20 | self | &T | main.rs:2:5:3:13 | S | +| main.rs:3:12:3:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:3:12:3:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:3:12:3:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:3:12:3:12 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:5:5:5:20 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:5:5:5:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:5:5:5:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:5:5:5:20 | SelfParam | &T | main.rs:5:5:8:5 | MyThing | +| main.rs:5:5:5:20 | f | | file://:0:0:0:0 | & | +| main.rs:5:5:5:20 | f | | file://:0:0:0:0 | & | +| main.rs:5:5:5:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:5:5:5:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:5:5:5:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:5:5:5:20 | self | | file://:0:0:0:0 | & | +| main.rs:5:5:5:20 | self | &T | main.rs:5:5:8:5 | MyThing | +| main.rs:6:12:7:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:6:12:7:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:6:12:7:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:6:12:7:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:7:9:7:9 | &a | | file://:0:0:0:0 | & | +| main.rs:7:9:7:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:7:9:7:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:7:9:7:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:7:9:7:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:10:5:10:20 | "MyNone" | | {EXTERNAL LOCATION} | str | +| main.rs:10:5:10:20 | "MySome" | | {EXTERNAL LOCATION} | str | +| main.rs:10:5:10:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:10:5:10:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:10:5:10:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:10:5:10:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:10:5:10:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:10:5:10:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | SelfParam | &T | main.rs:10:5:14:5 | MyOption | +| main.rs:10:5:10:20 | SelfParam | &T.T | main.rs:11:19:11:19 | T | +| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:10:5:10:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:10:5:10:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:10:5:10:20 | self | | file://:0:0:0:0 | & | +| main.rs:10:5:10:20 | self | &T | main.rs:10:5:14:5 | MyOption | +| main.rs:10:5:10:20 | self | &T.T | main.rs:11:19:11:19 | T | +| main.rs:11:10:13:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:11:10:13:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:11:10:13:14 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:11:10:13:14 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:16:5:16:20 | "GenericThing" | | {EXTERNAL LOCATION} | str | +| main.rs:16:5:16:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:16:5:16:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:16:5:16:20 | SelfParam | &T | main.rs:16:5:19:5 | GenericThing | +| main.rs:16:5:16:20 | SelfParam | &T.A | main.rs:17:25:17:25 | A | +| main.rs:16:5:16:20 | f | | file://:0:0:0:0 | & | +| main.rs:16:5:16:20 | f | | file://:0:0:0:0 | & | +| main.rs:16:5:16:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:16:5:16:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:16:5:16:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:16:5:16:20 | self | | file://:0:0:0:0 | & | +| main.rs:16:5:16:20 | self | &T | main.rs:16:5:19:5 | GenericThing | +| main.rs:16:5:16:20 | self | &T.A | main.rs:17:25:17:25 | A | +| main.rs:17:12:18:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:17:12:18:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:17:12:18:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:17:12:18:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:18:9:18:9 | &a | | file://:0:0:0:0 | & | +| main.rs:18:9:18:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:18:9:18:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:18:9:18:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:18:9:18:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | 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:2:5:3:13 | S | @@ -95,6 +179,26 @@ inferType | 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 | | main.rs:94:9:94:14 | y.m2() | | main.rs:72:5:72:21 | Foo | +| main.rs:99:5:99:20 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:99:5:99:20 | "field" | | {EXTERNAL LOCATION} | str | +| main.rs:99:5:99:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:99:5:99:20 | SelfParam | &T | main.rs:99:5:102:5 | MyThing | +| main.rs:99:5:99:20 | f | | file://:0:0:0:0 | & | +| main.rs:99:5:99:20 | f | | file://:0:0:0:0 | & | +| main.rs:99:5:99:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:99:5:99:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:99:5:99:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:99:5:99:20 | self | | file://:0:0:0:0 | & | +| main.rs:99:5:99:20 | self | &T | main.rs:99:5:102:5 | MyThing | +| main.rs:100:12:101:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:100:12:101:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:100:12:101:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:100:12:101:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:101:9:101:13 | &field | | file://:0:0:0:0 | & | +| main.rs:101:9:101:13 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:101:9:101:13 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:101:9:101:13 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:101:9:101:13 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:105:25:105:28 | SelfParam | | main.rs:104:5:106:5 | Self [trait MyTrait] | | main.rs:110:25:110:28 | SelfParam | | main.rs:99:5:102:5 | MyThing | | main.rs:110:39:112:9 | { ... } | | {EXTERNAL LOCATION} | bool | @@ -112,6 +216,58 @@ inferType | main.rs:120:13:120:13 | b | | {EXTERNAL LOCATION} | bool | | main.rs:120:17:120:40 | ...::trait_method(...) | | {EXTERNAL LOCATION} | bool | | main.rs:120:39:120:39 | y | | main.rs:99:5:102:5 | MyThing | +| main.rs:125:5:125:20 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:125:5:125:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:125:5:125:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:125:5:125:20 | SelfParam | &T | main.rs:125:5:128:5 | MyThing | +| main.rs:125:5:125:20 | SelfParam | &T.A | main.rs:126:20:126:20 | A | +| main.rs:125:5:125:20 | f | | file://:0:0:0:0 | & | +| main.rs:125:5:125:20 | f | | file://:0:0:0:0 | & | +| main.rs:125:5:125:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:125:5:125:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:125:5:125:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:125:5:125:20 | self | | file://:0:0:0:0 | & | +| main.rs:125:5:125:20 | self | &T | main.rs:125:5:128:5 | MyThing | +| main.rs:125:5:125:20 | self | &T.A | main.rs:126:20:126:20 | A | +| main.rs:126:12:127:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:126:12:127:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:126:12:127:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:126:12:127:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:127:9:127:9 | &a | | file://:0:0:0:0 | & | +| main.rs:127:9:127:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:127:9:127:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:127:9:127:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:127:9:127:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:130:5:130:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:130:5:130:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:130:5:130:20 | SelfParam | &T | main.rs:130:5:131:14 | S1 | +| main.rs:130:5:130:20 | f | | file://:0:0:0:0 | & | +| main.rs:130:5:130:20 | f | | file://:0:0:0:0 | & | +| main.rs:130:5:130:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:130:5:130:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:130:5:130:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:130:5:130:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:130:5:130:20 | self | | file://:0:0:0:0 | & | +| main.rs:130:5:130:20 | self | &T | main.rs:130:5:131:14 | S1 | +| main.rs:131:12:131:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:131:12:131:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:131:12:131:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:131:12:131:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:132:5:132:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:132:5:132:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:132:5:132:20 | SelfParam | &T | main.rs:132:5:133:14 | S2 | +| main.rs:132:5:132:20 | f | | file://:0:0:0:0 | & | +| main.rs:132:5:132:20 | f | | file://:0:0:0:0 | & | +| main.rs:132:5:132:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:132:5:132:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:132:5:132:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:132:5:132:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:132:5:132:20 | self | | file://:0:0:0:0 | & | +| main.rs:132:5:132:20 | self | &T | main.rs:132:5:133:14 | S2 | +| main.rs:133:12:133:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:133:12:133:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:133:12:133:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:133:12:133:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:137:15:137:18 | SelfParam | | main.rs:125:5:128:5 | MyThing | | main.rs:137:15:137:18 | SelfParam | A | main.rs:130:5:131:14 | S1 | | main.rs:137:27:139:9 | { ... } | | main.rs:130:5:131:14 | S1 | @@ -179,6 +335,156 @@ inferType | main.rs:170:26:170:26 | y | | main.rs:125:5:128:5 | MyThing | | main.rs:170:26:170:26 | y | A | main.rs:132:5:133:14 | S2 | | main.rs:170:26:170:31 | y.m2() | | main.rs:132:5:133:14 | S2 | +| main.rs:175:5:175:33 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:175:5:175:33 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:175:5:175:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | SelfParam | &T | main.rs:175:5:178:5 | MyThing | +| main.rs:175:5:175:33 | SelfParam | &T | main.rs:175:5:178:5 | MyThing | +| main.rs:175:5:175:33 | SelfParam | &T.A | main.rs:176:20:176:20 | A | +| main.rs:175:5:175:33 | SelfParam | &T.A | main.rs:176:20:176:20 | A | +| main.rs:175:5:175:33 | f | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | f | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:175:5:175:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:175:5:175:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:175:5:175:33 | self | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | self | | file://:0:0:0:0 | & | +| main.rs:175:5:175:33 | self | &T | main.rs:175:5:178:5 | MyThing | +| main.rs:175:5:175:33 | self | &T | main.rs:175:5:178:5 | MyThing | +| main.rs:175:5:175:33 | self | &T.A | main.rs:176:20:176:20 | A | +| main.rs:175:5:175:33 | self | &T.A | main.rs:176:20:176:20 | A | +| main.rs:176:12:177:9 | MyThing {...} | | main.rs:175:5:178:5 | MyThing | +| main.rs:176:12:177:9 | MyThing {...} | A | main.rs:176:20:176:20 | A | +| main.rs:176:12:177:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:176:12:177:9 | match self { ... } | | main.rs:175:5:178:5 | MyThing | +| main.rs:176:12:177:9 | match self { ... } | A | main.rs:176:20:176:20 | A | +| main.rs:176:12:177:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:176:12:177:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:176:12:177:9 | { ... } | | main.rs:175:5:178:5 | MyThing | +| main.rs:176:12:177:9 | { ... } | A | main.rs:176:20:176:20 | A | +| main.rs:176:12:177:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:177:9:177:9 | &a | | file://:0:0:0:0 | & | +| main.rs:177:9:177:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:177:9:177:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:177:9:177:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:177:9:177:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:177:9:177:9 | a.clone() | | main.rs:176:20:176:20 | A | +| main.rs:180:5:180:33 | "MyPair" | | {EXTERNAL LOCATION} | str | +| main.rs:180:5:180:33 | "p1" | | {EXTERNAL LOCATION} | str | +| main.rs:180:5:180:33 | "p2" | | {EXTERNAL LOCATION} | str | +| main.rs:180:5:180:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | SelfParam | &T | main.rs:180:5:184:5 | MyPair | +| main.rs:180:5:180:33 | SelfParam | &T | main.rs:180:5:184:5 | MyPair | +| main.rs:180:5:180:33 | SelfParam | &T.P1 | main.rs:181:19:181:20 | P1 | +| main.rs:180:5:180:33 | SelfParam | &T.P1 | main.rs:181:19:181:20 | P1 | +| main.rs:180:5:180:33 | SelfParam | &T.P2 | main.rs:181:23:181:24 | P2 | +| main.rs:180:5:180:33 | SelfParam | &T.P2 | main.rs:181:23:181:24 | P2 | +| main.rs:180:5:180:33 | f | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | f | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:180:5:180:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:180:5:180:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:180:5:180:33 | self | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | self | | file://:0:0:0:0 | & | +| main.rs:180:5:180:33 | self | &T | main.rs:180:5:184:5 | MyPair | +| main.rs:180:5:180:33 | self | &T | main.rs:180:5:184:5 | MyPair | +| main.rs:180:5:180:33 | self | &T.P1 | main.rs:181:19:181:20 | P1 | +| main.rs:180:5:180:33 | self | &T.P1 | main.rs:181:19:181:20 | P1 | +| main.rs:180:5:180:33 | self | &T.P2 | main.rs:181:23:181:24 | P2 | +| main.rs:180:5:180:33 | self | &T.P2 | main.rs:181:23:181:24 | P2 | +| main.rs:181:12:183:10 | MyPair {...} | | main.rs:180:5:184:5 | MyPair | +| main.rs:181:12:183:10 | MyPair {...} | P1 | main.rs:181:19:181:20 | P1 | +| main.rs:181:12:183:10 | MyPair {...} | P2 | main.rs:181:23:181:24 | P2 | +| main.rs:181:12:183:10 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:181:12:183:10 | match self { ... } | | main.rs:180:5:184:5 | MyPair | +| main.rs:181:12:183:10 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:181:12:183:10 | match self { ... } | P1 | main.rs:181:19:181:20 | P1 | +| main.rs:181:12:183:10 | match self { ... } | P2 | main.rs:181:23:181:24 | P2 | +| main.rs:181:12:183:10 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:181:12:183:10 | { ... } | | main.rs:180:5:184:5 | MyPair | +| main.rs:181:12:183:10 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:181:12:183:10 | { ... } | P1 | main.rs:181:19:181:20 | P1 | +| main.rs:181:12:183:10 | { ... } | P2 | main.rs:181:23:181:24 | P2 | +| main.rs:182:9:182:10 | &p1 | | file://:0:0:0:0 | & | +| main.rs:182:9:182:10 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:182:9:182:10 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:182:9:182:10 | p1.clone() | | main.rs:181:19:181:20 | P1 | +| main.rs:182:9:183:10 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:182:9:183:10 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:182:9:183:10 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:182:9:183:10 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:183:9:183:10 | &p2 | | file://:0:0:0:0 | & | +| main.rs:183:9:183:10 | p2.clone() | | main.rs:181:23:181:24 | P2 | +| main.rs:186:5:186:33 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:186:5:186:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | SelfParam | &T | main.rs:186:5:187:14 | S1 | +| main.rs:186:5:186:33 | SelfParam | &T | main.rs:186:5:187:14 | S1 | +| main.rs:186:5:186:33 | f | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | f | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:186:5:186:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:186:5:186:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:186:5:186:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:186:5:186:33 | self | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | self | | file://:0:0:0:0 | & | +| main.rs:186:5:186:33 | self | &T | main.rs:186:5:187:14 | S1 | +| main.rs:186:5:186:33 | self | &T | main.rs:186:5:187:14 | S1 | +| main.rs:187:12:187:13 | S1 | | main.rs:186:5:187:14 | S1 | +| main.rs:187:12:187:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:187:12:187:13 | match self { ... } | | main.rs:186:5:187:14 | S1 | +| main.rs:187:12:187:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:187:12:187:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:187:12:187:13 | { ... } | | main.rs:186:5:187:14 | S1 | +| main.rs:187:12:187:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:188:5:188:33 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:188:5:188:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | SelfParam | &T | main.rs:188:5:189:14 | S2 | +| main.rs:188:5:188:33 | SelfParam | &T | main.rs:188:5:189:14 | S2 | +| main.rs:188:5:188:33 | f | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | f | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:188:5:188:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:188:5:188:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:188:5:188:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:188:5:188:33 | self | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | self | | file://:0:0:0:0 | & | +| main.rs:188:5:188:33 | self | &T | main.rs:188:5:189:14 | S2 | +| main.rs:188:5:188:33 | self | &T | main.rs:188:5:189:14 | S2 | +| main.rs:189:12:189:13 | S2 | | main.rs:188:5:189:14 | S2 | +| main.rs:189:12:189:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:189:12:189:13 | match self { ... } | | main.rs:188:5:189:14 | S2 | +| main.rs:189:12:189:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:189:12:189:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:189:12:189:13 | { ... } | | main.rs:188:5:189:14 | S2 | +| main.rs:189:12:189:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:190:5:190:42 | "S3" | | {EXTERNAL LOCATION} | str | +| main.rs:190:5:190:42 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | SelfParam | &T | main.rs:190:5:191:14 | S3 | +| main.rs:190:5:190:42 | SelfParam | &T | main.rs:190:5:191:14 | S3 | +| main.rs:190:5:190:42 | f | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | f | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:190:5:190:42 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:190:5:190:42 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:190:5:190:42 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:190:5:190:42 | self | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | self | | file://:0:0:0:0 | & | +| main.rs:190:5:190:42 | self | &T | main.rs:190:5:191:14 | S3 | +| main.rs:190:5:190:42 | self | &T | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | S3 | | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | S3 | | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:191:12:191:13 | match self { ... } | | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:191:12:191:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:191:12:191:13 | { ... } | | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | { ... } | | main.rs:190:5:191:14 | S3 | +| main.rs:191:12:191:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:194:15:194:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:196:15:196:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:199:9:201:9 | { ... } | | main.rs:193:5:202:5 | Self [trait MyTrait] | @@ -512,6 +818,28 @@ inferType | main.rs:392:17:392:33 | convert_to(...) | | main.rs:186:5:187:14 | S1 | | main.rs:392:28:392:32 | thing | | main.rs:175:5:178:5 | MyThing | | main.rs:392:28:392:32 | thing | A | main.rs:186:5:187:14 | S1 | +| main.rs:397:5:397:33 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:397:5:397:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | SelfParam | &T | main.rs:397:5:398:14 | S1 | +| main.rs:397:5:397:33 | SelfParam | &T | main.rs:397:5:398:14 | S1 | +| main.rs:397:5:397:33 | f | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | f | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:397:5:397:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:397:5:397:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:397:5:397:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:397:5:397:33 | self | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | self | | file://:0:0:0:0 | & | +| main.rs:397:5:397:33 | self | &T | main.rs:397:5:398:14 | S1 | +| main.rs:397:5:397:33 | self | &T | main.rs:397:5:398:14 | S1 | +| main.rs:398:12:398:13 | S1 | | main.rs:397:5:398:14 | S1 | +| main.rs:398:12:398:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:398:12:398:13 | match self { ... } | | main.rs:397:5:398:14 | S1 | +| main.rs:398:12:398:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:398:12:398:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:398:12:398:13 | { ... } | | main.rs:397:5:398:14 | S1 | +| main.rs:398:12:398:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:401:26:401:29 | SelfParam | | main.rs:400:5:404:5 | Self [trait OverlappingTrait] | | main.rs:403:28:403:31 | SelfParam | | main.rs:400:5:404:5 | Self [trait OverlappingTrait] | | main.rs:403:34:403:35 | s1 | | main.rs:397:5:398:14 | S1 | @@ -536,6 +864,36 @@ inferType | main.rs:433:18:433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:433:26:433:26 | x | | main.rs:397:5:398:14 | S1 | | main.rs:433:26:433:44 | x.common_method_2() | | main.rs:397:5:398:14 | S1 | +| main.rs:440:5:440:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:440:5:440:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:440:5:440:20 | SelfParam | &T | main.rs:440:5:441:14 | S1 | +| main.rs:440:5:440:20 | f | | file://:0:0:0:0 | & | +| main.rs:440:5:440:20 | f | | file://:0:0:0:0 | & | +| main.rs:440:5:440:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:440:5:440:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:440:5:440:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:440:5:440:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:440:5:440:20 | self | | file://:0:0:0:0 | & | +| main.rs:440:5:440:20 | self | &T | main.rs:440:5:441:14 | S1 | +| main.rs:441:12:441:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:441:12:441:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:441:12:441:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:441:12:441:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:443:5:443:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:443:5:443:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:443:5:443:20 | SelfParam | &T | main.rs:443:5:444:14 | S2 | +| main.rs:443:5:443:20 | f | | file://:0:0:0:0 | & | +| main.rs:443:5:443:20 | f | | file://:0:0:0:0 | & | +| main.rs:443:5:443:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:443:5:443:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:443:5:443:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:443:5:443:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:443:5:443:20 | self | | file://:0:0:0:0 | & | +| main.rs:443:5:443:20 | self | &T | main.rs:443:5:444:14 | S2 | +| main.rs:444:12:444:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:444:12:444:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:444:12:444:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:444:12:444:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:450:19:450:22 | SelfParam | | main.rs:448:5:451:5 | Self [trait FirstTrait] | | main.rs:455:19:455:22 | SelfParam | | main.rs:453:5:456:5 | Self [trait SecondTrait] | | main.rs:458:64:458:64 | x | | main.rs:458:45:458:61 | T | @@ -608,6 +966,58 @@ inferType | main.rs:511:18:511:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:511:32:511:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:511:36:511:37 | s2 | | {EXTERNAL LOCATION} | i64 | +| main.rs:516:5:516:20 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:516:5:516:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:516:5:516:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:516:5:516:20 | SelfParam | &T | main.rs:516:5:519:5 | MyThing | +| main.rs:516:5:516:20 | SelfParam | &T.T | main.rs:517:20:517:20 | T | +| main.rs:516:5:516:20 | f | | file://:0:0:0:0 | & | +| main.rs:516:5:516:20 | f | | file://:0:0:0:0 | & | +| main.rs:516:5:516:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:516:5:516:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:516:5:516:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:516:5:516:20 | self | | file://:0:0:0:0 | & | +| main.rs:516:5:516:20 | self | &T | main.rs:516:5:519:5 | MyThing | +| main.rs:516:5:516:20 | self | &T.T | main.rs:517:20:517:20 | T | +| main.rs:517:12:518:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:517:12:518:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:517:12:518:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:517:12:518:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:518:9:518:9 | &a | | file://:0:0:0:0 | & | +| main.rs:518:9:518:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:518:9:518:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:518:9:518:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:518:9:518:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:521:5:521:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:521:5:521:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:521:5:521:20 | SelfParam | &T | main.rs:521:5:522:14 | S1 | +| main.rs:521:5:521:20 | f | | file://:0:0:0:0 | & | +| main.rs:521:5:521:20 | f | | file://:0:0:0:0 | & | +| main.rs:521:5:521:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:521:5:521:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:521:5:521:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:521:5:521:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:521:5:521:20 | self | | file://:0:0:0:0 | & | +| main.rs:521:5:521:20 | self | &T | main.rs:521:5:522:14 | S1 | +| main.rs:522:12:522:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:522:12:522:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:522:12:522:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:522:12:522:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:523:5:523:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:523:5:523:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:523:5:523:20 | SelfParam | &T | main.rs:523:5:524:14 | S2 | +| main.rs:523:5:523:20 | f | | file://:0:0:0:0 | & | +| main.rs:523:5:523:20 | f | | file://:0:0:0:0 | & | +| main.rs:523:5:523:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:523:5:523:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:523:5:523:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:523:5:523:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:523:5:523:20 | self | | file://:0:0:0:0 | & | +| main.rs:523:5:523:20 | self | &T | main.rs:523:5:524:14 | S2 | +| main.rs:524:12:524:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:524:12:524:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:524:12:524:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:524:12:524:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:527:15:527:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:529:15:529:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:532:9:534:9 | { ... } | | main.rs:526:19:526:19 | A | @@ -716,6 +1126,28 @@ inferType | main.rs:581:37:581:38 | y3 | T.T | main.rs:523:5:524:14 | S2 | | main.rs:582:18:582:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:582:26:582:26 | b | | main.rs:523:5:524:14 | S2 | +| main.rs:587:5:587:20 | "Wrapper" | | {EXTERNAL LOCATION} | str | +| main.rs:587:5:587:20 | "field" | | {EXTERNAL LOCATION} | str | +| main.rs:587:5:587:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:587:5:587:20 | SelfParam | &T | main.rs:587:5:590:5 | Wrapper | +| main.rs:587:5:587:20 | SelfParam | &T.A | main.rs:588:20:588:20 | A | +| main.rs:587:5:587:20 | f | | file://:0:0:0:0 | & | +| main.rs:587:5:587:20 | f | | file://:0:0:0:0 | & | +| main.rs:587:5:587:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:587:5:587:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:587:5:587:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:587:5:587:20 | self | | file://:0:0:0:0 | & | +| main.rs:587:5:587:20 | self | &T | main.rs:587:5:590:5 | Wrapper | +| main.rs:587:5:587:20 | self | &T.A | main.rs:588:20:588:20 | A | +| main.rs:588:12:589:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:588:12:589:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:588:12:589:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:588:12:589:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:589:9:589:13 | &field | | file://:0:0:0:0 | & | +| main.rs:589:9:589:13 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:589:9:589:13 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:589:9:589:13 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:589:9:589:13 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:593:19:593:22 | SelfParam | | main.rs:587:5:590:5 | Wrapper | | main.rs:593:19:593:22 | SelfParam | A | main.rs:592:10:592:10 | A | | main.rs:593:30:595:9 | { ... } | | main.rs:592:10:592:10 | A | @@ -750,6 +1182,57 @@ inferType | main.rs:633:20:633:24 | SelfParam | &T | main.rs:626:5:636:5 | Self [trait TraitMultipleAssoc] | | main.rs:635:20:635:24 | SelfParam | | file://:0:0:0:0 | & | | main.rs:635:20:635:24 | SelfParam | &T | main.rs:626:5:636:5 | Self [trait TraitMultipleAssoc] | +| main.rs:638:5:638:29 | "S" | | {EXTERNAL LOCATION} | str | +| main.rs:638:5:638:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:638:5:638:29 | SelfParam | &T | main.rs:638:5:639:13 | S | +| main.rs:638:5:638:29 | f | | file://:0:0:0:0 | & | +| main.rs:638:5:638:29 | f | | file://:0:0:0:0 | & | +| main.rs:638:5:638:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:638:5:638:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:638:5:638:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:638:5:638:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:638:5:638:29 | self | | file://:0:0:0:0 | & | +| main.rs:638:5:638:29 | self | &T | main.rs:638:5:639:13 | S | +| main.rs:639:12:639:12 | S | | main.rs:638:5:639:13 | S | +| main.rs:639:12:639:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:639:12:639:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:639:12:639:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:639:12:639:12 | { ... } | | main.rs:638:5:639:13 | S | +| main.rs:639:12:639:12 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:641:5:641:29 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:641:5:641:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:641:5:641:29 | SelfParam | &T | main.rs:641:5:642:14 | S2 | +| main.rs:641:5:641:29 | f | | file://:0:0:0:0 | & | +| main.rs:641:5:641:29 | f | | file://:0:0:0:0 | & | +| main.rs:641:5:641:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:641:5:641:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:641:5:641:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:641:5:641:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:641:5:641:29 | self | | file://:0:0:0:0 | & | +| main.rs:641:5:641:29 | self | &T | main.rs:641:5:642:14 | S2 | +| main.rs:642:12:642:13 | S2 | | main.rs:641:5:642:14 | S2 | +| main.rs:642:12:642:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:642:12:642:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:642:12:642:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:642:12:642:13 | { ... } | | main.rs:641:5:642:14 | S2 | +| main.rs:642:12:642:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:644:5:644:29 | "AT" | | {EXTERNAL LOCATION} | str | +| main.rs:644:5:644:29 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:644:5:644:29 | SelfParam | &T | main.rs:644:5:645:14 | AT | +| main.rs:644:5:644:29 | f | | file://:0:0:0:0 | & | +| main.rs:644:5:644:29 | f | | file://:0:0:0:0 | & | +| main.rs:644:5:644:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:644:5:644:29 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:644:5:644:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:644:5:644:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:644:5:644:29 | self | | file://:0:0:0:0 | & | +| main.rs:644:5:644:29 | self | &T | main.rs:644:5:645:14 | AT | +| main.rs:645:12:645:13 | AT | | main.rs:644:5:645:14 | AT | +| main.rs:645:12:645:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:645:12:645:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:645:12:645:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:645:12:645:13 | { ... } | | main.rs:644:5:645:14 | AT | +| main.rs:645:12:645:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:651:15:651:18 | SelfParam | | main.rs:638:5:639:13 | S | | main.rs:651:45:653:9 | { ... } | | main.rs:644:5:645:14 | AT | | main.rs:652:13:652:14 | AT | | main.rs:644:5:645:14 | AT | @@ -836,6 +1319,67 @@ inferType | main.rs:731:13:731:21 | assoc_two | | main.rs:641:5:642:14 | S2 | | main.rs:731:25:731:26 | AT | | main.rs:644:5:645:14 | AT | | main.rs:731:25:731:36 | AT.get_two() | | main.rs:641:5:642:14 | S2 | +| main.rs:736:5:736:20 | "C1" | | {EXTERNAL LOCATION} | str | +| main.rs:736:5:736:20 | "C2" | | {EXTERNAL LOCATION} | str | +| main.rs:736:5:736:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:736:5:736:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:736:5:736:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:736:5:736:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:736:5:736:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | SelfParam | &T | main.rs:736:5:740:5 | MyEnum | +| main.rs:736:5:736:20 | SelfParam | &T.A | main.rs:737:17:737:17 | A | +| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:736:5:736:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:736:5:736:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:736:5:736:20 | self | | file://:0:0:0:0 | & | +| main.rs:736:5:736:20 | self | &T | main.rs:736:5:740:5 | MyEnum | +| main.rs:736:5:736:20 | self | &T.A | main.rs:737:17:737:17 | A | +| main.rs:737:10:739:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:737:10:739:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:737:10:739:14 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:737:10:739:14 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:739:14:739:14 | &a | | file://:0:0:0:0 | & | +| main.rs:739:14:739:14 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:739:14:739:14 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:739:14:739:14 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:739:14:739:14 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:742:5:742:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:742:5:742:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:742:5:742:20 | SelfParam | &T | main.rs:742:5:743:14 | S1 | +| main.rs:742:5:742:20 | f | | file://:0:0:0:0 | & | +| main.rs:742:5:742:20 | f | | file://:0:0:0:0 | & | +| main.rs:742:5:742:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:742:5:742:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:742:5:742:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:742:5:742:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:742:5:742:20 | self | | file://:0:0:0:0 | & | +| main.rs:742:5:742:20 | self | &T | main.rs:742:5:743:14 | S1 | +| main.rs:743:12:743:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:743:12:743:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:743:12:743:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:743:12:743:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:744:5:744:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:744:5:744:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:744:5:744:20 | SelfParam | &T | main.rs:744:5:745:14 | S2 | +| main.rs:744:5:744:20 | f | | file://:0:0:0:0 | & | +| main.rs:744:5:744:20 | f | | file://:0:0:0:0 | & | +| main.rs:744:5:744:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:744:5:744:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:744:5:744:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:744:5:744:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:744:5:744:20 | self | | file://:0:0:0:0 | & | +| main.rs:744:5:744:20 | self | &T | main.rs:744:5:745:14 | S2 | +| main.rs:745:12:745:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:745:12:745:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:745:12:745:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:745:12:745:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:748:15:748:18 | SelfParam | | main.rs:736:5:740:5 | MyEnum | | main.rs:748:15:748:18 | SelfParam | A | main.rs:747:10:747:10 | T | | main.rs:748:26:753:9 | { ... } | | main.rs:747:10:747:10 | T | @@ -864,6 +1408,80 @@ inferType | main.rs:761:26:761:26 | y | | main.rs:736:5:740:5 | MyEnum | | main.rs:761:26:761:26 | y | A | main.rs:744:5:745:14 | S2 | | main.rs:761:26:761:31 | y.m1() | | main.rs:744:5:745:14 | S2 | +| main.rs:766:5:766:20 | "MyThing" | | {EXTERNAL LOCATION} | str | +| main.rs:766:5:766:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:766:5:766:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:766:5:766:20 | SelfParam | &T | main.rs:766:5:769:5 | MyThing | +| main.rs:766:5:766:20 | SelfParam | &T.A | main.rs:767:20:767:20 | A | +| main.rs:766:5:766:20 | f | | file://:0:0:0:0 | & | +| main.rs:766:5:766:20 | f | | file://:0:0:0:0 | & | +| main.rs:766:5:766:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:766:5:766:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:766:5:766:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:766:5:766:20 | self | | file://:0:0:0:0 | & | +| main.rs:766:5:766:20 | self | &T | main.rs:766:5:769:5 | MyThing | +| main.rs:766:5:766:20 | self | &T.A | main.rs:767:20:767:20 | A | +| main.rs:767:12:768:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:767:12:768:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:767:12:768:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:767:12:768:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:768:9:768:9 | &a | | file://:0:0:0:0 | & | +| main.rs:768:9:768:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:768:9:768:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:768:9:768:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:768:9:768:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:771:5:771:20 | "MyThing2" | | {EXTERNAL LOCATION} | str | +| main.rs:771:5:771:20 | "a" | | {EXTERNAL LOCATION} | str | +| main.rs:771:5:771:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:771:5:771:20 | SelfParam | &T | main.rs:771:5:774:5 | MyThing2 | +| main.rs:771:5:771:20 | SelfParam | &T.A | main.rs:772:21:772:21 | A | +| main.rs:771:5:771:20 | f | | file://:0:0:0:0 | & | +| main.rs:771:5:771:20 | f | | file://:0:0:0:0 | & | +| main.rs:771:5:771:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:771:5:771:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:771:5:771:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:771:5:771:20 | self | | file://:0:0:0:0 | & | +| main.rs:771:5:771:20 | self | &T | main.rs:771:5:774:5 | MyThing2 | +| main.rs:771:5:771:20 | self | &T.A | main.rs:772:21:772:21 | A | +| main.rs:772:12:773:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:772:12:773:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:772:12:773:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:772:12:773:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:773:9:773:9 | &a | | file://:0:0:0:0 | & | +| main.rs:773:9:773:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:773:9:773:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:773:9:773:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:773:9:773:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:776:5:776:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:776:5:776:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:776:5:776:20 | SelfParam | &T | main.rs:776:5:777:14 | S1 | +| main.rs:776:5:776:20 | f | | file://:0:0:0:0 | & | +| main.rs:776:5:776:20 | f | | file://:0:0:0:0 | & | +| main.rs:776:5:776:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:776:5:776:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:776:5:776:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:776:5:776:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:776:5:776:20 | self | | file://:0:0:0:0 | & | +| main.rs:776:5:776:20 | self | &T | main.rs:776:5:777:14 | S1 | +| main.rs:777:12:777:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:777:12:777:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:777:12:777:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:777:12:777:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:778:5:778:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:778:5:778:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:778:5:778:20 | SelfParam | &T | main.rs:778:5:779:14 | S2 | +| main.rs:778:5:778:20 | f | | file://:0:0:0:0 | & | +| main.rs:778:5:778:20 | f | | file://:0:0:0:0 | & | +| main.rs:778:5:778:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:778:5:778:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:778:5:778:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:778:5:778:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:778:5:778:20 | self | | file://:0:0:0:0 | & | +| main.rs:778:5:778:20 | self | &T | main.rs:778:5:779:14 | S2 | +| main.rs:779:12:779:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:779:12:779:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:779:12:779:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:779:12:779:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:783:15:783:18 | SelfParam | | main.rs:781:5:784:5 | Self [trait MyTrait1] | | main.rs:788:15:788:18 | SelfParam | | main.rs:786:5:798:5 | Self [trait MyTrait2] | | main.rs:791:9:797:9 | { ... } | | main.rs:786:20:786:22 | Tr2 | @@ -995,6 +1613,36 @@ inferType | main.rs:867:17:867:32 | call_trait_m1(...) | A | main.rs:778:5:779:14 | S2 | | main.rs:867:31:867:31 | x | | main.rs:771:5:774:5 | MyThing2 | | main.rs:867:31:867:31 | x | A | main.rs:778:5:779:14 | S2 | +| main.rs:875:5:875:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:875:5:875:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:875:5:875:20 | SelfParam | &T | main.rs:875:5:876:14 | S1 | +| main.rs:875:5:875:20 | f | | file://:0:0:0:0 | & | +| main.rs:875:5:875:20 | f | | file://:0:0:0:0 | & | +| main.rs:875:5:875:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:875:5:875:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:875:5:875:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:875:5:875:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:875:5:875:20 | self | | file://:0:0:0:0 | & | +| main.rs:875:5:875:20 | self | &T | main.rs:875:5:876:14 | S1 | +| main.rs:876:12:876:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:876:12:876:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:876:12:876:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:876:12:876:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:878:5:878:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:878:5:878:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:878:5:878:20 | SelfParam | &T | main.rs:878:5:879:14 | S2 | +| main.rs:878:5:878:20 | f | | file://:0:0:0:0 | & | +| main.rs:878:5:878:20 | f | | file://:0:0:0:0 | & | +| main.rs:878:5:878:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:878:5:878:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:878:5:878:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:878:5:878:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:878:5:878:20 | self | | file://:0:0:0:0 | & | +| main.rs:878:5:878:20 | self | &T | main.rs:878:5:879:14 | S2 | +| main.rs:879:12:879:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:879:12:879:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:879:12:879:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:879:12:879:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:885:22:885:22 | x | | file://:0:0:0:0 | & | | main.rs:885:22:885:22 | x | &T | main.rs:885:11:885:19 | T | | main.rs:885:35:887:5 | { ... } | | file://:0:0:0:0 | & | @@ -1041,6 +1689,56 @@ inferType | main.rs:916:13:916:13 | y | | main.rs:878:5:879:14 | S2 | | main.rs:916:21:916:27 | into(...) | | main.rs:878:5:879:14 | S2 | | main.rs:916:26:916:26 | x | | main.rs:875:5:876:14 | S1 | +| main.rs:921:5:921:20 | "PairBoth" | | {EXTERNAL LOCATION} | str | +| main.rs:921:5:921:20 | "PairFst" | | {EXTERNAL LOCATION} | str | +| main.rs:921:5:921:20 | "PairNone" | | {EXTERNAL LOCATION} | str | +| main.rs:921:5:921:20 | "PairSnd" | | {EXTERNAL LOCATION} | str | +| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | &f1 | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:921:5:921:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | SelfParam | &T | main.rs:921:5:927:5 | PairOption | +| main.rs:921:5:921:20 | SelfParam | &T.Fst | main.rs:922:21:922:23 | Fst | +| main.rs:921:5:921:20 | SelfParam | &T.Snd | main.rs:922:26:922:28 | Snd | +| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:921:5:921:20 | self | | file://:0:0:0:0 | & | +| main.rs:921:5:921:20 | self | &T | main.rs:921:5:927:5 | PairOption | +| main.rs:921:5:921:20 | self | &T.Fst | main.rs:922:21:922:23 | Fst | +| main.rs:921:5:921:20 | self | &T.Snd | main.rs:922:26:922:28 | Snd | +| main.rs:922:10:926:16 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:922:10:926:16 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:922:10:926:16 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:922:10:926:16 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:930:22:930:25 | SelfParam | | main.rs:921:5:927:5 | PairOption | | main.rs:930:22:930:25 | SelfParam | Fst | main.rs:929:10:929:12 | Fst | | main.rs:930:22:930:25 | SelfParam | Snd | main.rs:929:15:929:17 | Snd | @@ -1061,6 +1759,51 @@ inferType | main.rs:934:45:934:47 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:935:41:935:43 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:935:49:935:51 | snd | | main.rs:929:15:929:17 | Snd | +| main.rs:940:5:940:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:940:5:940:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:940:5:940:20 | SelfParam | &T | main.rs:940:5:941:14 | S1 | +| main.rs:940:5:940:20 | f | | file://:0:0:0:0 | & | +| main.rs:940:5:940:20 | f | | file://:0:0:0:0 | & | +| main.rs:940:5:940:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:940:5:940:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:940:5:940:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:940:5:940:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:940:5:940:20 | self | | file://:0:0:0:0 | & | +| main.rs:940:5:940:20 | self | &T | main.rs:940:5:941:14 | S1 | +| main.rs:941:12:941:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:941:12:941:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:941:12:941:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:941:12:941:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:943:5:943:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:943:5:943:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:943:5:943:20 | SelfParam | &T | main.rs:943:5:944:14 | S2 | +| main.rs:943:5:943:20 | f | | file://:0:0:0:0 | & | +| main.rs:943:5:943:20 | f | | file://:0:0:0:0 | & | +| main.rs:943:5:943:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:943:5:943:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:943:5:943:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:943:5:943:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:943:5:943:20 | self | | file://:0:0:0:0 | & | +| main.rs:943:5:943:20 | self | &T | main.rs:943:5:944:14 | S2 | +| main.rs:944:12:944:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:944:12:944:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:944:12:944:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:944:12:944:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:946:5:946:20 | "S3" | | {EXTERNAL LOCATION} | str | +| main.rs:946:5:946:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:946:5:946:20 | SelfParam | &T | main.rs:946:5:947:14 | S3 | +| main.rs:946:5:946:20 | f | | file://:0:0:0:0 | & | +| main.rs:946:5:946:20 | f | | file://:0:0:0:0 | & | +| main.rs:946:5:946:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:946:5:946:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:946:5:946:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:946:5:946:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:946:5:946:20 | self | | file://:0:0:0:0 | & | +| main.rs:946:5:946:20 | self | &T | main.rs:946:5:947:14 | S3 | +| main.rs:947:12:947:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:947:12:947:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:947:12:947:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:947:12:947:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:961:10:961:10 | t | | main.rs:921:5:927:5 | PairOption | | main.rs:961:10:961:10 | t | Fst | main.rs:943:5:944:14 | S2 | | main.rs:961:10:961:10 | t | Snd | main.rs:921:5:927:5 | PairOption | @@ -1130,6 +1873,33 @@ inferType | main.rs:983:31:983:53 | ...::PairSnd(...) | Fst | main.rs:943:5:944:14 | S2 | | main.rs:983:31:983:53 | ...::PairSnd(...) | Snd | main.rs:946:5:947:14 | S3 | | main.rs:983:51:983:52 | S3 | | main.rs:946:5:947:14 | S3 | +| main.rs:988:5:988:20 | "MyNone" | | {EXTERNAL LOCATION} | str | +| main.rs:988:5:988:20 | "MySome" | | {EXTERNAL LOCATION} | str | +| main.rs:988:5:988:20 | &f0 | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:988:5:988:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:988:5:988:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:988:5:988:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:988:5:988:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:988:5:988:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | SelfParam | &T | main.rs:988:5:992:5 | MyOption | +| main.rs:988:5:988:20 | SelfParam | &T.T | main.rs:989:19:989:19 | T | +| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:988:5:988:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:988:5:988:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:988:5:988:20 | self | | file://:0:0:0:0 | & | +| main.rs:988:5:988:20 | self | &T | main.rs:988:5:992:5 | MyOption | +| main.rs:988:5:988:20 | self | &T.T | main.rs:989:19:989:19 | T | +| main.rs:989:10:991:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:989:10:991:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:989:10:991:14 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:989:10:991:14 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:996:16:996:24 | SelfParam | | file://:0:0:0:0 | & | | main.rs:996:16:996:24 | SelfParam | &T | main.rs:994:5:1001:5 | Self [trait MyTrait] | | main.rs:996:27:996:31 | value | | main.rs:994:19:994:19 | S | @@ -1163,6 +1933,21 @@ inferType | main.rs:1018:34:1018:34 | x | T | main.rs:1014:10:1014:10 | T | | main.rs:1018:40:1018:40 | x | | main.rs:988:5:992:5 | MyOption | | main.rs:1018:40:1018:40 | x | T | main.rs:1014:10:1014:10 | T | +| main.rs:1023:5:1023:20 | "S" | | {EXTERNAL LOCATION} | str | +| main.rs:1023:5:1023:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1023:5:1023:20 | SelfParam | &T | main.rs:1023:5:1024:13 | S | +| main.rs:1023:5:1023:20 | f | | file://:0:0:0:0 | & | +| main.rs:1023:5:1023:20 | f | | file://:0:0:0:0 | & | +| main.rs:1023:5:1023:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1023:5:1023:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1023:5:1023:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1023:5:1023:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:1023:5:1023:20 | self | | file://:0:0:0:0 | & | +| main.rs:1023:5:1023:20 | self | &T | main.rs:1023:5:1024:13 | S | +| main.rs:1024:12:1024:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1024:12:1024:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1024:12:1024:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1024:12:1024:12 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1027:13:1027:14 | x1 | | main.rs:988:5:992:5 | MyOption | | main.rs:1027:18:1027:37 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | @@ -1275,6 +2060,62 @@ inferType | main.rs:1070:18:1070:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1070:26:1070:34 | from_loop | | main.rs:988:5:992:5 | MyOption | | main.rs:1070:26:1070:34 | from_loop | T | main.rs:1023:5:1024:13 | S | +| main.rs:1076:5:1076:33 | "S" | | {EXTERNAL LOCATION} | str | +| main.rs:1076:5:1076:33 | &f0 | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:1076:5:1076:33 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:1076:5:1076:33 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:1076:5:1076:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | SelfParam | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1076:5:1076:33 | SelfParam | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1076:5:1076:33 | SelfParam | &T.T | main.rs:1077:14:1077:14 | T | +| main.rs:1076:5:1076:33 | SelfParam | &T.T | main.rs:1077:14:1077:14 | T | +| main.rs:1076:5:1076:33 | f | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | f | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1076:5:1076:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1076:5:1076:33 | f0.clone() | | main.rs:1077:14:1077:14 | T | +| main.rs:1076:5:1076:33 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | +| main.rs:1076:5:1076:33 | self | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | self | | file://:0:0:0:0 | & | +| main.rs:1076:5:1076:33 | self | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1076:5:1076:33 | self | &T | main.rs:1076:5:1077:19 | S | +| main.rs:1076:5:1076:33 | self | &T.T | main.rs:1077:14:1077:14 | T | +| main.rs:1076:5:1076:33 | self | &T.T | main.rs:1077:14:1077:14 | T | +| main.rs:1077:12:1077:12 | S(...) | | main.rs:1076:5:1077:19 | S | +| main.rs:1077:12:1077:12 | S(...) | T | main.rs:1077:14:1077:14 | T | +| main.rs:1077:12:1077:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1077:12:1077:12 | match self { ... } | | main.rs:1076:5:1077:19 | S | +| main.rs:1077:12:1077:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1077:12:1077:12 | match self { ... } | T | main.rs:1077:14:1077:14 | T | +| main.rs:1077:12:1077:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1077:12:1077:12 | { ... } | | main.rs:1076:5:1077:19 | S | +| main.rs:1077:12:1077:12 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1077:12:1077:12 | { ... } | T | main.rs:1077:14:1077:14 | T | +| main.rs:1079:5:1079:33 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:1079:5:1079:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | SelfParam | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1079:5:1079:33 | SelfParam | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1079:5:1079:33 | f | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | f | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1079:5:1079:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1079:5:1079:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1079:5:1079:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:1079:5:1079:33 | self | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | self | | file://:0:0:0:0 | & | +| main.rs:1079:5:1079:33 | self | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1079:5:1079:33 | self | &T | main.rs:1079:5:1080:14 | S2 | +| main.rs:1080:12:1080:13 | S2 | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1080:12:1080:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1080:12:1080:13 | match self { ... } | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1080:12:1080:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1080:12:1080:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1080:12:1080:13 | { ... } | | main.rs:1079:5:1080:14 | S2 | +| main.rs:1080:12:1080:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1083:15:1083:18 | SelfParam | | main.rs:1076:5:1077:19 | S | | main.rs:1083:15:1083:18 | SelfParam | T | main.rs:1082:10:1082:10 | T | | main.rs:1083:26:1085:9 | { ... } | | main.rs:1082:10:1082:10 | T | @@ -1492,6 +2333,37 @@ inferType | main.rs:1177:9:1177:15 | x.foo() | | file://:0:0:0:0 | & | | main.rs:1177:9:1177:15 | x.foo() | &T | main.rs:1167:5:1167:26 | MyStruct | | main.rs:1177:9:1177:15 | x.foo() | &T.T | main.rs:1165:5:1165:13 | S | +| main.rs:1182:5:1182:42 | "MyFlag" | | {EXTERNAL LOCATION} | str | +| main.rs:1182:5:1182:42 | "bool" | | {EXTERNAL LOCATION} | str | +| main.rs:1182:5:1182:42 | ...::default(...) | | {EXTERNAL LOCATION} | bool | +| main.rs:1182:5:1182:42 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | SelfParam | &T | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1182:5:1182:42 | SelfParam | &T | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1182:5:1182:42 | f | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | f | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1182:5:1182:42 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1182:5:1182:42 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1182:5:1182:42 | self | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | self | | file://:0:0:0:0 | & | +| main.rs:1182:5:1182:42 | self | &T | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1182:5:1182:42 | self | &T | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | MyFlag {...} | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | MyFlag {...} | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1183:12:1184:12 | match self { ... } | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1183:12:1184:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1183:12:1184:12 | { ... } | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | { ... } | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1183:12:1184:12 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1184:9:1184:12 | &bool | | file://:0:0:0:0 | & | +| main.rs:1184:9:1184:12 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:1184:9:1184:12 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1184:9:1184:12 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:1184:9:1184:12 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:1184:9:1184:12 | bool.clone() | | {EXTERNAL LOCATION} | bool | | main.rs:1188:17:1188:25 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1188:17:1188:25 | SelfParam | &T | main.rs:1182:5:1185:5 | MyFlag | | main.rs:1189:13:1189:16 | self | | file://:0:0:0:0 | & | @@ -1616,6 +2488,36 @@ inferType | main.rs:1224:27:1224:30 | flag | | main.rs:1182:5:1185:5 | MyFlag | | main.rs:1225:18:1225:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1225:26:1225:29 | flag | | main.rs:1182:5:1185:5 | MyFlag | +| main.rs:1232:5:1232:20 | "S1" | | {EXTERNAL LOCATION} | str | +| main.rs:1232:5:1232:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1232:5:1232:20 | SelfParam | &T | main.rs:1232:5:1233:14 | S1 | +| main.rs:1232:5:1232:20 | f | | file://:0:0:0:0 | & | +| main.rs:1232:5:1232:20 | f | | file://:0:0:0:0 | & | +| main.rs:1232:5:1232:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1232:5:1232:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1232:5:1232:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1232:5:1232:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:1232:5:1232:20 | self | | file://:0:0:0:0 | & | +| main.rs:1232:5:1232:20 | self | &T | main.rs:1232:5:1233:14 | S1 | +| main.rs:1233:12:1233:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1233:12:1233:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1233:12:1233:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1233:12:1233:13 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1235:5:1235:20 | "S2" | | {EXTERNAL LOCATION} | str | +| main.rs:1235:5:1235:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1235:5:1235:20 | SelfParam | &T | main.rs:1235:5:1236:14 | S2 | +| main.rs:1235:5:1235:20 | f | | file://:0:0:0:0 | & | +| main.rs:1235:5:1235:20 | f | | file://:0:0:0:0 | & | +| main.rs:1235:5:1235:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1235:5:1235:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1235:5:1235:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1235:5:1235:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:1235:5:1235:20 | self | | file://:0:0:0:0 | & | +| main.rs:1235:5:1235:20 | self | &T | main.rs:1235:5:1236:14 | S2 | +| main.rs:1236:12:1236:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1236:12:1236:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1236:12:1236:13 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1236:12:1236:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1239:43:1242:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1239:43:1242:5 | { ... } | E | main.rs:1232:5:1233:14 | S1 | | main.rs:1239:43:1242:5 | { ... } | T | main.rs:1232:5:1233:14 | S1 | @@ -1754,6 +2656,39 @@ inferType | main.rs:1313:13:1313:17 | ... = ... | | file://:0:0:0:0 | () | | main.rs:1313:17:1313:17 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1315:9:1315:9 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1323:5:1323:33 | "Vec2" | | {EXTERNAL LOCATION} | str | +| main.rs:1323:5:1323:33 | "x" | | {EXTERNAL LOCATION} | str | +| main.rs:1323:5:1323:33 | "y" | | {EXTERNAL LOCATION} | str | +| main.rs:1323:5:1323:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1323:5:1323:33 | SelfParam | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1323:5:1323:33 | f | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | f | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1323:5:1323:33 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1323:5:1323:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1323:5:1323:33 | self | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | self | | file://:0:0:0:0 | & | +| main.rs:1323:5:1323:33 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1323:5:1323:33 | self | &T | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1324:12:1326:9 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1324:12:1326:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1324:12:1326:9 | match self { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1324:12:1326:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1324:12:1326:9 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1324:12:1326:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | +| main.rs:1324:12:1326:9 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1325:9:1325:9 | &x | | file://:0:0:0:0 | & | +| main.rs:1325:9:1325:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:1325:9:1325:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1325:9:1325:9 | x.clone() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1325:9:1326:9 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:1325:9:1326:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1325:9:1326:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:1325:9:1326:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | +| main.rs:1326:9:1326:9 | &y | | file://:0:0:0:0 | & | +| main.rs:1326:9:1326:9 | y.clone() | | {EXTERNAL LOCATION} | i64 | | main.rs:1329:30:1331:9 | { ... } | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1330:13:1330:31 | Vec2 {...} | | main.rs:1322:5:1327:5 | Vec2 | | main.rs:1330:23:1330:23 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -2562,10 +3497,47 @@ inferType | main.rs:1784:13:1784:13 | d | | main.rs:1732:5:1732:14 | S2 | | main.rs:1784:17:1784:34 | uses_my_trait2(...) | | main.rs:1732:5:1732:14 | S2 | | main.rs:1784:32:1784:33 | S1 | | main.rs:1731:5:1731:14 | S1 | +| main.rs:1791:5:1791:20 | "S" | | {EXTERNAL LOCATION} | str | +| main.rs:1791:5:1791:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1791:5:1791:20 | SelfParam | &T | main.rs:1791:5:1792:13 | S | +| main.rs:1791:5:1791:20 | f | | file://:0:0:0:0 | & | +| main.rs:1791:5:1791:20 | f | | file://:0:0:0:0 | & | +| main.rs:1791:5:1791:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1791:5:1791:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1791:5:1791:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | +| main.rs:1791:5:1791:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | +| main.rs:1791:5:1791:20 | self | | file://:0:0:0:0 | & | +| main.rs:1791:5:1791:20 | self | &T | main.rs:1791:5:1792:13 | S | +| main.rs:1792:12:1792:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1792:12:1792:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1792:12:1792:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1792:12:1792:12 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1795:16:1795:20 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1795:16:1795:20 | SelfParam | &T | main.rs:1791:5:1792:13 | S | | main.rs:1795:31:1797:9 | { ... } | | main.rs:1791:5:1792:13 | S | | main.rs:1796:13:1796:13 | S | | main.rs:1791:5:1792:13 | S | +| main.rs:1800:5:1800:20 | "MyVec" | | {EXTERNAL LOCATION} | str | +| main.rs:1800:5:1800:20 | "data" | | {EXTERNAL LOCATION} | str | +| main.rs:1800:5:1800:20 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1800:5:1800:20 | SelfParam | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1800:5:1800:20 | SelfParam | &T.T | main.rs:1801:18:1801:18 | T | +| main.rs:1800:5:1800:20 | f | | file://:0:0:0:0 | & | +| main.rs:1800:5:1800:20 | f | | file://:0:0:0:0 | & | +| main.rs:1800:5:1800:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1800:5:1800:20 | f | &T | {EXTERNAL LOCATION} | Formatter | +| main.rs:1800:5:1800:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1800:5:1800:20 | self | | file://:0:0:0:0 | & | +| main.rs:1800:5:1800:20 | self | &T | main.rs:1800:5:1803:5 | MyVec | +| main.rs:1800:5:1800:20 | self | &T.T | main.rs:1801:18:1801:18 | T | +| main.rs:1801:12:1802:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1801:12:1802:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1801:12:1802:12 | { ... } | | {EXTERNAL LOCATION} | Result | +| main.rs:1801:12:1802:12 | { ... } | E | {EXTERNAL LOCATION} | Error | +| main.rs:1802:9:1802:12 | &data | | file://:0:0:0:0 | & | +| main.rs:1802:9:1802:12 | ... .field(...) | | file://:0:0:0:0 | & | +| main.rs:1802:9:1802:12 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | +| main.rs:1802:9:1802:12 | ... .finish() | | {EXTERNAL LOCATION} | Result | +| main.rs:1802:9:1802:12 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:1806:26:1808:9 | { ... } | | main.rs:1800:5:1803:5 | MyVec | | main.rs:1806:26:1808:9 | { ... } | T | main.rs:1805:10:1805:10 | T | | main.rs:1807:13:1807:38 | MyVec {...} | | main.rs:1800:5:1803:5 | MyVec | @@ -2711,3 +3683,90 @@ inferType | main.rs:1887:41:1887:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:1903:5:1903:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures +| main.rs:2:5:2:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:5:5:5:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:7:9:7:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:7:9:7:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:10:5:10:20 | ... .field(...) | Unexpected result: method=field | +| main.rs:10:5:10:20 | ... .finish() | Unexpected result: method=finish | +| main.rs:10:5:10:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | +| main.rs:16:5:16:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:18:9:18:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:18:9:18:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:99:5:99:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:101:9:101:13 | ... .field(...) | Unexpected result: method=field | +| main.rs:101:9:101:13 | ... .finish() | Unexpected result: method=finish | +| main.rs:125:5:125:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:127:9:127:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:127:9:127:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:130:5:130:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:132:5:132:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:175:5:175:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:177:9:177:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:177:9:177:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:180:5:180:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:182:9:182:10 | ... .field(...) | Unexpected result: method=field | +| main.rs:182:9:183:10 | ... .field(...) | Unexpected result: method=field | +| main.rs:182:9:183:10 | ... .finish() | Unexpected result: method=finish | +| main.rs:186:5:186:33 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:188:5:188:33 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:190:5:190:42 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:397:5:397:33 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:440:5:440:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:443:5:443:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:516:5:516:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:518:9:518:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:518:9:518:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:521:5:521:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:523:5:523:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:587:5:587:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:589:9:589:13 | ... .field(...) | Unexpected result: method=field | +| main.rs:589:9:589:13 | ... .finish() | Unexpected result: method=finish | +| main.rs:638:5:638:29 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:641:5:641:29 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:644:5:644:29 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:736:5:736:20 | ... .field(...) | Unexpected result: method=field | +| main.rs:736:5:736:20 | ... .finish() | Unexpected result: method=finish | +| main.rs:736:5:736:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:736:5:736:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | +| main.rs:739:14:739:14 | ... .field(...) | Unexpected result: method=field | +| main.rs:739:14:739:14 | ... .finish() | Unexpected result: method=finish | +| main.rs:742:5:742:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:744:5:744:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:766:5:766:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:768:9:768:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:768:9:768:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:771:5:771:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:773:9:773:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:773:9:773:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:776:5:776:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:778:5:778:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:875:5:875:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:878:5:878:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:921:5:921:20 | ... .field(...) | Unexpected result: method=field | +| main.rs:921:5:921:20 | ... .finish() | Unexpected result: method=finish | +| main.rs:921:5:921:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | +| main.rs:940:5:940:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:943:5:943:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:946:5:946:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:988:5:988:20 | ... .field(...) | Unexpected result: method=field | +| main.rs:988:5:988:20 | ... .finish() | Unexpected result: method=finish | +| main.rs:988:5:988:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | +| main.rs:1023:5:1023:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:1076:5:1076:33 | ... .field(...) | Unexpected result: method=field | +| main.rs:1076:5:1076:33 | ... .finish() | Unexpected result: method=finish | +| main.rs:1076:5:1076:33 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | +| main.rs:1079:5:1079:33 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:1182:5:1182:42 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:1184:9:1184:12 | ... .field(...) | Unexpected result: method=field | +| main.rs:1184:9:1184:12 | ... .finish() | Unexpected result: method=finish | +| main.rs:1232:5:1232:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:1235:5:1235:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:1323:5:1323:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:1325:9:1325:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:1325:9:1326:9 | ... .field(...) | Unexpected result: method=field | +| main.rs:1325:9:1326:9 | ... .finish() | Unexpected result: method=finish | +| main.rs:1791:5:1791:20 | f.write_str(...) | Unexpected result: method=write_str | +| main.rs:1800:5:1800:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | +| main.rs:1802:9:1802:12 | ... .field(...) | Unexpected result: method=field | +| main.rs:1802:9:1802:12 | ... .finish() | Unexpected result: method=finish | diff --git a/rust/ql/test/library-tests/variables/main.rs b/rust/ql/test/library-tests/variables/main.rs index 89f9fffa886..493bf8df540 100644 --- a/rust/ql/test/library-tests/variables/main.rs +++ b/rust/ql/test/library-tests/variables/main.rs @@ -503,7 +503,7 @@ fn phi_read(b1 : bool, b2 : bool) { } } -#[derive(Debug)] + struct MyStruct { val: i64, } diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 767f3366008..e3bd532388b 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,30 +1,30 @@ multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | From 52c0028f850484530c483461efadb497ff48d8e4 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 14:35:08 +0200 Subject: [PATCH 176/340] Rust: make `Adt` be generated --- rust/ast-generator/src/main.rs | 6 ++-- rust/ql/.generated.list | 18 +++++------ rust/ql/lib/codeql/rust/elements/Enum.qll | 1 + rust/ql/lib/codeql/rust/elements/Struct.qll | 1 + rust/ql/lib/codeql/rust/elements/Union.qll | 1 + .../rust/elements/internal/generated/Enum.qll | 3 +- .../internal/generated/ParentChild.qll | 31 ++++++++++++------- .../rust/elements/internal/generated/Raw.qll | 6 ++-- .../elements/internal/generated/Struct.qll | 3 +- .../elements/internal/generated/Synth.qll | 18 +++++++++-- .../elements/internal/generated/Union.qll | 3 +- rust/ql/lib/rust.dbscheme | 3 ++ rust/schema/annotations.py | 9 +++--- rust/schema/ast.py | 9 ++++-- 14 files changed, 72 insertions(+), 40 deletions(-) diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 70741c83382..35437777c21 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -385,8 +385,8 @@ struct ExtractorInfo { } fn enum_to_extractor_info(node: &AstEnumSrc) -> Option { - if node.name == "VariantDef" { - // currently defined but unused + if matches!(node.name.as_str(), "VariantDef" | "Adt") { + // these are not used as types of fields, so we don't need to generate extractors for them return None; } Some(ExtractorEnumInfo { @@ -485,8 +485,6 @@ fn main() -> anyhow::Result<()> { .expect("Failed to parse grammar"); let mut grammar = codegen::grammar::lower(&grammar); - grammar.enums.retain(|x| x.name != "Adt"); - let mut super_types: BTreeMap> = BTreeMap::new(); for node in &grammar.enums { for variant in &node.variants { diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 4aa4e6d7da0..a08afe1fdad 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -47,7 +47,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95 lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 -lib/codeql/rust/elements/Enum.qll 55d5a4a775f07d9c1d5183af76f9d8de1d700bfe1dea427cc7ff3083f39e13de f00a585596f1d0ab34e6f2b7cdaba6d4a89005820478f810e8685478cf88100e +lib/codeql/rust/elements/Enum.qll 3630f73c1ea158c6977a9d2b2543eb8ebeeb9fef1a7575fdd4b05c98e5938d69 f5f4c93af0741685aa422498fb547e0ee647b632ad5821fb7278d9f2f70e4342 lib/codeql/rust/elements/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 @@ -146,7 +146,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll a6d73152ddecb53a127aa3a4139f97007cd77b46203691c287600aa7200b8beb 547197e794803b3ea0c0e220f050980adec815a16fdef600f98ff795aa77f677 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll e874859ce03672d0085e47e0ca5e571b92b539b31bf0d5a8802f9727bef0c6b0 e5fe83237f713cdb57c446a6e1c20f645c2f49d9f5ef2c984032df83acb3c0de -lib/codeql/rust/elements/Struct.qll 6ae1ce11044a1f6bf3150ddce947c1be17e462613edf7ea4fe7d861aa3dbe0d1 043ef682d71f31e8808962032c05ab3045e7cbc8663ec7e06dc9255e12e53c12 +lib/codeql/rust/elements/Struct.qll 6ed5475dc66c192290bd11ec4c80ec3093b837456146329b447422c7789574e7 b471e12936bc8095eab45c5473d279b6681fce4cb80afa01d73293061e39b66e lib/codeql/rust/elements/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed0705b2845b086b8953f16019fab 2d33d86b035a15c1b31c3e07e0e74c4bbe57a71c5a55d60e720827814e73b7ba lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -175,7 +175,7 @@ lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c38 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll 3e277155fc7ea77f645cb5c5b227efd1474aa745b12a8be228eab694536c49dc a4bf9b54b8262517371000a842e5fdcdaabd324e52afd7919bbf76bc887b18b6 +lib/codeql/rust/elements/Union.qll da30dcfc2bb60a2d2b63dbcb71aca50a380196a79633b85a06fb45d0cbd65c68 27fa235c5a4f7d17e0737addcc436853f1b9c7e96f283c37985c17929fac6788 lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad @@ -508,7 +508,7 @@ lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83 lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e -lib/codeql/rust/elements/internal/generated/Enum.qll 477eaa102c1268f0fa7603ecd88f1b83db1388c17c25e3719d4113ea980256f7 2d60db61ba4a385218f0a01e366e04ba1e7dad386b7e6a027c31f32fb730cca2 +lib/codeql/rust/elements/internal/generated/Enum.qll a9d8a52ba8368889c29855d0c966ed74460c83d34e3410fffe08091a3c76b642 0c7a9a675ed3b5ec22074f47745816c7c009676871279906f39ad9669450c35c lib/codeql/rust/elements/internal/generated/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8 lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 @@ -580,7 +580,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 b58a01c0d2cca085a77ed7a98a0318cfc20450e48c64124f8a875ae45416ac25 92e9b6434629508868a5cf69c1236729409dcab4c4cda63af537d591a840127a +lib/codeql/rust/elements/internal/generated/ParentChild.qll 2bcec7e700042db6e58b85bb1346a03f0fa41252af7aa0c835be38217e9c6fda 348c4408b2ab91b6b498242b9e4675dd5015aeac9f5b2d52760f1c071c1d1924 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 @@ -595,7 +595,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 f9370ca510d47144f7a22255341dc0f45407fcc8c22d42a74dbc423a68a36635 2301eb8a7b4d59c05413e07f95fe9ac2d0f42d3673d9b7e809bd49a6c1bee506 +lib/codeql/rust/elements/internal/generated/Raw.qll bc03ef3af94aa43287e054f731c283eec1610e319201ab2a78249c2a7ee22413 30278f463569b5f7b5011f61b9cfe111449829cbb32b251e5c5e58cd438b5978 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 @@ -612,7 +612,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 34a4cdb9f4a93414499a30aeeaad1b3388f2341c982af5688815c3b0a0e9c57b 3c8354336eff68d580b804600df9abf49ee5ee10ec076722089087820cefe731 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 816aebf8f56e179f5f0ba03e80d257ee85459ea757392356a0af6dbd0cd9ef5e 6aa51cdcdc8d93427555fa93f0e84afdfbbd4ffc8b8d378ae4a22b5b6f94f48b -lib/codeql/rust/elements/internal/generated/Struct.qll ce40dd64d61f6ca0a8425019dd8368ca3d79d3a238d7afb9b3f1c86c2c95c1b5 214946f9cdbf134a181d98b02bb630504ad524541febc4c0b8490a9a6fab8750 +lib/codeql/rust/elements/internal/generated/Struct.qll 869ef9510b92f0e80455fd9e9640c33304035937a7ee4457a03191e4ca8a9065 401932fd7984dec3946cb0d49752d1ec86f6f2f819de2f5cdc36f5ce3f035690 lib/codeql/rust/elements/internal/generated/StructExpr.qll c6d861eaa0123b103fd9ffd2485423419ef9b7e0b4af9ed2a2090d8ec534f65d 50da99ee44771e1239ed8919f711991dd3ec98589fbe49b49b68c88074a07d74 lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -621,7 +621,7 @@ 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 ef45765a8e077bc0168ec226b3b84902acd8d774cd7af637e0b1b1b16ff1deaf 58dd7076517e5d680c6d8b0489530bd8e1d15d629a233f1742cca3f028d5ec81 +lib/codeql/rust/elements/internal/generated/Synth.qll 6835c645faf2eac3dfd2d29dbdd3088ff936afd5910bf7c48ff872d6a1fa6051 9a04caa1e973b8b38708a86b4d85f9b30a0006b7688a286f225c548b81df8935 lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -643,7 +643,7 @@ lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll 328d714dba5b19f8bf94c17efee21c9ca9e693a3a568a2afed3dc0d03fcc3f50 9be7039ce837a3217e97f64c8667d78e4d69e19c8fe7c19198389acb83a15957 +lib/codeql/rust/elements/internal/generated/Union.qll d8d21121ebdd274a99e466866a89efe3a6a7bb43fecb770ce35a1d7ac69d07c9 9f917b82bdc4c7fe2eecfb219cb1302ac05020df0cf09bb054f4a7fcfd7788ca lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a diff --git a/rust/ql/lib/codeql/rust/elements/Enum.qll b/rust/ql/lib/codeql/rust/elements/Enum.qll index 9d52b558f53..2ff0cea0552 100644 --- a/rust/ql/lib/codeql/rust/elements/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/Enum.qll @@ -7,6 +7,7 @@ private import internal.EnumImpl import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList +import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index 27b6a37b791..d05d5fe5fd5 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -8,6 +8,7 @@ import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList +import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index 4bf596f4d7a..12d495880c6 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -7,6 +7,7 @@ private import internal.UnionImpl import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList +import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.VariantDef diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll index b829ead848c..fafb2de98e7 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll @@ -9,6 +9,7 @@ private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList +import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility @@ -29,7 +30,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Enum` class directly. * Use the subclass `Enum`, where the following predicates are available. */ - class Enum extends Synth::TEnum, AdtImpl::Adt { + class Enum extends Synth::TEnum, AdtImpl::Adt, ItemImpl::Item { override string getAPrimaryQlClass() { result = "Enum" } /** 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 a0ccc4d728b..f7db87c452b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -3937,12 +3937,13 @@ private module Impl { private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int n, int nAttr, int nGenericParamList, int nName, int nVariantList, - int nVisibility, int nWhereClause + int b, int bAdt, int bItem, int n, int nAttr, int nGenericParamList, int nName, + int nVariantList, int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - n = bAdt and + bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and + n = bItem and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and @@ -3954,6 +3955,8 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or + result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) + or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" or @@ -4020,13 +4023,14 @@ private module Impl { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, - int nName, int nVisibility, int nWhereClause + int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nFieldList, + int nGenericParamList, int nName, int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and + bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and bVariantDef = - bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and n = bVariantDef and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nFieldList = nAttr + 1 and @@ -4039,7 +4043,9 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) + result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) + or + result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" @@ -4063,13 +4069,14 @@ private module Impl { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, - int nStructFieldList, int nVisibility, int nWhereClause + int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nGenericParamList, + int nName, int nStructFieldList, int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and + bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and bVariantDef = - bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and n = bVariantDef and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nGenericParamList = nAttr + 1 and @@ -4082,7 +4089,9 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) + result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) + or + result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" 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 8835f4588c0..2baeda04c11 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -4499,7 +4499,7 @@ module Raw { * enum E {A, B(i32), C {x: i32}} * ``` */ - class Enum extends @enum, Adt { + class Enum extends @enum, Adt, Item { override string toString() { result = "Enum" } /** @@ -4607,7 +4607,7 @@ module Raw { * } * ``` */ - class Struct extends @struct, Adt, VariantDef { + class Struct extends @struct, Adt, Item, VariantDef { override string toString() { result = "Struct" } /** @@ -4650,7 +4650,7 @@ module Raw { * union U { f1: u32, f2: f32 } * ``` */ - class Union extends @union, Adt, VariantDef { + class Union extends @union, Adt, Item, VariantDef { override string toString() { result = "Union" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 8589273ff4c..7c46059a404 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -10,6 +10,7 @@ import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList +import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility @@ -31,7 +32,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, AdtImpl::Adt, VariantDefImpl::VariantDef { + class Struct extends Synth::TStruct, AdtImpl::Adt, ItemImpl::Item, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Struct" } /** 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 28300de4580..d2196c44add 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -775,9 +775,9 @@ module Synth { * INTERNAL: Do not use. */ class TItem = - TAdt or TConst or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or - TMacroDef or TMacroRules or TModule or TStatic or TTrait or TTraitAlias or TTypeAlias or - TUse; + TAdt or TConst or TEnum or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or + TMacroDef or TMacroRules or TModule or TStatic or TStruct or TTrait or TTraitAlias or + TTypeAlias or TUnion or TUse; /** * INTERNAL: Do not use. @@ -2234,6 +2234,8 @@ module Synth { or result = convertConstFromRaw(e) or + result = convertEnumFromRaw(e) + or result = convertExternBlockFromRaw(e) or result = convertExternCrateFromRaw(e) @@ -2252,12 +2254,16 @@ module Synth { or result = convertStaticFromRaw(e) or + result = convertStructFromRaw(e) + or result = convertTraitFromRaw(e) or result = convertTraitAliasFromRaw(e) or result = convertTypeAliasFromRaw(e) or + result = convertUnionFromRaw(e) + or result = convertUseFromRaw(e) } @@ -3842,6 +3848,8 @@ module Synth { or result = convertConstToRaw(e) or + result = convertEnumToRaw(e) + or result = convertExternBlockToRaw(e) or result = convertExternCrateToRaw(e) @@ -3860,12 +3868,16 @@ module Synth { or result = convertStaticToRaw(e) or + result = convertStructToRaw(e) + or result = convertTraitToRaw(e) or result = convertTraitAliasToRaw(e) or result = convertTypeAliasToRaw(e) or + result = convertUnionToRaw(e) + or result = convertUseToRaw(e) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index 88040c4ad13..69851628ae8 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -9,6 +9,7 @@ private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList +import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl @@ -30,7 +31,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, AdtImpl::Adt, VariantDefImpl::VariantDef { + class Union extends Synth::TUnion, AdtImpl::Adt, ItemImpl::Item, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Union" } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 9d208615c27..3a929c908b6 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1919,6 +1919,7 @@ infer_type_reprs( @item = @adt | @const +| @enum | @extern_block | @extern_crate | @function @@ -1928,9 +1929,11 @@ infer_type_reprs( | @macro_rules | @module | @static +| @struct | @trait | @trait_alias | @type_alias +| @union | @use ; diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index ab5a62d9a98..c59cd01a434 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -16,7 +16,8 @@ class LoopingExpr(LabelableExpr): loop_body: optional["BlockExpr"] | child -class Adt(Item): +@annotate(Adt, replace_bases={AstNode: Item}) +class _: """ An ADT (Abstract Data Type) definition, such as `Struct`, `Enum`, or `Union`. """ @@ -1039,7 +1040,7 @@ class _: """ -@annotate(Enum, replace_bases={Item: Adt}) +@annotate(Enum) class _: """ An enum declaration. @@ -1834,7 +1835,7 @@ class _: """ -@annotate(Struct, replace_bases={Item: Adt}) +@annotate(Struct) class _: """ A Struct. For example: @@ -2013,7 +2014,7 @@ class _: """ -@annotate(Union, replace_bases={Item: Adt}) +@annotate(Union) class _: """ A union declaration. diff --git a/rust/schema/ast.py b/rust/schema/ast.py index 17fb872bb8e..32f085a4f7d 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -2,6 +2,9 @@ from .prelude import * +class Adt(AstNode, ): + pass + class AsmOperand(AstNode, ): pass @@ -207,7 +210,7 @@ class ContinueExpr(Expr, ): class DynTraitTypeRepr(TypeRepr, ): type_bound_list: optional["TypeBoundList"] | child -class Enum(Item, ): +class Enum(Adt, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child @@ -625,7 +628,7 @@ class StmtList(AstNode, ): statements: list["Stmt"] | child tail_expr: optional["Expr"] | child -class Struct(Item, VariantDef, ): +class Struct(Adt, Item, VariantDef, ): attrs: list["Attr"] | child field_list: optional["FieldList"] | child generic_param_list: optional["GenericParamList"] | child @@ -713,7 +716,7 @@ class TypeParam(GenericParam, ): class UnderscoreExpr(Expr, ): attrs: list["Attr"] | child -class Union(Item, VariantDef, ): +class Union(Adt, Item, VariantDef, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child From bc8b1f251ef799cc5aa29fb9b65eb6daa1125ba8 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 15:25:25 +0200 Subject: [PATCH 177/340] Rust: rename `asFunction` to `getFunction` --- .../debug/CaptureSummaryModelsPartialPath.ql | 2 +- .../utils/modelgenerator/internal/CaptureModels.qll | 10 +++++----- .../utils-tests/modelgenerator/CaptureSinkModels.ql | 2 +- .../utils-tests/modelgenerator/CaptureSourceModels.ql | 2 +- .../utils-tests/modelgenerator/CaptureSummaryModels.ql | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql index 83f36617bce..f12b66b7e56 100644 --- a/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql +++ b/rust/ql/src/utils/modelgenerator/debug/CaptureSummaryModelsPartialPath.ql @@ -23,6 +23,6 @@ from where PartialFlow::partialFlow(source, sink, _) and p = source.getNode() and - p.asParameter() = api.asFunction().getParamList().getAParamBase() + p.asParameter() = api.getFunction().getParamList().getAParamBase() select sink.getNode(), source, sink, "There is flow from a $@ to $@.", source.getNode(), "parameter", sink.getNode(), "intermediate value" diff --git a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll index 63571d686e7..754bb53357a 100644 --- a/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll +++ b/rust/ql/src/utils/modelgenerator/internal/CaptureModels.qll @@ -33,7 +33,7 @@ class QualifiedCallable extends TCallable { string toString() { result = path } - R::Function asFunction() { result = api } + R::Function getFunction() { result = api } string getCanonicalPath() { result = path } } @@ -53,7 +53,7 @@ module ModelGeneratorCommonInput implements } QualifiedCallable getEnclosingCallable(NodeExtended node) { - result.asFunction() = node.(Node::Node).getEnclosingCallable().asCfgScope() + result.getFunction() = node.(Node::Node).getEnclosingCallable().asCfgScope() } predicate isRelevantType(Type t) { any() } @@ -84,13 +84,13 @@ module ModelGeneratorCommonInput implements bindingset[c] string paramReturnNodeAsExactOutput(QualifiedCallable c, DataFlowImpl::ParameterPosition pos) { - result = parameterExactAccess(c.asFunction().getParam(pos.getPosition())) + result = parameterExactAccess(c.getFunction().getParam(pos.getPosition())) or pos.isSelf() and result = qualifierString() } QualifiedCallable returnNodeEnclosingCallable(DataFlow::Node ret) { - result.asFunction() = ret.(Node::Node).getEnclosingCallable().asCfgScope() + result.getFunction() = ret.(Node::Node).getEnclosingCallable().asCfgScope() } predicate isOwnInstanceAccessNode(DataFlowImpl::RustDataFlow::ReturnNode node) { @@ -120,7 +120,7 @@ private module SummaryModelGeneratorInput implements SummaryModelGeneratorInputS } QualifiedCallable getAsExprEnclosingCallable(NodeExtended node) { - result.asFunction() = node.asExpr().getScope() + result.getFunction() = node.asExpr().getScope() } Parameter asParameter(NodeExtended node) { result = node.asParameter() } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql index 1e297dbc635..5607efe9858 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSinkModels.ql @@ -5,7 +5,7 @@ import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { string getCapturedModel(Function f) { - exists(QualifiedCallable qc | f = qc.asFunction() | result = Heuristic::captureSink(qc)) + exists(QualifiedCallable qc | f = qc.getFunction() | result = Heuristic::captureSink(qc)) } string getKind() { result = "sink" } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql index d698256c903..79ba238d159 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSourceModels.ql @@ -6,7 +6,7 @@ import codeql.rust.dataflow.internal.ModelsAsData module InlineMadTestConfig implements InlineMadTestConfigSig { string getCapturedModel(Function c) { - exists(QualifiedCallable qc | c = qc.asFunction() | result = Heuristic::captureSource(qc)) + exists(QualifiedCallable qc | c = qc.getFunction() | result = Heuristic::captureSource(qc)) } string getKind() { result = "source" } diff --git a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql index 5099679e90a..213c609726d 100644 --- a/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql +++ b/rust/ql/test/utils-tests/modelgenerator/CaptureSummaryModels.ql @@ -5,7 +5,7 @@ import utils.test.InlineMadTest module InlineMadTestConfig implements InlineMadTestConfigSig { string getCapturedModel(Function f) { - exists(QualifiedCallable qc | f = qc.asFunction() | + exists(QualifiedCallable qc | f = qc.getFunction() | result = ContentSensitive::captureFlow(qc, _, _, _, _) ) } From 0d292b785c2027caf7ea2b86e2e3797dc039043a Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 15:45:18 +0200 Subject: [PATCH 178/340] Rust: remove reduntant `Item` superclass from `Adt` subclasses --- misc/codegen/lib/schemadefs.py | 9 ++++-- rust/ql/.generated.list | 18 +++++------ rust/ql/lib/codeql/rust/elements/Enum.qll | 1 - rust/ql/lib/codeql/rust/elements/Struct.qll | 1 - rust/ql/lib/codeql/rust/elements/Union.qll | 1 - .../rust/elements/internal/generated/Enum.qll | 3 +- .../internal/generated/ParentChild.qll | 31 +++++++------------ .../rust/elements/internal/generated/Raw.qll | 6 ++-- .../elements/internal/generated/Struct.qll | 3 +- .../elements/internal/generated/Synth.qll | 18 ++--------- .../elements/internal/generated/Union.qll | 3 +- rust/ql/lib/rust.dbscheme | 3 -- rust/schema/annotations.py | 6 ++-- 13 files changed, 38 insertions(+), 65 deletions(-) diff --git a/misc/codegen/lib/schemadefs.py b/misc/codegen/lib/schemadefs.py index 5841b9ac874..125951701c9 100644 --- a/misc/codegen/lib/schemadefs.py +++ b/misc/codegen/lib/schemadefs.py @@ -321,7 +321,7 @@ drop = object() def annotate( annotated_cls: type, add_bases: _Iterable[type] | None = None, - replace_bases: _Dict[type, type] | None = None, + replace_bases: _Dict[type, type | None] | None = None, cfg: bool = False, ) -> _Callable[[type], _PropertyModifierList]: """ @@ -329,7 +329,8 @@ def annotate( The name of the class used for annotation must be `_`. - `replace_bases` can be used to replace bases on the annotated class. + `replace_bases` can be used to replace bases on the annotated class. Mapping to + `None` will remove that base class. """ def decorator(cls: type) -> _PropertyModifierList: @@ -341,7 +342,9 @@ def annotate( _ClassPragma(p, value=v)(annotated_cls) if replace_bases: annotated_cls.__bases__ = tuple( - replace_bases.get(b, b) for b in annotated_cls.__bases__ + b + for b in (replace_bases.get(b, b) for b in annotated_cls.__bases__) + if b is not None ) if add_bases: annotated_cls.__bases__ += tuple(add_bases) diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index a08afe1fdad..4aa4e6d7da0 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -47,7 +47,7 @@ lib/codeql/rust/elements/ContinueExpr.qll 9f27c5d5c819ad0ebc5bd10967ba8d33a9dc95 lib/codeql/rust/elements/Crate.qll 1426960e6f36195e42ea5ea321405c1a72fccd40cd6c0a33673c321c20302d8d 1571a89f89dab43c5291b71386de7aadf52730755ba10f9d696db9ad2f760aff lib/codeql/rust/elements/DynTraitTypeRepr.qll e4d27112d27ae93c621defd2c976fd4e90663ab7f6115e83ae4fe8106cb5e015 eb9fde89698588f3b7116f62388c54e937f99559b22c93d11a5596e754560072 lib/codeql/rust/elements/Element.qll 0b62d139fef54ed2cf2e2334806aa9bfbc036c9c2085d558f15a42cc3fa84c48 24b999b93df79383ef27ede46e38da752868c88a07fe35fcff5d526684ba7294 -lib/codeql/rust/elements/Enum.qll 3630f73c1ea158c6977a9d2b2543eb8ebeeb9fef1a7575fdd4b05c98e5938d69 f5f4c93af0741685aa422498fb547e0ee647b632ad5821fb7278d9f2f70e4342 +lib/codeql/rust/elements/Enum.qll 55d5a4a775f07d9c1d5183af76f9d8de1d700bfe1dea427cc7ff3083f39e13de f00a585596f1d0ab34e6f2b7cdaba6d4a89005820478f810e8685478cf88100e lib/codeql/rust/elements/Expr.qll e5d65e805ccf440d64d331e55df4c4144ab8c8f63f367382494714087659ffe8 2bbc1e5d3a65f413ec33d9822fa451fbdbe32349158db58cc0bfcfafb0e21bda lib/codeql/rust/elements/ExprStmt.qll 00ac4c7d0192b9e8b0f28d5ae59c27729ff5a831ca11938ea3e677a262337a64 7cc02aa5346cd7c50d75ca63cd6501097b0a3979eb2ed838adff114fe17d35a3 lib/codeql/rust/elements/ExternBlock.qll 96c70d0761ec385fe17aa7228e15fd1711949d5abba5877a1c2f4c180d202125 38ad458868a368d437b2dda44307d788a85c887f45ea76c99adbfc9a53f14d81 @@ -146,7 +146,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll a6d73152ddecb53a127aa3a4139f97007cd77b46203691c287600aa7200b8beb 547197e794803b3ea0c0e220f050980adec815a16fdef600f98ff795aa77f677 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll e874859ce03672d0085e47e0ca5e571b92b539b31bf0d5a8802f9727bef0c6b0 e5fe83237f713cdb57c446a6e1c20f645c2f49d9f5ef2c984032df83acb3c0de -lib/codeql/rust/elements/Struct.qll 6ed5475dc66c192290bd11ec4c80ec3093b837456146329b447422c7789574e7 b471e12936bc8095eab45c5473d279b6681fce4cb80afa01d73293061e39b66e +lib/codeql/rust/elements/Struct.qll 6ae1ce11044a1f6bf3150ddce947c1be17e462613edf7ea4fe7d861aa3dbe0d1 043ef682d71f31e8808962032c05ab3045e7cbc8663ec7e06dc9255e12e53c12 lib/codeql/rust/elements/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed0705b2845b086b8953f16019fab 2d33d86b035a15c1b31c3e07e0e74c4bbe57a71c5a55d60e720827814e73b7ba lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -175,7 +175,7 @@ lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c38 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll da30dcfc2bb60a2d2b63dbcb71aca50a380196a79633b85a06fb45d0cbd65c68 27fa235c5a4f7d17e0737addcc436853f1b9c7e96f283c37985c17929fac6788 +lib/codeql/rust/elements/Union.qll 3e277155fc7ea77f645cb5c5b227efd1474aa745b12a8be228eab694536c49dc a4bf9b54b8262517371000a842e5fdcdaabd324e52afd7919bbf76bc887b18b6 lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad @@ -508,7 +508,7 @@ lib/codeql/rust/elements/internal/generated/ContinueExpr.qll e2010feb14fb6edeb83 lib/codeql/rust/elements/internal/generated/Crate.qll 37f3760d7c0c1c3ca809d07daf7215a8eae6053eda05e88ed7db6e07f4db0781 649a3d7cd7ee99f95f8a4d3d3c41ea2fa848ce7d8415ccbac62977dfc9a49d35 lib/codeql/rust/elements/internal/generated/DynTraitTypeRepr.qll b2e0e728b6708923b862d9d8d6104d13f572da17e393ec1485b8465e4bfdc206 4a87ea9669c55c4905ce4e781b680f674989591b0cb56af1e9fa1058c13300b3 lib/codeql/rust/elements/internal/generated/Element.qll d56d22c060fa929464f837b1e16475a4a2a2e42d68235a014f7369bcb48431db 0e48426ca72179f675ac29aa49bbaadb8b1d27b08ad5cbc72ec5a005c291848e -lib/codeql/rust/elements/internal/generated/Enum.qll a9d8a52ba8368889c29855d0c966ed74460c83d34e3410fffe08091a3c76b642 0c7a9a675ed3b5ec22074f47745816c7c009676871279906f39ad9669450c35c +lib/codeql/rust/elements/internal/generated/Enum.qll 477eaa102c1268f0fa7603ecd88f1b83db1388c17c25e3719d4113ea980256f7 2d60db61ba4a385218f0a01e366e04ba1e7dad386b7e6a027c31f32fb730cca2 lib/codeql/rust/elements/internal/generated/Expr.qll 5fa34f2ed21829a1509417440dae42d416234ff43433002974328e7aabb8f30f 46f3972c7413b7db28a3ea8acb5a50a74b6dd9b658e8725f6953a8829ac912f8 lib/codeql/rust/elements/internal/generated/ExprStmt.qll d1112230015fbeb216b43407a268dc2ccd0f9e0836ab2dca4800c51b38fa1d7d 4a80562dcc55efa5e72c6c3b1d6747ab44fe494e76faff2b8f6e9f10a4b08b5b lib/codeql/rust/elements/internal/generated/ExternBlock.qll e7faac92297a53ac6e0420eec36255a54f360eeb962bf663a00da709407832dd 5ff32c54ec7097d43cc3311492090b9b90f411eead3bc849f258858f29405e81 @@ -580,7 +580,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 2bcec7e700042db6e58b85bb1346a03f0fa41252af7aa0c835be38217e9c6fda 348c4408b2ab91b6b498242b9e4675dd5015aeac9f5b2d52760f1c071c1d1924 +lib/codeql/rust/elements/internal/generated/ParentChild.qll b58a01c0d2cca085a77ed7a98a0318cfc20450e48c64124f8a875ae45416ac25 92e9b6434629508868a5cf69c1236729409dcab4c4cda63af537d591a840127a 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 @@ -595,7 +595,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 bc03ef3af94aa43287e054f731c283eec1610e319201ab2a78249c2a7ee22413 30278f463569b5f7b5011f61b9cfe111449829cbb32b251e5c5e58cd438b5978 +lib/codeql/rust/elements/internal/generated/Raw.qll f9370ca510d47144f7a22255341dc0f45407fcc8c22d42a74dbc423a68a36635 2301eb8a7b4d59c05413e07f95fe9ac2d0f42d3673d9b7e809bd49a6c1bee506 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 @@ -612,7 +612,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 34a4cdb9f4a93414499a30aeeaad1b3388f2341c982af5688815c3b0a0e9c57b 3c8354336eff68d580b804600df9abf49ee5ee10ec076722089087820cefe731 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 816aebf8f56e179f5f0ba03e80d257ee85459ea757392356a0af6dbd0cd9ef5e 6aa51cdcdc8d93427555fa93f0e84afdfbbd4ffc8b8d378ae4a22b5b6f94f48b -lib/codeql/rust/elements/internal/generated/Struct.qll 869ef9510b92f0e80455fd9e9640c33304035937a7ee4457a03191e4ca8a9065 401932fd7984dec3946cb0d49752d1ec86f6f2f819de2f5cdc36f5ce3f035690 +lib/codeql/rust/elements/internal/generated/Struct.qll ce40dd64d61f6ca0a8425019dd8368ca3d79d3a238d7afb9b3f1c86c2c95c1b5 214946f9cdbf134a181d98b02bb630504ad524541febc4c0b8490a9a6fab8750 lib/codeql/rust/elements/internal/generated/StructExpr.qll c6d861eaa0123b103fd9ffd2485423419ef9b7e0b4af9ed2a2090d8ec534f65d 50da99ee44771e1239ed8919f711991dd3ec98589fbe49b49b68c88074a07d74 lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -621,7 +621,7 @@ 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 6835c645faf2eac3dfd2d29dbdd3088ff936afd5910bf7c48ff872d6a1fa6051 9a04caa1e973b8b38708a86b4d85f9b30a0006b7688a286f225c548b81df8935 +lib/codeql/rust/elements/internal/generated/Synth.qll ef45765a8e077bc0168ec226b3b84902acd8d774cd7af637e0b1b1b16ff1deaf 58dd7076517e5d680c6d8b0489530bd8e1d15d629a233f1742cca3f028d5ec81 lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -643,7 +643,7 @@ lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll d8d21121ebdd274a99e466866a89efe3a6a7bb43fecb770ce35a1d7ac69d07c9 9f917b82bdc4c7fe2eecfb219cb1302ac05020df0cf09bb054f4a7fcfd7788ca +lib/codeql/rust/elements/internal/generated/Union.qll 328d714dba5b19f8bf94c17efee21c9ca9e693a3a568a2afed3dc0d03fcc3f50 9be7039ce837a3217e97f64c8667d78e4d69e19c8fe7c19198389acb83a15957 lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a diff --git a/rust/ql/lib/codeql/rust/elements/Enum.qll b/rust/ql/lib/codeql/rust/elements/Enum.qll index 2ff0cea0552..9d52b558f53 100644 --- a/rust/ql/lib/codeql/rust/elements/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/Enum.qll @@ -7,7 +7,6 @@ private import internal.EnumImpl import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index d05d5fe5fd5..27b6a37b791 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -8,7 +8,6 @@ import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index 12d495880c6..4bf596f4d7a 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -7,7 +7,6 @@ private import internal.UnionImpl import codeql.rust.elements.Adt import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.VariantDef diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll index fafb2de98e7..b829ead848c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Enum.qll @@ -9,7 +9,6 @@ private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility @@ -30,7 +29,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Enum` class directly. * Use the subclass `Enum`, where the following predicates are available. */ - class Enum extends Synth::TEnum, AdtImpl::Adt, ItemImpl::Item { + class Enum extends Synth::TEnum, AdtImpl::Adt { override string getAPrimaryQlClass() { result = "Enum" } /** 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 f7db87c452b..a0ccc4d728b 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -3937,13 +3937,12 @@ private module Impl { private Element getImmediateChildOfEnum(Enum e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bItem, int n, int nAttr, int nGenericParamList, int nName, - int nVariantList, int nVisibility, int nWhereClause + int b, int bAdt, int n, int nAttr, int nGenericParamList, int nName, int nVariantList, + int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and - n = bItem and + n = bAdt and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and @@ -3955,8 +3954,6 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) - or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" or @@ -4023,14 +4020,13 @@ private module Impl { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nFieldList, - int nGenericParamList, int nName, int nVisibility, int nWhereClause + int b, int bAdt, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, + int nName, int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and bVariantDef = - bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and n = bVariantDef and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nFieldList = nAttr + 1 and @@ -4043,9 +4039,7 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) - or - result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) + result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" @@ -4069,14 +4063,13 @@ private module Impl { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bItem, int bVariantDef, int n, int nAttr, int nGenericParamList, - int nName, int nStructFieldList, int nVisibility, int nWhereClause + int b, int bAdt, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, + int nStructFieldList, int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - bItem = bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfItem(e, i, _)) | i) and bVariantDef = - bItem + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and + bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and n = bVariantDef and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nGenericParamList = nAttr + 1 and @@ -4089,9 +4082,7 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfItem(e, index - bAdt, partialPredicateCall) - or - result = getImmediateChildOfVariantDef(e, index - bItem, partialPredicateCall) + result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" 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 2baeda04c11..8835f4588c0 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -4499,7 +4499,7 @@ module Raw { * enum E {A, B(i32), C {x: i32}} * ``` */ - class Enum extends @enum, Adt, Item { + class Enum extends @enum, Adt { override string toString() { result = "Enum" } /** @@ -4607,7 +4607,7 @@ module Raw { * } * ``` */ - class Struct extends @struct, Adt, Item, VariantDef { + class Struct extends @struct, Adt, VariantDef { override string toString() { result = "Struct" } /** @@ -4650,7 +4650,7 @@ module Raw { * union U { f1: u32, f2: f32 } * ``` */ - class Union extends @union, Adt, Item, VariantDef { + class Union extends @union, Adt, VariantDef { override string toString() { result = "Union" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 7c46059a404..8589273ff4c 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -10,7 +10,6 @@ import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility @@ -32,7 +31,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, AdtImpl::Adt, ItemImpl::Item, VariantDefImpl::VariantDef { + class Struct extends Synth::TStruct, AdtImpl::Adt, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Struct" } /** 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 d2196c44add..28300de4580 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -775,9 +775,9 @@ module Synth { * INTERNAL: Do not use. */ class TItem = - TAdt or TConst or TEnum or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or - TMacroDef or TMacroRules or TModule or TStatic or TStruct or TTrait or TTraitAlias or - TTypeAlias or TUnion or TUse; + TAdt or TConst or TExternBlock or TExternCrate or TFunction or TImpl or TMacroCall or + TMacroDef or TMacroRules or TModule or TStatic or TTrait or TTraitAlias or TTypeAlias or + TUse; /** * INTERNAL: Do not use. @@ -2234,8 +2234,6 @@ module Synth { or result = convertConstFromRaw(e) or - result = convertEnumFromRaw(e) - or result = convertExternBlockFromRaw(e) or result = convertExternCrateFromRaw(e) @@ -2254,16 +2252,12 @@ module Synth { or result = convertStaticFromRaw(e) or - result = convertStructFromRaw(e) - or result = convertTraitFromRaw(e) or result = convertTraitAliasFromRaw(e) or result = convertTypeAliasFromRaw(e) or - result = convertUnionFromRaw(e) - or result = convertUseFromRaw(e) } @@ -3848,8 +3842,6 @@ module Synth { or result = convertConstToRaw(e) or - result = convertEnumToRaw(e) - or result = convertExternBlockToRaw(e) or result = convertExternCrateToRaw(e) @@ -3868,16 +3860,12 @@ module Synth { or result = convertStaticToRaw(e) or - result = convertStructToRaw(e) - or result = convertTraitToRaw(e) or result = convertTraitAliasToRaw(e) or result = convertTypeAliasToRaw(e) or - result = convertUnionToRaw(e) - or result = convertUseToRaw(e) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index 69851628ae8..88040c4ad13 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -9,7 +9,6 @@ private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AdtImpl::Impl as AdtImpl import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList -import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl @@ -31,7 +30,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, AdtImpl::Adt, ItemImpl::Item, VariantDefImpl::VariantDef { + class Union extends Synth::TUnion, AdtImpl::Adt, VariantDefImpl::VariantDef { override string getAPrimaryQlClass() { result = "Union" } /** diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 3a929c908b6..9d208615c27 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -1919,7 +1919,6 @@ infer_type_reprs( @item = @adt | @const -| @enum | @extern_block | @extern_crate | @function @@ -1929,11 +1928,9 @@ infer_type_reprs( | @macro_rules | @module | @static -| @struct | @trait | @trait_alias | @type_alias -| @union | @use ; diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index c59cd01a434..d18b23395c0 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -1040,7 +1040,7 @@ class _: """ -@annotate(Enum) +@annotate(Enum, replace_bases={Item: None}) # still an Item via Adt class _: """ An enum declaration. @@ -1835,7 +1835,7 @@ class _: """ -@annotate(Struct) +@annotate(Struct, replace_bases={Item: None}) # still an Item via Adt class _: """ A Struct. For example: @@ -2014,7 +2014,7 @@ class _: """ -@annotate(Union) +@annotate(Union, replace_bases={Item: None}) # still an Item via Adt class _: """ A union declaration. From 02b6e856a39d4b3045857b86297bfc2ff1561c1f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 15:59:18 +0200 Subject: [PATCH 179/340] Rust: remove `VariantDef` --- rust/ast-generator/src/main.rs | 6 +- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 67 +------------------ rust/ql/.generated.list | 23 +++---- rust/ql/.gitattributes | 3 - rust/ql/lib/codeql/rust/elements.qll | 1 - rust/ql/lib/codeql/rust/elements/Struct.qll | 1 - rust/ql/lib/codeql/rust/elements/Union.qll | 1 - rust/ql/lib/codeql/rust/elements/Variant.qll | 1 - .../lib/codeql/rust/elements/VariantDef.qll | 9 --- .../rust/elements/internal/VariantDefImpl.qll | 16 ----- .../internal/generated/ParentChild.qll | 45 +++---------- .../rust/elements/internal/generated/Raw.qll | 11 +-- .../elements/internal/generated/Struct.qll | 3 +- .../elements/internal/generated/Synth.qll | 37 +--------- .../elements/internal/generated/Union.qll | 3 +- .../elements/internal/generated/Variant.qll | 3 +- .../internal/generated/VariantDef.qll | 21 ------ rust/ql/lib/rust.dbscheme | 7 -- rust/schema/annotations.py | 2 +- rust/schema/ast.py | 9 +-- 21 files changed, 39 insertions(+), 232 deletions(-) delete mode 100644 rust/ql/lib/codeql/rust/elements/VariantDef.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/VariantDefImpl.qll delete mode 100644 rust/ql/lib/codeql/rust/elements/internal/generated/VariantDef.qll diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 35437777c21..8c0ce955c00 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -385,8 +385,8 @@ struct ExtractorInfo { } fn enum_to_extractor_info(node: &AstEnumSrc) -> Option { - if matches!(node.name.as_str(), "VariantDef" | "Adt") { - // these are not used as types of fields, so we don't need to generate extractors for them + if node.name == "Adt" { + // no fields have `Adt` type, so we don't need extraction for it return None; } Some(ExtractorEnumInfo { @@ -484,6 +484,8 @@ fn main() -> anyhow::Result<()> { .parse() .expect("Failed to parse grammar"); let mut grammar = codegen::grammar::lower(&grammar); + // remove the VariantDef enum, there is no use for it at the moment + grammar.enums.retain(|e| e.name != "VariantDef"); let mut super_types: BTreeMap> = BTreeMap::new(); for node in &grammar.enums { diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 356bff6824f..7daea41e313 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 78da6fde6bc6f66baf63b298b3d565d6a057b54e891f739a3510aff4563a9f1b 78da6fde6bc6f66baf63b298b3d565d6a057b54e891f739a3510aff4563a9f1b +top.rs 4cd878b17ebc18c28cbaac2eb77a7401d60c0870247877c4c1dd155c31342482 4cd878b17ebc18c28cbaac2eb77a7401d60c0870247877c4c1dd155c31342482 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index 88fb5167b2a..f2a78eb40ed 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -3227,42 +3227,6 @@ impl From> for trap::Label { } } -#[derive(Debug)] -pub struct VariantDef { - _unused: () -} - -impl trap::TrapClass for VariantDef { - fn class_name() -> &'static str { "VariantDef" } -} - -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme VariantDef 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 VariantDef 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 VariantDef is a subclass of Element - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct VariantList { pub id: trap::TrapId, @@ -8646,9 +8610,9 @@ impl trap::TrapClass for Variant { fn class_name() -> &'static str { "Variant" } } -impl From> for trap::Label { +impl From> for trap::Label { fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Variant is a subclass of VariantDef + // SAFETY: this is safe because in the dbscheme Variant is a subclass of Addressable unsafe { Self::from_untyped(value.as_untyped()) } @@ -8682,15 +8646,6 @@ impl From> for trap::Label { } } -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Variant is a subclass of Addressable - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct WildcardPat { pub id: trap::TrapId, @@ -11551,15 +11506,6 @@ impl From> for trap::Label { } } -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Struct is a subclass of VariantDef - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct Union { pub id: trap::TrapId, @@ -11666,15 +11612,6 @@ impl From> for trap::Label { } } -impl From> for trap::Label { - fn from(value: trap::Label) -> Self { - // SAFETY: this is safe because in the dbscheme Union is a subclass of VariantDef - unsafe { - Self::from_untyped(value.as_untyped()) - } - } -} - #[derive(Debug)] pub struct WhileExpr { pub id: trap::TrapId, diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 4aa4e6d7da0..896aeb4e316 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -146,7 +146,7 @@ lib/codeql/rust/elements/SourceFile.qll 0b6a3e58767c07602b19975009a2ad53ecf1fd72 lib/codeql/rust/elements/Static.qll a6d73152ddecb53a127aa3a4139f97007cd77b46203691c287600aa7200b8beb 547197e794803b3ea0c0e220f050980adec815a16fdef600f98ff795aa77f677 lib/codeql/rust/elements/Stmt.qll 532b12973037301246daf7d8c0177f734202f43d9261c7a4ca6f5080eea8ca64 b838643c4f2b4623d2c816cddad0e68ca3e11f2879ab7beaece46f489ec4b1f3 lib/codeql/rust/elements/StmtList.qll e874859ce03672d0085e47e0ca5e571b92b539b31bf0d5a8802f9727bef0c6b0 e5fe83237f713cdb57c446a6e1c20f645c2f49d9f5ef2c984032df83acb3c0de -lib/codeql/rust/elements/Struct.qll 6ae1ce11044a1f6bf3150ddce947c1be17e462613edf7ea4fe7d861aa3dbe0d1 043ef682d71f31e8808962032c05ab3045e7cbc8663ec7e06dc9255e12e53c12 +lib/codeql/rust/elements/Struct.qll 297d3ea732fc7fbb8b8fb5479c1873ce84705146853ff752c84a6f70af12b923 3df0e5fd50a910a0b5611c3a860a1d7c318f6925c3a0727006d91840caf04812 lib/codeql/rust/elements/StructExpr.qll af9059c01a97755e94f1a8b60c66d9c7663ed0705b2845b086b8953f16019fab 2d33d86b035a15c1b31c3e07e0e74c4bbe57a71c5a55d60e720827814e73b7ba lib/codeql/rust/elements/StructExprField.qll 3eb9f17ecd1ad38679689eb4ecc169d3a0b5b7a3fc597ae5a957a7aea2f74e4f 8fcd26f266f203004899a60447ba16e7eae4e3a654fbec7f54e26857730ede93 lib/codeql/rust/elements/StructExprFieldList.qll 6efb2ec4889b38556dc679bb89bbd4bd76ed6a60014c41f8e232288fc23b2d52 dc867a0a4710621e04b36bbec7d317d6f360e0d6ac68b79168c8b714babde31d @@ -175,14 +175,13 @@ lib/codeql/rust/elements/TypeRepr.qll ea41b05ef0aaac71da460f9a6a8331cf98166f2c38 lib/codeql/rust/elements/UnderscoreExpr.qll 233661b82b87c8cda16d8f2e17965658c3dc6b69efb23cb8eb9c4f50c68521e0 8edff8e80aac2ecf83a6b58f310cab688cbaeea0a0e68a298b644e565960cc74 lib/codeql/rust/elements/Unextracted.qll 12e60c79ef5b94d72b579b19970622e7b73822ebc13fbcfedfe953527ab1ac36 ec015db2eb12c3c82693ddc71d32d9ab9ef7a958e741e2510681bb707ceca23e lib/codeql/rust/elements/Unimplemented.qll bf624d28163e5c99accda16c0c99f938bec4a3b1b920a463e86fc8529ff5ff02 013bc7777298d250338f835cd494b5a8accea2d6a4f9561851f283ac129a446b -lib/codeql/rust/elements/Union.qll 3e277155fc7ea77f645cb5c5b227efd1474aa745b12a8be228eab694536c49dc a4bf9b54b8262517371000a842e5fdcdaabd324e52afd7919bbf76bc887b18b6 +lib/codeql/rust/elements/Union.qll 13f7f62e98b117d18e79db5f6e6535447bc069ebb08f7cdb390b012678b7e085 bd8c37bc0ff09926753bc250e1848ed25923f224829d0136afc27b749eaddd1f lib/codeql/rust/elements/Use.qll fdcf70574403c2f219353211b6930f2f9bc79f41c2594e07548de5a8c6cbb24d e41f2b689fcbeb7b84c7ba8d09592f7561626559318642b73574bbac83f74546 lib/codeql/rust/elements/UseBoundGenericArg.qll f16903f8fff676d3700eaad5490804624391141472ecc3166ccb1f70c794c120 5efda98088d096b42f53ceccae78c05f15c6953525b514d849681cb2cf65b147 lib/codeql/rust/elements/UseBoundGenericArgs.qll d9821a82a1d57e609fdc5e79d65e9a88b0088f51d03927e09f41b6931d3484ab 181483a95e22622c7cee07cce87e9476053f824a82e67e2bdecabf5a39f672ad lib/codeql/rust/elements/UseTree.qll e67c148f63668319c37914a46ff600692de477242a0129fa1bb9839754c0f830 de9b39d3d078d51ec9130db6579bff13e6297e60556a7214a5c51cbf89d92791 lib/codeql/rust/elements/UseTreeList.qll 92ebfee4392a485b38fb3265fdede7c8f2ed1dbe2ab860aa61b1497c33874d25 a4e677455d20838e422e430eebd73d0a488e34e8c960f375fef7b99e79d4c911 -lib/codeql/rust/elements/Variant.qll 9377fa841779e8283df08432bf868faf161c36cc03f332c52ae219422cb9f959 2440771a5a1ef28927fe6fdc81b0e95c91aae18911739c89753fbadce7ff6cc9 -lib/codeql/rust/elements/VariantDef.qll fb14bf049aba1fc0b62d156e69b7965b6526d12c9150793f1d38b0f8fb8a0a8f 71453a80a3c60288242c5d86ab81ef4d027a3bc870ceffa62160864d32a7d7ad +lib/codeql/rust/elements/Variant.qll 7895461fa728f6c3a7293799c5e6b965b413b679566dcbd40bbe2609db8b6cde b0413547365a301bd9fbb6b266757f956394abad0a77f0e424446e23ec7d83e9 lib/codeql/rust/elements/VariantList.qll 39803fbb873d48202c2a511c00c8eafede06e519894e0fd050c2a85bf5f4aa73 1735f89b2b8f6d5960a276b87ea10e4bb8c848c24a5d5fad7f3add7a4d94b7da lib/codeql/rust/elements/Visibility.qll aa69e8a3fd3b01f6fea0ae2d841a2adc51f4e46dcfc9f8f03c34fbe96f7e24e7 0d475e97e07b73c8da2b53555085b8309d8dc69c113bcb396fc901361dbfe6b8 lib/codeql/rust/elements/WhereClause.qll 4e28e11ceec835a093e469854a4b615e698309cdcbc39ed83810e2e4e7c5953f 4736baf689b87dd6669cb0ef9e27eb2c0f2776ce7f29d7693670bbcea06eb4e4 @@ -444,7 +443,6 @@ lib/codeql/rust/elements/internal/UseTreeConstructor.qll 3e6e834100fcc7249f8a20f lib/codeql/rust/elements/internal/UseTreeListConstructor.qll 973577da5d7b58eb245f108bd1ae2fecc5645f2795421dedf7687b067a233003 f41e5e3ffcb2a387e5c37f56c0b271e8dc20428b6ff4c63e1ee42fcfa4e67d0a lib/codeql/rust/elements/internal/UseTreeListImpl.qll a155fbfeb9792d511e1f3331d6756ccff6cca18c7ca4cac0faa7184cbb2e0dd4 0eeb1343b2284c02f9a0f0237267c77857a3a3a0f57df8277437313fde38d1b7 lib/codeql/rust/elements/internal/VariantConstructor.qll 0297d4a9a9b32448d6d6063d308c8d0e7a067d028b9ec97de10a1d659ee2cfdd 6a4bee28b340e97d06b262120fd39ab21717233a5bcc142ba542cb1b456eb952 -lib/codeql/rust/elements/internal/VariantDefImpl.qll 5530c04b8906d2947ec9c79fc17a05a2557b01a521dd4ca8a60518b78d13867b 3971558e1c907d8d2ef174b10f911e61b898916055a8173788e6f0b98869b144 lib/codeql/rust/elements/internal/VariantListConstructor.qll c841fb345eb46ea3978a0ed7a689f8955efc9178044b140b74d98a6bcd0c926a c9e52d112abdba2b60013fa01a944c8770766bf7368f9878e6b13daaa4eed446 lib/codeql/rust/elements/internal/VariantListImpl.qll 4ceeda617696eb547c707589ba26103cf4c5c3d889955531be24cbf224e79dff 4258196c126fd2fad0e18068cb3d570a67034a8b26e2f13f8223d7f1a246d1a4 lib/codeql/rust/elements/internal/VisibilityConstructor.qll 1fd30663d87945f08d15cfaca54f586a658f26b7a98ea45ac73a35d36d4f65d0 6ddaf11742cc8fbbe03af2aa578394041ae077911e62d2fa6c885ae0543ba53a @@ -580,7 +578,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 b58a01c0d2cca085a77ed7a98a0318cfc20450e48c64124f8a875ae45416ac25 92e9b6434629508868a5cf69c1236729409dcab4c4cda63af537d591a840127a +lib/codeql/rust/elements/internal/generated/ParentChild.qll ce0c542d50e1b9a25132d4085dc2495dacaf152b5b960772c08977bcad297502 7015c8371a39b312635fced11440da95ef7a4e50c1b7bc990cd64e2ea4fcf5ea 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 @@ -595,7 +593,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 f9370ca510d47144f7a22255341dc0f45407fcc8c22d42a74dbc423a68a36635 2301eb8a7b4d59c05413e07f95fe9ac2d0f42d3673d9b7e809bd49a6c1bee506 +lib/codeql/rust/elements/internal/generated/Raw.qll e9071854089a126078be1f429bd518820eb5c80d8912ece4f77a34a865270747 3ba195ff7bce744e1290c14ff7330a9e096cd9f2850c9383f6baed8750765a76 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 @@ -612,7 +610,7 @@ lib/codeql/rust/elements/internal/generated/SourceFile.qll 4bc95c88b49868d1da1a8 lib/codeql/rust/elements/internal/generated/Static.qll 34a4cdb9f4a93414499a30aeeaad1b3388f2341c982af5688815c3b0a0e9c57b 3c8354336eff68d580b804600df9abf49ee5ee10ec076722089087820cefe731 lib/codeql/rust/elements/internal/generated/Stmt.qll 8473ff532dd5cc9d7decaddcd174b94d610f6ca0aec8e473cc051dad9f3db917 6ef7d2b5237c2dbdcacbf7d8b39109d4dc100229f2b28b5c9e3e4fbf673ba72b lib/codeql/rust/elements/internal/generated/StmtList.qll 816aebf8f56e179f5f0ba03e80d257ee85459ea757392356a0af6dbd0cd9ef5e 6aa51cdcdc8d93427555fa93f0e84afdfbbd4ffc8b8d378ae4a22b5b6f94f48b -lib/codeql/rust/elements/internal/generated/Struct.qll ce40dd64d61f6ca0a8425019dd8368ca3d79d3a238d7afb9b3f1c86c2c95c1b5 214946f9cdbf134a181d98b02bb630504ad524541febc4c0b8490a9a6fab8750 +lib/codeql/rust/elements/internal/generated/Struct.qll 999da1b46e40d6e03fd2338fea02429462877c329c5d1338618cbd886a81567e daa7ff7bd32c554462e0a1502d8319cb5e734e056d0564e06596e416e2b88e9d lib/codeql/rust/elements/internal/generated/StructExpr.qll c6d861eaa0123b103fd9ffd2485423419ef9b7e0b4af9ed2a2090d8ec534f65d 50da99ee44771e1239ed8919f711991dd3ec98589fbe49b49b68c88074a07d74 lib/codeql/rust/elements/internal/generated/StructExprField.qll 6bdc52ed325fd014495410c619536079b8c404e2247bd2435aa7685dd56c3833 501a30650cf813176ff325a1553da6030f78d14be3f84fea6d38032f4262c6b0 lib/codeql/rust/elements/internal/generated/StructExprFieldList.qll 298d33442d1054922d2f97133a436ee559f1f35b7708523284d1f7eee7ebf443 7febe38a79fadf3dcb53fb8f8caf4c2780f5df55a1f8336269c7b674d53c6272 @@ -621,7 +619,7 @@ 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 ef45765a8e077bc0168ec226b3b84902acd8d774cd7af637e0b1b1b16ff1deaf 58dd7076517e5d680c6d8b0489530bd8e1d15d629a233f1742cca3f028d5ec81 +lib/codeql/rust/elements/internal/generated/Synth.qll ebacd7cf6d7fb784cc77b75032608a622627e6f5e635aa70707df167ce3dc510 0e8ed9d5185afde22d263f3745e5029f23a1041690a80d0df916470823abdf43 lib/codeql/rust/elements/internal/generated/SynthConstructors.qll bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 bcc7f617b775ac0c7f04b1cc333ed7cc0bd91f1fabc8baa03c824d1df03f6076 lib/codeql/rust/elements/internal/generated/Token.qll 77a91a25ca5669703cf3a4353b591cef4d72caa6b0b9db07bb9e005d69c848d1 2fdffc4882ed3a6ca9ac6d1fb5f1ac5a471ca703e2ffdc642885fa558d6e373b lib/codeql/rust/elements/internal/generated/TokenTree.qll 1a3c4f5f30659738641abdd28cb793dab3cfde484196b59656fc0a2767e53511 de2ebb210c7759ef7a6f7ee9f805e1cac879221287281775fc80ba34a5492edf @@ -643,14 +641,13 @@ lib/codeql/rust/elements/internal/generated/TypeRepr.qll 1e7b9d2ddab86e35dad7c31 lib/codeql/rust/elements/internal/generated/UnderscoreExpr.qll b3780c99c5d57159bef4c6bd2fd8ec44ebd1854c892c1ca776c740f71249e58c 2fd451cbf0a779e8042e439882e7d9cadc19d1e596df3bbb086d16f2596407c7 lib/codeql/rust/elements/internal/generated/Unextracted.qll 01563dfd769d6dc3c6b8a40d9a4dc0d99a3b6a0c6725c180d2bf4d7633929a17 a93ce90f8c03f4305e59de9c63f089fc7935298fc9a73d091d76933cf63e790c lib/codeql/rust/elements/internal/generated/Unimplemented.qll a3eb304781991bff1227de1e4422b68bf91e7b344e4f6c9e874b324e82a35e60 6bc4839fda3850a56dc993b79ef9ba921008395c8432b184e14438fba4566f21 -lib/codeql/rust/elements/internal/generated/Union.qll 328d714dba5b19f8bf94c17efee21c9ca9e693a3a568a2afed3dc0d03fcc3f50 9be7039ce837a3217e97f64c8667d78e4d69e19c8fe7c19198389acb83a15957 +lib/codeql/rust/elements/internal/generated/Union.qll 456504e6a32991ba17ca65f97636f4dfb86c758c7f8509aaca1b0d0432231dfe c96068edfec3e0755a7726426a10996455ee9f0f2d678af258719f1943a3063e lib/codeql/rust/elements/internal/generated/Use.qll cf95b5c4756b25bee74113207786e37464ffbc0fb5f776a04c651300afc53753 1fe26b3904db510184cb688cb0eeb0a8dbac7ac15e27a3b572d839743c738393 lib/codeql/rust/elements/internal/generated/UseBoundGenericArg.qll 69162794e871291545ea04f61259b2d000671a96f7ca129f7dd9ed6e984067c4 31de9ebc0634b38e2347e0608b4ea888892f1f2732a2892464078cd8a07b4ee8 lib/codeql/rust/elements/internal/generated/UseBoundGenericArgs.qll 2cc8ab0068b7bf44ca17a62b32a8dd1d89cd743532c8a96b262b164fd81b0c36 347e7709a0f5ace197beb6827f6cf04a31ff68ff2dff3707914c6b910658d00a lib/codeql/rust/elements/internal/generated/UseTree.qll 3d7cbcc8ae76068b8f660c7d5b81b05595026043015cd6b4d42a60ed4c165811 b9f0bcf82feb31f31406e787670fee93e1aa0966bcc0e4cc285c342e88793e4e lib/codeql/rust/elements/internal/generated/UseTreeList.qll 38efaa569b76ca79be047703279388e8f64583a126b98078fbbb6586e0c6eb56 1623a50fd2d3b1e4b85323ad73dd655172f7cbc658d3506aaa6b409e9ebe576e -lib/codeql/rust/elements/internal/generated/Variant.qll 56ef12f3be672a467b443f8e121ba075551c88fe42dd1428e6fa7fc5affb6ec2 fd66722fd401a47305e0792458528a6af2437c97355a6a624727cf6632721a89 -lib/codeql/rust/elements/internal/generated/VariantDef.qll 3a579b21a13bdd6be8cddaa43a6aa0028a27c4e513caa003a6304e160fc53846 1ca1c41ed27660b17fbfb44b67aa8db087ea655f01bac29b57bb19fa259d07a2 +lib/codeql/rust/elements/internal/generated/Variant.qll fa6909715133049b3dba4622e6262fa30c4a9478b6219ec4fd12e07c58750709 71fc2ddac97fc4c4e6b92a13ee217cccc81dffc7c12295b6bc97c56ad25a92cc lib/codeql/rust/elements/internal/generated/VariantList.qll 3f70bfde982e5c5e8ee45da6ebe149286214f8d40377d5bc5e25df6ae8f3e2d1 22e5f428bf64fd3fd21c537bfa69a46089aad7c363d72c6566474fbe1d75859e lib/codeql/rust/elements/internal/generated/Visibility.qll af1069733c0120fae8610b3ebbcdcebe4b4c9ce4c3e3d9be3f82a93541873625 266106bdff4d7041d017871d755c011e7dd396c5999803d9e46725b6a03a2458 lib/codeql/rust/elements/internal/generated/WhereClause.qll aec72d358689d99741c769b6e8e72b92c1458138c097ec2380e917aa68119ff0 81bb9d303bc0c8d2513dc7a2b8802ec15345b364e6c1e8b300f7860aac219c36 @@ -659,7 +656,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 34c5c8e6e25cce86f0617d552f788eb30ad8bb24fbc43723af962ce9cdc7d177 34c5c8e6e25cce86f0617d552f788eb30ad8bb24fbc43723af962ce9cdc7d177 +lib/codeql/rust/elements.qll 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871bd78b51997d3cffd969105e5fdd 2f936b6ca005c6157c755121584410c03e4a3949c23bee302fbe05ee10ce118f test/extractor-tests/generated/Abi/Abi_getAbiString.ql a496762fcec5a0887b87023bbf93e9b650f02e20113e25c44d6e4281ae8f5335 14109c7ce11ba25e3cd6e7f1b3fcb4cb00622f2a4eac91bfe43145c5f366bc52 test/extractor-tests/generated/ArgList/ArgList.ql e412927756e72165d0e7c5c9bd3fca89d08197bbf760db8fb7683c64bb2229bc 043dba8506946fbb87753e22c387987d7eded6ddb963aa067f9e60ef9024d684 diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index e847ecd7644..4339aa3dae8 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -184,7 +184,6 @@ /lib/codeql/rust/elements/UseTree.qll linguist-generated /lib/codeql/rust/elements/UseTreeList.qll linguist-generated /lib/codeql/rust/elements/Variant.qll linguist-generated -/lib/codeql/rust/elements/VariantDef.qll linguist-generated /lib/codeql/rust/elements/VariantList.qll linguist-generated /lib/codeql/rust/elements/Visibility.qll linguist-generated /lib/codeql/rust/elements/WhereClause.qll linguist-generated @@ -446,7 +445,6 @@ /lib/codeql/rust/elements/internal/UseTreeListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/UseTreeListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/VariantConstructor.qll linguist-generated -/lib/codeql/rust/elements/internal/VariantDefImpl.qll linguist-generated /lib/codeql/rust/elements/internal/VariantListConstructor.qll linguist-generated /lib/codeql/rust/elements/internal/VariantListImpl.qll linguist-generated /lib/codeql/rust/elements/internal/VisibilityConstructor.qll linguist-generated @@ -652,7 +650,6 @@ /lib/codeql/rust/elements/internal/generated/UseTree.qll linguist-generated /lib/codeql/rust/elements/internal/generated/UseTreeList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Variant.qll linguist-generated -/lib/codeql/rust/elements/internal/generated/VariantDef.qll linguist-generated /lib/codeql/rust/elements/internal/generated/VariantList.qll linguist-generated /lib/codeql/rust/elements/internal/generated/Visibility.qll linguist-generated /lib/codeql/rust/elements/internal/generated/WhereClause.qll linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements.qll b/rust/ql/lib/codeql/rust/elements.qll index 0ae5e4a9514..cd44985675f 100644 --- a/rust/ql/lib/codeql/rust/elements.qll +++ b/rust/ql/lib/codeql/rust/elements.qll @@ -187,7 +187,6 @@ import codeql.rust.elements.UseBoundGenericArgs import codeql.rust.elements.UseTree import codeql.rust.elements.UseTreeList import codeql.rust.elements.Variant -import codeql.rust.elements.VariantDef import codeql.rust.elements.VariantList import codeql.rust.elements.Visibility import codeql.rust.elements.WhereClause diff --git a/rust/ql/lib/codeql/rust/elements/Struct.qll b/rust/ql/lib/codeql/rust/elements/Struct.qll index 27b6a37b791..7627f866f05 100644 --- a/rust/ql/lib/codeql/rust/elements/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/Struct.qll @@ -9,7 +9,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList import codeql.rust.elements.Name -import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility import codeql.rust.elements.WhereClause diff --git a/rust/ql/lib/codeql/rust/elements/Union.qll b/rust/ql/lib/codeql/rust/elements/Union.qll index 4bf596f4d7a..988a1cf9799 100644 --- a/rust/ql/lib/codeql/rust/elements/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/Union.qll @@ -9,7 +9,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility import codeql.rust.elements.WhereClause diff --git a/rust/ql/lib/codeql/rust/elements/Variant.qll b/rust/ql/lib/codeql/rust/elements/Variant.qll index 5afa140923b..dfe5199f159 100644 --- a/rust/ql/lib/codeql/rust/elements/Variant.qll +++ b/rust/ql/lib/codeql/rust/elements/Variant.qll @@ -9,7 +9,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.Expr import codeql.rust.elements.FieldList import codeql.rust.elements.Name -import codeql.rust.elements.VariantDef import codeql.rust.elements.Visibility /** diff --git a/rust/ql/lib/codeql/rust/elements/VariantDef.qll b/rust/ql/lib/codeql/rust/elements/VariantDef.qll deleted file mode 100644 index bafb396c29d..00000000000 --- a/rust/ql/lib/codeql/rust/elements/VariantDef.qll +++ /dev/null @@ -1,9 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the public class `VariantDef`. - */ - -private import internal.VariantDefImpl -import codeql.rust.elements.AstNode - -final class VariantDef = Impl::VariantDef; diff --git a/rust/ql/lib/codeql/rust/elements/internal/VariantDefImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/VariantDefImpl.qll deleted file mode 100644 index 21ab1f20d4e..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/VariantDefImpl.qll +++ /dev/null @@ -1,16 +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 `VariantDef`. - * - * INTERNAL: Do not use. - */ - -private import codeql.rust.elements.internal.generated.VariantDef - -/** - * INTERNAL: This module contains the customizable definition of `VariantDef` and should not - * be referenced directly. - */ -module Impl { - class VariantDef extends Generated::VariantDef { } -} 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 a0ccc4d728b..8272535ff4f 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -1289,19 +1289,6 @@ private module Impl { ) } - private Element getImmediateChildOfVariantDef(VariantDef e, int index, string partialPredicateCall) { - exists(int b, int bAstNode, int n | - b = 0 and - bAstNode = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAstNode(e, i, _)) | i) and - n = bAstNode and - ( - none() - or - result = getImmediateChildOfAstNode(e, index - b, partialPredicateCall) - ) - ) - } - private Element getImmediateChildOfVariantList( VariantList e, int index, string partialPredicateCall ) { @@ -3074,14 +3061,12 @@ private module Impl { private Element getImmediateChildOfVariant(Variant e, int index, string partialPredicateCall) { exists( - int b, int bVariantDef, int bAddressable, int n, int nAttr, int nDiscriminant, int nFieldList, - int nName, int nVisibility + int b, int bAddressable, int n, int nAttr, int nDiscriminant, int nFieldList, int nName, + int nVisibility | b = 0 and - bVariantDef = - b + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and bAddressable = - bVariantDef + 1 + max(int i | i = -1 or exists(getImmediateChildOfAddressable(e, i, _)) | i) and + b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAddressable(e, i, _)) | i) and n = bAddressable and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nDiscriminant = nAttr + 1 and @@ -3091,9 +3076,7 @@ private module Impl { ( none() or - result = getImmediateChildOfVariantDef(e, index - b, partialPredicateCall) - or - result = getImmediateChildOfAddressable(e, index - bVariantDef, partialPredicateCall) + result = getImmediateChildOfAddressable(e, index - b, partialPredicateCall) or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" @@ -4020,14 +4003,12 @@ private module Impl { private Element getImmediateChildOfStruct(Struct e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bVariantDef, int n, int nAttr, int nFieldList, int nGenericParamList, - int nName, int nVisibility, int nWhereClause + int b, int bAdt, int n, int nAttr, int nFieldList, int nGenericParamList, int nName, + int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - bVariantDef = - bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and - n = bVariantDef and + n = bAdt and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nFieldList = nAttr + 1 and nGenericParamList = nFieldList + 1 and @@ -4039,8 +4020,6 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) - or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" or @@ -4063,14 +4042,12 @@ private module Impl { private Element getImmediateChildOfUnion(Union e, int index, string partialPredicateCall) { exists( - int b, int bAdt, int bVariantDef, int n, int nAttr, int nGenericParamList, int nName, - int nStructFieldList, int nVisibility, int nWhereClause + int b, int bAdt, int n, int nAttr, int nGenericParamList, int nName, int nStructFieldList, + int nVisibility, int nWhereClause | b = 0 and bAdt = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAdt(e, i, _)) | i) and - bVariantDef = - bAdt + 1 + max(int i | i = -1 or exists(getImmediateChildOfVariantDef(e, i, _)) | i) and - n = bVariantDef and + n = bAdt and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nGenericParamList = nAttr + 1 and nName = nGenericParamList + 1 and @@ -4082,8 +4059,6 @@ private module Impl { or result = getImmediateChildOfAdt(e, index - b, partialPredicateCall) or - result = getImmediateChildOfVariantDef(e, index - bAdt, partialPredicateCall) - or result = e.getAttr(index - n) and partialPredicateCall = "Attr(" + (index - n).toString() + ")" or 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 8835f4588c0..50319f5a8f7 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -1370,11 +1370,6 @@ module Raw { UseTree getUseTree(int index) { use_tree_list_use_trees(this, index, result) } } - /** - * INTERNAL: Do not use. - */ - class VariantDef extends @variant_def, AstNode { } - /** * INTERNAL: Do not use. * A list of variants in an enum declaration. @@ -3523,7 +3518,7 @@ module Raw { * // ^ ^^^^^^ ^^^^^^^^^^^^ * ``` */ - class Variant extends @variant, VariantDef, Addressable { + class Variant extends @variant, Addressable { override string toString() { result = "Variant" } /** @@ -4607,7 +4602,7 @@ module Raw { * } * ``` */ - class Struct extends @struct, Adt, VariantDef { + class Struct extends @struct, Adt { override string toString() { result = "Struct" } /** @@ -4650,7 +4645,7 @@ module Raw { * union U { f1: u32, f2: f32 } * ``` */ - class Union extends @union, Adt, VariantDef { + class Union extends @union, Adt { override string toString() { result = "Union" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll index 8589273ff4c..8910d269169 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Struct.qll @@ -11,7 +11,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.FieldList import codeql.rust.elements.GenericParamList import codeql.rust.elements.Name -import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility import codeql.rust.elements.WhereClause @@ -31,7 +30,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Struct` class directly. * Use the subclass `Struct`, where the following predicates are available. */ - class Struct extends Synth::TStruct, AdtImpl::Adt, VariantDefImpl::VariantDef { + class Struct extends Synth::TStruct, AdtImpl::Adt { override string getAPrimaryQlClass() { result = "Struct" } /** 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 28300de4580..003d4fa9feb 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Synth.qll @@ -727,8 +727,8 @@ module Synth { TReturnTypeSyntax or TSourceFile or TStmt or TStmtList or TStructExprField or TStructExprFieldList or TStructField or TStructPatField or TStructPatFieldList or TToken or TTokenTree or TTupleField or TTypeBound or TTypeBoundList or TTypeRepr or - TUseBoundGenericArg or TUseBoundGenericArgs or TUseTree or TUseTreeList or TVariantDef or - TVariantList or TVisibility or TWhereClause or TWherePred; + TUseBoundGenericArg or TUseBoundGenericArgs or TUseTree or TUseTreeList or TVariantList or + TVisibility or TWhereClause or TWherePred; /** * INTERNAL: Do not use. @@ -850,11 +850,6 @@ module Synth { */ class TUseBoundGenericArg = TLifetime or TNameRef; - /** - * INTERNAL: Do not use. - */ - class TVariantDef = TStruct or TUnion or TVariant; - /** * INTERNAL: Do not use. * Converts a raw element to a synthesized `TAbi`, if possible. @@ -2056,8 +2051,6 @@ module Synth { or result = convertUseTreeListFromRaw(e) or - result = convertVariantDefFromRaw(e) - or result = convertVariantListFromRaw(e) or result = convertVisibilityFromRaw(e) @@ -2453,18 +2446,6 @@ module Synth { result = convertNameRefFromRaw(e) } - /** - * INTERNAL: Do not use. - * Converts a raw DB element to a synthesized `TVariantDef`, if possible. - */ - TVariantDef convertVariantDefFromRaw(Raw::Element e) { - result = convertStructFromRaw(e) - or - result = convertUnionFromRaw(e) - or - result = convertVariantFromRaw(e) - } - /** * INTERNAL: Do not use. * Converts a synthesized `TAbi` to a raw DB element, if possible. @@ -3664,8 +3645,6 @@ module Synth { or result = convertUseTreeListToRaw(e) or - result = convertVariantDefToRaw(e) - or result = convertVariantListToRaw(e) or result = convertVisibilityToRaw(e) @@ -4060,16 +4039,4 @@ module Synth { or result = convertNameRefToRaw(e) } - - /** - * INTERNAL: Do not use. - * Converts a synthesized `TVariantDef` to a raw DB element, if possible. - */ - Raw::Element convertVariantDefToRaw(TVariantDef e) { - result = convertStructToRaw(e) - or - result = convertUnionToRaw(e) - or - result = convertVariantToRaw(e) - } } diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll index 88040c4ad13..e42eed69263 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Union.qll @@ -11,7 +11,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.GenericParamList import codeql.rust.elements.Name import codeql.rust.elements.StructFieldList -import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility import codeql.rust.elements.WhereClause @@ -30,7 +29,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Union` class directly. * Use the subclass `Union`, where the following predicates are available. */ - class Union extends Synth::TUnion, AdtImpl::Adt, VariantDefImpl::VariantDef { + class Union extends Synth::TUnion, AdtImpl::Adt { override string getAPrimaryQlClass() { result = "Union" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Variant.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Variant.qll index 93d4fc6a416..7da69072953 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Variant.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Variant.qll @@ -11,7 +11,6 @@ import codeql.rust.elements.Attr import codeql.rust.elements.Expr import codeql.rust.elements.FieldList import codeql.rust.elements.Name -import codeql.rust.elements.internal.VariantDefImpl::Impl as VariantDefImpl import codeql.rust.elements.Visibility /** @@ -30,7 +29,7 @@ module Generated { * INTERNAL: Do not reference the `Generated::Variant` class directly. * Use the subclass `Variant`, where the following predicates are available. */ - class Variant extends Synth::TVariant, VariantDefImpl::VariantDef, AddressableImpl::Addressable { + class Variant extends Synth::TVariant, AddressableImpl::Addressable { override string getAPrimaryQlClass() { result = "Variant" } /** diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/VariantDef.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/VariantDef.qll deleted file mode 100644 index 3114f03cade..00000000000 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/VariantDef.qll +++ /dev/null @@ -1,21 +0,0 @@ -// generated by codegen, do not edit -/** - * This module provides the generated definition of `VariantDef`. - * 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.internal.AstNodeImpl::Impl as AstNodeImpl - -/** - * INTERNAL: This module contains the fully generated definition of `VariantDef` and should not - * be referenced directly. - */ -module Generated { - /** - * INTERNAL: Do not reference the `Generated::VariantDef` class directly. - * Use the subclass `VariantDef`, where the following predicates are available. - */ - class VariantDef extends Synth::TVariantDef, AstNodeImpl::AstNode { } -} diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index 9d208615c27..e019447231c 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -215,7 +215,6 @@ named_crates( | @use_bound_generic_args | @use_tree | @use_tree_list -| @variant_def | @variant_list | @visibility | @where_clause @@ -1161,12 +1160,6 @@ use_tree_list_use_trees( int use_tree: @use_tree ref ); -@variant_def = - @struct -| @union -| @variant -; - variant_lists( unique int id: @variant_list ); diff --git a/rust/schema/annotations.py b/rust/schema/annotations.py index d18b23395c0..5e953e0b515 100644 --- a/rust/schema/annotations.py +++ b/rust/schema/annotations.py @@ -2062,7 +2062,7 @@ class _: """ -@annotate(Variant, add_bases=(Addressable,)) +@annotate(Variant, replace_bases={AstNode: Addressable}) class _: """ A variant in an enum declaration. diff --git a/rust/schema/ast.py b/rust/schema/ast.py index 32f085a4f7d..082d0647a15 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -41,9 +41,6 @@ class TypeRepr(AstNode, ): class UseBoundGenericArg(AstNode, ): pass -class VariantDef(AstNode, ): - pass - class Item(Stmt, ): pass @@ -628,7 +625,7 @@ class StmtList(AstNode, ): statements: list["Stmt"] | child tail_expr: optional["Expr"] | child -class Struct(Adt, Item, VariantDef, ): +class Struct(Adt, Item, ): attrs: list["Attr"] | child field_list: optional["FieldList"] | child generic_param_list: optional["GenericParamList"] | child @@ -716,7 +713,7 @@ class TypeParam(GenericParam, ): class UnderscoreExpr(Expr, ): attrs: list["Attr"] | child -class Union(Adt, Item, VariantDef, ): +class Union(Adt, Item, ): attrs: list["Attr"] | child generic_param_list: optional["GenericParamList"] | child name: optional["Name"] | child @@ -741,7 +738,7 @@ class UseTree(AstNode, ): class UseTreeList(AstNode, ): use_trees: list["UseTree"] | child -class Variant(VariantDef, ): +class Variant(AstNode, ): attrs: list["Attr"] | child discriminant: optional["Expr"] | child field_list: optional["FieldList"] | child From 6064622961721c4401e92133c50e706f466e4521 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 16:08:06 +0200 Subject: [PATCH 180/340] Rust: accept test changes --- rust/ql/test/extractor-tests/generated/Enum/Cargo.lock | 7 +++++++ .../generated/Enum/Enum_getDeriveMacroExpansion.expected | 0 rust/ql/test/extractor-tests/generated/Struct/Cargo.lock | 7 +++++++ .../Struct/Struct_getDeriveMacroExpansion.expected | 0 rust/ql/test/extractor-tests/generated/Union/Cargo.lock | 7 +++++++ .../generated/Union/Union_getDeriveMacroExpansion.expected | 0 .../CONSISTENCY/TypeInferenceConsistency.expected | 2 ++ 7 files changed, 23 insertions(+) create mode 100644 rust/ql/test/extractor-tests/generated/Enum/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected create mode 100644 rust/ql/test/extractor-tests/generated/Struct/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected create mode 100644 rust/ql/test/extractor-tests/generated/Union/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected create mode 100644 rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/TypeInferenceConsistency.expected diff --git a/rust/ql/test/extractor-tests/generated/Enum/Cargo.lock b/rust/ql/test/extractor-tests/generated/Enum/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Enum/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Struct/Cargo.lock b/rust/ql/test/extractor-tests/generated/Struct/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Struct/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Union/Cargo.lock b/rust/ql/test/extractor-tests/generated/Union/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Union/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/TypeInferenceConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/TypeInferenceConsistency.expected new file mode 100644 index 00000000000..416404c2bd1 --- /dev/null +++ b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/TypeInferenceConsistency.expected @@ -0,0 +1,2 @@ +illFormedTypeMention +| macro_expansion.rs:99:7:99:19 | MyDeriveUnion | From c22526e9d0af91f4e85acc2650380af42119c53d Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 16:17:22 +0200 Subject: [PATCH 181/340] Rust: add upgrade/downgrade scripts --- .../old.dbscheme | 3620 +++++++++++++++++ .../rust.dbscheme | 3616 ++++++++++++++++ .../upgrade.properties | 4 + .../old.dbscheme | 3616 ++++++++++++++++ .../rust.dbscheme | 3620 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 14478 insertions(+) create mode 100644 rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme create mode 100644 rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme create mode 100644 rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties create mode 100644 rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/old.dbscheme create mode 100644 rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/upgrade.properties diff --git a/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme new file mode 100644 index 00000000000..e019447231c --- /dev/null +++ b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme @@ -0,0 +1,3620 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme new file mode 100644 index 00000000000..aa9a0bda17c --- /dev/null +++ b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme @@ -0,0 +1,3616 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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_def +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_def = + @struct +| @union +| @variant +; + +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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause 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_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 +); + +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 +); + +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 +); + +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, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union 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 +); + +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 +); + +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 +); + +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/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties new file mode 100644 index 00000000000..8ea80a9f7fe --- /dev/null +++ b/rust/downgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties @@ -0,0 +1,4 @@ +description: Remove `adt_derive_macro_expansions` +compatibility: partial + +adt_derive_macro_expansions.rel: delete diff --git a/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/old.dbscheme b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/old.dbscheme new file mode 100644 index 00000000000..aa9a0bda17c --- /dev/null +++ b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/old.dbscheme @@ -0,0 +1,3616 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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_def +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_def = + @struct +| @union +| @variant +; + +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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @const +| @enum +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @struct +| @trait +| @trait_alias +| @type_alias +| @union +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const ref +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause 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_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 +); + +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 +); + +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 +); + +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, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union 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 +); + +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 +); + +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 +); + +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/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/rust.dbscheme b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/rust.dbscheme new file mode 100644 index 00000000000..e019447231c --- /dev/null +++ b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/rust.dbscheme @@ -0,0 +1,3620 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/upgrade.properties b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/upgrade.properties new file mode 100644 index 00000000000..a8b770728ac --- /dev/null +++ b/rust/ql/lib/upgrades/aa9a0bda17c76b804ad9e108d43da15f6beaf2a7/upgrade.properties @@ -0,0 +1,2 @@ +description: Add `adt_derive_macro_expansions` +compatibility: backwards From 01b84a8b1e4f88e96958b9fc48f105a12e1ae9b8 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 16:58:38 +0200 Subject: [PATCH 182/340] Rust: yet another tentative fix to test flakiness --- .../CONSISTENCY/PathResolutionConsistency.expected | 14 +++++++------- .../test/query-tests/security/CWE-770/Cargo.lock | 4 ++-- .../test/query-tests/security/CWE-770/options.yml | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index e3bd532388b..4c01286c489 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,29 +1,29 @@ multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | diff --git a/rust/ql/test/query-tests/security/CWE-770/Cargo.lock b/rust/ql/test/query-tests/security/CWE-770/Cargo.lock index af842b2d7e4..444f7a92c56 100644 --- a/rust/ql/test/query-tests/security/CWE-770/Cargo.lock +++ b/rust/ql/test/query-tests/security/CWE-770/Cargo.lock @@ -4,9 +4,9 @@ version = 4 [[package]] name = "libc" -version = "0.2.173" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8cfeafaffdbc32176b64fb251369d52ea9f0a8fbc6f8759edffef7b525d64bb" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "test" diff --git a/rust/ql/test/query-tests/security/CWE-770/options.yml b/rust/ql/test/query-tests/security/CWE-770/options.yml index 46c4e09d121..5a0244bf92b 100644 --- a/rust/ql/test/query-tests/security/CWE-770/options.yml +++ b/rust/ql/test/query-tests/security/CWE-770/options.yml @@ -1,3 +1,3 @@ qltest_use_nightly: true qltest_dependencies: - - libc = { version = "0.2.11" } + - libc = { version = "0.2.174" } From 2c14f273ed9c10d993e0ebeb96c5db0e2bb05582 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:33:17 +0200 Subject: [PATCH 183/340] Bazel/Rust: Change rust version --- MODULE.bazel | 2 +- rust-toolchain.toml | 2 +- rust/rust-toolchain.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MODULE.bazel b/MODULE.bazel index 6c27900a9fb..ede9df530c5 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -37,7 +37,7 @@ bazel_dep(name = "buildifier_prebuilt", version = "6.4.0", dev_dependency = True # the versions there are canonical, the versions here are used for CI in github/codeql, as well as for the vendoring of dependencies. RUST_EDITION = "2024" -RUST_VERSION = "1.85.0" +RUST_VERSION = "1.86.0" rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain( diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 60e431ae883..84b71da2ec9 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -3,6 +3,6 @@ # we want to support. [toolchain] -channel = "1.85" +channel = "1.86" profile = "minimal" components = [ "clippy", "rustfmt" ] diff --git a/rust/rust-toolchain.toml b/rust/rust-toolchain.toml index 1b61371a926..680f37655d6 100644 --- a/rust/rust-toolchain.toml +++ b/rust/rust-toolchain.toml @@ -3,6 +3,6 @@ # IMPORTANT: this can also have an impact on QL test results [toolchain] -channel = "1.85" +channel = "1.86" profile = "minimal" components = [ "clippy", "rustfmt", "rust-src" ] From ce29d8a59af0d25517c622469db17aad826b8d7f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:34:23 +0200 Subject: [PATCH 184/340] Cargo: run upgrade --- Cargo.lock | 923 +++++++++++++++++------- rust/ast-generator/Cargo.toml | 6 +- rust/extractor/Cargo.toml | 42 +- rust/extractor/macros/Cargo.toml | 2 +- shared/tree-sitter-extractor/Cargo.toml | 6 +- 5 files changed, 677 insertions(+), 302 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 80417917020..c9d363f5118 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -90,9 +90,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.97" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "argfile" @@ -154,9 +154,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.9.0" +version = "2.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" +checksum = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967" [[package]] name = "borsh" @@ -169,12 +169,9 @@ dependencies = [ [[package]] name = "boxcar" -version = "0.2.11" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6740c6e2fc6360fa57c35214c7493826aee95993926092606f27c983b40837be" -dependencies = [ - "loom", -] +checksum = "26c4925bc979b677330a8c7fe7a8c94af2dbb4a2d37b4a20a80d884400f46baa" [[package]] name = "bstr" @@ -206,34 +203,51 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "camino" -version = "1.1.9" +version = "1.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3" +checksum = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab" dependencies = [ "serde", ] [[package]] name = "cargo-platform" -version = "0.1.9" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea" +checksum = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4" dependencies = [ "serde", ] [[package]] -name = "cargo_metadata" -version = "0.19.2" +name = "cargo-util-schemas" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba" +checksum = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca" +dependencies = [ + "semver", + "serde", + "serde-untagged", + "serde-value", + "thiserror 1.0.69", + "toml", + "unicode-xid", + "url", +] + +[[package]] +name = "cargo_metadata" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502" dependencies = [ "camino", "cargo-platform", + "cargo-util-schemas", "semver", "serde", "serde_json", - "thiserror", + "thiserror 2.0.12", ] [[package]] @@ -249,9 +263,9 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +checksum = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268" [[package]] name = "cfg_aliases" @@ -261,9 +275,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chalk-derive" -version = "0.100.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab2d131019373f0d0d1f2af0abd4f719739f6583c1b33965112455f643a910af" +checksum = "eb4899682de915ca7c0b025bdd0a3d34c75fe12184122fda6805a7baddaa293c" dependencies = [ "proc-macro2", "quote", @@ -273,19 +287,19 @@ dependencies = [ [[package]] name = "chalk-ir" -version = "0.100.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f114996bda14c0213f014a4ef31a7867dcf5f539a3900477fc6b20138e7a17b" +checksum = "90a37d2ab99352b4caca135061e7b4ac67024b648c28ed0b787feec4bea4caed" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "chalk-derive", ] [[package]] name = "chalk-recursive" -version = "0.100.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "551e956e031c09057c7b21f17d48d91de99c9b6b6e34bceaf5e7202d71021268" +checksum = "c855be60e646664bc37c2496d3dc81ca5ef60520930e5e0f0057a0575aff6c19" dependencies = [ "chalk-derive", "chalk-ir", @@ -296,9 +310,9 @@ dependencies = [ [[package]] name = "chalk-solve" -version = "0.100.0" +version = "0.103.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd7ca50181156ce649efe8e5dd00580f573651554e4dcd11afa4e2ac93f53324" +checksum = "477ac6cdfd2013e9f93b09b036c2b607a67b2e728f4777b8422d55a79e9e3a34" dependencies = [ "chalk-derive", "chalk-ir", @@ -312,9 +326,9 @@ dependencies = [ [[package]] name = "chrono" -version = "0.4.40" +version = "0.4.41" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c" +checksum = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d" dependencies = [ "android-tzdata", "iana-time-zone", @@ -327,9 +341,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.35" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944" +checksum = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f" dependencies = [ "clap_builder", "clap_derive", @@ -337,9 +351,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.35" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9" +checksum = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e" dependencies = [ "anstream", "anstyle", @@ -349,9 +363,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.32" +version = "4.5.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7" +checksum = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce" dependencies = [ "heck", "proc-macro2", @@ -489,9 +503,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471" +checksum = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2" dependencies = [ "crossbeam-utils", ] @@ -565,19 +579,6 @@ dependencies = [ "syn", ] -[[package]] -name = "dashmap" -version = "5.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856" -dependencies = [ - "cfg-if", - "hashbrown 0.14.5", - "lock_api", - "once_cell", - "parking_lot_core", -] - [[package]] name = "dashmap" version = "6.1.0" @@ -602,6 +603,17 @@ dependencies = [ "serde", ] +[[package]] +name = "displaydoc" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "drop_bomb" version = "0.1.5" @@ -614,6 +626,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005" + [[package]] name = "either" version = "1.15.0" @@ -699,6 +717,16 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" +[[package]] +name = "erased-serde" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7" +dependencies = [ + "serde", + "typeid", +] + [[package]] name = "figment" version = "0.10.19" @@ -753,6 +781,15 @@ version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" +[[package]] +name = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + [[package]] name = "fs-err" version = "2.11.0" @@ -777,19 +814,6 @@ version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ab85b9b05e3978cc9a9cf8fea7f01b494e1a09ed3037e16ba39edc7a29eb61a" -[[package]] -name = "generator" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd" -dependencies = [ - "cfg-if", - "libc", - "log 0.4.27", - "rustversion", - "windows", -] - [[package]] name = "getrandom" version = "0.3.1" @@ -861,9 +885,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" [[package]] name = "hermit-abi" -version = "0.3.9" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024" +checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" [[package]] name = "hex" @@ -891,7 +915,7 @@ dependencies = [ "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "windows-core 0.52.0", + "windows-core", ] [[package]] @@ -903,12 +927,119 @@ dependencies = [ "cc", ] +[[package]] +name = "icu_collections" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47" +dependencies = [ + "displaydoc", + "potential_utf", + "yoke", + "zerofrom", + "zerovec", +] + +[[package]] +name = "icu_locale_core" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a" +dependencies = [ + "displaydoc", + "litemap", + "tinystr", + "writeable", + "zerovec", +] + +[[package]] +name = "icu_normalizer" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_normalizer_data", + "icu_properties", + "icu_provider", + "smallvec", + "zerovec", +] + +[[package]] +name = "icu_normalizer_data" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3" + +[[package]] +name = "icu_properties" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b" +dependencies = [ + "displaydoc", + "icu_collections", + "icu_locale_core", + "icu_properties_data", + "icu_provider", + "potential_utf", + "zerotrie", + "zerovec", +] + +[[package]] +name = "icu_properties_data" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632" + +[[package]] +name = "icu_provider" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af" +dependencies = [ + "displaydoc", + "icu_locale_core", + "stable_deref_trait", + "tinystr", + "writeable", + "yoke", + "zerofrom", + "zerotrie", + "zerovec", +] + [[package]] name = "ident_case" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" +[[package]] +name = "idna" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e" +dependencies = [ + "idna_adapter", + "smallvec", + "utf8_iter", +] + +[[package]] +name = "idna_adapter" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344" +dependencies = [ + "icu_normalizer", + "icu_properties", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -943,7 +1074,7 @@ version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f37dccff2791ab604f9babef0ba14fbe0be30bd368dc541e2b08d07c8aa908f3" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "inotify-sys", "libc", ] @@ -998,9 +1129,9 @@ dependencies = [ [[package]] name = "jod-thread" -version = "0.1.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae" +checksum = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24" [[package]] name = "js-sys" @@ -1046,9 +1177,9 @@ checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.171" +version = "0.2.174" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6" +checksum = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776" [[package]] name = "libredox" @@ -1056,7 +1187,7 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "libc", "redox_syscall", ] @@ -1071,6 +1202,12 @@ dependencies = [ "text-size", ] +[[package]] +name = "litemap" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956" + [[package]] name = "lock_api" version = "0.4.12" @@ -1096,19 +1233,6 @@ version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" -[[package]] -name = "loom" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" -dependencies = [ - "cfg-if", - "generator", - "scoped-tls", - "tracing", - "tracing-subscriber", -] - [[package]] name = "matchers" version = "0.1.0" @@ -1120,9 +1244,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.7.4" +version = "2.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0" [[package]] name = "memoffset" @@ -1185,7 +1309,7 @@ version = "8.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2fee8403b3d66ac7b26aee6e40a897d85dc5ce26f44da36b8b73e987cc52e943" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "filetime", "fsevent-sys", "inotify", @@ -1231,9 +1355,9 @@ dependencies = [ [[package]] name = "num_cpus" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +checksum = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b" dependencies = [ "hermit-abi", "libc", @@ -1251,6 +1375,15 @@ version = "11.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6790f58c7ff633d8771f42965289203411a5e5c68388703c06e14f24770b41e" +[[package]] +name = "ordered-float" +version = "2.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c" +dependencies = [ + "num-traits", +] + [[package]] name = "os_str_bytes" version = "7.0.0" @@ -1312,6 +1445,12 @@ dependencies = [ "syn", ] +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + [[package]] name = "perf-event" version = "0.4.7" @@ -1359,6 +1498,15 @@ version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "350e9b48cbc6b0e028b0473b114454c6316e57336ee184ceab6e53f72c178b3e" +[[package]] +name = "potential_utf" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585" +dependencies = [ + "zerovec", +] + [[package]] name = "powerfmt" version = "0.2.0" @@ -1376,9 +1524,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.94" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ "unicode-ident", ] @@ -1407,11 +1555,11 @@ dependencies = [ [[package]] name = "ra-ap-rustc_abi" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1651b0f7e8c3eb7c27a88f39d277e69c32bfe58e3be174d286c1a24d6a7a4d8" +checksum = "a967e3a9cd3e38b543f503978e0eccee461e3aea3f7b10e944959bff41dbe612" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "ra-ap-rustc_hashes", "ra-ap-rustc_index", "tracing", @@ -1419,18 +1567,18 @@ dependencies = [ [[package]] name = "ra-ap-rustc_hashes" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bcd85e93dc0ea850bcfe7957a115957df799ccbc9eea488bdee5ec6780d212b" +checksum = "1ea4c755ecbbffa5743c251344f484ebe571ec7bc5b36d80b2a8ae775d1a7a40" dependencies = [ "rustc-stable-hash", ] [[package]] name = "ra-ap-rustc_index" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b295fc0640cd9fe0ecab872ee4a17a96f90a3998ec9f0c4765e9b8415c12cc" +checksum = "aca7ad7cf911538c619caa2162339fe98637e9e46f11bb0484ef96735df4d64a" dependencies = [ "ra-ap-rustc_index_macros", "smallvec", @@ -1438,9 +1586,9 @@ dependencies = [ [[package]] name = "ra-ap-rustc_index_macros" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c675f4257023aa933882906f13802cae287e88cc39ab13cbb96809083db0c801" +checksum = "8767ba551c9355bc3031be072cc4bb0381106e5e7cd275e72b7a8c76051c4070" dependencies = [ "proc-macro2", "quote", @@ -1449,9 +1597,9 @@ dependencies = [ [[package]] name = "ra-ap-rustc_lexer" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8358702c2a510ea84ba5801ddc047d9ad9520902cfb0e6173277610cdce2c9c" +checksum = "6101374afb267e6c27e4e2eb0b1352e9f3504c1a8f716f619cd39244e2ed92ab" dependencies = [ "memchr", "unicode-properties", @@ -1460,19 +1608,19 @@ dependencies = [ [[package]] name = "ra-ap-rustc_parse_format" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98f402011d46732c35c47bfd111dec0495747fef2ec900ddee7fe15d78449a7" +checksum = "ecd88a19f00da4f43e6727d5013444cbc399804b5046dfa2bbcd28ebed3970ce" dependencies = [ - "ra-ap-rustc_index", "ra-ap-rustc_lexer", + "rustc-literal-escaper 0.0.2", ] [[package]] name = "ra-ap-rustc_pattern_analysis" -version = "0.100.0" +version = "0.116.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef3ff73fa4653252ffe1d1e9177a446f49ef46d97140e4816b7ff2dad59ed53" +checksum = "bb332dd32d7850a799862533b1c021e6062558861a4ad57817bf522499fbb892" dependencies = [ "ra-ap-rustc_index", "rustc-hash 2.1.1", @@ -1483,11 +1631,12 @@ dependencies = [ [[package]] name = "ra_ap_base_db" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd761118bbafe29e2b187e694c6b8e800f2c7822bbc1d9d2db4ac21fb8b0365" +checksum = "edf27fccb119fe85faf51f51847df9695d3cca30c2427fed9b4d71e6adebb54f" dependencies = [ - "dashmap 5.5.3", + "dashmap", + "indexmap 2.9.0", "la-arena", "ra_ap_cfg", "ra_ap_intern", @@ -1497,6 +1646,7 @@ dependencies = [ "ra_ap_vfs", "rustc-hash 2.1.1", "salsa", + "salsa-macros", "semver", "tracing", "triomphe", @@ -1504,9 +1654,9 @@ dependencies = [ [[package]] name = "ra_ap_cfg" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ce74ce1af24afd86d3529dbbf5a849d026948b2d8ba51d199b6ea6db6e345b6" +checksum = "3cea86a5d6e84fd73824c26f52442807af911db038db821124b2ac65fac24209" dependencies = [ "ra_ap_intern", "ra_ap_tt", @@ -1516,15 +1666,15 @@ dependencies = [ [[package]] name = "ra_ap_edition" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f423b9fb19e3920e4c7039120d09d9c79070a26efe8ff9f787c7234b07f518c5" +checksum = "fb5538d534eeb8526071610664dc64b71ca336b78f6933ff7241d10c1f37e91b" [[package]] name = "ra_ap_hir" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd4aa8a568b80d288b90c4fa5dc8a3cc405914d261bfd33a3761c1ba41be358d" +checksum = "44796828650900565917ddcc944fecdf6c7d5c3a8a31141f17268ea8c1d2e6f0" dependencies = [ "arrayvec", "either", @@ -1548,12 +1698,12 @@ dependencies = [ [[package]] name = "ra_ap_hir_def" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acb18d9378a828a23ccf87b89199db005adb67ba2a05a37d7a3fcad4d1036e66" +checksum = "8949b2fb362a1e4eab4d90c7299f0fad3f2c887d9f7d9c286ac6530da4141f85" dependencies = [ "arrayvec", - "bitflags 2.9.0", + "bitflags 2.9.1", "cov-mark", "drop_bomb", "either", @@ -1576,6 +1726,7 @@ dependencies = [ "rustc-hash 2.1.1", "rustc_apfloat", "salsa", + "salsa-macros", "smallvec", "text-size", "thin-vec", @@ -1585,9 +1736,9 @@ dependencies = [ [[package]] name = "ra_ap_hir_expand" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "094fa79d8f661f52cf3b7fb8b3d91c4be2ad9e71a3967d3dacd25429fa44b37d" +checksum = "22457a431b5eeb67517e03266fddefe48839b060a674a6b18bd84269012ede1e" dependencies = [ "cov-mark", "either", @@ -1605,6 +1756,7 @@ dependencies = [ "ra_ap_tt", "rustc-hash 2.1.1", "salsa", + "salsa-macros", "smallvec", "tracing", "triomphe", @@ -1612,12 +1764,12 @@ dependencies = [ [[package]] name = "ra_ap_hir_ty" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "093482d200d5db421db5692e7819bbb14fb717cc8cb0f91f93cce9fde85b3df2" +checksum = "3a4b7a7531414203e11ae447627e2909250eff392c06278ab53ae2a022ecc9fc" dependencies = [ "arrayvec", - "bitflags 2.9.0", + "bitflags 2.9.1", "chalk-derive", "chalk-ir", "chalk-recursive", @@ -1643,6 +1795,7 @@ dependencies = [ "rustc-hash 2.1.1", "rustc_apfloat", "salsa", + "salsa-macros", "scoped-tls", "smallvec", "tracing", @@ -1652,12 +1805,12 @@ dependencies = [ [[package]] name = "ra_ap_ide_db" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b655b92dfa9444db8129321b9217d9e4a83a58ee707aa1004a93052acfb43d57" +checksum = "77741ceb096d4f5ecf5384210ea5a2b46878125047c6b0df2bdcfac08a20ea0c" dependencies = [ "arrayvec", - "bitflags 2.9.0", + "bitflags 2.9.1", "cov-mark", "crossbeam-channel", "either", @@ -1679,17 +1832,18 @@ dependencies = [ "rayon", "rustc-hash 2.1.1", "salsa", + "salsa-macros", "tracing", "triomphe", ] [[package]] name = "ra_ap_intern" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4e528496b4d4c351806bb073d3d7f6526535741b9e8801776603c924bbec624" +checksum = "4a1872cd5a425db6d5247a7deca11526e3104757f6732447ac6ee93c3e795725" dependencies = [ - "dashmap 5.5.3", + "dashmap", "hashbrown 0.14.5", "rustc-hash 2.1.1", "triomphe", @@ -1697,9 +1851,9 @@ dependencies = [ [[package]] name = "ra_ap_load-cargo" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a97a5070b2f4b99f56683d91b2687aa0c530d8969cc5252ec2ae5644e428ffe" +checksum = "f30f5433f056594b02f1879c5c2ce76ea9fd395f21e2a55df6ce3229db993caa" dependencies = [ "anyhow", "crossbeam-channel", @@ -1718,9 +1872,9 @@ dependencies = [ [[package]] name = "ra_ap_mbe" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b187ee5ee3fa726eeea5142242a0397e2200d77084026986a68324b9599f9046" +checksum = "222a993acaec35e90c08357aecd530b7170cc3a7f13b3ddfd15a200029ccd555" dependencies = [ "arrayvec", "cov-mark", @@ -1737,30 +1891,31 @@ dependencies = [ [[package]] name = "ra_ap_parser" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2306e6c051e60483f3b317fac9dec6c883b7792eeb8db24ec6f39dbfa5430159" +checksum = "1c5693f5efd27832e1ac572ea756a1a4a3f7eba07f1287268ca111710971c2e5" dependencies = [ "drop_bomb", "ra-ap-rustc_lexer", "ra_ap_edition", + "rustc-literal-escaper 0.0.3", "tracing", ] [[package]] name = "ra_ap_paths" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcedd00499621bdd0f1fe01955c04e4b388197aa826744003afaf6cc2944bc80" +checksum = "39418eff64e59d4bf90dd825ac7d242576e9554669824ebc55a6628bde0aaf10" dependencies = [ "camino", ] [[package]] name = "ra_ap_proc_macro_api" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a2e49b550015cd4ad152bd78d92d73594497f2e44f61273f9fed3534ad4bbbe" +checksum = "14a315af8c4a9379c26abe7baa143d62e3975ff26f27c65332f9a5edccc56d38" dependencies = [ "indexmap 2.9.0", "ra_ap_intern", @@ -1777,21 +1932,21 @@ dependencies = [ [[package]] name = "ra_ap_profile" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cdbd27ebe02ec21fdae3df303f194bda036a019ecef80d47e0082646f06c54" +checksum = "08274a0adbf8255f8b2672302452e31bbb2ed4d38324da9c72a7bf9cf1428483" dependencies = [ "cfg-if", "libc", "perf-event", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "ra_ap_project_model" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5eaa3406c891a7840d20ce615f8decca32cbc9d3654b82dcbcc3a31257ce90b9" +checksum = "33deecb3724faf91f13b0f1b5115af7c4f5c9dc1dfbbf45f55261aa28f874838" dependencies = [ "anyhow", "cargo_metadata", @@ -1815,9 +1970,9 @@ dependencies = [ [[package]] name = "ra_ap_query-group-macro" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fbc1748e4876a9b0ccfacfc7e2fe254f30e92ef58d98925282b3803e8b004ed" +checksum = "5fdefdc9c8d6fd7d85ac572649378e83266262e09400bfdb7c8a7407d3cc2a3e" dependencies = [ "proc-macro2", "quote", @@ -1826,9 +1981,9 @@ dependencies = [ [[package]] name = "ra_ap_span" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed1d036e738bf32a057d90698df85bcb83ed6263b5fe9fba132c99e8ec3aecaf" +checksum = "c20071c89e1f7dd63c803130634f4bb6ce7783dc0e7ff90839d1d0f4e625b7a8" dependencies = [ "hashbrown 0.14.5", "la-arena", @@ -1842,32 +1997,33 @@ dependencies = [ [[package]] name = "ra_ap_stdx" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e3775954ab24408f71e97079a97558078a166a4082052e83256ae4c22dae18d" +checksum = "552df390b26624eca7936aea1dbbb3786d7a12477e26ef917ffabba19f75ad44" dependencies = [ "crossbeam-channel", + "crossbeam-utils", "itertools 0.14.0", "jod-thread", "libc", "miow", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.60.2", ] [[package]] name = "ra_ap_syntax" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49b081f209a764700f688db91820a66c2ecfe5f138895d831361cf84f716691" +checksum = "a78db1a9966c0fa05446b8185da35a325680741119366c6246e4a9800f29143a" dependencies = [ "either", "itertools 0.14.0", - "ra-ap-rustc_lexer", "ra_ap_parser", "ra_ap_stdx", "rowan", "rustc-hash 2.1.1", + "rustc-literal-escaper 0.0.3", "smol_str", "tracing", "triomphe", @@ -1875,9 +2031,9 @@ dependencies = [ [[package]] name = "ra_ap_syntax-bridge" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2740bbe603d527f2cf0aaf51629de7d072694fbbaaeda8264f7591be1493d1b" +checksum = "e69ef7fad8598d5c9f14a375d56ec12200fa927bc805b600af419611f4642fdb" dependencies = [ "ra_ap_intern", "ra_ap_parser", @@ -1890,9 +2046,9 @@ dependencies = [ [[package]] name = "ra_ap_toolchain" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efbff9f26f307ef958586357d1653d000861dcd3acbaf33a009651e024720c7e" +checksum = "628f3f190def67b1116d8bdd6ec4f6f206fada2c93b84ba71086d60c63429282" dependencies = [ "camino", "home", @@ -1900,9 +2056,9 @@ dependencies = [ [[package]] name = "ra_ap_tt" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b1ce3ac14765e414fa6031fda7dc35d3492c74de225aac689ba8b8bf037e1f8" +checksum = "e050f4ad13df59e90e38332860304a3e85ff2fa8d4585b8cc44fc982923c82b1" dependencies = [ "arrayvec", "ra-ap-rustc_lexer", @@ -1913,9 +2069,9 @@ dependencies = [ [[package]] name = "ra_ap_vfs" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29427a7c27ce8ddfefb52d77c952a4588c74d0a7ab064dc627129088a90423ca" +checksum = "62082190f0b3551e4d941bcaaac51a7c39c85b2e193bcc50d0807e1701da4083" dependencies = [ "crossbeam-channel", "fst", @@ -1929,9 +2085,9 @@ dependencies = [ [[package]] name = "ra_ap_vfs-notify" -version = "0.0.273" +version = "0.0.288" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5a0e3095b8216ecc131f38b4b0025cac324a646469a95d2670354aee7278078" +checksum = "efd7cfa1095b81bd1994ab70e5543c97a8733987eb0ddf390cf3ad58d4e2dc57" dependencies = [ "crossbeam-channel", "notify", @@ -1946,13 +2102,12 @@ dependencies = [ [[package]] name = "rand" -version = "0.9.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94" +checksum = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97" dependencies = [ "rand_chacha", "rand_core", - "zerocopy 0.8.20", ] [[package]] @@ -2001,7 +2156,27 @@ version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "03a862b389f93e68874fbf580b9de08dd02facb9a788ebadaf4a3fd33cf58834" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", +] + +[[package]] +name = "ref-cast" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2081,6 +2256,18 @@ version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +[[package]] +name = "rustc-literal-escaper" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0041b6238913c41fe704213a4a9329e2f685a156d1781998128b4149c230ad04" + +[[package]] +name = "rustc-literal-escaper" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78744cd17f5d01c75b709e49807d1363e02a940ccee2e9e72435843fdb0d076e" + [[package]] name = "rustc-stable-hash" version = "0.1.1" @@ -2089,19 +2276,14 @@ checksum = "2febf9acc5ee5e99d1ad0afcdbccc02d87aa3f857a1f01f825b80eacf8edfcd1" [[package]] name = "rustc_apfloat" -version = "0.2.2+llvm-462a31f5a5ab" -source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" +version = "0.2.3+llvm-462a31f5a5ab" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "486c2179b4796f65bfe2ee33679acf0927ac83ecf583ad6c91c3b4570911b9ad" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", "smallvec", ] -[[package]] -name = "rustversion" -version = "1.0.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" - [[package]] name = "ryu" version = "1.0.19" @@ -2110,13 +2292,13 @@ checksum = "6ea1a2d0a644769cc99faa24c3ad26b379b786fe7c36fd3c546254801650e6dd" [[package]] name = "salsa" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd55c6549513b2a42884dae31e3d4f4ac8a6cc51062e68e24d162133889f327c" +checksum = "c8fff508e3d6ef42a32607f7538e17171a877a12015e32036f46e99d00c95781" dependencies = [ "boxcar", "crossbeam-queue", - "dashmap 6.1.0", + "dashmap", "hashbrown 0.15.2", "hashlink", "indexmap 2.9.0", @@ -2127,20 +2309,21 @@ dependencies = [ "salsa-macro-rules", "salsa-macros", "smallvec", + "thin-vec", "tracing", ] [[package]] name = "salsa-macro-rules" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2619b4b451beab0a7e4364ff1e6f31950e7e418888fd9bf2f28889671563166a" +checksum = "8ea72b3c06f2ce6350fe3a0eeb7aaaf842d1d8352b706973c19c4f02e298a87c" [[package]] name = "salsa-macros" -version = "0.19.0" +version = "0.22.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be57a99b3896e8d26850428a6874fb86849e2db874e1db3528e5cee4337d277" +checksum = "0ce92025bc160b27814a207cb78d680973af17f863c7f4fc56cf3a535e22f378" dependencies = [ "heck", "proc-macro2", @@ -2158,6 +2341,18 @@ dependencies = [ "winapi-util", ] +[[package]] +name = "schemars" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f" +dependencies = [ + "dyn-clone", + "ref-cast", + "serde", + "serde_json", +] + [[package]] name = "scoped-tls" version = "1.0.1" @@ -2188,6 +2383,27 @@ dependencies = [ "serde_derive", ] +[[package]] +name = "serde-untagged" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e" +dependencies = [ + "erased-serde", + "serde", + "typeid", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde", +] + [[package]] name = "serde_derive" version = "1.0.219" @@ -2213,24 +2429,25 @@ dependencies = [ [[package]] name = "serde_spanned" -version = "0.6.8" +version = "0.6.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1" +checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" dependencies = [ "serde", ] [[package]] name = "serde_with" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +checksum = "bf65a400f8f66fb7b0552869ad70157166676db75ed8181f8104ea91cf9d0b42" dependencies = [ "base64", "chrono", "hex", "indexmap 1.9.3", "indexmap 2.9.0", + "schemars", "serde", "serde_derive", "serde_json", @@ -2240,9 +2457,9 @@ dependencies = [ [[package]] name = "serde_with_macros" -version = "3.12.0" +version = "3.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +checksum = "81679d9ed988d5e9a5e6531dc3f2c28efbd639cbd1dfb628df08edea6004da77" dependencies = [ "darling", "proc-macro2", @@ -2280,9 +2497,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] name = "smallvec" -version = "1.14.0" +version = "1.15.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd" +checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "smol_str" @@ -2314,9 +2531,9 @@ checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f" [[package]] name = "syn" -version = "2.0.100" +version = "2.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0" +checksum = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8" dependencies = [ "proc-macro2", "quote", @@ -2346,13 +2563,33 @@ version = "0.2.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "144f754d318415ac792f9d69fc87abbbfc043ce2ef041c60f16ad828f638717d" +[[package]] +name = "thiserror" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" +dependencies = [ + "thiserror-impl 1.0.69", +] + [[package]] name = "thiserror" version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" +dependencies = [ + "proc-macro2", + "quote", + "syn", ] [[package]] @@ -2408,10 +2645,20 @@ dependencies = [ ] [[package]] -name = "toml" -version = "0.8.20" +name = "tinystr" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" +checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b" +dependencies = [ + "displaydoc", + "zerovec", +] + +[[package]] +name = "toml" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" dependencies = [ "serde", "serde_spanned", @@ -2421,26 +2668,33 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.6.8" +version = "0.6.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41" +checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" dependencies = [ "serde", ] [[package]] name = "toml_edit" -version = "0.22.24" +version = "0.22.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" +checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" dependencies = [ "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", + "toml_write", "winnow", ] +[[package]] +name = "toml_write" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" + [[package]] name = "tracing" version = "0.1.41" @@ -2588,6 +2842,12 @@ version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" +[[package]] +name = "typeid" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c" + [[package]] name = "uncased" version = "0.9.10" @@ -2627,6 +2887,23 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" +[[package]] +name = "url" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "utf8_iter" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" + [[package]] name = "utf8parse" version = "0.2.2" @@ -2755,16 +3032,6 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" -[[package]] -name = "windows" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6" -dependencies = [ - "windows-core 0.58.0", - "windows-targets 0.52.6", -] - [[package]] name = "windows-core" version = "0.52.0" @@ -2774,66 +3041,12 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-core" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99" -dependencies = [ - "windows-implement", - "windows-interface", - "windows-result", - "windows-strings", - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-implement" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - -[[package]] -name = "windows-interface" -version = "0.58.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] - [[package]] name = "windows-link" version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "76840935b766e1b0a05c0066835fb9ec80071d4c09a16f6bd5f7e655e3c14c38" -[[package]] -name = "windows-result" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e" -dependencies = [ - "windows-targets 0.52.6", -] - -[[package]] -name = "windows-strings" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10" -dependencies = [ - "windows-result", - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.48.0" @@ -2861,6 +3074,15 @@ dependencies = [ "windows-targets 0.52.6", ] +[[package]] +name = "windows-sys" +version = "0.60.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" +dependencies = [ + "windows-targets 0.53.2", +] + [[package]] name = "windows-targets" version = "0.48.5" @@ -2885,13 +3107,29 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm", + "windows_i686_gnullvm 0.52.6", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] +[[package]] +name = "windows-targets" +version = "0.53.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef" +dependencies = [ + "windows_aarch64_gnullvm 0.53.0", + "windows_aarch64_msvc 0.53.0", + "windows_i686_gnu 0.53.0", + "windows_i686_gnullvm 0.53.0", + "windows_i686_msvc 0.53.0", + "windows_x86_64_gnu 0.53.0", + "windows_x86_64_gnullvm 0.53.0", + "windows_x86_64_msvc 0.53.0", +] + [[package]] name = "windows_aarch64_gnullvm" version = "0.48.5" @@ -2904,6 +3142,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764" + [[package]] name = "windows_aarch64_msvc" version = "0.48.5" @@ -2916,6 +3160,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +[[package]] +name = "windows_aarch64_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c" + [[package]] name = "windows_i686_gnu" version = "0.48.5" @@ -2928,12 +3178,24 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +[[package]] +name = "windows_i686_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3" + [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +[[package]] +name = "windows_i686_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11" + [[package]] name = "windows_i686_msvc" version = "0.48.5" @@ -2946,6 +3208,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +[[package]] +name = "windows_i686_msvc" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d" + [[package]] name = "windows_x86_64_gnu" version = "0.48.5" @@ -2958,6 +3226,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +[[package]] +name = "windows_x86_64_gnu" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba" + [[package]] name = "windows_x86_64_gnullvm" version = "0.48.5" @@ -2970,6 +3244,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.53.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57" + [[package]] name = "windows_x86_64_msvc" version = "0.48.5" @@ -2983,10 +3263,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] -name = "winnow" -version = "0.7.3" +name = "windows_x86_64_msvc" +version = "0.53.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1" +checksum = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486" + +[[package]] +name = "winnow" +version = "0.7.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd" dependencies = [ "memchr", ] @@ -2997,15 +3283,45 @@ version = "0.33.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3268f3d866458b787f390cf61f4bbb563b922d091359f9608842999eaee3943c" dependencies = [ - "bitflags 2.9.0", + "bitflags 2.9.1", ] +[[package]] +name = "writeable" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb" + [[package]] name = "yansi" version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cfe53a6657fd280eaa890a3bc59152892ffa3e30101319d168b781ed6529b049" +[[package]] +name = "yoke" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc" +dependencies = [ + "serde", + "stable_deref_trait", + "yoke-derive", + "zerofrom", +] + +[[package]] +name = "yoke-derive" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + [[package]] name = "zerocopy" version = "0.7.35" @@ -3047,6 +3363,60 @@ dependencies = [ "syn", ] +[[package]] +name = "zerofrom" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +dependencies = [ + "zerofrom-derive", +] + +[[package]] +name = "zerofrom-derive" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "synstructure", +] + +[[package]] +name = "zerotrie" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595" +dependencies = [ + "displaydoc", + "yoke", + "zerofrom", +] + +[[package]] +name = "zerovec" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428" +dependencies = [ + "yoke", + "zerofrom", + "zerovec-derive", +] + +[[package]] +name = "zerovec-derive" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + [[package]] name = "zstd" version = "0.13.3" @@ -3074,3 +3444,8 @@ dependencies = [ "cc", "pkg-config", ] + +[[patch.unused]] +name = "rustc_apfloat" +version = "0.2.2+llvm-462a31f5a5ab" +source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" diff --git a/rust/ast-generator/Cargo.toml b/rust/ast-generator/Cargo.toml index 233a380b2f7..78c8a9b6d5b 100644 --- a/rust/ast-generator/Cargo.toml +++ b/rust/ast-generator/Cargo.toml @@ -7,11 +7,11 @@ license = "MIT" # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] ungrammar = "1.16.1" -proc-macro2 = "1.0.94" +proc-macro2 = "1.0.95" quote = "1.0.40" either = "1.15.0" -stdx = {package = "ra_ap_stdx", version = "0.0.273"} +stdx = {package = "ra_ap_stdx", version = "0.0.288"} itertools = "0.14.0" mustache = "0.9.0" serde = { version = "1.0.219", features = ["derive"] } -anyhow = "1.0.97" +anyhow = "1.0.98" diff --git a/rust/extractor/Cargo.toml b/rust/extractor/Cargo.toml index fa3f6171bf8..88a3e203a27 100644 --- a/rust/extractor/Cargo.toml +++ b/rust/extractor/Cargo.toml @@ -6,39 +6,39 @@ license = "MIT" # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] -anyhow = "1.0.97" -clap = { version = "4.5.35", features = ["derive"] } +anyhow = "1.0.98" +clap = { version = "4.5.40", features = ["derive"] } figment = { version = "0.10.19", features = ["env", "yaml"] } num-traits = "0.2.19" -ra_ap_base_db = "0.0.273" -ra_ap_hir = "0.0.273" -ra_ap_hir_def = "0.0.273" -ra_ap_ide_db = "0.0.273" -ra_ap_hir_ty = "0.0.273" -ra_ap_hir_expand = "0.0.273" -ra_ap_load-cargo = "0.0.273" -ra_ap_paths = "0.0.273" -ra_ap_project_model = "0.0.273" -ra_ap_syntax = "0.0.273" -ra_ap_vfs = "0.0.273" -ra_ap_parser = "0.0.273" -ra_ap_span = "0.0.273" -ra_ap_cfg = "0.0.273" -ra_ap_intern = "0.0.273" +ra_ap_base_db = "0.0.288" +ra_ap_hir = "0.0.288" +ra_ap_hir_def = "0.0.288" +ra_ap_ide_db = "0.0.288" +ra_ap_hir_ty = "0.0.288" +ra_ap_hir_expand = "0.0.288" +ra_ap_load-cargo = "0.0.288" +ra_ap_paths = "0.0.288" +ra_ap_project_model = "0.0.288" +ra_ap_syntax = "0.0.288" +ra_ap_vfs = "0.0.288" +ra_ap_parser = "0.0.288" +ra_ap_span = "0.0.288" +ra_ap_cfg = "0.0.288" +ra_ap_intern = "0.0.288" serde = "1.0.219" -serde_with = "3.12.0" +serde_with = "3.13.0" triomphe = "0.1.14" argfile = "0.2.1" codeql-extractor = { path = "../../shared/tree-sitter-extractor" } rust-extractor-macros = { path = "macros" } itertools = "0.14.0" glob = "0.3.2" -chrono = { version = "0.4.40", features = ["serde"] } +chrono = { version = "0.4.41", features = ["serde"] } serde_json = "1.0.140" dunce = "1.0.5" -toml = "0.8.20" +toml = "0.8.23" tracing = "0.1.41" tracing-flame = "0.2.0" tracing-subscriber = "0.3.19" -chalk-ir = "0.100.0" +chalk-ir = "0.103.0" mustache = "0.9.0" diff --git a/rust/extractor/macros/Cargo.toml b/rust/extractor/macros/Cargo.toml index c088e98ea76..3444aa98758 100644 --- a/rust/extractor/macros/Cargo.toml +++ b/rust/extractor/macros/Cargo.toml @@ -10,4 +10,4 @@ proc-macro = true # When updating these dependencies, run `rust/update_cargo_deps.sh` [dependencies] quote = "1.0.40" -syn = { version = "2.0.100", features = ["full"] } +syn = { version = "2.0.103", features = ["full"] } diff --git a/shared/tree-sitter-extractor/Cargo.toml b/shared/tree-sitter-extractor/Cargo.toml index 3bda73a774d..4cfeae2801b 100644 --- a/shared/tree-sitter-extractor/Cargo.toml +++ b/shared/tree-sitter-extractor/Cargo.toml @@ -17,11 +17,11 @@ encoding = "0.2" lazy_static = "1.5.0" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" -chrono = { version = "0.4.40", features = ["serde"] } -num_cpus = "1.16.0" +chrono = { version = "0.4.41", features = ["serde"] } +num_cpus = "1.17.0" zstd = "0.13.3" [dev-dependencies] tree-sitter-ql = "0.23.1" tree-sitter-json = "0.24.8" -rand = "0.9.0" +rand = "0.9.1" From 492b0cd2e8446cf534197201571cbcd734112f35 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:37:58 +0200 Subject: [PATCH 185/340] Bazel: regenerate cargo vendored files --- Cargo.lock | 1 + MODULE.bazel | 52 +- .../BUILD.aho-corasick-1.1.3.bazel | 2 +- ...UILD.android_system_properties-0.1.5.bazel | 2 +- ...1.0.97.bazel => BUILD.anyhow-1.0.98.bazel} | 6 +- .../tree_sitter_extractors_deps/BUILD.bazel | 160 +- ...2.9.0.bazel => BUILD.bitflags-2.9.1.bazel} | 2 +- ...0.2.11.bazel => BUILD.boxcar-0.2.13.bazel} | 2 +- .../BUILD.bstr-1.11.3.bazel | 2 +- ...-1.1.9.bazel => BUILD.camino-1.1.10.bazel} | 6 +- ...bazel => BUILD.cargo-platform-0.2.0.bazel} | 2 +- .../BUILD.cargo-util-schemas-0.2.0.bazel | 93 ++ ...azel => BUILD.cargo_metadata-0.20.0.bazel} | 7 +- .../BUILD.cc-1.2.7.bazel | 22 +- ...f-1.0.0.bazel => BUILD.cfg-if-1.0.1.bazel} | 2 +- ...bazel => BUILD.chalk-derive-0.103.0.bazel} | 6 +- ...0.0.bazel => BUILD.chalk-ir-0.103.0.bazel} | 6 +- ...el => BUILD.chalk-recursive-0.103.0.bazel} | 8 +- ....bazel => BUILD.chalk-solve-0.103.0.bazel} | 6 +- ...0.4.40.bazel => BUILD.chrono-0.4.41.bazel} | 2 +- ...p-4.5.35.bazel => BUILD.clap-4.5.40.bazel} | 6 +- ....bazel => BUILD.clap_builder-4.5.40.bazel} | 2 +- ...2.bazel => BUILD.clap_derive-4.5.40.bazel} | 6 +- .../BUILD.crc32fast-1.4.2.bazel | 2 +- ...l => BUILD.crossbeam-channel-0.5.15.bazel} | 2 +- .../BUILD.darling_core-0.20.10.bazel | 4 +- .../BUILD.darling_macro-0.20.10.bazel | 2 +- .../BUILD.dashmap-5.5.3.bazel | 93 -- .../BUILD.dashmap-6.1.0.bazel | 3 +- ...8.0.bazel => BUILD.displaydoc-0.2.5.bazel} | 10 +- .../BUILD.dyn-clone-1.0.19.bazel | 83 + .../BUILD.erased-serde-0.4.6.bazel | 90 ++ .../BUILD.filetime-0.2.25.bazel | 50 +- .../BUILD.form_urlencoded-1.2.1.bazel | 90 ++ .../BUILD.fsevent-sys-4.1.0.bazel | 2 +- .../BUILD.generator-0.8.4.bazel | 230 --- .../BUILD.getrandom-0.3.1.bazel | 46 +- ...3.9.bazel => BUILD.hermit-abi-0.5.2.bazel} | 2 +- .../BUILD.icu_collections-2.0.0.bazel | 92 ++ .../BUILD.icu_locale_core-2.0.0.bazel | 95 ++ ...bazel => BUILD.icu_normalizer-2.0.0.bazel} | 20 +- .../BUILD.icu_normalizer_data-2.0.0.bazel | 142 ++ .../BUILD.icu_properties-2.0.1.bazel | 98 ++ .../BUILD.icu_properties_data-2.0.1.bazel | 142 ++ .../BUILD.icu_provider-2.0.0.bazel | 100 ++ .../BUILD.idna-1.0.3.bazel | 93 ++ .../BUILD.idna_adapter-1.2.1.bazel | 90 ++ .../BUILD.inotify-0.11.0.bazel | 4 +- .../BUILD.inotify-sys-0.1.5.bazel | 2 +- .../BUILD.jobserver-0.1.32.bazel | 48 +- ...1.2.bazel => BUILD.jod-thread-1.0.0.bazel} | 2 +- .../BUILD.kqueue-1.0.8.bazel | 2 +- .../BUILD.kqueue-sys-1.0.4.bazel | 2 +- ...0.2.171.bazel => BUILD.libc-0.2.174.bazel} | 6 +- .../BUILD.libredox-0.1.3.bazel | 4 +- .../BUILD.litemap-0.8.0.bazel | 86 + .../BUILD.loom-0.7.2.bazel | 90 -- ...r-2.7.4.bazel => BUILD.memchr-2.7.5.bazel} | 2 +- .../BUILD.mio-1.0.3.bazel | 50 +- .../BUILD.notify-8.0.0.bazel | 8 +- ...16.0.bazel => BUILD.num_cpus-1.17.0.bazel} | 68 +- .../BUILD.ordered-float-2.10.1.bazel | 90 ++ .../BUILD.os_str_bytes-7.0.0.bazel | 2 +- .../BUILD.parking_lot_core-0.9.10.bazel | 52 +- .../BUILD.pear_codegen-0.2.9.bazel | 4 +- .../BUILD.percent-encoding-2.3.1.bazel | 87 + .../BUILD.perf-event-0.4.7.bazel | 2 +- .../BUILD.perf-event-open-sys-1.0.1.bazel | 2 +- .../BUILD.potential_utf-0.1.2.bazel | 89 ++ ...4.bazel => BUILD.proc-macro2-1.0.95.bazel} | 6 +- ...BUILD.proc-macro2-diagnostics-0.10.1.bazel | 4 +- .../BUILD.quote-1.0.40.bazel | 2 +- ...el => BUILD.ra-ap-rustc_abi-0.116.0.bazel} | 12 +- ...=> BUILD.ra-ap-rustc_hashes-0.116.0.bazel} | 2 +- ... => BUILD.ra-ap-rustc_index-0.116.0.bazel} | 8 +- ...LD.ra-ap-rustc_index_macros-0.116.0.bazel} | 6 +- ... => BUILD.ra-ap-rustc_lexer-0.116.0.bazel} | 4 +- ...LD.ra-ap-rustc_parse_format-0.116.0.bazel} | 9 +- ...a-ap-rustc_pattern_analysis-0.116.0.bazel} | 10 +- ...azel => BUILD.ra_ap_base_db-0.0.288.bazel} | 32 +- ...73.bazel => BUILD.ra_ap_cfg-0.0.288.bazel} | 10 +- ...azel => BUILD.ra_ap_edition-0.0.288.bazel} | 2 +- ...73.bazel => BUILD.ra_ap_hir-0.0.288.bazel} | 44 +- ...azel => BUILD.ra_ap_hir_def-0.0.288.bazel} | 55 +- ...l => BUILD.ra_ap_hir_expand-0.0.288.bazel} | 51 +- ...bazel => BUILD.ra_ap_hir_ty-0.0.288.bazel} | 57 +- ...bazel => BUILD.ra_ap_ide_db-0.0.288.bazel} | 47 +- ...bazel => BUILD.ra_ap_intern-0.0.288.bazel} | 4 +- ...l => BUILD.ra_ap_load-cargo-0.0.288.bazel} | 42 +- ...73.bazel => BUILD.ra_ap_mbe-0.0.288.bazel} | 30 +- ...bazel => BUILD.ra_ap_parser-0.0.288.bazel} | 9 +- ....bazel => BUILD.ra_ap_paths-0.0.288.bazel} | 4 +- ... BUILD.ra_ap_proc_macro_api-0.0.288.bazel} | 22 +- ...azel => BUILD.ra_ap_profile-0.0.288.bazel} | 28 +- ...> BUILD.ra_ap_project_model-0.0.288.bazel} | 34 +- ...ILD.ra_ap_query-group-macro-0.0.288.bazel} | 6 +- ...3.bazel => BUILD.ra_ap_span-0.0.288.bazel} | 16 +- ...3.bazel => BUILD.ra_ap_stdx-0.0.288.bazel} | 61 +- ...bazel => BUILD.ra_ap_syntax-0.0.288.bazel} | 12 +- ...> BUILD.ra_ap_syntax-bridge-0.0.288.bazel} | 26 +- ...el => BUILD.ra_ap_toolchain-0.0.288.bazel} | 4 +- ...273.bazel => BUILD.ra_ap_tt-0.0.288.bazel} | 12 +- ...73.bazel => BUILD.ra_ap_vfs-0.0.288.bazel} | 12 +- ...l => BUILD.ra_ap_vfs-notify-0.0.288.bazel} | 16 +- ...and-0.9.0.bazel => BUILD.rand-0.9.1.bazel} | 3 +- .../BUILD.redox_syscall-0.5.8.bazel | 2 +- .../BUILD.ref-cast-1.0.24.bazel | 145 ++ ...bazel => BUILD.ref-cast-impl-1.0.24.bazel} | 10 +- .../BUILD.regex-1.11.1.bazel | 2 +- .../BUILD.regex-automata-0.4.9.bazel | 2 +- .../BUILD.rustc-literal-escaper-0.0.2.bazel | 83 + .../BUILD.rustc-literal-escaper-0.0.3.bazel | 83 + ...stc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel} | 10 +- ...-0.19.0.bazel => BUILD.salsa-0.22.0.bazel} | 11 +- ...l => BUILD.salsa-macro-rules-0.22.0.bazel} | 2 +- ....bazel => BUILD.salsa-macros-0.22.0.bazel} | 6 +- .../BUILD.schemars-0.9.0.bazel | 89 ++ .../BUILD.serde-untagged-0.1.7.bazel | 88 ++ .../BUILD.serde-value-0.7.0.bazel | 87 + .../BUILD.serde_derive-1.0.219.bazel | 4 +- .../BUILD.serde_json-1.0.140.bazel | 2 +- ....bazel => BUILD.serde_spanned-0.6.9.bazel} | 2 +- ....0.bazel => BUILD.serde_with-3.13.0.bazel} | 4 +- ...l => BUILD.serde_with_macros-3.13.0.bazel} | 6 +- ...14.0.bazel => BUILD.smallvec-1.15.1.bazel} | 2 +- .../BUILD.stable_deref_trait-1.2.0.bazel | 3 + ...-2.0.100.bazel => BUILD.syn-2.0.103.bazel} | 5 +- .../BUILD.synstructure-0.13.1.bazel | 4 +- .../BUILD.thiserror-1.0.69.bazel | 145 ++ .../BUILD.thiserror-impl-1.0.69.bazel | 88 ++ .../BUILD.thiserror-impl-2.0.12.bazel | 4 +- .../BUILD.thread_local-1.1.8.bazel | 2 +- .../BUILD.tinystr-0.8.1.bazel | 93 ++ ...l-0.8.20.bazel => BUILD.toml-0.8.23.bazel} | 8 +- ...bazel => BUILD.toml_datetime-0.6.11.bazel} | 2 +- ...24.bazel => BUILD.toml_edit-0.22.27.bazel} | 9 +- .../BUILD.toml_write-0.1.2.bazel | 88 ++ .../BUILD.tracing-attributes-0.1.28.bazel | 4 +- .../BUILD.tracing-subscriber-0.3.19.bazel | 2 +- ...-1.0.20.bazel => BUILD.typeid-1.0.3.bazel} | 20 +- .../BUILD.url-2.5.4.bazel | 92 ++ .../BUILD.utf8_iter-1.0.4.bazel | 83 + .../BUILD.wasm-bindgen-0.2.99.bazel | 2 +- .../BUILD.wasm-bindgen-backend-0.2.99.bazel | 4 +- ...LD.wasm-bindgen-macro-support-0.2.99.bazel | 4 +- .../BUILD.windows-0.58.0.bazel | 87 - .../BUILD.windows-result-0.2.0.bazel | 86 - .../BUILD.windows-strings-0.1.0.bazel | 87 - .../BUILD.windows-sys-0.59.0.bazel | 1 - .../BUILD.windows-sys-0.60.2.bazel | 94 ++ .../BUILD.windows-targets-0.53.2.bazel | 104 ++ ...BUILD.windows_aarch64_gnullvm-0.53.0.bazel | 142 ++ .../BUILD.windows_aarch64_msvc-0.53.0.bazel | 142 ++ .../BUILD.windows_i686_gnu-0.53.0.bazel | 142 ++ .../BUILD.windows_i686_gnullvm-0.53.0.bazel | 142 ++ .../BUILD.windows_i686_msvc-0.53.0.bazel | 142 ++ .../BUILD.windows_x86_64_gnu-0.53.0.bazel | 142 ++ .../BUILD.windows_x86_64_gnullvm-0.53.0.bazel | 142 ++ .../BUILD.windows_x86_64_msvc-0.53.0.bazel | 142 ++ ...-0.7.3.bazel => BUILD.winnow-0.7.11.bazel} | 2 +- .../BUILD.writeable-0.6.1.bazel | 83 + .../BUILD.yoke-0.8.0.bazel | 95 ++ .../BUILD.yoke-derive-0.8.0.bazel | 89 ++ .../BUILD.zerocopy-0.8.20.bazel | 6 - .../BUILD.zerocopy-derive-0.7.35.bazel | 4 +- .../BUILD.zerocopy-derive-0.8.20.bazel | 4 +- .../BUILD.zerofrom-0.1.6.bazel | 90 ++ .../BUILD.zerofrom-derive-0.1.6.bazel | 89 ++ .../BUILD.zerotrie-0.2.2.bazel | 94 ++ .../BUILD.zerovec-0.11.2.bazel | 95 ++ .../BUILD.zerovec-derive-0.11.1.bazel | 88 ++ .../tree_sitter_extractors_deps/defs.bzl | 1393 +++++++++++------ 172 files changed, 6468 insertions(+), 1949 deletions(-) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.anyhow-1.0.97.bazel => BUILD.anyhow-1.0.98.bazel} (97%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.bitflags-2.9.0.bazel => BUILD.bitflags-2.9.1.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.boxcar-0.2.11.bazel => BUILD.boxcar-0.2.13.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.camino-1.1.9.bazel => BUILD.camino-1.1.10.bazel} (97%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.cargo-platform-0.1.9.bazel => BUILD.cargo-platform-0.2.0.bazel} (99%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.2.0.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.cargo_metadata-0.19.2.bazel => BUILD.cargo_metadata-0.20.0.bazel} (95%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.cfg-if-1.0.0.bazel => BUILD.cfg-if-1.0.1.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.chalk-derive-0.100.0.bazel => BUILD.chalk-derive-0.103.0.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.chalk-ir-0.100.0.bazel => BUILD.chalk-ir-0.103.0.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.chalk-recursive-0.100.0.bazel => BUILD.chalk-recursive-0.103.0.bazel} (95%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.chalk-solve-0.100.0.bazel => BUILD.chalk-solve-0.103.0.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.chrono-0.4.40.bazel => BUILD.chrono-0.4.41.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.clap-4.5.35.bazel => BUILD.clap-4.5.40.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.clap_builder-4.5.35.bazel => BUILD.clap_builder-4.5.40.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.clap_derive-4.5.32.bazel => BUILD.clap_derive-4.5.40.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.crossbeam-channel-0.5.14.bazel => BUILD.crossbeam-channel-0.5.15.bazel} (99%) delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-5.5.3.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.windows-implement-0.58.0.bazel => BUILD.displaydoc-0.2.5.bazel} (94%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.generator-0.8.4.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.hermit-abi-0.3.9.bazel => BUILD.hermit-abi-0.5.2.bazel} (99%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.windows-core-0.58.0.bazel => BUILD.icu_normalizer-2.0.0.bazel} (87%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.jod-thread-0.1.2.bazel => BUILD.jod-thread-1.0.0.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.libc-0.2.171.bazel => BUILD.libc-0.2.174.bazel} (97%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.loom-0.7.2.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.memchr-2.7.4.bazel => BUILD.memchr-2.7.5.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.num_cpus-1.16.0.bazel => BUILD.num_cpus-1.17.0.bazel} (74%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.proc-macro2-1.0.94.bazel => BUILD.proc-macro2-1.0.95.bazel} (97%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_abi-0.100.0.bazel => BUILD.ra-ap-rustc_abi-0.116.0.bazel} (91%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_hashes-0.100.0.bazel => BUILD.ra-ap-rustc_hashes-0.116.0.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_index-0.100.0.bazel => BUILD.ra-ap-rustc_index-0.116.0.bazel} (94%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_index_macros-0.100.0.bazel => BUILD.ra-ap-rustc_index_macros-0.116.0.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_lexer-0.100.0.bazel => BUILD.ra-ap-rustc_lexer-0.116.0.bazel} (98%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_parse_format-0.100.0.bazel => BUILD.ra-ap-rustc_parse_format-0.116.0.bazel} (92%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra-ap-rustc_pattern_analysis-0.100.0.bazel => BUILD.ra-ap-rustc_pattern_analysis-0.116.0.bazel} (93%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_base_db-0.0.273.bazel => BUILD.ra_ap_base_db-0.0.288.bazel} (80%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_cfg-0.0.273.bazel => BUILD.ra_ap_cfg-0.0.288.bazel} (93%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_edition-0.0.273.bazel => BUILD.ra_ap_edition-0.0.288.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_hir-0.0.273.bazel => BUILD.ra_ap_hir-0.0.288.bazel} (75%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_hir_def-0.0.273.bazel => BUILD.ra_ap_hir_def-0.0.288.bazel} (73%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_hir_expand-0.0.273.bazel => BUILD.ra_ap_hir_expand-0.0.288.bazel} (72%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_hir_ty-0.0.273.bazel => BUILD.ra_ap_hir_ty-0.0.288.bazel} (72%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_ide_db-0.0.273.bazel => BUILD.ra_ap_ide_db-0.0.288.bazel} (75%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_intern-0.0.273.bazel => BUILD.ra_ap_intern-0.0.288.bazel} (98%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_load-cargo-0.0.273.bazel => BUILD.ra_ap_load-cargo-0.0.288.bazel} (75%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_mbe-0.0.273.bazel => BUILD.ra_ap_mbe-0.0.288.bazel} (81%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_parser-0.0.273.bazel => BUILD.ra_ap_parser-0.0.288.bazel} (92%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_paths-0.0.273.bazel => BUILD.ra_ap_paths-0.0.288.bazel} (98%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_proc_macro_api-0.0.273.bazel => BUILD.ra_ap_proc_macro_api-0.0.288.bazel} (86%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_profile-0.0.273.bazel => BUILD.ra_ap_profile-0.0.288.bazel} (87%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_project_model-0.0.273.bazel => BUILD.ra_ap_project_model-0.0.288.bazel} (80%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_query-group-macro-0.0.273.bazel => BUILD.ra_ap_query-group-macro-0.0.288.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_span-0.0.273.bazel => BUILD.ra_ap_span-0.0.288.bazel} (90%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_stdx-0.0.273.bazel => BUILD.ra_ap_stdx-0.0.288.bazel} (76%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_syntax-0.0.273.bazel => BUILD.ra_ap_syntax-0.0.288.bazel} (92%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_syntax-bridge-0.0.273.bazel => BUILD.ra_ap_syntax-bridge-0.0.288.bazel} (83%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_toolchain-0.0.273.bazel => BUILD.ra_ap_toolchain-0.0.288.bazel} (98%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_tt-0.0.273.bazel => BUILD.ra_ap_tt-0.0.288.bazel} (91%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_vfs-0.0.273.bazel => BUILD.ra_ap_vfs-0.0.288.bazel} (92%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.ra_ap_vfs-notify-0.0.273.bazel => BUILD.ra_ap_vfs-notify-0.0.288.bazel} (89%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.rand-0.9.0.bazel => BUILD.rand-0.9.1.bazel} (98%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.windows-interface-0.58.0.bazel => BUILD.ref-cast-impl-1.0.24.bazel} (94%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.2.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.3.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.rustc_apfloat-0.2.2+llvm-462a31f5a5ab.bazel => BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel} (95%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.salsa-0.19.0.bazel => BUILD.salsa-0.22.0.bazel} (93%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.salsa-macro-rules-0.19.0.bazel => BUILD.salsa-macro-rules-0.22.0.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.salsa-macros-0.19.0.bazel => BUILD.salsa-macros-0.22.0.bazel} (96%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.serde_spanned-0.6.8.bazel => BUILD.serde_spanned-0.6.9.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.serde_with-3.12.0.bazel => BUILD.serde_with-3.13.0.bazel} (97%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.serde_with_macros-3.12.0.bazel => BUILD.serde_with_macros-3.13.0.bazel} (96%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.smallvec-1.14.0.bazel => BUILD.smallvec-1.15.1.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.syn-2.0.100.bazel => BUILD.syn-2.0.103.bazel} (97%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-1.0.69.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-1.0.69.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.toml-0.8.20.bazel => BUILD.toml-0.8.23.bazel} (94%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.toml_datetime-0.6.8.bazel => BUILD.toml_datetime-0.6.11.bazel} (99%) rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.toml_edit-0.22.24.bazel => BUILD.toml_edit-0.22.27.bazel} (93%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.rustversion-1.0.20.bazel => BUILD.typeid-1.0.3.bazel} (93%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-0.58.0.bazel delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.2.0.bazel delete mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.1.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel rename misc/bazel/3rdparty/tree_sitter_extractors_deps/{BUILD.winnow-0.7.3.bazel => BUILD.winnow-0.7.11.bazel} (99%) create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel create mode 100644 misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel diff --git a/Cargo.lock b/Cargo.lock index c9d363f5118..ddc8353de73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3449,3 +3449,4 @@ dependencies = [ name = "rustc_apfloat" version = "0.2.2+llvm-462a31f5a5ab" source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" + diff --git a/MODULE.bazel b/MODULE.bazel index ede9df530c5..c30304156e3 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -71,11 +71,11 @@ use_repo( tree_sitter_extractors_deps = use_extension("//misc/bazel/3rdparty:tree_sitter_extractors_extension.bzl", "r") use_repo( tree_sitter_extractors_deps, - "vendor_ts__anyhow-1.0.97", + "vendor_ts__anyhow-1.0.98", "vendor_ts__argfile-0.2.1", - "vendor_ts__chalk-ir-0.100.0", - "vendor_ts__chrono-0.4.40", - "vendor_ts__clap-4.5.35", + "vendor_ts__chalk-ir-0.103.0", + "vendor_ts__chrono-0.4.41", + "vendor_ts__clap-4.5.40", "vendor_ts__dunce-1.0.5", "vendor_ts__either-1.15.0", "vendor_ts__encoding-0.2.33", @@ -87,33 +87,33 @@ use_repo( "vendor_ts__lazy_static-1.5.0", "vendor_ts__mustache-0.9.0", "vendor_ts__num-traits-0.2.19", - "vendor_ts__num_cpus-1.16.0", - "vendor_ts__proc-macro2-1.0.94", + "vendor_ts__num_cpus-1.17.0", + "vendor_ts__proc-macro2-1.0.95", "vendor_ts__quote-1.0.40", - "vendor_ts__ra_ap_base_db-0.0.273", - "vendor_ts__ra_ap_cfg-0.0.273", - "vendor_ts__ra_ap_hir-0.0.273", - "vendor_ts__ra_ap_hir_def-0.0.273", - "vendor_ts__ra_ap_hir_expand-0.0.273", - "vendor_ts__ra_ap_hir_ty-0.0.273", - "vendor_ts__ra_ap_ide_db-0.0.273", - "vendor_ts__ra_ap_intern-0.0.273", - "vendor_ts__ra_ap_load-cargo-0.0.273", - "vendor_ts__ra_ap_parser-0.0.273", - "vendor_ts__ra_ap_paths-0.0.273", - "vendor_ts__ra_ap_project_model-0.0.273", - "vendor_ts__ra_ap_span-0.0.273", - "vendor_ts__ra_ap_stdx-0.0.273", - "vendor_ts__ra_ap_syntax-0.0.273", - "vendor_ts__ra_ap_vfs-0.0.273", - "vendor_ts__rand-0.9.0", + "vendor_ts__ra_ap_base_db-0.0.288", + "vendor_ts__ra_ap_cfg-0.0.288", + "vendor_ts__ra_ap_hir-0.0.288", + "vendor_ts__ra_ap_hir_def-0.0.288", + "vendor_ts__ra_ap_hir_expand-0.0.288", + "vendor_ts__ra_ap_hir_ty-0.0.288", + "vendor_ts__ra_ap_ide_db-0.0.288", + "vendor_ts__ra_ap_intern-0.0.288", + "vendor_ts__ra_ap_load-cargo-0.0.288", + "vendor_ts__ra_ap_parser-0.0.288", + "vendor_ts__ra_ap_paths-0.0.288", + "vendor_ts__ra_ap_project_model-0.0.288", + "vendor_ts__ra_ap_span-0.0.288", + "vendor_ts__ra_ap_stdx-0.0.288", + "vendor_ts__ra_ap_syntax-0.0.288", + "vendor_ts__ra_ap_vfs-0.0.288", + "vendor_ts__rand-0.9.1", "vendor_ts__rayon-1.10.0", "vendor_ts__regex-1.11.1", "vendor_ts__serde-1.0.219", "vendor_ts__serde_json-1.0.140", - "vendor_ts__serde_with-3.12.0", - "vendor_ts__syn-2.0.100", - "vendor_ts__toml-0.8.20", + "vendor_ts__serde_with-3.13.0", + "vendor_ts__syn-2.0.103", + "vendor_ts__toml-0.8.23", "vendor_ts__tracing-0.1.41", "vendor_ts__tracing-flame-0.2.0", "vendor_ts__tracing-subscriber-0.3.19", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel index cade1a4cb93..2132ca53645 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.aho-corasick-1.1.3.bazel @@ -86,6 +86,6 @@ rust_library( }), version = "1.1.3", deps = [ - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel index d5999d21366..2063ae43393 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.android_system_properties-0.1.5.bazel @@ -81,6 +81,6 @@ rust_library( }), version = "0.1.5", deps = [ - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.97.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.98.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.97.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.98.bazel index ae13110a5ea..a73766e27bb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.97.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.anyhow-1.0.98.bazel @@ -84,9 +84,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.97", + version = "1.0.98", deps = [ - "@vendor_ts__anyhow-1.0.97//:build_script_build", + "@vendor_ts__anyhow-1.0.98//:build_script_build", ], ) @@ -139,7 +139,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.0.97", + version = "1.0.98", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel index 52ebf159f01..8b09c0613aa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bazel @@ -32,14 +32,14 @@ filegroup( # Workspace Member Dependencies alias( - name = "anyhow-1.0.97", - actual = "@vendor_ts__anyhow-1.0.97//:anyhow", + name = "anyhow-1.0.98", + actual = "@vendor_ts__anyhow-1.0.98//:anyhow", tags = ["manual"], ) alias( name = "anyhow", - actual = "@vendor_ts__anyhow-1.0.97//:anyhow", + actual = "@vendor_ts__anyhow-1.0.98//:anyhow", tags = ["manual"], ) @@ -56,38 +56,38 @@ alias( ) alias( - name = "chalk-ir-0.100.0", - actual = "@vendor_ts__chalk-ir-0.100.0//:chalk_ir", + name = "chalk-ir-0.103.0", + actual = "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", tags = ["manual"], ) alias( name = "chalk-ir", - actual = "@vendor_ts__chalk-ir-0.100.0//:chalk_ir", + actual = "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", tags = ["manual"], ) alias( - name = "chrono-0.4.40", - actual = "@vendor_ts__chrono-0.4.40//:chrono", + name = "chrono-0.4.41", + actual = "@vendor_ts__chrono-0.4.41//:chrono", tags = ["manual"], ) alias( name = "chrono", - actual = "@vendor_ts__chrono-0.4.40//:chrono", + actual = "@vendor_ts__chrono-0.4.41//:chrono", tags = ["manual"], ) alias( - name = "clap-4.5.35", - actual = "@vendor_ts__clap-4.5.35//:clap", + name = "clap-4.5.40", + actual = "@vendor_ts__clap-4.5.40//:clap", tags = ["manual"], ) alias( name = "clap", - actual = "@vendor_ts__clap-4.5.35//:clap", + actual = "@vendor_ts__clap-4.5.40//:clap", tags = ["manual"], ) @@ -224,26 +224,26 @@ alias( ) alias( - name = "num_cpus-1.16.0", - actual = "@vendor_ts__num_cpus-1.16.0//:num_cpus", + name = "num_cpus-1.17.0", + actual = "@vendor_ts__num_cpus-1.17.0//:num_cpus", tags = ["manual"], ) alias( name = "num_cpus", - actual = "@vendor_ts__num_cpus-1.16.0//:num_cpus", + actual = "@vendor_ts__num_cpus-1.17.0//:num_cpus", tags = ["manual"], ) alias( - name = "proc-macro2-1.0.94", - actual = "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + name = "proc-macro2-1.0.95", + actual = "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", tags = ["manual"], ) alias( name = "proc-macro2", - actual = "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + actual = "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", tags = ["manual"], ) @@ -260,212 +260,212 @@ alias( ) alias( - name = "ra_ap_base_db-0.0.273", - actual = "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", + name = "ra_ap_base_db-0.0.288", + actual = "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", tags = ["manual"], ) alias( name = "ra_ap_base_db", - actual = "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", + actual = "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", tags = ["manual"], ) alias( - name = "ra_ap_cfg-0.0.273", - actual = "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", + name = "ra_ap_cfg-0.0.288", + actual = "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", tags = ["manual"], ) alias( name = "ra_ap_cfg", - actual = "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", + actual = "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", tags = ["manual"], ) alias( - name = "ra_ap_hir-0.0.273", - actual = "@vendor_ts__ra_ap_hir-0.0.273//:ra_ap_hir", + name = "ra_ap_hir-0.0.288", + actual = "@vendor_ts__ra_ap_hir-0.0.288//:ra_ap_hir", tags = ["manual"], ) alias( name = "ra_ap_hir", - actual = "@vendor_ts__ra_ap_hir-0.0.273//:ra_ap_hir", + actual = "@vendor_ts__ra_ap_hir-0.0.288//:ra_ap_hir", tags = ["manual"], ) alias( - name = "ra_ap_hir_def-0.0.273", - actual = "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def", + name = "ra_ap_hir_def-0.0.288", + actual = "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def", tags = ["manual"], ) alias( name = "ra_ap_hir_def", - actual = "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def", + actual = "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def", tags = ["manual"], ) alias( - name = "ra_ap_hir_expand-0.0.273", - actual = "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", + name = "ra_ap_hir_expand-0.0.288", + actual = "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", tags = ["manual"], ) alias( name = "ra_ap_hir_expand", - actual = "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", + actual = "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", tags = ["manual"], ) alias( - name = "ra_ap_hir_ty-0.0.273", - actual = "@vendor_ts__ra_ap_hir_ty-0.0.273//:ra_ap_hir_ty", + name = "ra_ap_hir_ty-0.0.288", + actual = "@vendor_ts__ra_ap_hir_ty-0.0.288//:ra_ap_hir_ty", tags = ["manual"], ) alias( name = "ra_ap_hir_ty", - actual = "@vendor_ts__ra_ap_hir_ty-0.0.273//:ra_ap_hir_ty", + actual = "@vendor_ts__ra_ap_hir_ty-0.0.288//:ra_ap_hir_ty", tags = ["manual"], ) alias( - name = "ra_ap_ide_db-0.0.273", - actual = "@vendor_ts__ra_ap_ide_db-0.0.273//:ra_ap_ide_db", + name = "ra_ap_ide_db-0.0.288", + actual = "@vendor_ts__ra_ap_ide_db-0.0.288//:ra_ap_ide_db", tags = ["manual"], ) alias( name = "ra_ap_ide_db", - actual = "@vendor_ts__ra_ap_ide_db-0.0.273//:ra_ap_ide_db", + actual = "@vendor_ts__ra_ap_ide_db-0.0.288//:ra_ap_ide_db", tags = ["manual"], ) alias( - name = "ra_ap_intern-0.0.273", - actual = "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", + name = "ra_ap_intern-0.0.288", + actual = "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", tags = ["manual"], ) alias( name = "ra_ap_intern", - actual = "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", + actual = "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", tags = ["manual"], ) alias( - name = "ra_ap_load-cargo-0.0.273", - actual = "@vendor_ts__ra_ap_load-cargo-0.0.273//:ra_ap_load_cargo", + name = "ra_ap_load-cargo-0.0.288", + actual = "@vendor_ts__ra_ap_load-cargo-0.0.288//:ra_ap_load_cargo", tags = ["manual"], ) alias( name = "ra_ap_load-cargo", - actual = "@vendor_ts__ra_ap_load-cargo-0.0.273//:ra_ap_load_cargo", + actual = "@vendor_ts__ra_ap_load-cargo-0.0.288//:ra_ap_load_cargo", tags = ["manual"], ) alias( - name = "ra_ap_parser-0.0.273", - actual = "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", + name = "ra_ap_parser-0.0.288", + actual = "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", tags = ["manual"], ) alias( name = "ra_ap_parser", - actual = "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", + actual = "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", tags = ["manual"], ) alias( - name = "ra_ap_paths-0.0.273", - actual = "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", + name = "ra_ap_paths-0.0.288", + actual = "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", tags = ["manual"], ) alias( name = "ra_ap_paths", - actual = "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", + actual = "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", tags = ["manual"], ) alias( - name = "ra_ap_project_model-0.0.273", - actual = "@vendor_ts__ra_ap_project_model-0.0.273//:ra_ap_project_model", + name = "ra_ap_project_model-0.0.288", + actual = "@vendor_ts__ra_ap_project_model-0.0.288//:ra_ap_project_model", tags = ["manual"], ) alias( name = "ra_ap_project_model", - actual = "@vendor_ts__ra_ap_project_model-0.0.273//:ra_ap_project_model", + actual = "@vendor_ts__ra_ap_project_model-0.0.288//:ra_ap_project_model", tags = ["manual"], ) alias( - name = "ra_ap_span-0.0.273", - actual = "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", + name = "ra_ap_span-0.0.288", + actual = "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", tags = ["manual"], ) alias( name = "ra_ap_span", - actual = "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", + actual = "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", tags = ["manual"], ) alias( - name = "ra_ap_stdx-0.0.273", - actual = "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + name = "ra_ap_stdx-0.0.288", + actual = "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", tags = ["manual"], ) alias( - name = "stdx-0.0.273", - actual = "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + name = "stdx-0.0.288", + actual = "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", tags = ["manual"], ) alias( name = "stdx", - actual = "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + actual = "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", tags = ["manual"], ) alias( - name = "ra_ap_syntax-0.0.273", - actual = "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", + name = "ra_ap_syntax-0.0.288", + actual = "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", tags = ["manual"], ) alias( name = "ra_ap_syntax", - actual = "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", + actual = "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", tags = ["manual"], ) alias( - name = "ra_ap_vfs-0.0.273", - actual = "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + name = "ra_ap_vfs-0.0.288", + actual = "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", tags = ["manual"], ) alias( name = "ra_ap_vfs", - actual = "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + actual = "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", tags = ["manual"], ) alias( - name = "rand-0.9.0", - actual = "@vendor_ts__rand-0.9.0//:rand", + name = "rand-0.9.1", + actual = "@vendor_ts__rand-0.9.1//:rand", tags = ["manual"], ) alias( name = "rand", - actual = "@vendor_ts__rand-0.9.0//:rand", + actual = "@vendor_ts__rand-0.9.1//:rand", tags = ["manual"], ) @@ -518,38 +518,38 @@ alias( ) alias( - name = "serde_with-3.12.0", - actual = "@vendor_ts__serde_with-3.12.0//:serde_with", + name = "serde_with-3.13.0", + actual = "@vendor_ts__serde_with-3.13.0//:serde_with", tags = ["manual"], ) alias( name = "serde_with", - actual = "@vendor_ts__serde_with-3.12.0//:serde_with", + actual = "@vendor_ts__serde_with-3.13.0//:serde_with", tags = ["manual"], ) alias( - name = "syn-2.0.100", - actual = "@vendor_ts__syn-2.0.100//:syn", + name = "syn-2.0.103", + actual = "@vendor_ts__syn-2.0.103//:syn", tags = ["manual"], ) alias( name = "syn", - actual = "@vendor_ts__syn-2.0.100//:syn", + actual = "@vendor_ts__syn-2.0.103//:syn", tags = ["manual"], ) alias( - name = "toml-0.8.20", - actual = "@vendor_ts__toml-0.8.20//:toml", + name = "toml-0.8.23", + actual = "@vendor_ts__toml-0.8.23//:toml", tags = ["manual"], ) alias( name = "toml", - actual = "@vendor_ts__toml-0.8.20//:toml", + actual = "@vendor_ts__toml-0.8.23//:toml", tags = ["manual"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel index e5f84a9323f..f3f2b4bd254 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bitflags-2.9.1.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.9.0", + version = "2.9.1", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.11.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.11.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel index 06ae2c25a76..4c7c453d12b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.11.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.boxcar-0.2.13.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.11", + version = "0.2.13", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel index baeadd361ef..052150604e8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.bstr-1.11.3.bazel @@ -85,6 +85,6 @@ rust_library( }), version = "1.11.3", deps = [ - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel index 27672271a76..98c88b9375e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.camino-1.1.10.bazel @@ -84,9 +84,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.1.9", + version = "1.1.10", deps = [ - "@vendor_ts__camino-1.1.9//:build_script_build", + "@vendor_ts__camino-1.1.10//:build_script_build", "@vendor_ts__serde-1.0.219//:serde", ], ) @@ -140,7 +140,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.1.9", + version = "1.1.10", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.1.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.1.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel index a95435a6151..884bfd80837 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.1.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-platform-0.2.0.bazel @@ -79,7 +79,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.9", + version = "0.2.0", deps = [ "@vendor_ts__serde-1.0.219//:serde", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.2.0.bazel new file mode 100644 index 00000000000..157f3891512 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo-util-schemas-0.2.0.bazel @@ -0,0 +1,93 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "cargo_util_schemas", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=cargo-util-schemas", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.0", + deps = [ + "@vendor_ts__semver-1.0.26//:semver", + "@vendor_ts__serde-1.0.219//:serde", + "@vendor_ts__serde-untagged-0.1.7//:serde_untagged", + "@vendor_ts__serde-value-0.7.0//:serde_value", + "@vendor_ts__thiserror-1.0.69//:thiserror", + "@vendor_ts__toml-0.8.23//:toml", + "@vendor_ts__unicode-xid-0.2.6//:unicode_xid", + "@vendor_ts__url-2.5.4//:url", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.19.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.20.0.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.19.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.20.0.bazel index 5be95a9511f..d005068efc1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.19.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cargo_metadata-0.20.0.bazel @@ -82,10 +82,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.19.2", + version = "0.20.0", deps = [ - "@vendor_ts__camino-1.1.9//:camino", - "@vendor_ts__cargo-platform-0.1.9//:cargo_platform", + "@vendor_ts__camino-1.1.10//:camino", + "@vendor_ts__cargo-platform-0.2.0//:cargo_platform", + "@vendor_ts__cargo-util-schemas-0.2.0//:cargo_util_schemas", "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__serde-1.0.219//:serde", "@vendor_ts__serde_json-1.0.140//:serde_json", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel index 54aab54c9ca..17f020da447 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cc-1.2.7.bazel @@ -88,37 +88,37 @@ rust_library( "@vendor_ts__shlex-1.3.0//:shlex", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # aarch64-apple-darwin + "@vendor_ts__libc-0.2.174//:libc", # aarch64-apple-darwin ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # aarch64-unknown-linux-gnu + "@vendor_ts__libc-0.2.174//:libc", # aarch64-unknown-linux-gnu ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu + "@vendor_ts__libc-0.2.174//:libc", # aarch64-unknown-linux-gnu, aarch64-unknown-nixos-gnu ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # arm-unknown-linux-gnueabi + "@vendor_ts__libc-0.2.174//:libc", # arm-unknown-linux-gnueabi ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # i686-unknown-linux-gnu + "@vendor_ts__libc-0.2.174//:libc", # i686-unknown-linux-gnu ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # powerpc-unknown-linux-gnu + "@vendor_ts__libc-0.2.174//:libc", # powerpc-unknown-linux-gnu ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # s390x-unknown-linux-gnu + "@vendor_ts__libc-0.2.174//:libc", # s390x-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # x86_64-apple-darwin + "@vendor_ts__libc-0.2.174//:libc", # x86_64-apple-darwin ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-freebsd + "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-freebsd ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-linux-gnu + "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-linux-gnu ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu + "@vendor_ts__libc-0.2.174//:libc", # x86_64-unknown-linux-gnu, x86_64-unknown-nixos-gnu ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel index f1747e8f077..ad6a15b046e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.cfg-if-1.0.1.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.0", + version = "1.0.1", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel index 3e9e66a96dc..15da420c019 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-derive-0.103.0.bazel @@ -79,11 +79,11 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.103.0", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", "@vendor_ts__synstructure-0.13.1//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel index a15909217db..de782121b24 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-ir-0.103.0.bazel @@ -31,7 +31,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2018", proc_macro_deps = [ - "@vendor_ts__chalk-derive-0.100.0//:chalk_derive", + "@vendor_ts__chalk-derive-0.103.0//:chalk_derive", ], rustc_flags = [ "--cap-lints=allow", @@ -82,8 +82,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.103.0", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", + "@vendor_ts__bitflags-2.9.1//:bitflags", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel index 4a3b7135706..fc517c41574 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-recursive-0.103.0.bazel @@ -31,7 +31,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2018", proc_macro_deps = [ - "@vendor_ts__chalk-derive-0.100.0//:chalk_derive", + "@vendor_ts__chalk-derive-0.103.0//:chalk_derive", ], rustc_flags = [ "--cap-lints=allow", @@ -82,10 +82,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.103.0", deps = [ - "@vendor_ts__chalk-ir-0.100.0//:chalk_ir", - "@vendor_ts__chalk-solve-0.100.0//:chalk_solve", + "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", + "@vendor_ts__chalk-solve-0.103.0//:chalk_solve", "@vendor_ts__rustc-hash-1.1.0//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel index 1aa7560fbf2..178d593115b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chalk-solve-0.103.0.bazel @@ -31,7 +31,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2018", proc_macro_deps = [ - "@vendor_ts__chalk-derive-0.100.0//:chalk_derive", + "@vendor_ts__chalk-derive-0.103.0//:chalk_derive", ], rustc_flags = [ "--cap-lints=allow", @@ -82,9 +82,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.103.0", deps = [ - "@vendor_ts__chalk-ir-0.100.0//:chalk_ir", + "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", "@vendor_ts__ena-0.14.3//:ena", "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__itertools-0.12.1//:itertools", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.40.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.40.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel index 2e67a0f3f59..b2e5f4d1900 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.40.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.chrono-0.4.41.bazel @@ -95,7 +95,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.4.40", + version = "0.4.41", deps = [ "@vendor_ts__num-traits-0.2.19//:num_traits", "@vendor_ts__serde-1.0.219//:serde", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.35.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.40.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.35.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.40.bazel index c857bb360f3..a5a64da0b5b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.35.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap-4.5.40.bazel @@ -41,7 +41,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__clap_derive-4.5.32//:clap_derive", + "@vendor_ts__clap_derive-4.5.40//:clap_derive", ], rustc_flags = [ "--cap-lints=allow", @@ -92,8 +92,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.35", + version = "4.5.40", deps = [ - "@vendor_ts__clap_builder-4.5.35//:clap_builder", + "@vendor_ts__clap_builder-4.5.40//:clap_builder", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.35.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.40.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.35.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.40.bazel index 8d2e740ebd9..9460432135e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.35.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_builder-4.5.40.bazel @@ -87,7 +87,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.35", + version = "4.5.40", deps = [ "@vendor_ts__anstream-0.6.18//:anstream", "@vendor_ts__anstyle-1.0.10//:anstyle", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.40.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.32.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.40.bazel index 1e66cbe6754..e8af21de157 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.32.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.clap_derive-4.5.40.bazel @@ -82,11 +82,11 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "4.5.32", + version = "4.5.40", deps = [ "@vendor_ts__heck-0.5.0//:heck", - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel index 1bc709e0ab7..02693983763 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crc32fast-1.4.2.bazel @@ -85,6 +85,6 @@ rust_library( }), version = "1.4.2", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.14.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.14.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel index 716f7732fc4..cec59335032 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.14.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.crossbeam-channel-0.5.15.bazel @@ -83,7 +83,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.5.14", + version = "0.5.15", deps = [ "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.10.bazel index 77b6fa435ee..a974cf03b4b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_core-0.20.10.bazel @@ -87,9 +87,9 @@ rust_library( deps = [ "@vendor_ts__fnv-1.0.7//:fnv", "@vendor_ts__ident_case-1.0.1//:ident_case", - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", "@vendor_ts__strsim-0.11.1//:strsim", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.10.bazel index 1effd43d931..cd5a5dd199b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.darling_macro-0.20.10.bazel @@ -83,6 +83,6 @@ rust_proc_macro( deps = [ "@vendor_ts__darling_core-0.20.10//:darling_core", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-5.5.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-5.5.3.bazel deleted file mode 100644 index f761a7301a9..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-5.5.3.bazel +++ /dev/null @@ -1,93 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "dashmap", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_features = [ - "raw-api", - ], - crate_root = "src/lib.rs", - edition = "2018", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=dashmap", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "5.5.3", - deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", - "@vendor_ts__hashbrown-0.14.5//:hashbrown", - "@vendor_ts__lock_api-0.4.12//:lock_api", - "@vendor_ts__once_cell-1.20.3//:once_cell", - "@vendor_ts__parking_lot_core-0.9.10//:parking_lot_core", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel index dba299beec3..8f6dcced0c0 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dashmap-6.1.0.bazel @@ -29,6 +29,7 @@ rust_library( ], ), crate_features = [ + "inline", "raw-api", ], crate_root = "src/lib.rs", @@ -84,7 +85,7 @@ rust_library( }), version = "6.1.0", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", "@vendor_ts__hashbrown-0.14.5//:hashbrown", "@vendor_ts__lock_api-0.4.12//:lock_api", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.58.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.58.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel index d9bbe3ad12c..ef61d1a12af 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-implement-0.58.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.displaydoc-0.2.5.bazel @@ -11,7 +11,7 @@ load("@rules_rust//rust:defs.bzl", "rust_proc_macro") package(default_visibility = ["//visibility:public"]) rust_proc_macro( - name = "windows_implement", + name = "displaydoc", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -35,7 +35,7 @@ rust_proc_macro( ], tags = [ "cargo-bazel", - "crate-name=windows-implement", + "crate-name=displaydoc", "manual", "noclippy", "norustfmt", @@ -79,10 +79,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.58.0", + version = "0.2.5", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel new file mode 100644 index 00000000000..da7eea4ee94 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.dyn-clone-1.0.19.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "dyn_clone", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=dyn-clone", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.19", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel new file mode 100644 index 00000000000..1bd7df32673 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.erased-serde-0.4.6.bazel @@ -0,0 +1,90 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "erased_serde", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=erased-serde", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.4.6", + deps = [ + "@vendor_ts__serde-1.0.219//:serde", + "@vendor_ts__typeid-1.0.3//:typeid", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel index bcb8fb8a739..67efe6c549b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.filetime-0.2.25.bazel @@ -81,88 +81,88 @@ rust_library( }), version = "0.2.25", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel new file mode 100644 index 00000000000..3d002c1c1f6 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.form_urlencoded-1.2.1.bazel @@ -0,0 +1,90 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "form_urlencoded", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=form_urlencoded", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.2.1", + deps = [ + "@vendor_ts__percent-encoding-2.3.1//:percent_encoding", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel index 52e35cc09f6..64bc7d17284 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.fsevent-sys-4.1.0.bazel @@ -81,6 +81,6 @@ rust_library( }), version = "4.1.0", deps = [ - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.generator-0.8.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.generator-0.8.4.bazel deleted file mode 100644 index 0589aa9e457..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.generator-0.8.4.bazel +++ /dev/null @@ -1,230 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//cargo:defs.bzl", "cargo_build_script") -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "generator", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=generator", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.8.4", - deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", - "@vendor_ts__generator-0.8.4//:build_script_build", - "@vendor_ts__log-0.4.27//:log", - ] + select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-0.58.0//:windows", # cfg(windows) - ], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-0.58.0//:windows", # cfg(windows) - ], - "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-0.58.0//:windows", # cfg(windows) - ], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) - ], - "//conditions:default": [], - }), -) - -cargo_build_script( - name = "_bs", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - "**/*.rs", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_name = "build_script_build", - crate_root = "build.rs", - data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - edition = "2021", - pkg_name = "generator", - proc_macro_deps = [ - "@vendor_ts__rustversion-1.0.20//:rustversion", - ], - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=generator", - "manual", - "noclippy", - "norustfmt", - ], - version = "0.8.4", - visibility = ["//visibility:private"], -) - -alias( - name = "build_script_build", - actual = ":_bs", - tags = ["manual"], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.1.bazel index e4cc7ad397a..e21141ad273 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.getrandom-0.3.1.bazel @@ -85,83 +85,83 @@ rust_library( }), version = "0.3.1", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", "@vendor_ts__getrandom-0.3.1//:build_script_build", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(all(windows, not(target_vendor = "win7"))) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "haiku", target_os = "redox", target_os = "nto", target_os = "aix")) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(all(windows, not(target_vendor = "win7"))) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", all(target_os = "horizon", target_arch = "arm"))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", all(target_os = "horizon", target_arch = "arm"))) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "macos", target_os = "openbsd", target_os = "vita", target_os = "emscripten")) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "ios", target_os = "visionos", target_os = "watchos", target_os = "tvos")) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(all(windows, not(target_vendor = "win7"))) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", all(target_os = "horizon", target_arch = "arm"))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", all(target_os = "horizon", target_arch = "arm"))) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(any(target_os = "linux", target_os = "android"), not(any(getrandom_backend = "custom", getrandom_backend = "rdrand", getrandom_backend = "rndr")))) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.3.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.3.9.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel index c19c192a4ee..3f12e75a518 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.3.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.hermit-abi-0.5.2.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.3.9", + version = "0.5.2", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel new file mode 100644 index 00000000000..c86d9eb2bd6 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_collections-2.0.0.bazel @@ -0,0 +1,92 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_collections", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_collections", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.0", + deps = [ + "@vendor_ts__potential_utf-0.1.2//:potential_utf", + "@vendor_ts__yoke-0.8.0//:yoke", + "@vendor_ts__zerofrom-0.1.6//:zerofrom", + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel new file mode 100644 index 00000000000..817700476ce --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_locale_core-2.0.0.bazel @@ -0,0 +1,95 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_locale_core", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "zerovec", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_locale_core", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.0", + deps = [ + "@vendor_ts__litemap-0.8.0//:litemap", + "@vendor_ts__tinystr-0.8.1//:tinystr", + "@vendor_ts__writeable-0.6.1//:writeable", + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.58.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel similarity index 87% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.58.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel index 232bf249660..889aede4064 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-core-0.58.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer-2.0.0.bazel @@ -11,7 +11,7 @@ load("@rules_rust//rust:defs.bzl", "rust_library") package(default_visibility = ["//visibility:public"]) rust_library( - name = "windows_core", + name = "icu_normalizer", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -28,18 +28,20 @@ rust_library( "WORKSPACE.bazel", ], ), + crate_features = [ + "compiled_data", + ], crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__windows-implement-0.58.0//:windows_implement", - "@vendor_ts__windows-interface-0.58.0//:windows_interface", + "@vendor_ts__displaydoc-0.2.5//:displaydoc", ], rustc_flags = [ "--cap-lints=allow", ], tags = [ "cargo-bazel", - "crate-name=windows-core", + "crate-name=icu_normalizer", "manual", "noclippy", "norustfmt", @@ -83,10 +85,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.58.0", + version = "2.0.0", deps = [ - "@vendor_ts__windows-result-0.2.0//:windows_result", - "@vendor_ts__windows-strings-0.1.0//:windows_strings", - "@vendor_ts__windows-targets-0.52.6//:windows_targets", + "@vendor_ts__icu_collections-2.0.0//:icu_collections", + "@vendor_ts__icu_normalizer_data-2.0.0//:icu_normalizer_data", + "@vendor_ts__icu_provider-2.0.0//:icu_provider", + "@vendor_ts__smallvec-1.15.1//:smallvec", + "@vendor_ts__zerovec-0.11.2//:zerovec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel new file mode 100644 index 00000000000..9a2a78fe541 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_normalizer_data-2.0.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_normalizer_data", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_normalizer_data", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.0", + deps = [ + "@vendor_ts__icu_normalizer_data-2.0.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "icu_normalizer_data", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_normalizer_data", + "manual", + "noclippy", + "norustfmt", + ], + version = "2.0.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel new file mode 100644 index 00000000000..6f4c34bd93e --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties-2.0.1.bazel @@ -0,0 +1,98 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_properties", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "compiled_data", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_properties", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.1", + deps = [ + "@vendor_ts__icu_collections-2.0.0//:icu_collections", + "@vendor_ts__icu_locale_core-2.0.0//:icu_locale_core", + "@vendor_ts__icu_properties_data-2.0.1//:icu_properties_data", + "@vendor_ts__icu_provider-2.0.0//:icu_provider", + "@vendor_ts__potential_utf-0.1.2//:potential_utf", + "@vendor_ts__zerotrie-0.2.2//:zerotrie", + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel new file mode 100644 index 00000000000..017eafee027 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_properties_data-2.0.1.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_properties_data", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_properties_data", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.1", + deps = [ + "@vendor_ts__icu_properties_data-2.0.1//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "icu_properties_data", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_properties_data", + "manual", + "noclippy", + "norustfmt", + ], + version = "2.0.1", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel new file mode 100644 index 00000000000..13581bbaeaf --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.icu_provider-2.0.0.bazel @@ -0,0 +1,100 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "icu_provider", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "baked", + "zerotrie", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=icu_provider", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.0.0", + deps = [ + "@vendor_ts__icu_locale_core-2.0.0//:icu_locale_core", + "@vendor_ts__stable_deref_trait-1.2.0//:stable_deref_trait", + "@vendor_ts__tinystr-0.8.1//:tinystr", + "@vendor_ts__writeable-0.6.1//:writeable", + "@vendor_ts__yoke-0.8.0//:yoke", + "@vendor_ts__zerofrom-0.1.6//:zerofrom", + "@vendor_ts__zerotrie-0.2.2//:zerotrie", + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel new file mode 100644 index 00000000000..d040184d1d3 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna-1.0.3.bazel @@ -0,0 +1,93 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "idna", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "compiled_data", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=idna", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.3", + deps = [ + "@vendor_ts__idna_adapter-1.2.1//:idna_adapter", + "@vendor_ts__smallvec-1.15.1//:smallvec", + "@vendor_ts__utf8_iter-1.0.4//:utf8_iter", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel new file mode 100644 index 00000000000..8b0b2b1d9f5 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.idna_adapter-1.2.1.bazel @@ -0,0 +1,90 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "idna_adapter", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "compiled_data", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=idna_adapter", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.2.1", + deps = [ + "@vendor_ts__icu_normalizer-2.0.0//:icu_normalizer", + "@vendor_ts__icu_properties-2.0.1//:icu_properties", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel index aff8348d7f0..3c870418142 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-0.11.0.bazel @@ -81,8 +81,8 @@ rust_library( }), version = "0.11.0", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", + "@vendor_ts__bitflags-2.9.1//:bitflags", "@vendor_ts__inotify-sys-0.1.5//:inotify_sys", - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel index 5a3e4beb27b..a8710d62738 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.inotify-sys-0.1.5.bazel @@ -81,6 +81,6 @@ rust_library( }), version = "0.1.5", deps = [ - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel index 7e041e35b8c..42f7675b6e9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jobserver-0.1.32.bazel @@ -82,76 +82,76 @@ rust_library( version = "0.1.32", deps = select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-0.1.2.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel index cf3232a110d..8b42813e871 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-0.1.2.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.jod-thread-1.0.0.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.1.2", + version = "1.0.0", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.0.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.0.8.bazel index 9c5a46755fa..805b5abb897 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.0.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-1.0.8.bazel @@ -82,6 +82,6 @@ rust_library( version = "1.0.8", deps = [ "@vendor_ts__kqueue-sys-1.0.4//:kqueue_sys", - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel index ea19f54cb02..57d6a0a8414 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.kqueue-sys-1.0.4.bazel @@ -82,6 +82,6 @@ rust_library( version = "1.0.4", deps = [ "@vendor_ts__bitflags-1.3.2//:bitflags", - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.171.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.171.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel index aedf0e4cfe2..e133650ce78 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.171.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libc-0.2.174.bazel @@ -84,9 +84,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.171", + version = "0.2.174", deps = [ - "@vendor_ts__libc-0.2.171//:build_script_build", + "@vendor_ts__libc-0.2.174//:build_script_build", ], ) @@ -139,7 +139,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.2.171", + version = "0.2.174", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.3.bazel index 99f49837400..1a5916bf230 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.libredox-0.1.3.bazel @@ -81,8 +81,8 @@ rust_library( }), version = "0.1.3", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__libc-0.2.174//:libc", "@vendor_ts__redox_syscall-0.5.8//:syscall", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel new file mode 100644 index 00000000000..25a24590229 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.litemap-0.8.0.bazel @@ -0,0 +1,86 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "litemap", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=litemap", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.0", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.loom-0.7.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.loom-0.7.2.bazel deleted file mode 100644 index 01796e7b3a5..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.loom-0.7.2.bazel +++ /dev/null @@ -1,90 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "loom", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2018", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=loom", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.7.2", - deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", - "@vendor_ts__generator-0.8.4//:generator", - "@vendor_ts__scoped-tls-1.0.1//:scoped_tls", - "@vendor_ts__tracing-0.1.41//:tracing", - "@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.4.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel index 9b85be97a95..93869ada24c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.4.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.memchr-2.7.5.bazel @@ -84,5 +84,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.7.4", + version = "2.7.5", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.3.bazel index 1c48d01d22f..51e25b92464 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.mio-1.0.3.bazel @@ -90,89 +90,89 @@ rust_library( "@vendor_ts__log-0.4.27//:log", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:wasm32-wasip1": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(target_os = "wasi") + "@vendor_ts__libc-0.2.174//:libc", # cfg(target_os = "wasi") "@vendor_ts__wasi-0.11.0-wasi-snapshot-preview1//:wasi", # cfg(target_os = "wasi") ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-sys-0.52.0//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel index 1b78caaf894..2d42cdcc214 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.notify-8.0.0.bazel @@ -87,13 +87,13 @@ rust_library( version = "8.0.0", deps = [ "@vendor_ts__filetime-0.2.25//:filetime", - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", "@vendor_ts__log-0.4.27//:log", "@vendor_ts__notify-types-2.0.0//:notify_types", "@vendor_ts__walkdir-2.5.0//:walkdir", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__bitflags-2.9.0//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # aarch64-apple-darwin ], "@rules_rust//rust/platform:aarch64-apple-ios": [ @@ -132,7 +132,7 @@ rust_library( "@vendor_ts__mio-1.0.3//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__bitflags-2.9.0//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # i686-apple-darwin ], "@rules_rust//rust/platform:i686-linux-android": [ @@ -159,7 +159,7 @@ rust_library( "@vendor_ts__mio-1.0.3//:mio", # cfg(any(target_os = "linux", target_os = "android")) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__bitflags-2.9.0//:bitflags", # cfg(target_os = "macos") + "@vendor_ts__bitflags-2.9.1//:bitflags", # cfg(target_os = "macos") "@vendor_ts__fsevent-sys-4.1.0//:fsevent_sys", # x86_64-apple-darwin ], "@rules_rust//rust/platform:x86_64-apple-ios": [ diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.16.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel similarity index 74% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.16.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel index 057e8dd6c63..7af36eb0bf7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.16.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.num_cpus-1.17.0.bazel @@ -79,106 +79,106 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.16.0", + version = "1.17.0", deps = select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:aarch64-unknown-uefi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:thumbv7em-none-eabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:wasm32-unknown-unknown": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:wasm32-wasip1": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-none": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "@rules_rust//rust/platform:x86_64-unknown-uefi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(not(windows)) + "@vendor_ts__libc-0.2.174//:libc", # cfg(not(windows)) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel new file mode 100644 index 00000000000..95f7e39c15f --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ordered-float-2.10.1.bazel @@ -0,0 +1,90 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "ordered_float", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=ordered-float", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.10.1", + deps = [ + "@vendor_ts__num-traits-0.2.19//:num_traits", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel index ea9024c51ce..429c84ba0b8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.os_str_bytes-7.0.0.bazel @@ -86,6 +86,6 @@ rust_library( }), version = "7.0.0", deps = [ - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.10.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.10.bazel index ea6704cb134..0ecb5f8d20d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.10.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.parking_lot_core-0.9.10.bazel @@ -82,90 +82,90 @@ rust_library( }), version = "0.9.10", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", "@vendor_ts__parking_lot_core-0.9.10//:build_script_build", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__windows-targets-0.52.6//:windows_targets", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel index d4a945c39ea..4cdca3b4365 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.pear_codegen-0.2.9.bazel @@ -81,9 +81,9 @@ rust_proc_macro( }), version = "0.2.9", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__proc-macro2-diagnostics-0.10.1//:proc_macro2_diagnostics", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel new file mode 100644 index 00000000000..fdc7f4b8d86 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.percent-encoding-2.3.1.bazel @@ -0,0 +1,87 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "percent_encoding", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=percent-encoding", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.3.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel index 4f084775990..599061b7148 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-0.4.7.bazel @@ -81,7 +81,7 @@ rust_library( }), version = "0.4.7", deps = [ - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", "@vendor_ts__perf-event-open-sys-1.0.1//:perf_event_open_sys", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel index 1e4bd90b8ae..dd2ae1f69bf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.perf-event-open-sys-1.0.1.bazel @@ -81,6 +81,6 @@ rust_library( }), version = "1.0.1", deps = [ - "@vendor_ts__libc-0.2.171//:libc", + "@vendor_ts__libc-0.2.174//:libc", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel new file mode 100644 index 00000000000..33ae44b0bf4 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.potential_utf-0.1.2.bazel @@ -0,0 +1,89 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "potential_utf", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "zerovec", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=potential_utf", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.2", + deps = [ + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.94.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.95.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.94.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.95.bazel index c7bacd2430c..4466b330c77 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.94.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-1.0.95.bazel @@ -84,9 +84,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.94", + version = "1.0.95", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:build_script_build", + "@vendor_ts__proc-macro2-1.0.95//:build_script_build", "@vendor_ts__unicode-ident-1.0.17//:unicode_ident", ], ) @@ -140,7 +140,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "1.0.94", + version = "1.0.95", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel index 3b05cf97041..39640ee37a5 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.proc-macro2-diagnostics-0.10.1.bazel @@ -87,10 +87,10 @@ rust_library( }), version = "0.10.1", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__proc-macro2-diagnostics-0.10.1//:build_script_build", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", "@vendor_ts__yansi-1.0.1//:yansi", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel index 927021d3331..8898a30228c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.quote-1.0.40.bazel @@ -85,6 +85,6 @@ rust_library( }), version = "1.0.40", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.116.0.bazel similarity index 91% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.116.0.bazel index cc04b2be07d..5c46fefc8be 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_abi-0.116.0.bazel @@ -17,8 +17,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra-ap-rustc_hashes-0.100.0//:ra_ap_rustc_hashes": "rustc_hashes", - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index": "rustc_index", + "@vendor_ts__ra-ap-rustc_hashes-0.116.0//:ra_ap_rustc_hashes": "rustc_hashes", + "@vendor_ts__ra-ap-rustc_index-0.116.0//:ra_ap_rustc_index": "rustc_index", }, compile_data = glob( include = ["**"], @@ -83,11 +83,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", - "@vendor_ts__ra-ap-rustc_hashes-0.100.0//:ra_ap_rustc_hashes", - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index", + "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__ra-ap-rustc_hashes-0.116.0//:ra_ap_rustc_hashes", + "@vendor_ts__ra-ap-rustc_index-0.116.0//:ra_ap_rustc_index", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.116.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.116.0.bazel index 6be975644de..2c21da8c43a 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_hashes-0.116.0.bazel @@ -79,7 +79,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ "@vendor_ts__rustc-stable-hash-0.1.1//:rustc_stable_hash", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.116.0.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.116.0.bazel index 65efb7c784e..4c9e6a2966d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index-0.116.0.bazel @@ -17,7 +17,7 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra-ap-rustc_index_macros-0.100.0//:ra_ap_rustc_index_macros": "rustc_index_macros", + "@vendor_ts__ra-ap-rustc_index_macros-0.116.0//:ra_ap_rustc_index_macros": "rustc_index_macros", }, compile_data = glob( include = ["**"], @@ -34,7 +34,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra-ap-rustc_index_macros-0.100.0//:ra_ap_rustc_index_macros", + "@vendor_ts__ra-ap-rustc_index_macros-0.116.0//:ra_ap_rustc_index_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -85,8 +85,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.116.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.116.0.bazel index 63d0286a338..7e4ec5d88a9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_index_macros-0.116.0.bazel @@ -79,10 +79,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.116.0.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.116.0.bazel index 7c98b84f7fb..41614a75b7f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_lexer-0.116.0.bazel @@ -79,9 +79,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__unicode-properties-0.1.3//:unicode_properties", "@vendor_ts__unicode-xid-0.2.6//:unicode_xid", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.116.0.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.116.0.bazel index 0cf50f5a2b8..c7306e8a7ed 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_parse_format-0.116.0.bazel @@ -17,8 +17,7 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index": "rustc_index", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer": "rustc_lexer", + "@vendor_ts__ra-ap-rustc_lexer-0.116.0//:ra_ap_rustc_lexer": "rustc_lexer", }, compile_data = glob( include = ["**"], @@ -83,9 +82,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer", + "@vendor_ts__ra-ap-rustc_lexer-0.116.0//:ra_ap_rustc_lexer", + "@vendor_ts__rustc-literal-escaper-0.0.2//:rustc_literal_escaper", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.100.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.116.0.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.100.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.116.0.bazel index 3a7ef306f97..f4ffd21c674 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.100.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra-ap-rustc_pattern_analysis-0.116.0.bazel @@ -17,7 +17,7 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index": "rustc_index", + "@vendor_ts__ra-ap-rustc_index-0.116.0//:ra_ap_rustc_index": "rustc_index", }, compile_data = glob( include = ["**"], @@ -82,12 +82,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.100.0", + version = "0.116.0", deps = [ - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index", + "@vendor_ts__ra-ap-rustc_index-0.116.0//:ra_ap_rustc_index", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__rustc_apfloat-0.2.2-llvm-462a31f5a5ab//:rustc_apfloat", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:rustc_apfloat", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.288.bazel similarity index 80% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.288.bazel index fa7cec0dbb2..41eee11ea51 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_base_db-0.0.288.bazel @@ -17,12 +17,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -39,7 +39,8 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -90,17 +91,18 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__dashmap-5.5.3//:dashmap", + "@vendor_ts__dashmap-6.1.0//:dashmap", + "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__salsa-0.19.0//:salsa", + "@vendor_ts__salsa-0.22.0//:salsa", "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.288.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.288.bazel index a80bffe20f9..825ae24a823 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_cfg-0.0.288.bazel @@ -17,8 +17,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -86,10 +86,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.288.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.288.bazel index 15381260d65..c0bdb7f2461 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_edition-0.0.288.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.288.bazel similarity index 75% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.288.bazel index 6bf6732bb06..72ba942959f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir-0.0.288.bazel @@ -17,16 +17,16 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def": "hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_hir_ty-0.0.273//:ra_ap_hir_ty": "hir_ty", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def": "hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_hir_ty-0.0.288//:ra_ap_hir_ty": "hir_ty", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -91,24 +91,24 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", - "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_hir_ty-0.0.273//:ra_ap_hir_ty", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", + "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_hir_ty-0.0.288//:ra_ap_hir_ty", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.288.bazel similarity index 73% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.288.bazel index 2e483df01ff..1e3a2a50bf8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_def-0.0.288.bazel @@ -17,16 +17,16 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_mbe-0.0.273//:ra_ap_mbe": "mbe", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_mbe-0.0.288//:ra_ap_mbe": "mbe", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -43,7 +43,8 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -94,10 +95,10 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.0//:bitflags", + "@vendor_ts__bitflags-2.9.1//:bitflags", "@vendor_ts__cov-mark-2.0.0//:cov_mark", "@vendor_ts__drop_bomb-0.1.5//:drop_bomb", "@vendor_ts__either-1.15.0//:either", @@ -105,21 +106,21 @@ rust_library( "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra-ap-rustc_abi-0.100.0//:ra_ap_rustc_abi", - "@vendor_ts__ra-ap-rustc_parse_format-0.100.0//:ra_ap_rustc_parse_format", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_mbe-0.0.273//:ra_ap_mbe", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra-ap-rustc_abi-0.116.0//:ra_ap_rustc_abi", + "@vendor_ts__ra-ap-rustc_parse_format-0.116.0//:ra_ap_rustc_parse_format", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_mbe-0.0.288//:ra_ap_mbe", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__rustc_apfloat-0.2.2-llvm-462a31f5a5ab//:rustc_apfloat", - "@vendor_ts__salsa-0.19.0//:salsa", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:rustc_apfloat", + "@vendor_ts__salsa-0.22.0//:salsa", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__text-size-1.1.1//:text_size", "@vendor_ts__thin-vec-0.2.14//:thin_vec", "@vendor_ts__tracing-0.1.41//:tracing", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.288.bazel similarity index 72% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.288.bazel index 3bd7c5b7cd5..e3ef7c1e509 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_expand-0.0.288.bazel @@ -17,17 +17,17 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_mbe-0.0.273//:ra_ap_mbe": "mbe", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_syntax-bridge-0.0.273//:ra_ap_syntax_bridge": "syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_mbe-0.0.288//:ra_ap_mbe": "mbe", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_syntax-bridge-0.0.288//:ra_ap_syntax_bridge": "syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -44,7 +44,8 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -95,24 +96,24 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__cov-mark-2.0.0//:cov_mark", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_mbe-0.0.273//:ra_ap_mbe", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_syntax-bridge-0.0.273//:ra_ap_syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_mbe-0.0.288//:ra_ap_mbe", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_syntax-bridge-0.0.288//:ra_ap_syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__salsa-0.19.0//:salsa", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__salsa-0.22.0//:salsa", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.288.bazel similarity index 72% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.288.bazel index a2488ef3be6..443f9de8a47 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_hir_ty-0.0.288.bazel @@ -17,14 +17,14 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def": "hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def": "hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", }, compile_data = glob( include = ["**"], @@ -41,8 +41,9 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__chalk-derive-0.100.0//:chalk_derive", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro", + "@vendor_ts__chalk-derive-0.103.0//:chalk_derive", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -93,13 +94,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.0//:bitflags", - "@vendor_ts__chalk-ir-0.100.0//:chalk_ir", - "@vendor_ts__chalk-recursive-0.100.0//:chalk_recursive", - "@vendor_ts__chalk-solve-0.100.0//:chalk_solve", + "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__chalk-ir-0.103.0//:chalk_ir", + "@vendor_ts__chalk-recursive-0.103.0//:chalk_recursive", + "@vendor_ts__chalk-solve-0.103.0//:chalk_solve", "@vendor_ts__cov-mark-2.0.0//:cov_mark", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__ena-0.14.3//:ena", @@ -107,21 +108,21 @@ rust_library( "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", "@vendor_ts__oorandom-11.1.5//:oorandom", - "@vendor_ts__ra-ap-rustc_abi-0.100.0//:ra_ap_rustc_abi", - "@vendor_ts__ra-ap-rustc_index-0.100.0//:ra_ap_rustc_index", - "@vendor_ts__ra-ap-rustc_pattern_analysis-0.100.0//:ra_ap_rustc_pattern_analysis", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", + "@vendor_ts__ra-ap-rustc_abi-0.116.0//:ra_ap_rustc_abi", + "@vendor_ts__ra-ap-rustc_index-0.116.0//:ra_ap_rustc_index", + "@vendor_ts__ra-ap-rustc_pattern_analysis-0.116.0//:ra_ap_rustc_pattern_analysis", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__rustc_apfloat-0.2.2-llvm-462a31f5a5ab//:rustc_apfloat", - "@vendor_ts__salsa-0.19.0//:salsa", + "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:rustc_apfloat", + "@vendor_ts__salsa-0.22.0//:salsa", "@vendor_ts__scoped-tls-1.0.1//:scoped_tls", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", "@vendor_ts__typed-arena-2.0.2//:typed_arena", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.288.bazel similarity index 75% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.288.bazel index e3741062022..fab14c00d3c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_ide_db-0.0.288.bazel @@ -17,15 +17,15 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_hir-0.0.273//:ra_ap_hir": "hir", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_profile-0.0.273//:ra_ap_profile": "profile", - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro": "query_group", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_hir-0.0.288//:ra_ap_hir": "hir", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_profile-0.0.288//:ra_ap_profile": "profile", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro": "query_group", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -42,7 +42,8 @@ rust_library( crate_root = "src/lib.rs", edition = "2024", proc_macro_deps = [ - "@vendor_ts__ra_ap_query-group-macro-0.0.273//:ra_ap_query_group_macro", + "@vendor_ts__ra_ap_query-group-macro-0.0.288//:ra_ap_query_group_macro", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -93,30 +94,30 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__bitflags-2.9.0//:bitflags", + "@vendor_ts__bitflags-2.9.1//:bitflags", "@vendor_ts__cov-mark-2.0.0//:cov_mark", - "@vendor_ts__crossbeam-channel-0.5.14//:crossbeam_channel", + "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__either-1.15.0//:either", "@vendor_ts__fst-0.4.7//:fst", "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__line-index-0.1.2//:line_index", - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__nohash-hasher-0.2.0//:nohash_hasher", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_hir-0.0.273//:ra_ap_hir", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", - "@vendor_ts__ra_ap_profile-0.0.273//:ra_ap_profile", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_hir-0.0.288//:ra_ap_hir", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", + "@vendor_ts__ra_ap_profile-0.0.288//:ra_ap_profile", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", "@vendor_ts__rayon-1.10.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__salsa-0.19.0//:salsa", + "@vendor_ts__salsa-0.22.0//:salsa", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.288.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.288.bazel index 72e7580e416..69f6bc0b61d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_intern-0.0.288.bazel @@ -79,9 +79,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__dashmap-5.5.3//:dashmap", + "@vendor_ts__dashmap-6.1.0//:dashmap", "@vendor_ts__hashbrown-0.14.5//:hashbrown", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__triomphe-0.1.14//:triomphe", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.288.bazel similarity index 75% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.288.bazel index c9b5273ee2b..ddd508c16ac 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_load-cargo-0.0.288.bazel @@ -17,15 +17,15 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand": "hir_expand", - "@vendor_ts__ra_ap_ide_db-0.0.273//:ra_ap_ide_db": "ide_db", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_proc_macro_api-0.0.273//:ra_ap_proc_macro_api": "proc_macro_api", - "@vendor_ts__ra_ap_project_model-0.0.273//:ra_ap_project_model": "project_model", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs": "vfs", - "@vendor_ts__ra_ap_vfs-notify-0.0.273//:ra_ap_vfs_notify": "vfs_notify", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand": "hir_expand", + "@vendor_ts__ra_ap_ide_db-0.0.288//:ra_ap_ide_db": "ide_db", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_proc_macro_api-0.0.288//:ra_ap_proc_macro_api": "proc_macro_api", + "@vendor_ts__ra_ap_project_model-0.0.288//:ra_ap_project_model": "project_model", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_vfs-notify-0.0.288//:ra_ap_vfs_notify": "vfs_notify", }, compile_data = glob( include = ["**"], @@ -90,20 +90,20 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__anyhow-1.0.97//:anyhow", - "@vendor_ts__crossbeam-channel-0.5.14//:crossbeam_channel", + "@vendor_ts__anyhow-1.0.98//:anyhow", + "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand", - "@vendor_ts__ra_ap_ide_db-0.0.273//:ra_ap_ide_db", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_proc_macro_api-0.0.273//:ra_ap_proc_macro_api", - "@vendor_ts__ra_ap_project_model-0.0.273//:ra_ap_project_model", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", - "@vendor_ts__ra_ap_vfs-notify-0.0.273//:ra_ap_vfs_notify", + "@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand", + "@vendor_ts__ra_ap_ide_db-0.0.288//:ra_ap_ide_db", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_proc_macro_api-0.0.288//:ra_ap_proc_macro_api", + "@vendor_ts__ra_ap_project_model-0.0.288//:ra_ap_project_model", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", + "@vendor_ts__ra_ap_vfs-notify-0.0.288//:ra_ap_vfs_notify", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.288.bazel similarity index 81% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.288.bazel index 635c79e43f3..407345db7b9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_mbe-0.0.288.bazel @@ -17,12 +17,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-bridge-0.0.273//:ra_ap_syntax_bridge": "syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-bridge-0.0.288//:ra_ap_syntax_bridge": "syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -87,18 +87,18 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", "@vendor_ts__cov-mark-2.0.0//:cov_mark", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-bridge-0.0.273//:ra_ap_syntax_bridge", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra-ap-rustc_lexer-0.116.0//:ra_ap_rustc_lexer", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-bridge-0.0.288//:ra_ap_syntax_bridge", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.288.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.288.bazel index 0c1ca867e3d..6ba1bc52d66 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_parser-0.0.288.bazel @@ -17,7 +17,7 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_edition-0.0.273//:ra_ap_edition": "edition", + "@vendor_ts__ra_ap_edition-0.0.288//:ra_ap_edition": "edition", }, compile_data = glob( include = ["**"], @@ -86,11 +86,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__drop_bomb-0.1.5//:drop_bomb", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_edition-0.0.273//:ra_ap_edition", + "@vendor_ts__ra-ap-rustc_lexer-0.116.0//:ra_ap_rustc_lexer", + "@vendor_ts__ra_ap_edition-0.0.288//:ra_ap_edition", + "@vendor_ts__rustc-literal-escaper-0.0.3//:rustc_literal_escaper", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.288.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.288.bazel index fb0f90b4248..402e2decfaf 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_paths-0.0.288.bazel @@ -82,8 +82,8 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__camino-1.1.9//:camino", + "@vendor_ts__camino-1.1.10//:camino", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.288.bazel similarity index 86% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.288.bazel index bdb33ce1a79..9fb6f0751c1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_proc_macro_api-0.0.288.bazel @@ -17,11 +17,11 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -89,14 +89,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__indexmap-2.9.0//:indexmap", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__serde-1.0.219//:serde", "@vendor_ts__serde_json-1.0.140//:serde_json", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.288.bazel similarity index 87% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.288.bazel index 6e1af1c0010..a963209b7a6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_profile-0.0.288.bazel @@ -79,53 +79,53 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", ] + select({ "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) + "@vendor_ts__libc-0.2.174//:libc", # cfg(all(target_os = "linux", target_env = "gnu")) "@vendor_ts__perf-event-0.4.7//:perf_event", # cfg(all(target_os = "linux", not(target_env = "ohos"))) ], "//conditions:default": [], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.288.bazel similarity index 80% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.288.bazel index cb1f3a56a14..0351712c339 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_project_model-0.0.288.bazel @@ -17,13 +17,13 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db": "base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg": "cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_toolchain-0.0.273//:ra_ap_toolchain": "toolchain", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db": "base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg": "cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_toolchain-0.0.288//:ra_ap_toolchain": "toolchain", }, compile_data = glob( include = ["**"], @@ -91,19 +91,19 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__anyhow-1.0.97//:anyhow", - "@vendor_ts__cargo_metadata-0.19.2//:cargo_metadata", + "@vendor_ts__anyhow-1.0.98//:anyhow", + "@vendor_ts__cargo_metadata-0.20.0//:cargo_metadata", "@vendor_ts__itertools-0.14.0//:itertools", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db", - "@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_toolchain-0.0.273//:ra_ap_toolchain", + "@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db", + "@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_toolchain-0.0.288//:ra_ap_toolchain", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__semver-1.0.26//:semver", "@vendor_ts__serde-1.0.219//:serde", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.288.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.288.bazel index 394f5e421ac..6563add5373 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_query-group-macro-0.0.288.bazel @@ -79,10 +79,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.288.bazel similarity index 90% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.288.bazel index 15f74141c03..e2827261e11 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_span-0.0.288.bazel @@ -17,9 +17,9 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -88,15 +88,15 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__hashbrown-0.14.5//:hashbrown", "@vendor_ts__la-arena-0.3.1//:la_arena", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__salsa-0.19.0//:salsa", + "@vendor_ts__salsa-0.22.0//:salsa", "@vendor_ts__text-size-1.1.1//:text_size", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.288.bazel similarity index 76% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.288.bazel index baf4d1942a4..5005ca6a9d7 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_stdx-0.0.288.bazel @@ -79,96 +79,97 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__crossbeam-channel-0.5.14//:crossbeam_channel", + "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", + "@vendor_ts__crossbeam-utils-0.8.21//:crossbeam_utils", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__jod-thread-0.1.2//:jod_thread", + "@vendor_ts__jod-thread-1.0.0//:jod_thread", "@vendor_ts__tracing-0.1.41//:tracing", ] + select({ "@rules_rust//rust/platform:aarch64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-apple-ios-sim": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-linux-androideabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-pc-windows-msvc": [ "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:i686-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-darwin": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-apple-ios": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-linux-android": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ "@vendor_ts__miow-0.6.0//:miow", # cfg(windows) - "@vendor_ts__windows-sys-0.59.0//:windows_sys", # cfg(windows) + "@vendor_ts__windows-sys-0.60.2//:windows_sys", # cfg(windows) ], "@rules_rust//rust/platform:x86_64-unknown-freebsd": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ - "@vendor_ts__libc-0.2.171//:libc", # cfg(unix) + "@vendor_ts__libc-0.2.174//:libc", # cfg(unix) ], "//conditions:default": [], }), diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.288.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.288.bazel index 8555bc6b119..1fab1741dba 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-0.0.288.bazel @@ -17,8 +17,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -83,15 +83,15 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__either-1.15.0//:either", "@vendor_ts__itertools-0.14.0//:itertools", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", "@vendor_ts__rowan-0.15.15//:rowan", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", + "@vendor_ts__rustc-literal-escaper-0.0.3//:rustc_literal_escaper", "@vendor_ts__smol_str-0.3.2//:smol_str", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__triomphe-0.1.14//:triomphe", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.288.bazel similarity index 83% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.288.bazel index 959cd8c4734..06a9e6c70aa 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_syntax-bridge-0.0.288.bazel @@ -17,12 +17,12 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser": "parser", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span": "span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax": "syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt": "tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser": "parser", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span": "span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax": "syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt": "tt", }, compile_data = glob( include = ["**"], @@ -87,14 +87,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser", - "@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax", - "@vendor_ts__ra_ap_tt-0.0.273//:ra_ap_tt", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser", + "@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax", + "@vendor_ts__ra_ap_tt-0.0.288//:ra_ap_tt", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.288.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.288.bazel index 211a787f67f..34ec9cd3f30 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_toolchain-0.0.288.bazel @@ -79,9 +79,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__camino-1.1.9//:camino", + "@vendor_ts__camino-1.1.10//:camino", "@vendor_ts__home-0.5.11//:home", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.288.bazel similarity index 91% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.288.bazel index 1059e91496c..6565969411c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_tt-0.0.288.bazel @@ -17,8 +17,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern": "intern", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern": "intern", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -83,12 +83,12 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ "@vendor_ts__arrayvec-0.7.6//:arrayvec", - "@vendor_ts__ra-ap-rustc_lexer-0.100.0//:ra_ap_rustc_lexer", - "@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + "@vendor_ts__ra-ap-rustc_lexer-0.116.0//:ra_ap_rustc_lexer", + "@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", "@vendor_ts__text-size-1.1.1//:text_size", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.288.bazel similarity index 92% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.288.bazel index 7213c9199cd..644f31160cd 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-0.0.288.bazel @@ -17,8 +17,8 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", }, compile_data = glob( include = ["**"], @@ -83,14 +83,14 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__crossbeam-channel-0.5.14//:crossbeam_channel", + "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__fst-0.4.7//:fst", "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__nohash-hasher-0.2.0//:nohash_hasher", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.273.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.288.bazel similarity index 89% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.273.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.288.bazel index 33a5d195f84..16fcf42360d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.273.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ra_ap_vfs-notify-0.0.288.bazel @@ -17,9 +17,9 @@ rust_library( allow_empty = True, ), aliases = { - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths": "paths", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx": "stdx", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs": "vfs", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths": "paths", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx": "stdx", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs": "vfs", }, compile_data = glob( include = ["**"], @@ -84,13 +84,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.0.273", + version = "0.0.288", deps = [ - "@vendor_ts__crossbeam-channel-0.5.14//:crossbeam_channel", + "@vendor_ts__crossbeam-channel-0.5.15//:crossbeam_channel", "@vendor_ts__notify-8.0.0//:notify", - "@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths", - "@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx", - "@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs", + "@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths", + "@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx", + "@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs", "@vendor_ts__rayon-1.10.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", "@vendor_ts__tracing-0.1.41//:tracing", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.1.bazel similarity index 98% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.1.bazel index 9dc571cda9a..0489a607dcc 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rand-0.9.1.bazel @@ -88,10 +88,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.9.0", + version = "0.9.1", deps = [ "@vendor_ts__rand_chacha-0.9.0//:rand_chacha", "@vendor_ts__rand_core-0.9.2//:rand_core", - "@vendor_ts__zerocopy-0.8.20//:zerocopy", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.8.bazel index db9267bd12e..e7e3f80495d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.redox_syscall-0.5.8.bazel @@ -81,6 +81,6 @@ rust_library( }), version = "0.5.8", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", + "@vendor_ts__bitflags-2.9.1//:bitflags", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel new file mode 100644 index 00000000000..e517f976ad3 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-1.0.24.bazel @@ -0,0 +1,145 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "ref_cast", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__ref-cast-impl-1.0.24//:ref_cast_impl", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=ref-cast", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.24", + deps = [ + "@vendor_ts__ref-cast-1.0.24//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "ref-cast", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=ref-cast", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.0.24", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.58.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.58.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel index 875df272d2a..9b5797483ab 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-interface-0.58.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.ref-cast-impl-1.0.24.bazel @@ -11,7 +11,7 @@ load("@rules_rust//rust:defs.bzl", "rust_proc_macro") package(default_visibility = ["//visibility:public"]) rust_proc_macro( - name = "windows_interface", + name = "ref_cast_impl", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -35,7 +35,7 @@ rust_proc_macro( ], tags = [ "cargo-bazel", - "crate-name=windows-interface", + "crate-name=ref-cast-impl", "manual", "noclippy", "norustfmt", @@ -79,10 +79,10 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.58.0", + version = "1.0.24", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel index 0399f3132c6..7de7f698bd6 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-1.11.1.bazel @@ -101,7 +101,7 @@ rust_library( version = "1.11.1", deps = [ "@vendor_ts__aho-corasick-1.1.3//:aho_corasick", - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__regex-automata-0.4.9//:regex_automata", "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel index 02062f8053c..56e895f026c 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.regex-automata-0.4.9.bazel @@ -108,7 +108,7 @@ rust_library( version = "0.4.9", deps = [ "@vendor_ts__aho-corasick-1.1.3//:aho_corasick", - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__regex-syntax-0.8.5//:regex_syntax", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.2.bazel new file mode 100644 index 00000000000..280e35dd632 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.2.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "rustc_literal_escaper", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=rustc-literal-escaper", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.0.2", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.3.bazel new file mode 100644 index 00000000000..cc9e8257f7b --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc-literal-escaper-0.0.3.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "rustc_literal_escaper", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=rustc-literal-escaper", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.0.3", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.2+llvm-462a31f5a5ab.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel similarity index 95% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.2+llvm-462a31f5a5ab.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel index feeb8d3cda4..7f9f680e306 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.2+llvm-462a31f5a5ab.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel @@ -80,11 +80,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.2.2+llvm-462a31f5a5ab", + version = "0.2.3+llvm-462a31f5a5ab", deps = [ - "@vendor_ts__bitflags-2.9.0//:bitflags", - "@vendor_ts__rustc_apfloat-0.2.2-llvm-462a31f5a5ab//:build_script_build", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__bitflags-2.9.1//:bitflags", + "@vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab//:build_script_build", + "@vendor_ts__smallvec-1.15.1//:smallvec", ], ) @@ -133,7 +133,7 @@ cargo_build_script( "noclippy", "norustfmt", ], - version = "0.2.2+llvm-462a31f5a5ab", + version = "0.2.3+llvm-462a31f5a5ab", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.19.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.22.0.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.19.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.22.0.bazel index 6018cc9f491..e4d2825b88b 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.19.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-0.22.0.bazel @@ -37,7 +37,7 @@ rust_library( crate_root = "src/lib.rs", edition = "2021", proc_macro_deps = [ - "@vendor_ts__salsa-macros-0.19.0//:salsa_macros", + "@vendor_ts__salsa-macros-0.22.0//:salsa_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -88,9 +88,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.19.0", + version = "0.22.0", deps = [ - "@vendor_ts__boxcar-0.2.11//:boxcar", + "@vendor_ts__boxcar-0.2.13//:boxcar", "@vendor_ts__crossbeam-queue-0.3.12//:crossbeam_queue", "@vendor_ts__dashmap-6.1.0//:dashmap", "@vendor_ts__hashbrown-0.15.2//:hashbrown", @@ -100,8 +100,9 @@ rust_library( "@vendor_ts__portable-atomic-1.11.0//:portable_atomic", "@vendor_ts__rayon-1.10.0//:rayon", "@vendor_ts__rustc-hash-2.1.1//:rustc_hash", - "@vendor_ts__salsa-macro-rules-0.19.0//:salsa_macro_rules", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__salsa-macro-rules-0.22.0//:salsa_macro_rules", + "@vendor_ts__smallvec-1.15.1//:smallvec", + "@vendor_ts__thin-vec-0.2.14//:thin_vec", "@vendor_ts__tracing-0.1.41//:tracing", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.19.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.22.0.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.19.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.22.0.bazel index 1f1b43e02bc..26f7161efef 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.19.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macro-rules-0.22.0.bazel @@ -79,5 +79,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.19.0", + version = "0.22.0", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.19.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.22.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.19.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.22.0.bazel index 20b30ab306b..6e7c245e56d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.19.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.salsa-macros-0.22.0.bazel @@ -79,12 +79,12 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.19.0", + version = "0.22.0", deps = [ "@vendor_ts__heck-0.5.0//:heck", - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", "@vendor_ts__synstructure-0.13.1//:synstructure", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel new file mode 100644 index 00000000000..ee2aee6f8c1 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.schemars-0.9.0.bazel @@ -0,0 +1,89 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "schemars", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=schemars", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.9.0", + deps = [ + "@vendor_ts__dyn-clone-1.0.19//:dyn_clone", + "@vendor_ts__ref-cast-1.0.24//:ref_cast", + "@vendor_ts__serde-1.0.219//:serde", + "@vendor_ts__serde_json-1.0.140//:serde_json", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel new file mode 100644 index 00000000000..2785cb20382 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-untagged-0.1.7.bazel @@ -0,0 +1,88 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "serde_untagged", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=serde-untagged", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.7", + deps = [ + "@vendor_ts__erased-serde-0.4.6//:erased_serde", + "@vendor_ts__serde-1.0.219//:serde", + "@vendor_ts__typeid-1.0.3//:typeid", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel new file mode 100644 index 00000000000..d9e7c56d284 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde-value-0.7.0.bazel @@ -0,0 +1,87 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "serde_value", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=serde-value", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.7.0", + deps = [ + "@vendor_ts__ordered-float-2.10.1//:ordered_float", + "@vendor_ts__serde-1.0.219//:serde", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel index 6d385b05daa..e2000b88618 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_derive-1.0.219.bazel @@ -84,8 +84,8 @@ rust_proc_macro( }), version = "1.0.219", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.140.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.140.bazel index 82dde7080ad..62844bd53ea 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.140.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_json-1.0.140.bazel @@ -88,7 +88,7 @@ rust_library( version = "1.0.140", deps = [ "@vendor_ts__itoa-1.0.15//:itoa", - "@vendor_ts__memchr-2.7.4//:memchr", + "@vendor_ts__memchr-2.7.5//:memchr", "@vendor_ts__ryu-1.0.19//:ryu", "@vendor_ts__serde-1.0.219//:serde", "@vendor_ts__serde_json-1.0.140//:build_script_build", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.8.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel index 46285e64bd1..4efede2084d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_spanned-0.6.9.bazel @@ -82,7 +82,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.6.8", + version = "0.6.9", deps = [ "@vendor_ts__serde-1.0.219//:serde", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.12.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.13.0.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.12.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.13.0.bazel index cdd91fba58a..8d767cf92c1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.12.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with-3.13.0.bazel @@ -38,7 +38,7 @@ rust_library( edition = "2021", proc_macro_deps = [ "@vendor_ts__serde_derive-1.0.219//:serde_derive", - "@vendor_ts__serde_with_macros-3.12.0//:serde_with_macros", + "@vendor_ts__serde_with_macros-3.13.0//:serde_with_macros", ], rustc_flags = [ "--cap-lints=allow", @@ -89,7 +89,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "3.12.0", + version = "3.13.0", deps = [ "@vendor_ts__serde-1.0.219//:serde", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.12.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.13.0.bazel similarity index 96% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.12.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.13.0.bazel index f057b9da2e2..eee3714cc13 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.12.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.serde_with_macros-3.13.0.bazel @@ -79,11 +79,11 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "3.12.0", + version = "3.13.0", deps = [ "@vendor_ts__darling-0.20.10//:darling", - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.14.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.14.0.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel index 1e4a6aa9f73..62bb519baf4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.14.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.smallvec-1.15.1.bazel @@ -84,5 +84,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.14.0", + version = "1.15.1", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel index 00aab0ba9b8..e2b0eef1e61 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.stable_deref_trait-1.2.0.bazel @@ -28,6 +28,9 @@ rust_library( "WORKSPACE.bazel", ], ), + crate_features = [ + "alloc", + ], crate_root = "src/lib.rs", edition = "2015", rustc_flags = [ diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.100.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.103.bazel similarity index 97% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.100.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.103.bazel index 052bbecfe4d..2f0a43a1e3f 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.100.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.syn-2.0.103.bazel @@ -33,6 +33,7 @@ rust_library( "default", "derive", "extra-traits", + "fold", "full", "parsing", "printing", @@ -91,9 +92,9 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "2.0.100", + version = "2.0.103", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", "@vendor_ts__unicode-ident-1.0.17//:unicode_ident", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.1.bazel index 66b155c2f99..e726c441dfb 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.1.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.synstructure-0.13.1.bazel @@ -85,8 +85,8 @@ rust_library( }), version = "0.13.1", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-1.0.69.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-1.0.69.bazel new file mode 100644 index 00000000000..a79c49f5eea --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-1.0.69.bazel @@ -0,0 +1,145 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "thiserror", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__thiserror-impl-1.0.69//:thiserror_impl", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=thiserror", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.69", + deps = [ + "@vendor_ts__thiserror-1.0.69//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "thiserror", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=thiserror", + "manual", + "noclippy", + "norustfmt", + ], + version = "1.0.69", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-1.0.69.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-1.0.69.bazel new file mode 100644 index 00000000000..52e3dfa4f05 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-1.0.69.bazel @@ -0,0 +1,88 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +rust_proc_macro( + name = "thiserror_impl", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=thiserror-impl", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.69", + deps = [ + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", + "@vendor_ts__quote-1.0.40//:quote", + "@vendor_ts__syn-2.0.103//:syn", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel index 4bae5674a88..eb054e9aa8d 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thiserror-impl-2.0.12.bazel @@ -81,8 +81,8 @@ rust_proc_macro( }), version = "2.0.12", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel index 93e058516c0..f1dddcc3984 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.thread_local-1.1.8.bazel @@ -81,7 +81,7 @@ rust_library( }), version = "1.1.8", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", "@vendor_ts__once_cell-1.20.3//:once_cell", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel new file mode 100644 index 00000000000..8e578270bfb --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tinystr-0.8.1.bazel @@ -0,0 +1,93 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "tinystr", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "zerovec", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=tinystr", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.1", + deps = [ + "@vendor_ts__zerovec-0.11.2//:zerovec", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel similarity index 94% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.20.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel index aa7721ec15f..ce7632fc072 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml-0.8.23.bazel @@ -84,11 +84,11 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.8.20", + version = "0.8.23", deps = [ "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_spanned-0.6.8//:serde_spanned", - "@vendor_ts__toml_datetime-0.6.8//:toml_datetime", - "@vendor_ts__toml_edit-0.22.24//:toml_edit", + "@vendor_ts__serde_spanned-0.6.9//:serde_spanned", + "@vendor_ts__toml_datetime-0.6.11//:toml_datetime", + "@vendor_ts__toml_edit-0.22.27//:toml_edit", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.8.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.8.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel index 248d2c4ec36..ee9d696b0a9 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.8.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_datetime-0.6.11.bazel @@ -82,7 +82,7 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.6.8", + version = "0.6.11", deps = [ "@vendor_ts__serde-1.0.219//:serde", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.24.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.24.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel index ee4b912ba31..8a49793f584 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.24.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_edit-0.22.27.bazel @@ -84,12 +84,13 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.22.24", + version = "0.22.27", deps = [ "@vendor_ts__indexmap-2.9.0//:indexmap", "@vendor_ts__serde-1.0.219//:serde", - "@vendor_ts__serde_spanned-0.6.8//:serde_spanned", - "@vendor_ts__toml_datetime-0.6.8//:toml_datetime", - "@vendor_ts__winnow-0.7.3//:winnow", + "@vendor_ts__serde_spanned-0.6.9//:serde_spanned", + "@vendor_ts__toml_datetime-0.6.11//:toml_datetime", + "@vendor_ts__toml_write-0.1.2//:toml_write", + "@vendor_ts__winnow-0.7.11//:winnow", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel new file mode 100644 index 00000000000..dd661ef8d1a --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.toml_write-0.1.2.bazel @@ -0,0 +1,88 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "toml_write", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=toml_write", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.2", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.28.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.28.bazel index f4e54984e8b..ee4bf997c01 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.28.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-attributes-0.1.28.bazel @@ -81,8 +81,8 @@ rust_proc_macro( }), version = "0.1.28", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel index e017d44b227..65c7afaeb70 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.tracing-subscriber-0.3.19.bazel @@ -104,7 +104,7 @@ rust_library( "@vendor_ts__once_cell-1.20.3//:once_cell", "@vendor_ts__regex-1.11.1//:regex", "@vendor_ts__sharded-slab-0.1.7//:sharded_slab", - "@vendor_ts__smallvec-1.14.0//:smallvec", + "@vendor_ts__smallvec-1.15.1//:smallvec", "@vendor_ts__thread_local-1.1.8//:thread_local", "@vendor_ts__tracing-0.1.41//:tracing", "@vendor_ts__tracing-core-0.1.33//:tracing_core", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel similarity index 93% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.20.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel index dc9ff46207d..74c33179202 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.rustversion-1.0.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.typeid-1.0.3.bazel @@ -7,12 +7,12 @@ ############################################################################### load("@rules_rust//cargo:defs.bzl", "cargo_build_script") -load("@rules_rust//rust:defs.bzl", "rust_proc_macro") +load("@rules_rust//rust:defs.bzl", "rust_library") package(default_visibility = ["//visibility:public"]) -rust_proc_macro( - name = "rustversion", +rust_library( + name = "typeid", srcs = glob( include = ["**/*.rs"], allow_empty = True, @@ -36,7 +36,7 @@ rust_proc_macro( ], tags = [ "cargo-bazel", - "crate-name=rustversion", + "crate-name=typeid", "manual", "noclippy", "norustfmt", @@ -80,9 +80,9 @@ rust_proc_macro( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "1.0.20", + version = "1.0.3", deps = [ - "@vendor_ts__rustversion-1.0.20//:build_script_build", + "@vendor_ts__typeid-1.0.3//:build_script_build", ], ) @@ -106,7 +106,7 @@ cargo_build_script( ], ), crate_name = "build_script_build", - crate_root = "build/build.rs", + crate_root = "build.rs", data = glob( include = ["**"], allow_empty = True, @@ -120,18 +120,18 @@ cargo_build_script( ], ), edition = "2018", - pkg_name = "rustversion", + pkg_name = "typeid", rustc_flags = [ "--cap-lints=allow", ], tags = [ "cargo-bazel", - "crate-name=rustversion", + "crate-name=typeid", "manual", "noclippy", "norustfmt", ], - version = "1.0.20", + version = "1.0.3", visibility = ["//visibility:private"], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel new file mode 100644 index 00000000000..69d9c4097f6 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.url-2.5.4.bazel @@ -0,0 +1,92 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "url", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "default", + "std", + ], + crate_root = "src/lib.rs", + edition = "2018", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=url", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "2.5.4", + deps = [ + "@vendor_ts__form_urlencoded-1.2.1//:form_urlencoded", + "@vendor_ts__idna-1.0.3//:idna", + "@vendor_ts__percent-encoding-2.3.1//:percent_encoding", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel new file mode 100644 index 00000000000..54c69ad9a16 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.utf8_iter-1.0.4.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "utf8_iter", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=utf8_iter", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "1.0.4", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.99.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.99.bazel index 52ec9171a91..bf281cfada1 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.99.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-0.2.99.bazel @@ -90,7 +90,7 @@ rust_library( }), version = "0.2.99", deps = [ - "@vendor_ts__cfg-if-1.0.0//:cfg_if", + "@vendor_ts__cfg-if-1.0.1//:cfg_if", "@vendor_ts__once_cell-1.20.3//:once_cell", "@vendor_ts__wasm-bindgen-0.2.99//:build_script_build", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.99.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.99.bazel index 2b5e035e409..78dbca5d439 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.99.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-backend-0.2.99.bazel @@ -87,9 +87,9 @@ rust_library( deps = [ "@vendor_ts__bumpalo-3.16.0//:bumpalo", "@vendor_ts__log-0.4.27//:log", - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", "@vendor_ts__wasm-bindgen-shared-0.2.99//:wasm_bindgen_shared", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.99.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.99.bazel index c624819b43d..e83a1630b61 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.99.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.wasm-bindgen-macro-support-0.2.99.bazel @@ -85,9 +85,9 @@ rust_library( }), version = "0.2.99", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", "@vendor_ts__wasm-bindgen-backend-0.2.99//:wasm_bindgen_backend", "@vendor_ts__wasm-bindgen-shared-0.2.99//:wasm_bindgen_shared", ], diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-0.58.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-0.58.0.bazel deleted file mode 100644 index cc4916d9c7c..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-0.58.0.bazel +++ /dev/null @@ -1,87 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "windows", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.58.0", - deps = [ - "@vendor_ts__windows-core-0.58.0//:windows_core", - "@vendor_ts__windows-targets-0.52.6//:windows_targets", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.2.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.2.0.bazel deleted file mode 100644 index f32ca5f6cde..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-result-0.2.0.bazel +++ /dev/null @@ -1,86 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "windows_result", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows-result", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.2.0", - deps = [ - "@vendor_ts__windows-targets-0.52.6//:windows_targets", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.1.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.1.0.bazel deleted file mode 100644 index 1d38767dcb2..00000000000 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-strings-0.1.0.bazel +++ /dev/null @@ -1,87 +0,0 @@ -############################################################################### -# @generated -# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To -# regenerate this file, run the following: -# -# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors -############################################################################### - -load("@rules_rust//rust:defs.bzl", "rust_library") - -package(default_visibility = ["//visibility:public"]) - -rust_library( - name = "windows_strings", - srcs = glob( - include = ["**/*.rs"], - allow_empty = True, - ), - compile_data = glob( - include = ["**"], - allow_empty = True, - exclude = [ - "**/* *", - ".tmp_git_root/**/*", - "BUILD", - "BUILD.bazel", - "WORKSPACE", - "WORKSPACE.bazel", - ], - ), - crate_root = "src/lib.rs", - edition = "2021", - rustc_flags = [ - "--cap-lints=allow", - ], - tags = [ - "cargo-bazel", - "crate-name=windows-strings", - "manual", - "noclippy", - "norustfmt", - ], - target_compatible_with = select({ - "@rules_rust//rust/platform:aarch64-apple-darwin": [], - "@rules_rust//rust/platform:aarch64-apple-ios": [], - "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], - "@rules_rust//rust/platform:aarch64-linux-android": [], - "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], - "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], - "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], - "@rules_rust//rust/platform:aarch64-unknown-uefi": [], - "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:armv7-linux-androideabi": [], - "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], - "@rules_rust//rust/platform:i686-apple-darwin": [], - "@rules_rust//rust/platform:i686-linux-android": [], - "@rules_rust//rust/platform:i686-pc-windows-msvc": [], - "@rules_rust//rust/platform:i686-unknown-freebsd": [], - "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], - "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], - "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], - "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], - "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], - "@rules_rust//rust/platform:thumbv7em-none-eabi": [], - "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], - "@rules_rust//rust/platform:wasm32-unknown-unknown": [], - "@rules_rust//rust/platform:wasm32-wasip1": [], - "@rules_rust//rust/platform:x86_64-apple-darwin": [], - "@rules_rust//rust/platform:x86_64-apple-ios": [], - "@rules_rust//rust/platform:x86_64-linux-android": [], - "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], - "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], - "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], - "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], - "@rules_rust//rust/platform:x86_64-unknown-none": [], - "@rules_rust//rust/platform:x86_64-unknown-uefi": [], - "//conditions:default": ["@platforms//:incompatible"], - }), - version = "0.1.0", - deps = [ - "@vendor_ts__windows-result-0.2.0//:windows_result", - "@vendor_ts__windows-targets-0.52.6//:windows_targets", - ], -) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel index 9b2c722558c..289fee68e92 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.59.0.bazel @@ -38,7 +38,6 @@ rust_library( "Win32_System_Com", "Win32_System_Console", "Win32_System_IO", - "Win32_System_ProcessStatus", "Win32_System_SystemInformation", "Win32_System_Threading", "Win32_System_WindowsProgramming", diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel new file mode 100644 index 00000000000..46506a263b8 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-sys-0.60.2.bazel @@ -0,0 +1,94 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_sys", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "Win32", + "Win32_Foundation", + "Win32_System", + "Win32_System_ProcessStatus", + "Win32_System_Threading", + "default", + ], + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows-sys", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.60.2", + deps = [ + "@vendor_ts__windows-targets-0.53.2//:windows_targets", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel new file mode 100644 index 00000000000..77c1c5144a6 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows-targets-0.53.2.bazel @@ -0,0 +1,104 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_targets", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows-targets", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.2", + deps = select({ + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [ + "@vendor_ts__windows_aarch64_msvc-0.53.0//:windows_aarch64_msvc", # cfg(all(target_arch = "aarch64", target_env = "msvc", not(windows_raw_dylib))) + ], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [ + "@vendor_ts__windows_i686_msvc-0.53.0//:windows_i686_msvc", # cfg(all(target_arch = "x86", target_env = "msvc", not(windows_raw_dylib))) + ], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [ + "@vendor_ts__windows_i686_gnu-0.53.0//:windows_i686_gnu", # cfg(all(target_arch = "x86", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) + ], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [ + "@vendor_ts__windows_x86_64_msvc-0.53.0//:windows_x86_64_msvc", # cfg(all(any(target_arch = "x86_64", target_arch = "arm64ec"), target_env = "msvc", not(windows_raw_dylib))) + ], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [ + "@vendor_ts__windows_x86_64_gnu-0.53.0//:windows_x86_64_gnu", # cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) + ], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [ + "@vendor_ts__windows_x86_64_gnu-0.53.0//:windows_x86_64_gnu", # cfg(all(target_arch = "x86_64", target_env = "gnu", not(target_abi = "llvm"), not(windows_raw_dylib))) + ], + "//conditions:default": [], + }), +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel new file mode 100644 index 00000000000..e727eacb52a --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_gnullvm-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_aarch64_gnullvm", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_aarch64_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_aarch64_gnullvm-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_aarch64_gnullvm", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_aarch64_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel new file mode 100644 index 00000000000..4b4438eaea5 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_aarch64_msvc-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_aarch64_msvc", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_aarch64_msvc", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_aarch64_msvc-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_aarch64_msvc", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_aarch64_msvc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel new file mode 100644 index 00000000000..d4809237b86 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnu-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_i686_gnu", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_gnu", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_i686_gnu-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_i686_gnu", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_gnu", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel new file mode 100644 index 00000000000..3bad746ef58 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_gnullvm-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_i686_gnullvm", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_i686_gnullvm-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_i686_gnullvm", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel new file mode 100644 index 00000000000..2f0214cf347 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_i686_msvc-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_i686_msvc", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_msvc", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_i686_msvc-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_i686_msvc", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_i686_msvc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel new file mode 100644 index 00000000000..1d07c0d0250 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnu-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_x86_64_gnu", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_gnu", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_x86_64_gnu-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_x86_64_gnu", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_gnu", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel new file mode 100644 index 00000000000..2cad4e3de6f --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_gnullvm-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_x86_64_gnullvm", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_x86_64_gnullvm-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_x86_64_gnullvm", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_gnullvm", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel new file mode 100644 index 00000000000..2733c677a91 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.windows_x86_64_msvc-0.53.0.bazel @@ -0,0 +1,142 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "windows_x86_64_msvc", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_msvc", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.53.0", + deps = [ + "@vendor_ts__windows_x86_64_msvc-0.53.0//:build_script_build", + ], +) + +cargo_build_script( + name = "_bs", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + "**/*.rs", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_name = "build_script_build", + crate_root = "build.rs", + data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + edition = "2021", + pkg_name = "windows_x86_64_msvc", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=windows_x86_64_msvc", + "manual", + "noclippy", + "norustfmt", + ], + version = "0.53.0", + visibility = ["//visibility:private"], +) + +alias( + name = "build_script_build", + actual = ":_bs", + tags = ["manual"], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.3.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel similarity index 99% rename from misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.3.bazel rename to misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel index 4c327dadb1d..5221e7699ad 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.3.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.winnow-0.7.11.bazel @@ -84,5 +84,5 @@ rust_library( "@rules_rust//rust/platform:x86_64-unknown-uefi": [], "//conditions:default": ["@platforms//:incompatible"], }), - version = "0.7.3", + version = "0.7.11", ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel new file mode 100644 index 00000000000..0c2e96ae012 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.writeable-0.6.1.bazel @@ -0,0 +1,83 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "writeable", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=writeable", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.6.1", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel new file mode 100644 index 00000000000..83fc89ba717 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-0.8.0.bazel @@ -0,0 +1,95 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "yoke", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "derive", + "zerofrom", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__yoke-derive-0.8.0//:yoke_derive", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=yoke", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.0", + deps = [ + "@vendor_ts__stable_deref_trait-1.2.0//:stable_deref_trait", + "@vendor_ts__zerofrom-0.1.6//:zerofrom", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel new file mode 100644 index 00000000000..96d93eb4031 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.yoke-derive-0.8.0.bazel @@ -0,0 +1,89 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +rust_proc_macro( + name = "yoke_derive", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=yoke-derive", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.8.0", + deps = [ + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", + "@vendor_ts__quote-1.0.40//:quote", + "@vendor_ts__syn-2.0.103//:syn", + "@vendor_ts__synstructure-0.13.1//:synstructure", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.20.bazel index 2e234c58a3b..ddd5a21cc67 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-0.8.20.bazel @@ -29,9 +29,6 @@ rust_library( "WORKSPACE.bazel", ], ), - crate_features = [ - "simd", - ], crate_root = "src/lib.rs", edition = "2021", rustc_flags = [ @@ -108,9 +105,6 @@ cargo_build_script( "WORKSPACE.bazel", ], ), - crate_features = [ - "simd", - ], crate_name = "build_script_build", crate_root = "build.rs", data = glob( diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.7.35.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.7.35.bazel index c896b4653f1..0ee91e78c4e 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.7.35.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.7.35.bazel @@ -81,8 +81,8 @@ rust_proc_macro( }), version = "0.7.35", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.20.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.20.bazel index 7e87cf6b1bf..a64ba674aa4 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.20.bazel +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerocopy-derive-0.8.20.bazel @@ -81,8 +81,8 @@ rust_proc_macro( }), version = "0.8.20", deps = [ - "@vendor_ts__proc-macro2-1.0.94//:proc_macro2", + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", "@vendor_ts__quote-1.0.40//:quote", - "@vendor_ts__syn-2.0.100//:syn", + "@vendor_ts__syn-2.0.103//:syn", ], ) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel new file mode 100644 index 00000000000..365169ad3eb --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-0.1.6.bazel @@ -0,0 +1,90 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zerofrom", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "derive", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__zerofrom-derive-0.1.6//:zerofrom_derive", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zerofrom", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.6", +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel new file mode 100644 index 00000000000..463d6916e4d --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerofrom-derive-0.1.6.bazel @@ -0,0 +1,89 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +rust_proc_macro( + name = "zerofrom_derive", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zerofrom-derive", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.1.6", + deps = [ + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", + "@vendor_ts__quote-1.0.40//:quote", + "@vendor_ts__syn-2.0.103//:syn", + "@vendor_ts__synstructure-0.13.1//:synstructure", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel new file mode 100644 index 00000000000..453e2f8d259 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerotrie-0.2.2.bazel @@ -0,0 +1,94 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zerotrie", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "yoke", + "zerofrom", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__displaydoc-0.2.5//:displaydoc", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zerotrie", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.2.2", + deps = [ + "@vendor_ts__yoke-0.8.0//:yoke", + "@vendor_ts__zerofrom-0.1.6//:zerofrom", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel new file mode 100644 index 00000000000..6969b46a518 --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-0.11.2.bazel @@ -0,0 +1,95 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_library") + +package(default_visibility = ["//visibility:public"]) + +rust_library( + name = "zerovec", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_features = [ + "alloc", + "derive", + "yoke", + ], + crate_root = "src/lib.rs", + edition = "2021", + proc_macro_deps = [ + "@vendor_ts__zerovec-derive-0.11.1//:zerovec_derive", + ], + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zerovec", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.11.2", + deps = [ + "@vendor_ts__yoke-0.8.0//:yoke", + "@vendor_ts__zerofrom-0.1.6//:zerofrom", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel new file mode 100644 index 00000000000..653c0d360cc --- /dev/null +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/BUILD.zerovec-derive-0.11.1.bazel @@ -0,0 +1,88 @@ +############################################################################### +# @generated +# DO NOT MODIFY: This file is auto-generated by a crate_universe tool. To +# regenerate this file, run the following: +# +# bazel run @@//misc/bazel/3rdparty:vendor_tree_sitter_extractors +############################################################################### + +load("@rules_rust//rust:defs.bzl", "rust_proc_macro") + +package(default_visibility = ["//visibility:public"]) + +rust_proc_macro( + name = "zerovec_derive", + srcs = glob( + include = ["**/*.rs"], + allow_empty = True, + ), + compile_data = glob( + include = ["**"], + allow_empty = True, + exclude = [ + "**/* *", + ".tmp_git_root/**/*", + "BUILD", + "BUILD.bazel", + "WORKSPACE", + "WORKSPACE.bazel", + ], + ), + crate_root = "src/lib.rs", + edition = "2021", + rustc_flags = [ + "--cap-lints=allow", + ], + tags = [ + "cargo-bazel", + "crate-name=zerovec-derive", + "manual", + "noclippy", + "norustfmt", + ], + target_compatible_with = select({ + "@rules_rust//rust/platform:aarch64-apple-darwin": [], + "@rules_rust//rust/platform:aarch64-apple-ios": [], + "@rules_rust//rust/platform:aarch64-apple-ios-sim": [], + "@rules_rust//rust/platform:aarch64-linux-android": [], + "@rules_rust//rust/platform:aarch64-pc-windows-msvc": [], + "@rules_rust//rust/platform:aarch64-unknown-fuchsia": [], + "@rules_rust//rust/platform:aarch64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710": [], + "@rules_rust//rust/platform:aarch64-unknown-uefi": [], + "@rules_rust//rust/platform:arm-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:armv7-linux-androideabi": [], + "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi": [], + "@rules_rust//rust/platform:i686-apple-darwin": [], + "@rules_rust//rust/platform:i686-linux-android": [], + "@rules_rust//rust/platform:i686-pc-windows-msvc": [], + "@rules_rust//rust/platform:i686-unknown-freebsd": [], + "@rules_rust//rust/platform:i686-unknown-linux-gnu": [], + "@rules_rust//rust/platform:powerpc-unknown-linux-gnu": [], + "@rules_rust//rust/platform:riscv32imc-unknown-none-elf": [], + "@rules_rust//rust/platform:riscv64gc-unknown-none-elf": [], + "@rules_rust//rust/platform:s390x-unknown-linux-gnu": [], + "@rules_rust//rust/platform:thumbv7em-none-eabi": [], + "@rules_rust//rust/platform:thumbv8m.main-none-eabi": [], + "@rules_rust//rust/platform:wasm32-unknown-unknown": [], + "@rules_rust//rust/platform:wasm32-wasip1": [], + "@rules_rust//rust/platform:x86_64-apple-darwin": [], + "@rules_rust//rust/platform:x86_64-apple-ios": [], + "@rules_rust//rust/platform:x86_64-linux-android": [], + "@rules_rust//rust/platform:x86_64-pc-windows-msvc": [], + "@rules_rust//rust/platform:x86_64-unknown-freebsd": [], + "@rules_rust//rust/platform:x86_64-unknown-fuchsia": [], + "@rules_rust//rust/platform:x86_64-unknown-linux-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu": [], + "@rules_rust//rust/platform:x86_64-unknown-none": [], + "@rules_rust//rust/platform:x86_64-unknown-uefi": [], + "//conditions:default": ["@platforms//:incompatible"], + }), + version = "0.11.1", + deps = [ + "@vendor_ts__proc-macro2-1.0.95//:proc_macro2", + "@vendor_ts__quote-1.0.40//:quote", + "@vendor_ts__syn-2.0.103//:syn", + ], +) diff --git a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl index 547a1e47606..440382b51c8 100644 --- a/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl +++ b/misc/bazel/3rdparty/tree_sitter_extractors_deps/defs.bzl @@ -16,7 +16,6 @@ """ load("@bazel_skylib//lib:selects.bzl", "selects") -load("@bazel_tools//tools/build_defs/repo:git.bzl", "new_git_repository") load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") load("@bazel_tools//tools/build_defs/repo:utils.bzl", "maybe") @@ -296,7 +295,7 @@ def aliases( _NORMAL_DEPENDENCIES = { "ruby/extractor": { _COMMON_CONDITION: { - "clap": Label("@vendor_ts__clap-4.5.35//:clap"), + "clap": Label("@vendor_ts__clap-4.5.40//:clap"), "encoding": Label("@vendor_ts__encoding-0.2.33//:encoding"), "lazy_static": Label("@vendor_ts__lazy_static-1.5.0//:lazy_static"), "rayon": Label("@vendor_ts__rayon-1.10.0//:rayon"), @@ -310,14 +309,14 @@ _NORMAL_DEPENDENCIES = { }, "rust/ast-generator": { _COMMON_CONDITION: { - "anyhow": Label("@vendor_ts__anyhow-1.0.97//:anyhow"), + "anyhow": Label("@vendor_ts__anyhow-1.0.98//:anyhow"), "either": Label("@vendor_ts__either-1.15.0//:either"), "itertools": Label("@vendor_ts__itertools-0.14.0//:itertools"), "mustache": Label("@vendor_ts__mustache-0.9.0//:mustache"), - "proc-macro2": Label("@vendor_ts__proc-macro2-1.0.94//:proc_macro2"), + "proc-macro2": Label("@vendor_ts__proc-macro2-1.0.95//:proc_macro2"), "quote": Label("@vendor_ts__quote-1.0.40//:quote"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), - "stdx": Label("@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx"), + "stdx": Label("@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx"), "ungrammar": Label("@vendor_ts__ungrammar-1.16.1//:ungrammar"), }, }, @@ -325,36 +324,36 @@ _NORMAL_DEPENDENCIES = { }, "rust/extractor": { _COMMON_CONDITION: { - "anyhow": Label("@vendor_ts__anyhow-1.0.97//:anyhow"), + "anyhow": Label("@vendor_ts__anyhow-1.0.98//:anyhow"), "argfile": Label("@vendor_ts__argfile-0.2.1//:argfile"), - "chalk-ir": Label("@vendor_ts__chalk-ir-0.100.0//:chalk_ir"), - "chrono": Label("@vendor_ts__chrono-0.4.40//:chrono"), - "clap": Label("@vendor_ts__clap-4.5.35//:clap"), + "chalk-ir": Label("@vendor_ts__chalk-ir-0.103.0//:chalk_ir"), + "chrono": Label("@vendor_ts__chrono-0.4.41//:chrono"), + "clap": Label("@vendor_ts__clap-4.5.40//:clap"), "dunce": Label("@vendor_ts__dunce-1.0.5//:dunce"), "figment": Label("@vendor_ts__figment-0.10.19//:figment"), "glob": Label("@vendor_ts__glob-0.3.2//:glob"), "itertools": Label("@vendor_ts__itertools-0.14.0//:itertools"), "mustache": Label("@vendor_ts__mustache-0.9.0//:mustache"), "num-traits": Label("@vendor_ts__num-traits-0.2.19//:num_traits"), - "ra_ap_base_db": Label("@vendor_ts__ra_ap_base_db-0.0.273//:ra_ap_base_db"), - "ra_ap_cfg": Label("@vendor_ts__ra_ap_cfg-0.0.273//:ra_ap_cfg"), - "ra_ap_hir": Label("@vendor_ts__ra_ap_hir-0.0.273//:ra_ap_hir"), - "ra_ap_hir_def": Label("@vendor_ts__ra_ap_hir_def-0.0.273//:ra_ap_hir_def"), - "ra_ap_hir_expand": Label("@vendor_ts__ra_ap_hir_expand-0.0.273//:ra_ap_hir_expand"), - "ra_ap_hir_ty": Label("@vendor_ts__ra_ap_hir_ty-0.0.273//:ra_ap_hir_ty"), - "ra_ap_ide_db": Label("@vendor_ts__ra_ap_ide_db-0.0.273//:ra_ap_ide_db"), - "ra_ap_intern": Label("@vendor_ts__ra_ap_intern-0.0.273//:ra_ap_intern"), - "ra_ap_load-cargo": Label("@vendor_ts__ra_ap_load-cargo-0.0.273//:ra_ap_load_cargo"), - "ra_ap_parser": Label("@vendor_ts__ra_ap_parser-0.0.273//:ra_ap_parser"), - "ra_ap_paths": Label("@vendor_ts__ra_ap_paths-0.0.273//:ra_ap_paths"), - "ra_ap_project_model": Label("@vendor_ts__ra_ap_project_model-0.0.273//:ra_ap_project_model"), - "ra_ap_span": Label("@vendor_ts__ra_ap_span-0.0.273//:ra_ap_span"), - "ra_ap_syntax": Label("@vendor_ts__ra_ap_syntax-0.0.273//:ra_ap_syntax"), - "ra_ap_vfs": Label("@vendor_ts__ra_ap_vfs-0.0.273//:ra_ap_vfs"), + "ra_ap_base_db": Label("@vendor_ts__ra_ap_base_db-0.0.288//:ra_ap_base_db"), + "ra_ap_cfg": Label("@vendor_ts__ra_ap_cfg-0.0.288//:ra_ap_cfg"), + "ra_ap_hir": Label("@vendor_ts__ra_ap_hir-0.0.288//:ra_ap_hir"), + "ra_ap_hir_def": Label("@vendor_ts__ra_ap_hir_def-0.0.288//:ra_ap_hir_def"), + "ra_ap_hir_expand": Label("@vendor_ts__ra_ap_hir_expand-0.0.288//:ra_ap_hir_expand"), + "ra_ap_hir_ty": Label("@vendor_ts__ra_ap_hir_ty-0.0.288//:ra_ap_hir_ty"), + "ra_ap_ide_db": Label("@vendor_ts__ra_ap_ide_db-0.0.288//:ra_ap_ide_db"), + "ra_ap_intern": Label("@vendor_ts__ra_ap_intern-0.0.288//:ra_ap_intern"), + "ra_ap_load-cargo": Label("@vendor_ts__ra_ap_load-cargo-0.0.288//:ra_ap_load_cargo"), + "ra_ap_parser": Label("@vendor_ts__ra_ap_parser-0.0.288//:ra_ap_parser"), + "ra_ap_paths": Label("@vendor_ts__ra_ap_paths-0.0.288//:ra_ap_paths"), + "ra_ap_project_model": Label("@vendor_ts__ra_ap_project_model-0.0.288//:ra_ap_project_model"), + "ra_ap_span": Label("@vendor_ts__ra_ap_span-0.0.288//:ra_ap_span"), + "ra_ap_syntax": Label("@vendor_ts__ra_ap_syntax-0.0.288//:ra_ap_syntax"), + "ra_ap_vfs": Label("@vendor_ts__ra_ap_vfs-0.0.288//:ra_ap_vfs"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), "serde_json": Label("@vendor_ts__serde_json-1.0.140//:serde_json"), - "serde_with": Label("@vendor_ts__serde_with-3.12.0//:serde_with"), - "toml": Label("@vendor_ts__toml-0.8.20//:toml"), + "serde_with": Label("@vendor_ts__serde_with-3.13.0//:serde_with"), + "toml": Label("@vendor_ts__toml-0.8.23//:toml"), "tracing": Label("@vendor_ts__tracing-0.1.41//:tracing"), "tracing-flame": Label("@vendor_ts__tracing-flame-0.2.0//:tracing_flame"), "tracing-subscriber": Label("@vendor_ts__tracing-subscriber-0.3.19//:tracing_subscriber"), @@ -364,17 +363,17 @@ _NORMAL_DEPENDENCIES = { "rust/extractor/macros": { _COMMON_CONDITION: { "quote": Label("@vendor_ts__quote-1.0.40//:quote"), - "syn": Label("@vendor_ts__syn-2.0.100//:syn"), + "syn": Label("@vendor_ts__syn-2.0.103//:syn"), }, }, "shared/tree-sitter-extractor": { _COMMON_CONDITION: { - "chrono": Label("@vendor_ts__chrono-0.4.40//:chrono"), + "chrono": Label("@vendor_ts__chrono-0.4.41//:chrono"), "encoding": Label("@vendor_ts__encoding-0.2.33//:encoding"), "flate2": Label("@vendor_ts__flate2-1.1.0//:flate2"), "globset": Label("@vendor_ts__globset-0.4.15//:globset"), "lazy_static": Label("@vendor_ts__lazy_static-1.5.0//:lazy_static"), - "num_cpus": Label("@vendor_ts__num_cpus-1.16.0//:num_cpus"), + "num_cpus": Label("@vendor_ts__num_cpus-1.17.0//:num_cpus"), "rayon": Label("@vendor_ts__rayon-1.10.0//:rayon"), "regex": Label("@vendor_ts__regex-1.11.1//:regex"), "serde": Label("@vendor_ts__serde-1.0.219//:serde"), @@ -394,7 +393,7 @@ _NORMAL_ALIASES = { }, "rust/ast-generator": { _COMMON_CONDITION: { - Label("@vendor_ts__ra_ap_stdx-0.0.273//:ra_ap_stdx"): "stdx", + Label("@vendor_ts__ra_ap_stdx-0.0.288//:ra_ap_stdx"): "stdx", }, }, "rust/autobuild": { @@ -426,7 +425,7 @@ _NORMAL_DEV_DEPENDENCIES = { }, "shared/tree-sitter-extractor": { _COMMON_CONDITION: { - "rand": Label("@vendor_ts__rand-0.9.0//:rand"), + "rand": Label("@vendor_ts__rand-0.9.1//:rand"), "tree-sitter-json": Label("@vendor_ts__tree-sitter-json-0.24.8//:tree_sitter_json"), "tree-sitter-ql": Label("@vendor_ts__tree-sitter-ql-0.23.1//:tree_sitter_ql"), }, @@ -609,7 +608,6 @@ _CONDITIONS = { "cfg(any(target_os = \"macos\", target_os = \"ios\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios"], "cfg(any(target_os = \"macos\", target_os = \"openbsd\", target_os = \"vita\", target_os = \"emscripten\"))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-darwin"], "cfg(any(target_pointer_width = \"8\", target_pointer_width = \"16\", target_pointer_width = \"32\"))": ["@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-pc-windows-msvc", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1"], - "cfg(loom)": [], "cfg(not(windows))": ["@rules_rust//rust/platform:aarch64-apple-darwin", "@rules_rust//rust/platform:aarch64-apple-ios", "@rules_rust//rust/platform:aarch64-apple-ios-sim", "@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:aarch64-unknown-fuchsia", "@rules_rust//rust/platform:aarch64-unknown-linux-gnu", "@rules_rust//rust/platform:aarch64-unknown-nixos-gnu", "@rules_rust//rust/platform:aarch64-unknown-nto-qnx710", "@rules_rust//rust/platform:aarch64-unknown-uefi", "@rules_rust//rust/platform:arm-unknown-linux-gnueabi", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:armv7-unknown-linux-gnueabi", "@rules_rust//rust/platform:i686-apple-darwin", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:i686-unknown-freebsd", "@rules_rust//rust/platform:i686-unknown-linux-gnu", "@rules_rust//rust/platform:powerpc-unknown-linux-gnu", "@rules_rust//rust/platform:riscv32imc-unknown-none-elf", "@rules_rust//rust/platform:riscv64gc-unknown-none-elf", "@rules_rust//rust/platform:s390x-unknown-linux-gnu", "@rules_rust//rust/platform:thumbv7em-none-eabi", "@rules_rust//rust/platform:thumbv8m.main-none-eabi", "@rules_rust//rust/platform:wasm32-unknown-unknown", "@rules_rust//rust/platform:wasm32-wasip1", "@rules_rust//rust/platform:x86_64-apple-darwin", "@rules_rust//rust/platform:x86_64-apple-ios", "@rules_rust//rust/platform:x86_64-linux-android", "@rules_rust//rust/platform:x86_64-unknown-freebsd", "@rules_rust//rust/platform:x86_64-unknown-fuchsia", "@rules_rust//rust/platform:x86_64-unknown-linux-gnu", "@rules_rust//rust/platform:x86_64-unknown-nixos-gnu", "@rules_rust//rust/platform:x86_64-unknown-none", "@rules_rust//rust/platform:x86_64-unknown-uefi"], "cfg(target_os = \"android\")": ["@rules_rust//rust/platform:aarch64-linux-android", "@rules_rust//rust/platform:armv7-linux-androideabi", "@rules_rust//rust/platform:i686-linux-android", "@rules_rust//rust/platform:x86_64-linux-android"], "cfg(target_os = \"haiku\")": [], @@ -762,12 +760,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__anyhow-1.0.97", - sha256 = "dcfed56ad506cb2c684a14971b8861fdc3baaaae314b9e5f9bb532cbe3ba7a4f", + name = "vendor_ts__anyhow-1.0.98", + sha256 = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487", type = "tar.gz", - urls = ["https://static.crates.io/crates/anyhow/1.0.97/download"], - strip_prefix = "anyhow-1.0.97", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anyhow-1.0.97.bazel"), + urls = ["https://static.crates.io/crates/anyhow/1.0.98/download"], + strip_prefix = "anyhow-1.0.98", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.anyhow-1.0.98.bazel"), ) maybe( @@ -832,12 +830,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__bitflags-2.9.0", - sha256 = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd", + name = "vendor_ts__bitflags-2.9.1", + sha256 = "1b8e56985ec62d17e9c1001dc89c88ecd7dc08e47eba5ec7c29c7b5eeecde967", type = "tar.gz", - urls = ["https://static.crates.io/crates/bitflags/2.9.0/download"], - strip_prefix = "bitflags-2.9.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bitflags-2.9.0.bazel"), + urls = ["https://static.crates.io/crates/bitflags/2.9.1/download"], + strip_prefix = "bitflags-2.9.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.bitflags-2.9.1.bazel"), ) maybe( @@ -852,12 +850,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__boxcar-0.2.11", - sha256 = "6740c6e2fc6360fa57c35214c7493826aee95993926092606f27c983b40837be", + name = "vendor_ts__boxcar-0.2.13", + sha256 = "26c4925bc979b677330a8c7fe7a8c94af2dbb4a2d37b4a20a80d884400f46baa", type = "tar.gz", - urls = ["https://static.crates.io/crates/boxcar/0.2.11/download"], - strip_prefix = "boxcar-0.2.11", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.boxcar-0.2.11.bazel"), + urls = ["https://static.crates.io/crates/boxcar/0.2.13/download"], + strip_prefix = "boxcar-0.2.13", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.boxcar-0.2.13.bazel"), ) maybe( @@ -902,32 +900,42 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__camino-1.1.9", - sha256 = "8b96ec4966b5813e2c0507c1f86115c8c5abaadc3980879c3424042a02fd1ad3", + name = "vendor_ts__camino-1.1.10", + sha256 = "0da45bc31171d8d6960122e222a67740df867c1dd53b4d51caa297084c185cab", type = "tar.gz", - urls = ["https://static.crates.io/crates/camino/1.1.9/download"], - strip_prefix = "camino-1.1.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.camino-1.1.9.bazel"), + urls = ["https://static.crates.io/crates/camino/1.1.10/download"], + strip_prefix = "camino-1.1.10", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.camino-1.1.10.bazel"), ) maybe( http_archive, - name = "vendor_ts__cargo-platform-0.1.9", - sha256 = "e35af189006b9c0f00a064685c727031e3ed2d8020f7ba284d78cc2671bd36ea", + name = "vendor_ts__cargo-platform-0.2.0", + sha256 = "84982c6c0ae343635a3a4ee6dedef965513735c8b183caa7289fa6e27399ebd4", type = "tar.gz", - urls = ["https://static.crates.io/crates/cargo-platform/0.1.9/download"], - strip_prefix = "cargo-platform-0.1.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cargo-platform-0.1.9.bazel"), + urls = ["https://static.crates.io/crates/cargo-platform/0.2.0/download"], + strip_prefix = "cargo-platform-0.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cargo-platform-0.2.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__cargo_metadata-0.19.2", - sha256 = "dd5eb614ed4c27c5d706420e4320fbe3216ab31fa1c33cd8246ac36dae4479ba", + name = "vendor_ts__cargo-util-schemas-0.2.0", + sha256 = "e63d2780ac94487eb9f1fea7b0d56300abc9eb488800854ca217f102f5caccca", type = "tar.gz", - urls = ["https://static.crates.io/crates/cargo_metadata/0.19.2/download"], - strip_prefix = "cargo_metadata-0.19.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cargo_metadata-0.19.2.bazel"), + urls = ["https://static.crates.io/crates/cargo-util-schemas/0.2.0/download"], + strip_prefix = "cargo-util-schemas-0.2.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cargo-util-schemas-0.2.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__cargo_metadata-0.20.0", + sha256 = "4f7835cfc6135093070e95eb2b53e5d9b5c403dc3a6be6040ee026270aa82502", + type = "tar.gz", + urls = ["https://static.crates.io/crates/cargo_metadata/0.20.0/download"], + strip_prefix = "cargo_metadata-0.20.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cargo_metadata-0.20.0.bazel"), ) maybe( @@ -942,12 +950,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__cfg-if-1.0.0", - sha256 = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd", + name = "vendor_ts__cfg-if-1.0.1", + sha256 = "9555578bc9e57714c812a1f84e4fc5b4d21fcb063490c624de019f7464c91268", type = "tar.gz", - urls = ["https://static.crates.io/crates/cfg-if/1.0.0/download"], - strip_prefix = "cfg-if-1.0.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cfg-if-1.0.0.bazel"), + urls = ["https://static.crates.io/crates/cfg-if/1.0.1/download"], + strip_prefix = "cfg-if-1.0.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.cfg-if-1.0.1.bazel"), ) maybe( @@ -962,82 +970,82 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__chalk-derive-0.100.0", - sha256 = "ab2d131019373f0d0d1f2af0abd4f719739f6583c1b33965112455f643a910af", + name = "vendor_ts__chalk-derive-0.103.0", + sha256 = "eb4899682de915ca7c0b025bdd0a3d34c75fe12184122fda6805a7baddaa293c", type = "tar.gz", - urls = ["https://static.crates.io/crates/chalk-derive/0.100.0/download"], - strip_prefix = "chalk-derive-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-derive-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/chalk-derive/0.103.0/download"], + strip_prefix = "chalk-derive-0.103.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-derive-0.103.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__chalk-ir-0.100.0", - sha256 = "4f114996bda14c0213f014a4ef31a7867dcf5f539a3900477fc6b20138e7a17b", + name = "vendor_ts__chalk-ir-0.103.0", + sha256 = "90a37d2ab99352b4caca135061e7b4ac67024b648c28ed0b787feec4bea4caed", type = "tar.gz", - urls = ["https://static.crates.io/crates/chalk-ir/0.100.0/download"], - strip_prefix = "chalk-ir-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-ir-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/chalk-ir/0.103.0/download"], + strip_prefix = "chalk-ir-0.103.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-ir-0.103.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__chalk-recursive-0.100.0", - sha256 = "551e956e031c09057c7b21f17d48d91de99c9b6b6e34bceaf5e7202d71021268", + name = "vendor_ts__chalk-recursive-0.103.0", + sha256 = "c855be60e646664bc37c2496d3dc81ca5ef60520930e5e0f0057a0575aff6c19", type = "tar.gz", - urls = ["https://static.crates.io/crates/chalk-recursive/0.100.0/download"], - strip_prefix = "chalk-recursive-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-recursive-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/chalk-recursive/0.103.0/download"], + strip_prefix = "chalk-recursive-0.103.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-recursive-0.103.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__chalk-solve-0.100.0", - sha256 = "cd7ca50181156ce649efe8e5dd00580f573651554e4dcd11afa4e2ac93f53324", + name = "vendor_ts__chalk-solve-0.103.0", + sha256 = "477ac6cdfd2013e9f93b09b036c2b607a67b2e728f4777b8422d55a79e9e3a34", type = "tar.gz", - urls = ["https://static.crates.io/crates/chalk-solve/0.100.0/download"], - strip_prefix = "chalk-solve-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-solve-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/chalk-solve/0.103.0/download"], + strip_prefix = "chalk-solve-0.103.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chalk-solve-0.103.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__chrono-0.4.40", - sha256 = "1a7964611d71df112cb1730f2ee67324fcf4d0fc6606acbbe9bfe06df124637c", + name = "vendor_ts__chrono-0.4.41", + sha256 = "c469d952047f47f91b68d1cba3f10d63c11d73e4636f24f08daf0278abf01c4d", type = "tar.gz", - urls = ["https://static.crates.io/crates/chrono/0.4.40/download"], - strip_prefix = "chrono-0.4.40", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.40.bazel"), + urls = ["https://static.crates.io/crates/chrono/0.4.41/download"], + strip_prefix = "chrono-0.4.41", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.chrono-0.4.41.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap-4.5.35", - sha256 = "d8aa86934b44c19c50f87cc2790e19f54f7a67aedb64101c2e1a2e5ecfb73944", + name = "vendor_ts__clap-4.5.40", + sha256 = "40b6887a1d8685cebccf115538db5c0efe625ccac9696ad45c409d96566e910f", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap/4.5.35/download"], - strip_prefix = "clap-4.5.35", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap-4.5.35.bazel"), + urls = ["https://static.crates.io/crates/clap/4.5.40/download"], + strip_prefix = "clap-4.5.40", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap-4.5.40.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap_builder-4.5.35", - sha256 = "2414dbb2dd0695280da6ea9261e327479e9d37b0630f6b53ba2a11c60c679fd9", + name = "vendor_ts__clap_builder-4.5.40", + sha256 = "e0c66c08ce9f0c698cbce5c0279d0bb6ac936d8674174fe48f736533b964f59e", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap_builder/4.5.35/download"], - strip_prefix = "clap_builder-4.5.35", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_builder-4.5.35.bazel"), + urls = ["https://static.crates.io/crates/clap_builder/4.5.40/download"], + strip_prefix = "clap_builder-4.5.40", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_builder-4.5.40.bazel"), ) maybe( http_archive, - name = "vendor_ts__clap_derive-4.5.32", - sha256 = "09176aae279615badda0765c0c0b3f6ed53f4709118af73cf4655d85d1530cd7", + name = "vendor_ts__clap_derive-4.5.40", + sha256 = "d2c7947ae4cc3d851207c1adb5b5e260ff0cca11446b1d6d1423788e442257ce", type = "tar.gz", - urls = ["https://static.crates.io/crates/clap_derive/4.5.32/download"], - strip_prefix = "clap_derive-4.5.32", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_derive-4.5.32.bazel"), + urls = ["https://static.crates.io/crates/clap_derive/4.5.40/download"], + strip_prefix = "clap_derive-4.5.40", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.clap_derive-4.5.40.bazel"), ) maybe( @@ -1102,12 +1110,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__crossbeam-channel-0.5.14", - sha256 = "06ba6d68e24814cb8de6bb986db8222d3a027d15872cabc0d18817bc3c0e4471", + name = "vendor_ts__crossbeam-channel-0.5.15", + sha256 = "82b8f8f868b36967f9606790d1903570de9ceaf870a7bf9fbbd3016d636a2cb2", type = "tar.gz", - urls = ["https://static.crates.io/crates/crossbeam-channel/0.5.14/download"], - strip_prefix = "crossbeam-channel-0.5.14", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.crossbeam-channel-0.5.14.bazel"), + urls = ["https://static.crates.io/crates/crossbeam-channel/0.5.15/download"], + strip_prefix = "crossbeam-channel-0.5.15", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.crossbeam-channel-0.5.15.bazel"), ) maybe( @@ -1180,16 +1188,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.darling_macro-0.20.10.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__dashmap-5.5.3", - sha256 = "978747c1d849a7d2ee5e8adc0159961c48fb7e5db2f06af6723b80123bb53856", - type = "tar.gz", - urls = ["https://static.crates.io/crates/dashmap/5.5.3/download"], - strip_prefix = "dashmap-5.5.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.dashmap-5.5.3.bazel"), - ) - maybe( http_archive, name = "vendor_ts__dashmap-6.1.0", @@ -1210,6 +1208,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.deranged-0.3.11.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__displaydoc-0.2.5", + sha256 = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0", + type = "tar.gz", + urls = ["https://static.crates.io/crates/displaydoc/0.2.5/download"], + strip_prefix = "displaydoc-0.2.5", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.displaydoc-0.2.5.bazel"), + ) + maybe( http_archive, name = "vendor_ts__drop_bomb-0.1.5", @@ -1230,6 +1238,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.dunce-1.0.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__dyn-clone-1.0.19", + sha256 = "1c7a8fb8a9fbf66c1f703fe16184d10ca0ee9d23be5b4436400408ba54a95005", + type = "tar.gz", + urls = ["https://static.crates.io/crates/dyn-clone/1.0.19/download"], + strip_prefix = "dyn-clone-1.0.19", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.dyn-clone-1.0.19.bazel"), + ) + maybe( http_archive, name = "vendor_ts__either-1.15.0", @@ -1330,6 +1348,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.equivalent-1.0.2.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__erased-serde-0.4.6", + sha256 = "e004d887f51fcb9fef17317a2f3525c887d8aa3f4f50fed920816a688284a5b7", + type = "tar.gz", + urls = ["https://static.crates.io/crates/erased-serde/0.4.6/download"], + strip_prefix = "erased-serde-0.4.6", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.erased-serde-0.4.6.bazel"), + ) + maybe( http_archive, name = "vendor_ts__figment-0.10.19", @@ -1390,6 +1418,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.foldhash-0.1.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__form_urlencoded-1.2.1", + sha256 = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456", + type = "tar.gz", + urls = ["https://static.crates.io/crates/form_urlencoded/1.2.1/download"], + strip_prefix = "form_urlencoded-1.2.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.form_urlencoded-1.2.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__fs-err-2.11.0", @@ -1420,16 +1458,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.fst-0.4.7.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__generator-0.8.4", - sha256 = "cc6bd114ceda131d3b1d665eba35788690ad37f5916457286b32ab6fd3c438dd", - type = "tar.gz", - urls = ["https://static.crates.io/crates/generator/0.8.4/download"], - strip_prefix = "generator-0.8.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.generator-0.8.4.bazel"), - ) - maybe( http_archive, name = "vendor_ts__getrandom-0.3.1", @@ -1512,12 +1540,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__hermit-abi-0.3.9", - sha256 = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024", + name = "vendor_ts__hermit-abi-0.5.2", + sha256 = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c", type = "tar.gz", - urls = ["https://static.crates.io/crates/hermit-abi/0.3.9/download"], - strip_prefix = "hermit-abi-0.3.9", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hermit-abi-0.3.9.bazel"), + urls = ["https://static.crates.io/crates/hermit-abi/0.5.2/download"], + strip_prefix = "hermit-abi-0.5.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.hermit-abi-0.5.2.bazel"), ) maybe( @@ -1560,6 +1588,76 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.iana-time-zone-haiku-0.1.2.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__icu_collections-2.0.0", + sha256 = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_collections/2.0.0/download"], + strip_prefix = "icu_collections-2.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_collections-2.0.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_locale_core-2.0.0", + sha256 = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_locale_core/2.0.0/download"], + strip_prefix = "icu_locale_core-2.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_locale_core-2.0.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_normalizer-2.0.0", + sha256 = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_normalizer/2.0.0/download"], + strip_prefix = "icu_normalizer-2.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_normalizer-2.0.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_normalizer_data-2.0.0", + sha256 = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_normalizer_data/2.0.0/download"], + strip_prefix = "icu_normalizer_data-2.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_normalizer_data-2.0.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_properties-2.0.1", + sha256 = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_properties/2.0.1/download"], + strip_prefix = "icu_properties-2.0.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_properties-2.0.1.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_properties_data-2.0.1", + sha256 = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_properties_data/2.0.1/download"], + strip_prefix = "icu_properties_data-2.0.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_properties_data-2.0.1.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__icu_provider-2.0.0", + sha256 = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af", + type = "tar.gz", + urls = ["https://static.crates.io/crates/icu_provider/2.0.0/download"], + strip_prefix = "icu_provider-2.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.icu_provider-2.0.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__ident_case-1.0.1", @@ -1570,6 +1668,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ident_case-1.0.1.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__idna-1.0.3", + sha256 = "686f825264d630750a544639377bae737628043f20d38bbc029e8f29ea968a7e", + type = "tar.gz", + urls = ["https://static.crates.io/crates/idna/1.0.3/download"], + strip_prefix = "idna-1.0.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.idna-1.0.3.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__idna_adapter-1.2.1", + sha256 = "3acae9609540aa318d1bc588455225fb2085b9ed0c4f6bd0d9d5bcd86f1a0344", + type = "tar.gz", + urls = ["https://static.crates.io/crates/idna_adapter/1.2.1/download"], + strip_prefix = "idna_adapter-1.2.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.idna_adapter-1.2.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__indexmap-1.9.3", @@ -1672,12 +1790,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__jod-thread-0.1.2", - sha256 = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae", + name = "vendor_ts__jod-thread-1.0.0", + sha256 = "a037eddb7d28de1d0fc42411f501b53b75838d313908078d6698d064f3029b24", type = "tar.gz", - urls = ["https://static.crates.io/crates/jod-thread/0.1.2/download"], - strip_prefix = "jod-thread-0.1.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.jod-thread-0.1.2.bazel"), + urls = ["https://static.crates.io/crates/jod-thread/1.0.0/download"], + strip_prefix = "jod-thread-1.0.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.jod-thread-1.0.0.bazel"), ) maybe( @@ -1732,12 +1850,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__libc-0.2.171", - sha256 = "c19937216e9d3aa9956d9bb8dfc0b0c8beb6058fc4f7a4dc4d850edf86a237d6", + name = "vendor_ts__libc-0.2.174", + sha256 = "1171693293099992e19cddea4e8b849964e9846f4acee11b3948bcc337be8776", type = "tar.gz", - urls = ["https://static.crates.io/crates/libc/0.2.171/download"], - strip_prefix = "libc-0.2.171", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.171.bazel"), + urls = ["https://static.crates.io/crates/libc/0.2.174/download"], + strip_prefix = "libc-0.2.174", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.libc-0.2.174.bazel"), ) maybe( @@ -1760,6 +1878,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.line-index-0.1.2.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__litemap-0.8.0", + sha256 = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956", + type = "tar.gz", + urls = ["https://static.crates.io/crates/litemap/0.8.0/download"], + strip_prefix = "litemap-0.8.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.litemap-0.8.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__lock_api-0.4.12", @@ -1790,16 +1918,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.log-0.4.27.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__loom-0.7.2", - sha256 = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca", - type = "tar.gz", - urls = ["https://static.crates.io/crates/loom/0.7.2/download"], - strip_prefix = "loom-0.7.2", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.loom-0.7.2.bazel"), - ) - maybe( http_archive, name = "vendor_ts__matchers-0.1.0", @@ -1812,12 +1930,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__memchr-2.7.4", - sha256 = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3", + name = "vendor_ts__memchr-2.7.5", + sha256 = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0", type = "tar.gz", - urls = ["https://static.crates.io/crates/memchr/2.7.4/download"], - strip_prefix = "memchr-2.7.4", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.memchr-2.7.4.bazel"), + urls = ["https://static.crates.io/crates/memchr/2.7.5/download"], + strip_prefix = "memchr-2.7.5", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.memchr-2.7.5.bazel"), ) maybe( @@ -1932,12 +2050,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__num_cpus-1.16.0", - sha256 = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43", + name = "vendor_ts__num_cpus-1.17.0", + sha256 = "91df4bbde75afed763b708b7eee1e8e7651e02d97f6d5dd763e89367e957b23b", type = "tar.gz", - urls = ["https://static.crates.io/crates/num_cpus/1.16.0/download"], - strip_prefix = "num_cpus-1.16.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.num_cpus-1.16.0.bazel"), + urls = ["https://static.crates.io/crates/num_cpus/1.17.0/download"], + strip_prefix = "num_cpus-1.17.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.num_cpus-1.17.0.bazel"), ) maybe( @@ -1960,6 +2078,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.oorandom-11.1.5.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__ordered-float-2.10.1", + sha256 = "68f19d67e5a2795c94e73e0bb1cc1a7edeb2e28efd39e2e1c9b7a40c1108b11c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/ordered-float/2.10.1/download"], + strip_prefix = "ordered-float-2.10.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ordered-float-2.10.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__os_str_bytes-7.0.0", @@ -2020,6 +2148,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.pear_codegen-0.2.9.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__percent-encoding-2.3.1", + sha256 = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e", + type = "tar.gz", + urls = ["https://static.crates.io/crates/percent-encoding/2.3.1/download"], + strip_prefix = "percent-encoding-2.3.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.percent-encoding-2.3.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__perf-event-0.4.7", @@ -2080,6 +2218,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.portable-atomic-1.11.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__potential_utf-0.1.2", + sha256 = "e5a7c30837279ca13e7c867e9e40053bc68740f988cb07f7ca6df43cc734b585", + type = "tar.gz", + urls = ["https://static.crates.io/crates/potential_utf/0.1.2/download"], + strip_prefix = "potential_utf-0.1.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.potential_utf-0.1.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__powerfmt-0.2.0", @@ -2102,12 +2250,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__proc-macro2-1.0.94", - sha256 = "a31971752e70b8b2686d7e46ec17fb38dad4051d94024c88df49b667caea9c84", + name = "vendor_ts__proc-macro2-1.0.95", + sha256 = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778", type = "tar.gz", - urls = ["https://static.crates.io/crates/proc-macro2/1.0.94/download"], - strip_prefix = "proc-macro2-1.0.94", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro2-1.0.94.bazel"), + urls = ["https://static.crates.io/crates/proc-macro2/1.0.95/download"], + strip_prefix = "proc-macro2-1.0.95", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.proc-macro2-1.0.95.bazel"), ) maybe( @@ -2132,332 +2280,332 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_abi-0.100.0", - sha256 = "f1651b0f7e8c3eb7c27a88f39d277e69c32bfe58e3be174d286c1a24d6a7a4d8", + name = "vendor_ts__ra-ap-rustc_abi-0.116.0", + sha256 = "a967e3a9cd3e38b543f503978e0eccee461e3aea3f7b10e944959bff41dbe612", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_abi/0.100.0/download"], - strip_prefix = "ra-ap-rustc_abi-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_abi-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_abi/0.116.0/download"], + strip_prefix = "ra-ap-rustc_abi-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_abi-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_hashes-0.100.0", - sha256 = "2bcd85e93dc0ea850bcfe7957a115957df799ccbc9eea488bdee5ec6780d212b", + name = "vendor_ts__ra-ap-rustc_hashes-0.116.0", + sha256 = "1ea4c755ecbbffa5743c251344f484ebe571ec7bc5b36d80b2a8ae775d1a7a40", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_hashes/0.100.0/download"], - strip_prefix = "ra-ap-rustc_hashes-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_hashes-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_hashes/0.116.0/download"], + strip_prefix = "ra-ap-rustc_hashes-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_hashes-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_index-0.100.0", - sha256 = "62b295fc0640cd9fe0ecab872ee4a17a96f90a3998ec9f0c4765e9b8415c12cc", + name = "vendor_ts__ra-ap-rustc_index-0.116.0", + sha256 = "aca7ad7cf911538c619caa2162339fe98637e9e46f11bb0484ef96735df4d64a", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_index/0.100.0/download"], - strip_prefix = "ra-ap-rustc_index-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_index-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_index/0.116.0/download"], + strip_prefix = "ra-ap-rustc_index-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_index-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_index_macros-0.100.0", - sha256 = "c675f4257023aa933882906f13802cae287e88cc39ab13cbb96809083db0c801", + name = "vendor_ts__ra-ap-rustc_index_macros-0.116.0", + sha256 = "8767ba551c9355bc3031be072cc4bb0381106e5e7cd275e72b7a8c76051c4070", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_index_macros/0.100.0/download"], - strip_prefix = "ra-ap-rustc_index_macros-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_index_macros-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_index_macros/0.116.0/download"], + strip_prefix = "ra-ap-rustc_index_macros-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_index_macros-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_lexer-0.100.0", - sha256 = "c8358702c2a510ea84ba5801ddc047d9ad9520902cfb0e6173277610cdce2c9c", + name = "vendor_ts__ra-ap-rustc_lexer-0.116.0", + sha256 = "6101374afb267e6c27e4e2eb0b1352e9f3504c1a8f716f619cd39244e2ed92ab", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_lexer/0.100.0/download"], - strip_prefix = "ra-ap-rustc_lexer-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_lexer-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_lexer/0.116.0/download"], + strip_prefix = "ra-ap-rustc_lexer-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_lexer-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_parse_format-0.100.0", - sha256 = "b98f402011d46732c35c47bfd111dec0495747fef2ec900ddee7fe15d78449a7", + name = "vendor_ts__ra-ap-rustc_parse_format-0.116.0", + sha256 = "ecd88a19f00da4f43e6727d5013444cbc399804b5046dfa2bbcd28ebed3970ce", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_parse_format/0.100.0/download"], - strip_prefix = "ra-ap-rustc_parse_format-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_parse_format-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_parse_format/0.116.0/download"], + strip_prefix = "ra-ap-rustc_parse_format-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_parse_format-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra-ap-rustc_pattern_analysis-0.100.0", - sha256 = "bef3ff73fa4653252ffe1d1e9177a446f49ef46d97140e4816b7ff2dad59ed53", + name = "vendor_ts__ra-ap-rustc_pattern_analysis-0.116.0", + sha256 = "bb332dd32d7850a799862533b1c021e6062558861a4ad57817bf522499fbb892", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra-ap-rustc_pattern_analysis/0.100.0/download"], - strip_prefix = "ra-ap-rustc_pattern_analysis-0.100.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_pattern_analysis-0.100.0.bazel"), + urls = ["https://static.crates.io/crates/ra-ap-rustc_pattern_analysis/0.116.0/download"], + strip_prefix = "ra-ap-rustc_pattern_analysis-0.116.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra-ap-rustc_pattern_analysis-0.116.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_base_db-0.0.273", - sha256 = "8fd761118bbafe29e2b187e694c6b8e800f2c7822bbc1d9d2db4ac21fb8b0365", + name = "vendor_ts__ra_ap_base_db-0.0.288", + sha256 = "edf27fccb119fe85faf51f51847df9695d3cca30c2427fed9b4d71e6adebb54f", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_base_db/0.0.273/download"], - strip_prefix = "ra_ap_base_db-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_base_db-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_base_db/0.0.288/download"], + strip_prefix = "ra_ap_base_db-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_base_db-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_cfg-0.0.273", - sha256 = "5ce74ce1af24afd86d3529dbbf5a849d026948b2d8ba51d199b6ea6db6e345b6", + name = "vendor_ts__ra_ap_cfg-0.0.288", + sha256 = "3cea86a5d6e84fd73824c26f52442807af911db038db821124b2ac65fac24209", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_cfg/0.0.273/download"], - strip_prefix = "ra_ap_cfg-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_cfg-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_cfg/0.0.288/download"], + strip_prefix = "ra_ap_cfg-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_cfg-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_edition-0.0.273", - sha256 = "f423b9fb19e3920e4c7039120d09d9c79070a26efe8ff9f787c7234b07f518c5", + name = "vendor_ts__ra_ap_edition-0.0.288", + sha256 = "fb5538d534eeb8526071610664dc64b71ca336b78f6933ff7241d10c1f37e91b", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_edition/0.0.273/download"], - strip_prefix = "ra_ap_edition-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_edition-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_edition/0.0.288/download"], + strip_prefix = "ra_ap_edition-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_edition-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir-0.0.273", - sha256 = "dd4aa8a568b80d288b90c4fa5dc8a3cc405914d261bfd33a3761c1ba41be358d", + name = "vendor_ts__ra_ap_hir-0.0.288", + sha256 = "44796828650900565917ddcc944fecdf6c7d5c3a8a31141f17268ea8c1d2e6f0", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir/0.0.273/download"], - strip_prefix = "ra_ap_hir-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir/0.0.288/download"], + strip_prefix = "ra_ap_hir-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_def-0.0.273", - sha256 = "acb18d9378a828a23ccf87b89199db005adb67ba2a05a37d7a3fcad4d1036e66", + name = "vendor_ts__ra_ap_hir_def-0.0.288", + sha256 = "8949b2fb362a1e4eab4d90c7299f0fad3f2c887d9f7d9c286ac6530da4141f85", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_def/0.0.273/download"], - strip_prefix = "ra_ap_hir_def-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_def-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_def/0.0.288/download"], + strip_prefix = "ra_ap_hir_def-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_def-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_expand-0.0.273", - sha256 = "094fa79d8f661f52cf3b7fb8b3d91c4be2ad9e71a3967d3dacd25429fa44b37d", + name = "vendor_ts__ra_ap_hir_expand-0.0.288", + sha256 = "22457a431b5eeb67517e03266fddefe48839b060a674a6b18bd84269012ede1e", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_expand/0.0.273/download"], - strip_prefix = "ra_ap_hir_expand-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_expand-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_expand/0.0.288/download"], + strip_prefix = "ra_ap_hir_expand-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_expand-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_hir_ty-0.0.273", - sha256 = "093482d200d5db421db5692e7819bbb14fb717cc8cb0f91f93cce9fde85b3df2", + name = "vendor_ts__ra_ap_hir_ty-0.0.288", + sha256 = "3a4b7a7531414203e11ae447627e2909250eff392c06278ab53ae2a022ecc9fc", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_hir_ty/0.0.273/download"], - strip_prefix = "ra_ap_hir_ty-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_ty-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_hir_ty/0.0.288/download"], + strip_prefix = "ra_ap_hir_ty-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_hir_ty-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_ide_db-0.0.273", - sha256 = "b655b92dfa9444db8129321b9217d9e4a83a58ee707aa1004a93052acfb43d57", + name = "vendor_ts__ra_ap_ide_db-0.0.288", + sha256 = "77741ceb096d4f5ecf5384210ea5a2b46878125047c6b0df2bdcfac08a20ea0c", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_ide_db/0.0.273/download"], - strip_prefix = "ra_ap_ide_db-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_ide_db-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_ide_db/0.0.288/download"], + strip_prefix = "ra_ap_ide_db-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_ide_db-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_intern-0.0.273", - sha256 = "b4e528496b4d4c351806bb073d3d7f6526535741b9e8801776603c924bbec624", + name = "vendor_ts__ra_ap_intern-0.0.288", + sha256 = "4a1872cd5a425db6d5247a7deca11526e3104757f6732447ac6ee93c3e795725", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_intern/0.0.273/download"], - strip_prefix = "ra_ap_intern-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_intern-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_intern/0.0.288/download"], + strip_prefix = "ra_ap_intern-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_intern-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_load-cargo-0.0.273", - sha256 = "1a97a5070b2f4b99f56683d91b2687aa0c530d8969cc5252ec2ae5644e428ffe", + name = "vendor_ts__ra_ap_load-cargo-0.0.288", + sha256 = "f30f5433f056594b02f1879c5c2ce76ea9fd395f21e2a55df6ce3229db993caa", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_load-cargo/0.0.273/download"], - strip_prefix = "ra_ap_load-cargo-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_load-cargo-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_load-cargo/0.0.288/download"], + strip_prefix = "ra_ap_load-cargo-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_load-cargo-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_mbe-0.0.273", - sha256 = "b187ee5ee3fa726eeea5142242a0397e2200d77084026986a68324b9599f9046", + name = "vendor_ts__ra_ap_mbe-0.0.288", + sha256 = "222a993acaec35e90c08357aecd530b7170cc3a7f13b3ddfd15a200029ccd555", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_mbe/0.0.273/download"], - strip_prefix = "ra_ap_mbe-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_mbe-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_mbe/0.0.288/download"], + strip_prefix = "ra_ap_mbe-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_mbe-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_parser-0.0.273", - sha256 = "2306e6c051e60483f3b317fac9dec6c883b7792eeb8db24ec6f39dbfa5430159", + name = "vendor_ts__ra_ap_parser-0.0.288", + sha256 = "1c5693f5efd27832e1ac572ea756a1a4a3f7eba07f1287268ca111710971c2e5", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_parser/0.0.273/download"], - strip_prefix = "ra_ap_parser-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_parser-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_parser/0.0.288/download"], + strip_prefix = "ra_ap_parser-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_parser-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_paths-0.0.273", - sha256 = "dcedd00499621bdd0f1fe01955c04e4b388197aa826744003afaf6cc2944bc80", + name = "vendor_ts__ra_ap_paths-0.0.288", + sha256 = "39418eff64e59d4bf90dd825ac7d242576e9554669824ebc55a6628bde0aaf10", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_paths/0.0.273/download"], - strip_prefix = "ra_ap_paths-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_paths-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_paths/0.0.288/download"], + strip_prefix = "ra_ap_paths-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_paths-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_proc_macro_api-0.0.273", - sha256 = "7a2e49b550015cd4ad152bd78d92d73594497f2e44f61273f9fed3534ad4bbbe", + name = "vendor_ts__ra_ap_proc_macro_api-0.0.288", + sha256 = "14a315af8c4a9379c26abe7baa143d62e3975ff26f27c65332f9a5edccc56d38", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_proc_macro_api/0.0.273/download"], - strip_prefix = "ra_ap_proc_macro_api-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_proc_macro_api-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_proc_macro_api/0.0.288/download"], + strip_prefix = "ra_ap_proc_macro_api-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_proc_macro_api-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_profile-0.0.273", - sha256 = "87cdbd27ebe02ec21fdae3df303f194bda036a019ecef80d47e0082646f06c54", + name = "vendor_ts__ra_ap_profile-0.0.288", + sha256 = "08274a0adbf8255f8b2672302452e31bbb2ed4d38324da9c72a7bf9cf1428483", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_profile/0.0.273/download"], - strip_prefix = "ra_ap_profile-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_profile-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_profile/0.0.288/download"], + strip_prefix = "ra_ap_profile-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_profile-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_project_model-0.0.273", - sha256 = "5eaa3406c891a7840d20ce615f8decca32cbc9d3654b82dcbcc3a31257ce90b9", + name = "vendor_ts__ra_ap_project_model-0.0.288", + sha256 = "33deecb3724faf91f13b0f1b5115af7c4f5c9dc1dfbbf45f55261aa28f874838", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_project_model/0.0.273/download"], - strip_prefix = "ra_ap_project_model-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_project_model-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_project_model/0.0.288/download"], + strip_prefix = "ra_ap_project_model-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_project_model-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_query-group-macro-0.0.273", - sha256 = "1fbc1748e4876a9b0ccfacfc7e2fe254f30e92ef58d98925282b3803e8b004ed", + name = "vendor_ts__ra_ap_query-group-macro-0.0.288", + sha256 = "5fdefdc9c8d6fd7d85ac572649378e83266262e09400bfdb7c8a7407d3cc2a3e", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_query-group-macro/0.0.273/download"], - strip_prefix = "ra_ap_query-group-macro-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_query-group-macro-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_query-group-macro/0.0.288/download"], + strip_prefix = "ra_ap_query-group-macro-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_query-group-macro-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_span-0.0.273", - sha256 = "ed1d036e738bf32a057d90698df85bcb83ed6263b5fe9fba132c99e8ec3aecaf", + name = "vendor_ts__ra_ap_span-0.0.288", + sha256 = "c20071c89e1f7dd63c803130634f4bb6ce7783dc0e7ff90839d1d0f4e625b7a8", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_span/0.0.273/download"], - strip_prefix = "ra_ap_span-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_span-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_span/0.0.288/download"], + strip_prefix = "ra_ap_span-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_span-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_stdx-0.0.273", - sha256 = "6e3775954ab24408f71e97079a97558078a166a4082052e83256ae4c22dae18d", + name = "vendor_ts__ra_ap_stdx-0.0.288", + sha256 = "552df390b26624eca7936aea1dbbb3786d7a12477e26ef917ffabba19f75ad44", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_stdx/0.0.273/download"], - strip_prefix = "ra_ap_stdx-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_stdx-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_stdx/0.0.288/download"], + strip_prefix = "ra_ap_stdx-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_stdx-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_syntax-0.0.273", - sha256 = "b49b081f209a764700f688db91820a66c2ecfe5f138895d831361cf84f716691", + name = "vendor_ts__ra_ap_syntax-0.0.288", + sha256 = "a78db1a9966c0fa05446b8185da35a325680741119366c6246e4a9800f29143a", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_syntax/0.0.273/download"], - strip_prefix = "ra_ap_syntax-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_syntax/0.0.288/download"], + strip_prefix = "ra_ap_syntax-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_syntax-bridge-0.0.273", - sha256 = "f2740bbe603d527f2cf0aaf51629de7d072694fbbaaeda8264f7591be1493d1b", + name = "vendor_ts__ra_ap_syntax-bridge-0.0.288", + sha256 = "e69ef7fad8598d5c9f14a375d56ec12200fa927bc805b600af419611f4642fdb", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_syntax-bridge/0.0.273/download"], - strip_prefix = "ra_ap_syntax-bridge-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-bridge-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_syntax-bridge/0.0.288/download"], + strip_prefix = "ra_ap_syntax-bridge-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_syntax-bridge-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_toolchain-0.0.273", - sha256 = "efbff9f26f307ef958586357d1653d000861dcd3acbaf33a009651e024720c7e", + name = "vendor_ts__ra_ap_toolchain-0.0.288", + sha256 = "628f3f190def67b1116d8bdd6ec4f6f206fada2c93b84ba71086d60c63429282", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_toolchain/0.0.273/download"], - strip_prefix = "ra_ap_toolchain-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_toolchain-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_toolchain/0.0.288/download"], + strip_prefix = "ra_ap_toolchain-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_toolchain-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_tt-0.0.273", - sha256 = "0b1ce3ac14765e414fa6031fda7dc35d3492c74de225aac689ba8b8bf037e1f8", + name = "vendor_ts__ra_ap_tt-0.0.288", + sha256 = "e050f4ad13df59e90e38332860304a3e85ff2fa8d4585b8cc44fc982923c82b1", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_tt/0.0.273/download"], - strip_prefix = "ra_ap_tt-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_tt-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_tt/0.0.288/download"], + strip_prefix = "ra_ap_tt-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_tt-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_vfs-0.0.273", - sha256 = "29427a7c27ce8ddfefb52d77c952a4588c74d0a7ab064dc627129088a90423ca", + name = "vendor_ts__ra_ap_vfs-0.0.288", + sha256 = "62082190f0b3551e4d941bcaaac51a7c39c85b2e193bcc50d0807e1701da4083", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_vfs/0.0.273/download"], - strip_prefix = "ra_ap_vfs-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_vfs/0.0.288/download"], + strip_prefix = "ra_ap_vfs-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__ra_ap_vfs-notify-0.0.273", - sha256 = "d5a0e3095b8216ecc131f38b4b0025cac324a646469a95d2670354aee7278078", + name = "vendor_ts__ra_ap_vfs-notify-0.0.288", + sha256 = "efd7cfa1095b81bd1994ab70e5543c97a8733987eb0ddf390cf3ad58d4e2dc57", type = "tar.gz", - urls = ["https://static.crates.io/crates/ra_ap_vfs-notify/0.0.273/download"], - strip_prefix = "ra_ap_vfs-notify-0.0.273", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-notify-0.0.273.bazel"), + urls = ["https://static.crates.io/crates/ra_ap_vfs-notify/0.0.288/download"], + strip_prefix = "ra_ap_vfs-notify-0.0.288", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ra_ap_vfs-notify-0.0.288.bazel"), ) maybe( http_archive, - name = "vendor_ts__rand-0.9.0", - sha256 = "3779b94aeb87e8bd4e834cee3650289ee9e0d5677f976ecdb6d219e5f4f6cd94", + name = "vendor_ts__rand-0.9.1", + sha256 = "9fbfd9d094a40bf3ae768db9361049ace4c0e04a4fd6b359518bd7b73a73dd97", type = "tar.gz", - urls = ["https://static.crates.io/crates/rand/0.9.0/download"], - strip_prefix = "rand-0.9.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rand-0.9.0.bazel"), + urls = ["https://static.crates.io/crates/rand/0.9.1/download"], + strip_prefix = "rand-0.9.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rand-0.9.1.bazel"), ) maybe( @@ -2510,6 +2658,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.redox_syscall-0.5.8.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__ref-cast-1.0.24", + sha256 = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf", + type = "tar.gz", + urls = ["https://static.crates.io/crates/ref-cast/1.0.24/download"], + strip_prefix = "ref-cast-1.0.24", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ref-cast-1.0.24.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__ref-cast-impl-1.0.24", + sha256 = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7", + type = "tar.gz", + urls = ["https://static.crates.io/crates/ref-cast-impl/1.0.24/download"], + strip_prefix = "ref-cast-impl-1.0.24", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.ref-cast-impl-1.0.24.bazel"), + ) + maybe( http_archive, name = "vendor_ts__regex-1.11.1", @@ -2590,6 +2758,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc-hash-2.1.1.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__rustc-literal-escaper-0.0.2", + sha256 = "0041b6238913c41fe704213a4a9329e2f685a156d1781998128b4149c230ad04", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rustc-literal-escaper/0.0.2/download"], + strip_prefix = "rustc-literal-escaper-0.0.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc-literal-escaper-0.0.2.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__rustc-literal-escaper-0.0.3", + sha256 = "78744cd17f5d01c75b709e49807d1363e02a940ccee2e9e72435843fdb0d076e", + type = "tar.gz", + urls = ["https://static.crates.io/crates/rustc-literal-escaper/0.0.3/download"], + strip_prefix = "rustc-literal-escaper-0.0.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc-literal-escaper-0.0.3.bazel"), + ) + maybe( http_archive, name = "vendor_ts__rustc-stable-hash-0.1.1", @@ -2600,23 +2788,14 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc-stable-hash-0.1.1.bazel"), ) - maybe( - new_git_repository, - name = "vendor_ts__rustc_apfloat-0.2.2-llvm-462a31f5a5ab", - commit = "32968f16ef1b082243f9bf43a3fbd65c381b3e27", - init_submodules = True, - remote = "https://github.com/redsun82/rustc_apfloat.git", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc_apfloat-0.2.2+llvm-462a31f5a5ab.bazel"), - ) - maybe( http_archive, - name = "vendor_ts__rustversion-1.0.20", - sha256 = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2", + name = "vendor_ts__rustc_apfloat-0.2.3-llvm-462a31f5a5ab", + sha256 = "486c2179b4796f65bfe2ee33679acf0927ac83ecf583ad6c91c3b4570911b9ad", type = "tar.gz", - urls = ["https://static.crates.io/crates/rustversion/1.0.20/download"], - strip_prefix = "rustversion-1.0.20", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustversion-1.0.20.bazel"), + urls = ["https://static.crates.io/crates/rustc_apfloat/0.2.3+llvm-462a31f5a5ab/download"], + strip_prefix = "rustc_apfloat-0.2.3+llvm-462a31f5a5ab", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.rustc_apfloat-0.2.3+llvm-462a31f5a5ab.bazel"), ) maybe( @@ -2631,32 +2810,32 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__salsa-0.19.0", - sha256 = "dd55c6549513b2a42884dae31e3d4f4ac8a6cc51062e68e24d162133889f327c", + name = "vendor_ts__salsa-0.22.0", + sha256 = "c8fff508e3d6ef42a32607f7538e17171a877a12015e32036f46e99d00c95781", type = "tar.gz", - urls = ["https://static.crates.io/crates/salsa/0.19.0/download"], - strip_prefix = "salsa-0.19.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-0.19.0.bazel"), + urls = ["https://static.crates.io/crates/salsa/0.22.0/download"], + strip_prefix = "salsa-0.22.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-0.22.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__salsa-macro-rules-0.19.0", - sha256 = "2619b4b451beab0a7e4364ff1e6f31950e7e418888fd9bf2f28889671563166a", + name = "vendor_ts__salsa-macro-rules-0.22.0", + sha256 = "8ea72b3c06f2ce6350fe3a0eeb7aaaf842d1d8352b706973c19c4f02e298a87c", type = "tar.gz", - urls = ["https://static.crates.io/crates/salsa-macro-rules/0.19.0/download"], - strip_prefix = "salsa-macro-rules-0.19.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-macro-rules-0.19.0.bazel"), + urls = ["https://static.crates.io/crates/salsa-macro-rules/0.22.0/download"], + strip_prefix = "salsa-macro-rules-0.22.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-macro-rules-0.22.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__salsa-macros-0.19.0", - sha256 = "4be57a99b3896e8d26850428a6874fb86849e2db874e1db3528e5cee4337d277", + name = "vendor_ts__salsa-macros-0.22.0", + sha256 = "0ce92025bc160b27814a207cb78d680973af17f863c7f4fc56cf3a535e22f378", type = "tar.gz", - urls = ["https://static.crates.io/crates/salsa-macros/0.19.0/download"], - strip_prefix = "salsa-macros-0.19.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-macros-0.19.0.bazel"), + urls = ["https://static.crates.io/crates/salsa-macros/0.22.0/download"], + strip_prefix = "salsa-macros-0.22.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.salsa-macros-0.22.0.bazel"), ) maybe( @@ -2669,6 +2848,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.same-file-1.0.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__schemars-0.9.0", + sha256 = "4cd191f9397d57d581cddd31014772520aa448f65ef991055d7f61582c65165f", + type = "tar.gz", + urls = ["https://static.crates.io/crates/schemars/0.9.0/download"], + strip_prefix = "schemars-0.9.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.schemars-0.9.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__scoped-tls-1.0.1", @@ -2709,6 +2898,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde-1.0.219.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__serde-untagged-0.1.7", + sha256 = "299d9c19d7d466db4ab10addd5703e4c615dec2a5a16dbbafe191045e87ee66e", + type = "tar.gz", + urls = ["https://static.crates.io/crates/serde-untagged/0.1.7/download"], + strip_prefix = "serde-untagged-0.1.7", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde-untagged-0.1.7.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__serde-value-0.7.0", + sha256 = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/serde-value/0.7.0/download"], + strip_prefix = "serde-value-0.7.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde-value-0.7.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__serde_derive-1.0.219", @@ -2731,32 +2940,32 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__serde_spanned-0.6.8", - sha256 = "87607cb1398ed59d48732e575a4c28a7a8ebf2454b964fe3f224f2afc07909e1", + name = "vendor_ts__serde_spanned-0.6.9", + sha256 = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3", type = "tar.gz", - urls = ["https://static.crates.io/crates/serde_spanned/0.6.8/download"], - strip_prefix = "serde_spanned-0.6.8", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_spanned-0.6.8.bazel"), + urls = ["https://static.crates.io/crates/serde_spanned/0.6.9/download"], + strip_prefix = "serde_spanned-0.6.9", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_spanned-0.6.9.bazel"), ) maybe( http_archive, - name = "vendor_ts__serde_with-3.12.0", - sha256 = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa", + name = "vendor_ts__serde_with-3.13.0", + sha256 = "bf65a400f8f66fb7b0552869ad70157166676db75ed8181f8104ea91cf9d0b42", type = "tar.gz", - urls = ["https://static.crates.io/crates/serde_with/3.12.0/download"], - strip_prefix = "serde_with-3.12.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_with-3.12.0.bazel"), + urls = ["https://static.crates.io/crates/serde_with/3.13.0/download"], + strip_prefix = "serde_with-3.13.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_with-3.13.0.bazel"), ) maybe( http_archive, - name = "vendor_ts__serde_with_macros-3.12.0", - sha256 = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e", + name = "vendor_ts__serde_with_macros-3.13.0", + sha256 = "81679d9ed988d5e9a5e6531dc3f2c28efbd639cbd1dfb628df08edea6004da77", type = "tar.gz", - urls = ["https://static.crates.io/crates/serde_with_macros/3.12.0/download"], - strip_prefix = "serde_with_macros-3.12.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_with_macros-3.12.0.bazel"), + urls = ["https://static.crates.io/crates/serde_with_macros/3.13.0/download"], + strip_prefix = "serde_with_macros-3.13.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.serde_with_macros-3.13.0.bazel"), ) maybe( @@ -2791,12 +3000,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__smallvec-1.14.0", - sha256 = "7fcf8323ef1faaee30a44a340193b1ac6814fd9b7b4e88e9d4519a3e4abe1cfd", + name = "vendor_ts__smallvec-1.15.1", + sha256 = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03", type = "tar.gz", - urls = ["https://static.crates.io/crates/smallvec/1.14.0/download"], - strip_prefix = "smallvec-1.14.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.smallvec-1.14.0.bazel"), + urls = ["https://static.crates.io/crates/smallvec/1.15.1/download"], + strip_prefix = "smallvec-1.15.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.smallvec-1.15.1.bazel"), ) maybe( @@ -2841,12 +3050,12 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__syn-2.0.100", - sha256 = "b09a44accad81e1ba1cd74a32461ba89dee89095ba17b32f5d03683b1b1fc2a0", + name = "vendor_ts__syn-2.0.103", + sha256 = "e4307e30089d6fd6aff212f2da3a1f9e32f3223b1f010fb09b7c95f90f3ca1e8", type = "tar.gz", - urls = ["https://static.crates.io/crates/syn/2.0.100/download"], - strip_prefix = "syn-2.0.100", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.syn-2.0.100.bazel"), + urls = ["https://static.crates.io/crates/syn/2.0.103/download"], + strip_prefix = "syn-2.0.103", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.syn-2.0.103.bazel"), ) maybe( @@ -2879,6 +3088,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thin-vec-0.2.14.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__thiserror-1.0.69", + sha256 = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52", + type = "tar.gz", + urls = ["https://static.crates.io/crates/thiserror/1.0.69/download"], + strip_prefix = "thiserror-1.0.69", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-1.0.69.bazel"), + ) + maybe( http_archive, name = "vendor_ts__thiserror-2.0.12", @@ -2889,6 +3108,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-2.0.12.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__thiserror-impl-1.0.69", + sha256 = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1", + type = "tar.gz", + urls = ["https://static.crates.io/crates/thiserror-impl/1.0.69/download"], + strip_prefix = "thiserror-impl-1.0.69", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.thiserror-impl-1.0.69.bazel"), + ) + maybe( http_archive, name = "vendor_ts__thiserror-impl-2.0.12", @@ -2941,32 +3170,52 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__toml-0.8.20", - sha256 = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148", + name = "vendor_ts__tinystr-0.8.1", + sha256 = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b", type = "tar.gz", - urls = ["https://static.crates.io/crates/toml/0.8.20/download"], - strip_prefix = "toml-0.8.20", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml-0.8.20.bazel"), + urls = ["https://static.crates.io/crates/tinystr/0.8.1/download"], + strip_prefix = "tinystr-0.8.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.tinystr-0.8.1.bazel"), ) maybe( http_archive, - name = "vendor_ts__toml_datetime-0.6.8", - sha256 = "0dd7358ecb8fc2f8d014bf86f6f638ce72ba252a2c3a2572f2a795f1d23efb41", + name = "vendor_ts__toml-0.8.23", + sha256 = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362", type = "tar.gz", - urls = ["https://static.crates.io/crates/toml_datetime/0.6.8/download"], - strip_prefix = "toml_datetime-0.6.8", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-0.6.8.bazel"), + urls = ["https://static.crates.io/crates/toml/0.8.23/download"], + strip_prefix = "toml-0.8.23", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml-0.8.23.bazel"), ) maybe( http_archive, - name = "vendor_ts__toml_edit-0.22.24", - sha256 = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474", + name = "vendor_ts__toml_datetime-0.6.11", + sha256 = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c", type = "tar.gz", - urls = ["https://static.crates.io/crates/toml_edit/0.22.24/download"], - strip_prefix = "toml_edit-0.22.24", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_edit-0.22.24.bazel"), + urls = ["https://static.crates.io/crates/toml_datetime/0.6.11/download"], + strip_prefix = "toml_datetime-0.6.11", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_datetime-0.6.11.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__toml_edit-0.22.27", + sha256 = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a", + type = "tar.gz", + urls = ["https://static.crates.io/crates/toml_edit/0.22.27/download"], + strip_prefix = "toml_edit-0.22.27", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_edit-0.22.27.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__toml_write-0.1.2", + sha256 = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801", + type = "tar.gz", + urls = ["https://static.crates.io/crates/toml_write/0.1.2/download"], + strip_prefix = "toml_write-0.1.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.toml_write-0.1.2.bazel"), ) maybe( @@ -3109,6 +3358,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.typed-arena-2.0.2.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__typeid-1.0.3", + sha256 = "bc7d623258602320d5c55d1bc22793b57daff0ec7efc270ea7d55ce1d5f5471c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/typeid/1.0.3/download"], + strip_prefix = "typeid-1.0.3", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.typeid-1.0.3.bazel"), + ) + maybe( http_archive, name = "vendor_ts__uncased-0.9.10", @@ -3169,6 +3428,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.unsafe-libyaml-0.2.11.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__url-2.5.4", + sha256 = "32f8b686cadd1473f4bd0117a5d28d36b1ade384ea9b5069a1c40aefed7fda60", + type = "tar.gz", + urls = ["https://static.crates.io/crates/url/2.5.4/download"], + strip_prefix = "url-2.5.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.url-2.5.4.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__utf8_iter-1.0.4", + sha256 = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be", + type = "tar.gz", + urls = ["https://static.crates.io/crates/utf8_iter/1.0.4/download"], + strip_prefix = "utf8_iter-1.0.4", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.utf8_iter-1.0.4.bazel"), + ) + maybe( http_archive, name = "vendor_ts__utf8parse-0.2.2", @@ -3319,16 +3598,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winapi-x86_64-pc-windows-gnu-0.4.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows-0.58.0", - sha256 = "dd04d41d93c4992d421894c18c8b43496aa748dd4c081bac0dc93eb0489272b6", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows/0.58.0/download"], - strip_prefix = "windows-0.58.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-0.58.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows-core-0.52.0", @@ -3339,36 +3608,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-core-0.52.0.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows-core-0.58.0", - sha256 = "6ba6d44ec8c2591c134257ce647b7ea6b20335bf6379a27dac5f1641fcf59f99", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-core/0.58.0/download"], - strip_prefix = "windows-core-0.58.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-core-0.58.0.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__windows-implement-0.58.0", - sha256 = "2bbd5b46c938e506ecbce286b6628a02171d56153ba733b6c741fc627ec9579b", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-implement/0.58.0/download"], - strip_prefix = "windows-implement-0.58.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-implement-0.58.0.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__windows-interface-0.58.0", - sha256 = "053c4c462dc91d3b1504c6fe5a726dd15e216ba718e84a0e46a88fbe5ded3515", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-interface/0.58.0/download"], - strip_prefix = "windows-interface-0.58.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-interface-0.58.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows-link-0.1.1", @@ -3379,26 +3618,6 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-link-0.1.1.bazel"), ) - maybe( - http_archive, - name = "vendor_ts__windows-result-0.2.0", - sha256 = "1d1043d8214f791817bab27572aaa8af63732e11bf84aa21a45a78d6c317ae0e", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-result/0.2.0/download"], - strip_prefix = "windows-result-0.2.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-result-0.2.0.bazel"), - ) - - maybe( - http_archive, - name = "vendor_ts__windows-strings-0.1.0", - sha256 = "4cd9b125c486025df0eabcb585e62173c6c9eddcec5d117d3b6e8c30e2ee4d10", - type = "tar.gz", - urls = ["https://static.crates.io/crates/windows-strings/0.1.0/download"], - strip_prefix = "windows-strings-0.1.0", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-strings-0.1.0.bazel"), - ) - maybe( http_archive, name = "vendor_ts__windows-sys-0.48.0", @@ -3429,6 +3648,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-sys-0.59.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows-sys-0.60.2", + sha256 = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows-sys/0.60.2/download"], + strip_prefix = "windows-sys-0.60.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-sys-0.60.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows-targets-0.48.5", @@ -3449,6 +3678,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-targets-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows-targets-0.53.2", + sha256 = "c66f69fcc9ce11da9966ddb31a40968cad001c5bedeb5c2b82ede4253ab48aef", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows-targets/0.53.2/download"], + strip_prefix = "windows-targets-0.53.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows-targets-0.53.2.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_aarch64_gnullvm-0.48.5", @@ -3469,6 +3708,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_gnullvm-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_aarch64_gnullvm-0.53.0", + sha256 = "86b8d5f90ddd19cb4a147a5fa63ca848db3df085e25fee3cc10b39b6eebae764", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_aarch64_gnullvm/0.53.0/download"], + strip_prefix = "windows_aarch64_gnullvm-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_gnullvm-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_aarch64_msvc-0.48.5", @@ -3489,6 +3738,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_msvc-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_aarch64_msvc-0.53.0", + sha256 = "c7651a1f62a11b8cbd5e0d42526e55f2c99886c77e007179efff86c2b137e66c", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_aarch64_msvc/0.53.0/download"], + strip_prefix = "windows_aarch64_msvc-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_aarch64_msvc-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_i686_gnu-0.48.5", @@ -3509,6 +3768,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnu-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_i686_gnu-0.53.0", + sha256 = "c1dc67659d35f387f5f6c479dc4e28f1d4bb90ddd1a5d3da2e5d97b42d6272c3", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_i686_gnu/0.53.0/download"], + strip_prefix = "windows_i686_gnu-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnu-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_i686_gnullvm-0.52.6", @@ -3519,6 +3788,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnullvm-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_i686_gnullvm-0.53.0", + sha256 = "9ce6ccbdedbf6d6354471319e781c0dfef054c81fbc7cf83f338a4296c0cae11", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_i686_gnullvm/0.53.0/download"], + strip_prefix = "windows_i686_gnullvm-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_gnullvm-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_i686_msvc-0.48.5", @@ -3539,6 +3818,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_msvc-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_i686_msvc-0.53.0", + sha256 = "581fee95406bb13382d2f65cd4a908ca7b1e4c2f1917f143ba16efe98a589b5d", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_i686_msvc/0.53.0/download"], + strip_prefix = "windows_i686_msvc-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_i686_msvc-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_x86_64_gnu-0.48.5", @@ -3559,6 +3848,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnu-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_x86_64_gnu-0.53.0", + sha256 = "2e55b5ac9ea33f2fc1716d1742db15574fd6fc8dadc51caab1c16a3d3b4190ba", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_x86_64_gnu/0.53.0/download"], + strip_prefix = "windows_x86_64_gnu-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnu-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_x86_64_gnullvm-0.48.5", @@ -3579,6 +3878,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnullvm-0.52.6.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__windows_x86_64_gnullvm-0.53.0", + sha256 = "0a6e035dd0599267ce1ee132e51c27dd29437f63325753051e71dd9e42406c57", + type = "tar.gz", + urls = ["https://static.crates.io/crates/windows_x86_64_gnullvm/0.53.0/download"], + strip_prefix = "windows_x86_64_gnullvm-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_gnullvm-0.53.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__windows_x86_64_msvc-0.48.5", @@ -3601,12 +3910,22 @@ def crate_repositories(): maybe( http_archive, - name = "vendor_ts__winnow-0.7.3", - sha256 = "0e7f4ea97f6f78012141bcdb6a216b2609f0979ada50b20ca5b52dde2eac2bb1", + name = "vendor_ts__windows_x86_64_msvc-0.53.0", + sha256 = "271414315aff87387382ec3d271b52d7ae78726f5d44ac98b4f4030c91880486", type = "tar.gz", - urls = ["https://static.crates.io/crates/winnow/0.7.3/download"], - strip_prefix = "winnow-0.7.3", - build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-0.7.3.bazel"), + urls = ["https://static.crates.io/crates/windows_x86_64_msvc/0.53.0/download"], + strip_prefix = "windows_x86_64_msvc-0.53.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.windows_x86_64_msvc-0.53.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__winnow-0.7.11", + sha256 = "74c7b26e3480b707944fc872477815d29a8e429d2f93a1ce000f5fa84a15cbcd", + type = "tar.gz", + urls = ["https://static.crates.io/crates/winnow/0.7.11/download"], + strip_prefix = "winnow-0.7.11", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.winnow-0.7.11.bazel"), ) maybe( @@ -3619,6 +3938,16 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.wit-bindgen-rt-0.33.0.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__writeable-0.6.1", + sha256 = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb", + type = "tar.gz", + urls = ["https://static.crates.io/crates/writeable/0.6.1/download"], + strip_prefix = "writeable-0.6.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.writeable-0.6.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__yansi-1.0.1", @@ -3629,6 +3958,26 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.yansi-1.0.1.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__yoke-0.8.0", + sha256 = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc", + type = "tar.gz", + urls = ["https://static.crates.io/crates/yoke/0.8.0/download"], + strip_prefix = "yoke-0.8.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.yoke-0.8.0.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__yoke-derive-0.8.0", + sha256 = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6", + type = "tar.gz", + urls = ["https://static.crates.io/crates/yoke-derive/0.8.0/download"], + strip_prefix = "yoke-derive-0.8.0", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.yoke-derive-0.8.0.bazel"), + ) + maybe( http_archive, name = "vendor_ts__zerocopy-0.7.35", @@ -3669,6 +4018,56 @@ def crate_repositories(): build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerocopy-derive-0.8.20.bazel"), ) + maybe( + http_archive, + name = "vendor_ts__zerofrom-0.1.6", + sha256 = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zerofrom/0.1.6/download"], + strip_prefix = "zerofrom-0.1.6", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerofrom-0.1.6.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zerofrom-derive-0.1.6", + sha256 = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zerofrom-derive/0.1.6/download"], + strip_prefix = "zerofrom-derive-0.1.6", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerofrom-derive-0.1.6.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zerotrie-0.2.2", + sha256 = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zerotrie/0.2.2/download"], + strip_prefix = "zerotrie-0.2.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerotrie-0.2.2.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zerovec-0.11.2", + sha256 = "4a05eb080e015ba39cc9e23bbe5e7fb04d5fb040350f99f34e338d5fdd294428", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zerovec/0.11.2/download"], + strip_prefix = "zerovec-0.11.2", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerovec-0.11.2.bazel"), + ) + + maybe( + http_archive, + name = "vendor_ts__zerovec-derive-0.11.1", + sha256 = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f", + type = "tar.gz", + urls = ["https://static.crates.io/crates/zerovec-derive/0.11.1/download"], + strip_prefix = "zerovec-derive-0.11.1", + build_file = Label("//misc/bazel/3rdparty/tree_sitter_extractors_deps:BUILD.zerovec-derive-0.11.1.bazel"), + ) + maybe( http_archive, name = "vendor_ts__zstd-0.13.3", @@ -3700,11 +4099,11 @@ def crate_repositories(): ) return [ - struct(repo = "vendor_ts__anyhow-1.0.97", is_dev_dep = False), + struct(repo = "vendor_ts__anyhow-1.0.98", is_dev_dep = False), struct(repo = "vendor_ts__argfile-0.2.1", is_dev_dep = False), - struct(repo = "vendor_ts__chalk-ir-0.100.0", is_dev_dep = False), - struct(repo = "vendor_ts__chrono-0.4.40", is_dev_dep = False), - struct(repo = "vendor_ts__clap-4.5.35", is_dev_dep = False), + struct(repo = "vendor_ts__chalk-ir-0.103.0", is_dev_dep = False), + struct(repo = "vendor_ts__chrono-0.4.41", is_dev_dep = False), + struct(repo = "vendor_ts__clap-4.5.40", is_dev_dep = False), struct(repo = "vendor_ts__dunce-1.0.5", is_dev_dep = False), struct(repo = "vendor_ts__either-1.15.0", is_dev_dep = False), struct(repo = "vendor_ts__encoding-0.2.33", is_dev_dep = False), @@ -3716,32 +4115,32 @@ def crate_repositories(): struct(repo = "vendor_ts__lazy_static-1.5.0", is_dev_dep = False), struct(repo = "vendor_ts__mustache-0.9.0", is_dev_dep = False), struct(repo = "vendor_ts__num-traits-0.2.19", is_dev_dep = False), - struct(repo = "vendor_ts__num_cpus-1.16.0", is_dev_dep = False), - struct(repo = "vendor_ts__proc-macro2-1.0.94", is_dev_dep = False), + struct(repo = "vendor_ts__num_cpus-1.17.0", is_dev_dep = False), + struct(repo = "vendor_ts__proc-macro2-1.0.95", is_dev_dep = False), struct(repo = "vendor_ts__quote-1.0.40", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_base_db-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_cfg-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_def-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_expand-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_hir_ty-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_ide_db-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_intern-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_load-cargo-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_parser-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_paths-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_project_model-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_span-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_stdx-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_syntax-0.0.273", is_dev_dep = False), - struct(repo = "vendor_ts__ra_ap_vfs-0.0.273", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_base_db-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_cfg-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_def-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_expand-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_hir_ty-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_ide_db-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_intern-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_load-cargo-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_parser-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_paths-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_project_model-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_span-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_stdx-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_syntax-0.0.288", is_dev_dep = False), + struct(repo = "vendor_ts__ra_ap_vfs-0.0.288", is_dev_dep = False), struct(repo = "vendor_ts__rayon-1.10.0", is_dev_dep = False), struct(repo = "vendor_ts__regex-1.11.1", is_dev_dep = False), struct(repo = "vendor_ts__serde-1.0.219", is_dev_dep = False), struct(repo = "vendor_ts__serde_json-1.0.140", is_dev_dep = False), - struct(repo = "vendor_ts__serde_with-3.12.0", is_dev_dep = False), - struct(repo = "vendor_ts__syn-2.0.100", is_dev_dep = False), - struct(repo = "vendor_ts__toml-0.8.20", is_dev_dep = False), + struct(repo = "vendor_ts__serde_with-3.13.0", is_dev_dep = False), + struct(repo = "vendor_ts__syn-2.0.103", is_dev_dep = False), + struct(repo = "vendor_ts__toml-0.8.23", is_dev_dep = False), struct(repo = "vendor_ts__tracing-0.1.41", is_dev_dep = False), struct(repo = "vendor_ts__tracing-flame-0.2.0", is_dev_dep = False), struct(repo = "vendor_ts__tracing-subscriber-0.3.19", is_dev_dep = False), @@ -3751,7 +4150,7 @@ def crate_repositories(): struct(repo = "vendor_ts__triomphe-0.1.14", is_dev_dep = False), struct(repo = "vendor_ts__ungrammar-1.16.1", is_dev_dep = False), struct(repo = "vendor_ts__zstd-0.13.3", is_dev_dep = False), - struct(repo = "vendor_ts__rand-0.9.0", is_dev_dep = True), + struct(repo = "vendor_ts__rand-0.9.1", is_dev_dep = True), struct(repo = "vendor_ts__tree-sitter-json-0.24.8", is_dev_dep = True), struct(repo = "vendor_ts__tree-sitter-ql-0.23.1", is_dev_dep = True), ] From 12aa93b578bfa06448d4547a7701f8e48308fbac Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:42:05 +0200 Subject: [PATCH 186/340] Rust: suppress `TypeAnchor` in the generator --- rust/ast-generator/src/main.rs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 70741c83382..727f3f31534 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -295,7 +295,7 @@ fn get_fields(node: &AstNodeSrc) -> Vec { let name = field.method_name(); match (node.name.as_str(), name.as_str()) { ("ArrayExpr", "expr") // The ArrayExpr type also has an 'exprs' field - | ("PathSegment", "ty" | "path_type") // these are broken, handling them manually + | ("PathSegment", "type_anchor") // we flatten TypeAnchor into PathSegment in the extractor | ("Param", "pat") | ("MacroCall", "token_tree") // handled manually to use `body` => continue, _ => {} @@ -487,6 +487,9 @@ fn main() -> anyhow::Result<()> { grammar.enums.retain(|x| x.name != "Adt"); + // we flatten TypeAnchor into PathSegment in the extractor + grammar.nodes.retain(|x| x.name != "TypeAnchor"); + let mut super_types: BTreeMap> = BTreeMap::new(); for node in &grammar.enums { for variant in &node.variants { From efd318dc01749711b13055147ec4d7cdb23338ae Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:45:08 +0200 Subject: [PATCH 187/340] Rust: rerun codegen --- rust/extractor/src/generated/.generated.list | 2 +- rust/extractor/src/generated/top.rs | 8 +++++ rust/extractor/src/translate/generated.rs | 6 ++++ rust/ql/.generated.list | 12 ++++--- rust/ql/.gitattributes | 2 ++ rust/ql/lib/codeql/rust/elements/Const.qll | 2 ++ .../elements/internal/generated/Const.qll | 32 +++++++++++++++++++ .../internal/generated/ParentChild.qll | 18 ++++++++--- .../rust/elements/internal/generated/Raw.qll | 10 ++++++ rust/ql/lib/rust.dbscheme | 12 +++++++ .../extractor-tests/generated/Const/Const.ql | 14 ++++---- .../Const/Const_getGenericParamList.ql | 7 ++++ .../generated/Const/Const_getWhereClause.ql | 7 ++++ rust/schema/ast.py | 2 ++ 14 files changed, 118 insertions(+), 16 deletions(-) create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql diff --git a/rust/extractor/src/generated/.generated.list b/rust/extractor/src/generated/.generated.list index 121c5b5a7aa..9a49da125cf 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 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de 69c1fcaf0efea87feb898f32fdb7bcb842a22119b69ecedd61c2d946eb7e67de +top.rs 5f63b6fe293fe0b939eed4c38daf938ac312632555acbe3591887140d94477e6 5f63b6fe293fe0b939eed4c38daf938ac312632555acbe3591887140d94477e6 diff --git a/rust/extractor/src/generated/top.rs b/rust/extractor/src/generated/top.rs index fd9b0ca6b91..58d02787a80 100644 --- a/rust/extractor/src/generated/top.rs +++ b/rust/extractor/src/generated/top.rs @@ -9046,11 +9046,13 @@ pub struct Const { pub id: trap::TrapId, pub attrs: Vec>, pub body: Option>, + pub generic_param_list: Option>, pub is_const: bool, pub is_default: bool, pub name: Option>, pub type_repr: Option>, pub visibility: Option>, + pub where_clause: Option>, } impl trap::TrapEntry for Const { @@ -9066,6 +9068,9 @@ impl trap::TrapEntry for Const { if let Some(v) = self.body { out.add_tuple("const_bodies", vec![id.into(), v.into()]); } + if let Some(v) = self.generic_param_list { + out.add_tuple("const_generic_param_lists", vec![id.into(), v.into()]); + } if self.is_const { out.add_tuple("const_is_const", vec![id.into()]); } @@ -9081,6 +9086,9 @@ impl trap::TrapEntry for Const { if let Some(v) = self.visibility { out.add_tuple("const_visibilities", vec![id.into(), v.into()]); } + if let Some(v) = self.where_clause { + out.add_tuple("const_where_clauses", vec![id.into(), v.into()]); + } } } diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index be8f23f9cfb..39efe763a3b 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -828,20 +828,26 @@ impl Translator<'_> { } else { node.body().and_then(|x| self.emit_expr(&x)) }; + let generic_param_list = node + .generic_param_list() + .and_then(|x| self.emit_generic_param_list(&x)); let is_const = node.const_token().is_some(); let is_default = node.default_token().is_some(); let name = node.name().and_then(|x| self.emit_name(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let visibility = node.visibility().and_then(|x| self.emit_visibility(&x)); + let where_clause = node.where_clause().and_then(|x| self.emit_where_clause(&x)); let label = self.trap.emit(generated::Const { id: TrapId::Star, attrs, body, + generic_param_list, is_const, is_default, name, type_repr, visibility, + where_clause, }); self.emit_location(label, node); post_emit!(Const, self, node, label); diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 7c60da3abb7..7e2e2dbd5c3 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -38,7 +38,7 @@ lib/codeql/rust/elements/CastExpr.qll 2fe1f36ba31fa29de309baf0a665cfcae67b61c733 lib/codeql/rust/elements/ClosureBinder.qll 02c8e83bf07deaf7bf0233b76623ec7f1837be8b77fe7e1c23544edc7d85e3c4 2b114d9a6dede694324aebe3dac80a802d139cfacd39beb0f12b5b0a46ee6390 lib/codeql/rust/elements/ClosureExpr.qll 67e2a106e9154c90367b129987e574d2a9ecf5b297536627e43706675d35eaed d6a381132ddd589c5a7ce174f50f9620041ddf690e15a65ebfb05ff7e7c02de7 lib/codeql/rust/elements/Comment.qll fedad50575125e9a64a8a8776a8c1dbf1e76df990f01849d9f0955f9d74cb2a6 8eb1afad1e1007a4f0090fdac65d81726b23eda6517d067fd0185f70f17635ab -lib/codeql/rust/elements/Const.qll 8b9c66b59d9469a78b2c696b6e37d915a25f9dd215c0b79b113dc7d34adca9e3 7b8213bf21403a1f8b78ea6a20b716f312b26fee5526111602482a2e985e8ac5 +lib/codeql/rust/elements/Const.qll fd2959d036f47fabcbde9a21c3e173b105168f4944c3cea7c3e8ba4c1f5d6052 c3bde2a8ce4425bd2e20a8a9f96ecf049747935b99a10d35b29ba942e8e44e63 lib/codeql/rust/elements/ConstArg.qll 01865b3be4790c627a062c59ea608462931abcb2f94a132cf265318664fd1251 a2c6bbf63dbfa999e511b6941143a51c9392477d8ccd25e081f85475936ff558 lib/codeql/rust/elements/ConstBlockPat.qll a25f42b84dbeb33e10955735ef53b8bb7e3258522d6d1a9068f19adaf1af89d9 eeb816d2b54db77a1e7bb70e90b68d040a0cd44e9d44455a223311c3615c5e6e lib/codeql/rust/elements/ConstParam.qll 87776586f7ff562ff3c71373f45cf70486f9a832613a0aaac943311c451cc057 67a31616688106d5130951f2162e5229bff0fde08ff647943663cac427d7048b @@ -497,7 +497,7 @@ lib/codeql/rust/elements/internal/generated/CastExpr.qll ddc20054b0b339ad4d40298 lib/codeql/rust/elements/internal/generated/ClosureBinder.qll ab199df96f525a083a0762fd654cd098802033c79700a593bb204a9a0c69ec01 86b33543e0886715830cfcdaca43b555a242a4f12a4caa18b88732d5afb584bd lib/codeql/rust/elements/internal/generated/ClosureExpr.qll 34149bf82f107591e65738221e1407ec1dc9cc0dfb10ae7f761116fda45162de fd2fbc9a87fc0773c940db64013cf784d5e4137515cc1020e2076da329f5a952 lib/codeql/rust/elements/internal/generated/Comment.qll cd1ef861e3803618f9f78a4ac00516d50ecfecdca1c1d14304dc5327cbe07a3b 8b67345aeb15beb5895212228761ea3496297846c93fd2127b417406ae87c201 -lib/codeql/rust/elements/internal/generated/Const.qll 6300d7150d03f6bc2f0b29bb7d4a7bc1381c377644b0c61860733be685bac646 f5299a799a33fa28ca5b6d198f43a80696556144236df39124784211a1ad8285 +lib/codeql/rust/elements/internal/generated/Const.qll e923b540d1dc26cc59766ecd938b8e18f3c73097a73eeaeed3513c8fca7ac3a8 2261a0c46f4252124c40600e7fb2e5743f0e66d58cedc5768fe57393191a9504 lib/codeql/rust/elements/internal/generated/ConstArg.qll c52bf746f2dc89b8d71b8419736707bfcbb09cca424c3ba76e888e2add415bf6 89309a9df4fde23cfd3d8492908ccec4d90cc8457d35c507ef81371a369941b4 lib/codeql/rust/elements/internal/generated/ConstBlockPat.qll 7526d83ee9565d74776f42db58b1a2efff6fb324cfc7137f51f2206fee815d79 0ab3c22908ff790e7092e576a5df3837db33c32a7922a513a0f5e495729c1ac5 lib/codeql/rust/elements/internal/generated/ConstParam.qll 2e24198f636e4932c79f28c324f395ae5f61f713795ed4543e920913898e2815 5abe6d3df395c679c28a7720479bad455c53bc5ade9133f1ff113ea54dc66c11 @@ -577,7 +577,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 5278b74de04d54708f078fd813d83ae5f934fa12d420b188c1334e3a7c3b8324 61cf70eb649f241e2fcd5e0ba34df63f3a14f07032811b9ae151721783a0fd20 +lib/codeql/rust/elements/internal/generated/ParentChild.qll 5ebb01358afcbee39cfed2a01a31b1f6d427f70e59e296a458dbe57460bf40b7 fa9ed16272ace82d08ddb8aac7ea3305a868b0f63cf60df6f2125a7dc9f4f870 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 @@ -592,7 +592,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 b6e439cc24f8c02fe73301cd2bc16d59dfd28e2a8a201388d8318c43937309e2 62139c3df2f6c4dca1c897b1384233ff0151b7e5fb1c41a178c5e8e41b5e7f05 +lib/codeql/rust/elements/internal/generated/Raw.qll 92c1f49f719ebee9fddb5cd5dded28f768127ffc1e8bb487ece8887bc6608ae6 4c1ad14de73a9998416f121304ef5b58c8e917a980b3f2d795e1d6475f470b0c 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 @@ -748,15 +748,17 @@ test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql c87b61e80dd62 test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 -test/extractor-tests/generated/Const/Const.ql 7f9c9ce5b04391ff8f0d419a62972292b1d9811a978cceb129ef5a0f68a02fab c6c1dfa688248310cadd2d6d71d1a70a2b48f5b29ea2078f4dd51db59a0021c0 +test/extractor-tests/generated/Const/Const.ql 8cae77fe63a0a64b2ff2f5e642711aa79ad29fb8705d877e195852ed148af67d 6178c888516d9d24aca14a8fdf1e94043e2a7f85332700c13f368b1e22f2bccb test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577 test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql 82e86399d5cd72621dc8d9cd9f310d3dc7f2ecf208149dab0d202047ccbbd2f8 33df8c5b5044f49ec244e183c61c3b81fabd987f590ba6da4e18e08231343dc8 test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026 test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57 test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c +test/extractor-tests/generated/Const/Const_getGenericParamList.ql 8bef3c83401a0a203d1e19a4dc652d2285870760cc2032a1b5745fae9fc3f29b 95b2f730daf19eb87b17a3f602ea3a71a1056c8f2a2328d7b46189cc82b29e4c test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c test/extractor-tests/generated/Const/Const_getTypeRepr.ql 87c5deaa31014c40a035deaf149d76b3aca15c4560c93dd6f4b1ee5f76714baa f3e6b31e4877849792778d4535bd0389f3afd482a6a02f9ceb7e792e46fca83e test/extractor-tests/generated/Const/Const_getVisibility.ql de6b2e9d887316e279b45fab7887980ca7d93fd32c2259f3a06de2b6e2957c12 2f135cdbbb84b43d282131edb7eb4df6caba61bf7421881a49d4679f0f44f661 +test/extractor-tests/generated/Const/Const_getWhereClause.ql 9458b25fd2567c92d1230afb844d81f1f9a9a7b4d164cbdf8b86455ef0d02251 8792f1a5cccaf77f6b1673dd5acd067acfb79f9a8a34a0769e0eb69ab89c9f16 test/extractor-tests/generated/ConstArg/ConstArg.ql f1422b216eb45819ff41f0c19e0f88aa184ddd3fa2984ba22ec46df398147fc3 d2e4f367848c2bc4f6aef51c1dd8180035c39919430082c83f18a3f324228df3 test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql 317fd83ad51acc3ff3dfab71ebb1385b67d49404c1d7b3804a8ca3c099b84e99 91ecf5ebbfc1aab286dce708680f0be97417f9755676db7479fa6836e50be845 test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql ee17b4deba9c503130e3ce565102bc8e181770efcb1309be9c822f0a7ba6fc17 638ed17b5c009e71b31f580c4060ba763bd4208c3984b6c032183ab46a4dd43d diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 65c3aae0e9e..e2c5da80814 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -756,9 +756,11 @@ /test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated /test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated /test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated +/test/extractor-tests/generated/Const/Const_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/Const/Const_getName.ql linguist-generated /test/extractor-tests/generated/Const/Const_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/Const/Const_getVisibility.ql linguist-generated +/test/extractor-tests/generated/Const/Const_getWhereClause.ql linguist-generated /test/extractor-tests/generated/ConstArg/ConstArg.ql linguist-generated /test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql linguist-generated /test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql linguist-generated diff --git a/rust/ql/lib/codeql/rust/elements/Const.qll b/rust/ql/lib/codeql/rust/elements/Const.qll index b4c65207608..cf02e36a43a 100644 --- a/rust/ql/lib/codeql/rust/elements/Const.qll +++ b/rust/ql/lib/codeql/rust/elements/Const.qll @@ -7,10 +7,12 @@ private import internal.ConstImpl import codeql.rust.elements.AssocItem import codeql.rust.elements.Attr import codeql.rust.elements.Expr +import codeql.rust.elements.GenericParamList import codeql.rust.elements.Item import codeql.rust.elements.Name import codeql.rust.elements.TypeRepr import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause /** * A constant item declaration. diff --git a/rust/ql/lib/codeql/rust/elements/internal/generated/Const.qll b/rust/ql/lib/codeql/rust/elements/internal/generated/Const.qll index 29bda01a6fe..5478491492d 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Const.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Const.qll @@ -9,10 +9,12 @@ private import codeql.rust.elements.internal.generated.Raw import codeql.rust.elements.internal.AssocItemImpl::Impl as AssocItemImpl import codeql.rust.elements.Attr import codeql.rust.elements.Expr +import codeql.rust.elements.GenericParamList import codeql.rust.elements.internal.ItemImpl::Impl as ItemImpl import codeql.rust.elements.Name import codeql.rust.elements.TypeRepr import codeql.rust.elements.Visibility +import codeql.rust.elements.WhereClause /** * INTERNAL: This module contains the fully generated definition of `Const` and should not @@ -61,6 +63,21 @@ module Generated { */ final predicate hasBody() { exists(this.getBody()) } + /** + * Gets the generic parameter list of this const, if it exists. + */ + GenericParamList getGenericParamList() { + result = + Synth::convertGenericParamListFromRaw(Synth::convertConstToRaw(this) + .(Raw::Const) + .getGenericParamList()) + } + + /** + * Holds if `getGenericParamList()` exists. + */ + final predicate hasGenericParamList() { exists(this.getGenericParamList()) } + /** * Holds if this const is const. */ @@ -109,6 +126,21 @@ module Generated { */ final predicate hasVisibility() { exists(this.getVisibility()) } + /** + * Gets the where clause of this const, if it exists. + */ + WhereClause getWhereClause() { + result = + Synth::convertWhereClauseFromRaw(Synth::convertConstToRaw(this) + .(Raw::Const) + .getWhereClause()) + } + + /** + * Holds if `getWhereClause()` exists. + */ + final predicate hasWhereClause() { exists(this.getWhereClause()) } + /** * Holds if this constant has an implementation. * 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 5c8e5f86820..3af02bc3897 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/ParentChild.qll @@ -3242,8 +3242,8 @@ private module Impl { private Element getImmediateChildOfConst(Const e, int index, string partialPredicateCall) { exists( - int b, int bAssocItem, int bItem, int n, int nAttr, int nBody, int nName, int nTypeRepr, - int nVisibility + int b, int bAssocItem, int bItem, int n, int nAttr, int nBody, int nGenericParamList, + int nName, int nTypeRepr, int nVisibility, int nWhereClause | b = 0 and bAssocItem = b + 1 + max(int i | i = -1 or exists(getImmediateChildOfAssocItem(e, i, _)) | i) and @@ -3251,9 +3251,11 @@ private module Impl { n = bItem and nAttr = n + 1 + max(int i | i = -1 or exists(e.getAttr(i)) | i) and nBody = nAttr + 1 and - nName = nBody + 1 and + nGenericParamList = nBody + 1 and + nName = nGenericParamList + 1 and nTypeRepr = nName + 1 and nVisibility = nTypeRepr + 1 and + nWhereClause = nVisibility + 1 and ( none() or @@ -3266,11 +3268,19 @@ private module Impl { or index = nAttr and result = e.getBody() and partialPredicateCall = "Body()" or - index = nBody and result = e.getName() and partialPredicateCall = "Name()" + index = nBody and + result = e.getGenericParamList() and + partialPredicateCall = "GenericParamList()" + or + index = nGenericParamList and result = e.getName() and partialPredicateCall = "Name()" or index = nName and result = e.getTypeRepr() and partialPredicateCall = "TypeRepr()" or index = nTypeRepr and result = e.getVisibility() and partialPredicateCall = "Visibility()" + or + index = nVisibility and + result = e.getWhereClause() and + partialPredicateCall = "WhereClause()" ) ) } 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 503691bb83b..e456f241943 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/generated/Raw.qll @@ -3710,6 +3710,11 @@ module Raw { */ Expr getBody() { const_bodies(this, result) } + /** + * Gets the generic parameter list of this const, if it exists. + */ + GenericParamList getGenericParamList() { const_generic_param_lists(this, result) } + /** * Holds if this const is const. */ @@ -3735,6 +3740,11 @@ module Raw { */ Visibility getVisibility() { const_visibilities(this, result) } + /** + * Gets the where clause of this const, if it exists. + */ + WhereClause getWhereClause() { const_where_clauses(this, result) } + /** * Holds if this constant has an implementation. * diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index aa9a0bda17c..1135c62403d 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -2788,6 +2788,12 @@ const_bodies( 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 @@ -2816,6 +2822,12 @@ const_visibilities( 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 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.ql b/rust/ql/test/extractor-tests/generated/Const/Const.ql index 0bd52702c24..348f7bec1a6 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const.ql @@ -4,9 +4,9 @@ import TestUtils from Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, string isConst, - string isDefault, string hasName, string hasTypeRepr, string hasVisibility, - string hasImplementation + string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, + string hasGenericParamList, string isConst, string isDefault, string hasName, string hasTypeRepr, + string hasVisibility, string hasWhereClause, string hasImplementation where toBeTested(x) and not x.isUnknown() and @@ -23,14 +23,16 @@ where ) and getNumberOfAttrs = x.getNumberOfAttrs() and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and (if x.isConst() then isConst = "yes" else isConst = "no") and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and (if x.hasName() then hasName = "yes" else hasName = "no") and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + (if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no" select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasBody:", hasBody, "isConst:", isConst, "isDefault:", isDefault, "hasName:", hasName, - "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility, "hasImplementation:", - hasImplementation + "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isConst:", isConst, + "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", + hasVisibility, "hasWhereClause:", hasWhereClause, "hasImplementation:", hasImplementation diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql new file mode 100644 index 00000000000..6c62c3eac40 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Const x +where toBeTested(x) and not x.isUnknown() +select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql new file mode 100644 index 00000000000..a6667b9b8d2 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql @@ -0,0 +1,7 @@ +// generated by codegen, do not edit +import codeql.rust.elements +import TestUtils + +from Const x +where toBeTested(x) and not x.isUnknown() +select x, x.getWhereClause() diff --git a/rust/schema/ast.py b/rust/schema/ast.py index 17fb872bb8e..18b1748b5b4 100644 --- a/rust/schema/ast.py +++ b/rust/schema/ast.py @@ -180,11 +180,13 @@ class ClosureExpr(Expr, ): class Const(AssocItem, Item, ): attrs: list["Attr"] | child body: optional["Expr"] | child + generic_param_list: optional["GenericParamList"] | child is_const: predicate is_default: predicate name: optional["Name"] | child type_repr: optional["TypeRepr"] | child visibility: optional["Visibility"] | child + where_clause: optional["WhereClause"] | child class ConstArg(GenericArg, ): expr: optional["Expr"] | child From 02a9d4c86d59f4b2cdb1559d71fec8807d160d8f Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:52:36 +0200 Subject: [PATCH 188/340] Rust: fix compilation errors --- Cargo.lock | 1 - rust/extractor/src/config.rs | 2 +- rust/extractor/src/config/deserialize.rs | 33 +++++++++++--------- rust/extractor/src/rust_analyzer.rs | 6 +--- rust/extractor/src/translate/base.rs | 39 +++++++++++++----------- 5 files changed, 42 insertions(+), 39 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ddc8353de73..c9d363f5118 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3449,4 +3449,3 @@ dependencies = [ name = "rustc_apfloat" version = "0.2.2+llvm-462a31f5a5ab" source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" - diff --git a/rust/extractor/src/config.rs b/rust/extractor/src/config.rs index 8108dec032f..303089b1574 100644 --- a/rust/extractor/src/config.rs +++ b/rust/extractor/src/config.rs @@ -52,7 +52,7 @@ pub struct Config { pub cargo_target: Option, pub cargo_features: Vec, pub cargo_cfg_overrides: Vec, - pub cargo_extra_env: FxHashMap, + pub cargo_extra_env: FxHashMap>, pub cargo_extra_args: Vec, pub cargo_all_targets: bool, pub logging_flamegraph: Option, diff --git a/rust/extractor/src/config/deserialize.rs b/rust/extractor/src/config/deserialize.rs index 4f3d9689790..6e1b9b398b6 100644 --- a/rust/extractor/src/config/deserialize.rs +++ b/rust/extractor/src/config/deserialize.rs @@ -1,5 +1,5 @@ use serde::Deserializer; -use serde::de::{Error, Unexpected, Visitor}; +use serde::de::Visitor; use std::collections::HashMap; use std::fmt::Formatter; use std::hash::BuildHasher; @@ -36,23 +36,22 @@ impl<'de, T: From> Visitor<'de> for VectorVisitor { } impl<'de, S: BuildHasher + Default> Visitor<'de> for MapVisitor { - type Value = HashMap; + type Value = HashMap, S>; fn expecting(&self, formatter: &mut Formatter) -> std::fmt::Result { formatter.write_str( - "either a sequence, or a comma or newline separated string of key=value entries", + "either a sequence, or a comma or newline separated string of key[=value] entries", ) } fn visit_str(self, value: &str) -> Result { - value + Ok(value .split(['\n', ',']) - .map(|s| { - s.split_once('=') - .ok_or_else(|| E::custom(format!("key=value expected, found {s}"))) - .map(|(key, value)| (key.to_owned(), value.to_owned())) + .map(|s| match s.split_once('=') { + Some((key, value)) => (key.to_owned(), Some(value.to_owned())), + None => (s.to_owned(), None), }) - .collect() + .collect()) } fn visit_seq(self, mut seq: A) -> Result @@ -61,10 +60,14 @@ impl<'de, S: BuildHasher + Default> Visitor<'de> for MapVisitor { { let mut ret = HashMap::with_hasher(Default::default()); while let Some(el) = seq.next_element::()? { - let (key, value) = el - .split_once('=') - .ok_or_else(|| A::Error::invalid_value(Unexpected::Str(&el), &self))?; - ret.insert(key.to_owned(), value.to_owned()); + match el.split_once('=') { + None => { + ret.insert(el.to_owned(), None); + } + Some((key, value)) => { + ret.insert(key.to_owned(), Some(value.to_owned())); + } + } } Ok(ret) } @@ -83,7 +86,7 @@ pub(crate) fn deserialize_newline_or_comma_separated_vec< deserializer.deserialize_seq(VectorVisitor(PhantomData)) } -/// deserialize into a map of `String`s to `String`s either of: +/// deserialize into a map of `String`s to `Option`s either of: /// * a sequence of elements serializable into `String`s, or /// * a single element serializable into `String`, then split on `,` and `\n` pub(crate) fn deserialize_newline_or_comma_separated_map< @@ -92,6 +95,6 @@ pub(crate) fn deserialize_newline_or_comma_separated_map< S: BuildHasher + Default, >( deserializer: D, -) -> Result, D::Error> { +) -> Result, S>, D::Error> { deserializer.deserialize_map(MapVisitor(PhantomData)) } diff --git a/rust/extractor/src/rust_analyzer.rs b/rust/extractor/src/rust_analyzer.rs index ef4c638efbe..bed6e66c9b7 100644 --- a/rust/extractor/src/rust_analyzer.rs +++ b/rust/extractor/src/rust_analyzer.rs @@ -77,11 +77,7 @@ impl<'a> RustAnalyzer<'a> { let editioned_file_id = semantics .attach_first_edition(file_id) .ok_or("failed to determine rust edition")?; - Ok(( - semantics, - EditionedFileId::new(semantics.db, editioned_file_id), - input, - )) + Ok((semantics, editioned_file_id, input)) } } } diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 9e9123c4570..0dd7a753d12 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -174,7 +174,7 @@ impl<'a> Translator<'a> { if let Some(semantics) = self.semantics.as_ref() { let file_range = semantics.original_range(node.syntax()); let file_id = self.file_id?; - if file_id.file_id(semantics.db) == file_range.file_id { + if file_id == file_range.file_id { Some(file_range.range) } else { None @@ -298,20 +298,18 @@ impl<'a> Translator<'a> { if let Some(value) = semantics .hir_file_for(expanded) .macro_file() - .and_then(|macro_file| { - semantics - .db - .parse_macro_expansion_error(macro_file.macro_call_id) - }) + .and_then(|macro_call_id| semantics.db.parse_macro_expansion_error(macro_call_id)) { if let Some(err) = &value.err { let error = err.render_to_string(semantics.db); - - if err.span().anchor.file_id == semantics.hir_file_for(node.syntax()) { + let hir_file_id = semantics.hir_file_for(node.syntax()); + if Some(err.span().anchor.file_id.file_id()) + == hir_file_id.file_id().map(|f| f.file_id(semantics.db)) + { let location = err.span().range + semantics .db - .ast_id_map(err.span().anchor.file_id.into()) + .ast_id_map(hir_file_id) .get_erased(err.span().anchor.ast_id) .text_range() .start(); @@ -363,10 +361,10 @@ impl<'a> Translator<'a> { .as_ref() .and_then(|s| s.expand_macro_call(mcall)) { - self.emit_macro_expansion_parse_errors(mcall, &expanded); + self.emit_macro_expansion_parse_errors(mcall, &expanded.value); let expand_to = ra_ap_hir_expand::ExpandTo::from_call_site(mcall); let kind = expanded.kind(); - if let Some(value) = self.emit_expanded_as(expand_to, expanded) { + if let Some(value) = self.emit_expanded_as(expand_to, expanded.value) { generated::MacroCall::emit_macro_call_expansion( label, value, @@ -669,11 +667,11 @@ impl<'a> Translator<'a> { ) { // work around a bug in rust-analyzer AST generation machinery // this code was inspired by rust-analyzer's own workaround for this: - // https://github.com/rust-lang/rust-analyzer/blob/1f86729f29ea50e8491a1516422df4fd3d1277b0/crates/syntax/src/ast/node_ext.rs#L268-L277 - if item.l_angle_token().is_some() { + // https://github.com/rust-lang/rust-analyzer/blob/a642aa8023be11d6bc027fc6a68c71c2f3fc7f72/crates/syntax/src/ast/node_ext.rs#L290-L297 + if let Some(anchor) = item.type_anchor() { // or // T is any TypeRef, Trait has to be a PathType - let mut type_refs = item + let mut type_refs = anchor .syntax() .children() .filter(|node| ast::Type::can_cast(node.kind())); @@ -691,6 +689,13 @@ impl<'a> Translator<'a> { { generated::PathSegment::emit_trait_type_repr(label, t, &mut self.trap.writer) } + // moreover as we're skipping emission of TypeAnchor, we need to attach its comments to + // this path segment + self.emit_tokens( + &anchor, + label.into(), + anchor.syntax().children_with_tokens(), + ); } } @@ -743,9 +748,9 @@ impl<'a> Translator<'a> { } let ExpandResult { value: expanded, .. - } = semantics.expand_attr_macro(node)?; - self.emit_macro_expansion_parse_errors(node, &expanded); - let macro_items = ast::MacroItems::cast(expanded).or_else(|| { + } = self.semantics.and_then(|s| s.expand_attr_macro(node))?; + self.emit_macro_expansion_parse_errors(node, &expanded.value); + let macro_items = ast::MacroItems::cast(expanded.value).or_else(|| { let message = "attribute macro expansion cannot be cast to MacroItems".to_owned(); let location = self.location_for_node(node); self.emit_diagnostic( From 7edae1eb172a44d72adb8a3281b10e75348e0a53 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 17:56:09 +0200 Subject: [PATCH 189/340] Rust: suppress some expected macro expansion warnings --- rust/extractor/src/main.rs | 16 +++++++++++++--- rust/extractor/src/translate/base.rs | 6 +++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/rust/extractor/src/main.rs b/rust/extractor/src/main.rs index bae83c99fbf..e50b589a9da 100644 --- a/rust/extractor/src/main.rs +++ b/rust/extractor/src/main.rs @@ -167,9 +167,19 @@ impl<'a> Extractor<'a> { let Some(id) = path_to_file_id(file, vfs) else { return Err("not included in files loaded from manifest".to_string()); }; - if semantics.file_to_module_def(id).is_none() { - return Err("not included as a module".to_string()); - } + match semantics.file_to_module_def(id) { + None => return Err("not included as a module".to_string()), + Some(module) + if module + .as_source_file_id(semantics.db) + .is_none_or(|mod_file_id| mod_file_id.file_id(semantics.db) != id) => + { + return Err( + "not loaded as its own module, probably included by `!include`".to_string(), + ); + } + _ => {} + }; self.steps.push(ExtractionStep::load_source(before, file)); Ok(()) } diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 0dd7a753d12..2a132bc6ebf 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -29,6 +29,10 @@ macro_rules! pre_emit { return Some(label); } }; + (Meta, $self:ident, $node:ident) => { + // rust-analyzer doesn't expand macros in this context + $self.macro_context_depth += 1; + }; ($($_:tt)*) => {}; } @@ -122,7 +126,7 @@ pub struct Translator<'a> { pub semantics: Option<&'a Semantics<'a, RootDatabase>>, resolve_paths: bool, source_kind: SourceKind, - macro_context_depth: usize, + pub(crate) macro_context_depth: usize, } const UNKNOWN_LOCATION: (LineCol, LineCol) = From 9c06a826cfcc0e7c078ebb063083aa6a1206e9fb Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 18:16:32 +0200 Subject: [PATCH 190/340] Rust: apply suggestions from code review Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com> --- .../analyzing-data-flow-in-rust.rst | 29 +++++++++---------- .../codeql-for-rust.rst | 2 +- .../codeql-library-for-rust.rst | 18 ++++++------ 3 files changed, 23 insertions(+), 26 deletions(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 47f2366faf3..96fc7191393 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -17,7 +17,7 @@ For a more general introduction to modeling data flow, see ":ref:`About data flo Local data flow --------------- -Local data flow tracks the flow of data within a single method or callable. Local data flow is easier, faster, and more precise than global data flow. Before looking at more complex tracking, you should always consider local tracking because it is sufficient for many queries. +Local data flow tracks the flow of data within a single method or callable. Local data flow is easier, faster, and more precise than global data flow. Before using more complex tracking, consider local tracking, as it is sufficient for many queries. Using local data flow ~~~~~~~~~~~~~~~~~~~~~ @@ -43,13 +43,11 @@ Similarly, you can map a data flow ``ParameterNode`` to its corresponding ``Para ... } - -Note that since ``asExpr`` maps from data-flow to control-flow nodes, you then need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node, -for example by writing ``node.asExpr().getExpr()``. +Note that because ``asExpr`` maps from data-flow to control-flow nodes, you need to call the ``getExpr`` member predicate on the control-flow node to map to the corresponding AST node. For example, you can write ``node.asExpr().getExpr()``. A control-flow graph considers every way control can flow through code, consequently, there can be multiple data-flow and control-flow nodes associated with a single expression node in the AST. The predicate ``localFlowStep(Node nodeFrom, Node nodeTo)`` holds if there is an immediate data flow edge from the node ``nodeFrom`` to the node ``nodeTo``. -You can apply the predicate recursively, by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localFlow``. +You can apply the predicate recursively by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localFlow``. For example, you can find flow from an expression ``source`` to an expression ``sink`` in zero or more local steps: @@ -71,7 +69,7 @@ If ``x`` is a tainted string then ``y`` is also tainted. The local taint tracking library is in the module ``TaintTracking``. Like local data flow, a predicate ``localTaintStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo)`` holds if there is an immediate taint propagation edge from the node ``nodeFrom`` to the node ``nodeTo``. -You can apply the predicate recursively, by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localTaint``. +You can apply the predicate recursively by using the ``+`` and ``*`` operators, or you can use the predefined recursive predicate ``localTaint``. For example, you can find taint propagation from an expression ``source`` to an expression ``sink`` in zero or more local steps: @@ -83,14 +81,14 @@ For example, you can find taint propagation from an expression ``source`` to an Using local sources ~~~~~~~~~~~~~~~~~~~ -When exploring local data flow or taint propagation between two expressions as above, you would normally constrain the expressions to be relevant to your investigation. -The next section gives some concrete examples, but first it's helpful to introduce the concept of a local source. +When exploring local data flow or taint propagation between two expressions, such as in the previous example, you typically constrain the expressions to those relevant to your investigation. +The next section provides concrete examples, but first introduces the concept of a local source. A local source is a data-flow node with no local data flow into it. -As such, it is a local origin of data flow, a place where a new value is created. +It is a local origin of data flow, a place where a new value is created. This includes parameters (which only receive values from global data flow) and most expressions (because they are not value-preserving). The class ``LocalSourceNode`` represents data-flow nodes that are also local sources. -It comes with a useful member predicate ``flowsTo(DataFlow::Node node)``, which holds if there is local data flow from the local source to ``node``. +It includes a useful member predicate ``flowsTo(DataFlow::Node node)``, which holds if there is local data flow from the local source to ``node``. Examples of local data flow ~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -105,8 +103,7 @@ This query finds the argument passed in each call to ``File::create``: where call.getStaticTarget().(Function).getCanonicalPath() = "::create" select call.getArg(0) -Unfortunately this will only give the expression in the argument, not the values which could be passed to it. -So we use local data flow to find all expressions that flow into the argument: +Unfortunately, this only returns the expression used as the argument, not the possible values that could be passed to it. To address this, you can use local data flow to find all expressions that flow into the argument. .. code-block:: ql @@ -120,7 +117,7 @@ So we use local data flow to find all expressions that flow into the argument: DataFlow::localFlow(source, sink) select source, sink -We can vary the source, for example, making the source the parameter of a function rather than an expression. The following query finds where a parameter is used for the file creation: +You can vary the source by making the source the parameter of a function instead of an expression. The following query finds where a parameter is used in file creation: .. code-block:: ql @@ -183,8 +180,8 @@ The last line (``module MyDataFlow = ...``) instantiates the parameterized modul Using global taint tracking ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Global taint tracking is to global data flow what local taint tracking is to local data flow. -That is, global taint tracking extends global data flow with additional non-value-preserving steps. +Global taint tracking relates to global data flow in the same way that local taint tracking relates to local data flow. +In other words, global taint tracking extends global data flow with additional non-value-preserving steps. The global taint tracking library uses the same configuration module as the global data flow library. You can perform taint flow analysis using ``TaintTracking::Global``: .. code-block:: ql @@ -207,7 +204,7 @@ The following global taint-tracking query finds places where a string literal is - Since this is a taint-tracking query, the ``TaintTracking::Global`` module is used. - The ``isSource`` predicate defines sources as any ``StringLiteralExpr``. - The ``isSink`` predicate defines sinks as arguments to a ``CallExpr`` called "password". - - The sources and sinks may need tuning to a particular use, for example, if passwords are represented by a type other than ``String`` or passed in arguments of a different name than "password". + - The sources and sinks may need to be adjusted for a particular use. For example, passwords might be represented by a type other than ``String`` or passed in arguments with a different name than "password". .. code-block:: ql diff --git a/docs/codeql/codeql-language-guides/codeql-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-for-rust.rst index a2c5bb98724..24292909467 100644 --- a/docs/codeql/codeql-language-guides/codeql-for-rust.rst +++ b/docs/codeql/codeql-language-guides/codeql-for-rust.rst @@ -12,5 +12,5 @@ Experiment and learn how to write effective and efficient queries for CodeQL dat codeql-library-for-rust analyzing-data-flow-in-rust -- :doc:`CodeQL library for Rust `: When you're analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. +- :doc:`CodeQL library for Rust `: When analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. - :doc:`Analyzing data flow in Rust `: You can use CodeQL to track the flow of data through a Rust program to places where the data is used. diff --git a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst index c2357a8264c..84da28c7dfc 100644 --- a/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst +++ b/docs/codeql/codeql-language-guides/codeql-library-for-rust.rst @@ -3,7 +3,7 @@ CodeQL library for Rust ================================= -When you're analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. +When analyzing Rust code, you can make use of the large collection of classes in the CodeQL library for Rust. Overview -------- @@ -11,7 +11,7 @@ Overview CodeQL ships with a library for analyzing Rust code. The classes in this library present the data from a CodeQL database in an object-oriented form and provide abstractions and predicates to help you with common analysis tasks. -The library is implemented as a set of CodeQL modules, that is, files with the extension ``.qll``. The +The library is implemented as a set of CodeQL modules, which are files with the extension ``.qll``. The module `rust.qll `__ imports most other standard library modules, so you can include them by beginning your query with: @@ -20,27 +20,27 @@ by beginning your query with: import rust The CodeQL libraries model various aspects of Rust code. The above import includes the abstract syntax tree (AST) library, which is used for locating program elements -to match syntactic elements in the source code. This can be used for example to find values, patterns and structures. +to match syntactic elements in the source code. This can be used to find values, patterns, and structures. -The control flow graph (CFG) is imported using +The control flow graph (CFG) is imported using: .. code-block:: ql import codeql.rust.controlflow.ControlFlowGraph -The CFG models the control flow between statements and expressions, for example whether one expression can +The CFG models the control flow between statements and expressions. For example, it can determine whether one expression can be evaluated before another expression, or whether an expression "dominates" another one, meaning that all paths to an expression must flow through another expression first. -The data flow library is imported using +The data flow library is imported using: .. code-block:: ql import codeql.rust.dataflow.DataFlow -Data flow tracks the flow of data through the program, including through function calls (interprocedural data flow) and between steps in a job or workflow. -Data flow is particularly useful for security queries, where untrusted data flows to vulnerable parts of the program. Related to data flow is the taint-tracking library, -which finds how data can *influence* other values in a program, even when it is not copied exactly. +Data flow tracks the flow of data through the program, including across function calls (interprocedural data flow) and between steps in a job or workflow. +Data flow is particularly useful for security queries, where untrusted data flows to vulnerable parts of the program. The taint-tracking library is related to data flow, +and helps you find how data can *influence* other values in a program, even when it is not copied exactly. To summarize, the main Rust library modules are: From 5b4c566f06a817a1b1d95e0fe3dadfed121b5b79 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Fri, 20 Jun 2025 18:27:49 +0200 Subject: [PATCH 191/340] Cargo: fix `Cargo.lock` file --- .pre-commit-config.yaml | 2 +- Cargo.lock | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ced5d5021ca..b2eb8e4f2ff 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -9,7 +9,7 @@ repos: - id: trailing-whitespace exclude: /test/.*$(? Date: Mon, 23 Jun 2025 10:16:55 +0200 Subject: [PATCH 192/340] Update docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst Co-authored-by: Sunbrye Ly <56200261+sunbrye@users.noreply.github.com> --- .../codeql-language-guides/analyzing-data-flow-in-rust.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst index 96fc7191393..8aed9fc9326 100644 --- a/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst +++ b/docs/codeql/codeql-language-guides/analyzing-data-flow-in-rust.rst @@ -17,7 +17,7 @@ For a more general introduction to modeling data flow, see ":ref:`About data flo Local data flow --------------- -Local data flow tracks the flow of data within a single method or callable. Local data flow is easier, faster, and more precise than global data flow. Before using more complex tracking, consider local tracking, as it is sufficient for many queries. +Local data flow tracks the flow of data within a single method or callable. Local data flow is easier, faster, and more precise than global data flow. Before using more complex tracking, consider local tracking, as it is sufficient for many queries. Using local data flow ~~~~~~~~~~~~~~~~~~~~~ From 3ffaf5722a1ee83ea195b0f162895f8d36e8b26c Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 10:43:39 +0200 Subject: [PATCH 193/340] Rust: fix `Meta` missing `post_emit!` implementation --- Cargo.lock | 1 - rust/extractor/src/translate/base.rs | 3 +++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index ddc8353de73..c9d363f5118 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3449,4 +3449,3 @@ dependencies = [ name = "rustc_apfloat" version = "0.2.2+llvm-462a31f5a5ab" source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" - diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index 6583ec0c6b5..e47bfba17ca 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -64,6 +64,9 @@ impl From> for crate::trap::Label { + $self.macro_context_depth -= 1; + }; (MacroCall, $self:ident, $node:ident, $label:ident) => { $self.extract_macro_call_expanded($node, $label); }; From eb3b717b2ff1a6e59a5adf482f85be80574ff9fa Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 10:50:10 +0200 Subject: [PATCH 194/340] Rust: accept test changes for now --- Cargo.lock | 1 + .../crate_graph/crates.expected | 46 +- .../generated/AsmLabel/AsmLabel.expected | 1 + .../AsmLabel/AsmLabel_getBlockExpr.expected | 1 + .../ClosureBinder/ClosureBinder.expected | 1 + ...ClosureBinder_getGenericParamList.expected | 1 + .../generated/Const/Const.expected | 2 +- .../ExtractionConsistency.expected | 2 + .../macro-expansion/PrintAst.expected | 3 - .../macro-expansion/test.expected | 8 +- .../controlflow/BasicBlocks.expected | 2 - .../library-tests/controlflow/Cfg.expected | 5 - .../PathResolutionConsistency.expected | 15 - .../dataflow/local/inline-flow.expected | 51 +- .../dataflow/modeled/inline-flow.expected | 20 +- .../CONSISTENCY/AstConsistency.expected | 25 + .../PathResolutionConsistency.expected | 33 - .../dataflow/sources/InlineFlow.expected | 12 + .../dataflow/sources/TaintSources.expected | 6 - .../path-resolution/path-resolution.expected | 6 - .../type-inference/type-inference.expected | 625 +++++------------- .../test/library-tests/variables/Cfg.expected | 16 +- .../test/library-tests/variables/Ssa.expected | 8 - .../variables/variables.expected | 10 +- .../diagnostics/SummaryStatsReduced.expected | 6 +- .../diagnostics/UnresolvedMacroCalls.expected | 1 + .../CONSISTENCY/AstConsistency.expected | 7 + .../CONSISTENCY/AstConsistency.expected | 8 + .../PathResolutionConsistency.expected | 122 ---- .../security/CWE-089/SqlInjection.expected | 45 +- .../CONSISTENCY/AstConsistency.expected | 8 + .../PathResolutionConsistency.expected | 4 - .../CWE-312/CleartextLogging.expected | 479 ++------------ .../CWE-696/BadCTorInitialization.expected | 98 ++- .../PathResolutionConsistency.expected | 14 - .../PathResolutionConsistency.expected | 4 - .../PathResolutionConsistency.expected | 12 - .../unusedentities/UnreachableCode.expected | 6 +- .../unusedentities/UnusedValue.expected | 28 +- .../unusedentities/UnusedVariable.expected | 32 +- 40 files changed, 453 insertions(+), 1321 deletions(-) create mode 100644 rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected create mode 100644 rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected diff --git a/Cargo.lock b/Cargo.lock index c9d363f5118..ddc8353de73 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3449,3 +3449,4 @@ dependencies = [ name = "rustc_apfloat" version = "0.2.2+llvm-462a31f5a5ab" source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" + diff --git a/rust/ql/test/extractor-tests/crate_graph/crates.expected b/rust/ql/test/extractor-tests/crate_graph/crates.expected index f934618db9c..21c662bb425 100644 --- a/rust/ql/test/extractor-tests/crate_graph/crates.expected +++ b/rust/ql/test/extractor-tests/crate_graph/crates.expected @@ -1,8 +1,8 @@ #-----| Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) -#-----| rand -> Crate(rand@0.8.5) -#-----| rand_xorshift -> Crate(rand_xorshift@0.3.0) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) +#-----| rand -> Crate(rand@0.9.0) +#-----| rand_xorshift -> Crate(rand_xorshift@0.4.0) #-----| Crate(allocator_api2@0.2.21) @@ -16,7 +16,7 @@ #-----| Crate(cfg_if@1.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| Crate(cfg_if@1.0.1) #-----| proc_macro -> Crate(proc_macro@0.0.0) @@ -25,12 +25,10 @@ #-----| std -> Crate(std@0.0.0) #-----| test -> Crate(test@0.0.0) -#-----| Crate(compiler_builtins@0.1.140) +#-----| Crate(compiler_builtins@0.1.146) #-----| core -> Crate(core@0.0.0) #-----| Crate(core@0.0.0) -#-----| rand -> Crate(rand@0.8.5) -#-----| rand_xorshift -> Crate(rand_xorshift@0.3.0) #-----| Crate(crypto_common@0.1.6) #-----| proc_macro -> Crate(proc_macro@0.0.0) @@ -67,7 +65,7 @@ #-----| allocator_api2 -> Crate(allocator_api2@0.2.21) #-----| alloc -> Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| Crate(libc@0.2.169) #-----| rustc_std_workspace_core -> Crate(core@0.0.0) @@ -102,14 +100,14 @@ main.rs: #-----| Crate(panic_abort@0.0.0) #-----| alloc -> Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| cfg_if -> Crate(cfg_if@1.0.0) #-----| libc -> Crate(libc@0.2.169) #-----| Crate(panic_unwind@0.0.0) #-----| alloc -> Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| cfg_if -> Crate(cfg_if@1.0.0) #-----| libc -> Crate(libc@0.2.169) #-----| unwind -> Crate(unwind@0.0.0) @@ -118,27 +116,29 @@ main.rs: #-----| core -> Crate(core@0.0.0) #-----| std -> Crate(std@0.0.0) -#-----| Crate(rand@0.8.5) -#-----| rand_core -> Crate(rand_core@0.6.4) +#-----| Crate(rand@0.9.0) +#-----| zerocopy -> Crate(zerocopy@0.8.17) +#-----| rand_core -> Crate(rand_core@0.9.0) -#-----| Crate(rand_core@0.6.4) +#-----| Crate(rand_core@0.9.0) +#-----| zerocopy -> Crate(zerocopy@0.8.17) -#-----| Crate(rand_xorshift@0.3.0) -#-----| rand_core -> Crate(rand_core@0.6.4) +#-----| Crate(rand_xorshift@0.4.0) +#-----| rand_core -> Crate(rand_core@0.9.0) #-----| Crate(rustc_demangle@0.1.24) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| Crate(std@0.0.0) #-----| alloc -> Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| cfg_if -> Crate(cfg_if@1.0.0) #-----| hashbrown -> Crate(hashbrown@0.15.2) #-----| libc -> Crate(libc@0.2.169) -#-----| rand -> Crate(rand@0.8.5) -#-----| rand_xorshift -> Crate(rand_xorshift@0.3.0) +#-----| rand -> Crate(rand@0.9.0) +#-----| rand_xorshift -> Crate(rand_xorshift@0.4.0) #-----| rustc_demangle -> Crate(rustc_demangle@0.1.24) #-----| panic_abort -> Crate(panic_abort@0.0.0) #-----| unwind -> Crate(unwind@0.0.0) @@ -148,7 +148,7 @@ main.rs: #-----| Crate(std_detect@0.1.5) #-----| alloc -> Crate(alloc@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| cfg_if -> Crate(cfg_if@1.0.0) #-----| libc -> Crate(libc@0.2.169) @@ -178,11 +178,11 @@ lib.rs: #-----| Crate(unicode_width@0.1.14) #-----| core -> Crate(core@0.0.0) #-----| std -> Crate(std@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| Crate(unwind@0.0.0) #-----| core -> Crate(core@0.0.0) -#-----| compiler_builtins -> Crate(compiler_builtins@0.1.140) +#-----| compiler_builtins -> Crate(compiler_builtins@0.1.146) #-----| cfg_if -> Crate(cfg_if@1.0.0) #-----| libc -> Crate(libc@0.2.169) @@ -192,3 +192,5 @@ lib.rs: #-----| core -> Crate(core@0.0.0) #-----| std -> Crate(std@0.0.0) #-----| test -> Crate(test@0.0.0) + +#-----| Crate(zerocopy@0.8.17) diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected index e69de29bb2d..e77dfa46a42 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected @@ -0,0 +1 @@ +| gen_asm_label.rs:10:9:10:47 | AsmLabel | hasBlockExpr: | yes | diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected index e69de29bb2d..8f99b753a28 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected @@ -0,0 +1 @@ +| gen_asm_label.rs:10:9:10:47 | AsmLabel | gen_asm_label.rs:10:15:10:47 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected index e69de29bb2d..66e669e9e9f 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected @@ -0,0 +1 @@ +| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | hasGenericParamList: | yes | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected index e69de29bb2d..f3d94f1b8fa 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected @@ -0,0 +1 @@ +| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | gen_closure_binder.rs:7:24:7:43 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.expected b/rust/ql/test/extractor-tests/generated/Const/Const.expected index ceb8669ac83..09c791ffe4f 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.expected +++ b/rust/ql/test/extractor-tests/generated/Const/Const.expected @@ -1 +1 @@ -| gen_const.rs:4:5:7:22 | Const | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | isConst: | yes | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | hasImplementation: | yes | +| gen_const.rs:4:5:7:22 | Const | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | hasGenericParamList: | no | isConst: | yes | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | yes | diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected new file mode 100644 index 00000000000..2472f0e25f8 --- /dev/null +++ b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected @@ -0,0 +1,2 @@ +extractionWarning +| included/included.rs:1:1:1:1 | semantic analyzer unavailable (not loaded as its own module, probably included by `!include`) | diff --git a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected index a89072531cc..e92036b352b 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/PrintAst.expected @@ -140,7 +140,6 @@ included/included.rs: # 2| getSegment(): [PathSegment] concat # 2| getIdentifier(): [NameRef] concat # 2| getTokenTree(): [TokenTree] TokenTree -# 2| getMacroCallExpansion(): [StringLiteralExpr] "Hello world!" # 1| getName(): [Name] included # 2| [Comment] //... lib.rs: @@ -655,7 +654,6 @@ macro_expansion.rs: # 56| getSegment(): [PathSegment] concat # 56| getIdentifier(): [NameRef] concat # 56| getTokenTree(): [TokenTree] TokenTree -# 56| getMacroCallExpansion(): [StringLiteralExpr] "<{}>" # 55| getFunction(): [PathExpr] ...::format # 55| getPath(): [Path] ...::format # 55| getQualifier(): [Path] ...::fmt @@ -714,7 +712,6 @@ macro_expansion.rs: # 63| getSegment(): [PathSegment] include_str # 63| getIdentifier(): [NameRef] include_str # 63| getTokenTree(): [TokenTree] TokenTree -# 63| getMacroCallExpansion(): [StringLiteralExpr] "" # 63| getPath(): [Path] doc # 63| getSegment(): [PathSegment] doc # 63| getIdentifier(): [NameRef] doc diff --git a/rust/ql/test/extractor-tests/macro-expansion/test.expected b/rust/ql/test/extractor-tests/macro-expansion/test.expected index 5940c63da2b..5caa4d1688d 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/test.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/test.expected @@ -15,7 +15,6 @@ attribute_macros | macro_expansion.rs:31:5:34:5 | fn bzz | 1 | macro_expansion.rs:32:5:33:17 | fn bzz_1 | | macro_expansion.rs:31:5:34:5 | fn bzz | 2 | macro_expansion.rs:32:5:33:17 | fn bzz_2 | macro_calls -| included/included.rs:2:9:2:39 | concat!... | included/included.rs:2:17:2:38 | "Hello world!" | | macro_expansion.rs:5:9:5:34 | concat!... | macro_expansion.rs:5:17:5:34 | "Hello world!" | | macro_expansion.rs:5:9:5:34 | concat!... | macro_expansion.rs:5:17:5:34 | "Hello world!" | | macro_expansion.rs:31:5:31:16 | ...::format_args_nl!... | macro_expansion.rs:31:5:31:16 | FormatArgsExpr | @@ -30,18 +29,21 @@ macro_calls | macro_expansion.rs:44:5:44:13 | def_x!... | macro_expansion.rs:44:5:44:13 | 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 | -| macro_expansion.rs:56:9:56:31 | concat!... | macro_expansion.rs:56:17:56:30 | "<{}>" | | macro_expansion.rs:56:9:57:13 | ...::format_args!... | macro_expansion.rs:56:9:57:13 | FormatArgsExpr | | macro_expansion.rs:56:9:57:13 | format!... | macro_expansion.rs:56:9:57:13 | ...::must_use(...) | | macro_expansion.rs:61:1:61:33 | concat!... | macro_expansion.rs:61:1:61:33 | "Hello world!" | | macro_expansion.rs:61:1:61:33 | include!... | macro_expansion.rs:61:1:61:33 | MacroItems | -| macro_expansion.rs:63:9:63:32 | include_str!... | macro_expansion.rs:63:22:63:31 | "" | | macro_expansion.rs:70:16:70:24 | my_int!... | macro_expansion.rs:70:16:70:24 | i32 | | macro_expansion.rs:71:12:71:20 | my_int!... | macro_expansion.rs:71:12:71:20 | i32 | | macro_expansion.rs:72:10:72:18 | my_int!... | macro_expansion.rs:72:10:72:18 | i32 | | macro_expansion.rs:76:14:76:22 | my_int!... | macro_expansion.rs:76:14:76:22 | i32 | | macro_expansion.rs:79:12:79:20 | my_int!... | macro_expansion.rs:79:12:79:20 | i32 | unexpanded_macro_calls +| included/included.rs:2:9:2:39 | concat!... | | macro_expansion.rs:5:9:5:35 | concat!... | | macro_expansion.rs:33:9:33:16 | hello!... | +| macro_expansion.rs:56:9:56:31 | concat!... | +| macro_expansion.rs:63:9:63:32 | include_str!... | warnings +| included/included.rs:1:1:1:1 | semantic analyzer unavailable (not loaded as its own module, probably included by `!include`) | +| macro_expansion.rs:56:9:56:31 | macro expansion failed: could not resolve macro 'concat' | diff --git a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected index 1b4b770c130..d35cb65edbe 100644 --- a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected +++ b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected @@ -730,7 +730,6 @@ dominates | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | if false {...} | | test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | -| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | enter fn panic_cold_explicit | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:553:9:553:17 | ExprStmt | | test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | @@ -1397,7 +1396,6 @@ postDominance | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:541:9:546:9 | if false {...} | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | -| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | enter fn panic_cold_explicit | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:553:9:553:17 | ExprStmt | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index 44dd60e915a..5878654707a 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -1321,11 +1321,6 @@ edges | test.rs:541:9:546:9 | ExprStmt | test.rs:541:12:541:16 | false | | | test.rs:541:9:546:9 | if false {...} | test.rs:547:9:547:9 | N | | | test.rs:541:12:541:16 | false | test.rs:541:9:546:9 | if false {...} | false | -| test.rs:544:17:544:24 | ...::panic_explicit | test.rs:544:17:544:24 | ...::panic_explicit(...) | | -| test.rs:544:17:544:24 | ...::panic_explicit(...) | test.rs:544:17:544:24 | { ... } | | -| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | ...::panic_explicit | | -| test.rs:544:17:544:24 | exit fn panic_cold_explicit (normal) | test.rs:544:17:544:24 | exit fn panic_cold_explicit | | -| test.rs:544:17:544:24 | { ... } | test.rs:544:17:544:24 | exit fn panic_cold_explicit (normal) | | | test.rs:547:9:547:9 | N | test.rs:539:35:548:5 | { ... } | | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:552:5:554:5 | ExprStmt | | | test.rs:551:1:556:1 | exit fn dead_code (normal) | test.rs:551:1:556:1 | exit fn dead_code | | diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index b9ee72e892b..00000000000 --- a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,15 +0,0 @@ -multiplePathResolutions -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | 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 5d9fabca983..1f309be5928 100644 --- a/rust/ql/test/library-tests/dataflow/local/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/local/inline-flow.expected @@ -1,15 +1,14 @@ models | 1 | Summary: lang:alloc; ::new; Argument[0]; ReturnValue.Reference; value | -| 2 | Summary: lang:core; <_ as crate::convert::From>::from; Argument[0]; ReturnValue; value | -| 3 | Summary: lang:core; ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 4 | Summary: lang:core; ::unwrap_or; Argument[0]; ReturnValue; value | -| 5 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 6 | Summary: lang:core; ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | -| 7 | Summary: lang:core; ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 8 | Summary: lang:core; ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 9 | Summary: lang:core; ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 10 | Summary: lang:core; ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | -| 11 | Summary: lang:core; ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 2 | Summary: lang:core; ::unwrap; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 3 | Summary: lang:core; ::unwrap_or; Argument[0]; ReturnValue; value | +| 4 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 5 | Summary: lang:core; ::unwrap_or_else; Argument[0].ReturnValue; ReturnValue; value | +| 6 | Summary: lang:core; ::unwrap_or_else; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 7 | Summary: lang:core; ::err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | +| 8 | Summary: lang:core; ::expect; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | +| 9 | Summary: lang:core; ::expect_err; Argument[self].Field[core::result::Result::Err(0)]; ReturnValue; value | +| 10 | Summary: lang:core; ::ok; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue.Field[core::option::Option::Some(0)]; value | edges | main.rs:22:9:22:9 | s | main.rs:23:10:23:10 | s | provenance | | | main.rs:22:13:22:21 | source(...) | main.rs:22:9:22:9 | s | provenance | | @@ -100,32 +99,32 @@ edges | main.rs:229:11:229:12 | s1 [Some] | main.rs:230:9:230:15 | Some(...) [Some] | provenance | | | main.rs:230:9:230:15 | Some(...) [Some] | main.rs:230:14:230:14 | n | provenance | | | main.rs:230:14:230:14 | n | main.rs:230:25:230:25 | n | provenance | | -| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:3 | +| main.rs:240:9:240:10 | s1 [Some] | main.rs:241:10:241:20 | s1.unwrap() | provenance | MaD:2 | | main.rs:240:14:240:29 | Some(...) [Some] | main.rs:240:9:240:10 | s1 [Some] | provenance | | | main.rs:240:19:240:28 | source(...) | main.rs:240:14:240:29 | Some(...) [Some] | provenance | | -| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:5 | +| main.rs:245:9:245:10 | s1 [Some] | main.rs:246:10:246:24 | s1.unwrap_or(...) | provenance | MaD:4 | | main.rs:245:14:245:29 | Some(...) [Some] | main.rs:245:9:245:10 | s1 [Some] | provenance | | | main.rs:245:19:245:28 | source(...) | main.rs:245:14:245:29 | Some(...) [Some] | provenance | | -| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:4 | -| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:7 | +| main.rs:249:23:249:32 | source(...) | main.rs:249:10:249:33 | s2.unwrap_or(...) | provenance | MaD:3 | +| main.rs:253:9:253:10 | s1 [Some] | main.rs:254:10:254:32 | s1.unwrap_or_else(...) | provenance | MaD:6 | | main.rs:253:14:253:29 | Some(...) [Some] | main.rs:253:9:253:10 | s1 [Some] | provenance | | | main.rs:253:19:253:28 | source(...) | main.rs:253:14:253:29 | Some(...) [Some] | provenance | | -| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:6 | +| main.rs:257:31:257:40 | source(...) | main.rs:257:10:257:41 | s2.unwrap_or_else(...) | provenance | MaD:5 | | main.rs:261:9:261:10 | s1 [Some] | main.rs:263:14:263:15 | s1 [Some] | provenance | | | main.rs:261:14:261:29 | Some(...) [Some] | main.rs:261:9:261:10 | s1 [Some] | provenance | | | main.rs:261:19:261:28 | source(...) | main.rs:261:14:261:29 | Some(...) [Some] | provenance | | | main.rs:263:9:263:10 | i1 | main.rs:264:10:264:11 | i1 | provenance | | | main.rs:263:14:263:15 | s1 [Some] | main.rs:263:14:263:16 | TryExpr | provenance | | | main.rs:263:14:263:16 | TryExpr | main.rs:263:9:263:10 | i1 | provenance | | -| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:28:271:34 | r1.ok() [Some] | provenance | MaD:11 | +| main.rs:270:9:270:10 | r1 [Ok] | main.rs:271:28:271:34 | r1.ok() [Some] | provenance | MaD:10 | | main.rs:270:32:270:45 | Ok(...) [Ok] | main.rs:270:9:270:10 | r1 [Ok] | provenance | | | main.rs:270:35:270:44 | source(...) | main.rs:270:32:270:45 | Ok(...) [Ok] | provenance | | -| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:3 | +| main.rs:271:9:271:11 | o1a [Some] | main.rs:273:10:273:21 | o1a.unwrap() | provenance | MaD:2 | | main.rs:271:28:271:34 | r1.ok() [Some] | main.rs:271:9:271:11 | o1a [Some] | provenance | | -| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:28:278:35 | r2.err() [Some] | provenance | MaD:8 | +| main.rs:276:9:276:10 | r2 [Err] | main.rs:278:28:278:35 | r2.err() [Some] | provenance | MaD:7 | | main.rs:276:32:276:46 | Err(...) [Err] | main.rs:276:9:276:10 | r2 [Err] | provenance | | | main.rs:276:36:276:45 | source(...) | main.rs:276:32:276:46 | Err(...) [Err] | provenance | | -| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:3 | +| main.rs:278:9:278:11 | o2b [Some] | main.rs:280:10:280:21 | o2b.unwrap() | provenance | MaD:2 | | main.rs:278:28:278:35 | r2.err() [Some] | main.rs:278:9:278:11 | o2b [Some] | provenance | | | main.rs:284:9:284:10 | s1 [Ok] | main.rs:287:14:287:15 | s1 [Ok] | provenance | | | main.rs:284:32:284:45 | Ok(...) [Ok] | main.rs:284:9:284:10 | s1 [Ok] | provenance | | @@ -133,10 +132,10 @@ edges | main.rs:287:9:287:10 | i1 | main.rs:289:10:289:11 | i1 | provenance | | | main.rs:287:14:287:15 | s1 [Ok] | main.rs:287:14:287:16 | TryExpr | provenance | | | main.rs:287:14:287:16 | TryExpr | main.rs:287:9:287:10 | i1 | provenance | | -| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:9 | +| main.rs:297:9:297:10 | s1 [Ok] | main.rs:298:10:298:22 | s1.expect(...) | provenance | MaD:8 | | main.rs:297:32:297:45 | Ok(...) [Ok] | main.rs:297:9:297:10 | s1 [Ok] | provenance | | | main.rs:297:35:297:44 | source(...) | main.rs:297:32:297:45 | Ok(...) [Ok] | provenance | | -| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:10 | +| main.rs:301:9:301:10 | s2 [Err] | main.rs:303:10:303:26 | s2.expect_err(...) | provenance | MaD:9 | | main.rs:301:32:301:46 | Err(...) [Err] | main.rs:301:9:301:10 | s2 [Err] | provenance | | | main.rs:301:36:301:45 | source(...) | main.rs:301:32:301:46 | Err(...) [Err] | provenance | | | main.rs:312:9:312:10 | s1 [A] | main.rs:314:11:314:12 | s1 [A] | provenance | | @@ -236,9 +235,6 @@ edges | main.rs:519:17:519:18 | &c [&ref] | main.rs:519:9:519:13 | c_ref [&ref] | provenance | | | main.rs:519:18:519:18 | c | main.rs:519:17:519:18 | &c [&ref] | provenance | | | main.rs:524:11:524:15 | c_ref [&ref] | main.rs:524:10:524:15 | * ... | provenance | | -| main.rs:528:9:528:9 | a | main.rs:532:20:532:20 | a | provenance | | -| main.rs:528:18:528:27 | source(...) | main.rs:528:9:528:9 | a | provenance | | -| main.rs:532:20:532:20 | a | main.rs:532:10:532:21 | ...::from(...) | provenance | MaD:2 | nodes | main.rs:18:10:18:18 | source(...) | semmle.label | source(...) | | main.rs:22:9:22:9 | s | semmle.label | s | @@ -511,12 +507,10 @@ nodes | main.rs:521:10:521:10 | a | semmle.label | a | | main.rs:524:10:524:15 | * ... | semmle.label | * ... | | main.rs:524:11:524:15 | c_ref [&ref] | semmle.label | c_ref [&ref] | -| main.rs:528:9:528:9 | a | semmle.label | a | -| main.rs:528:18:528:27 | source(...) | semmle.label | source(...) | -| main.rs:532:10:532:21 | ...::from(...) | semmle.label | ...::from(...) | -| main.rs:532:20:532:20 | a | semmle.label | a | subpaths testFailures +| main.rs:532:25:532:44 | //... | Missing result: hasValueFlow=50 | +| main.rs:538:25:538:44 | //... | Missing result: hasTaintFlow=51 | #select | main.rs:18:10:18:18 | source(...) | main.rs:18:10:18:18 | source(...) | main.rs:18:10:18:18 | source(...) | $@ | main.rs:18:10:18:18 | source(...) | source(...) | | main.rs:23:10:23:10 | s | main.rs:22:13:22:21 | source(...) | main.rs:23:10:23:10 | s | $@ | main.rs:22:13:22:21 | source(...) | source(...) | @@ -573,4 +567,3 @@ testFailures | main.rs:506:10:506:18 | vs_mut[0] | main.rs:504:23:504:32 | source(...) | main.rs:506:10:506:18 | vs_mut[0] | $@ | main.rs:504:23:504:32 | source(...) | source(...) | | main.rs:521:10:521:10 | a | main.rs:516:13:516:22 | source(...) | main.rs:521:10:521:10 | a | $@ | main.rs:516:13:516:22 | source(...) | source(...) | | main.rs:524:10:524:15 | * ... | main.rs:518:13:518:22 | source(...) | main.rs:524:10:524:15 | * ... | $@ | main.rs:518:13:518:22 | source(...) | source(...) | -| main.rs:532:10:532:21 | ...::from(...) | main.rs:528:18:528:27 | source(...) | main.rs:532:10:532:21 | ...::from(...) | $@ | main.rs:528:18:528:27 | source(...) | source(...) | 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 8219a03269f..6b6cea7ae06 100644 --- a/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected +++ b/rust/ql/test/library-tests/dataflow/modeled/inline-flow.expected @@ -9,9 +9,8 @@ models | 8 | Summary: lang:core; ::new; Argument[0]; ReturnValue.Field[core::pin::Pin::__pointer]; value | | 9 | Summary: lang:core; ::new; Argument[0]; ReturnValue; value | | 10 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 11 | Summary: lang:core; ::clone; Argument[self].Reference; ReturnValue; value | -| 12 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | -| 13 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | +| 11 | Summary: lang:core; crate::ptr::read; Argument[0].Reference; ReturnValue; value | +| 12 | Summary: lang:core; crate::ptr::write; Argument[1]; Argument[0].Reference; value | edges | main.rs:12:9:12:9 | a [Some] | main.rs:13:10:13:19 | a.unwrap() | provenance | MaD:4 | | main.rs:12:9:12:9 | a [Some] | main.rs:14:13:14:13 | a [Some] | provenance | | @@ -28,12 +27,7 @@ edges | main.rs:21:13:21:13 | a [Ok] | main.rs:21:13:21:21 | a.clone() [Ok] | provenance | generated | | main.rs:21:13:21:21 | a.clone() [Ok] | main.rs:21:9:21:9 | b [Ok] | provenance | | | 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: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() | provenance | generated | -| main.rs:28:13:28:21 | a.clone() | main.rs:28:9:28:9 | b | provenance | | | main.rs:43:18:43:22 | SelfParam [Wrapper] | main.rs:44:26:44:29 | self [Wrapper] | provenance | | | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | provenance | | | main.rs:44:26:44:29 | self [Wrapper] | main.rs:44:26:44:31 | self.n | provenance | | @@ -64,8 +58,8 @@ edges | 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: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:13 | -| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:12 | +| main.rs:92:32:92:41 | source(...) | main.rs:92:29:92:29 | [post] y [&ref] | provenance | MaD:12 | +| main.rs:93:33:93:33 | y [&ref] | main.rs:93:18:93:34 | ...::read(...) | provenance | MaD:11 | | 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 | | @@ -116,10 +110,6 @@ nodes | main.rs:26:9:26:9 | a | semmle.label | a | | 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:13:28:13 | a | semmle.label | a | -| main.rs:28:13:28:21 | a.clone() | semmle.label | a.clone() | -| main.rs:29:10:29:10 | b | semmle.label | b | | main.rs:43:18:43:22 | SelfParam [Wrapper] | semmle.label | SelfParam [Wrapper] | | main.rs:43:33:45:9 | { ... } [Wrapper] | semmle.label | { ... } [Wrapper] | | main.rs:44:13:44:33 | Wrapper {...} [Wrapper] | semmle.label | Wrapper {...} [Wrapper] | @@ -188,13 +178,13 @@ nodes subpaths | main.rs:50:15:50:15 | w [Wrapper] | main.rs:43:18:43:22 | SelfParam [Wrapper] | main.rs:43:33:45:9 | { ... } [Wrapper] | main.rs:53:17:53:25 | w.clone() [Wrapper] | testFailures +| main.rs:29:14:29:33 | //... | Missing result: hasValueFlow=12 | #select | main.rs:13:10:13:19 | a.unwrap() | main.rs:12:18:12:27 | source(...) | main.rs:13:10:13:19 | a.unwrap() | $@ | main.rs:12:18:12:27 | source(...) | source(...) | | main.rs:15:10:15:19 | b.unwrap() | main.rs:12:18:12:27 | source(...) | main.rs:15:10:15:19 | b.unwrap() | $@ | main.rs:12:18:12:27 | source(...) | source(...) | | main.rs:20:10:20:19 | a.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:20:10:20:19 | a.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:22:10:22:19 | b.unwrap() | main.rs:19:34:19:43 | source(...) | main.rs:22:10:22:19 | b.unwrap() | $@ | main.rs:19:34:19:43 | source(...) | source(...) | | main.rs:27:10:27:10 | a | main.rs:26:13:26:22 | source(...) | main.rs:27:10:27:10 | a | $@ | main.rs:26:13:26:22 | source(...) | source(...) | -| main.rs:29:10:29:10 | b | main.rs:26:13:26:22 | source(...) | main.rs:29:10:29:10 | b | $@ | main.rs:26:13:26:22 | source(...) | source(...) | | main.rs:51:38:51:38 | n | main.rs:49:30:49:39 | source(...) | main.rs:51:38:51:38 | n | $@ | main.rs:49:30:49:39 | source(...) | source(...) | | main.rs:55:38:55:38 | n | main.rs:49:30:49:39 | source(...) | main.rs:55:38:55:38 | n | $@ | main.rs:49:30:49:39 | source(...) | source(...) | | main.rs:71:22:71:22 | m | main.rs:66:22:66:31 | source(...) | main.rs:71:22:71:22 | m | $@ | main.rs:66:22:66:31 | source(...) | source(...) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected new file mode 100644 index 00000000000..3792b27be82 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected @@ -0,0 +1,25 @@ +noLocation +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index 5667ceb627d..38c301d1f1e 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -27,18 +27,6 @@ multiplePathResolutions | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | @@ -60,27 +48,6 @@ multiplePathResolutions | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | diff --git a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected index e69de29bb2d..adb6f0aae88 100644 --- a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected @@ -0,0 +1,12 @@ +| test.rs:63:27:63:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:66:27:66:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:69:27:69:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:72:27:72:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:75:27:75:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:78:27:78:57 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:81:45:81:75 | //... | Missing result: hasTaintFlow="example.com" | +| test.rs:365:22:365:38 | //... | Missing result: hasTaintFlow | +| test.rs:686:25:686:49 | //... | Missing result: hasTaintFlow=address | +| test.rs:687:27:687:51 | //... | Missing result: hasTaintFlow=address | +| test.rs:706:36:706:60 | //... | Missing result: hasTaintFlow=address | +| test.rs:729:36:729:60 | //... | Missing result: hasTaintFlow=address | diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index b5028f38f76..f4a0efbb4e4 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -80,15 +80,9 @@ | test.rs:753:22:753:49 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:779:22:779:50 | ...::new | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:806:16:806:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | -| test.rs:806:16:806:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | | test_futures_io.rs:19:15:19:32 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:11:31:11:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:11:31:11:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:22:14:22:18 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:22:14:22:19 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:48:14:48:28 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:48:14:48:30 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | -| web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index 164852626db..f7e50f5052a 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -393,13 +393,7 @@ resolvePath | proc_macro.rs:5:44:5:54 | TokenStream | {EXTERNAL LOCATION} | struct TokenStream | | proc_macro.rs:5:60:5:70 | TokenStream | {EXTERNAL LOCATION} | struct TokenStream | | proc_macro.rs:6:16:6:18 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | -| proc_macro.rs:6:48:6:50 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | -| proc_macro.rs:6:48:6:58 | ...::LitStr | {EXTERNAL LOCATION} | struct LitStr | -| proc_macro.rs:6:48:6:58 | ...::parse::<...> | {EXTERNAL LOCATION} | fn parse | | proc_macro.rs:7:19:7:21 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | -| proc_macro.rs:7:51:7:53 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | -| proc_macro.rs:7:51:7:61 | ...::ItemFn | {EXTERNAL LOCATION} | struct ItemFn | -| proc_macro.rs:7:51:7:61 | ...::parse::<...> | {EXTERNAL LOCATION} | fn parse | | proc_macro.rs:8:21:8:23 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | | proc_macro.rs:8:21:8:30 | ...::Ident | {EXTERNAL LOCATION} | struct Ident | | proc_macro.rs:8:21:8:35 | ...::new | {EXTERNAL LOCATION} | fn new | 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 fdbe769eba8..2ecb674fa55 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -40,11 +40,9 @@ inferType | dereference.rs:40:9:40:10 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:40:14:40:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:40:36:40:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:41:9:41:11 | _b3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:41:15:41:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:15:41:19 | (...) | | file://:0:0:0:0 | & | | dereference.rs:41:15:41:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:41:15:41:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:41:16:41:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:16:41:18 | * ... | | file://:0:0:0:0 | & | | dereference.rs:41:16:41:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | @@ -78,11 +76,9 @@ inferType | dereference.rs:54:14:54:44 | MySmartPointer {...} | | dereference.rs:17:1:19:1 | MySmartPointer | | dereference.rs:54:14:54:44 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:54:38:54:42 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:55:9:55:11 | _d3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:55:15:55:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:15:55:19 | (...) | | file://:0:0:0:0 | & | | dereference.rs:55:15:55:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:55:15:55:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:55:16:55:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:16:55:18 | * ... | | file://:0:0:0:0 | & | | dereference.rs:55:16:55:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | @@ -119,11 +115,9 @@ inferType | dereference.rs:68:14:68:19 | &34i64 | | file://:0:0:0:0 | & | | dereference.rs:68:14:68:19 | &34i64 | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:68:15:68:19 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:69:9:69:11 | _f3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:15:69:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:15:69:19 | (...) | | file://:0:0:0:0 | & | | dereference.rs:69:15:69:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:69:15:69:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:16:69:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:16:69:18 | * ... | | file://:0:0:0:0 | & | | dereference.rs:69:16:69:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | @@ -166,11 +160,9 @@ inferType | dereference.rs:82:24:82:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | | dereference.rs:82:24:82:38 | ...::new(...) | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:82:33:82:37 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:83:9:83:11 | _h3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:83:15:83:19 | (...) | | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:15:83:19 | (...) | | file://:0:0:0:0 | & | | dereference.rs:83:15:83:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | -| dereference.rs:83:15:83:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:83:16:83:18 | * ... | | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:16:83:18 | * ... | | file://:0:0:0:0 | & | | dereference.rs:83:16:83:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | @@ -194,43 +186,26 @@ 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:2:5:3:13 | S | -| main.rs:27:18:27:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:27:26:27:26 | x | | main.rs:5:5:8:5 | MyThing | -| main.rs:27:26:27:28 | x.a | | main.rs:2:5:3:13 | S | | main.rs:30:29:30:29 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:30:29:30:29 | x | A | {EXTERNAL LOCATION} | bool | | main.rs:31:13:31:13 | a | | {EXTERNAL LOCATION} | bool | | 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:18:32:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:32:26:32:26 | a | | {EXTERNAL LOCATION} | bool | | main.rs:37:13:37:13 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:37:13:37:13 | x | A | main.rs:2:5:3:13 | S | | main.rs:37:17:37:42 | GenericThing::<...> {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:37:17:37:42 | GenericThing::<...> {...} | A | main.rs:2:5:3:13 | S | | main.rs:37:40:37:40 | S | | main.rs:2:5:3:13 | S | -| main.rs:38:18:38:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:38:26:38:26 | x | | main.rs:16:5:19:5 | GenericThing | -| main.rs:38:26:38:26 | x | A | main.rs:2:5:3:13 | S | -| main.rs:38:26:38:28 | x.a | | main.rs:2:5:3:13 | S | | main.rs:41:13:41:13 | y | | main.rs:16:5:19:5 | GenericThing | | main.rs:41:13:41:13 | y | A | main.rs:2:5:3:13 | S | | main.rs:41:17:41:37 | GenericThing {...} | | main.rs:16:5:19:5 | GenericThing | | main.rs:41:17:41:37 | GenericThing {...} | A | main.rs:2:5:3:13 | S | | main.rs:41:35:41:35 | S | | main.rs:2:5:3:13 | S | -| main.rs:42:18:42:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:42:26:42:26 | x | | main.rs:16:5:19:5 | GenericThing | -| main.rs:42:26:42:26 | x | A | main.rs:2:5:3:13 | S | -| main.rs:42:26:42:28 | x.a | | main.rs:2:5:3:13 | S | | main.rs:46:13:46:13 | x | | main.rs:21:5:23:5 | OptionS | | 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:2:5:3:13 | S | -| main.rs:49:18:49:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| 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:2:5:3:13 | S | | main.rs:52:13:52:13 | x | | main.rs:16:5:19:5 | GenericThing | | main.rs:52:13:52:13 | x | A | main.rs:10:5:14:5 | MyOption | | main.rs:52:13:52:13 | x | A.T | main.rs:2:5:3:13 | S | @@ -239,12 +214,6 @@ inferType | main.rs:52:17:54:9 | GenericThing::<...> {...} | A.T | main.rs:2:5:3: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:2:5:3:13 | S | -| main.rs:55:18:55:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| 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:2:5:3:13 | S | -| main.rs:55:26:55:28 | x.a | | main.rs:10:5:14:5 | MyOption | -| main.rs:55:26:55:28 | x.a | T | main.rs:2:5:3:13 | S | | main.rs:57:13:57:17 | mut x | | main.rs:16:5:19:5 | GenericThing | | main.rs:57:13:57:17 | mut x | A | main.rs:10:5:14:5 | MyOption | | main.rs:57:13:57:17 | mut x | A.T | main.rs:2:5:3:13 | S | @@ -260,9 +229,6 @@ inferType | main.rs:61:30:61:30 | x | A.T | main.rs:2:5:3: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:2:5:3:13 | S | -| main.rs:62:18:62:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:62:26:62:26 | a | | main.rs:10:5:14:5 | MyOption | -| main.rs:62:26:62:26 | a | T | main.rs:2:5:3:13 | S | | main.rs:75:19:75:22 | SelfParam | | main.rs:72:5:72:21 | Foo | | main.rs:75:33:77:9 | { ... } | | main.rs:72:5:72:21 | Foo | | main.rs:76:13:76:16 | self | | main.rs:72:5:72:21 | Foo | @@ -270,7 +236,6 @@ 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:18:85:33 | "main.rs::m1::f\\n" | | {EXTERNAL LOCATION} | str | | 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 | @@ -279,7 +244,6 @@ 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:18:92:33 | "main.rs::m1::g\\n" | | {EXTERNAL LOCATION} | str | | 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 | @@ -332,24 +296,6 @@ inferType | main.rs:157:17:157:33 | MyThing {...} | | main.rs:125:5:128:5 | MyThing | | main.rs:157:17:157:33 | MyThing {...} | A | main.rs:132:5:133:14 | S2 | | main.rs:157:30:157:31 | S2 | | main.rs:132:5:133:14 | S2 | -| main.rs:160:18:160:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:160:26:160:26 | x | | main.rs:125:5:128:5 | MyThing | -| main.rs:160:26:160:26 | x | A | main.rs:130:5:131:14 | S1 | -| main.rs:160:26:160:28 | x.a | | main.rs:130:5:131:14 | S1 | -| main.rs:161:18:161:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:161:26:161:26 | y | | main.rs:125:5:128:5 | MyThing | -| main.rs:161:26:161:26 | y | A | main.rs:132:5:133:14 | S2 | -| main.rs:161:26:161:28 | y.a | | main.rs:132:5:133:14 | S2 | -| main.rs:163:18:163:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:163:26:163:26 | x | | main.rs:125:5:128:5 | MyThing | -| main.rs:163:26:163:26 | x | A | main.rs:130:5:131:14 | S1 | -| main.rs:163:26:163:31 | x.m1() | | main.rs:130:5:131:14 | S1 | -| main.rs:164:18:164:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:164:26:164:26 | y | | main.rs:125:5:128:5 | MyThing | -| main.rs:164:26:164:26 | y | A | main.rs:132:5:133:14 | S2 | -| main.rs:164:26:164:31 | y.m1() | | main.rs:125:5:128:5 | MyThing | -| main.rs:164:26:164:31 | y.m1() | A | main.rs:132:5:133:14 | S2 | -| main.rs:164:26:164:33 | ... .a | | main.rs:132:5:133:14 | S2 | | main.rs:166:13:166:13 | x | | main.rs:125:5:128:5 | MyThing | | main.rs:166:13:166:13 | x | A | main.rs:130:5:131:14 | S1 | | main.rs:166:17:166:33 | MyThing {...} | | main.rs:125:5:128:5 | MyThing | @@ -360,14 +306,6 @@ inferType | main.rs:167:17:167:33 | MyThing {...} | | main.rs:125:5:128:5 | MyThing | | main.rs:167:17:167:33 | MyThing {...} | A | main.rs:132:5:133:14 | S2 | | main.rs:167:30:167:31 | S2 | | main.rs:132:5:133:14 | S2 | -| main.rs:169:18:169:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:169:26:169:26 | x | | main.rs:125:5:128:5 | MyThing | -| main.rs:169:26:169:26 | x | A | main.rs:130:5:131:14 | S1 | -| main.rs:169:26:169:31 | x.m2() | | main.rs:130:5:131:14 | S1 | -| main.rs:170:18:170:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:170:26:170:26 | y | | main.rs:125:5:128:5 | MyThing | -| main.rs:170:26:170:26 | y | A | main.rs:132:5:133:14 | S2 | -| main.rs:170:26:170:31 | y.m2() | | main.rs:132:5:133:14 | S2 | | main.rs:194:15:194:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:196:15:196:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:199:9:201:9 | { ... } | | main.rs:193:5:202:5 | Self [trait MyTrait] | @@ -503,22 +441,10 @@ inferType | main.rs:325:24:325:40 | MyThing {...} | | main.rs:175:5:178:5 | MyThing | | main.rs:325:24:325:40 | MyThing {...} | A | main.rs:190:5:191:14 | S3 | | main.rs:325:37:325:38 | S3 | | main.rs:190:5:191:14 | S3 | -| main.rs:329:18:329:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:329:26:329:33 | thing_s1 | | main.rs:175:5:178:5 | MyThing | -| main.rs:329:26:329:33 | thing_s1 | A | main.rs:186:5:187:14 | S1 | -| main.rs:329:26:329:38 | thing_s1.m1() | | main.rs:186:5:187:14 | S1 | -| main.rs:330:18:330:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:330:26:330:33 | thing_s2 | | main.rs:175:5:178:5 | MyThing | -| main.rs:330:26:330:33 | thing_s2 | A | main.rs:188:5:189:14 | S2 | -| main.rs:330:26:330:38 | thing_s2.m1() | | main.rs:175:5:178:5 | MyThing | -| main.rs:330:26:330:38 | thing_s2.m1() | A | main.rs:188:5:189:14 | S2 | -| main.rs:330:26:330:40 | ... .a | | main.rs:188:5:189:14 | S2 | | main.rs:331:13:331:14 | s3 | | main.rs:190:5:191:14 | S3 | | main.rs:331:22:331:29 | thing_s3 | | main.rs:175:5:178:5 | MyThing | | main.rs:331:22:331:29 | thing_s3 | A | main.rs:190:5:191:14 | S3 | | main.rs:331:22:331:34 | thing_s3.m1() | | main.rs:190:5:191:14 | S3 | -| main.rs:332:18:332:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:332:26:332:27 | s3 | | main.rs:190:5:191:14 | S3 | | main.rs:334:13:334:14 | p1 | | main.rs:180:5:184:5 | MyPair | | main.rs:334:13:334:14 | p1 | P1 | main.rs:186:5:187:14 | S1 | | main.rs:334:13:334:14 | p1 | P2 | main.rs:186:5:187:14 | S1 | @@ -527,11 +453,6 @@ inferType | main.rs:334:18:334:42 | MyPair {...} | P2 | main.rs:186:5:187:14 | S1 | | main.rs:334:31:334:32 | S1 | | main.rs:186:5:187:14 | S1 | | main.rs:334:39:334:40 | S1 | | main.rs:186:5:187:14 | S1 | -| main.rs:335:18:335:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:335:26:335:27 | p1 | | main.rs:180:5:184:5 | MyPair | -| main.rs:335:26:335:27 | p1 | P1 | main.rs:186:5:187:14 | S1 | -| main.rs:335:26:335:27 | p1 | P2 | main.rs:186:5:187:14 | S1 | -| main.rs:335:26:335:32 | p1.m1() | | main.rs:186:5:187:14 | S1 | | main.rs:337:13:337:14 | p2 | | main.rs:180:5:184:5 | MyPair | | main.rs:337:13:337:14 | p2 | P1 | main.rs:186:5:187:14 | S1 | | main.rs:337:13:337:14 | p2 | P2 | main.rs:188:5:189:14 | S2 | @@ -540,11 +461,6 @@ inferType | main.rs:337:18:337:42 | MyPair {...} | P2 | main.rs:188:5:189:14 | S2 | | main.rs:337:31:337:32 | S1 | | main.rs:186:5:187:14 | S1 | | main.rs:337:39:337:40 | S2 | | main.rs:188:5:189:14 | S2 | -| main.rs:338:18:338:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:338:26:338:27 | p2 | | main.rs:180:5:184:5 | MyPair | -| main.rs:338:26:338:27 | p2 | P1 | main.rs:186:5:187:14 | S1 | -| main.rs:338:26:338:27 | p2 | P2 | main.rs:188:5:189:14 | S2 | -| main.rs:338:26:338:32 | p2.m1() | | main.rs:190:5:191:14 | S3 | | main.rs:340:13:340:14 | p3 | | main.rs:180:5:184:5 | MyPair | | main.rs:340:13:340:14 | p3 | P1 | main.rs:175:5:178:5 | MyThing | | main.rs:340:13:340:14 | p3 | P1.A | main.rs:186:5:187:14 | S1 | @@ -557,12 +473,6 @@ inferType | main.rs:341:17:341:33 | MyThing {...} | A | main.rs:186:5:187:14 | S1 | | main.rs:341:30:341:31 | S1 | | main.rs:186:5:187:14 | S1 | | main.rs:342:17:342:18 | S3 | | main.rs:190:5:191:14 | S3 | -| main.rs:344:18:344:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:344:26:344:27 | p3 | | main.rs:180:5:184:5 | MyPair | -| main.rs:344:26:344:27 | p3 | P1 | main.rs:175:5:178:5 | MyThing | -| main.rs:344:26:344:27 | p3 | P1.A | main.rs:186:5:187:14 | S1 | -| main.rs:344:26:344:27 | p3 | P2 | main.rs:190:5:191:14 | S3 | -| main.rs:344:26:344:32 | p3.m1() | | main.rs:186:5:187:14 | S1 | | main.rs:347:13:347:13 | a | | main.rs:180:5:184:5 | MyPair | | main.rs:347:13:347:13 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:347:13:347:13 | a | P2 | main.rs:186:5:187:14 | S1 | @@ -576,15 +486,11 @@ inferType | main.rs:348:17:348:17 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:348:17:348:17 | a | P2 | main.rs:186:5:187:14 | S1 | | main.rs:348:17:348:23 | a.fst() | | main.rs:186:5:187:14 | S1 | -| main.rs:349:18:349:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:349:26:349:26 | x | | main.rs:186:5:187:14 | S1 | | main.rs:350:13:350:13 | y | | main.rs:186:5:187:14 | S1 | | main.rs:350:17:350:17 | a | | main.rs:180:5:184:5 | MyPair | | main.rs:350:17:350:17 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:350:17:350:17 | a | P2 | main.rs:186:5:187:14 | S1 | | main.rs:350:17:350:23 | a.snd() | | main.rs:186:5:187:14 | S1 | -| main.rs:351:18:351:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:351:26:351:26 | y | | main.rs:186:5:187:14 | S1 | | main.rs:357:13:357:13 | b | | main.rs:180:5:184:5 | MyPair | | main.rs:357:13:357:13 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:357:13:357:13 | b | P2 | main.rs:186:5:187:14 | S1 | @@ -598,31 +504,21 @@ inferType | main.rs:358:17:358:17 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:358:17:358:17 | b | P2 | main.rs:186:5:187:14 | S1 | | main.rs:358:17:358:23 | b.fst() | | main.rs:186:5:187:14 | S1 | -| main.rs:359:18:359:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:359:26:359:26 | x | | main.rs:186:5:187:14 | S1 | | main.rs:360:13:360:13 | y | | main.rs:188:5:189:14 | S2 | | main.rs:360:17:360:17 | b | | main.rs:180:5:184:5 | MyPair | | main.rs:360:17:360:17 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:360:17:360:17 | b | P2 | main.rs:186:5:187:14 | S1 | | main.rs:360:17:360:23 | b.snd() | | main.rs:188:5:189:14 | S2 | -| main.rs:361:18:361:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:361:26:361:26 | y | | main.rs:188:5:189:14 | S2 | | main.rs:365:13:365:13 | x | | main.rs:186:5:187:14 | S1 | | main.rs:365:17:365:39 | call_trait_m1(...) | | main.rs:186:5:187:14 | S1 | | main.rs:365:31:365:38 | thing_s1 | | main.rs:175:5:178:5 | MyThing | | main.rs:365:31:365:38 | thing_s1 | A | main.rs:186:5:187:14 | S1 | -| main.rs:366:18:366:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:366:26:366:26 | x | | main.rs:186:5:187:14 | S1 | | main.rs:367:13:367:13 | y | | main.rs:175:5:178:5 | MyThing | | main.rs:367:13:367:13 | y | A | main.rs:188:5:189:14 | S2 | | main.rs:367:17:367:39 | call_trait_m1(...) | | main.rs:175:5:178:5 | MyThing | | main.rs:367:17:367:39 | call_trait_m1(...) | A | main.rs:188:5:189:14 | S2 | | main.rs:367:31:367:38 | thing_s2 | | main.rs:175:5:178:5 | MyThing | | main.rs:367:31:367:38 | thing_s2 | A | main.rs:188:5:189:14 | S2 | -| main.rs:368:18:368:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:368:26:368:26 | y | | main.rs:175:5:178:5 | MyThing | -| main.rs:368:26:368:26 | y | A | main.rs:188:5:189:14 | S2 | -| main.rs:368:26:368:28 | y.a | | main.rs:188:5:189:14 | S2 | | main.rs:371:13:371:13 | a | | main.rs:180:5:184:5 | MyPair | | main.rs:371:13:371:13 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:371:13:371:13 | a | P2 | main.rs:186:5:187:14 | S1 | @@ -636,15 +532,11 @@ inferType | main.rs:372:25:372:25 | a | | main.rs:180:5:184:5 | MyPair | | main.rs:372:25:372:25 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:372:25:372:25 | a | P2 | main.rs:186:5:187:14 | S1 | -| main.rs:373:18:373:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:373:26:373:26 | x | | main.rs:186:5:187:14 | S1 | | main.rs:374:13:374:13 | y | | main.rs:186:5:187:14 | S1 | | main.rs:374:17:374:26 | get_snd(...) | | main.rs:186:5:187:14 | S1 | | main.rs:374:25:374:25 | a | | main.rs:180:5:184:5 | MyPair | | main.rs:374:25:374:25 | a | P1 | main.rs:186:5:187:14 | S1 | | main.rs:374:25:374:25 | a | P2 | main.rs:186:5:187:14 | S1 | -| main.rs:375:18:375:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:375:26:375:26 | y | | main.rs:186:5:187:14 | S1 | | main.rs:378:13:378:13 | b | | main.rs:180:5:184:5 | MyPair | | main.rs:378:13:378:13 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:378:13:378:13 | b | P2 | main.rs:186:5:187:14 | S1 | @@ -658,15 +550,11 @@ inferType | main.rs:379:25:379:25 | b | | main.rs:180:5:184:5 | MyPair | | main.rs:379:25:379:25 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:379:25:379:25 | b | P2 | main.rs:186:5:187:14 | S1 | -| main.rs:380:18:380:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:380:26:380:26 | x | | main.rs:186:5:187:14 | S1 | | main.rs:381:13:381:13 | y | | main.rs:188:5:189:14 | S2 | | main.rs:381:17:381:26 | get_snd(...) | | main.rs:188:5:189:14 | S2 | | main.rs:381:25:381:25 | b | | main.rs:180:5:184:5 | MyPair | | main.rs:381:25:381:25 | b | P1 | main.rs:188:5:189:14 | S2 | | main.rs:381:25:381:25 | b | P2 | main.rs:186:5:187:14 | S1 | -| main.rs:382:18:382:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:382:26:382:26 | y | | main.rs:188:5:189:14 | S2 | | main.rs:384:13:384:13 | c | | main.rs:180:5:184:5 | MyPair | | main.rs:384:13:384:13 | c | P1 | main.rs:190:5:191:14 | S3 | | main.rs:384:13:384:13 | c | P2 | main.rs:180:5:184:5 | MyPair | @@ -706,11 +594,9 @@ inferType | main.rs:403:34:403:35 | s1 | | main.rs:397:5:398:14 | S1 | | main.rs:408:26:408:29 | SelfParam | | main.rs:397:5:398:14 | S1 | | main.rs:408:38:410:9 | { ... } | | main.rs:397:5:398:14 | S1 | -| main.rs:409:20:409:31 | "not called" | | {EXTERNAL LOCATION} | str | | main.rs:413:28:413:31 | SelfParam | | main.rs:397:5:398:14 | S1 | | main.rs:413:34:413:35 | s1 | | main.rs:397:5:398:14 | S1 | | main.rs:413:48:415:9 | { ... } | | main.rs:397:5:398:14 | S1 | -| main.rs:414:20:414:31 | "not called" | | {EXTERNAL LOCATION} | str | | main.rs:420:26:420:29 | SelfParam | | main.rs:397:5:398:14 | S1 | | main.rs:420:38:422:9 | { ... } | | main.rs:397:5:398:14 | S1 | | main.rs:421:13:421:16 | self | | main.rs:397:5:398:14 | S1 | @@ -719,38 +605,24 @@ inferType | main.rs:426:13:426:16 | self | | main.rs:397:5:398:14 | S1 | | main.rs:431:13:431:13 | x | | main.rs:397:5:398:14 | S1 | | main.rs:431:17:431:18 | S1 | | main.rs:397:5:398:14 | S1 | -| main.rs:432:18:432:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:432:26:432:26 | x | | main.rs:397:5:398:14 | S1 | -| main.rs:432:26:432:42 | x.common_method() | | main.rs:397:5:398:14 | S1 | -| main.rs:433:18:433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:433:26:433:26 | x | | main.rs:397:5:398:14 | S1 | -| main.rs:433:26:433:44 | x.common_method_2() | | main.rs:397:5:398:14 | S1 | | main.rs:450:19:450:22 | SelfParam | | main.rs:448:5:451:5 | Self [trait FirstTrait] | | main.rs:455:19:455:22 | SelfParam | | main.rs:453:5:456:5 | Self [trait SecondTrait] | | main.rs:458:64:458:64 | x | | main.rs:458:45:458:61 | T | | main.rs:460:13:460:14 | s1 | | main.rs:458:35:458:42 | I | | main.rs:460:18:460:18 | x | | main.rs:458:45:458:61 | T | | main.rs:460:18:460:27 | x.method() | | main.rs:458:35:458:42 | I | -| main.rs:461:18:461:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:461:26:461:27 | s1 | | main.rs:458:35:458:42 | I | | main.rs:464:65:464:65 | x | | main.rs:464:46:464:62 | T | | main.rs:466:13:466:14 | s2 | | main.rs:464:36:464:43 | I | | main.rs:466:18:466:18 | x | | main.rs:464:46:464:62 | T | | main.rs:466:18:466:27 | x.method() | | main.rs:464:36:464:43 | I | -| main.rs:467:18:467:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:467:26:467:27 | s2 | | main.rs:464:36:464:43 | I | | main.rs:470:49:470:49 | x | | main.rs:470:30:470:46 | T | | main.rs:471:13:471:13 | s | | main.rs:440:5:441:14 | S1 | | main.rs:471:17:471:17 | x | | main.rs:470:30:470:46 | T | | main.rs:471:17:471:26 | x.method() | | main.rs:440:5:441:14 | S1 | -| main.rs:472:18:472:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:472:26:472:26 | s | | main.rs:440:5:441:14 | S1 | | main.rs:475:53:475:53 | x | | main.rs:475:34:475:50 | T | | main.rs:476:13:476:13 | s | | main.rs:440:5:441:14 | S1 | | main.rs:476:17:476:17 | x | | main.rs:475:34:475:50 | T | | main.rs:476:17:476:26 | x.method() | | main.rs:440:5:441:14 | S1 | -| main.rs:477:18:477:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:477:26:477:26 | s | | main.rs:440:5:441:14 | S1 | | main.rs:481:16:481:19 | SelfParam | | main.rs:480:5:484:5 | Self [trait Pair] | | main.rs:483:16:483:19 | SelfParam | | main.rs:480:5:484:5 | Self [trait Pair] | | main.rs:486:58:486:58 | x | | main.rs:486:41:486:55 | T | @@ -761,9 +633,6 @@ inferType | main.rs:489:13:489:14 | s2 | | main.rs:443:5:444:14 | S2 | | main.rs:489:18:489:18 | y | | main.rs:486:41:486:55 | T | | main.rs:489:18:489:24 | y.snd() | | main.rs:443:5:444:14 | S2 | -| main.rs:490:18:490:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:490:32:490:33 | s1 | | main.rs:440:5:441:14 | S1 | -| main.rs:490:36:490:37 | s2 | | main.rs:443:5:444:14 | S2 | | main.rs:493:69:493:69 | x | | main.rs:493:52:493:66 | T | | main.rs:493:75:493:75 | y | | main.rs:493:52:493:66 | T | | main.rs:495:13:495:14 | s1 | | main.rs:440:5:441:14 | S1 | @@ -772,9 +641,6 @@ inferType | main.rs:496:13:496:14 | s2 | | main.rs:493:41:493:49 | T2 | | main.rs:496:18:496:18 | y | | main.rs:493:52:493:66 | T | | main.rs:496:18:496:24 | y.snd() | | main.rs:493:41:493:49 | T2 | -| main.rs:497:18:497:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:497:32:497:33 | s1 | | main.rs:440:5:441:14 | S1 | -| main.rs:497:36:497:37 | s2 | | main.rs:493:41:493:49 | T2 | | main.rs:500:50:500:50 | x | | main.rs:500:41:500:47 | T | | main.rs:500:56:500:56 | y | | main.rs:500:41:500:47 | T | | main.rs:502:13:502:14 | s1 | | {EXTERNAL LOCATION} | bool | @@ -783,9 +649,6 @@ inferType | main.rs:503:13:503:14 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:503:18:503:18 | y | | main.rs:500:41:500:47 | T | | main.rs:503:18:503:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | -| main.rs:504:18:504:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:504:32:504:33 | s1 | | {EXTERNAL LOCATION} | bool | -| main.rs:504:36:504:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:507:54:507:54 | x | | main.rs:507:41:507:51 | T | | main.rs:507:60:507:60 | y | | main.rs:507:41:507:51 | T | | main.rs:509:13:509:14 | s1 | | {EXTERNAL LOCATION} | u8 | @@ -794,9 +657,6 @@ inferType | main.rs:510:13:510:14 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:510:18:510:18 | y | | main.rs:507:41:507:51 | T | | main.rs:510:18:510:24 | y.snd() | | {EXTERNAL LOCATION} | i64 | -| main.rs:511:18:511:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:511:32:511:33 | s1 | | {EXTERNAL LOCATION} | u8 | -| main.rs:511:36:511:37 | s2 | | {EXTERNAL LOCATION} | i64 | | main.rs:527:15:527:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:529:15:529:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:532:9:534:9 | { ... } | | main.rs:526:19:526:19 | A | @@ -829,14 +689,6 @@ inferType | main.rs:555:17:555:33 | MyThing {...} | | main.rs:516:5:519:5 | MyThing | | main.rs:555:17:555:33 | MyThing {...} | T | main.rs:523:5:524:14 | S2 | | main.rs:555:30:555:31 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:557:18:557:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:557:26:557:26 | x | | main.rs:516:5:519:5 | MyThing | -| main.rs:557:26:557:26 | x | T | main.rs:521:5:522:14 | S1 | -| main.rs:557:26:557:31 | x.m1() | | main.rs:521:5:522:14 | S1 | -| main.rs:558:18:558:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:558:26:558:26 | y | | main.rs:516:5:519:5 | MyThing | -| main.rs:558:26:558:26 | y | T | main.rs:523:5:524:14 | S2 | -| main.rs:558:26:558:31 | y.m1() | | main.rs:523:5:524:14 | S2 | | main.rs:560:13:560:13 | x | | main.rs:516:5:519:5 | MyThing | | main.rs:560:13:560:13 | x | T | main.rs:521:5:522:14 | S1 | | main.rs:560:17:560:33 | MyThing {...} | | main.rs:516:5:519:5 | MyThing | @@ -847,14 +699,6 @@ inferType | main.rs:561:17:561:33 | MyThing {...} | | main.rs:516:5:519:5 | MyThing | | main.rs:561:17:561:33 | MyThing {...} | T | main.rs:523:5:524:14 | S2 | | main.rs:561:30:561:31 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:563:18:563:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:563:26:563:26 | x | | main.rs:516:5:519:5 | MyThing | -| main.rs:563:26:563:26 | x | T | main.rs:521:5:522:14 | S1 | -| main.rs:563:26:563:31 | x.m2() | | main.rs:521:5:522:14 | S1 | -| main.rs:564:18:564:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:564:26:564:26 | y | | main.rs:516:5:519:5 | MyThing | -| main.rs:564:26:564:26 | y | T | main.rs:523:5:524:14 | S2 | -| main.rs:564:26:564:31 | y.m2() | | main.rs:523:5:524:14 | S2 | | main.rs:566:13:566:14 | x2 | | main.rs:516:5:519:5 | MyThing | | main.rs:566:13:566:14 | x2 | T | main.rs:521:5:522:14 | S1 | | main.rs:566:18:566:34 | MyThing {...} | | main.rs:516:5:519:5 | MyThing | @@ -865,14 +709,6 @@ inferType | main.rs:567:18:567:34 | MyThing {...} | | main.rs:516:5:519:5 | MyThing | | main.rs:567:18:567:34 | MyThing {...} | T | main.rs:523:5:524:14 | S2 | | main.rs:567:31:567:32 | S2 | | main.rs:523:5:524:14 | S2 | -| main.rs:569:18:569:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:569:26:569:42 | call_trait_m1(...) | | main.rs:521:5:522:14 | S1 | -| main.rs:569:40:569:41 | x2 | | main.rs:516:5:519:5 | MyThing | -| main.rs:569:40:569:41 | x2 | T | main.rs:521:5:522:14 | S1 | -| main.rs:570:18:570:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:570:26:570:42 | call_trait_m1(...) | | main.rs:523:5:524:14 | S2 | -| main.rs:570:40:570:41 | y2 | | main.rs:516:5:519:5 | MyThing | -| main.rs:570:40:570:41 | y2 | T | main.rs:523:5:524:14 | S2 | | main.rs:572:13:572:14 | x3 | | main.rs:516:5:519:5 | MyThing | | main.rs:572:13:572:14 | x3 | T | main.rs:516:5:519:5 | MyThing | | main.rs:572:13:572:14 | x3 | T.T | main.rs:521:5:522:14 | S1 | @@ -896,15 +732,11 @@ inferType | main.rs:579:37:579:38 | x3 | | main.rs:516:5:519:5 | MyThing | | main.rs:579:37:579:38 | x3 | T | main.rs:516:5:519:5 | MyThing | | main.rs:579:37:579:38 | x3 | T.T | main.rs:521:5:522:14 | S1 | -| main.rs:580:18:580:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:580:26:580:26 | a | | main.rs:521:5:522:14 | S1 | | main.rs:581:13:581:13 | b | | main.rs:523:5:524:14 | S2 | | main.rs:581:17:581:39 | call_trait_thing_m1(...) | | main.rs:523:5:524:14 | S2 | | main.rs:581:37:581:38 | y3 | | main.rs:516:5:519:5 | MyThing | | main.rs:581:37:581:38 | y3 | T | main.rs:516:5:519:5 | MyThing | | main.rs:581:37:581:38 | y3 | T.T | main.rs:523:5:524:14 | S2 | -| main.rs:582:18:582:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:582:26:582:26 | b | | main.rs:523:5:524:14 | S2 | | main.rs:593:19:593:22 | SelfParam | | main.rs:587:5:590:5 | Wrapper | | main.rs:593:19:593:22 | SelfParam | A | main.rs:592:10:592:10 | A | | main.rs:593:30:595:9 | { ... } | | main.rs:592:10:592:10 | A | @@ -977,45 +809,18 @@ inferType | main.rs:700:13:700:14 | S2 | | main.rs:641:5:642:14 | S2 | | main.rs:705:13:705:14 | x1 | | main.rs:638:5:639:13 | S | | main.rs:705:18:705:18 | S | | main.rs:638:5:639:13 | S | -| main.rs:707:18:707:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:707:26:707:27 | x1 | | main.rs:638:5:639:13 | S | -| main.rs:707:26:707:32 | x1.m1() | | main.rs:644:5:645:14 | AT | | main.rs:709:13:709:14 | x2 | | main.rs:638:5:639:13 | S | | main.rs:709:18:709:18 | S | | main.rs:638:5:639:13 | S | | main.rs:711:13:711:13 | y | | main.rs:644:5:645:14 | AT | | main.rs:711:17:711:18 | x2 | | main.rs:638:5:639:13 | S | | main.rs:711:17:711:23 | x2.m2() | | main.rs:644:5:645:14 | AT | -| main.rs:712:18:712:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:712:26:712:26 | y | | main.rs:644:5:645:14 | AT | | main.rs:714:13:714:14 | x3 | | main.rs:638:5:639:13 | S | | main.rs:714:18:714:18 | S | | main.rs:638:5:639:13 | S | -| main.rs:716:18:716:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:716:26:716:27 | x3 | | main.rs:638:5:639:13 | S | -| main.rs:716:26:716:34 | x3.put(...) | | main.rs:587:5:590:5 | Wrapper | -| main.rs:716:26:716:34 | x3.put(...) | A | {EXTERNAL LOCATION} | i32 | -| main.rs:716:26:716:43 | ... .unwrap() | | {EXTERNAL LOCATION} | i32 | -| main.rs:716:33:716:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:719:18:719:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:719:26:719:27 | x3 | | main.rs:638:5:639:13 | S | -| main.rs:719:26:719:40 | x3.putTwo(...) | | main.rs:587:5:590:5 | Wrapper | -| main.rs:719:26:719:40 | x3.putTwo(...) | A | main.rs:658:36:658:50 | AssociatedParam | -| main.rs:719:26:719:49 | ... .unwrap() | | main.rs:658:36:658:50 | AssociatedParam | -| main.rs:719:36:719:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:719:39:719:39 | 3 | | {EXTERNAL LOCATION} | i32 | | main.rs:721:20:721:20 | S | | main.rs:638:5:639:13 | S | -| main.rs:722:18:722:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:724:13:724:14 | x5 | | main.rs:641:5:642:14 | S2 | | main.rs:724:18:724:19 | S2 | | main.rs:641:5:642:14 | S2 | -| main.rs:725:18:725:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:725:26:725:27 | x5 | | main.rs:641:5:642:14 | S2 | -| main.rs:725:26:725:32 | x5.m1() | | main.rs:587:5:590:5 | Wrapper | -| main.rs:725:26:725:32 | x5.m1() | A | main.rs:641:5:642:14 | S2 | | main.rs:726:13:726:14 | x6 | | main.rs:641:5:642:14 | S2 | | main.rs:726:18:726:19 | S2 | | main.rs:641:5:642:14 | S2 | -| main.rs:727:18:727:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:727:26:727:27 | x6 | | main.rs:641:5:642:14 | S2 | -| main.rs:727:26:727:32 | x6.m2() | | main.rs:587:5:590:5 | Wrapper | -| main.rs:727:26:727:32 | x6.m2() | A | main.rs:641:5:642:14 | S2 | | main.rs:729:13:729:22 | assoc_zero | | main.rs:644:5:645:14 | AT | | main.rs:729:26:729:27 | AT | | main.rs:644:5:645:14 | AT | | main.rs:729:26:729:38 | AT.get_zero() | | main.rs:644:5:645:14 | AT | @@ -1045,20 +850,11 @@ inferType | main.rs:758:17:758:36 | ...::C2 {...} | | main.rs:736:5:740:5 | MyEnum | | main.rs:758:17:758:36 | ...::C2 {...} | A | main.rs:744:5:745:14 | S2 | | main.rs:758:33:758:34 | S2 | | main.rs:744:5:745:14 | S2 | -| main.rs:760:18:760:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:760:26:760:26 | x | | main.rs:736:5:740:5 | MyEnum | -| main.rs:760:26:760:26 | x | A | main.rs:742:5:743:14 | S1 | -| main.rs:760:26:760:31 | x.m1() | | main.rs:742:5:743:14 | S1 | -| main.rs:761:18:761:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:761:26:761:26 | y | | main.rs:736:5:740:5 | MyEnum | -| main.rs:761:26:761:26 | y | A | main.rs:744:5:745:14 | S2 | -| main.rs:761:26:761:31 | y.m1() | | main.rs:744:5:745:14 | S2 | | main.rs:783:15:783:18 | SelfParam | | main.rs:781:5:784:5 | Self [trait MyTrait1] | | main.rs:788:15:788:18 | SelfParam | | main.rs:786:5:798:5 | Self [trait MyTrait2] | | main.rs:791:9:797:9 | { ... } | | main.rs:786:20:786:22 | Tr2 | | main.rs:792:13:796:13 | if ... {...} else {...} | | main.rs:786:20:786:22 | Tr2 | | main.rs:792:16:792:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:792:16:792:20 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:792:20:792:20 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:792:22:794:13 | { ... } | | main.rs:786:20:786:22 | Tr2 | | main.rs:793:17:793:20 | self | | main.rs:786:5:798:5 | Self [trait MyTrait2] | @@ -1070,7 +866,6 @@ inferType | main.rs:805:9:811:9 | { ... } | | main.rs:800:20:800:22 | Tr3 | | main.rs:806:13:810:13 | if ... {...} else {...} | | main.rs:800:20:800:22 | Tr3 | | main.rs:806:16:806:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:806:16:806:20 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:806:20:806:20 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:806:22:808:13 | { ... } | | main.rs:800:20:800:22 | Tr3 | | main.rs:807:17:807:20 | self | | main.rs:800:5:812:5 | Self [trait MyTrait3] | @@ -1107,9 +902,6 @@ inferType | main.rs:840:17:840:17 | x | | main.rs:838:39:838:53 | T | | main.rs:840:17:840:22 | x.m1() | | main.rs:766:5:769:5 | MyThing | | main.rs:840:17:840:22 | x.m1() | A | main.rs:776:5:777:14 | S1 | -| main.rs:841:18:841:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:841:26:841:26 | a | | main.rs:766:5:769:5 | MyThing | -| main.rs:841:26:841:26 | a | A | main.rs:776:5:777:14 | S1 | | main.rs:845:13:845:13 | x | | main.rs:766:5:769:5 | MyThing | | main.rs:845:13:845:13 | x | A | main.rs:776:5:777:14 | S1 | | main.rs:845:17:845:33 | MyThing {...} | | main.rs:766:5:769:5 | MyThing | @@ -1120,14 +912,6 @@ inferType | main.rs:846:17:846:33 | MyThing {...} | | main.rs:766:5:769:5 | MyThing | | main.rs:846:17:846:33 | MyThing {...} | A | main.rs:778:5:779:14 | S2 | | main.rs:846:30:846:31 | S2 | | main.rs:778:5:779:14 | S2 | -| main.rs:848:18:848:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:848:26:848:26 | x | | main.rs:766:5:769:5 | MyThing | -| main.rs:848:26:848:26 | x | A | main.rs:776:5:777:14 | S1 | -| main.rs:848:26:848:31 | x.m1() | | main.rs:776:5:777:14 | S1 | -| main.rs:849:18:849:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:849:26:849:26 | y | | main.rs:766:5:769:5 | MyThing | -| main.rs:849:26:849:26 | y | A | main.rs:778:5:779:14 | S2 | -| main.rs:849:26:849:31 | y.m1() | | main.rs:778:5:779:14 | S2 | | main.rs:851:13:851:13 | x | | main.rs:766:5:769:5 | MyThing | | main.rs:851:13:851:13 | x | A | main.rs:776:5:777:14 | S1 | | main.rs:851:17:851:33 | MyThing {...} | | main.rs:766:5:769:5 | MyThing | @@ -1138,14 +922,6 @@ inferType | main.rs:852:17:852:33 | MyThing {...} | | main.rs:766:5:769:5 | MyThing | | main.rs:852:17:852:33 | MyThing {...} | A | main.rs:778:5:779:14 | S2 | | main.rs:852:30:852:31 | S2 | | main.rs:778:5:779:14 | S2 | -| main.rs:854:18:854:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:854:26:854:26 | x | | main.rs:766:5:769:5 | MyThing | -| main.rs:854:26:854:26 | x | A | main.rs:776:5:777:14 | S1 | -| main.rs:854:26:854:31 | x.m2() | | main.rs:776:5:777:14 | S1 | -| main.rs:855:18:855:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:855:26:855:26 | y | | main.rs:766:5:769:5 | MyThing | -| main.rs:855:26:855:26 | y | A | main.rs:778:5:779:14 | S2 | -| main.rs:855:26:855:31 | y.m2() | | main.rs:778:5:779:14 | S2 | | main.rs:857:13:857:13 | x | | main.rs:771:5:774:5 | MyThing2 | | main.rs:857:13:857:13 | x | A | main.rs:776:5:777:14 | S1 | | main.rs:857:17:857:34 | MyThing2 {...} | | main.rs:771:5:774:5 | MyThing2 | @@ -1156,14 +932,6 @@ inferType | main.rs:858:17:858:34 | MyThing2 {...} | | main.rs:771:5:774:5 | MyThing2 | | main.rs:858:17:858:34 | MyThing2 {...} | A | main.rs:778:5:779:14 | S2 | | main.rs:858:31:858:32 | S2 | | main.rs:778:5:779:14 | S2 | -| main.rs:860:18:860:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:860:26:860:26 | x | | main.rs:771:5:774:5 | MyThing2 | -| main.rs:860:26:860:26 | x | A | main.rs:776:5:777:14 | S1 | -| main.rs:860:26:860:31 | x.m3() | | main.rs:776:5:777:14 | S1 | -| main.rs:861:18:861:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:861:26:861:26 | y | | main.rs:771:5:774:5 | MyThing2 | -| main.rs:861:26:861:26 | y | A | main.rs:778:5:779:14 | S2 | -| main.rs:861:26:861:31 | y.m3() | | main.rs:778:5:779:14 | S2 | | main.rs:863:13:863:13 | x | | main.rs:766:5:769:5 | MyThing | | main.rs:863:13:863:13 | x | A | main.rs:776:5:777:14 | S1 | | main.rs:863:17:863:33 | MyThing {...} | | main.rs:766:5:769:5 | MyThing | @@ -1199,28 +967,10 @@ inferType | main.rs:899:9:899:16 | x.into() | | main.rs:895:17:895:18 | T2 | | main.rs:903:13:903:13 | x | | main.rs:875:5:876:14 | S1 | | main.rs:903:17:903:18 | S1 | | main.rs:875:5:876:14 | S1 | -| main.rs:904:18:904:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:904:26:904:31 | id(...) | | file://:0:0:0:0 | & | -| main.rs:904:26:904:31 | id(...) | &T | main.rs:875:5:876:14 | S1 | -| main.rs:904:29:904:30 | &x | | file://:0:0:0:0 | & | -| main.rs:904:29:904:30 | &x | &T | main.rs:875:5:876:14 | S1 | -| main.rs:904:30:904:30 | x | | main.rs:875:5:876:14 | S1 | | main.rs:906:13:906:13 | x | | main.rs:875:5:876:14 | S1 | | main.rs:906:17:906:18 | S1 | | main.rs:875:5:876:14 | S1 | -| main.rs:907:18:907:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:907:26:907:37 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:907:26:907:37 | id::<...>(...) | &T | main.rs:875:5:876:14 | S1 | -| main.rs:907:35:907:36 | &x | | file://:0:0:0:0 | & | -| main.rs:907:35:907:36 | &x | &T | main.rs:875:5:876:14 | S1 | -| main.rs:907:36:907:36 | x | | main.rs:875:5:876:14 | S1 | | main.rs:909:13:909:13 | x | | main.rs:875:5:876:14 | S1 | | main.rs:909:17:909:18 | S1 | | main.rs:875:5:876:14 | S1 | -| main.rs:910:18:910:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:910:26:910:44 | id::<...>(...) | | file://:0:0:0:0 | & | -| main.rs:910:26:910:44 | id::<...>(...) | &T | main.rs:875:5:876:14 | S1 | -| main.rs:910:42:910:43 | &x | | file://:0:0:0:0 | & | -| main.rs:910:42:910:43 | &x | &T | main.rs:875:5:876:14 | S1 | -| main.rs:910:43:910:43 | x | | main.rs:875:5:876:14 | S1 | | main.rs:912:13:912:13 | x | | main.rs:875:5:876:14 | S1 | | main.rs:912:17:912:18 | S1 | | main.rs:875:5:876:14 | S1 | | main.rs:913:9:913:25 | into::<...>(...) | | main.rs:878:5:879:14 | S2 | @@ -1239,13 +989,7 @@ inferType | main.rs:931:19:931:22 | self | Fst | main.rs:929:10:929:12 | Fst | | main.rs:931:19:931:22 | self | Snd | main.rs:929:15:929:17 | Snd | | main.rs:932:43:932:82 | MacroExpr | | main.rs:929:15:929:17 | Snd | -| main.rs:932:50:932:81 | "PairNone has no second elemen... | | {EXTERNAL LOCATION} | str | -| main.rs:932:50:932:81 | MacroExpr | | main.rs:929:15:929:17 | Snd | -| main.rs:932:50:932:81 | { ... } | | main.rs:929:15:929:17 | Snd | | main.rs:933:43:933:81 | MacroExpr | | main.rs:929:15:929:17 | Snd | -| main.rs:933:50:933:80 | "PairFst has no second element... | | {EXTERNAL LOCATION} | str | -| main.rs:933:50:933:80 | MacroExpr | | main.rs:929:15:929:17 | Snd | -| main.rs:933:50:933:80 | { ... } | | main.rs:929:15:929:17 | Snd | | main.rs:934:37:934:39 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:934:45:934:47 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:935:41:935:43 | snd | | main.rs:929:15:929:17 | Snd | @@ -1265,8 +1009,6 @@ inferType | main.rs:962:17:962:29 | t.unwrapSnd() | Fst | main.rs:943:5:944:14 | S2 | | main.rs:962:17:962:29 | t.unwrapSnd() | Snd | main.rs:946:5:947:14 | S3 | | main.rs:962:17:962:41 | ... .unwrapSnd() | | main.rs:946:5:947:14 | S3 | -| main.rs:963:18:963:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:963:26:963:26 | x | | main.rs:946:5:947:14 | S3 | | main.rs:968:13:968:14 | p1 | | main.rs:921:5:927:5 | PairOption | | main.rs:968:13:968:14 | p1 | Fst | main.rs:940:5:941:14 | S1 | | main.rs:968:13:968:14 | p1 | Snd | main.rs:943:5:944:14 | S2 | @@ -1275,20 +1017,12 @@ inferType | main.rs:968:26:968:53 | ...::PairBoth(...) | Snd | main.rs:943:5:944:14 | S2 | | main.rs:968:47:968:48 | S1 | | main.rs:940:5:941:14 | S1 | | main.rs:968:51:968:52 | S2 | | main.rs:943:5:944:14 | S2 | -| main.rs:969:18:969:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:969:26:969:27 | p1 | | main.rs:921:5:927:5 | PairOption | -| main.rs:969:26:969:27 | p1 | Fst | main.rs:940:5:941:14 | S1 | -| main.rs:969:26:969:27 | p1 | Snd | main.rs:943:5:944:14 | S2 | | main.rs:972:13:972:14 | p2 | | main.rs:921:5:927:5 | PairOption | | main.rs:972:13:972:14 | p2 | Fst | main.rs:940:5:941:14 | S1 | | main.rs:972:13:972:14 | p2 | Snd | main.rs:943:5:944:14 | S2 | | main.rs:972:26:972:47 | ...::PairNone(...) | | main.rs:921:5:927:5 | PairOption | | main.rs:972:26:972:47 | ...::PairNone(...) | Fst | main.rs:940:5:941:14 | S1 | | main.rs:972:26:972:47 | ...::PairNone(...) | Snd | main.rs:943:5:944:14 | S2 | -| main.rs:973:18:973:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:973:26:973:27 | p2 | | main.rs:921:5:927:5 | PairOption | -| main.rs:973:26:973:27 | p2 | Fst | main.rs:940:5:941:14 | S1 | -| main.rs:973:26:973:27 | p2 | Snd | main.rs:943:5:944:14 | S2 | | main.rs:976:13:976:14 | p3 | | main.rs:921:5:927:5 | PairOption | | main.rs:976:13:976:14 | p3 | Fst | main.rs:943:5:944:14 | S2 | | main.rs:976:13:976:14 | p3 | Snd | main.rs:946:5:947:14 | S3 | @@ -1296,20 +1030,12 @@ inferType | main.rs:976:34:976:56 | ...::PairSnd(...) | Fst | main.rs:943:5:944:14 | S2 | | main.rs:976:34:976:56 | ...::PairSnd(...) | Snd | main.rs:946:5:947:14 | S3 | | main.rs:976:54:976:55 | S3 | | main.rs:946:5:947:14 | S3 | -| main.rs:977:18:977:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:977:26:977:27 | p3 | | main.rs:921:5:927:5 | PairOption | -| main.rs:977:26:977:27 | p3 | Fst | main.rs:943:5:944:14 | S2 | -| main.rs:977:26:977:27 | p3 | Snd | main.rs:946:5:947:14 | S3 | | main.rs:980:13:980:14 | p3 | | main.rs:921:5:927:5 | PairOption | | main.rs:980:13:980:14 | p3 | Fst | main.rs:943:5:944:14 | S2 | | main.rs:980:13:980:14 | p3 | Snd | main.rs:946:5:947:14 | S3 | | main.rs:980:35:980:56 | ...::PairNone(...) | | main.rs:921:5:927:5 | PairOption | | main.rs:980:35:980:56 | ...::PairNone(...) | Fst | main.rs:943:5:944:14 | S2 | | main.rs:980:35:980:56 | ...::PairNone(...) | Snd | main.rs:946:5:947:14 | S3 | -| main.rs:981:18:981:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:981:26:981:27 | p3 | | main.rs:921:5:927:5 | PairOption | -| main.rs:981:26:981:27 | p3 | Fst | main.rs:943:5:944:14 | S2 | -| main.rs:981:26:981:27 | p3 | Snd | main.rs:946:5:947:14 | S3 | | main.rs:983:11:983:54 | ...::PairSnd(...) | | main.rs:921:5:927:5 | PairOption | | main.rs:983:11:983:54 | ...::PairSnd(...) | Fst | main.rs:943:5:944:14 | S2 | | main.rs:983:11:983:54 | ...::PairSnd(...) | Snd | main.rs:921:5:927:5 | PairOption | @@ -1354,8 +1080,6 @@ inferType | main.rs:1018:40:1018:40 | x | T | main.rs:1014:10:1014:10 | T | | main.rs:1027:13:1027:14 | x1 | | main.rs:988:5:992:5 | MyOption | | main.rs:1027:18:1027:37 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | -| main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1028:26:1028:27 | x1 | | main.rs:988:5:992:5 | MyOption | | main.rs:1030:13:1030:18 | mut x2 | | main.rs:988:5:992:5 | MyOption | | main.rs:1030:13:1030:18 | mut x2 | T | main.rs:1023:5:1024:13 | S | | main.rs:1030:22:1030:36 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | @@ -1363,15 +1087,10 @@ inferType | main.rs:1031:9:1031:10 | x2 | | main.rs:988:5:992:5 | MyOption | | main.rs:1031:9:1031:10 | x2 | T | main.rs:1023:5:1024:13 | S | | main.rs:1031:16:1031:16 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1032:18:1032:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1032:26:1032:27 | x2 | | main.rs:988:5:992:5 | MyOption | -| main.rs:1032:26:1032:27 | x2 | T | main.rs:1023:5:1024:13 | S | | main.rs:1034:13:1034:18 | mut x3 | | main.rs:988:5:992:5 | MyOption | | main.rs:1034:22:1034:36 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1035:9:1035:10 | x3 | | main.rs:988:5:992:5 | MyOption | | main.rs:1035:21:1035:21 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1036:18:1036:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1036:26:1036:27 | x3 | | main.rs:988:5:992:5 | MyOption | | main.rs:1038:13:1038:18 | mut x4 | | main.rs:988:5:992:5 | MyOption | | main.rs:1038:13:1038:18 | mut x4 | T | main.rs:1023:5:1024:13 | S | | main.rs:1038:22:1038:36 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | @@ -1382,9 +1101,6 @@ inferType | main.rs:1039:28:1039:29 | x4 | | main.rs:988:5:992:5 | MyOption | | main.rs:1039:28:1039:29 | x4 | T | main.rs:1023:5:1024:13 | S | | main.rs:1039:32:1039:32 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1040:18:1040:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1040:26:1040:27 | x4 | | main.rs:988:5:992:5 | MyOption | -| main.rs:1040:26:1040:27 | x4 | T | main.rs:1023:5:1024:13 | S | | main.rs:1042:13:1042:14 | x5 | | main.rs:988:5:992:5 | MyOption | | main.rs:1042:13:1042:14 | x5 | T | main.rs:988:5:992:5 | MyOption | | main.rs:1042:13:1042:14 | x5 | T.T | main.rs:1023:5:1024:13 | S | @@ -1393,12 +1109,6 @@ inferType | main.rs:1042:18:1042:58 | ...::MySome(...) | T.T | main.rs:1023:5:1024:13 | S | | main.rs:1042:35:1042:57 | ...::MyNone(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1042:35:1042:57 | ...::MyNone(...) | T | main.rs:1023:5:1024:13 | S | -| main.rs:1043:18:1043:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1043:26:1043:27 | x5 | | main.rs:988:5:992:5 | MyOption | -| main.rs:1043:26:1043:27 | x5 | T | main.rs:988:5:992:5 | MyOption | -| main.rs:1043:26:1043:27 | x5 | T.T | main.rs:1023:5:1024:13 | S | -| main.rs:1043:26:1043:37 | x5.flatten() | | main.rs:988:5:992:5 | MyOption | -| main.rs:1043:26:1043:37 | x5.flatten() | T | main.rs:1023:5:1024:13 | S | | main.rs:1045:13:1045:14 | x6 | | main.rs:988:5:992:5 | MyOption | | main.rs:1045:13:1045:14 | x6 | T | main.rs:988:5:992:5 | MyOption | | main.rs:1045:13:1045:14 | x6 | T.T | main.rs:1023:5:1024:13 | S | @@ -1407,18 +1117,11 @@ inferType | main.rs:1045:18:1045:58 | ...::MySome(...) | T.T | main.rs:1023:5:1024:13 | S | | main.rs:1045:35:1045:57 | ...::MyNone(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1045:35:1045:57 | ...::MyNone(...) | T | main.rs:1023:5:1024:13 | S | -| main.rs:1046:18:1046:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1046:26:1046:61 | ...::flatten(...) | | main.rs:988:5:992:5 | MyOption | -| main.rs:1046:26:1046:61 | ...::flatten(...) | T | main.rs:1023:5:1024:13 | S | -| main.rs:1046:59:1046:60 | x6 | | main.rs:988:5:992:5 | MyOption | -| main.rs:1046:59:1046:60 | x6 | T | main.rs:988:5:992:5 | MyOption | -| main.rs:1046:59:1046:60 | x6 | T.T | main.rs:1023:5:1024:13 | S | | main.rs:1049:13:1049:19 | from_if | | main.rs:988:5:992:5 | MyOption | | main.rs:1049:13:1049:19 | from_if | T | main.rs:1023:5:1024:13 | S | | main.rs:1049:23:1053:9 | if ... {...} else {...} | | main.rs:988:5:992:5 | MyOption | | main.rs:1049:23:1053:9 | if ... {...} else {...} | T | main.rs:1023:5:1024:13 | S | | main.rs:1049:26:1049:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1049:26:1049:30 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:1049:30:1049:30 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1049:32:1051:9 | { ... } | | main.rs:988:5:992:5 | MyOption | | main.rs:1049:32:1051:9 | { ... } | T | main.rs:1023:5:1024:13 | S | @@ -1429,15 +1132,11 @@ inferType | main.rs:1052:13:1052:31 | ...::MySome(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1052:13:1052:31 | ...::MySome(...) | T | main.rs:1023:5:1024:13 | S | | main.rs:1052:30:1052:30 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1054:18:1054:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1054:26:1054:32 | from_if | | main.rs:988:5:992:5 | MyOption | -| main.rs:1054:26:1054:32 | from_if | T | main.rs:1023:5:1024:13 | S | | main.rs:1057:13:1057:22 | from_match | | main.rs:988:5:992:5 | MyOption | | main.rs:1057:13:1057:22 | from_match | T | main.rs:1023:5:1024:13 | S | | main.rs:1057:26:1060:9 | match ... { ... } | | main.rs:988:5:992:5 | MyOption | | main.rs:1057:26:1060:9 | match ... { ... } | T | main.rs:1023:5:1024:13 | S | | main.rs:1057:32:1057:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1057:32:1057:36 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:1057:36:1057:36 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1058:13:1058:16 | true | | {EXTERNAL LOCATION} | bool | | main.rs:1058:21:1058:38 | ...::MyNone(...) | | main.rs:988:5:992:5 | MyOption | @@ -1446,24 +1145,17 @@ inferType | main.rs:1059:22:1059:40 | ...::MySome(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1059:22:1059:40 | ...::MySome(...) | T | main.rs:1023:5:1024:13 | S | | main.rs:1059:39:1059:39 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1061:18:1061:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1061:26:1061:35 | from_match | | main.rs:988:5:992:5 | MyOption | -| main.rs:1061:26:1061:35 | from_match | T | main.rs:1023:5:1024:13 | S | | main.rs:1064:13:1064:21 | from_loop | | main.rs:988:5:992:5 | MyOption | | main.rs:1064:13:1064:21 | from_loop | T | main.rs:1023:5:1024:13 | S | | main.rs:1064:25:1069:9 | loop { ... } | | main.rs:988:5:992:5 | MyOption | | main.rs:1064:25:1069:9 | loop { ... } | T | main.rs:1023:5:1024:13 | S | | main.rs:1065:16:1065:16 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1065:16:1065:20 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:1065:20:1065:20 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1066:23:1066:40 | ...::MyNone(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1066:23:1066:40 | ...::MyNone(...) | T | main.rs:1023:5:1024:13 | S | | main.rs:1068:19:1068:37 | ...::MySome(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1068:19:1068:37 | ...::MySome(...) | T | main.rs:1023:5:1024:13 | S | | main.rs:1068:36:1068:36 | S | | main.rs:1023:5:1024:13 | S | -| main.rs:1070:18:1070:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1070:26:1070:34 | from_loop | | main.rs:988:5:992:5 | MyOption | -| main.rs:1070:26:1070:34 | from_loop | T | main.rs:1023:5:1024:13 | S | | main.rs:1088:15:1088:18 | SelfParam | | main.rs:1076:5:1077:19 | S | | main.rs:1088:15:1088:18 | SelfParam | T | main.rs:1087:10:1087:10 | T | | main.rs:1088:26:1090:9 | { ... } | | main.rs:1087:10:1087:10 | T | @@ -1542,46 +1234,16 @@ inferType | main.rs:1120:18:1120:22 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1120:18:1120:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1120:20:1120:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1121:18:1121:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1121:26:1121:27 | x1 | | main.rs:1076:5:1077:19 | S | -| main.rs:1121:26:1121:27 | x1 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1121:26:1121:32 | x1.m1() | | main.rs:1079:5:1080:14 | S2 | | main.rs:1123:13:1123:14 | x2 | | main.rs:1076:5:1077:19 | S | | main.rs:1123:13:1123:14 | x2 | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1123:18:1123:22 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1123:18:1123:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1123:20:1123:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:18:1125:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1125:26:1125:27 | x2 | | main.rs:1076:5:1077:19 | S | -| main.rs:1125:26:1125:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1125:26:1125:32 | x2.m2() | | file://:0:0:0:0 | & | -| main.rs:1125:26:1125:32 | x2.m2() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1126:18:1126:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1126:26:1126:27 | x2 | | main.rs:1076:5:1077:19 | S | -| main.rs:1126:26:1126:27 | x2 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1126:26:1126:32 | x2.m3() | | file://:0:0:0:0 | & | -| main.rs:1126:26:1126:32 | x2.m3() | &T | main.rs:1079:5:1080:14 | S2 | | main.rs:1128:13:1128:14 | x3 | | main.rs:1076:5:1077:19 | S | | main.rs:1128:13:1128:14 | x3 | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1128:18:1128:22 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1128:18:1128:22 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1128:20:1128:21 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1130:18:1130:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1130:26:1130:41 | ...::m2(...) | | file://:0:0:0:0 | & | -| main.rs:1130:26:1130:41 | ...::m2(...) | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1130:38:1130:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1130:38:1130:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1130:38:1130:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1130:39:1130:40 | x3 | | main.rs:1076:5:1077:19 | S | -| main.rs:1130:39:1130:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1131:18:1131:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1131:26:1131:41 | ...::m3(...) | | file://:0:0:0:0 | & | -| main.rs:1131:26:1131:41 | ...::m3(...) | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1131:38:1131:40 | &x3 | | file://:0:0:0:0 | & | -| main.rs:1131:38:1131:40 | &x3 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1131:38:1131:40 | &x3 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1131:39:1131:40 | x3 | | main.rs:1076:5:1077:19 | S | -| main.rs:1131:39:1131:40 | x3 | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1133:13:1133:14 | x4 | | file://:0:0:0:0 | & | | main.rs:1133:13:1133:14 | x4 | &T | main.rs:1076:5:1077:19 | S | | main.rs:1133:13:1133:14 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | @@ -1591,18 +1253,6 @@ inferType | main.rs:1133:19:1133:23 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1133:19:1133:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1133:21:1133:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1135:18:1135:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1135:26:1135:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1135:26:1135:27 | x4 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1135:26:1135:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1135:26:1135:32 | x4.m2() | | file://:0:0:0:0 | & | -| main.rs:1135:26:1135:32 | x4.m2() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1136:18:1136:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1136:26:1136:27 | x4 | | file://:0:0:0:0 | & | -| main.rs:1136:26:1136:27 | x4 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1136:26:1136:27 | x4 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1136:26:1136:32 | x4.m3() | | file://:0:0:0:0 | & | -| main.rs:1136:26:1136:32 | x4.m3() | &T | main.rs:1079:5:1080:14 | S2 | | main.rs:1138:13:1138:14 | x5 | | file://:0:0:0:0 | & | | main.rs:1138:13:1138:14 | x5 | &T | main.rs:1076:5:1077:19 | S | | main.rs:1138:13:1138:14 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | @@ -1612,16 +1262,6 @@ inferType | main.rs:1138:19:1138:23 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1138:19:1138:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1138:21:1138:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1140:18:1140:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1140:26:1140:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1140:26:1140:27 | x5 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1140:26:1140:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1140:26:1140:32 | x5.m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1141:18:1141:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1141:26:1141:27 | x5 | | file://:0:0:0:0 | & | -| main.rs:1141:26:1141:27 | x5 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1141:26:1141:27 | x5 | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1141:26:1141:29 | x5.0 | | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:13:1143:14 | x6 | | file://:0:0:0:0 | & | | main.rs:1143:13:1143:14 | x6 | &T | main.rs:1076:5:1077:19 | S | | main.rs:1143:13:1143:14 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | @@ -1631,21 +1271,6 @@ inferType | main.rs:1143:19:1143:23 | S(...) | | main.rs:1076:5:1077:19 | S | | main.rs:1143:19:1143:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:21:1143:22 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:18:1146:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1146:26:1146:30 | (...) | | file://:0:0:0:0 | & | -| main.rs:1146:26:1146:30 | (...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1146:26:1146:30 | (...) | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:26:1146:30 | (...) | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:26:1146:30 | (...) | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:26:1146:35 | ... .m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:27:1146:29 | * ... | | file://:0:0:0:0 | & | -| main.rs:1146:27:1146:29 | * ... | | main.rs:1076:5:1077:19 | S | -| main.rs:1146:27:1146:29 | * ... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:27:1146:29 | * ... | &T.T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:27:1146:29 | * ... | T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:28:1146:29 | x6 | | file://:0:0:0:0 | & | -| main.rs:1146:28:1146:29 | x6 | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:28:1146:29 | x6 | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1148:13:1148:14 | x7 | | main.rs:1076:5:1077:19 | S | | main.rs:1148:13:1148:14 | x7 | T | file://:0:0:0:0 | & | | main.rs:1148:13:1148:14 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | @@ -1662,10 +1287,6 @@ inferType | main.rs:1151:17:1151:18 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | | main.rs:1151:17:1151:23 | x7.m1() | | file://:0:0:0:0 | & | | main.rs:1151:17:1151:23 | x7.m1() | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1152:18:1152:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1152:26:1152:27 | x7 | | main.rs:1076:5:1077:19 | S | -| main.rs:1152:26:1152:27 | x7 | T | file://:0:0:0:0 | & | -| main.rs:1152:26:1152:27 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | | main.rs:1154:13:1154:14 | x9 | | {EXTERNAL LOCATION} | String | | main.rs:1154:26:1154:32 | "Hello" | | {EXTERNAL LOCATION} | str | | main.rs:1154:26:1154:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | @@ -1683,7 +1304,6 @@ inferType | main.rs:1160:36:1160:37 | 37 | | {EXTERNAL LOCATION} | i64 | | main.rs:1162:17:1162:24 | my_thing | | file://:0:0:0:0 | & | | main.rs:1162:17:1162:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1163:18:1163:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1166:13:1166:20 | my_thing | | file://:0:0:0:0 | & | | main.rs:1166:13:1166:20 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1166:24:1166:39 | &... | | file://:0:0:0:0 | & | @@ -1693,7 +1313,6 @@ inferType | main.rs:1166:36:1166:37 | 38 | | {EXTERNAL LOCATION} | i64 | | main.rs:1167:17:1167:24 | my_thing | | file://:0:0:0:0 | & | | main.rs:1167:17:1167:24 | my_thing | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1168:18:1168:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1175:16:1175:20 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1175:16:1175:20 | SelfParam | &T | main.rs:1173:5:1181:5 | Self [trait MyTrait] | | main.rs:1178:16:1178:20 | SelfParam | | file://:0:0:0:0 | & | @@ -1863,8 +1482,6 @@ inferType | main.rs:1258:22:1258:30 | &mut flag | | file://:0:0:0:0 | & | | main.rs:1258:22:1258:30 | &mut flag | &T | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1258:27:1258:30 | flag | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1259:18:1259:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1259:26:1259:29 | flag | | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1273:43:1276:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1273:43:1276:5 | { ... } | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1273:43:1276:5 | { ... } | T | main.rs:1266:5:1267:14 | S1 | @@ -1932,7 +1549,6 @@ inferType | main.rs:1296:33:1296:37 | value | | main.rs:1294:20:1294:27 | T | | main.rs:1296:53:1299:9 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1296:53:1299:9 | { ... } | E | main.rs:1266:5:1267:14 | S1 | -| main.rs:1297:22:1297:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1298:13:1298:34 | ...::Ok::<...>(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1298:13:1298:34 | ...::Ok::<...>(...) | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1300:9:1300:23 | ...::Err(...) | | {EXTERNAL LOCATION} | Result | @@ -1942,15 +1558,12 @@ inferType | main.rs:1304:37:1304:52 | try_same_error(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1304:37:1304:52 | try_same_error(...) | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1304:37:1304:52 | try_same_error(...) | T | main.rs:1266:5:1267:14 | S1 | -| main.rs:1305:22:1305:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1308:37:1308:55 | try_convert_error(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1308:37:1308:55 | try_convert_error(...) | E | main.rs:1269:5:1270:14 | S2 | | main.rs:1308:37:1308:55 | try_convert_error(...) | T | main.rs:1266:5:1267:14 | S1 | -| main.rs:1309:22:1309:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1312:37:1312:49 | try_chained(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1312:37:1312:49 | try_chained(...) | E | main.rs:1269:5:1270:14 | S2 | | main.rs:1312:37:1312:49 | try_chained(...) | T | main.rs:1266:5:1267:14 | S1 | -| main.rs:1313:22:1313:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1316:37:1316:63 | try_complex(...) | | {EXTERNAL LOCATION} | Result | | main.rs:1316:37:1316:63 | try_complex(...) | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1316:37:1316:63 | try_complex(...) | T | main.rs:1266:5:1267:14 | S1 | @@ -1958,18 +1571,13 @@ inferType | main.rs:1316:49:1316:62 | ...::Ok(...) | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1316:49:1316:62 | ...::Ok(...) | T | main.rs:1266:5:1267:14 | S1 | | main.rs:1316:60:1316:61 | S1 | | main.rs:1266:5:1267:14 | S1 | -| main.rs:1317:22:1317:27 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1324:13:1324:13 | x | | {EXTERNAL LOCATION} | i32 | | main.rs:1324:22:1324:22 | 1 | | {EXTERNAL LOCATION} | i32 | | main.rs:1325:13:1325:13 | y | | {EXTERNAL LOCATION} | i32 | | main.rs:1325:17:1325:17 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1326:13:1326:13 | z | | {EXTERNAL LOCATION} | i32 | | main.rs:1326:17:1326:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1326:17:1326:21 | ... + ... | | {EXTERNAL LOCATION} | i32 | | main.rs:1326:21:1326:21 | y | | {EXTERNAL LOCATION} | i32 | -| main.rs:1327:13:1327:13 | z | | {EXTERNAL LOCATION} | i32 | | main.rs:1327:17:1327:17 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1327:17:1327:23 | x.abs() | | {EXTERNAL LOCATION} | i32 | | main.rs:1328:13:1328:13 | c | | {EXTERNAL LOCATION} | char | | main.rs:1328:17:1328:19 | 'c' | | {EXTERNAL LOCATION} | char | | main.rs:1329:13:1329:17 | hello | | {EXTERNAL LOCATION} | str | @@ -1989,11 +1597,8 @@ inferType | main.rs:1340:17:1340:29 | ... \|\| ... | | {EXTERNAL LOCATION} | bool | | main.rs:1340:25:1340:29 | false | | {EXTERNAL LOCATION} | bool | | main.rs:1342:13:1342:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1343:13:1343:16 | cond | | {EXTERNAL LOCATION} | bool | | main.rs:1343:20:1343:21 | 34 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1343:20:1343:27 | ... == ... | | {EXTERNAL LOCATION} | bool | | main.rs:1343:26:1343:27 | 33 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1344:12:1344:15 | cond | | {EXTERNAL LOCATION} | bool | | main.rs:1345:17:1345:17 | z | | file://:0:0:0:0 | () | | main.rs:1345:21:1345:27 | (...) | | file://:0:0:0:0 | () | | main.rs:1345:22:1345:22 | a | | {EXTERNAL LOCATION} | i32 | @@ -2355,23 +1960,18 @@ inferType | main.rs:1572:31:1572:35 | other | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1572:75:1574:9 | { ... } | | {EXTERNAL LOCATION} | Option | | main.rs:1572:75:1574:9 | { ... } | T | {EXTERNAL LOCATION} | Ordering | -| main.rs:1573:13:1573:29 | (...) | | {EXTERNAL LOCATION} | i64 | | main.rs:1573:13:1573:63 | ... .partial_cmp(...) | | {EXTERNAL LOCATION} | Option | | main.rs:1573:13:1573:63 | ... .partial_cmp(...) | T | {EXTERNAL LOCATION} | Ordering | | main.rs:1573:14:1573:17 | self | | file://:0:0:0:0 | & | | main.rs:1573:14:1573:17 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1573:14:1573:19 | self.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:14:1573:28 | ... + ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1573:23:1573:26 | self | | file://:0:0:0:0 | & | | main.rs:1573:23:1573:26 | self | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1573:23:1573:28 | self.y | | {EXTERNAL LOCATION} | i64 | | main.rs:1573:43:1573:62 | &... | | file://:0:0:0:0 | & | -| main.rs:1573:43:1573:62 | &... | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:44:1573:62 | (...) | | {EXTERNAL LOCATION} | i64 | | main.rs:1573:45:1573:49 | other | | file://:0:0:0:0 | & | | main.rs:1573:45:1573:49 | other | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1573:45:1573:51 | other.x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1573:45:1573:61 | ... + ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1573:55:1573:59 | other | | file://:0:0:0:0 | & | | main.rs:1573:55:1573:59 | other | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1573:55:1573:61 | other.y | | {EXTERNAL LOCATION} | i64 | @@ -2455,55 +2055,27 @@ inferType | main.rs:1589:44:1589:48 | other | | file://:0:0:0:0 | & | | main.rs:1589:44:1589:48 | other | &T | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1589:44:1589:50 | other.y | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:13:1596:18 | i64_eq | | {EXTERNAL LOCATION} | bool | -| main.rs:1596:22:1596:35 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1596:23:1596:26 | 1i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1596:23:1596:34 | ... == ... | | {EXTERNAL LOCATION} | bool | | main.rs:1596:31:1596:34 | 2i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:13:1597:18 | i64_ne | | {EXTERNAL LOCATION} | bool | -| main.rs:1597:22:1597:35 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1597:23:1597:26 | 3i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1597:23:1597:34 | ... != ... | | {EXTERNAL LOCATION} | bool | | main.rs:1597:31:1597:34 | 4i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1598:13:1598:18 | i64_lt | | {EXTERNAL LOCATION} | bool | -| main.rs:1598:22:1598:34 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1598:23:1598:26 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1598:23:1598:33 | ... < ... | | {EXTERNAL LOCATION} | bool | | main.rs:1598:30:1598:33 | 6i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1599:13:1599:18 | i64_le | | {EXTERNAL LOCATION} | bool | -| main.rs:1599:22:1599:35 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1599:23:1599:26 | 7i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1599:23:1599:34 | ... <= ... | | {EXTERNAL LOCATION} | bool | | main.rs:1599:31:1599:34 | 8i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1600:13:1600:18 | i64_gt | | {EXTERNAL LOCATION} | bool | -| main.rs:1600:22:1600:35 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1600:23:1600:26 | 9i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1600:23:1600:34 | ... > ... | | {EXTERNAL LOCATION} | bool | | main.rs:1600:30:1600:34 | 10i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:13:1601:18 | i64_ge | | {EXTERNAL LOCATION} | bool | -| main.rs:1601:22:1601:37 | (...) | | {EXTERNAL LOCATION} | bool | | main.rs:1601:23:1601:27 | 11i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1601:23:1601:36 | ... >= ... | | {EXTERNAL LOCATION} | bool | | main.rs:1601:32:1601:36 | 12i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:13:1604:19 | i64_add | | {EXTERNAL LOCATION} | i64 | | main.rs:1604:23:1604:27 | 13i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1604:23:1604:35 | ... + ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1604:31:1604:35 | 14i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1605:13:1605:19 | i64_sub | | {EXTERNAL LOCATION} | i64 | | main.rs:1605:23:1605:27 | 15i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1605:23:1605:35 | ... - ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1605:31:1605:35 | 16i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1606:13:1606:19 | i64_mul | | {EXTERNAL LOCATION} | i64 | | main.rs:1606:23:1606:27 | 17i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1606:23:1606:35 | ... * ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1606:31:1606:35 | 18i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:13:1607:19 | i64_div | | {EXTERNAL LOCATION} | i64 | | main.rs:1607:23:1607:27 | 19i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1607:23:1607:35 | ... / ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1607:31:1607:35 | 20i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1608:13:1608:19 | i64_rem | | {EXTERNAL LOCATION} | i64 | | main.rs:1608:23:1608:27 | 21i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1608:23:1608:35 | ... % ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1608:31:1608:35 | 22i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:1611:13:1611:30 | mut i64_add_assign | | {EXTERNAL LOCATION} | i64 | | main.rs:1611:34:1611:38 | 23i64 | | {EXTERNAL LOCATION} | i64 | @@ -2530,25 +2102,15 @@ inferType | main.rs:1624:9:1624:22 | i64_rem_assign | | {EXTERNAL LOCATION} | i64 | | main.rs:1624:9:1624:31 | ... %= ... | | file://:0:0:0:0 | () | | main.rs:1624:27:1624:31 | 32i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1627:13:1627:22 | i64_bitand | | {EXTERNAL LOCATION} | i64 | | main.rs:1627:26:1627:30 | 33i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1627:26:1627:38 | ... & ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1627:34:1627:38 | 34i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1628:13:1628:21 | i64_bitor | | {EXTERNAL LOCATION} | i64 | | main.rs:1628:25:1628:29 | 35i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1628:25:1628:37 | ... \| ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1628:33:1628:37 | 36i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1629:13:1629:22 | i64_bitxor | | {EXTERNAL LOCATION} | i64 | | main.rs:1629:26:1629:30 | 37i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1629:26:1629:38 | ... ^ ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1629:34:1629:38 | 38i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1630:13:1630:19 | i64_shl | | {EXTERNAL LOCATION} | i64 | | main.rs:1630:23:1630:27 | 39i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1630:23:1630:36 | ... << ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1630:32:1630:36 | 40i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1631:13:1631:19 | i64_shr | | {EXTERNAL LOCATION} | i64 | | main.rs:1631:23:1631:27 | 41i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1631:23:1631:36 | ... >> ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1631:32:1631:36 | 42i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:1634:13:1634:33 | mut i64_bitand_assign | | {EXTERNAL LOCATION} | i64 | | main.rs:1634:37:1634:41 | 43i64 | | {EXTERNAL LOCATION} | i64 | @@ -2575,11 +2137,7 @@ inferType | main.rs:1647:9:1647:22 | i64_shr_assign | | {EXTERNAL LOCATION} | i64 | | main.rs:1647:9:1647:32 | ... >>= ... | | file://:0:0:0:0 | () | | main.rs:1647:28:1647:32 | 52i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1649:13:1649:19 | i64_neg | | {EXTERNAL LOCATION} | i64 | -| main.rs:1649:23:1649:28 | - ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1649:24:1649:28 | 53i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1650:13:1650:19 | i64_not | | {EXTERNAL LOCATION} | i64 | -| main.rs:1650:23:1650:28 | ! ... | | {EXTERNAL LOCATION} | i64 | | main.rs:1650:24:1650:28 | 54i64 | | {EXTERNAL LOCATION} | i64 | | main.rs:1653:13:1653:14 | v1 | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1653:18:1653:36 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | @@ -2906,10 +2464,6 @@ inferType | main.rs:1875:24:1875:25 | xs | | file://:0:0:0:0 | [] | | main.rs:1875:24:1875:25 | xs | [T;...] | main.rs:1830:5:1831:13 | S | | main.rs:1875:24:1875:25 | xs | [T] | main.rs:1830:5:1831:13 | S | -| main.rs:1881:25:1881:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | -| main.rs:1881:25:1881:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1881:25:1881:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:1881:38:1881:45 | "World!" | | {EXTERNAL LOCATION} | str | | main.rs:1887:19:1887:23 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1887:19:1887:23 | SelfParam | &T | main.rs:1886:5:1888:5 | Self [trait MyAdd] | | main.rs:1887:26:1887:30 | value | | main.rs:1886:17:1886:17 | T | @@ -2970,3 +2524,182 @@ inferType | main.rs:1928:41:1928:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:1944:5:1944:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures +| dereference.rs:41:36:41:99 | //... | Missing result: method=is_positive | +| dereference.rs:41:36:41:99 | //... | Missing result: type=_b3:bool | +| dereference.rs:55:36:55:101 | //... | Missing result: method=is_positive | +| dereference.rs:55:36:55:101 | //... | Missing result: type=_d3:bool | +| dereference.rs:69:36:69:85 | //... | Missing result: method=is_positive | +| dereference.rs:69:36:69:85 | //... | Missing result: type=_f3:bool | +| dereference.rs:83:36:83:85 | //... | Missing result: method=is_positive | +| dereference.rs:83:36:83:85 | //... | Missing result: type=_h3:bool | +| main.rs:27:32:27:51 | //... | Missing result: fieldof=MyThing | +| main.rs:38:32:38:56 | //... | Missing result: fieldof=GenericThing | +| main.rs:42:32:42:56 | //... | Missing result: fieldof=GenericThing | +| main.rs:49:32:49:51 | //... | Missing result: fieldof=OptionS | +| main.rs:55:32:55:56 | //... | Missing result: fieldof=GenericThing | +| main.rs:160:32:160:51 | //... | Missing result: fieldof=MyThing | +| main.rs:161:32:161:51 | //... | Missing result: fieldof=MyThing | +| main.rs:163:35:163:61 | //... | Missing result: method=MyThing::m1 | +| main.rs:164:37:164:79 | //... | Missing result: fieldof=MyThing | +| main.rs:164:37:164:79 | //... | Missing result: method=MyThing::m1 | +| main.rs:169:35:169:48 | //... | Missing result: method=m2 | +| main.rs:170:35:170:48 | //... | Missing result: method=m2 | +| main.rs:329:42:329:68 | //... | Missing result: method=MyThing::m1 | +| main.rs:330:44:330:86 | //... | Missing result: fieldof=MyThing | +| main.rs:330:44:330:86 | //... | Missing result: method=MyThing::m1 | +| main.rs:335:36:335:61 | //... | Missing result: method=MyTrait::m1 | +| main.rs:338:36:338:62 | //... | Missing result: method=MyTrait::m1 | +| main.rs:344:36:344:62 | //... | Missing result: method=MyTrait::m1 | +| main.rs:368:32:368:51 | //... | Missing result: fieldof=MyThing | +| main.rs:432:46:432:74 | //... | Missing result: method=S1::common_method | +| main.rs:433:48:433:78 | //... | Missing result: method=S1::common_method_2 | +| main.rs:461:31:461:44 | //... | Missing result: type=s1:I | +| main.rs:467:31:467:44 | //... | Missing result: type=s2:I | +| main.rs:472:30:472:43 | //... | Missing result: type=s:S1 | +| main.rs:477:30:477:43 | //... | Missing result: type=s:S1 | +| main.rs:557:35:557:48 | //... | Missing result: method=m1 | +| main.rs:558:35:558:48 | //... | Missing result: method=m1 | +| main.rs:563:35:563:48 | //... | Missing result: method=m2 | +| main.rs:564:35:564:48 | //... | Missing result: method=m2 | +| main.rs:707:36:707:68 | //... | Missing result: method=S::m1 | +| main.rs:707:36:707:68 | //... | Missing result: type=x1.m1():AT | +| main.rs:716:47:716:78 | //... | Missing result: method=S::put | +| main.rs:716:47:716:78 | //... | Missing result: method=unwrap | +| main.rs:719:53:719:84 | //... | Missing result: method=putTwo | +| main.rs:719:53:719:84 | //... | Missing result: method=unwrap | +| main.rs:725:36:725:67 | //... | Missing result: method=m1 | +| main.rs:725:36:725:67 | //... | Missing result: type=x5.m1():A.S2 | +| main.rs:727:36:727:67 | //... | Missing result: method=m2 | +| main.rs:727:36:727:67 | //... | Missing result: type=x6.m2():A.S2 | +| main.rs:760:35:760:48 | //... | Missing result: method=m1 | +| main.rs:761:35:761:48 | //... | Missing result: method=m1 | +| main.rs:792:24:792:37 | //... | Missing result: method=gt | +| main.rs:806:24:806:37 | //... | Missing result: method=gt | +| main.rs:848:35:848:57 | //... | Missing result: method=MyThing::m1 | +| main.rs:849:35:849:57 | //... | Missing result: method=MyThing::m1 | +| main.rs:854:35:854:63 | //... | Missing result: method=m2 | +| main.rs:854:35:854:63 | //... | Missing result: type=x.m2():S1 | +| main.rs:855:35:855:63 | //... | Missing result: method=m2 | +| main.rs:855:35:855:63 | //... | Missing result: type=y.m2():S2 | +| main.rs:860:35:860:63 | //... | Missing result: method=m3 | +| main.rs:860:35:860:63 | //... | Missing result: type=x.m3():S1 | +| main.rs:861:35:861:63 | //... | Missing result: method=m3 | +| main.rs:861:35:861:63 | //... | Missing result: type=y.m3():S2 | +| main.rs:1043:41:1043:59 | //... | Missing result: method=flatten | +| main.rs:1049:34:1049:47 | //... | Missing result: method=gt | +| main.rs:1057:40:1057:53 | //... | Missing result: method=gt | +| main.rs:1065:24:1065:37 | //... | Missing result: method=gt | +| main.rs:1121:36:1121:49 | //... | Missing result: method=m1 | +| main.rs:1125:36:1125:49 | //... | Missing result: method=m2 | +| main.rs:1126:36:1126:49 | //... | Missing result: method=m3 | +| main.rs:1135:36:1135:49 | //... | Missing result: method=m2 | +| main.rs:1136:36:1136:49 | //... | Missing result: method=m3 | +| main.rs:1140:36:1140:49 | //... | Missing result: method=m1 | +| main.rs:1141:33:1141:46 | //... | Missing result: fieldof=S | +| main.rs:1146:39:1146:65 | //... | Missing result: method=deref | +| main.rs:1146:39:1146:65 | //... | Missing result: method=m1 | +| main.rs:1223:37:1223:66 | //... | Missing result: method=not | +| main.rs:1259:33:1259:53 | //... | Missing result: type=flag:MyFlag | +| main.rs:1326:24:1326:49 | //... | Missing result: method=add | +| main.rs:1326:24:1326:49 | //... | Missing result: type=z:i32 | +| main.rs:1327:26:1327:53 | //... | Missing result: method=abs | +| main.rs:1327:26:1327:53 | //... | Missing result: type=z:i32 | +| main.rs:1343:30:1343:43 | //... | Missing result: method=eq | +| main.rs:1373:36:1373:63 | //... | Missing result: method=add | +| main.rs:1374:36:1374:63 | //... | Missing result: method=add | +| main.rs:1382:30:1382:64 | //... | Missing result: method=add_assign | +| main.rs:1383:30:1383:64 | //... | Missing result: method=add_assign | +| main.rs:1391:36:1391:63 | //... | Missing result: method=sub | +| main.rs:1392:36:1392:63 | //... | Missing result: method=sub | +| main.rs:1400:30:1400:64 | //... | Missing result: method=sub_assign | +| main.rs:1401:30:1401:64 | //... | Missing result: method=sub_assign | +| main.rs:1409:36:1409:63 | //... | Missing result: method=mul | +| main.rs:1410:36:1410:63 | //... | Missing result: method=mul | +| main.rs:1417:30:1417:64 | //... | Missing result: method=mul_assign | +| main.rs:1418:30:1418:64 | //... | Missing result: method=mul_assign | +| main.rs:1426:36:1426:63 | //... | Missing result: method=div | +| main.rs:1427:36:1427:63 | //... | Missing result: method=div | +| main.rs:1434:30:1434:64 | //... | Missing result: method=div_assign | +| main.rs:1435:30:1435:64 | //... | Missing result: method=div_assign | +| main.rs:1443:36:1443:63 | //... | Missing result: method=rem | +| main.rs:1444:36:1444:63 | //... | Missing result: method=rem | +| main.rs:1451:30:1451:64 | //... | Missing result: method=rem_assign | +| main.rs:1452:30:1452:64 | //... | Missing result: method=rem_assign | +| main.rs:1460:36:1460:66 | //... | Missing result: method=bitand | +| main.rs:1461:36:1461:66 | //... | Missing result: method=bitand | +| main.rs:1468:30:1468:67 | //... | Missing result: method=bitand_assign | +| main.rs:1469:30:1469:67 | //... | Missing result: method=bitand_assign | +| main.rs:1477:36:1477:65 | //... | Missing result: method=bitor | +| main.rs:1478:36:1478:65 | //... | Missing result: method=bitor | +| main.rs:1485:30:1485:66 | //... | Missing result: method=bitor_assign | +| main.rs:1486:30:1486:66 | //... | Missing result: method=bitor_assign | +| main.rs:1494:36:1494:66 | //... | Missing result: method=bitxor | +| main.rs:1495:36:1495:66 | //... | Missing result: method=bitxor | +| main.rs:1502:30:1502:67 | //... | Missing result: method=bitxor_assign | +| main.rs:1503:30:1503:67 | //... | Missing result: method=bitxor_assign | +| main.rs:1511:35:1511:62 | //... | Missing result: method=shl | +| main.rs:1512:35:1512:62 | //... | Missing result: method=shl | +| main.rs:1519:29:1519:63 | //... | Missing result: method=shl_assign | +| main.rs:1520:29:1520:63 | //... | Missing result: method=shl_assign | +| main.rs:1528:35:1528:62 | //... | Missing result: method=shr | +| main.rs:1529:35:1529:62 | //... | Missing result: method=shr | +| main.rs:1536:29:1536:63 | //... | Missing result: method=shr_assign | +| main.rs:1537:29:1537:63 | //... | Missing result: method=shr_assign | +| main.rs:1545:29:1545:56 | //... | Missing result: method=neg | +| main.rs:1546:29:1546:56 | //... | Missing result: method=neg | +| main.rs:1555:29:1555:56 | //... | Missing result: method=not | +| main.rs:1556:29:1556:56 | //... | Missing result: method=not | +| main.rs:1563:52:1563:78 | //... | Missing result: method=eq | +| main.rs:1567:52:1567:78 | //... | Missing result: method=ne | +| main.rs:1573:65:1573:111 | //... | Missing result: method=add | +| main.rs:1573:65:1573:111 | //... | Missing result: method=partial_cmp | +| main.rs:1577:50:1577:76 | //... | Missing result: method=lt | +| main.rs:1581:52:1581:78 | //... | Missing result: method=le | +| main.rs:1585:50:1585:76 | //... | Missing result: method=gt | +| main.rs:1589:52:1589:78 | //... | Missing result: method=ge | +| main.rs:1596:38:1596:68 | //... | Missing result: method=eq | +| main.rs:1596:38:1596:68 | //... | Missing result: type=i64_eq:bool | +| main.rs:1597:38:1597:68 | //... | Missing result: method=ne | +| main.rs:1597:38:1597:68 | //... | Missing result: type=i64_ne:bool | +| main.rs:1598:37:1598:67 | //... | Missing result: method=lt | +| main.rs:1598:37:1598:67 | //... | Missing result: type=i64_lt:bool | +| main.rs:1599:38:1599:68 | //... | Missing result: method=le | +| main.rs:1599:38:1599:68 | //... | Missing result: type=i64_le:bool | +| main.rs:1600:38:1600:68 | //... | Missing result: method=gt | +| main.rs:1600:38:1600:68 | //... | Missing result: type=i64_gt:bool | +| main.rs:1601:40:1601:70 | //... | Missing result: method=ge | +| main.rs:1601:40:1601:70 | //... | Missing result: type=i64_ge:bool | +| main.rs:1604:38:1604:69 | //... | Missing result: method=add | +| main.rs:1604:38:1604:69 | //... | Missing result: type=i64_add:i64 | +| main.rs:1605:38:1605:69 | //... | Missing result: method=sub | +| main.rs:1605:38:1605:69 | //... | Missing result: type=i64_sub:i64 | +| main.rs:1606:38:1606:69 | //... | Missing result: method=mul | +| main.rs:1606:38:1606:69 | //... | Missing result: type=i64_mul:i64 | +| main.rs:1607:38:1607:69 | //... | Missing result: method=div | +| main.rs:1607:38:1607:69 | //... | Missing result: type=i64_div:i64 | +| main.rs:1608:38:1608:69 | //... | Missing result: method=rem | +| main.rs:1608:38:1608:69 | //... | Missing result: type=i64_rem:i64 | +| main.rs:1612:34:1612:55 | //... | Missing result: method=add_assign | +| main.rs:1615:34:1615:55 | //... | Missing result: method=sub_assign | +| main.rs:1618:34:1618:55 | //... | Missing result: method=mul_assign | +| main.rs:1621:34:1621:55 | //... | Missing result: method=div_assign | +| main.rs:1624:34:1624:55 | //... | Missing result: method=rem_assign | +| main.rs:1627:41:1627:78 | //... | Missing result: method=bitand | +| main.rs:1627:41:1627:78 | //... | Missing result: type=i64_bitand:i64 | +| main.rs:1628:40:1628:75 | //... | Missing result: method=bitor | +| main.rs:1628:40:1628:75 | //... | Missing result: type=i64_bitor:i64 | +| main.rs:1629:41:1629:78 | //... | Missing result: method=bitxor | +| main.rs:1629:41:1629:78 | //... | Missing result: type=i64_bitxor:i64 | +| main.rs:1630:39:1630:70 | //... | Missing result: method=shl | +| main.rs:1630:39:1630:70 | //... | Missing result: type=i64_shl:i64 | +| main.rs:1631:39:1631:70 | //... | Missing result: method=shr | +| main.rs:1631:39:1631:70 | //... | Missing result: type=i64_shr:i64 | +| main.rs:1635:37:1635:61 | //... | Missing result: method=bitand_assign | +| main.rs:1638:36:1638:59 | //... | Missing result: method=bitor_assign | +| main.rs:1641:37:1641:61 | //... | Missing result: method=bitxor_assign | +| main.rs:1644:35:1644:56 | //... | Missing result: method=shl_assign | +| main.rs:1647:35:1647:56 | //... | Missing result: method=shr_assign | +| main.rs:1649:31:1649:62 | //... | Missing result: method=neg | +| main.rs:1649:31:1649:62 | //... | Missing result: type=i64_neg:i64 | +| main.rs:1650:31:1650:62 | //... | Missing result: method=not | +| main.rs:1650:31:1650:62 | //... | Missing result: type=i64_not:i64 | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index f2a80077bfc..e819cdc377e 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -1430,17 +1430,11 @@ edges | main.rs:592:1:602:1 | enter fn macro_invocation | main.rs:593:5:594:26 | let ... = ... | | | main.rs:592:1:602:1 | exit fn macro_invocation (normal) | main.rs:592:1:602:1 | exit fn macro_invocation | | | main.rs:592:23:602:1 | { ... } | main.rs:592:1:602:1 | exit fn macro_invocation (normal) | | -| main.rs:593:5:594:26 | let ... = ... | main.rs:594:23:594:24 | let ... = 37 | | +| main.rs:593:5:594:26 | let ... = ... | main.rs:594:9:594:25 | let_in_macro!... | | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | | | main.rs:593:9:593:22 | var_from_macro | main.rs:595:5:595:30 | ExprStmt | match | | main.rs:594:9:594:25 | MacroExpr | main.rs:593:9:593:22 | var_from_macro | | | main.rs:594:9:594:25 | let_in_macro!... | main.rs:594:9:594:25 | MacroExpr | | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | match | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | { ... } | | -| main.rs:594:23:594:24 | 37 | main.rs:594:9:594:25 | var_in_macro | | -| main.rs:594:23:594:24 | let ... = 37 | main.rs:594:23:594:24 | 37 | | -| main.rs:594:23:594:24 | { ... } | main.rs:594:9:594:25 | let_in_macro!... | | | main.rs:595:5:595:13 | print_i64 | main.rs:595:15:595:28 | var_from_macro | | | main.rs:595:5:595:29 | print_i64(...) | main.rs:596:5:596:26 | let ... = 33 | | | main.rs:595:5:595:30 | ExprStmt | main.rs:595:5:595:13 | print_i64 | | @@ -1449,17 +1443,11 @@ edges | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | | | main.rs:596:9:596:20 | var_in_macro | main.rs:600:5:600:44 | ExprStmt | match | | main.rs:596:24:596:25 | 33 | main.rs:596:9:596:20 | var_in_macro | | -| main.rs:600:5:600:13 | print_i64 | main.rs:600:15:600:42 | let ... = 0 | | +| main.rs:600:5:600:13 | print_i64 | main.rs:600:15:600:42 | let_in_macro2!... | | | main.rs:600:5:600:43 | print_i64(...) | main.rs:601:5:601:28 | ExprStmt | | | main.rs:600:5:600:44 | ExprStmt | main.rs:600:5:600:13 | print_i64 | | -| main.rs:600:15:600:42 | 0 | main.rs:600:15:600:42 | var_in_macro | | | main.rs:600:15:600:42 | MacroExpr | main.rs:600:5:600:43 | print_i64(...) | | -| main.rs:600:15:600:42 | let ... = 0 | main.rs:600:15:600:42 | 0 | | | main.rs:600:15:600:42 | let_in_macro2!... | main.rs:600:15:600:42 | MacroExpr | | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | match | -| main.rs:600:30:600:41 | var_in_macro | main.rs:600:30:600:41 | { ... } | | -| main.rs:600:30:600:41 | { ... } | main.rs:600:15:600:42 | let_in_macro2!... | | | main.rs:601:5:601:13 | print_i64 | main.rs:601:15:601:26 | var_in_macro | | | main.rs:601:5:601:27 | print_i64(...) | main.rs:592:23:602:1 | { ... } | | | main.rs:601:5:601:28 | ExprStmt | main.rs:601:5:601:13 | print_i64 | | diff --git a/rust/ql/test/library-tests/variables/Ssa.expected b/rust/ql/test/library-tests/variables/Ssa.expected index f45005b51a0..52e8f45216f 100644 --- a/rust/ql/test/library-tests/variables/Ssa.expected +++ b/rust/ql/test/library-tests/variables/Ssa.expected @@ -161,9 +161,7 @@ definition | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | read | main.rs:3:14:3:14 | s | main.rs:3:14:3:14 | s | main.rs:4:20:4:20 | s | | main.rs:7:14:7:14 | i | main.rs:7:14:7:14 | i | main.rs:8:20:8:20 | i | @@ -329,9 +327,7 @@ read | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | main.rs:569:3:569:3 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | main.rs:571:13:571:13 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | main.rs:595:15:595:28 | var_from_macro | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | main.rs:601:15:601:26 | var_in_macro | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | firstRead | main.rs:3:14:3:14 | s | main.rs:3:14:3:14 | s | main.rs:4:20:4:20 | s | | main.rs:7:14:7:14 | i | main.rs:7:14:7:14 | i | main.rs:8:20:8:20 | i | @@ -467,9 +463,7 @@ firstRead | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | main.rs:569:3:569:3 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | main.rs:571:13:571:13 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | main.rs:595:15:595:28 | var_from_macro | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | main.rs:601:15:601:26 | var_in_macro | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | adjacentReads | main.rs:35:9:35:10 | x3 | main.rs:35:9:35:10 | x3 | main.rs:36:15:36:16 | x3 | main.rs:38:9:38:10 | x3 | | main.rs:43:9:43:10 | x4 | main.rs:43:9:43:10 | x4 | main.rs:44:15:44:16 | x4 | main.rs:49:15:49:16 | x4 | @@ -638,6 +632,4 @@ assigns | main.rs:553:9:553:9 | z | main.rs:553:13:553:14 | 17 | | main.rs:568:11:568:11 | a | main.rs:568:15:568:33 | MyStruct {...} | | main.rs:593:9:593:22 | var_from_macro | main.rs:594:9:594:25 | MacroExpr | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | 37 | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:24:596:25 | 33 | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | 0 | diff --git a/rust/ql/test/library-tests/variables/variables.expected b/rust/ql/test/library-tests/variables/variables.expected index 5c8553262db..1643f28803f 100644 --- a/rust/ql/test/library-tests/variables/variables.expected +++ b/rust/ql/test/library-tests/variables/variables.expected @@ -1,4 +1,6 @@ testFailures +| main.rs:594:28:594:56 | //... | Missing result: read_access=var_in_macro | +| main.rs:600:46:600:121 | //... | Fixed spurious result: read_access=var_in_macro | variable | main.rs:3:14:3:14 | s | | main.rs:7:14:7:14 | i | @@ -112,9 +114,7 @@ variable | main.rs:562:15:562:18 | self | | main.rs:568:11:568:11 | a | | main.rs:593:9:593:22 | var_from_macro | -| main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | -| main.rs:600:15:600:42 | var_in_macro | variableAccess | main.rs:4:20:4:20 | s | main.rs:3:14:3:14 | s | | main.rs:8:20:8:20 | i | main.rs:7:14:7:14 | i | @@ -291,9 +291,7 @@ variableAccess | main.rs:563:6:563:9 | self | main.rs:562:15:562:18 | self | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:571:13:571:13 | a | main.rs:568:11:568:11 | a | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:595:15:595:28 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | -| main.rs:600:30:600:41 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | main.rs:601:15:601:26 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | variableWriteAccess | main.rs:23:5:23:6 | x2 | main.rs:21:13:21:14 | x2 | @@ -461,9 +459,7 @@ variableReadAccess | main.rs:563:6:563:9 | self | main.rs:562:15:562:18 | self | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:571:13:571:13 | a | main.rs:568:11:568:11 | a | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:595:15:595:28 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | -| main.rs:600:30:600:41 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | main.rs:601:15:601:26 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | variableInitializer | main.rs:16:9:16:10 | x1 | main.rs:16:14:16:16 | "a" | @@ -521,9 +517,7 @@ variableInitializer | main.rs:553:9:553:9 | z | main.rs:553:13:553:14 | 17 | | main.rs:568:11:568:11 | a | main.rs:568:15:568:33 | MyStruct {...} | | main.rs:593:9:593:22 | var_from_macro | main.rs:594:9:594:25 | MacroExpr | -| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | 37 | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:24:596:25 | 33 | -| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | 0 | capturedVariable | main.rs:430:9:430:9 | x | | main.rs:440:13:440:13 | x | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index 563e370b4ed..83dfa7e88f1 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -11,6 +11,6 @@ | Inconsistencies - data flow | 0 | | Lines of code extracted | 60 | | Lines of user code extracted | 60 | -| Macro calls - resolved | 8 | -| Macro calls - total | 9 | -| Macro calls - unresolved | 1 | +| Macro calls - resolved | 6 | +| Macro calls - total | 8 | +| Macro calls - unresolved | 2 | diff --git a/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected b/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected index 72f78794ab2..9e27cd2d249 100644 --- a/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected +++ b/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected @@ -1 +1,2 @@ | my_macro.rs:17:9:17:27 | myUndefinedMacro!... | Macro call was not resolved to a target. | +| my_struct.rs:17:9:17:33 | println!... | Macro call was not resolved to a target. | diff --git a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected new file mode 100644 index 00000000000..a789418fc82 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected @@ -0,0 +1,7 @@ +noLocation +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected new file mode 100644 index 00000000000..dc2a64f8890 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected @@ -0,0 +1,8 @@ +noLocation +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 598e52f932c..d3300f4bd53 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -5,8 +5,6 @@ multipleMethodCallTargets | sqlx.rs:65:26:65:46 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:75:25:75:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | @@ -15,8 +13,6 @@ multipleMethodCallTargets | sqlx.rs:76:25:76:45 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:84:25:84:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | @@ -97,18 +93,6 @@ multiplePathResolutions | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | @@ -127,18 +111,6 @@ multiplePathResolutions | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | @@ -157,18 +129,6 @@ multiplePathResolutions | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | @@ -187,18 +147,6 @@ multiplePathResolutions | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | @@ -217,18 +165,6 @@ multiplePathResolutions | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | @@ -247,18 +183,6 @@ multiplePathResolutions | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | @@ -277,18 +201,6 @@ multiplePathResolutions | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | @@ -307,18 +219,6 @@ multiplePathResolutions | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | @@ -337,18 +237,6 @@ multiplePathResolutions | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | @@ -359,22 +247,12 @@ multiplePathResolutions | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | multipleCanonicalPaths -| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | -| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | -| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | -| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | -| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | -| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | -| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | -| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | -| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | | file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | | file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | | file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | 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 1a6b417ce67..f21ca58d672 100644 --- a/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected +++ b/rust/ql/test/query-tests/security/CWE-089/SqlInjection.expected @@ -1,57 +1,34 @@ #select | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | This query depends on a $@. | sqlx.rs:47:22:47:35 | ...::args | user-provided value | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | This query depends on a $@. | sqlx.rs:48:25:48:46 | ...::get | user-provided value | edges | sqlx.rs:47:9:47:18 | arg_string | sqlx.rs:53:27:53:36 | arg_string | provenance | | | sqlx.rs:47:22:47:35 | ...::args | sqlx.rs:47:22:47:37 | ...::args(...) [element] | provenance | Src:MaD:1 | -| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:7 | -| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:4 | +| sqlx.rs:47:22:47:37 | ...::args(...) [element] | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | provenance | MaD:4 | +| sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | provenance | MaD:3 | | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | sqlx.rs:47:9:47:18 | arg_string | provenance | | -| sqlx.rs:48:9:48:21 | remote_string | sqlx.rs:54:27:54:39 | remote_string | provenance | | -| sqlx.rs:48:25:48:46 | ...::get | sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | provenance | Src:MaD:2 | -| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | sqlx.rs:48:25:48:78 | ... .unwrap() | provenance | MaD:5 | -| sqlx.rs:48:25:48:78 | ... .unwrap() | sqlx.rs:48:25:48:85 | ... .text() [Ok] | provenance | MaD:8 | -| sqlx.rs:48:25:48:85 | ... .text() [Ok] | sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | provenance | MaD:6 | -| sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | sqlx.rs:48:9:48:21 | remote_string | provenance | | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:3 | -| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:3 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | provenance | MaD:2 | +| sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | provenance | MaD:2 | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | provenance | | | sqlx.rs:53:27:53:36 | arg_string | sqlx.rs:53:26:53:36 | &arg_string [&ref] | provenance | | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | provenance | MaD:3 | -| sqlx.rs:54:26:54:39 | &remote_string [&ref] | sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | provenance | | -| sqlx.rs:54:27:54:39 | remote_string | sqlx.rs:54:26:54:39 | &remote_string [&ref] | provenance | | models | 1 | Source: lang:std; crate::env::args; ReturnValue.Element; commandargs | -| 2 | Source: repo:https://github.com/seanmonstar/reqwest:reqwest; crate::blocking::get; ReturnValue.Field[core::result::Result::Ok(0)]; remote | -| 3 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | -| 4 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | -| 5 | Summary: lang:core; ::unwrap; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 6 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::result::Result::Ok(0)]; ReturnValue; value | -| 7 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | -| 8 | Summary: repo:https://github.com/seanmonstar/reqwest:reqwest; ::text; Argument[self]; ReturnValue.Field[core::result::Result::Ok(0)]; taint | +| 2 | Summary: lang:alloc; ::as_str; Argument[self]; ReturnValue; value | +| 3 | Summary: lang:core; ::unwrap_or; Argument[self].Field[core::option::Option::Some(0)]; ReturnValue; value | +| 4 | Summary: lang:core; crate::iter::traits::iterator::Iterator::nth; Argument[self].Element; ReturnValue.Field[core::option::Option::Some(0)]; value | nodes | sqlx.rs:47:9:47:18 | arg_string | semmle.label | arg_string | | sqlx.rs:47:22:47:35 | ...::args | semmle.label | ...::args | | sqlx.rs:47:22:47:37 | ...::args(...) [element] | semmle.label | ...::args(...) [element] | | sqlx.rs:47:22:47:44 | ... .nth(...) [Some] | semmle.label | ... .nth(...) [Some] | | sqlx.rs:47:22:47:77 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | -| sqlx.rs:48:9:48:21 | remote_string | semmle.label | remote_string | -| sqlx.rs:48:25:48:46 | ...::get | semmle.label | ...::get | -| sqlx.rs:48:25:48:69 | ...::get(...) [Ok] | semmle.label | ...::get(...) [Ok] | -| sqlx.rs:48:25:48:78 | ... .unwrap() | semmle.label | ... .unwrap() | -| sqlx.rs:48:25:48:85 | ... .text() [Ok] | semmle.label | ... .text() [Ok] | -| sqlx.rs:48:25:48:118 | ... .unwrap_or(...) | semmle.label | ... .unwrap_or(...) | | sqlx.rs:53:9:53:22 | unsafe_query_1 [&ref] | semmle.label | unsafe_query_1 [&ref] | | sqlx.rs:53:26:53:36 | &arg_string [&ref] | semmle.label | &arg_string [&ref] | | sqlx.rs:53:27:53:36 | arg_string | semmle.label | arg_string | -| sqlx.rs:54:9:54:22 | unsafe_query_2 [&ref] | semmle.label | unsafe_query_2 [&ref] | -| sqlx.rs:54:26:54:39 | &remote_string [&ref] | semmle.label | &remote_string [&ref] | -| sqlx.rs:54:27:54:39 | remote_string | semmle.label | remote_string | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | semmle.label | unsafe_query_1.as_str() | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | semmle.label | unsafe_query_2.as_str() | subpaths +testFailures +| sqlx.rs:48:121:48:139 | //... | Missing result: Source=remote1 | +| sqlx.rs:69:63:69:109 | //... | Missing result: Alert[rust/sql-injection]=remote1 | +| sqlx.rs:80:77:80:123 | //... | Missing result: Alert[rust/sql-injection]=remote1 | diff --git a/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected new file mode 100644 index 00000000000..dc2a64f8890 --- /dev/null +++ b/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected @@ -0,0 +1,8 @@ +noLocation +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | +| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 36e75877d2b..bd35db9ff77 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,7 +1,3 @@ multipleMethodCallTargets -| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | 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 1f44e6c07bc..4cfa6a8fff9 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CleartextLogging.expected @@ -1,389 +1,20 @@ #select -| test_logging.rs:42:5:42:36 | ...::log | test_logging.rs:42:28:42:35 | password | test_logging.rs:42:5:42:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:42:28:42:35 | password | password | -| test_logging.rs:43:5:43:36 | ...::log | test_logging.rs:43:28:43:35 | password | test_logging.rs:43:5:43:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:43:28:43:35 | password | password | -| test_logging.rs:44:5:44:35 | ...::log | test_logging.rs:44:27:44:34 | password | test_logging.rs:44:5:44:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:44:27:44:34 | password | password | -| test_logging.rs:45:5:45:36 | ...::log | test_logging.rs:45:28:45:35 | password | test_logging.rs:45:5:45:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:45:28:45:35 | password | password | -| test_logging.rs:46:5:46:35 | ...::log | test_logging.rs:46:27:46:34 | password | test_logging.rs:46:5:46:35 | ...::log | This operation writes $@ to a log file. | test_logging.rs:46:27:46:34 | password | password | -| test_logging.rs:47:5:47:48 | ...::log | test_logging.rs:47:40:47:47 | password | test_logging.rs:47:5:47:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:47:40:47:47 | password | password | -| test_logging.rs:52:5:52:36 | ...::log | test_logging.rs:52:28:52:35 | password | test_logging.rs:52:5:52:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:52:28:52:35 | password | password | -| test_logging.rs:54:5:54:49 | ...::log | test_logging.rs:54:41:54:48 | password | test_logging.rs:54:5:54:49 | ...::log | This operation writes $@ to a log file. | test_logging.rs:54:41:54:48 | password | password | -| test_logging.rs:56:5:56:47 | ...::log | test_logging.rs:56:39:56:46 | password | test_logging.rs:56:5:56:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:56:39:56:46 | password | password | -| test_logging.rs:57:5:57:34 | ...::log | test_logging.rs:57:24:57:31 | password | test_logging.rs:57:5:57:34 | ...::log | This operation writes $@ to a log file. | test_logging.rs:57:24:57:31 | password | password | -| test_logging.rs:58:5:58:36 | ...::log | test_logging.rs:58:24:58:31 | password | test_logging.rs:58:5:58:36 | ...::log | This operation writes $@ to a log file. | test_logging.rs:58:24:58:31 | password | password | -| test_logging.rs:60:5:60:54 | ...::log | test_logging.rs:60:46:60:53 | password | test_logging.rs:60:5:60:54 | ...::log | This operation writes $@ to a log file. | test_logging.rs:60:46:60:53 | password | password | -| test_logging.rs:61:5:61:55 | ...::log | test_logging.rs:61:21:61:28 | password | test_logging.rs:61:5:61:55 | ...::log | This operation writes $@ to a log file. | test_logging.rs:61:21:61:28 | password | password | -| test_logging.rs:65:5:65:48 | ...::log | test_logging.rs:65:40:65:47 | password | test_logging.rs:65:5:65:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:65:40:65:47 | password | password | -| test_logging.rs:67:5:67:66 | ...::log | test_logging.rs:67:58:67:65 | password | test_logging.rs:67:5:67:66 | ...::log | This operation writes $@ to a log file. | test_logging.rs:67:58:67:65 | password | password | -| test_logging.rs:68:5:68:67 | ...::log | test_logging.rs:68:19:68:26 | password | test_logging.rs:68:5:68:67 | ...::log | This operation writes $@ to a log file. | test_logging.rs:68:19:68:26 | password | password | -| test_logging.rs:72:5:72:47 | ...::log | test_logging.rs:72:39:72:46 | password | test_logging.rs:72:5:72:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:72:39:72:46 | password | password | -| test_logging.rs:74:5:74:65 | ...::log | test_logging.rs:74:57:74:64 | password | test_logging.rs:74:5:74:65 | ...::log | This operation writes $@ to a log file. | test_logging.rs:74:57:74:64 | password | password | -| test_logging.rs:75:5:75:51 | ...::log | test_logging.rs:75:21:75:28 | password | test_logging.rs:75:5:75:51 | ...::log | This operation writes $@ to a log file. | test_logging.rs:75:21:75:28 | password | password | -| test_logging.rs:76:5:76:47 | ...::log | test_logging.rs:76:39:76:46 | password | test_logging.rs:76:5:76:47 | ...::log | This operation writes $@ to a log file. | test_logging.rs:76:39:76:46 | password | password | -| test_logging.rs:82:5:82:44 | ...::log | test_logging.rs:82:36:82:43 | password | test_logging.rs:82:5:82:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:82:36:82:43 | password | password | -| test_logging.rs:84:5:84:62 | ...::log | test_logging.rs:84:54:84:61 | password | test_logging.rs:84:5:84:62 | ...::log | This operation writes $@ to a log file. | test_logging.rs:84:54:84:61 | password | password | -| test_logging.rs:85:5:85:48 | ...::log | test_logging.rs:85:21:85:28 | password | test_logging.rs:85:5:85:48 | ...::log | This operation writes $@ to a log file. | test_logging.rs:85:21:85:28 | password | password | -| test_logging.rs:86:5:86:44 | ...::log | test_logging.rs:86:36:86:43 | password | test_logging.rs:86:5:86:44 | ...::log | This operation writes $@ to a log file. | test_logging.rs:86:36:86:43 | password | password | -| test_logging.rs:94:5:94:29 | ...::log | test_logging.rs:93:15:93:22 | password | test_logging.rs:94:5:94:29 | ...::log | This operation writes $@ to a log file. | test_logging.rs:93:15:93:22 | password | password | -| test_logging.rs:97:5:97:19 | ...::log | test_logging.rs:96:42:96:49 | password | test_logging.rs:97:5:97:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:96:42:96:49 | password | password | -| test_logging.rs:100:5:100:19 | ...::log | test_logging.rs:99:38:99:45 | password | test_logging.rs:100:5:100:19 | ...::log | This operation writes $@ to a log file. | test_logging.rs:99:38:99:45 | password | password | -| test_logging.rs:118:5:118:42 | ...::log | test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:5:118:42 | ...::log | This operation writes $@ to a log file. | test_logging.rs:118:28:118:41 | get_password(...) | get_password(...) | -| test_logging.rs:131:5:131:32 | ...::log | test_logging.rs:129:25:129:32 | password | test_logging.rs:131:5:131:32 | ...::log | This operation writes $@ to a log file. | test_logging.rs:129:25:129:32 | password | password | -| test_logging.rs:141:5:141:38 | ...::log | test_logging.rs:141:27:141:37 | s1.password | test_logging.rs:141:5:141:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:141:27:141:37 | s1.password | s1.password | -| test_logging.rs:151:5:151:38 | ...::log | test_logging.rs:151:27:151:37 | s2.password | test_logging.rs:151:5:151:38 | ...::log | This operation writes $@ to a log file. | test_logging.rs:151:27:151:37 | s2.password | s2.password | -| test_logging.rs:176:22:176:31 | log_expect | test_logging.rs:176:70:176:78 | password2 | test_logging.rs:176:22:176:31 | log_expect | This operation writes $@ to a log file. | test_logging.rs:176:70:176:78 | password2 | password2 | -| test_logging.rs:180:24:180:33 | log_expect | test_logging.rs:180:72:180:80 | password2 | test_logging.rs:180:24:180:33 | log_expect | This operation writes $@ to a log file. | test_logging.rs:180:72:180:80 | password2 | password2 | | test_logging.rs:184:25:184:34 | log_expect | test_logging.rs:183:51:183:59 | password2 | test_logging.rs:184:25:184:34 | log_expect | This operation writes $@ to a log file. | test_logging.rs:183:51:183:59 | password2 | password2 | | test_logging.rs:188:25:188:34 | log_unwrap | test_logging.rs:187:51:187:59 | password2 | test_logging.rs:188:25:188:34 | log_unwrap | This operation writes $@ to a log file. | test_logging.rs:187:51:187:59 | password2 | password2 | -| test_logging.rs:192:5:192:38 | ...::_print | test_logging.rs:192:30:192:37 | password | test_logging.rs:192:5:192:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:192:30:192:37 | password | password | -| test_logging.rs:193:5:193:38 | ...::_print | test_logging.rs:193:30:193:37 | password | test_logging.rs:193:5:193:38 | ...::_print | This operation writes $@ to a log file. | test_logging.rs:193:30:193:37 | password | password | -| test_logging.rs:194:5:194:39 | ...::_eprint | test_logging.rs:194:31:194:38 | password | test_logging.rs:194:5:194:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:194:31:194:38 | password | password | -| test_logging.rs:195:5:195:39 | ...::_eprint | test_logging.rs:195:31:195:38 | password | test_logging.rs:195:5:195:39 | ...::_eprint | This operation writes $@ to a log file. | test_logging.rs:195:31:195:38 | password | password | -| test_logging.rs:199:13:199:44 | ...::panic_fmt | test_logging.rs:199:36:199:43 | password | test_logging.rs:199:13:199:44 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:199:36:199:43 | password | password | -| test_logging.rs:202:13:202:43 | ...::panic_fmt | test_logging.rs:202:35:202:42 | password | test_logging.rs:202:13:202:43 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:202:35:202:42 | password | password | -| test_logging.rs:205:13:205:52 | ...::panic_fmt | test_logging.rs:205:44:205:51 | password | test_logging.rs:205:13:205:52 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:205:44:205:51 | password | password | -| test_logging.rs:208:13:208:50 | ...::panic_fmt | test_logging.rs:208:42:208:49 | password | test_logging.rs:208:13:208:50 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:208:42:208:49 | password | password | -| test_logging.rs:211:13:211:52 | ...::panic_fmt | test_logging.rs:211:44:211:51 | password | test_logging.rs:211:13:211:52 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:211:44:211:51 | password | password | -| test_logging.rs:214:13:214:54 | ...::assert_failed | test_logging.rs:214:46:214:53 | password | test_logging.rs:214:13:214:54 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:214:46:214:53 | password | password | -| test_logging.rs:217:13:217:54 | ...::assert_failed | test_logging.rs:217:46:217:53 | password | test_logging.rs:217:13:217:54 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:217:46:217:53 | password | password | -| test_logging.rs:220:13:220:58 | ...::panic_fmt | test_logging.rs:220:50:220:57 | password | test_logging.rs:220:13:220:58 | ...::panic_fmt | This operation writes $@ to a log file. | test_logging.rs:220:50:220:57 | password | password | -| test_logging.rs:223:13:223:60 | ...::assert_failed | test_logging.rs:223:52:223:59 | password | test_logging.rs:223:13:223:60 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:223:52:223:59 | password | password | -| test_logging.rs:226:13:226:60 | ...::assert_failed | test_logging.rs:226:52:226:59 | password | test_logging.rs:226:13:226:60 | ...::assert_failed | This operation writes $@ to a log file. | test_logging.rs:226:52:226:59 | password | password | edges -| test_logging.rs:42:12:42:35 | MacroExpr | test_logging.rs:42:5:42:36 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:42:28:42:35 | password | test_logging.rs:42:12:42:35 | MacroExpr | provenance | | -| test_logging.rs:43:12:43:35 | MacroExpr | test_logging.rs:43:5:43:36 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:43:28:43:35 | password | test_logging.rs:43:12:43:35 | MacroExpr | provenance | | -| test_logging.rs:44:11:44:34 | MacroExpr | test_logging.rs:44:5:44:35 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:44:27:44:34 | password | test_logging.rs:44:11:44:34 | MacroExpr | provenance | | -| test_logging.rs:45:12:45:35 | MacroExpr | test_logging.rs:45:5:45:36 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:45:28:45:35 | password | test_logging.rs:45:12:45:35 | MacroExpr | provenance | | -| test_logging.rs:46:11:46:34 | MacroExpr | test_logging.rs:46:5:46:35 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:46:27:46:34 | password | test_logging.rs:46:11:46:34 | MacroExpr | provenance | | -| test_logging.rs:47:24:47:47 | MacroExpr | test_logging.rs:47:5:47:48 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:47:40:47:47 | password | test_logging.rs:47:24:47:47 | MacroExpr | provenance | | -| test_logging.rs:52:12:52:35 | MacroExpr | test_logging.rs:52:5:52:36 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:52:28:52:35 | password | test_logging.rs:52:12:52:35 | MacroExpr | provenance | | -| test_logging.rs:54:12:54:48 | MacroExpr | test_logging.rs:54:5:54:49 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:54:41:54:48 | password | test_logging.rs:54:12:54:48 | MacroExpr | provenance | | -| test_logging.rs:56:12:56:46 | MacroExpr | test_logging.rs:56:5:56:47 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:56:39:56:46 | password | test_logging.rs:56:12:56:46 | MacroExpr | provenance | | -| test_logging.rs:57:12:57:33 | MacroExpr | test_logging.rs:57:5:57:34 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:57:24:57:31 | password | test_logging.rs:57:12:57:33 | MacroExpr | provenance | | -| test_logging.rs:58:12:58:35 | MacroExpr | test_logging.rs:58:5:58:36 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:58:24:58:31 | password | test_logging.rs:58:12:58:35 | MacroExpr | provenance | | -| test_logging.rs:60:30:60:53 | MacroExpr | test_logging.rs:60:5:60:54 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:60:46:60:53 | password | test_logging.rs:60:30:60:53 | MacroExpr | provenance | | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | test_logging.rs:61:5:61:55 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:61:20:61:28 | &password | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:61:20:61:28 | &password [&ref] | test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password | provenance | Config | -| test_logging.rs:61:21:61:28 | password | test_logging.rs:61:20:61:28 | &password [&ref] | provenance | | -| test_logging.rs:65:24:65:47 | MacroExpr | test_logging.rs:65:5:65:48 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:65:40:65:47 | password | test_logging.rs:65:24:65:47 | MacroExpr | provenance | | -| test_logging.rs:67:42:67:65 | MacroExpr | test_logging.rs:67:5:67:66 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:67:58:67:65 | password | test_logging.rs:67:42:67:65 | MacroExpr | provenance | | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | test_logging.rs:68:5:68:67 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:68:18:68:26 | &password | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:68:18:68:26 | &password [&ref] | test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password | provenance | Config | -| test_logging.rs:68:19:68:26 | password | test_logging.rs:68:18:68:26 | &password [&ref] | provenance | | -| test_logging.rs:72:23:72:46 | MacroExpr | test_logging.rs:72:5:72:47 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:72:39:72:46 | password | test_logging.rs:72:23:72:46 | MacroExpr | provenance | | -| test_logging.rs:74:41:74:64 | MacroExpr | test_logging.rs:74:5:74:65 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:74:57:74:64 | password | test_logging.rs:74:41:74:64 | MacroExpr | provenance | | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | test_logging.rs:75:5:75:51 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:75:20:75:28 | &password | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:75:20:75:28 | &password [&ref] | test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password | provenance | Config | -| test_logging.rs:75:21:75:28 | password | test_logging.rs:75:20:75:28 | &password [&ref] | provenance | | -| test_logging.rs:76:23:76:46 | MacroExpr | test_logging.rs:76:5:76:47 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:76:39:76:46 | password | test_logging.rs:76:23:76:46 | MacroExpr | provenance | | -| test_logging.rs:82:20:82:43 | MacroExpr | test_logging.rs:82:5:82:44 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:82:36:82:43 | password | test_logging.rs:82:20:82:43 | MacroExpr | provenance | | -| test_logging.rs:84:38:84:61 | MacroExpr | test_logging.rs:84:5:84:62 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:84:54:84:61 | password | test_logging.rs:84:38:84:61 | MacroExpr | provenance | | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | test_logging.rs:85:5:85:48 | ...::log | provenance | MaD:11 Sink:MaD:11 Sink:MaD:11 | -| test_logging.rs:85:20:85:28 | &password | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | provenance | | -| test_logging.rs:85:20:85:28 | &password [&ref] | test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | provenance | | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | provenance | | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | provenance | | -| test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password | provenance | Config | -| test_logging.rs:85:21:85:28 | password | test_logging.rs:85:20:85:28 | &password [&ref] | provenance | | -| test_logging.rs:86:20:86:43 | MacroExpr | test_logging.rs:86:5:86:44 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:86:36:86:43 | password | test_logging.rs:86:20:86:43 | MacroExpr | provenance | | -| test_logging.rs:93:9:93:10 | m1 | test_logging.rs:94:11:94:28 | MacroExpr | provenance | | -| test_logging.rs:93:14:93:22 | &password | test_logging.rs:93:9:93:10 | m1 | provenance | | -| test_logging.rs:93:15:93:22 | password | test_logging.rs:93:14:93:22 | &password | provenance | Config | -| test_logging.rs:94:11:94:28 | MacroExpr | test_logging.rs:94:5:94:29 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:96:9:96:10 | m2 | test_logging.rs:97:11:97:18 | MacroExpr | provenance | | -| test_logging.rs:96:41:96:49 | &password | test_logging.rs:96:9:96:10 | m2 | provenance | | -| test_logging.rs:96:42:96:49 | password | test_logging.rs:96:41:96:49 | &password | provenance | Config | -| test_logging.rs:97:11:97:18 | MacroExpr | test_logging.rs:97:5:97:19 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:99:9:99:10 | m3 | test_logging.rs:100:11:100:18 | MacroExpr | provenance | | -| test_logging.rs:99:14:99:46 | res | test_logging.rs:99:22:99:45 | { ... } | provenance | | -| test_logging.rs:99:22:99:45 | ...::format(...) | test_logging.rs:99:14:99:46 | res | 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:12 | -| test_logging.rs:99:22:99:45 | { ... } | test_logging.rs:99:22:99:45 | ...::must_use(...) | provenance | MaD:13 | -| 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:19 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:118:12:118:41 | MacroExpr | test_logging.rs:118:5:118:42 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:118:28:118:41 | get_password(...) | test_logging.rs:118:12:118:41 | MacroExpr | provenance | | -| test_logging.rs:129:9:129:10 | t1 [tuple.1] | test_logging.rs:131:28:131:29 | t1 [tuple.1] | provenance | | -| test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | test_logging.rs:129:9:129:10 | t1 [tuple.1] | provenance | | -| test_logging.rs:129:25:129:32 | password | test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | provenance | | -| test_logging.rs:131:12:131:31 | MacroExpr | test_logging.rs:131:5:131:32 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:131:28:131:29 | t1 [tuple.1] | test_logging.rs:131:28:131:31 | t1.1 | provenance | | -| test_logging.rs:131:28:131:31 | t1.1 | test_logging.rs:131:12:131:31 | MacroExpr | provenance | | -| test_logging.rs:141:11:141:37 | MacroExpr | test_logging.rs:141:5:141:38 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:141:27:141:37 | s1.password | test_logging.rs:141:11:141:37 | MacroExpr | provenance | | -| test_logging.rs:151:11:151:37 | MacroExpr | test_logging.rs:151:5:151:38 | ...::log | provenance | MaD:10 Sink:MaD:10 | -| test_logging.rs:151:27:151:37 | s2.password | test_logging.rs:151:11:151:37 | MacroExpr | provenance | | -| test_logging.rs:176:33:176:79 | &... | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:6 Sink:MaD:6 | -| test_logging.rs:176:33:176:79 | &... [&ref] | test_logging.rs:176:22:176:31 | log_expect | provenance | MaD:6 Sink:MaD:6 | -| test_logging.rs:176:34:176:79 | MacroExpr | test_logging.rs:176:33:176:79 | &... | provenance | Config | -| test_logging.rs:176:34:176:79 | MacroExpr | test_logging.rs:176:33:176:79 | &... [&ref] | provenance | | -| test_logging.rs:176:34:176:79 | res | test_logging.rs:176:42:176:78 | { ... } | provenance | | -| test_logging.rs:176:42:176:78 | ...::format(...) | test_logging.rs:176:34:176:79 | res | 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:12 | -| test_logging.rs:176:42:176:78 | { ... } | test_logging.rs:176:42:176:78 | ...::must_use(...) | provenance | MaD:13 | -| 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:7 Sink:MaD:7 | -| test_logging.rs:180:35:180:81 | &... [&ref] | test_logging.rs:180:24:180:33 | log_expect | provenance | MaD:7 Sink:MaD:7 | -| test_logging.rs:180:36:180:81 | MacroExpr | test_logging.rs:180:35:180:81 | &... | provenance | Config | -| test_logging.rs:180:36:180:81 | MacroExpr | test_logging.rs:180:35:180:81 | &... [&ref] | provenance | | -| test_logging.rs:180:36:180:81 | res | test_logging.rs:180:44:180:80 | { ... } | provenance | | -| test_logging.rs:180:44:180:80 | ...::format(...) | test_logging.rs:180:36:180:81 | res | 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:12 | -| test_logging.rs:180:44:180:80 | { ... } | test_logging.rs:180:44:180:80 | ...::must_use(...) | provenance | MaD:13 | -| 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 | | | test_logging.rs:183:51:183:59 | password2 | test_logging.rs:183:51:183:67 | password2.clone() | provenance | generated | | test_logging.rs:183:51:183:67 | password2.clone() | test_logging.rs:183:47:183:68 | Err(...) [Err] | provenance | | -| test_logging.rs:184:13:184:23 | err_result2 [Err] | test_logging.rs:184:25:184:34 | log_expect | provenance | MaD:8 Sink:MaD:8 | +| test_logging.rs:184:13:184:23 | err_result2 [Err] | test_logging.rs:184:25:184:34 | log_expect | provenance | MaD:1 Sink:MaD:1 | | test_logging.rs:187:9:187:19 | err_result3 [Err] | test_logging.rs:188:13:188:23 | err_result3 [Err] | provenance | | | test_logging.rs:187:47:187:60 | Err(...) [Err] | test_logging.rs:187:9:187:19 | err_result3 [Err] | provenance | | | test_logging.rs:187:51:187:59 | password2 | test_logging.rs:187:47:187:60 | Err(...) [Err] | provenance | | -| test_logging.rs:188:13:188:23 | err_result3 [Err] | test_logging.rs:188:25:188:34 | log_unwrap | provenance | MaD:9 Sink:MaD:9 | -| test_logging.rs:192:12:192:37 | MacroExpr | test_logging.rs:192:5:192:38 | ...::_print | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:192:30:192:37 | password | test_logging.rs:192:12:192:37 | MacroExpr | provenance | | -| test_logging.rs:193:14:193:37 | MacroExpr | test_logging.rs:193:5:193:38 | ...::_print | provenance | MaD:5 Sink:MaD:5 | -| test_logging.rs:193:30:193:37 | password | test_logging.rs:193:14:193:37 | MacroExpr | provenance | | -| test_logging.rs:194:13:194:38 | MacroExpr | test_logging.rs:194:5:194:39 | ...::_eprint | provenance | MaD:4 Sink:MaD:4 | -| test_logging.rs:194:31:194:38 | password | test_logging.rs:194:13:194:38 | MacroExpr | provenance | | -| test_logging.rs:195:15:195:38 | MacroExpr | test_logging.rs:195:5:195:39 | ...::_eprint | provenance | MaD:4 Sink:MaD:4 | -| test_logging.rs:195:31:195:38 | password | test_logging.rs:195:15:195:38 | MacroExpr | provenance | | -| test_logging.rs:199:20:199:43 | MacroExpr | test_logging.rs:199:13:199:44 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:199:36:199:43 | password | test_logging.rs:199:20:199:43 | MacroExpr | provenance | | -| test_logging.rs:202:19:202:42 | MacroExpr | test_logging.rs:202:13:202:43 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:202:35:202:42 | password | test_logging.rs:202:19:202:42 | MacroExpr | provenance | | -| test_logging.rs:205:28:205:51 | MacroExpr | test_logging.rs:205:13:205:52 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:205:44:205:51 | password | test_logging.rs:205:28:205:51 | MacroExpr | provenance | | -| test_logging.rs:208:26:208:49 | MacroExpr | test_logging.rs:208:13:208:50 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:208:42:208:49 | password | test_logging.rs:208:26:208:49 | MacroExpr | provenance | | -| test_logging.rs:211:28:211:51 | MacroExpr | test_logging.rs:211:13:211:52 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:211:44:211:51 | password | test_logging.rs:211:28:211:51 | MacroExpr | provenance | | -| test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | provenance | MaD:2 | -| test_logging.rs:214:30:214:53 | MacroExpr | test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:214:46:214:53 | password | test_logging.rs:214:30:214:53 | MacroExpr | provenance | | -| test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | provenance | MaD:2 | -| test_logging.rs:217:30:217:53 | MacroExpr | test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:217:46:217:53 | password | test_logging.rs:217:30:217:53 | MacroExpr | provenance | | -| test_logging.rs:220:34:220:57 | MacroExpr | test_logging.rs:220:13:220:58 | ...::panic_fmt | provenance | MaD:3 Sink:MaD:3 | -| test_logging.rs:220:50:220:57 | password | test_logging.rs:220:34:220:57 | MacroExpr | provenance | | -| test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | provenance | MaD:2 | -| test_logging.rs:223:36:223:59 | MacroExpr | test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | provenance | | -| test_logging.rs:223:52:223:59 | password | test_logging.rs:223:36:223:59 | MacroExpr | provenance | | -| test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | Sink:MaD:1 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed | provenance | MaD:1 Sink:MaD:1 | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | provenance | MaD:2 | -| 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:188:13:188:23 | err_result3 [Err] | test_logging.rs:188:25:188:34 | log_unwrap | provenance | MaD:2 Sink:MaD:2 | models -| 1 | Sink: lang:core; crate::panicking::assert_failed; Argument[3].Field[core::option::Option::Some(0)]; log-injection | -| 2 | Sink: lang:core; crate::panicking::assert_failed; Argument[3]; log-injection | -| 3 | Sink: lang:core; crate::panicking::panic_fmt; Argument[0]; log-injection | -| 4 | Sink: lang:std; crate::io::stdio::_eprint; Argument[0]; log-injection | -| 5 | Sink: lang:std; crate::io::stdio::_print; Argument[0]; log-injection | -| 6 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; Argument[0]; log-injection | -| 7 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; Argument[0]; log-injection | -| 8 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; Argument[self].Field[core::result::Result::Err(0)]; log-injection | -| 9 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_unwrap; Argument[self].Field[core::result::Result::Err(0)]; log-injection | -| 10 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; Argument[1]; log-injection | -| 11 | Sink: repo:https://github.com/rust-lang/log:log; crate::__private_api::log; Argument[3]; log-injection | -| 12 | Summary: lang:alloc; crate::fmt::format; Argument[0]; ReturnValue; taint | -| 13 | Summary: lang:core; crate::hint::must_use; Argument[0]; ReturnValue; value | +| 1 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_expect; Argument[self].Field[core::result::Result::Err(0)]; log-injection | +| 2 | Sink: repo:https://github.com/DesmondWillowbrook/rs-log_err:log_err; ::log_unwrap; Argument[self].Field[core::result::Result::Err(0)]; log-injection | nodes -| test_logging.rs:42:5:42:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:42:12:42:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:42:28:42:35 | password | semmle.label | password | -| test_logging.rs:43:5:43:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:43:12:43:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:43:28:43:35 | password | semmle.label | password | -| test_logging.rs:44:5:44:35 | ...::log | semmle.label | ...::log | -| test_logging.rs:44:11:44:34 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:44:27:44:34 | password | semmle.label | password | -| test_logging.rs:45:5:45:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:45:12:45:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:45:28:45:35 | password | semmle.label | password | -| test_logging.rs:46:5:46:35 | ...::log | semmle.label | ...::log | -| test_logging.rs:46:11:46:34 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:46:27:46:34 | password | semmle.label | password | -| test_logging.rs:47:5:47:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:47:24:47:47 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:47:40:47:47 | password | semmle.label | password | -| test_logging.rs:52:5:52:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:52:12:52:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:52:28:52:35 | password | semmle.label | password | -| test_logging.rs:54:5:54:49 | ...::log | semmle.label | ...::log | -| test_logging.rs:54:12:54:48 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:54:41:54:48 | password | semmle.label | password | -| test_logging.rs:56:5:56:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:56:12:56:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:56:39:56:46 | password | semmle.label | password | -| test_logging.rs:57:5:57:34 | ...::log | semmle.label | ...::log | -| test_logging.rs:57:12:57:33 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:57:24:57:31 | password | semmle.label | password | -| test_logging.rs:58:5:58:36 | ...::log | semmle.label | ...::log | -| test_logging.rs:58:12:58:35 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:58:24:58:31 | password | semmle.label | password | -| test_logging.rs:60:5:60:54 | ...::log | semmle.label | ...::log | -| test_logging.rs:60:30:60:53 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:60:46:60:53 | password | semmle.label | password | -| test_logging.rs:61:5:61:55 | ...::log | semmle.label | ...::log | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:61:20:61:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:61:20:61:28 | &password | semmle.label | &password | -| test_logging.rs:61:20:61:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:61:20:61:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:61:21:61:28 | password | semmle.label | password | -| test_logging.rs:65:5:65:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:65:24:65:47 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:65:40:65:47 | password | semmle.label | password | -| test_logging.rs:67:5:67:66 | ...::log | semmle.label | ...::log | -| test_logging.rs:67:42:67:65 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:67:58:67:65 | password | semmle.label | password | -| test_logging.rs:68:5:68:67 | ...::log | semmle.label | ...::log | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:68:18:68:26 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:68:18:68:26 | &password | semmle.label | &password | -| test_logging.rs:68:18:68:26 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:68:18:68:26 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:68:19:68:26 | password | semmle.label | password | -| test_logging.rs:72:5:72:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:72:23:72:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:72:39:72:46 | password | semmle.label | password | -| test_logging.rs:74:5:74:65 | ...::log | semmle.label | ...::log | -| test_logging.rs:74:41:74:64 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:74:57:74:64 | password | semmle.label | password | -| test_logging.rs:75:5:75:51 | ...::log | semmle.label | ...::log | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:75:20:75:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:75:20:75:28 | &password | semmle.label | &password | -| test_logging.rs:75:20:75:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:75:20:75:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:75:21:75:28 | password | semmle.label | password | -| test_logging.rs:76:5:76:47 | ...::log | semmle.label | ...::log | -| test_logging.rs:76:23:76:46 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:76:39:76:46 | password | semmle.label | password | -| test_logging.rs:82:5:82:44 | ...::log | semmle.label | ...::log | -| test_logging.rs:82:20:82:43 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:82:36:82:43 | password | semmle.label | password | -| test_logging.rs:84:5:84:62 | ...::log | semmle.label | ...::log | -| test_logging.rs:84:38:84:61 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:84:54:84:61 | password | semmle.label | password | -| test_logging.rs:85:5:85:48 | ...::log | semmle.label | ...::log | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0, &ref] | semmle.label | &... [&ref, tuple.0, &ref] | -| test_logging.rs:85:20:85:28 | &... [&ref, tuple.0] | semmle.label | &... [&ref, tuple.0] | -| test_logging.rs:85:20:85:28 | &password | semmle.label | &password | -| test_logging.rs:85:20:85:28 | &password [&ref] | semmle.label | &password [&ref] | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0, &ref] | semmle.label | TupleExpr [tuple.0, &ref] | -| test_logging.rs:85:20:85:28 | TupleExpr [tuple.0] | semmle.label | TupleExpr [tuple.0] | -| test_logging.rs:85:21:85:28 | password | semmle.label | password | -| test_logging.rs:86:5:86:44 | ...::log | semmle.label | ...::log | -| test_logging.rs:86:20:86:43 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:86:36:86:43 | password | semmle.label | password | -| test_logging.rs:93:9:93:10 | m1 | semmle.label | m1 | -| test_logging.rs:93:14:93:22 | &password | semmle.label | &password | -| test_logging.rs:93:15:93:22 | password | semmle.label | password | -| test_logging.rs:94:5:94:29 | ...::log | semmle.label | ...::log | -| test_logging.rs:94:11:94:28 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:96:9:96:10 | m2 | semmle.label | m2 | -| test_logging.rs:96:41:96:49 | &password | semmle.label | &password | -| test_logging.rs:96:42:96:49 | password | semmle.label | password | -| test_logging.rs:97:5:97:19 | ...::log | semmle.label | ...::log | -| test_logging.rs:97:11:97:18 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:99:9:99:10 | m3 | semmle.label | m3 | -| test_logging.rs:99:14:99:46 | res | semmle.label | res | -| test_logging.rs:99:22:99:45 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:99:22:99:45 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:99:22:99:45 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:99:22:99:45 | { ... } | semmle.label | { ... } | -| test_logging.rs:99:38:99:45 | password | semmle.label | password | -| test_logging.rs:100:5:100:19 | ...::log | semmle.label | ...::log | -| test_logging.rs:100:11:100:18 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:118:5:118:42 | ...::log | semmle.label | ...::log | -| test_logging.rs:118:12:118:41 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:118:28:118:41 | get_password(...) | semmle.label | get_password(...) | -| test_logging.rs:129:9:129:10 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | -| test_logging.rs:129:14:129:33 | TupleExpr [tuple.1] | semmle.label | TupleExpr [tuple.1] | -| test_logging.rs:129:25:129:32 | password | semmle.label | password | -| test_logging.rs:131:5:131:32 | ...::log | semmle.label | ...::log | -| test_logging.rs:131:12:131:31 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:131:28:131:29 | t1 [tuple.1] | semmle.label | t1 [tuple.1] | -| test_logging.rs:131:28:131:31 | t1.1 | semmle.label | t1.1 | -| test_logging.rs:141:5:141:38 | ...::log | semmle.label | ...::log | -| test_logging.rs:141:11:141:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:141:27:141:37 | s1.password | semmle.label | s1.password | -| test_logging.rs:151:5:151:38 | ...::log | semmle.label | ...::log | -| test_logging.rs:151:11:151:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:151:27:151:37 | s2.password | semmle.label | s2.password | -| test_logging.rs:176:22:176:31 | log_expect | semmle.label | log_expect | -| test_logging.rs:176:33:176:79 | &... | semmle.label | &... | -| test_logging.rs:176:33:176:79 | &... [&ref] | semmle.label | &... [&ref] | -| test_logging.rs:176:34:176:79 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:176:34:176:79 | res | semmle.label | res | -| test_logging.rs:176:42:176:78 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:176:42:176:78 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:176:42:176:78 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:176:42:176:78 | { ... } | semmle.label | { ... } | -| test_logging.rs:176:70:176:78 | password2 | semmle.label | password2 | -| test_logging.rs:180:24:180:33 | log_expect | semmle.label | log_expect | -| test_logging.rs:180:35:180:81 | &... | semmle.label | &... | -| test_logging.rs:180:35:180:81 | &... [&ref] | semmle.label | &... [&ref] | -| test_logging.rs:180:36:180:81 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:180:36:180:81 | res | semmle.label | res | -| test_logging.rs:180:44:180:80 | ...::format(...) | semmle.label | ...::format(...) | -| test_logging.rs:180:44:180:80 | ...::must_use(...) | semmle.label | ...::must_use(...) | -| test_logging.rs:180:44:180:80 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:180:44:180:80 | { ... } | semmle.label | { ... } | -| test_logging.rs:180:72:180:80 | password2 | semmle.label | password2 | | test_logging.rs:183:9:183:19 | err_result2 [Err] | semmle.label | err_result2 [Err] | | test_logging.rs:183:47:183:68 | Err(...) [Err] | semmle.label | Err(...) [Err] | | test_logging.rs:183:51:183:59 | password2 | semmle.label | password2 | @@ -395,54 +26,56 @@ nodes | test_logging.rs:187:51:187:59 | password2 | semmle.label | password2 | | test_logging.rs:188:13:188:23 | err_result3 [Err] | semmle.label | err_result3 [Err] | | test_logging.rs:188:25:188:34 | log_unwrap | semmle.label | log_unwrap | -| test_logging.rs:192:5:192:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:192:12:192:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:192:30:192:37 | password | semmle.label | password | -| test_logging.rs:193:5:193:38 | ...::_print | semmle.label | ...::_print | -| test_logging.rs:193:14:193:37 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:193:30:193:37 | password | semmle.label | password | -| test_logging.rs:194:5:194:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:194:13:194:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:194:31:194:38 | password | semmle.label | password | -| test_logging.rs:195:5:195:39 | ...::_eprint | semmle.label | ...::_eprint | -| test_logging.rs:195:15:195:38 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:195:31:195:38 | password | semmle.label | password | -| test_logging.rs:199:13:199:44 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:199:20:199:43 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:199:36:199:43 | password | semmle.label | password | -| test_logging.rs:202:13:202:43 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:202:19:202:42 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:202:35:202:42 | password | semmle.label | password | -| test_logging.rs:205:13:205:52 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:205:28:205:51 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:205:44:205:51 | password | semmle.label | password | -| test_logging.rs:208:13:208:50 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:208:26:208:49 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:208:42:208:49 | password | semmle.label | password | -| test_logging.rs:211:13:211:52 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:211:28:211:51 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:211:44:211:51 | password | semmle.label | password | -| test_logging.rs:214:13:214:54 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:214:13:214:54 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | -| test_logging.rs:214:30:214:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:214:30:214:53 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:214:46:214:53 | password | semmle.label | password | -| test_logging.rs:217:13:217:54 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:217:13:217:54 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | -| test_logging.rs:217:30:217:53 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:217:30:217:53 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:217:46:217:53 | password | semmle.label | password | -| test_logging.rs:220:13:220:58 | ...::panic_fmt | semmle.label | ...::panic_fmt | -| test_logging.rs:220:34:220:57 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:220:50:220:57 | password | semmle.label | password | -| test_logging.rs:223:13:223:60 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:223:13:223:60 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | -| test_logging.rs:223:36:223:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:223:36:223:59 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:223:52:223:59 | password | semmle.label | password | -| test_logging.rs:226:13:226:60 | ...::assert_failed | semmle.label | ...::assert_failed | -| test_logging.rs:226:13:226:60 | ...::assert_failed [Some] | semmle.label | ...::assert_failed [Some] | -| test_logging.rs:226:36:226:59 | ...::Some(...) [Some] | semmle.label | ...::Some(...) [Some] | -| test_logging.rs:226:36:226:59 | MacroExpr | semmle.label | MacroExpr | -| test_logging.rs:226:52:226:59 | password | semmle.label | password | subpaths +testFailures +| test_logging.rs:42:39:42:72 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:43:39:43:72 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:44:38:44:71 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:45:39:45:72 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:46:38:46:71 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:47:51:47:84 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:52:39:52:72 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:54:52:54:85 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:56:50:56:83 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:57:37:57:70 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:58:39:58:72 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:60:57:60:90 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:61:58:61:91 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:65:51:65:84 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:67:69:67:102 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:68:70:68:103 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:72:50:72:83 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:74:68:74:101 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:75:54:75:87 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:76:50:76:83 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:82:47:82:80 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:84:65:84:98 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:85:51:85:84 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:86:47:86:80 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:93:25:93:38 | //... | Missing result: Source=m1 | +| test_logging.rs:94:32:94:68 | //... | Missing result: Alert[rust/cleartext-logging]=m1 | +| test_logging.rs:96:52:96:65 | //... | Missing result: Source=m2 | +| test_logging.rs:97:22:97:58 | //... | Missing result: Alert[rust/cleartext-logging]=m2 | +| test_logging.rs:99:49:99:62 | //... | Missing result: Source=m3 | +| test_logging.rs:100:22:100:59 | //... | Missing result: Alert[rust/cleartext-logging]=m3 | +| test_logging.rs:118:45:118:78 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:129:36:129:49 | //... | Missing result: Source=t1 | +| test_logging.rs:131:35:131:71 | //... | Missing result: Alert[rust/cleartext-logging]=t1 | +| test_logging.rs:141:41:141:74 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:151:41:151:74 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:176:83:176:116 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:180:85:180:118 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:192:41:192:74 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:193:41:193:74 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:194:42:194:75 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:195:42:195:75 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:199:47:199:80 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:202:46:202:79 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:205:55:205:88 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:208:53:208:86 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:211:55:211:88 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:214:57:214:90 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:217:57:217:90 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:220:61:220:94 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:223:63:223:96 | //... | Missing result: Alert[rust/cleartext-logging] | +| test_logging.rs:226:63:226:96 | //... | Missing result: Alert[rust/cleartext-logging] | diff --git a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected index 3ac74a3cb13..0f81d76dd89 100644 --- a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected +++ b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected @@ -1,71 +1,51 @@ #select -| test.rs:30:9:30:24 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | -| test.rs:30:9:30:48 | ... .write(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | -| test.rs:35:9:35:24 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | -| test.rs:35:9:35:48 | ... .write(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | -| test.rs:42:9:42:24 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | -| test.rs:42:9:42:48 | ... .write(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | -| test.rs:52:9:52:15 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:15 | stdout(...) | Call to stdout(...) from the standard library in a function with the ctor attribute. | -| test.rs:52:9:52:39 | ... .write(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:39 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | -| test.rs:57:9:57:15 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:15 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | -| test.rs:57:9:57:43 | ... .write_all(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:43 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | -| test.rs:62:14:62:28 | ...::_print(...) | test.rs:60:1:60:7 | Attr | test.rs:62:14:62:28 | ...::_print(...) | Call to ...::_print(...) from the standard library in a function with the ctor attribute. | -| test.rs:68:9:68:23 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:23 | ...::stdin(...) | Call to ...::stdin(...) from the standard library in a function with the ctor attribute. | -| test.rs:68:9:68:44 | ... .read_line(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:44 | ... .read_line(...) | Call to ... .read_line(...) from the standard library in a function with the ctor attribute. | -| test.rs:75:17:75:44 | ...::create(...) | test.rs:73:1:73:7 | Attr | test.rs:75:17:75:44 | ...::create(...) | Call to ...::create(...) from the standard library in a function with the ctor attribute. | -| test.rs:80:14:80:37 | ...::now(...) | test.rs:78:1:78:7 | Attr | test.rs:80:14:80:37 | ...::now(...) | Call to ...::now(...) from the standard library in a function with the ctor attribute. | -| test.rs:89:5:89:34 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:34 | ...::sleep(...) | Call to ...::sleep(...) from the standard library in a function with the ctor attribute. | -| test.rs:96:5:96:22 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:22 | ...::exit(...) | Call to ...::exit(...) from the standard library in a function with the ctor attribute. | +| test.rs:30:9:30:25 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:35:9:35:25 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:42:9:42:25 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:52:9:52:16 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:16 | stdout(...) | Call to stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:57:9:57:16 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:68:9:68:24 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:24 | ...::stdin(...) | Call to ...::stdin(...) from the standard library in a function with the ctor attribute. | +| test.rs:89:5:89:35 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:35 | ...::sleep(...) | Call to ...::sleep(...) from the standard library in a function with the ctor attribute. | +| test.rs:96:5:96:23 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:23 | ...::exit(...) | Call to ...::exit(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | -| test.rs:168:1:168:7 | ... .write(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | -| test.rs:168:1:168:7 | ...::stdout(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | edges -| test.rs:28:1:28:13 | Attr | test.rs:29:4:30:50 | fn bad1_1 | -| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:24 | ...::stdout(...) | -| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:48 | ... .write(...) | -| test.rs:33:1:33:13 | Attr | test.rs:34:4:35:50 | fn bad1_2 | -| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:24 | ...::stdout(...) | -| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:48 | ... .write(...) | -| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:24 | ...::stdout(...) | -| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:48 | ... .write(...) | -| test.rs:39:1:39:13 | Attr | test.rs:38:1:42:50 | fn bad1_3 | -| test.rs:50:1:50:7 | Attr | test.rs:51:4:52:41 | fn bad2_1 | -| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:15 | stdout(...) | -| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:39 | ... .write(...) | -| test.rs:55:1:55:7 | Attr | test.rs:56:4:57:45 | fn bad2_2 | -| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:15 | stderr(...) | -| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:43 | ... .write_all(...) | -| test.rs:60:1:60:7 | Attr | test.rs:61:4:62:30 | fn bad2_3 | -| test.rs:61:4:62:30 | fn bad2_3 | test.rs:62:14:62:28 | ...::_print(...) | -| test.rs:65:1:65:7 | Attr | test.rs:66:4:68:46 | fn bad2_4 | -| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:23 | ...::stdin(...) | -| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:44 | ... .read_line(...) | -| test.rs:73:1:73:7 | Attr | test.rs:74:4:75:55 | fn bad2_5 | -| test.rs:74:4:75:55 | fn bad2_5 | test.rs:75:17:75:44 | ...::create(...) | -| test.rs:78:1:78:7 | Attr | test.rs:79:4:80:39 | fn bad2_6 | -| test.rs:79:4:80:39 | fn bad2_6 | test.rs:80:14:80:37 | ...::now(...) | -| test.rs:87:1:87:7 | Attr | test.rs:88:4:89:36 | fn bad2_7 | -| test.rs:88:4:89:36 | fn bad2_7 | test.rs:89:5:89:34 | ...::sleep(...) | -| test.rs:94:1:94:7 | Attr | test.rs:95:4:96:24 | fn bad2_8 | -| test.rs:95:4:96:24 | fn bad2_8 | test.rs:96:5:96:22 | ...::exit(...) | +| test.rs:28:1:28:13 | Attr | test.rs:28:1:31:1 | fn bad1_1 | +| test.rs:28:1:31:1 | fn bad1_1 | test.rs:30:9:30:25 | ...::stdout(...) | +| test.rs:33:1:33:13 | Attr | test.rs:33:1:36:1 | fn bad1_2 | +| test.rs:33:1:36:1 | fn bad1_2 | test.rs:35:9:35:25 | ...::stdout(...) | +| test.rs:38:1:43:1 | fn bad1_3 | test.rs:42:9:42:25 | ...::stdout(...) | +| test.rs:39:1:39:13 | Attr | test.rs:38:1:43:1 | fn bad1_3 | +| test.rs:50:1:50:7 | Attr | test.rs:50:1:53:1 | fn bad2_1 | +| test.rs:50:1:53:1 | fn bad2_1 | test.rs:52:9:52:16 | stdout(...) | +| test.rs:55:1:55:7 | Attr | test.rs:55:1:58:1 | fn bad2_2 | +| test.rs:55:1:58:1 | fn bad2_2 | test.rs:57:9:57:16 | stderr(...) | +| test.rs:65:1:65:7 | Attr | test.rs:65:1:69:1 | fn bad2_4 | +| test.rs:65:1:69:1 | fn bad2_4 | test.rs:68:9:68:24 | ...::stdin(...) | +| test.rs:87:1:87:7 | Attr | test.rs:87:1:90:1 | fn bad2_7 | +| test.rs:87:1:90:1 | fn bad2_7 | test.rs:89:5:89:35 | ...::sleep(...) | +| test.rs:94:1:94:7 | Attr | test.rs:94:1:97:1 | fn bad2_8 | +| test.rs:94:1:97:1 | fn bad2_8 | test.rs:96:5:96:23 | ...::exit(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:16 | stderr(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:44 | ... .write_all(...) | -| test.rs:128:1:128:7 | Attr | test.rs:129:4:130:21 | fn bad3_1 | -| test.rs:129:4:130:21 | fn bad3_1 | test.rs:130:5:130:19 | call_target3_1(...) | -| test.rs:130:5:130:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:144:1:144:7 | Attr | test.rs:145:4:147:21 | fn bad3_3 | +| test.rs:128:1:128:7 | Attr | test.rs:128:1:131:1 | fn bad3_1 | +| test.rs:128:1:131:1 | fn bad3_1 | test.rs:130:5:130:20 | call_target3_1(...) | +| test.rs:130:5:130:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | +| test.rs:144:1:144:7 | Attr | test.rs:144:1:148:1 | fn bad3_3 | | test.rs:144:1:148:1 | fn bad3_3 | test.rs:146:5:146:20 | call_target3_1(...) | -| test.rs:145:4:147:21 | fn bad3_3 | test.rs:146:5:146:19 | call_target3_1(...) | -| test.rs:146:5:146:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | | test.rs:146:5:146:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:150:1:150:7 | Attr | test.rs:151:4:152:13 | fn bad3_4 | -| test.rs:151:4:152:13 | fn bad3_4 | test.rs:152:5:152:11 | bad3_3(...) | -| test.rs:152:5:152:11 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | -| test.rs:168:1:168:7 | Attr | test.rs:169:4:170:16 | fn bad4_1 | -| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ... .write(...) | -| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ...::stdout(...) | +| test.rs:150:1:150:7 | Attr | test.rs:150:1:153:1 | fn bad3_4 | +| test.rs:150:1:153:1 | fn bad3_4 | test.rs:152:5:152:12 | bad3_3(...) | +| test.rs:152:5:152:12 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | +testFailures +| test.rs:60:9:60:29 | //... | Missing result: Source=source2_3 | +| test.rs:62:32:62:77 | //... | Missing result: Alert[rust/ctor-initialization]=source2_3 | +| test.rs:73:9:73:29 | //... | Missing result: Source=source2_5 | +| test.rs:75:57:75:102 | //... | Missing result: Alert[rust/ctor-initialization]=source2_5 | +| test.rs:78:9:78:29 | //... | Missing result: Source=source2_6 | +| test.rs:80:41:80:86 | //... | Missing result: Alert[rust/ctor-initialization]=source2_6 | +| test.rs:168:9:168:44 | //... | Missing result: Alert[rust/ctor-initialization] | diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 4c01286c489..067b81b9f9e 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,32 +1,18 @@ multiplePathResolutions | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | -| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | | main.rs:233:18:233:42 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index c3a7f4451fb..14bf0797218 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,12 +1,8 @@ multiplePathResolutions | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | -| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | -| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | -| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | -| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected index 8563020471c..9eb0999a137 100644 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected @@ -17,15 +17,3 @@ multiplePathResolutions | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected index 77c923e9280..20150ac9a37 100644 --- a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected +++ b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected @@ -1,3 +1,4 @@ +#select | unreachable.rs:19:9:19:23 | ExprStmt | This code is never reached. | | unreachable.rs:27:9:27:23 | ExprStmt | This code is never reached. | | unreachable.rs:39:9:39:23 | ExprStmt | This code is never reached. | @@ -6,8 +7,6 @@ | unreachable.rs:134:13:134:20 | MacroExpr | This code is never reached. | | unreachable.rs:143:13:143:20 | MacroExpr | This code is never reached. | | unreachable.rs:166:9:166:23 | ExprStmt | This code is never reached. | -| unreachable.rs:171:9:171:17 | MacroExpr | This code is never reached. | -| unreachable.rs:177:9:177:26 | MacroExpr | This code is never reached. | | unreachable.rs:206:9:206:23 | ExprStmt | This code is never reached. | | unreachable.rs:231:13:231:27 | ExprStmt | This code is never reached. | | unreachable.rs:241:13:241:27 | ExprStmt | This code is never reached. | @@ -21,3 +20,6 @@ | unreachable.rs:370:9:370:23 | ExprStmt | This code is never reached. | | unreachable.rs:375:5:375:10 | ExprStmt | This code is never reached. | | unreachable.rs:382:5:382:10 | ExprStmt | This code is never reached. | +testFailures +| unreachable.rs:171:20:171:55 | //... | Fixed spurious result: Alert[rust/dead-code] | +| unreachable.rs:177:29:177:64 | //... | Fixed spurious result: Alert[rust/dead-code] | diff --git a/rust/ql/test/query-tests/unusedentities/UnusedValue.expected b/rust/ql/test/query-tests/unusedentities/UnusedValue.expected index 4ef8ae41625..8bad8ea978c 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedValue.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedValue.expected @@ -1,21 +1,23 @@ +#select | main.rs:10:9:10:9 | a | Variable $@ is assigned a value that is never used. | main.rs:10:9:10:9 | a | a | | main.rs:13:9:13:9 | d | Variable $@ is assigned a value that is never used. | main.rs:13:9:13:9 | d | d | -| main.rs:39:5:39:5 | b | Variable $@ is assigned a value that is never used. | main.rs:30:9:30:9 | b | b | -| main.rs:41:5:41:5 | c | Variable $@ is assigned a value that is never used. | main.rs:31:13:31:13 | c | c | -| main.rs:44:5:44:5 | c | Variable $@ is assigned a value that is never used. | main.rs:31:13:31:13 | c | c | -| main.rs:48:9:48:9 | d | Variable $@ is assigned a value that is never used. | main.rs:32:13:32:13 | d | d | -| main.rs:54:5:54:5 | e | Variable $@ is assigned a value that is never used. | main.rs:33:13:33:13 | e | e | -| main.rs:65:5:65:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f | -| main.rs:67:5:67:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f | -| main.rs:69:5:69:5 | g | Variable $@ is assigned a value that is never used. | main.rs:35:9:35:9 | g | g | -| main.rs:95:9:95:9 | a | Variable $@ is assigned a value that is never used. | main.rs:95:9:95:9 | a | a | -| main.rs:116:9:116:10 | is | Variable $@ is assigned a value that is never used. | main.rs:116:9:116:10 | is | is | | main.rs:139:13:139:17 | total | Variable $@ is assigned a value that is never used. | main.rs:139:13:139:17 | total | total | -| main.rs:284:13:284:17 | total | Variable $@ is assigned a value that is never used. | main.rs:252:13:252:17 | total | total | | main.rs:377:9:377:9 | x | Variable $@ is assigned a value that is never used. | main.rs:377:9:377:9 | x | x | | main.rs:385:17:385:17 | x | Variable $@ is assigned a value that is never used. | main.rs:385:17:385:17 | x | x | -| main.rs:531:9:531:20 | var_in_macro | Variable $@ is assigned a value that is never used. | main.rs:531:9:531:20 | var_in_macro | var_in_macro | -| main.rs:540:9:540:9 | c | Variable $@ is assigned a value that is never used. | main.rs:540:9:540:9 | c | c | | more.rs:44:9:44:14 | a_ptr4 | Variable $@ is assigned a value that is never used. | more.rs:44:9:44:14 | a_ptr4 | a_ptr4 | | more.rs:59:9:59:13 | d_ptr | Variable $@ is assigned a value that is never used. | more.rs:59:9:59:13 | d_ptr | d_ptr | | more.rs:65:13:65:17 | f_ptr | Variable $@ is assigned a value that is never used. | more.rs:65:13:65:17 | f_ptr | f_ptr | +testFailures +| main.rs:39:12:39:40 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:41:12:41:40 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:44:12:44:40 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:48:16:48:44 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:54:12:54:40 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:65:13:65:41 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:67:13:67:41 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:69:37:69:65 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:95:34:95:62 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:116:25:116:53 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:284:27:284:55 | //... | Missing result: Alert[rust/unused-value] | +| main.rs:531:27:531:65 | //... | Fixed spurious result: Alert[rust/unused-value] | +| main.rs:540:17:540:45 | //... | Missing result: Alert[rust/unused-value] | diff --git a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected index 203824f4a4b..66bd4fc034c 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected @@ -1,22 +1,24 @@ -| main.rs:29:9:29:9 | a | Variable 'a' is not used. | -| main.rs:98:13:98:13 | d | Variable 'd' is not used. | +#select | main.rs:147:5:147:5 | y | Variable 'y' is not used. | -| main.rs:174:9:174:9 | x | Variable 'x' is not used. | -| main.rs:254:17:254:17 | a | Variable 'a' is not used. | -| main.rs:262:20:262:22 | val | Variable 'val' is not used. | -| main.rs:276:14:276:16 | val | Variable 'val' is not used. | -| main.rs:291:22:291:24 | val | Variable 'val' is not used. | -| main.rs:298:24:298:26 | val | Variable 'val' is not used. | -| main.rs:306:13:306:15 | num | Variable 'num' is not used. | -| main.rs:321:12:321:12 | j | Variable 'j' is not used. | -| main.rs:341:25:341:25 | y | Variable 'y' is not used. | -| main.rs:344:28:344:28 | a | Variable 'a' is not used. | -| main.rs:347:9:347:9 | p | Variable 'p' is not used. | -| main.rs:365:9:365:13 | right | Variable 'right' is not used. | -| main.rs:371:9:371:14 | right2 | Variable 'right2' is not used. | | main.rs:378:13:378:13 | y | Variable 'y' is not used. | | main.rs:386:21:386:21 | y | Variable 'y' is not used. | | main.rs:431:26:431:28 | val | Variable 'val' is not used. | | main.rs:434:21:434:23 | acc | Variable 'acc' is not used. | | main.rs:455:9:455:14 | unused | Variable 'unused' is not used. | | more.rs:24:9:24:11 | val | Variable 'val' is not used. | +testFailures +| main.rs:29:17:29:48 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:98:26:98:57 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:174:22:174:53 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:254:33:254:64 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:262:27:262:58 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:276:24:276:55 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:291:32:291:63 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:298:34:298:65 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:306:24:306:55 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:321:22:321:53 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:341:34:341:65 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:344:37:344:68 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:347:16:347:47 | //... | Missing result: Alert[rust/unused-variable] | +| main.rs:365:18:365:95 | //... | Fixed spurious result: Alert[rust/unused-variable] | +| main.rs:371:19:371:96 | //... | Fixed spurious result: Alert[rust/unused-variable] | From a17078b6bef7a5d8708222a5e470970b2b17ecba Mon Sep 17 00:00:00 2001 From: Michael Nebel Date: Mon, 23 Jun 2025 11:14:02 +0200 Subject: [PATCH 195/340] Java: Remove java/deprecated-call from the Code Quality suite. --- .../java/query-suite/java-code-quality-extended.qls.expected | 1 - .../java/query-suite/java-code-quality.qls.expected | 1 - .../Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql | 3 +-- 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index dd15d7f3bdd..d177c4ad6a5 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -1,5 +1,4 @@ ql/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql -ql/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql ql/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 589041ac7b3..05565601e40 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -1,5 +1,4 @@ ql/java/ql/src/Advisory/Declarations/MissingOverrideAnnotation.ql -ql/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql ql/java/ql/src/Advisory/Documentation/ImpossibleJavadocThrows.ql ql/java/ql/src/Advisory/Documentation/SpuriousJavadocParam.ql ql/java/ql/src/Compatibility/JDK9/JdkInternalAccess.ql diff --git a/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql b/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql index 95403ffac0b..5d8953f6168 100644 --- a/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql +++ b/java/ql/src/Advisory/Deprecated Code/AvoidDeprecatedCallableAccess.ql @@ -6,8 +6,7 @@ * @problem.severity recommendation * @precision high * @id java/deprecated-call - * @tags quality - * maintainability + * @tags maintainability * readability * non-attributable * external/cwe/cwe-477 From 1f09f713b91a9227acd3e67adf2c3e67cdde7b34 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 20 Jun 2025 11:42:10 +0200 Subject: [PATCH 196/340] Rust: Avoid overlapping path resolution consistency checks --- .../PathResolutionConsistency.ql | 15 +- .../internal/PathResolutionConsistency.qll | 8 +- .../PathResolutionConsistency.expected | 13 - .../PathResolutionConsistency.expected | 10 +- .../PathResolutionConsistency.expected | 2 + .../PathResolutionConsistency.expected | 18 +- .../PathResolutionConsistency.expected | 189 ++++--- .../PathResolutionConsistency.expected | 13 +- .../PathResolutionConsistency.expected | 13 - .../PathResolutionConsistency.expected | 14 +- .../PathResolutionConsistency.expected | 80 +-- .../PathResolutionConsistency.expected | 5 +- .../PathResolutionConsistency.expected | 16 +- .../PathResolutionConsistency.expected | 9 +- .../PathResolutionConsistency.expected | 71 +-- .../PathResolutionConsistency.expected | 461 +++--------------- .../PathResolutionConsistency.expected | 11 +- .../PathResolutionConsistency.expected | 13 - .../PathResolutionConsistency.expected | 13 - .../PathResolutionConsistency.expected | 39 +- .../PathResolutionConsistency.expected | 49 +- .../PathResolutionConsistency.expected | 30 +- .../PathResolutionConsistency.expected | 37 +- 23 files changed, 285 insertions(+), 844 deletions(-) delete mode 100644 rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected create mode 100644 rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected diff --git a/rust/ql/consistency-queries/PathResolutionConsistency.ql b/rust/ql/consistency-queries/PathResolutionConsistency.ql index db93f4b2860..3b2165b712f 100644 --- a/rust/ql/consistency-queries/PathResolutionConsistency.ql +++ b/rust/ql/consistency-queries/PathResolutionConsistency.ql @@ -10,22 +10,17 @@ private import codeql.rust.internal.PathResolution private import codeql.rust.internal.PathResolutionConsistency as PathResolutionConsistency private import codeql.rust.elements.Locatable private import codeql.Locations -import PathResolutionConsistency class SourceLocatable extends Locatable { - Location getLocation() { - if super.getLocation().fromSource() - then result = super.getLocation() - else result instanceof EmptyLocation - } + SourceLocatable() { this.fromSource() } } -query predicate multipleMethodCallTargets(SourceLocatable a, SourceLocatable b) { - PathResolutionConsistency::multipleMethodCallTargets(a, b) +query predicate multipleCallTargets(SourceLocatable a) { + PathResolutionConsistency::multipleCallTargets(a, _) } -query predicate multiplePathResolutions(SourceLocatable a, SourceLocatable b) { - PathResolutionConsistency::multiplePathResolutions(a, b) +query predicate multiplePathResolutions(SourceLocatable a) { + PathResolutionConsistency::multiplePathResolutions(a, _) } query predicate multipleCanonicalPaths(SourceLocatable i, SourceLocatable c, string path) { diff --git a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll index 2175dea3713..9b7131b7a7f 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolutionConsistency.qll @@ -17,11 +17,13 @@ query predicate multiplePathResolutions(Path p, ItemNode i) { not use.isGlob() and not use.hasUseTreeList() ).getPath() and + // avoid overlap with `multipleCallTargets` below + not p = any(CallExpr ce).getFunction().(PathExpr).getPath() and strictcount(resolvePath(p)) > 1 } /** Holds if `call` has multiple static call targets including `target`. */ -query predicate multipleMethodCallTargets(MethodCallExpr call, Callable target) { +query predicate multipleCallTargets(CallExprBase call, Callable target) { target = call.getStaticTarget() and strictcount(call.getStaticTarget()) > 1 } @@ -51,8 +53,8 @@ int getPathResolutionInconsistencyCounts(string type) { type = "Multiple path resolutions" and result = count(Path p | multiplePathResolutions(p, _) | p) or - type = "Multiple static method call targets" and - result = count(CallExprBase call | multipleMethodCallTargets(call, _) | call) + type = "Multiple static call targets" and + result = count(CallExprBase call | multipleCallTargets(call, _) | call) or type = "Multiple record fields" and result = count(FieldExpr fe | multipleStructFields(fe, _) | fe) diff --git a/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 0aa77163252..00000000000 --- a/rust/ql/test/extractor-tests/crate_graph/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,13 +0,0 @@ -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected index fcaa6dda1dc..deb5ac66914 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,9 @@ +multipleCallTargets +| proc_macro.rs:16:12:16:16 | ...::to_tokens(...) | +| proc_macro.rs:26:10:26:12 | ...::to_tokens(...) | +| proc_macro.rs:27:10:27:16 | ...::to_tokens(...) | +| proc_macro.rs:42:16:42:26 | ...::to_tokens(...) | +| proc_macro.rs:44:27:44:30 | ...::to_tokens(...) | +| proc_macro.rs:46:18:46:28 | ...::to_tokens(...) | multiplePathResolutions -| macro_expansion.rs:1:5:1:14 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| macro_expansion.rs:1:5:1:14 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| macro_expansion.rs:1:5:1:14 | proc_macro | diff --git a/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..9ba640cff8d --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/global/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,2 @@ +multipleCallTargets +| main.rs:225:14:225:29 | ...::deref(...) | diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected index b9ee72e892b..330c8673560 100644 --- a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected @@ -1,15 +1,3 @@ -multiplePathResolutions -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +multipleCallTargets +| main.rs:532:10:532:21 | ...::from(...) | +| main.rs:538:10:538:21 | ...::from(...) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index e7649be55f9..19013601cdf 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -1,105 +1,84 @@ -multipleMethodCallTargets -| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | -| test.rs:618:25:618:49 | address.to_socket_addrs() | file://:0:0:0:0 | fn to_socket_addrs | -| test_futures_io.rs:35:26:35:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:35:26:35:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:35:26:35:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:62:22:62:50 | pinned.poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| test_futures_io.rs:62:22:62:50 | pinned.poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| test_futures_io.rs:69:23:69:67 | ... .poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| test_futures_io.rs:69:23:69:67 | ... .poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| test_futures_io.rs:93:26:93:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:93:26:93:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:93:26:93:63 | pinned.poll_read(...) | file://:0:0:0:0 | fn poll_read | -| test_futures_io.rs:116:22:116:50 | pinned.poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| test_futures_io.rs:116:22:116:50 | pinned.poll_fill_buf(...) | file://:0:0:0:0 | fn poll_fill_buf | -| web_frameworks.rs:101:14:101:23 | a.as_str() | file://:0:0:0:0 | fn as_str | -| web_frameworks.rs:101:14:101:23 | a.as_str() | file://:0:0:0:0 | fn as_str | -| web_frameworks.rs:102:14:102:25 | a.as_bytes() | file://:0:0:0:0 | fn as_bytes | -| web_frameworks.rs:102:14:102:25 | a.as_bytes() | file://:0:0:0:0 | fn as_bytes | -multiplePathResolutions -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:777:23:777:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test.rs:777:23:777:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test.rs:777:23:777:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | -| test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | -| test_futures_io.rs:145:26:145:43 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | -| test_futures_io.rs:145:26:145:43 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | -| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | -| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | -| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | -| web_frameworks.rs:40:5:40:26 | ...::write_str | file://:0:0:0:0 | fn write_str | -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +multipleCallTargets +| test.rs:98:14:98:43 | ...::_print(...) | +| test.rs:109:14:109:33 | ...::_print(...) | +| test.rs:112:62:112:77 | ...::from(...) | +| test.rs:119:58:119:73 | ...::from(...) | +| test.rs:135:22:135:43 | ...::_print(...) | +| test.rs:140:22:140:43 | ...::_print(...) | +| test.rs:144:22:144:44 | ...::_print(...) | +| test.rs:160:26:160:110 | ...::_print(...) | +| test.rs:168:26:168:111 | ...::_print(...) | +| test.rs:178:30:178:68 | ...::_print(...) | +| test.rs:187:26:187:105 | ...::_print(...) | +| test.rs:609:18:609:38 | ...::_print(...) | +| test.rs:614:18:614:45 | ...::_print(...) | +| test.rs:618:25:618:49 | address.to_socket_addrs() | +| test.rs:632:38:632:42 | ...::_print(...) | +| test.rs:636:38:636:54 | ...::_print(...) | +| test.rs:641:38:641:51 | ...::_print(...) | +| test.rs:651:34:651:52 | ...::_print(...) | +| test.rs:670:14:670:43 | ...::_print(...) | +| test.rs:685:18:685:42 | ...::_print(...) | +| test.rs:689:18:689:42 | ...::_print(...) | +| test.rs:694:18:694:45 | ...::_print(...) | +| test.rs:701:30:701:34 | ...::_print(...) | +| test.rs:705:30:705:52 | ...::_print(...) | +| test.rs:714:30:714:43 | ...::_print(...) | +| test.rs:724:30:724:34 | ...::_print(...) | +| test.rs:728:30:728:52 | ...::_print(...) | +| test.rs:737:30:737:43 | ...::_print(...) | +| test.rs:752:14:752:43 | ...::_print(...) | +| test.rs:766:14:766:34 | ...::_print(...) | +| test.rs:777:23:777:80 | ...::try_from(...) | +| test.rs:806:50:806:66 | ...::from(...) | +| test.rs:806:50:806:66 | ...::from(...) | +| test.rs:808:14:808:31 | ...::_print(...) | +| test.rs:811:14:811:31 | ...::_print(...) | +| test.rs:814:14:814:31 | ...::_print(...) | +| test.rs:817:14:817:30 | ...::_print(...) | +| test.rs:819:27:819:36 | ...::_print(...) | +| test.rs:820:28:820:41 | ...::_print(...) | +| test.rs:823:14:823:33 | ...::_print(...) | +| test.rs:825:27:825:36 | ...::_print(...) | +| test.rs:826:28:826:41 | ...::_print(...) | +| test.rs:829:14:829:31 | ...::_print(...) | +| test.rs:831:27:831:36 | ...::_print(...) | +| test.rs:832:28:832:41 | ...::_print(...) | +| test.rs:835:14:835:34 | ...::_print(...) | +| test.rs:837:27:837:36 | ...::_print(...) | +| test.rs:838:28:838:41 | ...::_print(...) | +| test.rs:841:14:841:25 | ...::_print(...) | +| test.rs:843:27:843:36 | ...::_print(...) | +| test.rs:844:28:844:41 | ...::_print(...) | +| test.rs:847:14:847:31 | ...::_print(...) | +| test.rs:849:27:849:36 | ...::_print(...) | +| test.rs:850:28:850:41 | ...::_print(...) | +| test.rs:853:14:853:30 | ...::_print(...) | +| test.rs:855:27:855:36 | ...::_print(...) | +| test.rs:856:28:856:41 | ...::_print(...) | +| test.rs:859:14:859:33 | ...::_print(...) | +| test.rs:861:27:861:36 | ...::_print(...) | +| test.rs:862:28:862:41 | ...::_print(...) | +| test.rs:865:14:865:36 | ...::_print(...) | +| test.rs:867:27:867:36 | ...::_print(...) | +| test.rs:868:28:868:41 | ...::_print(...) | +| test.rs:871:14:871:38 | ...::_print(...) | +| test.rs:873:27:873:36 | ...::_print(...) | +| test.rs:874:28:874:41 | ...::_print(...) | +| test.rs:877:14:877:45 | ...::_print(...) | +| test.rs:879:27:879:36 | ...::_print(...) | +| test.rs:880:28:880:41 | ...::_print(...) | +| test.rs:883:14:883:29 | ...::_print(...) | +| test.rs:885:27:885:36 | ...::_print(...) | +| test.rs:886:28:886:41 | ...::_print(...) | +| test_futures_io.rs:25:23:25:80 | ...::try_from(...) | +| test_futures_io.rs:35:26:35:63 | pinned.poll_read(...) | +| test_futures_io.rs:62:22:62:50 | pinned.poll_fill_buf(...) | +| test_futures_io.rs:69:23:69:67 | ... .poll_fill_buf(...) | +| test_futures_io.rs:93:26:93:63 | pinned.poll_read(...) | +| test_futures_io.rs:116:22:116:50 | pinned.poll_fill_buf(...) | +| test_futures_io.rs:145:26:145:49 | ...::with_capacity(...) | +| web_frameworks.rs:40:5:40:26 | ...::write_str(...) | +| web_frameworks.rs:40:5:40:26 | ...::write_str(...) | +| web_frameworks.rs:101:14:101:23 | a.as_str() | +| web_frameworks.rs:102:14:102:25 | a.as_bytes() | diff --git a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected index f08f15c3aef..b6acd6b81a7 100644 --- a/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/strings/CONSISTENCY/PathResolutionConsistency.expected @@ -1,10 +1,3 @@ -multipleMethodCallTargets -| main.rs:64:16:64:25 | s.as_str() | file://:0:0:0:0 | fn as_str | -| main.rs:64:16:64:25 | s.as_str() | file://:0:0:0:0 | fn as_str | -multiplePathResolutions -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:52:14:52:25 | ...::from | file://:0:0:0:0 | fn from | +multipleCallTargets +| main.rs:52:14:52:29 | ...::from(...) | +| main.rs:64:16:64:25 | s.as_str() | diff --git a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 0aa77163252..00000000000 --- a/rust/ql/test/library-tests/frameworks/postgres/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,13 +0,0 @@ -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected index c6d80a4c395..e7483499ba7 100644 --- a/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/path-resolution/CONSISTENCY/PathResolutionConsistency.expected @@ -1,9 +1,7 @@ +multipleCallTargets +| main.rs:118:9:118:11 | f(...) | +| proc_macro.rs:10:10:10:12 | ...::to_tokens(...) | multiplePathResolutions -| main.rs:118:9:118:9 | f | main.rs:104:5:106:5 | fn f | -| main.rs:118:9:118:9 | f | main.rs:110:5:112:5 | fn f | -| main.rs:626:3:626:12 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| main.rs:626:3:626:12 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:632:7:632:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| main.rs:632:7:632:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | -| main.rs:635:7:635:16 | proc_macro | file://:0:0:0:0 | Crate(proc_macro@0.0.0) | -| main.rs:635:7:635:16 | proc_macro | proc_macro.rs:0:0:0:0 | Crate(proc_macro@0.0.1) | +| main.rs:626:3:626:12 | proc_macro | +| main.rs:632:7:632:16 | proc_macro | +| main.rs:635:7:635:16 | proc_macro | diff --git a/rust/ql/test/library-tests/sensitivedata/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/sensitivedata/CONSISTENCY/PathResolutionConsistency.expected index 705ab1fefbc..8e9d2afecd0 100644 --- a/rust/ql/test/library-tests/sensitivedata/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/sensitivedata/CONSISTENCY/PathResolutionConsistency.expected @@ -1,53 +1,27 @@ -multipleMethodCallTargets -| test.rs:55:7:55:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:55:7:55:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:56:7:56:21 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:56:7:56:21 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:72:7:72:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:72:7:72:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:73:7:73:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:73:7:73:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:74:7:74:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:74:7:74:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:75:7:75:27 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:75:7:75:27 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:254:7:254:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:254:7:254:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:256:7:256:33 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:256:7:256:33 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:257:7:257:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:257:7:257:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:258:7:258:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:258:7:258:26 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:262:7:262:28 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:262:7:262:28 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:263:7:263:37 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:263:7:263:37 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:264:7:264:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:264:7:264:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:267:7:267:32 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:267:7:267:32 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:277:7:277:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:277:7:277:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:280:7:280:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:280:7:280:36 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:284:7:284:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:284:7:284:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:291:7:291:53 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:291:7:291:53 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:292:7:292:45 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:292:7:292:45 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:294:7:294:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:294:7:294:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:295:7:295:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:295:7:295:34 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:296:7:296:42 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:296:7:296:42 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:298:7:298:48 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:298:7:298:48 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:299:7:299:35 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:299:7:299:35 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:300:7:300:35 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:300:7:300:35 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:339:7:339:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | -| test.rs:339:7:339:39 | ... .as_str() | file://:0:0:0:0 | fn as_str | +multipleCallTargets +| test.rs:55:7:55:26 | ... .as_str() | +| test.rs:56:7:56:21 | ... .as_str() | +| test.rs:72:7:72:26 | ... .as_str() | +| test.rs:73:7:73:36 | ... .as_str() | +| test.rs:74:7:74:34 | ... .as_str() | +| test.rs:75:7:75:27 | ... .as_str() | +| test.rs:254:7:254:36 | ... .as_str() | +| test.rs:256:7:256:33 | ... .as_str() | +| test.rs:257:7:257:36 | ... .as_str() | +| test.rs:258:7:258:26 | ... .as_str() | +| test.rs:262:7:262:28 | ... .as_str() | +| test.rs:263:7:263:37 | ... .as_str() | +| test.rs:264:7:264:36 | ... .as_str() | +| test.rs:267:7:267:32 | ... .as_str() | +| test.rs:277:7:277:34 | ... .as_str() | +| test.rs:280:7:280:36 | ... .as_str() | +| test.rs:284:7:284:39 | ... .as_str() | +| test.rs:291:7:291:53 | ... .as_str() | +| test.rs:292:7:292:45 | ... .as_str() | +| test.rs:294:7:294:39 | ... .as_str() | +| test.rs:295:7:295:34 | ... .as_str() | +| test.rs:296:7:296:42 | ... .as_str() | +| test.rs:298:7:298:48 | ... .as_str() | +| test.rs:299:7:299:35 | ... .as_str() | +| test.rs:300:7:300:35 | ... .as_str() | +| test.rs:339:7:339:39 | ... .as_str() | 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 81551e369e2..0b49270f755 100644 --- a/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/type-inference/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,2 @@ -multipleMethodCallTargets -| dereference.rs:61:15:61:24 | e1.deref() | file://:0:0:0:0 | fn deref | -| dereference.rs:61:15:61:24 | e1.deref() | file://:0:0:0:0 | fn deref | +multipleCallTargets +| dereference.rs:61:15:61:24 | e1.deref() | diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected index 82fc38ae2fa..b95bb1ccc85 100644 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected @@ -1,13 +1,3 @@ -multiplePathResolutions -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:102:19:102:30 | ...::from | file://:0:0:0:0 | fn from | +multipleCallTargets +| main.rs:85:19:85:40 | ...::from(...) | +| main.rs:102:19:102:40 | ...::from(...) | diff --git a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected index 8e261e29676..bb60014263b 100644 --- a/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/diagnostics/CONSISTENCY/PathResolutionConsistency.expected @@ -1,7 +1,2 @@ -multiplePathResolutions -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | -| my_struct.rs:25:19:25:30 | ...::from | file://:0:0:0:0 | fn from | +multipleCallTargets +| my_struct.rs:25:19:25:37 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected index abeca72b351..6ad645852f2 100644 --- a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/PathResolutionConsistency.expected @@ -1,62 +1,9 @@ -multiplePathResolutions -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:8:21:8:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:19:21:19:33 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:25:23:25:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:26:38:26:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:39:23:39:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:40:38:40:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:52:23:52:35 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -| src/main.rs:53:38:53:50 | ...::from | file://:0:0:0:0 | fn from | -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +multipleCallTargets +| src/main.rs:8:21:8:44 | ...::from(...) | +| src/main.rs:19:21:19:44 | ...::from(...) | +| src/main.rs:25:23:25:59 | ...::from(...) | +| src/main.rs:26:38:26:61 | ...::from(...) | +| src/main.rs:39:23:39:59 | ...::from(...) | +| src/main.rs:40:38:40:61 | ...::from(...) | +| src/main.rs:52:23:52:59 | ...::from(...) | +| src/main.rs:53:38:53:61 | ...::from(...) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index 598e52f932c..cc35fcfde21 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -1,383 +1,78 @@ -multipleMethodCallTargets -| sqlx.rs:64:26:64:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:64:26:64:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:26:65:46 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:65:26:65:46 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:75:25:75:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:75:25:75:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:25:76:45 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:76:25:76:45 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:84:25:84:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:84:25:84:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:85:25:85:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:85:25:85:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:87:29:87:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:87:29:87:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:88:29:88:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:88:29:88:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:106:26:106:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:106:26:106:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:108:30:108:52 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:108:30:108:52 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:111:27:111:47 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:111:27:111:47 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:117:25:117:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:117:25:117:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:118:25:118:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:118:25:118:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:121:29:121:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:121:29:121:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:124:25:124:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:124:25:124:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:125:25:125:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:125:25:125:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:128:29:128:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:128:29:128:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:131:54:131:74 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:131:54:131:74 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:133:54:133:78 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:133:54:133:78 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:137:55:137:79 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:137:55:137:79 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:140:54:140:74 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:140:54:140:74 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:142:54:142:78 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:142:54:142:78 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:146:55:146:79 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:146:55:146:79 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:149:25:149:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:149:25:149:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:150:25:150:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:150:25:150:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:154:29:154:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:154:29:154:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:179:26:179:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:179:26:179:46 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:181:30:181:52 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:181:30:181:52 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:185:25:185:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:185:25:185:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:186:25:186:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:186:25:186:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:189:29:189:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -| sqlx.rs:189:29:189:53 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | -multiplePathResolutions -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | -multipleCanonicalPaths -| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | -| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | -| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | -| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | -| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | -| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | -| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | -| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | -| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | +multipleCallTargets +| sqlx.rs:46:24:46:44 | ...::from(...) | +| sqlx.rs:47:56:47:76 | ...::from(...) | +| sqlx.rs:48:97:48:117 | ...::from(...) | +| sqlx.rs:50:24:50:83 | ...::from(...) | +| sqlx.rs:51:24:51:77 | ...::from(...) | +| sqlx.rs:55:26:55:79 | ...::from(...) | +| sqlx.rs:61:28:61:81 | ...::from(...) | +| sqlx.rs:64:26:64:46 | safe_query_1.as_str() | +| sqlx.rs:65:26:65:46 | safe_query_2.as_str() | +| sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | +| sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | +| sqlx.rs:75:25:75:45 | safe_query_1.as_str() | +| sqlx.rs:76:25:76:45 | safe_query_2.as_str() | +| sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | +| sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | +| sqlx.rs:84:25:84:49 | prepared_query_1.as_str() | +| sqlx.rs:85:25:85:49 | prepared_query_1.as_str() | +| sqlx.rs:87:29:87:53 | prepared_query_1.as_str() | +| sqlx.rs:88:29:88:53 | prepared_query_1.as_str() | +| sqlx.rs:99:24:99:44 | ...::from(...) | +| sqlx.rs:100:97:100:117 | ...::from(...) | +| sqlx.rs:101:24:101:77 | ...::from(...) | +| sqlx.rs:102:26:102:79 | ...::from(...) | +| sqlx.rs:103:28:103:81 | ...::from(...) | +| sqlx.rs:106:26:106:46 | safe_query_1.as_str() | +| sqlx.rs:108:30:108:52 | unsafe_query_1.as_str() | +| sqlx.rs:111:27:111:47 | safe_query_1.as_str() | +| sqlx.rs:113:31:113:53 | unsafe_query_1.as_str() | +| sqlx.rs:117:25:117:45 | safe_query_1.as_str() | +| sqlx.rs:118:25:118:49 | prepared_query_1.as_str() | +| sqlx.rs:120:29:120:51 | unsafe_query_1.as_str() | +| sqlx.rs:121:29:121:53 | prepared_query_1.as_str() | +| sqlx.rs:124:25:124:45 | safe_query_1.as_str() | +| sqlx.rs:125:25:125:49 | prepared_query_1.as_str() | +| sqlx.rs:127:29:127:51 | unsafe_query_1.as_str() | +| sqlx.rs:128:29:128:53 | prepared_query_1.as_str() | +| sqlx.rs:131:54:131:74 | safe_query_1.as_str() | +| sqlx.rs:132:14:132:34 | ...::_print(...) | +| sqlx.rs:133:54:133:78 | prepared_query_1.as_str() | +| sqlx.rs:134:14:134:34 | ...::_print(...) | +| sqlx.rs:136:55:136:77 | unsafe_query_1.as_str() | +| sqlx.rs:137:55:137:79 | prepared_query_1.as_str() | +| sqlx.rs:140:54:140:74 | safe_query_1.as_str() | +| sqlx.rs:141:14:141:34 | ...::_print(...) | +| sqlx.rs:142:54:142:78 | prepared_query_1.as_str() | +| sqlx.rs:143:14:143:34 | ...::_print(...) | +| sqlx.rs:145:55:145:77 | unsafe_query_1.as_str() | +| sqlx.rs:146:55:146:79 | prepared_query_1.as_str() | +| sqlx.rs:149:25:149:45 | safe_query_1.as_str() | +| sqlx.rs:150:25:150:49 | prepared_query_1.as_str() | +| sqlx.rs:153:29:153:51 | unsafe_query_1.as_str() | +| sqlx.rs:154:29:154:53 | prepared_query_1.as_str() | +| sqlx.rs:172:24:172:44 | ...::from(...) | +| sqlx.rs:173:97:173:117 | ...::from(...) | +| sqlx.rs:174:24:174:77 | ...::from(...) | +| sqlx.rs:175:26:175:79 | ...::from(...) | +| sqlx.rs:176:28:176:82 | ...::from(...) | +| sqlx.rs:179:26:179:46 | safe_query_1.as_str() | +| sqlx.rs:181:30:181:52 | unsafe_query_1.as_str() | +| sqlx.rs:185:25:185:45 | safe_query_1.as_str() | +| sqlx.rs:186:25:186:49 | prepared_query_1.as_str() | +| sqlx.rs:188:29:188:51 | unsafe_query_1.as_str() | +| sqlx.rs:189:29:189:53 | prepared_query_1.as_str() | +| sqlx.rs:196:14:196:43 | ...::_print(...) | +| sqlx.rs:202:57:202:85 | ...::from(...) | +| sqlx.rs:203:14:203:46 | ...::_print(...) | +| sqlx.rs:205:14:205:33 | ...::_print(...) | +| sqlx.rs:207:27:207:41 | ...::_print(...) | +| sqlx.rs:208:28:208:43 | ...::_print(...) | +| sqlx.rs:211:14:211:34 | ...::_print(...) | +| sqlx.rs:213:27:213:41 | ...::_print(...) | +| sqlx.rs:214:28:214:43 | ...::_print(...) | +| sqlx.rs:217:14:217:36 | ...::_print(...) | +| sqlx.rs:219:27:219:41 | ...::_print(...) | +| sqlx.rs:220:28:220:43 | ...::_print(...) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index 36e75877d2b..9d66941b079 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,7 +1,4 @@ -multipleMethodCallTargets -| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | -| test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | +multipleCallTargets +| test_logging.rs:77:20:77:36 | password.as_str() | +| test_logging.rs:78:22:78:38 | password.as_str() | +| test_logging.rs:88:18:88:34 | password.as_str() | diff --git a/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 0aa77163252..00000000000 --- a/rust/ql/test/query-tests/security/CWE-327/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,13 +0,0 @@ -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected deleted file mode 100644 index 0aa77163252..00000000000 --- a/rust/ql/test/query-tests/security/CWE-328/CONSISTENCY/PathResolutionConsistency.expected +++ /dev/null @@ -1,13 +0,0 @@ -multipleCanonicalPaths -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | -| file://:0:0:0:0 | impl Ord for Less { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected index 5fb57b10c01..7c37a008268 100644 --- a/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-696/CONSISTENCY/PathResolutionConsistency.expected @@ -1,27 +1,14 @@ multiplePathResolutions -| test.rs:50:3:50:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:50:3:50:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:55:3:55:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:55:3:55:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:60:3:60:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:60:3:60:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:65:3:65:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:65:3:65:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:73:3:73:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:73:3:73:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:78:3:78:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:78:3:78:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:87:3:87:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:87:3:87:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:94:3:94:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:94:3:94:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:128:3:128:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:128:3:128:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:139:3:139:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:139:3:139:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:144:3:144:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:144:3:144:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:150:3:150:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:150:3:150:6 | ctor | file://:0:0:0:0 | fn ctor | -| test.rs:168:3:168:6 | ctor | file://:0:0:0:0 | Crate(ctor@0.2.9) | -| test.rs:168:3:168:6 | ctor | file://:0:0:0:0 | fn ctor | +| test.rs:50:3:50:6 | ctor | +| test.rs:55:3:55:6 | ctor | +| test.rs:60:3:60:6 | ctor | +| test.rs:65:3:65:6 | ctor | +| test.rs:73:3:73:6 | ctor | +| test.rs:78:3:78:6 | ctor | +| test.rs:87:3:87:6 | ctor | +| test.rs:94:3:94:6 | ctor | +| test.rs:128:3:128:6 | ctor | +| test.rs:139:3:139:6 | ctor | +| test.rs:144:3:144:6 | ctor | +| test.rs:150:3:150:6 | ctor | +| test.rs:168:3:168:6 | ctor | diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 4c01286c489..6e88d5bdf86 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,33 +1,18 @@ +multipleCallTargets +| main.rs:218:14:218:30 | ...::malloc(...) | +| main.rs:219:13:219:27 | ...::malloc(...) | +| main.rs:220:13:220:37 | ...::aligned_alloc(...) | +| main.rs:221:13:221:37 | ...::aligned_alloc(...) | +| main.rs:222:13:222:31 | ...::calloc(...) | +| main.rs:223:13:223:55 | ...::calloc(...) | +| main.rs:224:13:224:32 | ...::realloc(...) | +| main.rs:229:13:229:40 | ...::with_capacity(...) | +| main.rs:233:18:233:47 | ...::with_capacity(...) | multiplePathResolutions -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | -| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | -| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | -| main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | -| main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | -| main.rs:233:18:233:42 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | -| main.rs:233:18:233:42 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | +| main.rs:218:14:218:17 | libc | +| main.rs:219:13:219:16 | libc | +| main.rs:220:13:220:16 | libc | +| main.rs:221:13:221:16 | libc | +| main.rs:222:13:222:16 | libc | +| main.rs:223:13:223:16 | libc | +| main.rs:224:13:224:16 | libc | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index c3a7f4451fb..8a491037fbf 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,23 +1,9 @@ +multipleCallTargets +| deallocation.rs:106:16:106:32 | ...::malloc(...) | +| deallocation.rs:112:3:112:41 | ...::free(...) | +| deallocation.rs:260:11:260:29 | ...::from(...) | +| deallocation.rs:261:11:261:29 | ...::from(...) | multiplePathResolutions -| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | -| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | -| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | -| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | -| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | -| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | -| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | -| deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | -| deallocation.rs:261:11:261:22 | ...::from | file://:0:0:0:0 | fn from | +| deallocation.rs:106:16:106:19 | libc | +| deallocation.rs:112:3:112:6 | libc | +| deallocation.rs:112:29:112:32 | libc | diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected index 8563020471c..6f977f067db 100644 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected @@ -1,31 +1,6 @@ -multiplePathResolutions -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:13:13:13:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| main.rs:14:13:14:24 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | -| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +multipleCallTargets +| main.rs:13:13:13:29 | ...::from(...) | +| main.rs:14:13:14:29 | ...::from(...) | +| unreachable.rs:165:20:165:42 | ...::from(...) | +| unreachable.rs:171:9:171:17 | ...::from(...) | +| unreachable.rs:177:17:177:25 | ...::from(...) | From 8f9c03165f9ada2b6da3c6b249395182eabad862 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 12:28:03 +0200 Subject: [PATCH 197/340] Rust: remove unneeded rustc_apfloat patch --- Cargo.lock | 5 ----- Cargo.toml | 5 ----- 2 files changed, 10 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index c9d363f5118..9e7905aa99b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3444,8 +3444,3 @@ dependencies = [ "cc", "pkg-config", ] - -[[patch.unused]] -name = "rustc_apfloat" -version = "0.2.2+llvm-462a31f5a5ab" -source = "git+https://github.com/redsun82/rustc_apfloat.git?rev=32968f16ef1b082243f9bf43a3fbd65c381b3e27#32968f16ef1b082243f9bf43a3fbd65c381b3e27" diff --git a/Cargo.toml b/Cargo.toml index 38487d3b858..7866a65d209 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -11,8 +11,3 @@ members = [ "rust/autobuild", ] exclude = ["mad-generation-build"] - -[patch.crates-io] -# patch for build script bug preventing bazel build -# see https://github.com/rust-lang/rustc_apfloat/pull/17 -rustc_apfloat = { git = "https://github.com/redsun82/rustc_apfloat.git", rev = "32968f16ef1b082243f9bf43a3fbd65c381b3e27" } From ca961386b2bfc63341192652157b1aa1efde928c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Mon, 23 Jun 2025 12:33:42 +0200 Subject: [PATCH 198/340] C++: Handle Arm SVE in the IR --- .../raw/internal/SideEffects.qll | 2 + .../semmle/code/cpp/ir/internal/CppType.qll | 6 + .../library-tests/ir/ir/PrintAST.expected | 150 ++++++++++------ .../library-tests/ir/ir/aliased_ir.expected | 160 +++++++++++------- cpp/ql/test/library-tests/ir/ir/arm.cpp | 21 --- cpp/ql/test/library-tests/ir/ir/arm_neon.cpp | 24 +++ cpp/ql/test/library-tests/ir/ir/arm_sve.cpp | 11 ++ .../test/library-tests/ir/ir/raw_ir.expected | 148 ++++++++++------ 8 files changed, 336 insertions(+), 186 deletions(-) delete mode 100644 cpp/ql/test/library-tests/ir/ir/arm.cpp create mode 100644 cpp/ql/test/library-tests/ir/ir/arm_neon.cpp create mode 100644 cpp/ql/test/library-tests/ir/ir/arm_sve.cpp diff --git a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/SideEffects.qll b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/SideEffects.qll index 1b63322610a..00863781257 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/SideEffects.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/implementation/raw/internal/SideEffects.qll @@ -54,6 +54,8 @@ private predicate isDeeplyConstBelow(Type t) { or isDeeplyConst(t.(GNUVectorType).getBaseType()) or + isDeeplyConst(t.(ScalableVectorType).getBaseType()) + or isDeeplyConst(t.(FunctionPointerIshType).getBaseType()) or isDeeplyConst(t.(PointerWrapper).getTemplateArgument(0)) diff --git a/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll b/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll index d873e3ec757..b25bb041f33 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/internal/CppType.qll @@ -29,6 +29,10 @@ private int getTypeSizeWorkaround(Type type) { not arrayType.hasArraySize() and result = getPointerSize() ) + or + // Scalable vectors are opaque and not of fixed size. Use 0 as a substitute. + type instanceof ScalableVectorType and + result = 0 ) ) } @@ -136,6 +140,8 @@ private predicate isOpaqueType(Type type) { type instanceof PointerToMemberType // PTMs are missing size info or type instanceof ScalableVectorCount + or + type instanceof ScalableVectorType } /** diff --git a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected index 7a50fbe51de..53ebaf2114f 100644 --- a/cpp/ql/test/library-tests/ir/ir/PrintAST.expected +++ b/cpp/ql/test/library-tests/ir/ir/PrintAST.expected @@ -58,7 +58,7 @@ #-----| Type = [LongType] unsigned long #-----| getParameter(1): [Parameter] (unnamed parameter 1) #-----| Type = [ScopedEnum] align_val_t -arm.cpp: +arm_neon.cpp: # 6| [TopLevelFunction] uint8x8_t vadd_u8(uint8x8_t, uint8x8_t) # 6| : # 6| getParameter(0): [Parameter] a @@ -76,59 +76,105 @@ arm.cpp: # 7| getRightOperand(): [VariableAccess] b # 7| Type = [CTypedefType] uint8x8_t # 7| ValueCategory = prvalue(load) -# 12| [TopLevelFunction] uint16x8_t __builtin_aarch64_uaddlv8qi_uuu(uint8x8_t, uint8x8_t) +# 10| [TopLevelFunction] uint16x8_t vaddl_u8(uint8x8_t, uint8x8_t) +# 10| : +# 10| getParameter(0): [Parameter] a +# 10| Type = [CTypedefType] uint8x8_t +# 10| getParameter(1): [Parameter] b +# 10| Type = [CTypedefType] uint8x8_t +# 12| [TopLevelFunction] uint16x8_t arm_add(uint8x8_t, uint8x8_t*) # 12| : -# 12| getParameter(0): [Parameter] (unnamed parameter 0) +# 12| getParameter(0): [Parameter] a # 12| Type = [CTypedefType] uint8x8_t -# 12| getParameter(1): [Parameter] (unnamed parameter 1) -# 12| Type = [CTypedefType] uint8x8_t -# 14| [TopLevelFunction] uint16x8_t vaddl_u8(uint8x8_t, uint8x8_t) -# 14| : -# 14| getParameter(0): [Parameter] a -# 14| Type = [CTypedefType] uint8x8_t -# 14| getParameter(1): [Parameter] b -# 14| Type = [CTypedefType] uint8x8_t -# 14| getEntryPoint(): [BlockStmt] { ... } -# 15| getStmt(0): [ReturnStmt] return ... -# 15| getExpr(): [FunctionCall] call to __builtin_aarch64_uaddlv8qi_uuu -# 15| Type = [CTypedefType] uint16x8_t -# 15| ValueCategory = prvalue -# 15| getArgument(0): [VariableAccess] a -# 15| Type = [CTypedefType] uint8x8_t -# 15| ValueCategory = prvalue(load) -# 15| getArgument(1): [VariableAccess] b -# 15| Type = [CTypedefType] uint8x8_t -# 15| ValueCategory = prvalue(load) -# 18| [TopLevelFunction] uint16x8_t arm_add(uint8x8_t, uint8x8_t) -# 18| : -# 18| getParameter(0): [Parameter] a -# 18| Type = [CTypedefType] uint8x8_t -# 18| getParameter(1): [Parameter] b -# 18| Type = [CTypedefType] uint8x8_t -# 18| getEntryPoint(): [BlockStmt] { ... } -# 19| getStmt(0): [DeclStmt] declaration -# 19| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c -# 19| Type = [CTypedefType] uint8x8_t -# 19| getVariable().getInitializer(): [Initializer] initializer for c -# 19| getExpr(): [FunctionCall] call to vadd_u8 -# 19| Type = [CTypedefType] uint8x8_t -# 19| ValueCategory = prvalue -# 19| getArgument(0): [VariableAccess] a -# 19| Type = [CTypedefType] uint8x8_t -# 19| ValueCategory = prvalue(load) -# 19| getArgument(1): [VariableAccess] b -# 19| Type = [CTypedefType] uint8x8_t -# 19| ValueCategory = prvalue(load) -# 20| getStmt(1): [ReturnStmt] return ... -# 20| getExpr(): [FunctionCall] call to vaddl_u8 -# 20| Type = [CTypedefType] uint16x8_t -# 20| ValueCategory = prvalue -# 20| getArgument(0): [VariableAccess] a -# 20| Type = [CTypedefType] uint8x8_t -# 20| ValueCategory = prvalue(load) -# 20| getArgument(1): [VariableAccess] c -# 20| Type = [CTypedefType] uint8x8_t -# 20| ValueCategory = prvalue(load) +# 12| getParameter(1): [Parameter] b +# 12| Type = [PointerType] uint8x8_t * +# 12| getEntryPoint(): [BlockStmt] { ... } +# 13| getStmt(0): [DeclStmt] declaration +# 13| getDeclarationEntry(0): [VariableDeclarationEntry] definition of c +# 13| Type = [CTypedefType] uint8x8_t +# 13| getVariable().getInitializer(): [Initializer] initializer for c +# 13| getExpr(): [FunctionCall] call to vadd_u8 +# 13| Type = [CTypedefType] uint8x8_t +# 13| ValueCategory = prvalue +# 13| getArgument(0): [VariableAccess] a +# 13| Type = [CTypedefType] uint8x8_t +# 13| ValueCategory = prvalue(load) +# 13| getArgument(1): [PointerDereferenceExpr] * ... +# 13| Type = [CTypedefType] uint8x8_t +# 13| ValueCategory = prvalue(load) +# 13| getOperand(): [VariableAccess] b +# 13| Type = [PointerType] uint8x8_t * +# 13| ValueCategory = prvalue(load) +# 14| getStmt(1): [ReturnStmt] return ... +# 14| getExpr(): [FunctionCall] call to vaddl_u8 +# 14| Type = [CTypedefType] uint16x8_t +# 14| ValueCategory = prvalue +# 14| getArgument(0): [VariableAccess] a +# 14| Type = [CTypedefType] uint8x8_t +# 14| ValueCategory = prvalue(load) +# 14| getArgument(1): [VariableAccess] c +# 14| Type = [CTypedefType] uint8x8_t +# 14| ValueCategory = prvalue(load) +# 20| [TopLevelFunction] mfloat8x8_t vreinterpret_mf8_s8(int8x8_t) +# 20| : +# 20| getParameter(0): [Parameter] (unnamed parameter 0) +# 20| Type = [CTypedefType] int8x8_t +# 22| [TopLevelFunction] mfloat8x8_t arm_reinterpret(int8x8_t*) +# 22| : +# 22| getParameter(0): [Parameter] a +# 22| Type = [PointerType] int8x8_t * +# 22| getEntryPoint(): [BlockStmt] { ... } +# 23| getStmt(0): [ReturnStmt] return ... +# 23| getExpr(): [FunctionCall] call to vreinterpret_mf8_s8 +# 23| Type = [CTypedefType] mfloat8x8_t +# 23| ValueCategory = prvalue +# 23| getArgument(0): [PointerDereferenceExpr] * ... +# 23| Type = [CTypedefType] int8x8_t +# 23| ValueCategory = prvalue(load) +# 23| getOperand(): [VariableAccess] a +# 23| Type = [PointerType] int8x8_t * +# 23| ValueCategory = prvalue(load) +arm_sve.cpp: +# 6| [TopLevelFunction] svuint8x2_t svsel_u8_x2(svcount_t, svuint8x2_t, svuint8x2_t) +# 6| : +# 6| getParameter(0): [Parameter] (unnamed parameter 0) +# 6| Type = [CTypedefType] svcount_t +# 6| getParameter(1): [Parameter] (unnamed parameter 1) +# 6| Type = [CTypedefType] svuint8x2_t +# 6| getParameter(2): [Parameter] (unnamed parameter 2) +# 6| Type = [CTypedefType] svuint8x2_t +# 8| [TopLevelFunction] svuint8x2_t arm_sel(svcount_t, svuint8x2_t, svuint8x2_t*) +# 8| : +# 8| getParameter(0): [Parameter] a +# 8| Type = [CTypedefType] svcount_t +# 8| getParameter(1): [Parameter] b +# 8| Type = [CTypedefType] svuint8x2_t +# 8| getParameter(2): [Parameter] c +# 8| Type = [PointerType] svuint8x2_t * +# 8| getEntryPoint(): [BlockStmt] { ... } +# 9| getStmt(0): [DeclStmt] declaration +# 9| getDeclarationEntry(0): [VariableDeclarationEntry] definition of d +# 9| Type = [CTypedefType] svuint8x2_t +# 9| getVariable().getInitializer(): [Initializer] initializer for d +# 9| getExpr(): [FunctionCall] call to svsel_u8_x2 +# 9| Type = [CTypedefType] svuint8x2_t +# 9| ValueCategory = prvalue +# 9| getArgument(0): [VariableAccess] a +# 9| Type = [CTypedefType] svcount_t +# 9| ValueCategory = prvalue(load) +# 9| getArgument(1): [VariableAccess] b +# 9| Type = [CTypedefType] svuint8x2_t +# 9| ValueCategory = prvalue(load) +# 9| getArgument(2): [PointerDereferenceExpr] * ... +# 9| Type = [CTypedefType] svuint8x2_t +# 9| ValueCategory = prvalue(load) +# 9| getOperand(): [VariableAccess] c +# 9| Type = [PointerType] svuint8x2_t * +# 9| ValueCategory = prvalue(load) +# 10| getStmt(1): [ReturnStmt] return ... +# 10| getExpr(): [VariableAccess] d +# 10| Type = [CTypedefType] svuint8x2_t +# 10| ValueCategory = prvalue(load) bad_asts.cpp: # 5| [CopyAssignmentOperator] Bad::S& Bad::S::operator=(Bad::S const&) # 5| : diff --git a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected index e258fd81f3e..575631ab041 100644 --- a/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/aliased_ir.expected @@ -1,4 +1,4 @@ -arm.cpp: +arm_neon.cpp: # 6| uint8x8_t vadd_u8(uint8x8_t, uint8x8_t) # 6| Block 0 # 6| v6_1(void) = EnterFunction : @@ -21,65 +21,107 @@ arm.cpp: # 6| v6_11(void) = AliasedUse : m6_3 # 6| v6_12(void) = ExitFunction : -# 14| uint16x8_t vaddl_u8(uint8x8_t, uint8x8_t) -# 14| Block 0 -# 14| v14_1(void) = EnterFunction : -# 14| m14_2(unknown) = AliasedDefinition : -# 14| m14_3(unknown) = InitializeNonLocal : -# 14| m14_4(unknown) = Chi : total:m14_2, partial:m14_3 -# 14| r14_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 14| m14_6(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r14_5 -# 14| r14_7(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 14| m14_8(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[b] : &:r14_7 -# 15| r15_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 15| r15_2(glval) = FunctionAddress[__builtin_aarch64_uaddlv8qi_uuu] : -# 15| r15_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 15| r15_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r15_3, m14_6 -# 15| r15_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 15| r15_6(__attribute((neon_vector_type(8))) unsigned char) = Load[b] : &:r15_5, m14_8 -# 15| r15_7(__attribute((neon_vector_type(8))) unsigned short) = Call[__builtin_aarch64_uaddlv8qi_uuu] : func:r15_2, 0:r15_4, 1:r15_6 -# 15| m15_8(unknown) = ^CallSideEffect : ~m14_4 -# 15| m15_9(unknown) = Chi : total:m14_4, partial:m15_8 -# 15| m15_10(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r15_1, r15_7 -# 14| r14_9(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 14| v14_10(void) = ReturnValue : &:r14_9, m15_10 -# 14| v14_11(void) = AliasedUse : ~m15_9 -# 14| v14_12(void) = ExitFunction : +# 12| uint16x8_t arm_add(uint8x8_t, uint8x8_t*) +# 12| Block 0 +# 12| v12_1(void) = EnterFunction : +# 12| m12_2(unknown) = AliasedDefinition : +# 12| m12_3(unknown) = InitializeNonLocal : +# 12| m12_4(unknown) = Chi : total:m12_2, partial:m12_3 +# 12| r12_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 12| m12_6(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r12_5 +# 12| r12_7(glval<__attribute((neon_vector_type(8))) unsigned char *>) = VariableAddress[b] : +# 12| m12_8(__attribute((neon_vector_type(8))) unsigned char *) = InitializeParameter[b] : &:r12_7 +# 12| r12_9(__attribute((neon_vector_type(8))) unsigned char *) = Load[b] : &:r12_7, m12_8 +# 12| m12_10(unknown) = InitializeIndirection[b] : &:r12_9 +# 13| r13_1(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : +# 13| r13_2(glval) = FunctionAddress[vadd_u8] : +# 13| r13_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 13| r13_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r13_3, m12_6 +# 13| r13_5(glval<__attribute((neon_vector_type(8))) unsigned char *>) = VariableAddress[b] : +# 13| r13_6(__attribute((neon_vector_type(8))) unsigned char *) = Load[b] : &:r13_5, m12_8 +# 13| r13_7(__attribute((neon_vector_type(8))) unsigned char) = Load[?] : &:r13_6, ~m12_10 +# 13| r13_8(__attribute((neon_vector_type(8))) unsigned char) = Call[vadd_u8] : func:r13_2, 0:r13_4, 1:r13_7 +# 13| m13_9(unknown) = ^CallSideEffect : ~m12_4 +# 13| m13_10(unknown) = Chi : total:m12_4, partial:m13_9 +# 13| m13_11(__attribute((neon_vector_type(8))) unsigned char) = Store[c] : &:r13_1, r13_8 +# 14| r14_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : +# 14| r14_2(glval) = FunctionAddress[vaddl_u8] : +# 14| r14_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 14| r14_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r14_3, m12_6 +# 14| r14_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : +# 14| r14_6(__attribute((neon_vector_type(8))) unsigned char) = Load[c] : &:r14_5, m13_11 +# 14| r14_7(__attribute((neon_vector_type(8))) unsigned short) = Call[vaddl_u8] : func:r14_2, 0:r14_4, 1:r14_6 +# 14| m14_8(unknown) = ^CallSideEffect : ~m13_10 +# 14| m14_9(unknown) = Chi : total:m13_10, partial:m14_8 +# 14| m14_10(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r14_1, r14_7 +# 12| v12_11(void) = ReturnIndirection[b] : &:r12_9, m12_10 +# 12| r12_12(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : +# 12| v12_13(void) = ReturnValue : &:r12_12, m14_10 +# 12| v12_14(void) = AliasedUse : ~m14_9 +# 12| v12_15(void) = ExitFunction : -# 18| uint16x8_t arm_add(uint8x8_t, uint8x8_t) -# 18| Block 0 -# 18| v18_1(void) = EnterFunction : -# 18| m18_2(unknown) = AliasedDefinition : -# 18| m18_3(unknown) = InitializeNonLocal : -# 18| m18_4(unknown) = Chi : total:m18_2, partial:m18_3 -# 18| r18_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 18| m18_6(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r18_5 -# 18| r18_7(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 18| m18_8(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[b] : &:r18_7 -# 19| r19_1(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : -# 19| r19_2(glval) = FunctionAddress[vadd_u8] : -# 19| r19_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 19| r19_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r19_3, m18_6 -# 19| r19_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 19| r19_6(__attribute((neon_vector_type(8))) unsigned char) = Load[b] : &:r19_5, m18_8 -# 19| r19_7(__attribute((neon_vector_type(8))) unsigned char) = Call[vadd_u8] : func:r19_2, 0:r19_4, 1:r19_6 -# 19| m19_8(unknown) = ^CallSideEffect : ~m18_4 -# 19| m19_9(unknown) = Chi : total:m18_4, partial:m19_8 -# 19| m19_10(__attribute((neon_vector_type(8))) unsigned char) = Store[c] : &:r19_1, r19_7 -# 20| r20_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 20| r20_2(glval) = FunctionAddress[vaddl_u8] : -# 20| r20_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 20| r20_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r20_3, m18_6 -# 20| r20_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : -# 20| r20_6(__attribute((neon_vector_type(8))) unsigned char) = Load[c] : &:r20_5, m19_10 -# 20| r20_7(__attribute((neon_vector_type(8))) unsigned short) = Call[vaddl_u8] : func:r20_2, 0:r20_4, 1:r20_6 -# 20| m20_8(unknown) = ^CallSideEffect : ~m19_9 -# 20| m20_9(unknown) = Chi : total:m19_9, partial:m20_8 -# 20| m20_10(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r20_1, r20_7 -# 18| r18_9(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 18| v18_10(void) = ReturnValue : &:r18_9, m20_10 -# 18| v18_11(void) = AliasedUse : ~m20_9 -# 18| v18_12(void) = ExitFunction : +# 22| mfloat8x8_t arm_reinterpret(int8x8_t*) +# 22| Block 0 +# 22| v22_1(void) = EnterFunction : +# 22| m22_2(unknown) = AliasedDefinition : +# 22| m22_3(unknown) = InitializeNonLocal : +# 22| m22_4(unknown) = Chi : total:m22_2, partial:m22_3 +# 22| r22_5(glval) = VariableAddress[a] : +# 22| m22_6(char *) = InitializeParameter[a] : &:r22_5 +# 22| r22_7(char *) = Load[a] : &:r22_5, m22_6 +# 22| m22_8(unknown) = InitializeIndirection[a] : &:r22_7 +# 23| r23_1(glval<__mfp8>) = VariableAddress[#return] : +# 23| r23_2(glval) = FunctionAddress[vreinterpret_mf8_s8] : +# 23| r23_3(glval) = VariableAddress[a] : +# 23| r23_4(char *) = Load[a] : &:r23_3, m22_6 +# 23| r23_5(char) = Load[?] : &:r23_4, ~m22_8 +# 23| r23_6(__mfp8) = Call[vreinterpret_mf8_s8] : func:r23_2, 0:r23_5 +# 23| m23_7(unknown) = ^CallSideEffect : ~m22_4 +# 23| m23_8(unknown) = Chi : total:m22_4, partial:m23_7 +# 23| m23_9(__mfp8) = Store[#return] : &:r23_1, r23_6 +# 22| v22_9(void) = ReturnIndirection[a] : &:r22_7, m22_8 +# 22| r22_10(glval<__mfp8>) = VariableAddress[#return] : +# 22| v22_11(void) = ReturnValue : &:r22_10, m23_9 +# 22| v22_12(void) = AliasedUse : ~m23_8 +# 22| v22_13(void) = ExitFunction : + +arm_sve.cpp: +# 8| svuint8x2_t arm_sel(svcount_t, svuint8x2_t, svuint8x2_t*) +# 8| Block 0 +# 8| v8_1(void) = EnterFunction : +# 8| m8_2(unknown) = AliasedDefinition : +# 8| m8_3(unknown) = InitializeNonLocal : +# 8| m8_4(unknown) = Chi : total:m8_2, partial:m8_3 +# 8| r8_5(glval<__SVCount_t>) = VariableAddress[a] : +# 8| m8_6(__SVCount_t) = InitializeParameter[a] : &:r8_5 +# 8| r8_7(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[b] : +# 8| m8_8(__edg_scalable_vector_type__(unsigned char, 2)) = InitializeParameter[b] : &:r8_7 +# 8| r8_9(glval<__edg_scalable_vector_type__(unsigned char, 2) *>) = VariableAddress[c] : +# 8| m8_10(__edg_scalable_vector_type__(unsigned char, 2) *) = InitializeParameter[c] : &:r8_9 +# 8| r8_11(__edg_scalable_vector_type__(unsigned char, 2) *) = Load[c] : &:r8_9, m8_10 +# 8| m8_12(unknown) = InitializeIndirection[c] : &:r8_11 +# 9| r9_1(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[d] : +# 9| r9_2(glval) = FunctionAddress[svsel_u8_x2] : +# 9| r9_3(glval<__SVCount_t>) = VariableAddress[a] : +# 9| r9_4(__SVCount_t) = Load[a] : &:r9_3, m8_6 +# 9| r9_5(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[b] : +# 9| r9_6(__edg_scalable_vector_type__(unsigned char, 2)) = Load[b] : &:r9_5, m8_8 +# 9| r9_7(glval<__edg_scalable_vector_type__(unsigned char, 2) *>) = VariableAddress[c] : +# 9| r9_8(__edg_scalable_vector_type__(unsigned char, 2) *) = Load[c] : &:r9_7, m8_10 +# 9| r9_9(__edg_scalable_vector_type__(unsigned char, 2)) = Load[?] : &:r9_8, ~m8_12 +# 9| r9_10(__edg_scalable_vector_type__(unsigned char, 2)) = Call[svsel_u8_x2] : func:r9_2, 0:r9_4, 1:r9_6, 2:r9_9 +# 9| m9_11(unknown) = ^CallSideEffect : ~m8_4 +# 9| m9_12(unknown) = Chi : total:m8_4, partial:m9_11 +# 9| m9_13(__edg_scalable_vector_type__(unsigned char, 2)) = Store[d] : &:r9_1, r9_10 +# 10| r10_1(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[#return] : +# 10| r10_2(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[d] : +# 10| r10_3(__edg_scalable_vector_type__(unsigned char, 2)) = Load[d] : &:r10_2, m9_13 +# 10| m10_4(__edg_scalable_vector_type__(unsigned char, 2)) = Store[#return] : &:r10_1, r10_3 +# 8| v8_13(void) = ReturnIndirection[c] : &:r8_11, m8_12 +# 8| r8_14(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[#return] : +# 8| v8_15(void) = ReturnValue : &:r8_14, m10_4 +# 8| v8_16(void) = AliasedUse : ~m9_12 +# 8| v8_17(void) = ExitFunction : bad_asts.cpp: # 9| int Bad::S::MemberFunction(int) diff --git a/cpp/ql/test/library-tests/ir/ir/arm.cpp b/cpp/ql/test/library-tests/ir/ir/arm.cpp deleted file mode 100644 index 36e20715bc5..00000000000 --- a/cpp/ql/test/library-tests/ir/ir/arm.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// semmle-extractor-options: --edg --target --edg linux_arm64 - -typedef __Uint8x8_t uint8x8_t; -typedef __Uint16x8_t uint16x8_t; - -uint8x8_t vadd_u8(uint8x8_t a, uint8x8_t b) { - return a + b; -} - -// Workaround: the frontend only exposes this when the arm_neon.h -// header is encountered. -uint16x8_t __builtin_aarch64_uaddlv8qi_uuu(uint8x8_t, uint8x8_t); - -uint16x8_t vaddl_u8(uint8x8_t a, uint8x8_t b) { - return __builtin_aarch64_uaddlv8qi_uuu (a, b); -} - -uint16x8_t arm_add(uint8x8_t a, uint8x8_t b) { - uint8x8_t c = vadd_u8(a, b); - return vaddl_u8(a, c); -} diff --git a/cpp/ql/test/library-tests/ir/ir/arm_neon.cpp b/cpp/ql/test/library-tests/ir/ir/arm_neon.cpp new file mode 100644 index 00000000000..d1659dfba35 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/arm_neon.cpp @@ -0,0 +1,24 @@ +// semmle-extractor-options: --edg --target --edg linux_arm64 --gnu_version 150000 + +typedef __Uint8x8_t uint8x8_t; +typedef __Uint16x8_t uint16x8_t; + +uint8x8_t vadd_u8(uint8x8_t a, uint8x8_t b) { + return a + b; +} + +uint16x8_t vaddl_u8(uint8x8_t a, uint8x8_t b); + +uint16x8_t arm_add(uint8x8_t a, uint8x8_t *b) { + uint8x8_t c = vadd_u8(a, *b); + return vaddl_u8(a, c); +} + +typedef __attribute__((neon_vector_type(8))) __mfp8 mfloat8x8_t; +typedef __attribute__((neon_vector_type(8))) char int8x8_t; + +mfloat8x8_t vreinterpret_mf8_s8(int8x8_t); + +mfloat8x8_t arm_reinterpret(int8x8_t *a) { + return vreinterpret_mf8_s8(*a); +} diff --git a/cpp/ql/test/library-tests/ir/ir/arm_sve.cpp b/cpp/ql/test/library-tests/ir/ir/arm_sve.cpp new file mode 100644 index 00000000000..33bad8abbe4 --- /dev/null +++ b/cpp/ql/test/library-tests/ir/ir/arm_sve.cpp @@ -0,0 +1,11 @@ +// semmle-extractor-options: --edg --target --edg linux_arm64 --clang_version 190000 + +typedef __clang_svuint8x2_t svuint8x2_t; +typedef __SVCount_t svcount_t; + +svuint8x2_t svsel_u8_x2(svcount_t, svuint8x2_t, svuint8x2_t); + +svuint8x2_t arm_sel(svcount_t a, svuint8x2_t b, svuint8x2_t *c) { + svuint8x2_t d = svsel_u8_x2(a, b, *c); + return d; +} diff --git a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected index 97d7e7c43b4..e57a3bc11b5 100644 --- a/cpp/ql/test/library-tests/ir/ir/raw_ir.expected +++ b/cpp/ql/test/library-tests/ir/ir/raw_ir.expected @@ -1,4 +1,4 @@ -arm.cpp: +arm_neon.cpp: # 6| uint8x8_t vadd_u8(uint8x8_t, uint8x8_t) # 6| Block 0 # 6| v6_1(void) = EnterFunction : @@ -20,60 +20,100 @@ arm.cpp: # 6| v6_10(void) = AliasedUse : ~m? # 6| v6_11(void) = ExitFunction : -# 14| uint16x8_t vaddl_u8(uint8x8_t, uint8x8_t) -# 14| Block 0 -# 14| v14_1(void) = EnterFunction : -# 14| mu14_2(unknown) = AliasedDefinition : -# 14| mu14_3(unknown) = InitializeNonLocal : -# 14| r14_4(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 14| mu14_5(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r14_4 -# 14| r14_6(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 14| mu14_7(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[b] : &:r14_6 -# 15| r15_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 15| r15_2(glval) = FunctionAddress[__builtin_aarch64_uaddlv8qi_uuu] : -# 15| r15_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 15| r15_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r15_3, ~m? -# 15| r15_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 15| r15_6(__attribute((neon_vector_type(8))) unsigned char) = Load[b] : &:r15_5, ~m? -# 15| r15_7(__attribute((neon_vector_type(8))) unsigned short) = Call[__builtin_aarch64_uaddlv8qi_uuu] : func:r15_2, 0:r15_4, 1:r15_6 -# 15| mu15_8(unknown) = ^CallSideEffect : ~m? -# 15| mu15_9(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r15_1, r15_7 -# 14| r14_8(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 14| v14_9(void) = ReturnValue : &:r14_8, ~m? -# 14| v14_10(void) = AliasedUse : ~m? -# 14| v14_11(void) = ExitFunction : +# 12| uint16x8_t arm_add(uint8x8_t, uint8x8_t*) +# 12| Block 0 +# 12| v12_1(void) = EnterFunction : +# 12| mu12_2(unknown) = AliasedDefinition : +# 12| mu12_3(unknown) = InitializeNonLocal : +# 12| r12_4(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 12| mu12_5(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r12_4 +# 12| r12_6(glval<__attribute((neon_vector_type(8))) unsigned char *>) = VariableAddress[b] : +# 12| mu12_7(__attribute((neon_vector_type(8))) unsigned char *) = InitializeParameter[b] : &:r12_6 +# 12| r12_8(__attribute((neon_vector_type(8))) unsigned char *) = Load[b] : &:r12_6, ~m? +# 12| mu12_9(unknown) = InitializeIndirection[b] : &:r12_8 +# 13| r13_1(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : +# 13| r13_2(glval) = FunctionAddress[vadd_u8] : +# 13| r13_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 13| r13_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r13_3, ~m? +# 13| r13_5(glval<__attribute((neon_vector_type(8))) unsigned char *>) = VariableAddress[b] : +# 13| r13_6(__attribute((neon_vector_type(8))) unsigned char *) = Load[b] : &:r13_5, ~m? +# 13| r13_7(__attribute((neon_vector_type(8))) unsigned char) = Load[?] : &:r13_6, ~m? +# 13| r13_8(__attribute((neon_vector_type(8))) unsigned char) = Call[vadd_u8] : func:r13_2, 0:r13_4, 1:r13_7 +# 13| mu13_9(unknown) = ^CallSideEffect : ~m? +# 13| mu13_10(__attribute((neon_vector_type(8))) unsigned char) = Store[c] : &:r13_1, r13_8 +# 14| r14_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : +# 14| r14_2(glval) = FunctionAddress[vaddl_u8] : +# 14| r14_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : +# 14| r14_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r14_3, ~m? +# 14| r14_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : +# 14| r14_6(__attribute((neon_vector_type(8))) unsigned char) = Load[c] : &:r14_5, ~m? +# 14| r14_7(__attribute((neon_vector_type(8))) unsigned short) = Call[vaddl_u8] : func:r14_2, 0:r14_4, 1:r14_6 +# 14| mu14_8(unknown) = ^CallSideEffect : ~m? +# 14| mu14_9(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r14_1, r14_7 +# 12| v12_10(void) = ReturnIndirection[b] : &:r12_8, ~m? +# 12| r12_11(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : +# 12| v12_12(void) = ReturnValue : &:r12_11, ~m? +# 12| v12_13(void) = AliasedUse : ~m? +# 12| v12_14(void) = ExitFunction : -# 18| uint16x8_t arm_add(uint8x8_t, uint8x8_t) -# 18| Block 0 -# 18| v18_1(void) = EnterFunction : -# 18| mu18_2(unknown) = AliasedDefinition : -# 18| mu18_3(unknown) = InitializeNonLocal : -# 18| r18_4(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 18| mu18_5(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[a] : &:r18_4 -# 18| r18_6(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 18| mu18_7(__attribute((neon_vector_type(8))) unsigned char) = InitializeParameter[b] : &:r18_6 -# 19| r19_1(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : -# 19| r19_2(glval) = FunctionAddress[vadd_u8] : -# 19| r19_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 19| r19_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r19_3, ~m? -# 19| r19_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[b] : -# 19| r19_6(__attribute((neon_vector_type(8))) unsigned char) = Load[b] : &:r19_5, ~m? -# 19| r19_7(__attribute((neon_vector_type(8))) unsigned char) = Call[vadd_u8] : func:r19_2, 0:r19_4, 1:r19_6 -# 19| mu19_8(unknown) = ^CallSideEffect : ~m? -# 19| mu19_9(__attribute((neon_vector_type(8))) unsigned char) = Store[c] : &:r19_1, r19_7 -# 20| r20_1(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 20| r20_2(glval) = FunctionAddress[vaddl_u8] : -# 20| r20_3(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[a] : -# 20| r20_4(__attribute((neon_vector_type(8))) unsigned char) = Load[a] : &:r20_3, ~m? -# 20| r20_5(glval<__attribute((neon_vector_type(8))) unsigned char>) = VariableAddress[c] : -# 20| r20_6(__attribute((neon_vector_type(8))) unsigned char) = Load[c] : &:r20_5, ~m? -# 20| r20_7(__attribute((neon_vector_type(8))) unsigned short) = Call[vaddl_u8] : func:r20_2, 0:r20_4, 1:r20_6 -# 20| mu20_8(unknown) = ^CallSideEffect : ~m? -# 20| mu20_9(__attribute((neon_vector_type(8))) unsigned short) = Store[#return] : &:r20_1, r20_7 -# 18| r18_8(glval<__attribute((neon_vector_type(8))) unsigned short>) = VariableAddress[#return] : -# 18| v18_9(void) = ReturnValue : &:r18_8, ~m? -# 18| v18_10(void) = AliasedUse : ~m? -# 18| v18_11(void) = ExitFunction : +# 22| mfloat8x8_t arm_reinterpret(int8x8_t*) +# 22| Block 0 +# 22| v22_1(void) = EnterFunction : +# 22| mu22_2(unknown) = AliasedDefinition : +# 22| mu22_3(unknown) = InitializeNonLocal : +# 22| r22_4(glval) = VariableAddress[a] : +# 22| mu22_5(char *) = InitializeParameter[a] : &:r22_4 +# 22| r22_6(char *) = Load[a] : &:r22_4, ~m? +# 22| mu22_7(unknown) = InitializeIndirection[a] : &:r22_6 +# 23| r23_1(glval<__mfp8>) = VariableAddress[#return] : +# 23| r23_2(glval) = FunctionAddress[vreinterpret_mf8_s8] : +# 23| r23_3(glval) = VariableAddress[a] : +# 23| r23_4(char *) = Load[a] : &:r23_3, ~m? +# 23| r23_5(char) = Load[?] : &:r23_4, ~m? +# 23| r23_6(__mfp8) = Call[vreinterpret_mf8_s8] : func:r23_2, 0:r23_5 +# 23| mu23_7(unknown) = ^CallSideEffect : ~m? +# 23| mu23_8(__mfp8) = Store[#return] : &:r23_1, r23_6 +# 22| v22_8(void) = ReturnIndirection[a] : &:r22_6, ~m? +# 22| r22_9(glval<__mfp8>) = VariableAddress[#return] : +# 22| v22_10(void) = ReturnValue : &:r22_9, ~m? +# 22| v22_11(void) = AliasedUse : ~m? +# 22| v22_12(void) = ExitFunction : + +arm_sve.cpp: +# 8| svuint8x2_t arm_sel(svcount_t, svuint8x2_t, svuint8x2_t*) +# 8| Block 0 +# 8| v8_1(void) = EnterFunction : +# 8| mu8_2(unknown) = AliasedDefinition : +# 8| mu8_3(unknown) = InitializeNonLocal : +# 8| r8_4(glval<__SVCount_t>) = VariableAddress[a] : +# 8| mu8_5(__SVCount_t) = InitializeParameter[a] : &:r8_4 +# 8| r8_6(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[b] : +# 8| mu8_7(__edg_scalable_vector_type__(unsigned char, 2)) = InitializeParameter[b] : &:r8_6 +# 8| r8_8(glval<__edg_scalable_vector_type__(unsigned char, 2) *>) = VariableAddress[c] : +# 8| mu8_9(__edg_scalable_vector_type__(unsigned char, 2) *) = InitializeParameter[c] : &:r8_8 +# 8| r8_10(__edg_scalable_vector_type__(unsigned char, 2) *) = Load[c] : &:r8_8, ~m? +# 8| mu8_11(unknown) = InitializeIndirection[c] : &:r8_10 +# 9| r9_1(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[d] : +# 9| r9_2(glval) = FunctionAddress[svsel_u8_x2] : +# 9| r9_3(glval<__SVCount_t>) = VariableAddress[a] : +# 9| r9_4(__SVCount_t) = Load[a] : &:r9_3, ~m? +# 9| r9_5(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[b] : +# 9| r9_6(__edg_scalable_vector_type__(unsigned char, 2)) = Load[b] : &:r9_5, ~m? +# 9| r9_7(glval<__edg_scalable_vector_type__(unsigned char, 2) *>) = VariableAddress[c] : +# 9| r9_8(__edg_scalable_vector_type__(unsigned char, 2) *) = Load[c] : &:r9_7, ~m? +# 9| r9_9(__edg_scalable_vector_type__(unsigned char, 2)) = Load[?] : &:r9_8, ~m? +# 9| r9_10(__edg_scalable_vector_type__(unsigned char, 2)) = Call[svsel_u8_x2] : func:r9_2, 0:r9_4, 1:r9_6, 2:r9_9 +# 9| mu9_11(unknown) = ^CallSideEffect : ~m? +# 9| mu9_12(__edg_scalable_vector_type__(unsigned char, 2)) = Store[d] : &:r9_1, r9_10 +# 10| r10_1(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[#return] : +# 10| r10_2(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[d] : +# 10| r10_3(__edg_scalable_vector_type__(unsigned char, 2)) = Load[d] : &:r10_2, ~m? +# 10| mu10_4(__edg_scalable_vector_type__(unsigned char, 2)) = Store[#return] : &:r10_1, r10_3 +# 8| v8_12(void) = ReturnIndirection[c] : &:r8_10, ~m? +# 8| r8_13(glval<__edg_scalable_vector_type__(unsigned char, 2)>) = VariableAddress[#return] : +# 8| v8_14(void) = ReturnValue : &:r8_13, ~m? +# 8| v8_15(void) = AliasedUse : ~m? +# 8| v8_16(void) = ExitFunction : bad_asts.cpp: # 9| int Bad::S::MemberFunction(int) From a36738832623df350f5dc5f0733b08a3d5f629ba Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 20 Jun 2025 13:44:34 +0200 Subject: [PATCH 199/340] Shared: Refactor type inference and expose `SatisfiesConstraint` module --- .../typeinference/internal/TypeInference.qll | 190 ++++++++++-------- 1 file changed, 103 insertions(+), 87 deletions(-) diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index f152d4a1642..2de46f3cc57 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -866,6 +866,101 @@ module Make1 Input1> { private import BaseTypes + signature module SatisfiesConstraintSig { + /** Holds if it is relevant to know if `term` satisfies `constraint`. */ + predicate relevantConstraint(TypeTree term, Type constraint); + } + + module SatisfiesConstraint Input> { + import Input + + private module IsInstantiationOfInput implements IsInstantiationOfInputSig { + predicate potentialInstantiationOf(TypeTree tt, TypeAbstraction abs, TypeMention cond) { + exists(Type constraint, Type type | + type = tt.getTypeAt(TypePath::nil()) and + relevantConstraint(tt, constraint) and + rootTypesSatisfaction(type, constraint, abs, cond, _) and + // We only need to check instantiations where there are multiple candidates. + countConstraintImplementations(type, constraint) > 1 + ) + } + + predicate relevantTypeMention(TypeMention constraint) { + rootTypesSatisfaction(_, _, _, constraint, _) + } + } + + /** Holds if the type tree has the type `type` and should satisfy `constraint`. */ + private predicate hasTypeConstraint(TypeTree term, Type type, Type constraint) { + type = term.getTypeAt(TypePath::nil()) and + relevantConstraint(term, constraint) + } + + /** + * Holds if `tt` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. + */ + pragma[nomagic] + private predicate hasConstraintMention( + TypeTree tt, TypeAbstraction abs, TypeMention sub, Type constraint, + TypeMention constraintMention + ) { + exists(Type type | hasTypeConstraint(tt, type, constraint) | + not exists(countConstraintImplementations(type, constraint)) and + conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, _, _) and + resolveTypeMentionRoot(sub) = abs.getATypeParameter() and + constraint = resolveTypeMentionRoot(constraintMention) + or + countConstraintImplementations(type, constraint) > 0 and + rootTypesSatisfaction(type, constraint, abs, sub, constraintMention) and + // When there are multiple ways the type could implement the + // constraint we need to find the right implementation, which is the + // one where the type instantiates the precondition. + if countConstraintImplementations(type, constraint) > 1 + then IsInstantiationOf::isInstantiationOf(tt, abs, sub) + else any() + ) + } + + pragma[nomagic] + private predicate satisfiesConstraintTypeMention0( + TypeTree tt, Type constraint, TypeAbstraction abs, TypeMention sub, TypePath path, Type t + ) { + exists(TypeMention constraintMention | + hasConstraintMention(tt, abs, sub, constraint, constraintMention) and + conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, path, t) + ) + } + + pragma[nomagic] + private predicate satisfiesConstraintTypeMention1( + TypeTree tt, Type constraint, TypePath path, TypePath pathToTypeParamInSub + ) { + exists(TypeAbstraction abs, TypeMention sub, TypeParameter tp | + satisfiesConstraintTypeMention0(tt, constraint, abs, sub, path, tp) and + tp = abs.getATypeParameter() and + sub.resolveTypeAt(pathToTypeParamInSub) = tp + ) + } + + /** + * Holds if the type tree at `tt` satisfies the constraint `constraint` + * with the type `t` at `path`. + */ + pragma[nomagic] + predicate satisfiesConstraintTypeMention(TypeTree tt, Type constraint, TypePath path, Type t) { + exists(TypeAbstraction abs | + satisfiesConstraintTypeMention0(tt, constraint, abs, _, path, t) and + not t = abs.getATypeParameter() + ) + or + exists(TypePath prefix0, TypePath pathToTypeParamInSub, TypePath suffix | + satisfiesConstraintTypeMention1(tt, constraint, prefix0, pathToTypeParamInSub) and + tt.getTypeAt(pathToTypeParamInSub.appendInverse(suffix)) = t and + path = prefix0.append(suffix) + ) + } + } + /** Provides the input to `Matching`. */ signature module MatchingInputSig { /** @@ -1129,11 +1224,8 @@ module Make1 Input1> { adjustedAccessType(a, apos, target, path.appendInverse(suffix), result) } - /** Holds if this relevant access has the type `type` and should satisfy `constraint`. */ - predicate hasTypeConstraint(Type type, Type constraint) { - adjustedAccessType(a, apos, target, path, type) and - relevantAccessConstraint(a, target, apos, path, constraint) - } + /** Holds if this relevant access should satisfy `constraint`. */ + Type getConstraint() { relevantAccessConstraint(a, target, apos, path, result) } string toString() { result = a.toString() + ", " + apos.toString() + ", " + path.toString() @@ -1142,94 +1234,18 @@ module Make1 Input1> { Location getLocation() { result = a.getLocation() } } - private module IsInstantiationOfInput implements IsInstantiationOfInputSig { - predicate potentialInstantiationOf( - RelevantAccess at, TypeAbstraction abs, TypeMention cond - ) { - exists(Type constraint, Type type | - at.hasTypeConstraint(type, constraint) and - rootTypesSatisfaction(type, constraint, abs, cond, _) and - // We only need to check instantiations where there are multiple candidates. - countConstraintImplementations(type, constraint) > 1 - ) - } - - predicate relevantTypeMention(TypeMention constraint) { - rootTypesSatisfaction(_, _, _, constraint, _) + private module SatisfiesConstraintInput implements SatisfiesConstraintSig { + predicate relevantConstraint(RelevantAccess at, Type constraint) { + constraint = at.getConstraint() } } - /** - * Holds if `at` satisfies `constraint` through `abs`, `sub`, and `constraintMention`. - */ - pragma[nomagic] - private predicate hasConstraintMention( - RelevantAccess at, TypeAbstraction abs, TypeMention sub, Type constraint, - TypeMention constraintMention - ) { - exists(Type type | at.hasTypeConstraint(type, constraint) | - not exists(countConstraintImplementations(type, constraint)) and - conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, _, _) and - resolveTypeMentionRoot(sub) = abs.getATypeParameter() and - constraint = resolveTypeMentionRoot(constraintMention) - or - countConstraintImplementations(type, constraint) > 0 and - rootTypesSatisfaction(type, constraint, abs, sub, constraintMention) and - // When there are multiple ways the type could implement the - // constraint we need to find the right implementation, which is the - // one where the type instantiates the precondition. - if countConstraintImplementations(type, constraint) > 1 - then - IsInstantiationOf::isInstantiationOf(at, abs, - sub) - else any() - ) - } - - pragma[nomagic] - predicate satisfiesConstraintTypeMention0( - RelevantAccess at, Access a, AccessPosition apos, TypePath prefix, Type constraint, - TypeAbstraction abs, TypeMention sub, TypePath path, Type t - ) { - exists(TypeMention constraintMention | - at = MkRelevantAccess(a, _, apos, prefix) and - hasConstraintMention(at, abs, sub, constraint, constraintMention) and - conditionSatisfiesConstraintTypeAt(abs, sub, constraintMention, path, t) - ) - } - - pragma[nomagic] - predicate satisfiesConstraintTypeMention1( - RelevantAccess at, Access a, AccessPosition apos, TypePath prefix, Type constraint, - TypePath path, TypePath pathToTypeParamInSub - ) { - exists(TypeAbstraction abs, TypeMention sub, TypeParameter tp | - satisfiesConstraintTypeMention0(at, a, apos, prefix, constraint, abs, sub, path, tp) and - tp = abs.getATypeParameter() and - sub.resolveTypeAt(pathToTypeParamInSub) = tp - ) - } - - /** - * Holds if the type at `a`, `apos`, and `path` satisfies the constraint - * `constraint` with the type `t` at `path`. - */ - pragma[nomagic] predicate satisfiesConstraintTypeMention( Access a, AccessPosition apos, TypePath prefix, Type constraint, TypePath path, Type t ) { - exists(TypeAbstraction abs | - satisfiesConstraintTypeMention0(_, a, apos, prefix, constraint, abs, _, path, t) and - not t = abs.getATypeParameter() - ) - or - exists( - RelevantAccess at, TypePath prefix0, TypePath pathToTypeParamInSub, TypePath suffix - | - satisfiesConstraintTypeMention1(at, a, apos, prefix, constraint, prefix0, - pathToTypeParamInSub) and - at.getTypeAt(pathToTypeParamInSub.appendInverse(suffix)) = t and - path = prefix0.append(suffix) + exists(RelevantAccess at | at = MkRelevantAccess(a, _, apos, prefix) | + SatisfiesConstraint::satisfiesConstraintTypeMention(at, + constraint, path, t) ) } } From 6e9fd496a6126814ffe113c0343625ff327d7fb6 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 20 Jun 2025 13:53:29 +0200 Subject: [PATCH 200/340] Rust: Implement `await` expression using `SatisfiesConstraint` module --- .../codeql/rust/internal/PathResolution.qll | 4 +- .../codeql/rust/internal/TypeInference.qll | 93 ++++--------------- rust/tools/builtins/await.rs | 7 -- 3 files changed, 18 insertions(+), 86 deletions(-) delete mode 100644 rust/tools/builtins/await.rs diff --git a/rust/ql/lib/codeql/rust/internal/PathResolution.qll b/rust/ql/lib/codeql/rust/internal/PathResolution.qll index f2c487598de..2f8c051d770 100644 --- a/rust/ql/lib/codeql/rust/internal/PathResolution.qll +++ b/rust/ql/lib/codeql/rust/internal/PathResolution.qll @@ -1132,7 +1132,7 @@ pragma[nomagic] private predicate crateDependencyEdge(SourceFileItemNode file, string name, CrateItemNode dep) { exists(CrateItemNode c | dep = c.(Crate).getDependency(name) | file = c.getASourceFile()) or - // Give builtin files, such as `await.rs`, access to `std` + // Give builtin files access to `std` file instanceof BuiltinSourceFile and dep.getName() = name and name = "std" @@ -1501,7 +1501,7 @@ private predicate preludeEdge(SourceFile f, string name, ItemNode i) { exists(Crate stdOrCore, ModuleLikeNode mod, ModuleItemNode prelude, ModuleItemNode rust | f = any(Crate c0 | stdOrCore = c0.getDependency(_) or stdOrCore = c0).getASourceFile() or - // Give builtin files, such as `await.rs`, access to the prelude + // Give builtin files access to the prelude f instanceof BuiltinSourceFile | stdOrCore.getName() = ["std", "core"] and diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b560ac5ec8c..a3cacc2f0ed 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -997,79 +997,6 @@ private AssociatedTypeTypeParameter getFutureOutputTypeParameter() { result.getTypeAlias() = any(FutureTrait ft).getOutputType() } -/** - * A matching configuration for resolving types of `.await` expressions. - */ -private module AwaitExprMatchingInput implements MatchingInputSig { - private newtype TDeclarationPosition = - TSelfDeclarationPosition() or - TOutputPos() - - class DeclarationPosition extends TDeclarationPosition { - predicate isSelf() { this = TSelfDeclarationPosition() } - - predicate isOutput() { this = TOutputPos() } - - string toString() { - this.isSelf() and - result = "self" - or - this.isOutput() and - result = "(output)" - } - } - - private class BuiltinsAwaitFile extends File { - BuiltinsAwaitFile() { - this.getBaseName() = "await.rs" and - this.getParentContainer() instanceof Builtins::BuiltinsFolder - } - } - - class Declaration extends Function { - Declaration() { - this.getFile() instanceof BuiltinsAwaitFile and - this.getName().getText() = "await_type_matching" - } - - TypeParameter getTypeParameter(TypeParameterPosition ppos) { - typeParamMatchPosition(this.getGenericParamList().getATypeParam(), result, ppos) - } - - Type getDeclaredType(DeclarationPosition dpos, TypePath path) { - dpos.isSelf() and - result = this.getParam(0).getTypeRepr().(TypeMention).resolveTypeAt(path) - or - dpos.isOutput() and - result = this.getRetType().getTypeRepr().(TypeMention).resolveTypeAt(path) - } - } - - class AccessPosition = DeclarationPosition; - - class Access extends AwaitExpr { - Type getTypeArgument(TypeArgumentPosition apos, TypePath path) { none() } - - AstNode getNodeAt(AccessPosition apos) { - result = this.getExpr() and - apos.isSelf() - or - result = this and - apos.isOutput() - } - - Type getInferredType(AccessPosition apos, TypePath path) { - result = inferType(this.getNodeAt(apos), path) - } - - Declaration getTarget() { exists(this) and exists(result) } - } - - predicate accessDeclarationPositionMatch(AccessPosition apos, DeclarationPosition dpos) { - apos = dpos - } -} - pragma[nomagic] private TraitType inferAsyncBlockExprRootType(AsyncBlockExpr abe) { // `typeEquality` handles the non-root case @@ -1077,13 +1004,25 @@ private TraitType inferAsyncBlockExprRootType(AsyncBlockExpr abe) { result = getFutureTraitType() } -private module AwaitExprMatching = Matching; +final class AwaitTarget extends Expr { + AwaitTarget() { this = any(AwaitExpr ae).getExpr() } + + Type getTypeAt(TypePath path) { result = inferType(this, path) } +} + +private module AwaitSatisfiesConstraintInput implements SatisfiesConstraintSig { + predicate relevantConstraint(AwaitTarget term, Type constraint) { + exists(term) and + constraint.(TraitType).getTrait() instanceof FutureTrait + } +} pragma[nomagic] private Type inferAwaitExprType(AstNode n, TypePath path) { - exists(AwaitExprMatchingInput::Access a, AwaitExprMatchingInput::AccessPosition apos | - n = a.getNodeAt(apos) and - result = AwaitExprMatching::inferAccessType(a, apos, path) + exists(TypePath exprPath | + SatisfiesConstraint::satisfiesConstraintTypeMention(n.(AwaitExpr) + .getExpr(), _, exprPath, result) and + exprPath.isCons(getFutureOutputTypeParameter(), path) ) or // This case is needed for `async` functions and blocks, where we assign diff --git a/rust/tools/builtins/await.rs b/rust/tools/builtins/await.rs deleted file mode 100644 index c15af9dc529..00000000000 --- a/rust/tools/builtins/await.rs +++ /dev/null @@ -1,7 +0,0 @@ -use std::future::Future; - -fn await_type_matching>(x: T2) -> T1 { - panic!( - "This function exists only in order to implement type inference for `.await` expressions." - ); -} From 84de91b7d8b5db260c2682c6ba29be7ebcb83345 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 12:51:46 +0200 Subject: [PATCH 201/340] Rust: accept test changes --- .../ExtractionConsistency.expected | 1 + .../controlflow/BasicBlocks.expected | 2 + .../library-tests/controlflow/Cfg.expected | 5 + .../PathResolutionConsistency.expected | 21 +++ .../CONSISTENCY/AstConsistency.expected | 25 ---- .../PathResolutionConsistency.expected | 33 +++++ .../dataflow/sources/InlineFlow.expected | 13 +- .../dataflow/sources/TaintSources.expected | 6 + .../path-resolution/path-resolution.expected | 6 + .../PathResolutionConsistency.expected | 7 + .../test/library-tests/variables/Cfg.expected | 16 ++- .../test/library-tests/variables/Ssa.expected | 8 ++ .../variables/variables.expected | 10 +- .../diagnostics/SummaryStatsReduced.expected | 6 +- .../diagnostics/UnresolvedMacroCalls.expected | 1 - .../CONSISTENCY/AstConsistency.expected | 7 - .../CONSISTENCY/AstConsistency.expected | 8 -- .../PathResolutionConsistency.expected | 122 ++++++++++++++++++ .../CONSISTENCY/AstConsistency.expected | 8 -- .../PathResolutionConsistency.expected | 4 + .../CWE-696/BadCTorInitialization.expected | 98 ++++++++------ .../PathResolutionConsistency.expected | 14 ++ .../PathResolutionConsistency.expected | 4 + .../PathResolutionConsistency.expected | 12 ++ .../unusedentities/UnreachableCode.expected | 6 +- .../unusedentities/UnusedValue.expected | 28 ++-- .../unusedentities/UnusedVariable.expected | 32 +++-- 27 files changed, 360 insertions(+), 143 deletions(-) create mode 100644 rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected delete mode 100644 rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected delete mode 100644 rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected diff --git a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected index 2472f0e25f8..2d13c81bdab 100644 --- a/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected +++ b/rust/ql/test/extractor-tests/macro-expansion/CONSISTENCY/ExtractionConsistency.expected @@ -1,2 +1,3 @@ extractionWarning | included/included.rs:1:1:1:1 | semantic analyzer unavailable (not loaded as its own module, probably included by `!include`) | +| macro_expansion.rs:56:9:56:31 | macro expansion failed: could not resolve macro 'concat' | diff --git a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected index d35cb65edbe..1b4b770c130 100644 --- a/rust/ql/test/library-tests/controlflow/BasicBlocks.expected +++ b/rust/ql/test/library-tests/controlflow/BasicBlocks.expected @@ -730,6 +730,7 @@ dominates | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:541:9:546:9 | if false {...} | | test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | +| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | enter fn panic_cold_explicit | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:553:9:553:17 | ExprStmt | | test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | @@ -1396,6 +1397,7 @@ postDominance | test.rs:539:5:548:5 | enter fn const_block_panic | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:541:9:546:9 | if false {...} | test.rs:539:5:548:5 | enter fn const_block_panic | | test.rs:541:9:546:9 | if false {...} | test.rs:541:9:546:9 | if false {...} | +| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | enter fn panic_cold_explicit | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:553:9:553:17 | ExprStmt | test.rs:551:1:556:1 | enter fn dead_code | | test.rs:553:9:553:17 | ExprStmt | test.rs:553:9:553:17 | ExprStmt | diff --git a/rust/ql/test/library-tests/controlflow/Cfg.expected b/rust/ql/test/library-tests/controlflow/Cfg.expected index 5878654707a..44dd60e915a 100644 --- a/rust/ql/test/library-tests/controlflow/Cfg.expected +++ b/rust/ql/test/library-tests/controlflow/Cfg.expected @@ -1321,6 +1321,11 @@ edges | test.rs:541:9:546:9 | ExprStmt | test.rs:541:12:541:16 | false | | | test.rs:541:9:546:9 | if false {...} | test.rs:547:9:547:9 | N | | | test.rs:541:12:541:16 | false | test.rs:541:9:546:9 | if false {...} | false | +| test.rs:544:17:544:24 | ...::panic_explicit | test.rs:544:17:544:24 | ...::panic_explicit(...) | | +| test.rs:544:17:544:24 | ...::panic_explicit(...) | test.rs:544:17:544:24 | { ... } | | +| test.rs:544:17:544:24 | enter fn panic_cold_explicit | test.rs:544:17:544:24 | ...::panic_explicit | | +| test.rs:544:17:544:24 | exit fn panic_cold_explicit (normal) | test.rs:544:17:544:24 | exit fn panic_cold_explicit | | +| test.rs:544:17:544:24 | { ... } | test.rs:544:17:544:24 | exit fn panic_cold_explicit (normal) | | | test.rs:547:9:547:9 | N | test.rs:539:35:548:5 | { ... } | | | test.rs:551:1:556:1 | enter fn dead_code | test.rs:552:5:554:5 | ExprStmt | | | test.rs:551:1:556:1 | exit fn dead_code (normal) | test.rs:551:1:556:1 | exit fn dead_code | | diff --git a/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected new file mode 100644 index 00000000000..2595a1c05d1 --- /dev/null +++ b/rust/ql/test/library-tests/dataflow/local/CONSISTENCY/PathResolutionConsistency.expected @@ -0,0 +1,21 @@ +multiplePathResolutions +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:532:10:532:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | +| main.rs:538:10:538:18 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected deleted file mode 100644 index 3792b27be82..00000000000 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/AstConsistency.expected +++ /dev/null @@ -1,25 +0,0 @@ -noLocation -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected index ff615293c39..e7649be55f9 100644 --- a/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/dataflow/sources/CONSISTENCY/PathResolutionConsistency.expected @@ -27,6 +27,18 @@ multiplePathResolutions | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | | test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:112:62:112:73 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | | test.rs:119:58:119:69 | ...::from | file://:0:0:0:0 | fn from | @@ -48,6 +60,27 @@ multiplePathResolutions | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | +| test.rs:806:50:806:61 | ...::from | file://:0:0:0:0 | fn from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | | test_futures_io.rs:25:23:25:61 | ...::try_from | file://:0:0:0:0 | fn try_from | diff --git a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected index adb6f0aae88..8b137891791 100644 --- a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected @@ -1,12 +1 @@ -| test.rs:63:27:63:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:66:27:66:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:69:27:69:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:72:27:72:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:75:27:75:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:78:27:78:57 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:81:45:81:75 | //... | Missing result: hasTaintFlow="example.com" | -| test.rs:365:22:365:38 | //... | Missing result: hasTaintFlow | -| test.rs:686:25:686:49 | //... | Missing result: hasTaintFlow=address | -| test.rs:687:27:687:51 | //... | Missing result: hasTaintFlow=address | -| test.rs:706:36:706:60 | //... | Missing result: hasTaintFlow=address | -| test.rs:729:36:729:60 | //... | Missing result: hasTaintFlow=address | + diff --git a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected index bc3a7bcce67..5139573d185 100644 --- a/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected +++ b/rust/ql/test/library-tests/dataflow/sources/TaintSources.expected @@ -78,9 +78,15 @@ | test.rs:753:22:753:49 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:779:22:779:50 | ...::new | Flow source 'RemoteSource' of type remote (DEFAULT). | | test.rs:806:16:806:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | +| test.rs:806:16:806:29 | ...::args | Flow source 'CommandLineArgs' of type commandargs (DEFAULT). | | test_futures_io.rs:19:15:19:32 | ...::connect | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:11:31:11:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:11:31:11:31 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:22:14:22:18 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:22:14:22:19 | TuplePat | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:48:14:48:28 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:48:14:48:30 | MyStruct {...} | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:58:14:58:15 | ms | Flow source 'RemoteSource' of type remote (DEFAULT). | +| web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | | web_frameworks.rs:68:15:68:15 | a | Flow source 'RemoteSource' of type remote (DEFAULT). | diff --git a/rust/ql/test/library-tests/path-resolution/path-resolution.expected b/rust/ql/test/library-tests/path-resolution/path-resolution.expected index f7e50f5052a..164852626db 100644 --- a/rust/ql/test/library-tests/path-resolution/path-resolution.expected +++ b/rust/ql/test/library-tests/path-resolution/path-resolution.expected @@ -393,7 +393,13 @@ resolvePath | proc_macro.rs:5:44:5:54 | TokenStream | {EXTERNAL LOCATION} | struct TokenStream | | proc_macro.rs:5:60:5:70 | TokenStream | {EXTERNAL LOCATION} | struct TokenStream | | proc_macro.rs:6:16:6:18 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | +| proc_macro.rs:6:48:6:50 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | +| proc_macro.rs:6:48:6:58 | ...::LitStr | {EXTERNAL LOCATION} | struct LitStr | +| proc_macro.rs:6:48:6:58 | ...::parse::<...> | {EXTERNAL LOCATION} | fn parse | | proc_macro.rs:7:19:7:21 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | +| proc_macro.rs:7:51:7:53 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | +| proc_macro.rs:7:51:7:61 | ...::ItemFn | {EXTERNAL LOCATION} | struct ItemFn | +| proc_macro.rs:7:51:7:61 | ...::parse::<...> | {EXTERNAL LOCATION} | fn parse | | proc_macro.rs:8:21:8:23 | syn | {EXTERNAL LOCATION} | Crate(syn@2.0.103) | | proc_macro.rs:8:21:8:30 | ...::Ident | {EXTERNAL LOCATION} | struct Ident | | proc_macro.rs:8:21:8:35 | ...::new | {EXTERNAL LOCATION} | fn new | diff --git a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected index 82fc38ae2fa..e673be7aa3b 100644 --- a/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/library-tests/variables/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,10 @@ +multipleMethodCallTargets +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:374:5:374:27 | ... .add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | +| main.rs:459:9:459:23 | z.add_assign(...) | file://:0:0:0:0 | fn add_assign | multiplePathResolutions | main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | | main.rs:85:19:85:30 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/library-tests/variables/Cfg.expected b/rust/ql/test/library-tests/variables/Cfg.expected index e819cdc377e..f2a80077bfc 100644 --- a/rust/ql/test/library-tests/variables/Cfg.expected +++ b/rust/ql/test/library-tests/variables/Cfg.expected @@ -1430,11 +1430,17 @@ edges | main.rs:592:1:602:1 | enter fn macro_invocation | main.rs:593:5:594:26 | let ... = ... | | | main.rs:592:1:602:1 | exit fn macro_invocation (normal) | main.rs:592:1:602:1 | exit fn macro_invocation | | | main.rs:592:23:602:1 | { ... } | main.rs:592:1:602:1 | exit fn macro_invocation (normal) | | -| main.rs:593:5:594:26 | let ... = ... | main.rs:594:9:594:25 | let_in_macro!... | | +| main.rs:593:5:594:26 | let ... = ... | main.rs:594:23:594:24 | let ... = 37 | | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | | | main.rs:593:9:593:22 | var_from_macro | main.rs:595:5:595:30 | ExprStmt | match | | main.rs:594:9:594:25 | MacroExpr | main.rs:593:9:593:22 | var_from_macro | | | main.rs:594:9:594:25 | let_in_macro!... | main.rs:594:9:594:25 | MacroExpr | | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | match | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | { ... } | | +| main.rs:594:23:594:24 | 37 | main.rs:594:9:594:25 | var_in_macro | | +| main.rs:594:23:594:24 | let ... = 37 | main.rs:594:23:594:24 | 37 | | +| main.rs:594:23:594:24 | { ... } | main.rs:594:9:594:25 | let_in_macro!... | | | main.rs:595:5:595:13 | print_i64 | main.rs:595:15:595:28 | var_from_macro | | | main.rs:595:5:595:29 | print_i64(...) | main.rs:596:5:596:26 | let ... = 33 | | | main.rs:595:5:595:30 | ExprStmt | main.rs:595:5:595:13 | print_i64 | | @@ -1443,11 +1449,17 @@ edges | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | | | main.rs:596:9:596:20 | var_in_macro | main.rs:600:5:600:44 | ExprStmt | match | | main.rs:596:24:596:25 | 33 | main.rs:596:9:596:20 | var_in_macro | | -| main.rs:600:5:600:13 | print_i64 | main.rs:600:15:600:42 | let_in_macro2!... | | +| main.rs:600:5:600:13 | print_i64 | main.rs:600:15:600:42 | let ... = 0 | | | main.rs:600:5:600:43 | print_i64(...) | main.rs:601:5:601:28 | ExprStmt | | | main.rs:600:5:600:44 | ExprStmt | main.rs:600:5:600:13 | print_i64 | | +| main.rs:600:15:600:42 | 0 | main.rs:600:15:600:42 | var_in_macro | | | main.rs:600:15:600:42 | MacroExpr | main.rs:600:5:600:43 | print_i64(...) | | +| main.rs:600:15:600:42 | let ... = 0 | main.rs:600:15:600:42 | 0 | | | main.rs:600:15:600:42 | let_in_macro2!... | main.rs:600:15:600:42 | MacroExpr | | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | match | +| main.rs:600:30:600:41 | var_in_macro | main.rs:600:30:600:41 | { ... } | | +| main.rs:600:30:600:41 | { ... } | main.rs:600:15:600:42 | let_in_macro2!... | | | main.rs:601:5:601:13 | print_i64 | main.rs:601:15:601:26 | var_in_macro | | | main.rs:601:5:601:27 | print_i64(...) | main.rs:592:23:602:1 | { ... } | | | main.rs:601:5:601:28 | ExprStmt | main.rs:601:5:601:13 | print_i64 | | diff --git a/rust/ql/test/library-tests/variables/Ssa.expected b/rust/ql/test/library-tests/variables/Ssa.expected index 52e8f45216f..f45005b51a0 100644 --- a/rust/ql/test/library-tests/variables/Ssa.expected +++ b/rust/ql/test/library-tests/variables/Ssa.expected @@ -161,7 +161,9 @@ definition | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | read | main.rs:3:14:3:14 | s | main.rs:3:14:3:14 | s | main.rs:4:20:4:20 | s | | main.rs:7:14:7:14 | i | main.rs:7:14:7:14 | i | main.rs:8:20:8:20 | i | @@ -327,7 +329,9 @@ read | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | main.rs:569:3:569:3 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | main.rs:571:13:571:13 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | main.rs:595:15:595:28 | var_from_macro | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | main.rs:601:15:601:26 | var_in_macro | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | firstRead | main.rs:3:14:3:14 | s | main.rs:3:14:3:14 | s | main.rs:4:20:4:20 | s | | main.rs:7:14:7:14 | i | main.rs:7:14:7:14 | i | main.rs:8:20:8:20 | i | @@ -463,7 +467,9 @@ firstRead | main.rs:568:11:568:11 | a | main.rs:568:11:568:11 | a | main.rs:569:3:569:3 | a | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | main.rs:571:13:571:13 | a | | main.rs:593:9:593:22 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | main.rs:595:15:595:28 | var_from_macro | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | main.rs:601:15:601:26 | var_in_macro | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | main.rs:600:30:600:41 | var_in_macro | adjacentReads | main.rs:35:9:35:10 | x3 | main.rs:35:9:35:10 | x3 | main.rs:36:15:36:16 | x3 | main.rs:38:9:38:10 | x3 | | main.rs:43:9:43:10 | x4 | main.rs:43:9:43:10 | x4 | main.rs:44:15:44:16 | x4 | main.rs:49:15:49:16 | x4 | @@ -632,4 +638,6 @@ assigns | main.rs:553:9:553:9 | z | main.rs:553:13:553:14 | 17 | | main.rs:568:11:568:11 | a | main.rs:568:15:568:33 | MyStruct {...} | | main.rs:593:9:593:22 | var_from_macro | main.rs:594:9:594:25 | MacroExpr | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | 37 | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:24:596:25 | 33 | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | 0 | diff --git a/rust/ql/test/library-tests/variables/variables.expected b/rust/ql/test/library-tests/variables/variables.expected index 1643f28803f..5c8553262db 100644 --- a/rust/ql/test/library-tests/variables/variables.expected +++ b/rust/ql/test/library-tests/variables/variables.expected @@ -1,6 +1,4 @@ testFailures -| main.rs:594:28:594:56 | //... | Missing result: read_access=var_in_macro | -| main.rs:600:46:600:121 | //... | Fixed spurious result: read_access=var_in_macro | variable | main.rs:3:14:3:14 | s | | main.rs:7:14:7:14 | i | @@ -114,7 +112,9 @@ variable | main.rs:562:15:562:18 | self | | main.rs:568:11:568:11 | a | | main.rs:593:9:593:22 | var_from_macro | +| main.rs:594:9:594:25 | var_in_macro | | main.rs:596:9:596:20 | var_in_macro | +| main.rs:600:15:600:42 | var_in_macro | variableAccess | main.rs:4:20:4:20 | s | main.rs:3:14:3:14 | s | | main.rs:8:20:8:20 | i | main.rs:7:14:7:14 | i | @@ -291,7 +291,9 @@ variableAccess | main.rs:563:6:563:9 | self | main.rs:562:15:562:18 | self | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:571:13:571:13 | a | main.rs:568:11:568:11 | a | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:595:15:595:28 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | +| main.rs:600:30:600:41 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | main.rs:601:15:601:26 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | variableWriteAccess | main.rs:23:5:23:6 | x2 | main.rs:21:13:21:14 | x2 | @@ -459,7 +461,9 @@ variableReadAccess | main.rs:563:6:563:9 | self | main.rs:562:15:562:18 | self | | main.rs:569:3:569:3 | a | main.rs:568:11:568:11 | a | | main.rs:571:13:571:13 | a | main.rs:568:11:568:11 | a | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:9:594:25 | var_in_macro | | main.rs:595:15:595:28 | var_from_macro | main.rs:593:9:593:22 | var_from_macro | +| main.rs:600:30:600:41 | var_in_macro | main.rs:600:15:600:42 | var_in_macro | | main.rs:601:15:601:26 | var_in_macro | main.rs:596:9:596:20 | var_in_macro | variableInitializer | main.rs:16:9:16:10 | x1 | main.rs:16:14:16:16 | "a" | @@ -517,7 +521,9 @@ variableInitializer | main.rs:553:9:553:9 | z | main.rs:553:13:553:14 | 17 | | main.rs:568:11:568:11 | a | main.rs:568:15:568:33 | MyStruct {...} | | main.rs:593:9:593:22 | var_from_macro | main.rs:594:9:594:25 | MacroExpr | +| main.rs:594:9:594:25 | var_in_macro | main.rs:594:23:594:24 | 37 | | main.rs:596:9:596:20 | var_in_macro | main.rs:596:24:596:25 | 33 | +| main.rs:600:15:600:42 | var_in_macro | main.rs:600:15:600:42 | 0 | capturedVariable | main.rs:430:9:430:9 | x | | main.rs:440:13:440:13 | x | diff --git a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected index 83dfa7e88f1..563e370b4ed 100644 --- a/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected +++ b/rust/ql/test/query-tests/diagnostics/SummaryStatsReduced.expected @@ -11,6 +11,6 @@ | Inconsistencies - data flow | 0 | | Lines of code extracted | 60 | | Lines of user code extracted | 60 | -| Macro calls - resolved | 6 | -| Macro calls - total | 8 | -| Macro calls - unresolved | 2 | +| Macro calls - resolved | 8 | +| Macro calls - total | 9 | +| Macro calls - unresolved | 1 | diff --git a/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected b/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected index 9e27cd2d249..72f78794ab2 100644 --- a/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected +++ b/rust/ql/test/query-tests/diagnostics/UnresolvedMacroCalls.expected @@ -1,2 +1 @@ | my_macro.rs:17:9:17:27 | myUndefinedMacro!... | Macro call was not resolved to a target. | -| my_struct.rs:17:9:17:33 | println!... | Macro call was not resolved to a target. | diff --git a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected deleted file mode 100644 index a789418fc82..00000000000 --- a/rust/ql/test/query-tests/security/CWE-022/CONSISTENCY/AstConsistency.expected +++ /dev/null @@ -1,7 +0,0 @@ -noLocation -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected deleted file mode 100644 index dc2a64f8890..00000000000 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/AstConsistency.expected +++ /dev/null @@ -1,8 +0,0 @@ -noLocation -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected index d3300f4bd53..598e52f932c 100644 --- a/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-089/CONSISTENCY/PathResolutionConsistency.expected @@ -5,6 +5,8 @@ multipleMethodCallTargets | sqlx.rs:65:26:65:46 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:67:26:67:48 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:69:30:69:52 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:70:30:70:52 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:75:25:75:45 | safe_query_1.as_str() | file://:0:0:0:0 | fn as_str | @@ -13,6 +15,8 @@ multipleMethodCallTargets | sqlx.rs:76:25:76:45 | safe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:78:25:78:47 | unsafe_query_1.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | +| sqlx.rs:80:29:80:51 | unsafe_query_2.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:81:29:81:51 | unsafe_query_3.as_str() | file://:0:0:0:0 | fn as_str | | sqlx.rs:84:25:84:49 | prepared_query_1.as_str() | file://:0:0:0:0 | fn as_str | @@ -93,6 +97,18 @@ multiplePathResolutions | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:46:24:46:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:47:56:47:67 | ...::from | file://:0:0:0:0 | fn from | @@ -111,6 +127,18 @@ multiplePathResolutions | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:48:97:48:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:50:24:50:35 | ...::from | file://:0:0:0:0 | fn from | @@ -129,6 +157,18 @@ multiplePathResolutions | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:51:24:51:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:55:26:55:37 | ...::from | file://:0:0:0:0 | fn from | @@ -147,6 +187,18 @@ multiplePathResolutions | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:61:28:61:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:99:24:99:35 | ...::from | file://:0:0:0:0 | fn from | @@ -165,6 +217,18 @@ multiplePathResolutions | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:100:97:100:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:101:24:101:35 | ...::from | file://:0:0:0:0 | fn from | @@ -183,6 +247,18 @@ multiplePathResolutions | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:102:26:102:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:103:28:103:39 | ...::from | file://:0:0:0:0 | fn from | @@ -201,6 +277,18 @@ multiplePathResolutions | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:172:24:172:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:173:97:173:108 | ...::from | file://:0:0:0:0 | fn from | @@ -219,6 +307,18 @@ multiplePathResolutions | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:174:24:174:35 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:175:26:175:37 | ...::from | file://:0:0:0:0 | fn from | @@ -237,6 +337,18 @@ multiplePathResolutions | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:176:28:176:39 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | +| sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | @@ -247,12 +359,22 @@ multiplePathResolutions | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | | sqlx.rs:202:57:202:68 | ...::from | file://:0:0:0:0 | fn from | multipleCanonicalPaths +| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | +| file://:0:0:0:0 | fn encode | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode | +| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | +| file://:0:0:0:0 | fn encode_by_ref | file://:0:0:0:0 | Crate(core@0.0.0) | ::encode_by_ref | +| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | +| file://:0:0:0:0 | fn produces | file://:0:0:0:0 | Crate(core@0.0.0) | ::produces | +| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | +| file://:0:0:0:0 | fn size_hint | file://:0:0:0:0 | Crate(core@0.0.0) | ::size_hint | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | | file://:0:0:0:0 | fn to_ordering | file://:0:0:0:0 | Crate(typenum@1.18.0) | ::to_ordering | +| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | +| file://:0:0:0:0 | impl ...::Encode::<...> for Option::<...> { ... } | file://:0:0:0:0 | Crate(core@0.0.0) | | | file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | | file://:0:0:0:0 | impl Ord for Equal { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | | file://:0:0:0:0 | impl Ord for Greater { ... } | file://:0:0:0:0 | Crate(typenum@1.18.0) | | diff --git a/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected b/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected deleted file mode 100644 index dc2a64f8890..00000000000 --- a/rust/ql/test/query-tests/security/CWE-311/CONSISTENCY/AstConsistency.expected +++ /dev/null @@ -1,8 +0,0 @@ -noLocation -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | -| file://:0:0:0:0 | (no string representation) | diff --git a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected index bd35db9ff77..36e75877d2b 100644 --- a/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-312/CONSISTENCY/PathResolutionConsistency.expected @@ -1,3 +1,7 @@ multipleMethodCallTargets +| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | +| test_logging.rs:77:20:77:36 | password.as_str() | file://:0:0:0:0 | fn as_str | +| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | +| test_logging.rs:78:22:78:38 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | | test_logging.rs:88:18:88:34 | password.as_str() | file://:0:0:0:0 | fn as_str | diff --git a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected index 0f81d76dd89..3ac74a3cb13 100644 --- a/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected +++ b/rust/ql/test/query-tests/security/CWE-696/BadCTorInitialization.expected @@ -1,51 +1,71 @@ #select -| test.rs:30:9:30:25 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | -| test.rs:35:9:35:25 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | -| test.rs:42:9:42:25 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:25 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | -| test.rs:52:9:52:16 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:16 | stdout(...) | Call to stdout(...) from the standard library in a function with the ctor attribute. | -| test.rs:57:9:57:16 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | -| test.rs:68:9:68:24 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:24 | ...::stdin(...) | Call to ...::stdin(...) from the standard library in a function with the ctor attribute. | -| test.rs:89:5:89:35 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:35 | ...::sleep(...) | Call to ...::sleep(...) from the standard library in a function with the ctor attribute. | -| test.rs:96:5:96:23 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:23 | ...::exit(...) | Call to ...::exit(...) from the standard library in a function with the ctor attribute. | +| test.rs:30:9:30:24 | ...::stdout(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:30:9:30:48 | ... .write(...) | test.rs:28:1:28:13 | Attr | test.rs:30:9:30:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:35:9:35:24 | ...::stdout(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:35:9:35:48 | ... .write(...) | test.rs:33:1:33:13 | Attr | test.rs:35:9:35:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | +| test.rs:42:9:42:24 | ...::stdout(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:24 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the dtor attribute. | +| test.rs:42:9:42:48 | ... .write(...) | test.rs:39:1:39:13 | Attr | test.rs:42:9:42:48 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the dtor attribute. | +| test.rs:52:9:52:15 | stdout(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:15 | stdout(...) | Call to stdout(...) from the standard library in a function with the ctor attribute. | +| test.rs:52:9:52:39 | ... .write(...) | test.rs:50:1:50:7 | Attr | test.rs:52:9:52:39 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:57:9:57:15 | stderr(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:15 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | +| test.rs:57:9:57:43 | ... .write_all(...) | test.rs:55:1:55:7 | Attr | test.rs:57:9:57:43 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:62:14:62:28 | ...::_print(...) | test.rs:60:1:60:7 | Attr | test.rs:62:14:62:28 | ...::_print(...) | Call to ...::_print(...) from the standard library in a function with the ctor attribute. | +| test.rs:68:9:68:23 | ...::stdin(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:23 | ...::stdin(...) | Call to ...::stdin(...) from the standard library in a function with the ctor attribute. | +| test.rs:68:9:68:44 | ... .read_line(...) | test.rs:65:1:65:7 | Attr | test.rs:68:9:68:44 | ... .read_line(...) | Call to ... .read_line(...) from the standard library in a function with the ctor attribute. | +| test.rs:75:17:75:44 | ...::create(...) | test.rs:73:1:73:7 | Attr | test.rs:75:17:75:44 | ...::create(...) | Call to ...::create(...) from the standard library in a function with the ctor attribute. | +| test.rs:80:14:80:37 | ...::now(...) | test.rs:78:1:78:7 | Attr | test.rs:80:14:80:37 | ...::now(...) | Call to ...::now(...) from the standard library in a function with the ctor attribute. | +| test.rs:89:5:89:34 | ...::sleep(...) | test.rs:87:1:87:7 | Attr | test.rs:89:5:89:34 | ...::sleep(...) | Call to ...::sleep(...) from the standard library in a function with the ctor attribute. | +| test.rs:96:5:96:22 | ...::exit(...) | test.rs:94:1:94:7 | Attr | test.rs:96:5:96:22 | ...::exit(...) | Call to ...::exit(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:16 | stderr(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:16 | stderr(...) | Call to stderr(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:128:1:128:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:144:1:144:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | | test.rs:125:9:125:44 | ... .write_all(...) | test.rs:150:1:150:7 | Attr | test.rs:125:9:125:44 | ... .write_all(...) | Call to ... .write_all(...) from the standard library in a function with the ctor attribute. | +| test.rs:168:1:168:7 | ... .write(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ... .write(...) | Call to ... .write(...) from the standard library in a function with the ctor attribute. | +| test.rs:168:1:168:7 | ...::stdout(...) | test.rs:168:1:168:7 | Attr | test.rs:168:1:168:7 | ...::stdout(...) | Call to ...::stdout(...) from the standard library in a function with the ctor attribute. | edges -| test.rs:28:1:28:13 | Attr | test.rs:28:1:31:1 | fn bad1_1 | -| test.rs:28:1:31:1 | fn bad1_1 | test.rs:30:9:30:25 | ...::stdout(...) | -| test.rs:33:1:33:13 | Attr | test.rs:33:1:36:1 | fn bad1_2 | -| test.rs:33:1:36:1 | fn bad1_2 | test.rs:35:9:35:25 | ...::stdout(...) | -| test.rs:38:1:43:1 | fn bad1_3 | test.rs:42:9:42:25 | ...::stdout(...) | -| test.rs:39:1:39:13 | Attr | test.rs:38:1:43:1 | fn bad1_3 | -| test.rs:50:1:50:7 | Attr | test.rs:50:1:53:1 | fn bad2_1 | -| test.rs:50:1:53:1 | fn bad2_1 | test.rs:52:9:52:16 | stdout(...) | -| test.rs:55:1:55:7 | Attr | test.rs:55:1:58:1 | fn bad2_2 | -| test.rs:55:1:58:1 | fn bad2_2 | test.rs:57:9:57:16 | stderr(...) | -| test.rs:65:1:65:7 | Attr | test.rs:65:1:69:1 | fn bad2_4 | -| test.rs:65:1:69:1 | fn bad2_4 | test.rs:68:9:68:24 | ...::stdin(...) | -| test.rs:87:1:87:7 | Attr | test.rs:87:1:90:1 | fn bad2_7 | -| test.rs:87:1:90:1 | fn bad2_7 | test.rs:89:5:89:35 | ...::sleep(...) | -| test.rs:94:1:94:7 | Attr | test.rs:94:1:97:1 | fn bad2_8 | -| test.rs:94:1:97:1 | fn bad2_8 | test.rs:96:5:96:23 | ...::exit(...) | +| test.rs:28:1:28:13 | Attr | test.rs:29:4:30:50 | fn bad1_1 | +| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:24 | ...::stdout(...) | +| test.rs:29:4:30:50 | fn bad1_1 | test.rs:30:9:30:48 | ... .write(...) | +| test.rs:33:1:33:13 | Attr | test.rs:34:4:35:50 | fn bad1_2 | +| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:24 | ...::stdout(...) | +| test.rs:34:4:35:50 | fn bad1_2 | test.rs:35:9:35:48 | ... .write(...) | +| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:24 | ...::stdout(...) | +| test.rs:38:1:42:50 | fn bad1_3 | test.rs:42:9:42:48 | ... .write(...) | +| test.rs:39:1:39:13 | Attr | test.rs:38:1:42:50 | fn bad1_3 | +| test.rs:50:1:50:7 | Attr | test.rs:51:4:52:41 | fn bad2_1 | +| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:15 | stdout(...) | +| test.rs:51:4:52:41 | fn bad2_1 | test.rs:52:9:52:39 | ... .write(...) | +| test.rs:55:1:55:7 | Attr | test.rs:56:4:57:45 | fn bad2_2 | +| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:15 | stderr(...) | +| test.rs:56:4:57:45 | fn bad2_2 | test.rs:57:9:57:43 | ... .write_all(...) | +| test.rs:60:1:60:7 | Attr | test.rs:61:4:62:30 | fn bad2_3 | +| test.rs:61:4:62:30 | fn bad2_3 | test.rs:62:14:62:28 | ...::_print(...) | +| test.rs:65:1:65:7 | Attr | test.rs:66:4:68:46 | fn bad2_4 | +| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:23 | ...::stdin(...) | +| test.rs:66:4:68:46 | fn bad2_4 | test.rs:68:9:68:44 | ... .read_line(...) | +| test.rs:73:1:73:7 | Attr | test.rs:74:4:75:55 | fn bad2_5 | +| test.rs:74:4:75:55 | fn bad2_5 | test.rs:75:17:75:44 | ...::create(...) | +| test.rs:78:1:78:7 | Attr | test.rs:79:4:80:39 | fn bad2_6 | +| test.rs:79:4:80:39 | fn bad2_6 | test.rs:80:14:80:37 | ...::now(...) | +| test.rs:87:1:87:7 | Attr | test.rs:88:4:89:36 | fn bad2_7 | +| test.rs:88:4:89:36 | fn bad2_7 | test.rs:89:5:89:34 | ...::sleep(...) | +| test.rs:94:1:94:7 | Attr | test.rs:95:4:96:24 | fn bad2_8 | +| test.rs:95:4:96:24 | fn bad2_8 | test.rs:96:5:96:22 | ...::exit(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:16 | stderr(...) | | test.rs:124:1:126:1 | fn call_target3_1 | test.rs:125:9:125:44 | ... .write_all(...) | -| test.rs:128:1:128:7 | Attr | test.rs:128:1:131:1 | fn bad3_1 | -| test.rs:128:1:131:1 | fn bad3_1 | test.rs:130:5:130:20 | call_target3_1(...) | -| test.rs:130:5:130:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:144:1:144:7 | Attr | test.rs:144:1:148:1 | fn bad3_3 | +| test.rs:128:1:128:7 | Attr | test.rs:129:4:130:21 | fn bad3_1 | +| test.rs:129:4:130:21 | fn bad3_1 | test.rs:130:5:130:19 | call_target3_1(...) | +| test.rs:130:5:130:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | +| test.rs:144:1:144:7 | Attr | test.rs:145:4:147:21 | fn bad3_3 | | test.rs:144:1:148:1 | fn bad3_3 | test.rs:146:5:146:20 | call_target3_1(...) | +| test.rs:145:4:147:21 | fn bad3_3 | test.rs:146:5:146:19 | call_target3_1(...) | +| test.rs:146:5:146:19 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | | test.rs:146:5:146:20 | call_target3_1(...) | test.rs:124:1:126:1 | fn call_target3_1 | -| test.rs:150:1:150:7 | Attr | test.rs:150:1:153:1 | fn bad3_4 | -| test.rs:150:1:153:1 | fn bad3_4 | test.rs:152:5:152:12 | bad3_3(...) | -| test.rs:152:5:152:12 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | -testFailures -| test.rs:60:9:60:29 | //... | Missing result: Source=source2_3 | -| test.rs:62:32:62:77 | //... | Missing result: Alert[rust/ctor-initialization]=source2_3 | -| test.rs:73:9:73:29 | //... | Missing result: Source=source2_5 | -| test.rs:75:57:75:102 | //... | Missing result: Alert[rust/ctor-initialization]=source2_5 | -| test.rs:78:9:78:29 | //... | Missing result: Source=source2_6 | -| test.rs:80:41:80:86 | //... | Missing result: Alert[rust/ctor-initialization]=source2_6 | -| test.rs:168:9:168:44 | //... | Missing result: Alert[rust/ctor-initialization] | +| test.rs:150:1:150:7 | Attr | test.rs:151:4:152:13 | fn bad3_4 | +| test.rs:151:4:152:13 | fn bad3_4 | test.rs:152:5:152:11 | bad3_3(...) | +| test.rs:152:5:152:11 | bad3_3(...) | test.rs:144:1:148:1 | fn bad3_3 | +| test.rs:168:1:168:7 | Attr | test.rs:169:4:170:16 | fn bad4_1 | +| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ... .write(...) | +| test.rs:169:4:170:16 | fn bad4_1 | test.rs:168:1:168:7 | ...::stdout(...) | diff --git a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected index 067b81b9f9e..4c01286c489 100644 --- a/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-770/CONSISTENCY/PathResolutionConsistency.expected @@ -1,18 +1,32 @@ multiplePathResolutions | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:218:14:218:17 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | +| main.rs:218:14:218:25 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:219:13:219:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | +| main.rs:219:13:219:24 | ...::malloc | file://:0:0:0:0 | fn malloc | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:220:13:220:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | +| main.rs:220:13:220:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:221:13:221:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | +| main.rs:221:13:221:31 | ...::aligned_alloc | file://:0:0:0:0 | fn aligned_alloc | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:222:13:222:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | +| main.rs:222:13:222:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:223:13:223:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | +| main.rs:223:13:223:24 | ...::calloc | file://:0:0:0:0 | fn calloc | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | main.rs:224:13:224:16 | libc | file://:0:0:0:0 | Crate(libc@0.2.174) | +| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | +| main.rs:224:13:224:25 | ...::realloc | file://:0:0:0:0 | fn realloc | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | | main.rs:229:13:229:37 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | | main.rs:233:18:233:42 | ...::with_capacity | file://:0:0:0:0 | fn with_capacity | diff --git a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected index 14bf0797218..c3a7f4451fb 100644 --- a/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/security/CWE-825/CONSISTENCY/PathResolutionConsistency.expected @@ -1,8 +1,12 @@ multiplePathResolutions | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:106:16:106:19 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | +| deallocation.rs:106:16:106:27 | ...::malloc | file://:0:0:0:0 | fn malloc | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:3:112:6 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | +| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | +| deallocation.rs:112:3:112:12 | ...::free | file://:0:0:0:0 | fn free | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.172) | | deallocation.rs:112:29:112:32 | libc | file://:0:0:0:0 | Crate(libc@0.2.173) | | deallocation.rs:260:11:260:22 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected index 9eb0999a137..8563020471c 100644 --- a/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected +++ b/rust/ql/test/query-tests/unusedentities/CONSISTENCY/PathResolutionConsistency.expected @@ -17,3 +17,15 @@ multiplePathResolutions | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | | unreachable.rs:165:20:165:31 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:171:9:171:17 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | +| unreachable.rs:177:9:177:26 | ...::from | file://:0:0:0:0 | fn from | diff --git a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected index 20150ac9a37..77c923e9280 100644 --- a/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected +++ b/rust/ql/test/query-tests/unusedentities/UnreachableCode.expected @@ -1,4 +1,3 @@ -#select | unreachable.rs:19:9:19:23 | ExprStmt | This code is never reached. | | unreachable.rs:27:9:27:23 | ExprStmt | This code is never reached. | | unreachable.rs:39:9:39:23 | ExprStmt | This code is never reached. | @@ -7,6 +6,8 @@ | unreachable.rs:134:13:134:20 | MacroExpr | This code is never reached. | | unreachable.rs:143:13:143:20 | MacroExpr | This code is never reached. | | unreachable.rs:166:9:166:23 | ExprStmt | This code is never reached. | +| unreachable.rs:171:9:171:17 | MacroExpr | This code is never reached. | +| unreachable.rs:177:9:177:26 | MacroExpr | This code is never reached. | | unreachable.rs:206:9:206:23 | ExprStmt | This code is never reached. | | unreachable.rs:231:13:231:27 | ExprStmt | This code is never reached. | | unreachable.rs:241:13:241:27 | ExprStmt | This code is never reached. | @@ -20,6 +21,3 @@ | unreachable.rs:370:9:370:23 | ExprStmt | This code is never reached. | | unreachable.rs:375:5:375:10 | ExprStmt | This code is never reached. | | unreachable.rs:382:5:382:10 | ExprStmt | This code is never reached. | -testFailures -| unreachable.rs:171:20:171:55 | //... | Fixed spurious result: Alert[rust/dead-code] | -| unreachable.rs:177:29:177:64 | //... | Fixed spurious result: Alert[rust/dead-code] | diff --git a/rust/ql/test/query-tests/unusedentities/UnusedValue.expected b/rust/ql/test/query-tests/unusedentities/UnusedValue.expected index 8bad8ea978c..4ef8ae41625 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedValue.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedValue.expected @@ -1,23 +1,21 @@ -#select | main.rs:10:9:10:9 | a | Variable $@ is assigned a value that is never used. | main.rs:10:9:10:9 | a | a | | main.rs:13:9:13:9 | d | Variable $@ is assigned a value that is never used. | main.rs:13:9:13:9 | d | d | +| main.rs:39:5:39:5 | b | Variable $@ is assigned a value that is never used. | main.rs:30:9:30:9 | b | b | +| main.rs:41:5:41:5 | c | Variable $@ is assigned a value that is never used. | main.rs:31:13:31:13 | c | c | +| main.rs:44:5:44:5 | c | Variable $@ is assigned a value that is never used. | main.rs:31:13:31:13 | c | c | +| main.rs:48:9:48:9 | d | Variable $@ is assigned a value that is never used. | main.rs:32:13:32:13 | d | d | +| main.rs:54:5:54:5 | e | Variable $@ is assigned a value that is never used. | main.rs:33:13:33:13 | e | e | +| main.rs:65:5:65:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f | +| main.rs:67:5:67:5 | f | Variable $@ is assigned a value that is never used. | main.rs:34:13:34:13 | f | f | +| main.rs:69:5:69:5 | g | Variable $@ is assigned a value that is never used. | main.rs:35:9:35:9 | g | g | +| main.rs:95:9:95:9 | a | Variable $@ is assigned a value that is never used. | main.rs:95:9:95:9 | a | a | +| main.rs:116:9:116:10 | is | Variable $@ is assigned a value that is never used. | main.rs:116:9:116:10 | is | is | | main.rs:139:13:139:17 | total | Variable $@ is assigned a value that is never used. | main.rs:139:13:139:17 | total | total | +| main.rs:284:13:284:17 | total | Variable $@ is assigned a value that is never used. | main.rs:252:13:252:17 | total | total | | main.rs:377:9:377:9 | x | Variable $@ is assigned a value that is never used. | main.rs:377:9:377:9 | x | x | | main.rs:385:17:385:17 | x | Variable $@ is assigned a value that is never used. | main.rs:385:17:385:17 | x | x | +| main.rs:531:9:531:20 | var_in_macro | Variable $@ is assigned a value that is never used. | main.rs:531:9:531:20 | var_in_macro | var_in_macro | +| main.rs:540:9:540:9 | c | Variable $@ is assigned a value that is never used. | main.rs:540:9:540:9 | c | c | | more.rs:44:9:44:14 | a_ptr4 | Variable $@ is assigned a value that is never used. | more.rs:44:9:44:14 | a_ptr4 | a_ptr4 | | more.rs:59:9:59:13 | d_ptr | Variable $@ is assigned a value that is never used. | more.rs:59:9:59:13 | d_ptr | d_ptr | | more.rs:65:13:65:17 | f_ptr | Variable $@ is assigned a value that is never used. | more.rs:65:13:65:17 | f_ptr | f_ptr | -testFailures -| main.rs:39:12:39:40 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:41:12:41:40 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:44:12:44:40 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:48:16:48:44 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:54:12:54:40 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:65:13:65:41 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:67:13:67:41 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:69:37:69:65 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:95:34:95:62 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:116:25:116:53 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:284:27:284:55 | //... | Missing result: Alert[rust/unused-value] | -| main.rs:531:27:531:65 | //... | Fixed spurious result: Alert[rust/unused-value] | -| main.rs:540:17:540:45 | //... | Missing result: Alert[rust/unused-value] | diff --git a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected index 66bd4fc034c..203824f4a4b 100644 --- a/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected +++ b/rust/ql/test/query-tests/unusedentities/UnusedVariable.expected @@ -1,24 +1,22 @@ -#select +| main.rs:29:9:29:9 | a | Variable 'a' is not used. | +| main.rs:98:13:98:13 | d | Variable 'd' is not used. | | main.rs:147:5:147:5 | y | Variable 'y' is not used. | +| main.rs:174:9:174:9 | x | Variable 'x' is not used. | +| main.rs:254:17:254:17 | a | Variable 'a' is not used. | +| main.rs:262:20:262:22 | val | Variable 'val' is not used. | +| main.rs:276:14:276:16 | val | Variable 'val' is not used. | +| main.rs:291:22:291:24 | val | Variable 'val' is not used. | +| main.rs:298:24:298:26 | val | Variable 'val' is not used. | +| main.rs:306:13:306:15 | num | Variable 'num' is not used. | +| main.rs:321:12:321:12 | j | Variable 'j' is not used. | +| main.rs:341:25:341:25 | y | Variable 'y' is not used. | +| main.rs:344:28:344:28 | a | Variable 'a' is not used. | +| main.rs:347:9:347:9 | p | Variable 'p' is not used. | +| main.rs:365:9:365:13 | right | Variable 'right' is not used. | +| main.rs:371:9:371:14 | right2 | Variable 'right2' is not used. | | main.rs:378:13:378:13 | y | Variable 'y' is not used. | | main.rs:386:21:386:21 | y | Variable 'y' is not used. | | main.rs:431:26:431:28 | val | Variable 'val' is not used. | | main.rs:434:21:434:23 | acc | Variable 'acc' is not used. | | main.rs:455:9:455:14 | unused | Variable 'unused' is not used. | | more.rs:24:9:24:11 | val | Variable 'val' is not used. | -testFailures -| main.rs:29:17:29:48 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:98:26:98:57 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:174:22:174:53 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:254:33:254:64 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:262:27:262:58 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:276:24:276:55 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:291:32:291:63 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:298:34:298:65 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:306:24:306:55 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:321:22:321:53 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:341:34:341:65 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:344:37:344:68 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:347:16:347:47 | //... | Missing result: Alert[rust/unused-variable] | -| main.rs:365:18:365:95 | //... | Fixed spurious result: Alert[rust/unused-variable] | -| main.rs:371:19:371:96 | //... | Fixed spurious result: Alert[rust/unused-variable] | From 60e726bdf2cde5ca182e1efbc5da4d414bed58de Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Mon, 23 Jun 2025 11:59:55 +0200 Subject: [PATCH 202/340] Java: Add `java/javautilconcurrentscheduledthreadpoolexecutor` query for zero thread pool size --- .../java-code-quality-extended.qls.expected | 1 + .../java-code-quality.qls.expected | 1 + .../ScheduledThreadPoolExecutorZeroThread.md | 24 +++++++++++++ .../ScheduledThreadPoolExecutorZeroThread.ql | 35 +++++++++++++++++++ ...duledThreadPoolExecutorZeroThread.expected | 3 ++ ...cheduledThreadPoolExecutorZeroThread.qlref | 2 ++ .../Test.java | 11 ++++++ 7 files changed, 77 insertions(+) create mode 100644 java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md create mode 100644 java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql create mode 100644 java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.expected create mode 100644 java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.qlref create mode 100644 java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/Test.java diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected index dd15d7f3bdd..cb7de0844dc 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality-extended.qls.expected @@ -33,6 +33,7 @@ ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql diff --git a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected index 589041ac7b3..815575bac35 100644 --- a/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected +++ b/java/ql/integration-tests/java/query-suite/java-code-quality.qls.expected @@ -31,6 +31,7 @@ ql/java/ql/src/Likely Bugs/Concurrency/CallsToRunnableRun.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLocking.ql ql/java/ql/src/Likely Bugs/Concurrency/DoubleCheckedLockingWithInitRace.ql ql/java/ql/src/Likely Bugs/Concurrency/NonSynchronizedOverride.ql +ql/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchOnBoxedType.ql ql/java/ql/src/Likely Bugs/Concurrency/SynchSetUnsynchGet.ql ql/java/ql/src/Likely Bugs/Frameworks/JUnit/JUnit5MissingNestedAnnotation.ql diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md new file mode 100644 index 00000000000..428414b8f1a --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md @@ -0,0 +1,24 @@ +## Overview + +According the Java documentation on `ScheduledThreadPoolExecutor`, it is not a good idea to set `corePoolSize` to zero, since doing so indicates the executor to keep 0 threads in its pool and the executor will serve no purpose. + +## Recommendation + +Set the `ScheduledThreadPoolExecutor` to have 1 or more threads in its thread pool and use the class's other methods to create a thread execution schedule. + +## Example + +```java +public class Test { + void f() { + int i = 0; + ScheduledThreadPoolExecutor s = new ScheduledThreadPoolExecutor(1); // COMPLIANT + ScheduledThreadPoolExecutor s1 = new ScheduledThreadPoolExecutor(0); // NON_COMPLIANT + s.setCorePoolSize(0); // NON_COMPLIANT + s.setCorePoolSize(i); // NON_COMPLIANT + } +} +``` + +## References +- [ScheduledThreadPoolExecutor](https://docs.oracle.com/en/java/javase/20/docs/api/java.base/java/util/concurrent/ScheduledThreadPoolExecutor.html) diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql new file mode 100644 index 00000000000..cb6928a5b80 --- /dev/null +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql @@ -0,0 +1,35 @@ +/** + * @id java/javautilconcurrentscheduledthreadpoolexecutor + * @name Zero threads set for `java.util.concurrent.ScheduledThreadPoolExecutor` + * @description Setting `java.util.concurrent.ScheduledThreadPoolExecutor` to have 0 threads serves + * no purpose and may indicate programmer error. + * @kind problem + * @precision very-high + * @problem.severity recommendation + * @tags quality + * reliability + * correctness + * concurrency + */ + +import java +import semmle.code.java.dataflow.DataFlow + +/** + * A `Call` that has the ability to set or modify the `corePoolSize` of the `java.util.concurrent.ScheduledThreadPoolExecutor` type. + */ +class Sink extends Call { + Sink() { + this.getCallee() + .hasQualifiedName("java.util.concurrent", "ThreadPoolExecutor", "setCorePoolSize") or + this.getCallee() + .hasQualifiedName("java.util.concurrent", "ScheduledThreadPoolExecutor", + "ScheduledThreadPoolExecutor") + } +} + +from IntegerLiteral zero, Sink set +where + DataFlow::localFlow(DataFlow::exprNode(zero), DataFlow::exprNode(set.getArgument(0))) and + zero.getIntValue() = 0 +select set, "ScheduledThreadPoolExecutor.corePoolSize is set to have 0 threads." diff --git a/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.expected b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.expected new file mode 100644 index 00000000000..038f2d1d998 --- /dev/null +++ b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.expected @@ -0,0 +1,3 @@ +| Test.java:7:42:7:75 | new ScheduledThreadPoolExecutor(...) | ScheduledThreadPoolExecutor.corePoolSize is set to have 0 threads. | +| Test.java:8:9:8:28 | setCorePoolSize(...) | ScheduledThreadPoolExecutor.corePoolSize is set to have 0 threads. | +| Test.java:9:9:9:28 | setCorePoolSize(...) | ScheduledThreadPoolExecutor.corePoolSize is set to have 0 threads. | diff --git a/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.qlref b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.qlref new file mode 100644 index 00000000000..e0089e4cf02 --- /dev/null +++ b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/ScheduledThreadPoolExecutorZeroThread.qlref @@ -0,0 +1,2 @@ +query: Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/Test.java b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/Test.java new file mode 100644 index 00000000000..d02e6a3403e --- /dev/null +++ b/java/ql/test/query-tests/ScheduledThreadPoolExecutorZeroThread/Test.java @@ -0,0 +1,11 @@ +import java.util.concurrent.ScheduledThreadPoolExecutor; + +public class Test { + void f() { + int i = 0; + ScheduledThreadPoolExecutor s = new ScheduledThreadPoolExecutor(1); // Compliant + ScheduledThreadPoolExecutor s1 = new ScheduledThreadPoolExecutor(0); // $ Alert + s.setCorePoolSize(0); // $ Alert + s.setCorePoolSize(i); // $ Alert + } +} From 60c27f8c30c48df59de7c3f2ab658a362f2d2d2d Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Mon, 23 Jun 2025 13:11:15 +0200 Subject: [PATCH 203/340] Rust: Address PR feedback --- .../codeql/rust/internal/TypeInference.qll | 13 +----- .../typeinference/internal/TypeInference.qll | 41 +++++++++++-------- 2 files changed, 27 insertions(+), 27 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index a3cacc2f0ed..bddd8a0d99d 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1010,7 +1010,7 @@ final class AwaitTarget extends Expr { Type getTypeAt(TypePath path) { result = inferType(this, path) } } -private module AwaitSatisfiesConstraintInput implements SatisfiesConstraintSig { +private module AwaitSatisfiesConstraintInput implements SatisfiesConstraintInputSig { predicate relevantConstraint(AwaitTarget term, Type constraint) { exists(term) and constraint.(TraitType).getTrait() instanceof FutureTrait @@ -1020,19 +1020,10 @@ private module AwaitSatisfiesConstraintInput implements SatisfiesConstraintSig::satisfiesConstraintTypeMention(n.(AwaitExpr) + SatisfiesConstraint::satisfiesConstraintType(n.(AwaitExpr) .getExpr(), _, exprPath, result) and exprPath.isCons(getFutureOutputTypeParameter(), path) ) - or - // This case is needed for `async` functions and blocks, where we assign - // the type `Future` directly instead of `impl Future` - // - // TODO: It would be better if we could handle this in the shared library - exists(TypePath exprPath | - result = inferType(n.(AwaitExpr).getExpr(), exprPath) and - exprPath.isCons(getFutureOutputTypeParameter(), path) - ) } private class Vec extends Struct { diff --git a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll index 2de46f3cc57..108f4d40be2 100644 --- a/shared/typeinference/codeql/typeinference/internal/TypeInference.qll +++ b/shared/typeinference/codeql/typeinference/internal/TypeInference.qll @@ -866,16 +866,18 @@ module Make1 Input1> { private import BaseTypes - signature module SatisfiesConstraintSig { + signature module SatisfiesConstraintInputSig { /** Holds if it is relevant to know if `term` satisfies `constraint`. */ - predicate relevantConstraint(TypeTree term, Type constraint); + predicate relevantConstraint(HasTypeTree term, Type constraint); } - module SatisfiesConstraint Input> { - import Input + module SatisfiesConstraint< + HasTypeTreeSig HasTypeTree, SatisfiesConstraintInputSig Input> + { + private import Input - private module IsInstantiationOfInput implements IsInstantiationOfInputSig { - predicate potentialInstantiationOf(TypeTree tt, TypeAbstraction abs, TypeMention cond) { + private module IsInstantiationOfInput implements IsInstantiationOfInputSig { + predicate potentialInstantiationOf(HasTypeTree tt, TypeAbstraction abs, TypeMention cond) { exists(Type constraint, Type type | type = tt.getTypeAt(TypePath::nil()) and relevantConstraint(tt, constraint) and @@ -891,7 +893,8 @@ module Make1 Input1> { } /** Holds if the type tree has the type `type` and should satisfy `constraint`. */ - private predicate hasTypeConstraint(TypeTree term, Type type, Type constraint) { + pragma[nomagic] + private predicate hasTypeConstraint(HasTypeTree term, Type type, Type constraint) { type = term.getTypeAt(TypePath::nil()) and relevantConstraint(term, constraint) } @@ -901,7 +904,7 @@ module Make1 Input1> { */ pragma[nomagic] private predicate hasConstraintMention( - TypeTree tt, TypeAbstraction abs, TypeMention sub, Type constraint, + HasTypeTree tt, TypeAbstraction abs, TypeMention sub, Type constraint, TypeMention constraintMention ) { exists(Type type | hasTypeConstraint(tt, type, constraint) | @@ -916,14 +919,15 @@ module Make1 Input1> { // constraint we need to find the right implementation, which is the // one where the type instantiates the precondition. if countConstraintImplementations(type, constraint) > 1 - then IsInstantiationOf::isInstantiationOf(tt, abs, sub) + then + IsInstantiationOf::isInstantiationOf(tt, abs, sub) else any() ) } pragma[nomagic] private predicate satisfiesConstraintTypeMention0( - TypeTree tt, Type constraint, TypeAbstraction abs, TypeMention sub, TypePath path, Type t + HasTypeTree tt, Type constraint, TypeAbstraction abs, TypeMention sub, TypePath path, Type t ) { exists(TypeMention constraintMention | hasConstraintMention(tt, abs, sub, constraint, constraintMention) and @@ -933,7 +937,7 @@ module Make1 Input1> { pragma[nomagic] private predicate satisfiesConstraintTypeMention1( - TypeTree tt, Type constraint, TypePath path, TypePath pathToTypeParamInSub + HasTypeTree tt, Type constraint, TypePath path, TypePath pathToTypeParamInSub ) { exists(TypeAbstraction abs, TypeMention sub, TypeParameter tp | satisfiesConstraintTypeMention0(tt, constraint, abs, sub, path, tp) and @@ -947,7 +951,7 @@ module Make1 Input1> { * with the type `t` at `path`. */ pragma[nomagic] - predicate satisfiesConstraintTypeMention(TypeTree tt, Type constraint, TypePath path, Type t) { + predicate satisfiesConstraintType(HasTypeTree tt, Type constraint, TypePath path, Type t) { exists(TypeAbstraction abs | satisfiesConstraintTypeMention0(tt, constraint, abs, _, path, t) and not t = abs.getATypeParameter() @@ -958,6 +962,9 @@ module Make1 Input1> { tt.getTypeAt(pathToTypeParamInSub.appendInverse(suffix)) = t and path = prefix0.append(suffix) ) + or + tt.getTypeAt(TypePath::nil()) = constraint and + t = tt.getTypeAt(path) } } @@ -1234,17 +1241,19 @@ module Make1 Input1> { Location getLocation() { result = a.getLocation() } } - private module SatisfiesConstraintInput implements SatisfiesConstraintSig { + private module SatisfiesConstraintInput implements + SatisfiesConstraintInputSig + { predicate relevantConstraint(RelevantAccess at, Type constraint) { constraint = at.getConstraint() } } - predicate satisfiesConstraintTypeMention( + predicate satisfiesConstraintType( Access a, AccessPosition apos, TypePath prefix, Type constraint, TypePath path, Type t ) { exists(RelevantAccess at | at = MkRelevantAccess(a, _, apos, prefix) | - SatisfiesConstraint::satisfiesConstraintTypeMention(at, + SatisfiesConstraint::satisfiesConstraintType(at, constraint, path, t) ) } @@ -1382,7 +1391,7 @@ module Make1 Input1> { accessDeclarationPositionMatch(apos, dpos) and typeParameterConstraintHasTypeParameter(target, dpos, pathToTp2, _, constraint, pathToTp, tp) and - AccessConstraint::satisfiesConstraintTypeMention(a, apos, pathToTp2, constraint, + AccessConstraint::satisfiesConstraintType(a, apos, pathToTp2, constraint, pathToTp.appendInverse(path), t) ) } From cbd62a8b750d49b55eccf4134f488eaa4c57c669 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 13:15:09 +0200 Subject: [PATCH 204/340] Rust: address review and test failure --- rust/extractor/src/translate/base.rs | 16 ++++------------ .../extractor-tests/generated/Const/Cargo.lock | 7 +++++++ .../Const/Const_getGenericParamList.expected | 0 .../Const/Const_getWhereClause.expected | 0 .../dataflow/sources/InlineFlow.expected | 1 - 5 files changed, 11 insertions(+), 13 deletions(-) create mode 100644 rust/ql/test/extractor-tests/generated/Const/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected create mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index bb573f8b706..a71d9787e94 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -11,8 +11,7 @@ use ra_ap_hir::{ }; use ra_ap_hir_def::ModuleId; use ra_ap_hir_def::type_ref::Mutability; -use ra_ap_hir_expand::files::InFileWrapper; -use ra_ap_hir_expand::{ExpandError, ExpandResult, ExpandTo, InFile}; +use ra_ap_hir_expand::{ExpandResult, ExpandTo, InFile}; use ra_ap_ide_db::RootDatabase; use ra_ap_ide_db::line_index::{LineCol, LineIndex}; use ra_ap_parser::SyntaxKind; @@ -844,8 +843,7 @@ impl<'a> Translator<'a> { fn process_item_macro_expansion( &mut self, node: &impl ast::AstNode, - value: SyntaxNode, - err: Option, + ExpandResult { value, err }: ExpandResult, ) -> Option> { let semantics = self.semantics.unwrap(); // if we are here, we have semantics self.emit_macro_expansion_parse_errors(node, &value); @@ -888,11 +886,7 @@ impl<'a> Translator<'a> { return None; } let expansion = self.semantics?.expand_attr_macro(node)?; - let ExpandResult { - value: InFileWrapper { value, .. }, - err, - } = expansion; - self.process_item_macro_expansion(node, value, err) + self.process_item_macro_expansion(node, expansion.map(|x| x.value)) } pub(crate) fn emit_item_expansion(&mut self, node: &ast::Item, label: Label) { @@ -934,9 +928,7 @@ impl<'a> Translator<'a> { .attrs() .filter_map(|attr| semantics.expand_derive_macro(&attr)) .flatten() - .filter_map(|ExpandResult { value, err }| { - self.process_item_macro_expansion(&node, value, err) - }) + .filter_map(|expanded| self.process_item_macro_expansion(&node, expanded)) .collect::>(); generated::Adt::emit_derive_macro_expansions( label.into(), diff --git a/rust/ql/test/extractor-tests/generated/Const/Cargo.lock b/rust/ql/test/extractor-tests/generated/Const/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Const/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected new file mode 100644 index 00000000000..e69de29bb2d diff --git a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected index 8b137891791..e69de29bb2d 100644 --- a/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected +++ b/rust/ql/test/library-tests/dataflow/sources/InlineFlow.expected @@ -1 +0,0 @@ - From bfaabab92949f415f6c37c1a29690041f1355b5a Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 23 Jun 2025 12:41:39 +0100 Subject: [PATCH 205/340] Rust: Update more expectations. --- rust/ql/test/library-tests/type-inference/main.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index d8278c79ed1..74860747ea7 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1942,7 +1942,7 @@ mod loops { // for loops with containers - let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec + let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec type=vals3:T.i32 for i in vals3 { } // $ MISSING: type=i:i32 let vals4a : Vec = [1u16, 2, 3].to_vec(); // $ type=vals4a:Vec type=vals4a:T.u16 @@ -1971,9 +1971,9 @@ mod loops { map1.insert(1, Box::new("one")); // $ method=insert map1.insert(2, Box::new("two")); // $ method=insert for key in map1.keys() { } // $ method=keys MISSING: type=key:i32 - for value in map1.values() { } // $ method=values MISSING: type=value:Box type=value:Box.T:&T.str - for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box type=value:Box.T:&T.str - for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box type=value:Box.T:&T.str + for value in map1.values() { } // $ method=values MISSING: type=value:Box type=value:T.&T.str + for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box type=value:T.&T.str + for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box type=value:T.&T.str // while loops From 34cd9766d5340c2860f48405c22f1e80b1fcf57d Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 23 Jun 2025 12:59:42 +0100 Subject: [PATCH 206/340] Rust: Run rustfmt --edition 2024 on the test. --- .../test/library-tests/type-inference/main.rs | 93 ++++++++++--------- 1 file changed, 51 insertions(+), 42 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 74860747ea7..9a722bd059a 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1128,7 +1128,7 @@ mod method_call_type_conversion { let t = x7.m1(); // $ method=m1 type=t:& type=t:&T.S2 println!("{:?}", x7); - let x9 : String = "Hello".to_string(); // $ type=x9:String + let x9: String = "Hello".to_string(); // $ type=x9:String // Implicit `String` -> `str` conversion happens via the `Deref` trait: // https://doc.rust-lang.org/std/string/struct.String.html#deref. let u = x9.parse::(); // $ method=parse type=u:T.u32 @@ -1865,11 +1865,7 @@ mod method_determined_by_argument_type { impl MyAdd for i64 { // MyAdd::my_add fn my_add(&self, value: bool) -> Self { - if value { - 1 - } else { - 0 - } + if value { 1 } else { 0 } } } @@ -1882,8 +1878,7 @@ mod method_determined_by_argument_type { } mod loops { - struct MyCallable { - } + struct MyCallable {} impl MyCallable { fn new() -> Self { @@ -1898,71 +1893,84 @@ mod loops { pub fn f() { // for loops with arrays - for i in [1, 2, 3] { } // $ type=i:i32 - for i in [1, 2, 3].map(|x| x + 1) { } // $ method=map MISSING: type=i:i32 - for i in [1, 2, 3].into_iter() { } // $ method=into_iter MISSING: type=i:i32 + for i in [1, 2, 3] {} // $ type=i:i32 + for i in [1, 2, 3].map(|x| x + 1) {} // $ method=map MISSING: type=i:i32 + for i in [1, 2, 3].into_iter() {} // $ method=into_iter MISSING: type=i:i32 let vals1 = [1u8, 2, 3]; // $ type=vals1:[T;...].u8 - for u in vals1 { } // $ type=u:u8 + for u in vals1 {} // $ type=u:u8 let vals2 = [1u16; 3]; // $ type=vals2:[T;...].u16 - for u in vals2 { } // $ type=u:u16 + for u in vals2 {} // $ type=u:u16 let vals3: [u32; 3] = [1, 2, 3]; // $ type=vals3:[T;...].u32 - for u in vals3 { } // $ type=u:u32 + for u in vals3 {} // $ type=u:u32 let vals4: [u64; 3] = [1; 3]; // $ type=vals4:[T;...].u64 - for u in vals4 { } // $ type=u:u64 + for u in vals4 {} // $ type=u:u64 let mut strings1 = ["foo", "bar", "baz"]; // $ type=strings1:[T;...].str - for s in &strings1 { } // $ MISSING: type=s:&T.str - for s in &mut strings1 { } // $ MISSING: type=s:&T.str - for s in strings1 { } // $ type=s:str + for s in &strings1 {} // $ MISSING: type=s:&T.str + for s in &mut strings1 {} // $ MISSING: type=s:&T.str + for s in strings1 {} // $ type=s:str - let strings2 = [String::from("foo"), String::from("bar"), String::from("baz")]; // $ type=strings2:[T;...].String - for s in strings2 { } // $ type=s:String + let strings2 = [ + String::from("foo"), + String::from("bar"), + String::from("baz"), + ]; // $ type=strings2:[T;...].String + for s in strings2 {} // $ type=s:String - let strings3 = &[String::from("foo"), String::from("bar"), String::from("baz")]; // $ type=strings3:&T.[T;...].String - for s in strings3 { } // $ MISSING: type=s:String + let strings3 = &[ + String::from("foo"), + String::from("bar"), + String::from("baz"), + ]; // $ type=strings3:&T.[T;...].String + for s in strings3 {} // $ MISSING: type=s:String let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[T;...].MyCallable; 3 - for c in callables { // $ type=c:MyCallable + for c in callables { + // $ type=c:MyCallable let result = c.call(); // $ type=result:i64 method=call } // for loops with ranges - for i in 0..10 { } // $ MISSING: type=i:i32 - for u in [0u8 .. 10] { } // $ MISSING: type=u:u8 + for i in 0..10 {} // $ MISSING: type=i:i32 + for u in [0u8..10] {} // $ MISSING: type=u:u8 let range = 0..10; // $ MISSING: type=range:Range type=range:Idx.i32 - for i in range { } // $ MISSING: type=i:i32 + for i in range {} // $ MISSING: type=i:i32 - let range1 = std::ops::Range { start: 0u16, end: 10u16 }; // $ type=range1:Range type=range1:Idx.u16 - for u in range1 { } // $ MISSING: type=u:u16 + let range1 = std::ops::Range { + start: 0u16, + end: 10u16, + }; // $ type=range1:Range type=range1:Idx.u16 + for u in range1 {} // $ MISSING: type=u:u16 // for loops with containers let vals3 = vec![1, 2, 3]; // $ MISSING: type=vals3:Vec type=vals3:T.i32 - for i in vals3 { } // $ MISSING: type=i:i32 + for i in vals3 {} // $ MISSING: type=i:i32 - let vals4a : Vec = [1u16, 2, 3].to_vec(); // $ type=vals4a:Vec type=vals4a:T.u16 - for u in vals4a { } // $ type=u:u16 + let vals4a: Vec = [1u16, 2, 3].to_vec(); // $ type=vals4a:Vec type=vals4a:T.u16 + for u in vals4a {} // $ type=u:u16 let vals4b = [1u16, 2, 3].to_vec(); // $ MISSING: type=vals4b:Vec type=vals4b:T.u16 - for u in vals4b { } // $ MISSING: type=u:u16 + for u in vals4b {} // $ MISSING: type=u:u16 let vals5 = Vec::from([1u32, 2, 3]); // $ type=vals5:Vec MISSING: type=vals5:T.u32 - for u in vals5 { } // $ MISSING: type=u:u32 + for u in vals5 {} // $ MISSING: type=u:u32 - let vals6 : Vec<&u64> = [1u64, 2, 3].iter().collect(); // $ type=vals6:Vec type=vals6:T.&T.u64 - for u in vals6 { } // $ type=u:&T.u64 + let vals6: Vec<&u64> = [1u64, 2, 3].iter().collect(); // $ type=vals6:Vec type=vals6:T.&T.u64 + for u in vals6 {} // $ type=u:&T.u64 let mut vals7 = Vec::new(); // $ type=vals7:Vec MISSING: type=vals7:T.u8 vals7.push(1u8); // $ method=push - for u in vals7 { } // $ MISSING: type=u:u8 + for u in vals7 {} // $ MISSING: type=u:u8 let matrix1 = vec![vec![1, 2], vec![3, 4]]; // $ MISSING: type=matrix1:Vec type=matrix1:T.Vec type=matrix1:T.T.i32 - for row in matrix1 { // $ MISSING: type=row:Vec type=row:T.i32 + for row in matrix1 { + // $ MISSING: type=row:Vec type=row:T.i32 for cell in row { // $ MISSING: type=cell:i32 } } @@ -1970,15 +1978,16 @@ mod loops { let mut map1 = std::collections::HashMap::new(); // $ MISSING: type=map1:Hashmap type=map1:K.i32 type=map1:V.Box type1=map1:V.T.&T.str map1.insert(1, Box::new("one")); // $ method=insert map1.insert(2, Box::new("two")); // $ method=insert - for key in map1.keys() { } // $ method=keys MISSING: type=key:i32 - for value in map1.values() { } // $ method=values MISSING: type=value:Box type=value:T.&T.str - for (key, value) in map1.iter() { } // $ method=iter MISSING: type=key:i32 type=value:Box type=value:T.&T.str - for (key, value) in &map1 { } // $ MISSING: type=key:i32 type=value:Box type=value:T.&T.str + for key in map1.keys() {} // $ method=keys MISSING: type=key:i32 + for value in map1.values() {} // $ method=values MISSING: type=value:Box type=value:T.&T.str + for (key, value) in map1.iter() {} // $ method=iter MISSING: type=key:i32 type=value:Box type=value:T.&T.str + for (key, value) in &map1 {} // $ MISSING: type=key:i32 type=value:Box type=value:T.&T.str // while loops let mut a: i64 = 0; // $ type=a:i64 - while a < 10 { // $ method=lt type=a:i64 + while a < 10 { + // $ method=lt type=a:i64 a += 1; // $ type=a:i64 method=add_assign } } From d02a7288ff3ca0f493efbd77147ac214eeaa9914 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 23 Jun 2025 13:04:56 +0100 Subject: [PATCH 207/340] Update rust/ql/lib/codeql/rust/internal/TypeInference.qll Co-authored-by: Simon Friis Vindum --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 0654f87a749..0726d808533 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1152,10 +1152,9 @@ private Type inferForLoopExprType(AstNode n, TypePath path) { or iterablePath.isCons(any(ArrayTypeParameter tp), path) or - exists(TypePath path0 | - iterablePath.isCons(any(RefTypeParameter tp), path0) and - path0.isCons(any(SliceTypeParameter tp), path) - ) + iterablePath + .stripPrefix(TypePath::cons(TRefTypeParameter(), + TypePath::singleton(any(SliceTypeParameter tp)))) = path // TODO: iterables (general case for containers, ranges etc) ) ) From 8c848ac019e91c769abaefda8a14c87a86a78e10 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 23 Jun 2025 13:08:20 +0100 Subject: [PATCH 208/340] Rust: Effects of rustfmt on .expected. --- .../type-inference/type-inference.expected | 668 +++++++++--------- 1 file changed, 338 insertions(+), 330 deletions(-) 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 8148ccce143..0f48e057160 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -1445,8 +1445,8 @@ inferType | main.rs:1129:26:1129:27 | x7 | T | file://:0:0:0:0 | & | | main.rs:1129:26:1129:27 | x7 | T.&T | main.rs:1079:5:1080:14 | S2 | | main.rs:1131:13:1131:14 | x9 | | {EXTERNAL LOCATION} | String | -| main.rs:1131:27:1131:33 | "Hello" | | {EXTERNAL LOCATION} | str | -| main.rs:1131:27:1131:45 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | +| main.rs:1131:26:1131:32 | "Hello" | | {EXTERNAL LOCATION} | str | +| main.rs:1131:26:1131:44 | "Hello".to_string() | | {EXTERNAL LOCATION} | String | | main.rs:1134:13:1134:13 | u | | {EXTERNAL LOCATION} | Result | | main.rs:1134:13:1134:13 | u | T | {EXTERNAL LOCATION} | u32 | | main.rs:1134:17:1134:18 | x9 | | {EXTERNAL LOCATION} | String | @@ -2674,333 +2674,341 @@ inferType | main.rs:1867:19:1867:23 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1867:19:1867:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1867:26:1867:30 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1867:47:1873:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:13:1872:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:1867:47:1869:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1867:47:1869:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:13:1868:37 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:13:1868:37 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | | main.rs:1868:16:1868:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:22:1870:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1869:17:1869:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1870:20:1872:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1871:17:1871:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1877:13:1877:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1877:22:1877:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1878:9:1878:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:9:1878:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1878:18:1878:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1879:9:1879:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:9:1879:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:18:1879:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:1879:18:1879:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1879:19:1879:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1880:9:1880:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:9:1880:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1880:18:1880:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1889:26:1891:9 | { ... } | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1890:13:1890:25 | MyCallable {...} | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1893:17:1893:21 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1893:17:1893:21 | SelfParam | &T | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1893:31:1895:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1893:31:1895:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1894:13:1894:13 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1894:13:1894:13 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1901:13:1901:13 | i | | {EXTERNAL LOCATION} | i32 | -| main.rs:1901:18:1901:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1901:18:1901:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1901:19:1901:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1901:22:1901:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1901:25:1901:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:18:1902:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1902:18:1902:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:18:1902:41 | ... .map(...) | | file://:0:0:0:0 | [] | -| main.rs:1902:19:1902:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:22:1902:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:25:1902:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1902:40:1902:40 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:18:1903:26 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1903:18:1903:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:19:1903:19 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:22:1903:22 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1903:25:1903:25 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:13:1905:17 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:1905:13:1905:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:13:1905:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:1905:21:1905:31 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1905:21:1905:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:21:1905:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:1905:22:1905:24 | 1u8 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:22:1905:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1905:27:1905:27 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:27:1905:27 | 2 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1905:30:1905:30 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1905:30:1905:30 | 3 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1906:13:1906:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:1906:13:1906:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:1906:18:1906:22 | vals1 | | file://:0:0:0:0 | [] | -| main.rs:1906:18:1906:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1906:18:1906:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | -| main.rs:1908:13:1908:17 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:1908:13:1908:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1908:21:1908:29 | [1u16; 3] | | file://:0:0:0:0 | [] | -| main.rs:1908:21:1908:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1908:22:1908:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1908:28:1908:28 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1909:13:1909:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:1909:18:1909:22 | vals2 | | file://:0:0:0:0 | [] | -| main.rs:1909:18:1909:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1911:13:1911:17 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:1911:13:1911:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:13:1911:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1911:26:1911:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:31:1911:39 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1911:31:1911:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:31:1911:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1911:32:1911:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:32:1911:32 | 1 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1911:35:1911:35 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:35:1911:35 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1911:38:1911:38 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1911:38:1911:38 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1912:13:1912:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:1912:13:1912:13 | u | | {EXTERNAL LOCATION} | u32 | -| main.rs:1912:18:1912:22 | vals3 | | file://:0:0:0:0 | [] | -| main.rs:1912:18:1912:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1912:18:1912:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1914:13:1914:17 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:1914:13:1914:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1914:13:1914:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1914:26:1914:26 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1914:31:1914:36 | [1; 3] | | file://:0:0:0:0 | [] | -| main.rs:1914:31:1914:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1914:31:1914:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1914:32:1914:32 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1914:32:1914:32 | 1 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1914:35:1914:35 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1915:13:1915:13 | u | | {EXTERNAL LOCATION} | i32 | -| main.rs:1915:13:1915:13 | u | | {EXTERNAL LOCATION} | u64 | -| main.rs:1915:18:1915:22 | vals4 | | file://:0:0:0:0 | [] | -| main.rs:1915:18:1915:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1915:18:1915:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1917:13:1917:24 | mut strings1 | | file://:0:0:0:0 | [] | -| main.rs:1917:13:1917:24 | mut strings1 | [T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1917:28:1917:48 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1917:28:1917:48 | [...] | [T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1917:29:1917:33 | "foo" | | {EXTERNAL LOCATION} | str | -| main.rs:1917:36:1917:40 | "bar" | | {EXTERNAL LOCATION} | str | -| main.rs:1917:43:1917:47 | "baz" | | {EXTERNAL LOCATION} | str | -| main.rs:1918:18:1918:26 | &strings1 | | file://:0:0:0:0 | & | -| main.rs:1918:18:1918:26 | &strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:1918:18:1918:26 | &strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1918:19:1918:26 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:1918:19:1918:26 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1919:18:1919:30 | &mut strings1 | | file://:0:0:0:0 | & | -| main.rs:1919:18:1919:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | -| main.rs:1919:18:1919:30 | &mut strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1919:23:1919:30 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:1919:23:1919:30 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1920:13:1920:13 | s | | {EXTERNAL LOCATION} | str | -| main.rs:1920:18:1920:25 | strings1 | | file://:0:0:0:0 | [] | -| main.rs:1920:18:1920:25 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | -| main.rs:1922:13:1922:20 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:1922:13:1922:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1922:24:1922:86 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1922:24:1922:86 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1922:25:1922:43 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1922:38:1922:42 | "foo" | | {EXTERNAL LOCATION} | str | -| main.rs:1922:46:1922:64 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1922:59:1922:63 | "bar" | | {EXTERNAL LOCATION} | str | -| main.rs:1922:67:1922:85 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1922:80:1922:84 | "baz" | | {EXTERNAL LOCATION} | str | -| main.rs:1923:13:1923:13 | s | | {EXTERNAL LOCATION} | String | -| main.rs:1923:18:1923:25 | strings2 | | file://:0:0:0:0 | [] | -| main.rs:1923:18:1923:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1925:13:1925:20 | strings3 | | file://:0:0:0:0 | & | -| main.rs:1925:13:1925:20 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:1925:13:1925:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1925:24:1925:87 | &... | | file://:0:0:0:0 | & | -| main.rs:1925:24:1925:87 | &... | &T | file://:0:0:0:0 | [] | -| main.rs:1925:24:1925:87 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1925:25:1925:87 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1925:25:1925:87 | [...] | [T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1925:26:1925:44 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1925:39:1925:43 | "foo" | | {EXTERNAL LOCATION} | str | -| main.rs:1925:47:1925:65 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1925:60:1925:64 | "bar" | | {EXTERNAL LOCATION} | str | -| main.rs:1925:68:1925:86 | ...::from(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1925:81:1925:85 | "baz" | | {EXTERNAL LOCATION} | str | -| main.rs:1926:18:1926:25 | strings3 | | file://:0:0:0:0 | & | -| main.rs:1926:18:1926:25 | strings3 | &T | file://:0:0:0:0 | [] | -| main.rs:1926:18:1926:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | -| main.rs:1928:13:1928:21 | callables | | file://:0:0:0:0 | [] | -| main.rs:1928:13:1928:21 | callables | [T;...] | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1928:25:1928:81 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1928:25:1928:81 | [...] | [T;...] | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1928:26:1928:42 | ...::new(...) | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1928:45:1928:61 | ...::new(...) | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1928:64:1928:80 | ...::new(...) | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1929:13:1929:13 | c | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1929:18:1929:26 | callables | | file://:0:0:0:0 | [] | -| main.rs:1929:18:1929:26 | callables | [T;...] | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1930:17:1930:22 | result | | {EXTERNAL LOCATION} | i64 | -| main.rs:1930:26:1930:26 | c | | main.rs:1885:5:1886:5 | MyCallable | -| main.rs:1930:26:1930:33 | c.call() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1935:18:1935:18 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1935:21:1935:22 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1936:18:1936:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1936:19:1936:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1936:26:1936:27 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:21:1937:21 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1937:24:1937:25 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1940:13:1940:18 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:1940:13:1940:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:22:1940:64 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | -| main.rs:1940:22:1940:64 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:47:1940:50 | 0u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1940:58:1940:62 | 10u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1941:18:1941:23 | range1 | | {EXTERNAL LOCATION} | Range | -| main.rs:1941:18:1941:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | -| main.rs:1945:26:1945:26 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1945:29:1945:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1945:32:1945:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1948:13:1948:18 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:1948:13:1948:18 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:1948:13:1948:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1948:33:1948:44 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1948:33:1948:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1948:33:1948:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1948:33:1948:53 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1948:33:1948:53 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | -| main.rs:1948:33:1948:53 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1948:34:1948:37 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1948:34:1948:37 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1948:40:1948:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1948:40:1948:40 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1948:43:1948:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1948:43:1948:43 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1949:13:1949:13 | u | | {EXTERNAL LOCATION} | u16 | -| main.rs:1949:18:1949:23 | vals4a | | {EXTERNAL LOCATION} | Vec | -| main.rs:1949:18:1949:23 | vals4a | A | {EXTERNAL LOCATION} | Global | -| main.rs:1949:18:1949:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | -| main.rs:1951:22:1951:33 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1951:22:1951:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1951:22:1951:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | -| main.rs:1951:23:1951:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1951:23:1951:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1951:29:1951:29 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1951:29:1951:29 | 2 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1951:32:1951:32 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1951:32:1951:32 | 3 | | {EXTERNAL LOCATION} | u16 | -| main.rs:1954:13:1954:17 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1954:13:1954:17 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1954:13:1954:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1954:21:1954:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1954:21:1954:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1954:21:1954:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1954:31:1954:42 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1954:31:1954:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:31:1954:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | -| main.rs:1954:32:1954:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:32:1954:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1954:38:1954:38 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:38:1954:38 | 2 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1954:41:1954:41 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1954:41:1954:41 | 3 | | {EXTERNAL LOCATION} | u32 | -| main.rs:1955:13:1955:13 | u | | {EXTERNAL LOCATION} | u8 | -| main.rs:1955:18:1955:22 | vals5 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1955:18:1955:22 | vals5 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1955:18:1955:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | -| main.rs:1957:13:1957:17 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1957:13:1957:17 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1957:13:1957:17 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1957:13:1957:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1957:33:1957:44 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1957:33:1957:44 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | -| main.rs:1957:33:1957:44 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | -| main.rs:1957:33:1957:61 | ... .collect() | | {EXTERNAL LOCATION} | Vec | -| main.rs:1957:33:1957:61 | ... .collect() | A | {EXTERNAL LOCATION} | Global | -| main.rs:1957:33:1957:61 | ... .collect() | T | file://:0:0:0:0 | & | -| main.rs:1957:33:1957:61 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1957:34:1957:37 | 1u64 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1957:34:1957:37 | 1u64 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1957:40:1957:40 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1957:40:1957:40 | 2 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1957:43:1957:43 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1957:43:1957:43 | 3 | | {EXTERNAL LOCATION} | u64 | -| main.rs:1958:13:1958:13 | u | | file://:0:0:0:0 | & | -| main.rs:1958:13:1958:13 | u | &T | {EXTERNAL LOCATION} | u64 | -| main.rs:1958:18:1958:22 | vals6 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1958:18:1958:22 | vals6 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1958:18:1958:22 | vals6 | T | file://:0:0:0:0 | & | -| main.rs:1958:18:1958:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | -| main.rs:1960:13:1960:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1960:13:1960:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1960:25:1960:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | -| main.rs:1960:25:1960:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1961:9:1961:13 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1961:9:1961:13 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1961:20:1961:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | -| main.rs:1962:18:1962:22 | vals7 | | {EXTERNAL LOCATION} | Vec | -| main.rs:1962:18:1962:22 | vals7 | A | {EXTERNAL LOCATION} | Global | -| main.rs:1964:33:1964:33 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1964:36:1964:36 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1964:45:1964:45 | 3 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1964:48:1964:48 | 4 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1970:13:1970:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1970:13:1970:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1970:24:1970:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1970:24:1970:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1971:9:1971:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1971:9:1971:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1971:9:1971:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1971:21:1971:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1971:24:1971:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1971:24:1971:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1971:33:1971:37 | "one" | | {EXTERNAL LOCATION} | str | -| main.rs:1972:9:1972:12 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1972:9:1972:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1972:9:1972:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | -| main.rs:1972:21:1972:21 | 2 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1972:24:1972:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | -| main.rs:1972:24:1972:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | -| main.rs:1972:33:1972:37 | "two" | | {EXTERNAL LOCATION} | str | -| main.rs:1973:20:1973:23 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1973:20:1973:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1973:20:1973:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | -| main.rs:1974:22:1974:25 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1974:22:1974:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1974:22:1974:34 | map1.values() | | {EXTERNAL LOCATION} | Values | -| main.rs:1975:29:1975:32 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1975:29:1975:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1975:29:1975:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | -| main.rs:1976:29:1976:33 | &map1 | | file://:0:0:0:0 | & | -| main.rs:1976:29:1976:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | -| main.rs:1976:29:1976:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1976:30:1976:33 | map1 | | {EXTERNAL LOCATION} | HashMap | -| main.rs:1976:30:1976:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | -| main.rs:1980:13:1980:17 | mut a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1980:13:1980:17 | mut a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1980:26:1980:26 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1980:26:1980:26 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:15:1981:15 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1981:15:1981:15 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1981:15:1981:20 | ... < ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1981:19:1981:20 | 10 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1982:13:1982:13 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1982:13:1982:13 | a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1982:13:1982:18 | ... += ... | | file://:0:0:0:0 | () | -| main.rs:1982:18:1982:18 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1989:5:1989:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1990:5:1990:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1990:20:1990:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1990:41:1990:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:2006:5:2006:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1868:22:1868:26 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:22:1868:26 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:24:1868:24 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:24:1868:24 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:33:1868:37 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:33:1868:37 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1868:35:1868:35 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1868:35:1868:35 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1873:13:1873:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1873:13:1873:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1873:22:1873:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1873:22:1873:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:9:1874:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1874:9:1874:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:9:1874:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1874:18:1874:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:9:1875:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1875:9:1875:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:9:1875:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:18:1875:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:1875:18:1875:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1875:19:1875:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:9:1876:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1876:9:1876:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:9:1876:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1876:18:1876:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1884:26:1886:9 | { ... } | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1885:13:1885:25 | MyCallable {...} | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1888:17:1888:21 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1888:17:1888:21 | SelfParam | &T | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1888:31:1890:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1888:31:1890:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1889:13:1889:13 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1889:13:1889:13 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1896:13:1896:13 | i | | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:18:1896:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1896:18:1896:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:19:1896:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:22:1896:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1896:25:1896:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1897:18:1897:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1897:18:1897:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1897:18:1897:41 | ... .map(...) | | file://:0:0:0:0 | [] | +| main.rs:1897:19:1897:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1897:22:1897:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1897:25:1897:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1897:40:1897:40 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1898:18:1898:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1898:18:1898:26 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1898:19:1898:19 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1898:22:1898:22 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1898:25:1898:25 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:13:1900:17 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:1900:13:1900:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:13:1900:17 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1900:21:1900:31 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1900:21:1900:31 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:21:1900:31 | [...] | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1900:22:1900:24 | 1u8 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:22:1900:24 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1900:27:1900:27 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:27:1900:27 | 2 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1900:30:1900:30 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1900:30:1900:30 | 3 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1901:13:1901:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:1901:13:1901:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1901:18:1901:22 | vals1 | | file://:0:0:0:0 | [] | +| main.rs:1901:18:1901:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1901:18:1901:22 | vals1 | [T;...] | {EXTERNAL LOCATION} | u8 | +| main.rs:1903:13:1903:17 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:1903:13:1903:17 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1903:21:1903:29 | [1u16; 3] | | file://:0:0:0:0 | [] | +| main.rs:1903:21:1903:29 | [1u16; 3] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1903:22:1903:25 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1903:28:1903:28 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1904:13:1904:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1904:18:1904:22 | vals2 | | file://:0:0:0:0 | [] | +| main.rs:1904:18:1904:22 | vals2 | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1906:13:1906:17 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1906:13:1906:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:13:1906:17 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1906:26:1906:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:31:1906:39 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1906:31:1906:39 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:31:1906:39 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1906:32:1906:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:32:1906:32 | 1 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1906:35:1906:35 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:35:1906:35 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1906:38:1906:38 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1906:38:1906:38 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1907:13:1907:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:1907:13:1907:13 | u | | {EXTERNAL LOCATION} | u32 | +| main.rs:1907:18:1907:22 | vals3 | | file://:0:0:0:0 | [] | +| main.rs:1907:18:1907:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1907:18:1907:22 | vals3 | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1909:13:1909:17 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1909:13:1909:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1909:13:1909:17 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1909:26:1909:26 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1909:31:1909:36 | [1; 3] | | file://:0:0:0:0 | [] | +| main.rs:1909:31:1909:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1909:31:1909:36 | [1; 3] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1909:32:1909:32 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1909:32:1909:32 | 1 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1909:35:1909:35 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1910:13:1910:13 | u | | {EXTERNAL LOCATION} | i32 | +| main.rs:1910:13:1910:13 | u | | {EXTERNAL LOCATION} | u64 | +| main.rs:1910:18:1910:22 | vals4 | | file://:0:0:0:0 | [] | +| main.rs:1910:18:1910:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1910:18:1910:22 | vals4 | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1912:13:1912:24 | mut strings1 | | file://:0:0:0:0 | [] | +| main.rs:1912:13:1912:24 | mut strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1912:28:1912:48 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1912:28:1912:48 | [...] | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1912:29:1912:33 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1912:36:1912:40 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1912:43:1912:47 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1913:18:1913:26 | &strings1 | | file://:0:0:0:0 | & | +| main.rs:1913:18:1913:26 | &strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:1913:18:1913:26 | &strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1913:19:1913:26 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:1913:19:1913:26 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1914:18:1914:30 | &mut strings1 | | file://:0:0:0:0 | & | +| main.rs:1914:18:1914:30 | &mut strings1 | &T | file://:0:0:0:0 | [] | +| main.rs:1914:18:1914:30 | &mut strings1 | &T.[T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1914:23:1914:30 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:1914:23:1914:30 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1915:13:1915:13 | s | | {EXTERNAL LOCATION} | str | +| main.rs:1915:18:1915:25 | strings1 | | file://:0:0:0:0 | [] | +| main.rs:1915:18:1915:25 | strings1 | [T;...] | {EXTERNAL LOCATION} | str | +| main.rs:1917:13:1917:20 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:1917:13:1917:20 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1917:24:1921:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1917:24:1921:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1918:13:1918:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1918:26:1918:30 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1919:13:1919:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1919:26:1919:30 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1920:13:1920:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1920:26:1920:30 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1922:13:1922:13 | s | | {EXTERNAL LOCATION} | String | +| main.rs:1922:18:1922:25 | strings2 | | file://:0:0:0:0 | [] | +| main.rs:1922:18:1922:25 | strings2 | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1924:13:1924:20 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1924:13:1924:20 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:1924:13:1924:20 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1924:24:1928:9 | &... | | file://:0:0:0:0 | & | +| main.rs:1924:24:1928:9 | &... | &T | file://:0:0:0:0 | [] | +| main.rs:1924:24:1928:9 | &... | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1924:25:1928:9 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1924:25:1928:9 | [...] | [T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1925:13:1925:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1925:26:1925:30 | "foo" | | {EXTERNAL LOCATION} | str | +| main.rs:1926:13:1926:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1926:26:1926:30 | "bar" | | {EXTERNAL LOCATION} | str | +| main.rs:1927:13:1927:31 | ...::from(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1927:26:1927:30 | "baz" | | {EXTERNAL LOCATION} | str | +| main.rs:1929:18:1929:25 | strings3 | | file://:0:0:0:0 | & | +| main.rs:1929:18:1929:25 | strings3 | &T | file://:0:0:0:0 | [] | +| main.rs:1929:18:1929:25 | strings3 | &T.[T;...] | {EXTERNAL LOCATION} | String | +| main.rs:1931:13:1931:21 | callables | | file://:0:0:0:0 | [] | +| main.rs:1931:13:1931:21 | callables | [T;...] | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1931:25:1931:81 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1931:25:1931:81 | [...] | [T;...] | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1931:26:1931:42 | ...::new(...) | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1931:45:1931:61 | ...::new(...) | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1931:64:1931:80 | ...::new(...) | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1932:13:1932:13 | c | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1932:18:1932:26 | callables | | file://:0:0:0:0 | [] | +| main.rs:1932:18:1932:26 | callables | [T;...] | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1934:17:1934:22 | result | | {EXTERNAL LOCATION} | i64 | +| main.rs:1934:26:1934:26 | c | | main.rs:1881:5:1881:24 | MyCallable | +| main.rs:1934:26:1934:33 | c.call() | | {EXTERNAL LOCATION} | i64 | +| main.rs:1939:18:1939:18 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1939:21:1939:22 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1940:18:1940:26 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1940:19:1940:21 | 0u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1940:24:1940:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1941:21:1941:21 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1941:24:1941:25 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1944:13:1944:18 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1944:13:1944:18 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1944:22:1947:9 | ...::Range {...} | | {EXTERNAL LOCATION} | Range | +| main.rs:1944:22:1947:9 | ...::Range {...} | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1945:20:1945:23 | 0u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1946:18:1946:22 | 10u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1948:18:1948:23 | range1 | | {EXTERNAL LOCATION} | Range | +| main.rs:1948:18:1948:23 | range1 | Idx | {EXTERNAL LOCATION} | u16 | +| main.rs:1952:26:1952:26 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1952:29:1952:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1952:32:1952:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:13:1955:18 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1955:13:1955:18 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1955:13:1955:18 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1955:32:1955:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1955:32:1955:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:32:1955:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1955:32:1955:52 | ... .to_vec() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1955:32:1955:52 | ... .to_vec() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1955:32:1955:52 | ... .to_vec() | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1955:33:1955:36 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:33:1955:36 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1955:39:1955:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:39:1955:39 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1955:42:1955:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1955:42:1955:42 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1956:13:1956:13 | u | | {EXTERNAL LOCATION} | u16 | +| main.rs:1956:18:1956:23 | vals4a | | {EXTERNAL LOCATION} | Vec | +| main.rs:1956:18:1956:23 | vals4a | A | {EXTERNAL LOCATION} | Global | +| main.rs:1956:18:1956:23 | vals4a | T | {EXTERNAL LOCATION} | u16 | +| main.rs:1958:22:1958:33 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1958:22:1958:33 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1958:22:1958:33 | [...] | [T;...] | {EXTERNAL LOCATION} | u16 | +| main.rs:1958:23:1958:26 | 1u16 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1958:23:1958:26 | 1u16 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1958:29:1958:29 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1958:29:1958:29 | 2 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1958:32:1958:32 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1958:32:1958:32 | 3 | | {EXTERNAL LOCATION} | u16 | +| main.rs:1961:13:1961:17 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1961:13:1961:17 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1961:13:1961:17 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1961:21:1961:43 | ...::from(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1961:21:1961:43 | ...::from(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1961:21:1961:43 | ...::from(...) | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1961:31:1961:42 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1961:31:1961:42 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:31:1961:42 | [...] | [T;...] | {EXTERNAL LOCATION} | u32 | +| main.rs:1961:32:1961:35 | 1u32 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:32:1961:35 | 1u32 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1961:38:1961:38 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:38:1961:38 | 2 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1961:41:1961:41 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1961:41:1961:41 | 3 | | {EXTERNAL LOCATION} | u32 | +| main.rs:1962:13:1962:13 | u | | {EXTERNAL LOCATION} | u8 | +| main.rs:1962:18:1962:22 | vals5 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1962:18:1962:22 | vals5 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1962:18:1962:22 | vals5 | T | {EXTERNAL LOCATION} | u8 | +| main.rs:1964:13:1964:17 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1964:13:1964:17 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1964:13:1964:17 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1964:13:1964:17 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1964:32:1964:43 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1964:32:1964:43 | [...] | [T;...] | {EXTERNAL LOCATION} | i32 | +| main.rs:1964:32:1964:43 | [...] | [T;...] | {EXTERNAL LOCATION} | u64 | +| main.rs:1964:32:1964:60 | ... .collect() | | {EXTERNAL LOCATION} | Vec | +| main.rs:1964:32:1964:60 | ... .collect() | A | {EXTERNAL LOCATION} | Global | +| main.rs:1964:32:1964:60 | ... .collect() | T | file://:0:0:0:0 | & | +| main.rs:1964:32:1964:60 | ... .collect() | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1964:33:1964:36 | 1u64 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1964:33:1964:36 | 1u64 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1964:39:1964:39 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1964:39:1964:39 | 2 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1964:42:1964:42 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1964:42:1964:42 | 3 | | {EXTERNAL LOCATION} | u64 | +| main.rs:1965:13:1965:13 | u | | file://:0:0:0:0 | & | +| main.rs:1965:13:1965:13 | u | &T | {EXTERNAL LOCATION} | u64 | +| main.rs:1965:18:1965:22 | vals6 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1965:18:1965:22 | vals6 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1965:18:1965:22 | vals6 | T | file://:0:0:0:0 | & | +| main.rs:1965:18:1965:22 | vals6 | T.&T | {EXTERNAL LOCATION} | u64 | +| main.rs:1967:13:1967:21 | mut vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1967:13:1967:21 | mut vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1967:25:1967:34 | ...::new(...) | | {EXTERNAL LOCATION} | Vec | +| main.rs:1967:25:1967:34 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1968:9:1968:13 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1968:9:1968:13 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1968:20:1968:22 | 1u8 | | {EXTERNAL LOCATION} | u8 | +| main.rs:1969:18:1969:22 | vals7 | | {EXTERNAL LOCATION} | Vec | +| main.rs:1969:18:1969:22 | vals7 | A | {EXTERNAL LOCATION} | Global | +| main.rs:1971:33:1971:33 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:36:1971:36 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:45:1971:45 | 3 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1971:48:1971:48 | 4 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1978:13:1978:20 | mut map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1978:13:1978:20 | mut map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1978:24:1978:55 | ...::new(...) | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1978:24:1978:55 | ...::new(...) | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1979:9:1979:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1979:9:1979:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1979:9:1979:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1979:21:1979:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1979:24:1979:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1979:24:1979:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1979:33:1979:37 | "one" | | {EXTERNAL LOCATION} | str | +| main.rs:1980:9:1980:12 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1980:9:1980:12 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1980:9:1980:39 | map1.insert(...) | | {EXTERNAL LOCATION} | Option | +| main.rs:1980:21:1980:21 | 2 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1980:24:1980:38 | ...::new(...) | | {EXTERNAL LOCATION} | Box | +| main.rs:1980:24:1980:38 | ...::new(...) | A | {EXTERNAL LOCATION} | Global | +| main.rs:1980:33:1980:37 | "two" | | {EXTERNAL LOCATION} | str | +| main.rs:1981:20:1981:23 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1981:20:1981:23 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1981:20:1981:30 | map1.keys() | | {EXTERNAL LOCATION} | Keys | +| main.rs:1982:22:1982:25 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1982:22:1982:25 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1982:22:1982:34 | map1.values() | | {EXTERNAL LOCATION} | Values | +| main.rs:1983:29:1983:32 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1983:29:1983:32 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1983:29:1983:39 | map1.iter() | | {EXTERNAL LOCATION} | Iter | +| main.rs:1984:29:1984:33 | &map1 | | file://:0:0:0:0 | & | +| main.rs:1984:29:1984:33 | &map1 | &T | {EXTERNAL LOCATION} | HashMap | +| main.rs:1984:29:1984:33 | &map1 | &T.S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1984:30:1984:33 | map1 | | {EXTERNAL LOCATION} | HashMap | +| main.rs:1984:30:1984:33 | map1 | S | {EXTERNAL LOCATION} | RandomState | +| main.rs:1988:13:1988:17 | mut a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1988:13:1988:17 | mut a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1988:26:1988:26 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1988:26:1988:26 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:15:1989:15 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1989:15:1989:15 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1989:15:1989:20 | ... < ... | | {EXTERNAL LOCATION} | bool | +| main.rs:1989:19:1989:20 | 10 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1991:13:1991:13 | a | | {EXTERNAL LOCATION} | i32 | +| main.rs:1991:13:1991:13 | a | | {EXTERNAL LOCATION} | i64 | +| main.rs:1991:13:1991:18 | ... += ... | | file://:0:0:0:0 | () | +| main.rs:1991:18:1991:18 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1998:5:1998:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1999:5:1999:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1999:20:1999:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1999:41:1999:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:2015:5:2015:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures +| main.rs:1921:12:1921:44 | //... | Missing result: type=strings2:[T;...].String | +| main.rs:1928:12:1928:47 | //... | Missing result: type=strings3:&T.[T;...].String | +| main.rs:1933:13:1933:34 | //... | Missing result: type=c:MyCallable | +| main.rs:1947:12:1947:53 | //... | Missing result: type=range1:Idx.u16 | +| main.rs:1947:12:1947:53 | //... | Missing result: type=range1:Range | +| main.rs:1989:15:1989:20 | ... < ... | Unexpected result: method=lt | +| main.rs:1990:13:1990:37 | //... | Missing result: method=lt | +| main.rs:1990:13:1990:37 | //... | Missing result: type=a:i64 | From 4530e85c933fe0193f89288225bbcb21d37f8039 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Mon, 23 Jun 2025 13:12:53 +0100 Subject: [PATCH 209/340] Rust: Repair the test annotations. --- .../test/library-tests/type-inference/main.rs | 20 +++++++++---------- .../type-inference/type-inference.expected | 8 -------- 2 files changed, 10 insertions(+), 18 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 9a722bd059a..502ea8949b6 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1914,23 +1914,23 @@ mod loops { for s in &mut strings1 {} // $ MISSING: type=s:&T.str for s in strings1 {} // $ type=s:str - let strings2 = [ + let strings2 = [ // $ type=strings2:[T;...].String String::from("foo"), String::from("bar"), String::from("baz"), - ]; // $ type=strings2:[T;...].String + ]; for s in strings2 {} // $ type=s:String - let strings3 = &[ + let strings3 = &[ // $ type=strings3:&T.[T;...].String String::from("foo"), String::from("bar"), String::from("baz"), - ]; // $ type=strings3:&T.[T;...].String + ]; for s in strings3 {} // $ MISSING: type=s:String let callables = [MyCallable::new(), MyCallable::new(), MyCallable::new()]; // $ MISSING: type=callables:[T;...].MyCallable; 3 - for c in callables { - // $ type=c:MyCallable + for c in callables // $ type=c:MyCallable + { let result = c.call(); // $ type=result:i64 method=call } @@ -1941,10 +1941,10 @@ mod loops { let range = 0..10; // $ MISSING: type=range:Range type=range:Idx.i32 for i in range {} // $ MISSING: type=i:i32 - let range1 = std::ops::Range { + let range1 = std::ops::Range { // $ type=range1:Range type=range1:Idx.u16 start: 0u16, end: 10u16, - }; // $ type=range1:Range type=range1:Idx.u16 + }; for u in range1 {} // $ MISSING: type=u:u16 // for loops with containers @@ -1986,8 +1986,8 @@ mod loops { // while loops let mut a: i64 = 0; // $ type=a:i64 - while a < 10 { - // $ method=lt type=a:i64 + while a < 10 // $ method=lt type=a:i64 + { a += 1; // $ type=a:i64 method=add_assign } } 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 0f48e057160..c2db99e0cf4 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -3004,11 +3004,3 @@ inferType | main.rs:1999:41:1999:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:2015:5:2015:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures -| main.rs:1921:12:1921:44 | //... | Missing result: type=strings2:[T;...].String | -| main.rs:1928:12:1928:47 | //... | Missing result: type=strings3:&T.[T;...].String | -| main.rs:1933:13:1933:34 | //... | Missing result: type=c:MyCallable | -| main.rs:1947:12:1947:53 | //... | Missing result: type=range1:Idx.u16 | -| main.rs:1947:12:1947:53 | //... | Missing result: type=range1:Range | -| main.rs:1989:15:1989:20 | ... < ... | Unexpected result: method=lt | -| main.rs:1990:13:1990:37 | //... | Missing result: method=lt | -| main.rs:1990:13:1990:37 | //... | Missing result: type=a:i64 | From 13b28e2b602870a6db2ceb16a7e215d3a79c1f2c Mon Sep 17 00:00:00 2001 From: Arthur Baars Date: Mon, 23 Jun 2025 14:33:27 +0200 Subject: [PATCH 210/340] Rust: add upgrade/downgrade scripts for new tables --- .../old.dbscheme | 3632 +++++++++++++++++ .../rust.dbscheme | 3620 ++++++++++++++++ .../upgrade.properties | 5 + .../old.dbscheme | 3620 ++++++++++++++++ .../rust.dbscheme | 3632 +++++++++++++++++ .../upgrade.properties | 2 + 6 files changed, 14511 insertions(+) create mode 100644 rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme create mode 100644 rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme create mode 100644 rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme create mode 100644 rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties diff --git a/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme new file mode 100644 index 00000000000..e3b3765116e --- /dev/null +++ b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme @@ -0,0 +1,3632 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme new file mode 100644 index 00000000000..e019447231c --- /dev/null +++ b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme @@ -0,0 +1,3620 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties new file mode 100644 index 00000000000..597a1a8f384 --- /dev/null +++ b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties @@ -0,0 +1,5 @@ +description: Remove `const_generic_param_lists` and `const_where_clauses` +compatibility: backwards + +const_generic_param_lists.rel: delete +const_where_clauses.rel: delete \ No newline at end of file diff --git a/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme new file mode 100644 index 00000000000..e019447231c --- /dev/null +++ b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/old.dbscheme @@ -0,0 +1,3620 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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_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_has_implementation( + int id: @const 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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme new file mode 100644 index 00000000000..e3b3765116e --- /dev/null +++ b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/rust.dbscheme @@ -0,0 +1,3632 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties new file mode 100644 index 00000000000..42211be80b1 --- /dev/null +++ b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties @@ -0,0 +1,2 @@ +description: Add `const_generic_param_lists` and `const_where_clauses` +compatibility: backwards \ No newline at end of file From 0d3bb8919500d3cd5bf93d901c9288641aaa6474 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:36:15 +0200 Subject: [PATCH 211/340] JS: Deprecate Actions.qll --- javascript/ql/lib/semmle/javascript/Actions.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/javascript/ql/lib/semmle/javascript/Actions.qll b/javascript/ql/lib/semmle/javascript/Actions.qll index 8854eb11a55..d3f19681d88 100644 --- a/javascript/ql/lib/semmle/javascript/Actions.qll +++ b/javascript/ql/lib/semmle/javascript/Actions.qll @@ -1,7 +1,10 @@ /** + * DEPRECATED. Models for GitHub Actions workflow files are part of the actions qlpack now. + * * Libraries for modeling GitHub Actions workflow files written in YAML. * See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions. */ +deprecated module; import javascript From 3a00e8d1c50ac63d0527d5e09324f3c21c6f6f57 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:37:21 +0200 Subject: [PATCH 212/340] JS: Remove js/actions/pull-request-target Superseded by actions/untrusted-checkout/{medium,high,critical} --- .../Security/CWE-094/UntrustedCheckout.qhelp | 64 --------------- .../Security/CWE-094/UntrustedCheckout.ql | 81 ------------------- .../Security/CWE-094/examples/comment_pr.yml | 52 ------------ .../examples/pull_request_target_bad.yml | 25 ------ .../Security/CWE-094/examples/receive_pr.yml | 26 ------ .../workflows/pull_request_target_if_job.yml | 38 --------- .../workflows/pull_request_target_if_step.yml | 31 ------- .../pull_request_target_label_only.yml | 12 --- ...pull_request_target_label_only_mapping.yml | 13 --- .../pull_request_target_labels_mapping.yml | 15 ---- .../pull_request_target_labels_sequence.yml | 12 --- .../workflows/pull_request_target_mapping.yml | 10 --- .../workflows/pull_request_target_master.yml | 10 --- .../workflows/pull_request_target_run.yml | 11 --- .../pull_request_target_sequence.yml | 9 --- .../CWE-094/UntrustedCheckout.expected | 15 ---- .../Security/CWE-094/UntrustedCheckout.qlref | 1 - 17 files changed, 425 deletions(-) delete mode 100644 javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.qhelp delete mode 100644 javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql delete mode 100644 javascript/ql/src/experimental/Security/CWE-094/examples/comment_pr.yml delete mode 100644 javascript/ql/src/experimental/Security/CWE-094/examples/pull_request_target_bad.yml delete mode 100644 javascript/ql/src/experimental/Security/CWE-094/examples/receive_pr.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_job.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_step.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only_mapping.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_mapping.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_sequence.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_mapping.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_master.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_run.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_sequence.yml delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.expected delete mode 100644 javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.qlref diff --git a/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.qhelp b/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.qhelp deleted file mode 100644 index 4833b50d8e2..00000000000 --- a/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.qhelp +++ /dev/null @@ -1,64 +0,0 @@ - - - - - -

    - - Combining pull_request_target workflow trigger with an explicit checkout - of an untrusted pull request is a dangerous practice - that may lead to repository compromise. - -

    - - - - - -

    - - The best practice is to handle the potentially untrusted pull request - via the pull_request trigger so that it is isolated in - an unprivileged environment. The workflow processing the pull request - should then store any results like code coverage or failed/passed tests - in artifacts and exit. The following workflow then starts on workflow_run - where it is granted write permission to the target repository and access to - repository secrets, so that it can download the artifacts and make - any necessary modifications to the repository or interact with third party services - that require repository secrets (e.g. API tokens). - -

    - -
    - - - -

    - - The following example allows unauthorized repository modification - and secrets exfiltration: - -

    - - - -

    - - The following example uses two workflows to handle potentially untrusted - pull request in a secure manner. The receive_pr.yml is triggered first: - -

    - - -

    The comment_pr.yml is triggered after receive_pr.yml completes:

    - - -
    - - -
  • GitHub Security Lab Research: Keeping your GitHub Actions and workflows secure: Preventing pwn requests.
  • - - - diff --git a/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql b/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql deleted file mode 100644 index 3f08f297c6a..00000000000 --- a/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql +++ /dev/null @@ -1,81 +0,0 @@ -/** - * @name Checkout of untrusted code in trusted context - * @description Workflows triggered on `pull_request_target` have read/write access to the base repository and access to secrets. - * By explicitly checking out and running the build script from a fork the untrusted code is running in an environment - * that is able to push to the base repository and to access secrets. - * @kind problem - * @problem.severity warning - * @precision low - * @id js/actions/pull-request-target - * @tags actions - * security - * experimental - * external/cwe/cwe-094 - */ - -import javascript -import semmle.javascript.Actions - -/** - * An action step that doesn't contain `actor` check in `if:` or - * the check requires manual analysis. - */ -class ProbableStep extends Actions::Step { - // some simplistic checks to eleminate likely false positives: - ProbableStep() { - // no if at all - not exists(this.getIf().getValue()) - or - // needs manual analysis if there is OR - this.getIf().getValue().matches("%||%") - or - // actor check means only the user is able to run it - not exists(this.getIf().getValue().regexpFind("\\bgithub\\s*\\.\\s*actor\\s*==", _, _)) - } -} - -/** - * An action job that doesn't contain `actor` check in `if:` or - * the check requires manual analysis. - */ -class ProbableJob extends Actions::Job { - // some simplistic checks to eleminate likely false positives: - ProbableJob() { - // no if at all - not exists(this.getIf().getValue()) - or - // needs manual analysis if there is OR - this.getIf().getValue().matches("%||%") - or - // actor check means only the user is able to run it - not exists(this.getIf().getValue().regexpFind("\\bgithub\\s*\\.\\s*actor\\s*==", _, _)) - } -} - -/** - * The `on: pull_request_target`. - */ -class ProbablePullRequestTarget extends Actions::On, YamlMappingLikeNode { - ProbablePullRequestTarget() { - // The `on:` is triggered on `pull_request_target` - exists(this.getNode("pull_request_target")) - } -} - -from - Actions::Ref ref, Actions::Uses uses, Actions::Step step, Actions::Job job, - ProbablePullRequestTarget pullRequestTarget -where - pullRequestTarget.getWorkflow() = job.getWorkflow() and - uses.getStep() = step and - ref.getWith().getStep() = step and - step.getJob() = job and - uses.getGitHubRepository() = "actions/checkout" and - ref.getValue() - .matches([ - "%github.event.pull_request.head.ref%", "%github.event.pull_request.head.sha%", - "%github.event.pull_request.number%", "%github.event.number%", "%github.head_ref%" - ]) and - step instanceof ProbableStep and - job instanceof ProbableJob -select step, "Potential unsafe checkout of untrusted pull request on 'pull_request_target'." diff --git a/javascript/ql/src/experimental/Security/CWE-094/examples/comment_pr.yml b/javascript/ql/src/experimental/Security/CWE-094/examples/comment_pr.yml deleted file mode 100644 index e496b1449a0..00000000000 --- a/javascript/ql/src/experimental/Security/CWE-094/examples/comment_pr.yml +++ /dev/null @@ -1,52 +0,0 @@ -name: Comment on the pull request - -# read-write repo token -# access to secrets -on: - workflow_run: - workflows: ["Receive PR"] - types: - - completed - -jobs: - upload: - runs-on: ubuntu-latest - if: > - ${{ github.event.workflow_run.event == 'pull_request' && - github.event.workflow_run.conclusion == 'success' }} - steps: - - name: 'Download artifact' - uses: actions/github-script@v3.1.0 - with: - script: | - var artifacts = await github.actions.listWorkflowRunArtifacts({ - owner: context.repo.owner, - repo: context.repo.repo, - run_id: ${{github.event.workflow_run.id }}, - }); - var matchArtifact = artifacts.data.artifacts.filter((artifact) => { - return artifact.name == "pr" - })[0]; - var download = await github.actions.downloadArtifact({ - owner: context.repo.owner, - repo: context.repo.repo, - artifact_id: matchArtifact.id, - archive_format: 'zip', - }); - var fs = require('fs'); - fs.writeFileSync('${{github.workspace}}/pr.zip', Buffer.from(download.data)); - - run: unzip pr.zip - - - name: 'Comment on PR' - uses: actions/github-script@v3 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - var fs = require('fs'); - var issue_number = Number(fs.readFileSync('./NR')); - await github.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: issue_number, - body: 'Everything is OK. Thank you for the PR!' - }); \ No newline at end of file diff --git a/javascript/ql/src/experimental/Security/CWE-094/examples/pull_request_target_bad.yml b/javascript/ql/src/experimental/Security/CWE-094/examples/pull_request_target_bad.yml deleted file mode 100644 index fb9f0699a42..00000000000 --- a/javascript/ql/src/experimental/Security/CWE-094/examples/pull_request_target_bad.yml +++ /dev/null @@ -1,25 +0,0 @@ -on: - pull_request_target - -jobs: - build: - name: Build and test - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.sha }} - - - uses: actions/setup-node@v1 - - run: | - npm install - npm build - - - uses: completely/fakeaction@v2 - with: - arg1: ${{ secrets.supersecret }} - - - uses: fakerepo/comment-on-pr@v1 - with: - message: | - Thank you! \ No newline at end of file diff --git a/javascript/ql/src/experimental/Security/CWE-094/examples/receive_pr.yml b/javascript/ql/src/experimental/Security/CWE-094/examples/receive_pr.yml deleted file mode 100644 index 7104bce8bf3..00000000000 --- a/javascript/ql/src/experimental/Security/CWE-094/examples/receive_pr.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Receive PR - -# read-only repo token -# no access to secrets -on: - pull_request: - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - # imitation of a build process - - name: Build - run: /bin/bash ./build.sh - - - name: Save PR number - run: | - mkdir -p ./pr - echo ${{ github.event.number }} > ./pr/NR - - uses: actions/upload-artifact@v2 - with: - name: pr - path: pr/ \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_job.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_job.yml deleted file mode 100644 index cf713f5473d..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_job.yml +++ /dev/null @@ -1,38 +0,0 @@ -on: - pull_request_target: - -jobs: - job1: - if: contains(github.event.issue.labels.*.name, 'ok') - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} - job2: - if: github.event.label.name == 'ok' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} - job3: - if: github.actor == 'ok' - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} - job4: - if: github.actor == 'ok' || true - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} - job5: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_step.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_step.yml deleted file mode 100644 index 08a3757392b..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_if_step.yml +++ /dev/null @@ -1,31 +0,0 @@ -on: - pull_request_target: - -jobs: - job1: - runs-on: ubuntu-latest - steps: - - - uses: actions/checkout@v2 - if: contains(github.event.issue.labels.*.name, 'ok') - with: - ref: ${{ github.event.pull_request.head.ref }} - - - uses: actions/checkout@v2 - if: github.event.label.name == 'ok' - with: - ref: ${{ github.event.pull_request.head.ref }} - - - uses: actions/checkout@v2 - if: github.actor == 'ok' - with: - ref: ${{ github.event.pull_request.head.ref }} - - - uses: actions/checkout@v2 - if: github.actor == 'ok' || true - with: - ref: ${{ github.event.pull_request.head.ref }} - - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only.yml deleted file mode 100644 index 1b87798b89c..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only.yml +++ /dev/null @@ -1,12 +0,0 @@ -on: - pull_request_target: - types: [labeled] - push: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only_mapping.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only_mapping.yml deleted file mode 100644 index 076d827a9b9..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_label_only_mapping.yml +++ /dev/null @@ -1,13 +0,0 @@ -on: - pull_request_target: - types: - labeled: - push: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_mapping.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_mapping.yml deleted file mode 100644 index 5b2b594890b..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_mapping.yml +++ /dev/null @@ -1,15 +0,0 @@ -on: - pull_request_target: - types: - labeled: - opened: - closed: - push: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_sequence.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_sequence.yml deleted file mode 100644 index 9677bd35360..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_labels_sequence.yml +++ /dev/null @@ -1,12 +0,0 @@ -on: - pull_request_target: - types: [labeled, opened] - push: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_mapping.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_mapping.yml deleted file mode 100644 index c3875fde7cd..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_mapping.yml +++ /dev/null @@ -1,10 +0,0 @@ -on: - pull_request_target: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_master.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_master.yml deleted file mode 100644 index feeec7bf1f3..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_master.yml +++ /dev/null @@ -1,10 +0,0 @@ -on: - pull_request_target: - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: master \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_run.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_run.yml deleted file mode 100644 index 33bb9ba889b..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_run.yml +++ /dev/null @@ -1,11 +0,0 @@ -on: pull_request_target - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} - - - run: make \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_sequence.yml b/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_sequence.yml deleted file mode 100644 index 5e0d2a8ee27..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/.github/workflows/pull_request_target_sequence.yml +++ /dev/null @@ -1,9 +0,0 @@ -on: [pull_request_target, push] - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ github.event.pull_request.head.ref }} \ No newline at end of file diff --git a/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.expected b/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.expected deleted file mode 100644 index 127ced2bb97..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.expected +++ /dev/null @@ -1,15 +0,0 @@ -| .github/workflows/pull_request_target_if_job.yml:9:7:12:2 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_job.yml:16:7:19:2 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_job.yml:30:7:33:2 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_job.yml:36:7:38:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_step.yml:9:7:14:4 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_step.yml:14:7:19:4 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_step.yml:24:7:29:4 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_if_step.yml:29:7:31:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_label_only.yml:10:7:12:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_label_only_mapping.yml:11:7:13:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_labels_mapping.yml:13:7:15:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_labels_sequence.yml:10:7:12:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_mapping.yml:8:7:10:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_run.yml:7:7:11:4 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | -| .github/workflows/pull_request_target_sequence.yml:7:7:9:54 | uses: a ... kout@v2 | Potential unsafe checkout of untrusted pull request on 'pull_request_target'. | diff --git a/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.qlref b/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.qlref deleted file mode 100644 index bdf753c1f4a..00000000000 --- a/javascript/ql/test/experimental/Security/CWE-094/UntrustedCheckout.qlref +++ /dev/null @@ -1 +0,0 @@ -experimental/Security/CWE-094/UntrustedCheckout.ql From 5162d2cf5284d91f086bc89badb9df14b00d8287 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 14:38:15 +0200 Subject: [PATCH 213/340] Rust: fix DB upgrade/downgrade scripts --- .../e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties | 2 +- .../e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties index 597a1a8f384..18a103d870f 100644 --- a/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties +++ b/rust/downgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties @@ -2,4 +2,4 @@ description: Remove `const_generic_param_lists` and `const_where_clauses` compatibility: backwards const_generic_param_lists.rel: delete -const_where_clauses.rel: delete \ No newline at end of file +const_where_clauses.rel: delete diff --git a/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties index 42211be80b1..140ad714d12 100644 --- a/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties +++ b/rust/ql/lib/upgrades/e019447231cd93c23ecd173ea5f82e7f9ff54ece/upgrade.properties @@ -1,2 +1,2 @@ description: Add `const_generic_param_lists` and `const_where_clauses` -compatibility: backwards \ No newline at end of file +compatibility: backwards From 9dcb61e771814a03d3a072cbc92f7fbe04615838 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:39:19 +0200 Subject: [PATCH 214/340] JS: Remove js/actions/actions-artifact-leak Superseded by actions/secrets-in-artifacts --- .../CWE-312/ActionsArtifactLeak.qhelp | 30 ----- .../Security/CWE-312/ActionsArtifactLeak.ql | 112 ------------------ .../examples/actions-artifact-leak-fixed.yml | 14 --- .../examples/actions-artifact-leak.yml | 13 -- .../CWE-312/.github/workflows/test.yml | 87 -------------- .../CWE-312/ActionsArtifactLeak.expected | 5 - .../CWE-312/ActionsArtifactLeak.qlref | 1 - 7 files changed, 262 deletions(-) delete mode 100644 javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.qhelp delete mode 100644 javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql delete mode 100644 javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak-fixed.yml delete mode 100644 javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-312/.github/workflows/test.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.expected delete mode 100644 javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.qlref diff --git a/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.qhelp b/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.qhelp deleted file mode 100644 index 7ec9c1fe777..00000000000 --- a/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.qhelp +++ /dev/null @@ -1,30 +0,0 @@ - - - -

    - Sensitive information included in a GitHub Actions artifact can allow an attacker to access - the sensitive information if the artifact is published. -

    -
    - - -

    - Only store information that is meant to be publicly available in a GitHub Actions artifact. -

    -
    - - -

    - The following example uses actions/checkout to checkout code which stores the GITHUB_TOKEN in the `.git/config` file - and then stores the contents of the `.git` repository into the artifact: -

    - -

    - The issue has been fixed below, where the actions/upload-artifact uses a version (v4+) which does not include hidden files or - directories into the artifact. -

    - -
    -
    diff --git a/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql b/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql deleted file mode 100644 index 3f001c5e456..00000000000 --- a/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql +++ /dev/null @@ -1,112 +0,0 @@ -/** - * @name Storage of sensitive information in GitHub Actions artifact - * @description Including sensitive information in a GitHub Actions artifact can - * expose it to an attacker. - * @kind problem - * @problem.severity error - * @security-severity 7.5 - * @precision high - * @id js/actions/actions-artifact-leak - * @tags actions - * security - * external/cwe/cwe-312 - * external/cwe/cwe-315 - * external/cwe/cwe-359 - */ - -import javascript -import semmle.javascript.Actions - -/** - * A step that uses `actions/checkout` action. - */ -class ActionsCheckoutStep extends Actions::Step { - ActionsCheckoutStep() { this.getUses().getGitHubRepository() = "actions/checkout" } -} - -/** - * A `with:`/`persist-credentials` field sibling to `uses: actions/checkout`. - */ -class ActionsCheckoutWithPersistCredentials extends YamlNode, YamlScalar { - ActionsCheckoutStep step; - - ActionsCheckoutWithPersistCredentials() { - step.lookup("with").(YamlMapping).lookup("persist-credentials") = this - } - - /** Gets the step this field belongs to. */ - ActionsCheckoutStep getStep() { result = step } -} - -/** - * A `with:`/`path` field sibling to `uses: actions/checkout`. - */ -class ActionsCheckoutWithPath extends YamlNode, YamlString { - ActionsCheckoutStep step; - - ActionsCheckoutWithPath() { step.lookup("with").(YamlMapping).lookup("path") = this } - - /** Gets the step this field belongs to. */ - ActionsCheckoutStep getStep() { result = step } -} - -/** - * A step that uses `actions/upload-artifact` action. - */ -class ActionsUploadArtifactStep extends Actions::Step { - ActionsUploadArtifactStep() { this.getUses().getGitHubRepository() = "actions/upload-artifact" } -} - -/** - * A `with:`/`path` field sibling to `uses: actions/upload-artifact`. - */ -class ActionsUploadArtifactWithPath extends YamlNode, YamlString { - ActionsUploadArtifactStep step; - - ActionsUploadArtifactWithPath() { step.lookup("with").(YamlMapping).lookup("path") = this } - - /** Gets the step this field belongs to. */ - ActionsUploadArtifactStep getStep() { result = step } -} - -from ActionsCheckoutStep checkout, ActionsUploadArtifactStep upload, Actions::Job job, int i, int j -where - checkout.getJob() = job and - upload.getJob() = job and - job.getStep(i) = checkout and - job.getStep(j) = upload and - j = i + 1 and - upload.getUses().getVersion() = - [ - "v4.3.6", "834a144ee995460fba8ed112a2fc961b36a5ec5a", // - "v4.3.5", "89ef406dd8d7e03cfd12d9e0a4a378f454709029", // - "v4.3.4", "0b2256b8c012f0828dc542b3febcab082c67f72b", // - "v4.3.3", "65462800fd760344b1a7b4382951275a0abb4808", // - "v4.3.2", "1746f4ab65b179e0ea60a494b83293b640dd5bba", // - "v4.3.1", "5d5d22a31266ced268874388b861e4b58bb5c2f3", // - "v4.3.0", "26f96dfa697d77e81fd5907df203aa23a56210a8", // - "v4.2.0", "694cdabd8bdb0f10b2cea11669e1bf5453eed0a6", // - "v4.1.0", "1eb3cb2b3e0f29609092a73eb033bb759a334595", // - "v4.0.0", "c7d193f32edcb7bfad88892161225aeda64e9392", // - ] and - ( - not exists(ActionsCheckoutWithPersistCredentials persist | persist.getStep() = checkout) - or - exists(ActionsCheckoutWithPersistCredentials persist | - persist.getStep() = checkout and - persist.getValue() = "true" - ) - ) and - ( - not exists(ActionsCheckoutWithPath path | path.getStep() = checkout) and - exists(ActionsUploadArtifactWithPath path | - path.getStep() = upload and path.getValue() = [".", "*"] - ) - or - exists(ActionsCheckoutWithPath checkout_path, ActionsUploadArtifactWithPath upload_path | - checkout_path.getValue() + ["", "/*"] = upload_path.getValue() and - checkout_path.getStep() = checkout and - upload_path.getStep() = upload - ) - ) -select upload, "A secret may be exposed in an artifact." diff --git a/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak-fixed.yml b/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak-fixed.yml deleted file mode 100644 index 9f716584a9b..00000000000 --- a/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak-fixed.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: secrets-in-artifacts -on: - pull_request: -jobs: - a-job: # NOT VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Upload artifact" - uses: actions/upload-artifact@v4 - with: - name: file - path: . - diff --git a/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak.yml b/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak.yml deleted file mode 100644 index 9006855e997..00000000000 --- a/javascript/ql/src/Security/CWE-312/examples/actions-artifact-leak.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: secrets-in-artifacts -on: - pull_request: -jobs: - a-job: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: . diff --git a/javascript/ql/test/query-tests/Security/CWE-312/.github/workflows/test.yml b/javascript/ql/test/query-tests/Security/CWE-312/.github/workflows/test.yml deleted file mode 100644 index 473d5998695..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-312/.github/workflows/test.yml +++ /dev/null @@ -1,87 +0,0 @@ -name: secrets-in-artifacts -on: - pull_request: -jobs: - test1: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: . - test2: # NOT VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Upload artifact" - uses: actions/upload-artifact@v4 - with: - name: file - path: . - test3: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: "*" - test4: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - path: foo - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: foo - test5: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - path: foo - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: foo/* - test6: # NOT VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - path: pr - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: foo - test7: # NOT VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: false - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: . - test8: # VULNERABLE - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - with: - persist-credentials: true - - name: "Upload artifact" - uses: actions/upload-artifact@1746f4ab65b179e0ea60a494b83293b640dd5bba # v4.3.2 - with: - name: file - path: . - diff --git a/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.expected b/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.expected deleted file mode 100644 index 575ddda89a4..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.expected +++ /dev/null @@ -1,5 +0,0 @@ -| .github/workflows/test.yml:9:9:14:2 | name: " ... tifact" | A secret may be exposed in an artifact. | -| .github/workflows/test.yml:27:9:32:2 | name: " ... tifact" | A secret may be exposed in an artifact. | -| .github/workflows/test.yml:38:9:43:2 | name: " ... tifact" | A secret may be exposed in an artifact. | -| .github/workflows/test.yml:49:9:54:2 | name: " ... tifact" | A secret may be exposed in an artifact. | -| .github/workflows/test.yml:82:9:86:18 | name: " ... tifact" | A secret may be exposed in an artifact. | diff --git a/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.qlref b/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.qlref deleted file mode 100644 index 79d8f4aea27..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-312/ActionsArtifactLeak.qlref +++ /dev/null @@ -1 +0,0 @@ -query: Security/CWE-312/ActionsArtifactLeak.ql From 16b9bec015dffb9a0a14f34489b549c401c02ad8 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 14:12:39 +0200 Subject: [PATCH 215/340] Rust: regenerate models after rust-analyzer update --- rust/ql/lib/ext/generated/actix-web.model.yml | 231 +++++++++++++++++- rust/ql/lib/ext/generated/clap.model.yml | 28 ++- rust/ql/lib/ext/generated/hyper.model.yml | 14 +- rust/ql/lib/ext/generated/libc.model.yml | 10 + rust/ql/lib/ext/generated/log.model.yml | 6 + rust/ql/lib/ext/generated/memchr.model.yml | 19 +- rust/ql/lib/ext/generated/once_cell.model.yml | 5 +- rust/ql/lib/ext/generated/reqwest.model.yml | 21 ++ rust/ql/lib/ext/generated/rocket.model.yml | 44 +++- rust/ql/lib/ext/generated/rust.model.yml | 168 +++++++++---- rust/ql/lib/ext/generated/serde.model.yml | 5 + rust/ql/lib/ext/generated/tokio.model.yml | 9 + 12 files changed, 483 insertions(+), 77 deletions(-) diff --git a/rust/ql/lib/ext/generated/actix-web.model.yml b/rust/ql/lib/ext/generated/actix-web.model.yml index ea9da767d9c..e925255eb83 100644 --- a/rust/ql/lib/ext/generated/actix-web.model.yml +++ b/rust/ql/lib/ext/generated/actix-web.model.yml @@ -26,6 +26,8 @@ extensions: - ["::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"] @@ -57,6 +59,7 @@ extensions: - ["::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"] @@ -119,6 +122,11 @@ extensions: - ["::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]", "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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::error::DispatchError::Parse(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::error::DispatchError::Service(0)]", "value", "dfc-generated"] - ["::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"] @@ -149,8 +157,7 @@ extensions: - ["::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"] - ["::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].Field[actix_http::h1::service::H1Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new_service", "Argument[self].Field[actix_http::h1::service::H1Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::new_service", "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"] @@ -172,8 +179,7 @@ extensions: - ["::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].Field[actix_http::h2::service::H2Service::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new_service", "Argument[self].Field[actix_http::h2::service::H2Service::on_connect_ext]", "ReturnValue.Reference", "value", "dfc-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"] @@ -195,6 +201,8 @@ extensions: - ["::duration", "Argument[self].Field[actix_http::keep_alive::KeepAlive::Timeout(0)].Reference", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-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", "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"] @@ -271,8 +279,7 @@ 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].Field[actix_http::service::HttpService::on_connect_ext].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::new_service", "Argument[self].Field[actix_http::service::HttpService::on_connect_ext]", "ReturnValue.Reference", "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"] @@ -285,12 +292,21 @@ extensions: - ["::project_ref", "Argument[self].Field[core::pin::Pin::__pointer].Field[actix_http::service::HttpServiceHandlerResponse::state]", "ReturnValue.Field[core::pin::Pin::__pointer]", "value", "dfc-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"] + - ["::read_buf_slice", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_buf_slice", "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"] + - ["::err", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::read_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::write_buf", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_http::ws::ProtocolError::ContinuationFragment(0)]", "value", "dfc-generated"] + - ["::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"] - ["::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"] @@ -316,9 +332,43 @@ extensions: - ["::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"] - ["::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"] - ["::surl", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::url", "Argument[0]", "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"] @@ -332,6 +382,10 @@ 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"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -341,11 +395,19 @@ 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"] - ["::into_inner", "Argument[self].Field[actix_multipart::form::json::Json(0)]", "ReturnValue", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -360,6 +422,10 @@ extensions: - ["::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"] - ["::into_inner", "Argument[self].Field[actix_multipart::form::text::Text(0)]", "ReturnValue", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -378,6 +444,7 @@ extensions: - ["::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"] - ["::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"] @@ -389,9 +456,27 @@ extensions: - ["::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"] - ["::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"] - ["::client_request_timeout", "Argument[0]", "Argument[self].Field[actix_test::TestServerConfig::client_request_timeout]", "value", "dfc-generated"] @@ -454,6 +539,8 @@ extensions: - ["::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"] @@ -475,10 +562,18 @@ extensions: - ["::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].Field[0].Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::get_ref", "Argument[self].Field[actix_web::data::Data(0)].Reference", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::get_ref", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::into_inner", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[actix_web::data::Data(0)]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::QueryPayloadError::Deserialize(0)]", "value", "dfc-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[actix_web::error::UrlGenerationError::ParseError(0)]", "value", "dfc-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"] - ["::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]", "value", "dfc-generated"] @@ -499,11 +594,56 @@ extensions: - ["::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"] + - ["::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"] - ["::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_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"] - ["::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"] - ["::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"] @@ -512,6 +652,26 @@ extensions: - ["::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"] - ["::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"] - ["::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"] - ["::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"] @@ -750,12 +910,14 @@ extensions: - ["::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"] - ["::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"] @@ -777,6 +939,7 @@ extensions: - ["::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"] @@ -792,6 +955,13 @@ 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"] + - ["::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"] - ["::into_inner", "Argument[self].Field[actix_web::types::path::Path(0)]", "ReturnValue", "value", "dfc-generated"] - ["::error_handler", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -834,6 +1004,7 @@ extensions: - ["::protocols", "Argument[self]", "ReturnValue", "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"] - ["::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"] - ["::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"] @@ -873,7 +1044,18 @@ 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"] + - ["::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_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"] + - ["::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"] @@ -937,6 +1119,24 @@ extensions: - ["::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"] + - ["::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"] + - ["::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"] + - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::InvalidUrl::HttpError(0)]", "value", "dfc-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"] + - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Connect(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::H2(0)]", "value", "dfc-generated"] + - ["::from", "Argument[0]", "ReturnValue.Field[awc::client::error::SendRequestError::Http(0)]", "value", "dfc-generated"] + - ["::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"] @@ -951,7 +1151,17 @@ extensions: - ["::into_tunnel_response", "Argument[self].Field[awc::connect::ConnectResponse::Tunnel(1)]", "ReturnValue.Field[1]", "value", "dfc-generated"] - ["::call", "Argument[0]", "ReturnValue.Field[awc::connect::ConnectRequestFuture::Connection::req].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::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"] + - ["::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"] - ["::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"] @@ -1037,6 +1247,10 @@ extensions: - ["::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"] - ["::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"] @@ -1084,6 +1298,7 @@ extensions: - ["::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"] diff --git a/rust/ql/lib/ext/generated/clap.model.yml b/rust/ql/lib/ext/generated/clap.model.yml index cd563c5420b..376b4ca530b 100644 --- a/rust/ql/lib/ext/generated/clap.model.yml +++ b/rust/ql/lib/ext/generated/clap.model.yml @@ -8,6 +8,7 @@ extensions: - ["<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"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::action", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::alias", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -98,6 +99,7 @@ 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"] - ["::arg", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::args", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::conflicts_with", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -115,6 +117,7 @@ extensions: - ["::requires", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::requires_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::bitor", "Argument[self]", "ReturnValue", "value", "dfc-generated"] + - ["::from", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] - ["::about", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::add", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::after_help", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -215,6 +218,7 @@ extensions: - ["::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"] - ["::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"] @@ -231,13 +235,12 @@ extensions: - ["::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"] - - ["::as_ref", "Argument[self].Reference.Reference", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[0]", "ReturnValue", "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"] - ["::into_inner", "Argument[self].Field[clap_builder::builder::str::Str::name]", "ReturnValue", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference.Reference", "ReturnValue.Field[clap_builder::builder::styled_str::StyledStr(0)]", "value", "dfc-generated"] - - ["::from", "Argument[0].Reference", "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"] @@ -370,6 +373,7 @@ extensions: - ["::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"] - ["::file_name", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -421,6 +425,7 @@ extensions: - ["::value_or_abort", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] - ["::action", "Argument[self]", "Argument[0]", "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"] - ["::from_args_field", "Argument[1]", "ReturnValue.Field[core::result::Result::Ok(0)].Field[clap_derive::item::Item::casing]", "value", "dfc-generated"] @@ -435,7 +440,10 @@ extensions: - ["::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"] - ["::value_parser", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::args", "Argument[self].Field[clap_derive::item::Method::args]", "ReturnValue.Reference", "value", "dfc-generated"] @@ -467,12 +475,24 @@ extensions: - ["::name", "Argument[self].Field[0]", "ReturnValue", "value", "dfc-generated"] - ["::name", "Argument[self].Field[complex::Args(0)]", "ReturnValue", "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"] - ["::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"] - ["::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_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_derive::utils::ty::inner_type", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - addsTo: pack: codeql/rust-all @@ -539,7 +559,9 @@ extensions: - ["::value_parser", "Argument[self]", "pointer-access", "df-generated"] - ["::generate_to", "Argument[self]", "path-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", "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"] diff --git a/rust/ql/lib/ext/generated/hyper.model.yml b/rust/ql/lib/ext/generated/hyper.model.yml index ceb116fa645..306bf248543 100644 --- a/rust/ql/lib/ext/generated/hyper.model.yml +++ b/rust/ql/lib/ext/generated/hyper.model.yml @@ -82,6 +82,7 @@ extensions: - ["::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"] - ["::http09_responses", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -114,6 +115,7 @@ extensions: - ["::adaptive_window", "Argument[0]", "ReturnValue.Field[hyper::client::conn::http2::Builder::h2_builder].Field[hyper::proto::h2::client::Config::adaptive_window]", "value", "dfc-generated"] - ["::adaptive_window", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::handshake", "Argument[0]", "ReturnValue", "value", "dfc-generated"] + - ["::handshake", "Argument[self].Reference", "ReturnValue", "value", "dfc-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"] @@ -137,9 +139,7 @@ extensions: - ["::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"] - - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch].Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch].Reference", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::client::conn::http2::SendRequest::dispatch]", "ReturnValue.Field[hyper::client::conn::http2::SendRequest::dispatch]", "value", "dfc-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"] @@ -148,9 +148,7 @@ extensions: - ["::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"] - ["::into_error", "Argument[self].Field[hyper::client::dispatch::TrySendError::error]", "ReturnValue", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner].Field[tokio::sync::mpsc::unbounded::UnboundedSender::chan]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner].Reference", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "value", "dfc-generated"] - - ["::clone", "Argument[self].Field[hyper::client::dispatch::UnboundedSender::inner]", "ReturnValue.Field[hyper::client::dispatch::UnboundedSender::inner]", "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"] - ["::new", "Argument[0]", "ReturnValue.Field[hyper::common::io::compat::Compat(0)]", "value", "dfc-generated"] - ["::into_inner", "Argument[self].Field[hyper::common::io::rewind::Rewind::inner]", "ReturnValue.Field[0]", "value", "dfc-generated"] @@ -170,6 +168,8 @@ extensions: - ["::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"] - ["::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"] - ["::into_inner", "Argument[self].Field[hyper::proto::h1::conn::Conn::io].Field[hyper::proto::h1::io::Buffered::io]", "ReturnValue.Field[0]", "value", "dfc-generated"] @@ -324,6 +324,8 @@ extensions: - ["::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"] diff --git a/rust/ql/lib/ext/generated/libc.model.yml b/rust/ql/lib/ext/generated/libc.model.yml index b264de98fa9..352eb1338a8 100644 --- a/rust/ql/lib/ext/generated/libc.model.yml +++ b/rust/ql/lib/ext/generated/libc.model.yml @@ -4,8 +4,18 @@ 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"] - ["::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"] - ["::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"] diff --git a/rust/ql/lib/ext/generated/log.model.yml b/rust/ql/lib/ext/generated/log.model.yml index bc523f01214..4b8a9ebfc1a 100644 --- a/rust/ql/lib/ext/generated/log.model.yml +++ b/rust/ql/lib/ext/generated/log.model.yml @@ -11,6 +11,8 @@ extensions: - ["::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"] - ["::level", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -30,6 +32,8 @@ extensions: - ["::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"] - ["::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"] - ["::file", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::file_static", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::key_values", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -55,6 +59,8 @@ extensions: - ["::as_str", "Argument[self].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"] - addsTo: pack: codeql/rust-all extensible: sinkModel diff --git a/rust/ql/lib/ext/generated/memchr.model.yml b/rust/ql/lib/ext/generated/memchr.model.yml index a0600551e01..4555f3ffe48 100644 --- a/rust/ql/lib/ext/generated/memchr.model.yml +++ b/rust/ql/lib/ext/generated/memchr.model.yml @@ -113,24 +113,37 @@ extensions: - ["::new", "Argument[2]", "ReturnValue.Field[memchr::memchr::Memchr3::needle3]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[memchr::memchr::Memchr::needle1]", "value", "dfc-generated"] - ["::next", "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"] + - ["::into_owned", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::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"] - ["::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"] - ["::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"] - ["::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"] + - ["::clone", "Argument[self].Reference", "ReturnValue", "value", "dfc-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"] - ["::all_zeros_except_least_significant", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::and", "Argument[0]", "ReturnValue", "taint", "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 aea0b46936b..ef8ffdc2228 100644 --- a/rust/ql/lib/ext/generated/once_cell.model.yml +++ b/rust/ql/lib/ext/generated/once_cell.model.yml @@ -9,8 +9,8 @@ extensions: - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-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", "taint", "df-generated"] - - ["::get_or_try_init", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] + - ["::get_or_init", "Argument[0].ReturnValue", "ReturnValue.Reference", "value", "dfc-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"] - ["::set", "Argument[0]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-generated"] @@ -22,4 +22,3 @@ extensions: - ["::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/reqwest.model.yml b/rust/ql/lib/ext/generated/reqwest.model.yml index d262da19765..109a35a39e0 100644 --- a/rust/ql/lib/ext/generated/reqwest.model.yml +++ b/rust/ql/lib/ext/generated/reqwest.model.yml @@ -23,6 +23,13 @@ extensions: - ["::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"] - ["::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"] @@ -147,6 +154,8 @@ extensions: - ["::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"] - ["::part", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -174,6 +183,8 @@ extensions: - ["::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"] @@ -210,6 +221,13 @@ extensions: - ["::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"] - ["::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"] @@ -359,6 +377,7 @@ extensions: - ["::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"] - ["::new", "Argument[0]", "ReturnValue.Field[reqwest::dns::resolve::DnsResolverWithOverrides::dns_resolver]", "value", "dfc-generated"] @@ -389,6 +408,8 @@ extensions: - ["::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[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"] - ["::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"] diff --git a/rust/ql/lib/ext/generated/rocket.model.yml b/rust/ql/lib/ext/generated/rocket.model.yml index 6f6a60edd8d..d1729726763 100644 --- a/rust/ql/lib/ext/generated/rocket.model.yml +++ b/rust/ql/lib/ext/generated/rocket.model.yml @@ -52,7 +52,6 @@ extensions: - ["::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_request", "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"] @@ -99,6 +98,26 @@ extensions: - ["::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"] @@ -111,6 +130,7 @@ extensions: - ["::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"] @@ -120,6 +140,8 @@ extensions: - ["::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"] @@ -253,10 +275,10 @@ extensions: - ["::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", "df-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", "df-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"] @@ -281,6 +303,8 @@ extensions: - ["::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"] @@ -461,13 +485,16 @@ extensions: - ["::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"] - - ["::set_streamed_body", "Argument[0]", "Argument[self]", "taint", "df-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"] @@ -699,6 +726,8 @@ extensions: - ["::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"] @@ -778,7 +807,6 @@ extensions: - ["::scheme", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::with_query_fragment_of", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::count", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next", "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"] @@ -836,6 +864,11 @@ extensions: - ["::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"] @@ -868,7 +901,6 @@ extensions: - ["::dispatch", "Argument[1]", "log-injection", "df-generated"] - ["::handle_error", "Argument[0]", "log-injection", "df-generated"] - ["::matches", "Argument[0]", "log-injection", "df-generated"] - - ["::query", "Argument[self]", "pointer-access", "df-generated"] - ["::from", "Argument[0]", "pointer-access", "df-generated"] - ["::into_owned", "Argument[self]", "pointer-access", "df-generated"] - ["::render", "Argument[self]", "log-injection", "df-generated"] diff --git a/rust/ql/lib/ext/generated/rust.model.yml b/rust/ql/lib/ext/generated/rust.model.yml index 90d4a9856f6..9c39cc54595 100644 --- a/rust/ql/lib/ext/generated/rust.model.yml +++ b/rust/ql/lib/ext/generated/rust.model.yml @@ -8,6 +8,7 @@ extensions: - ["::clone", "Argument[self].Reference.Field[alloc::borrow::Cow::Borrowed(0)]", "ReturnValue.Field[alloc::borrow::Cow::Borrowed(0)]", "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"] @@ -19,6 +20,7 @@ extensions: - ["::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"] @@ -26,8 +28,16 @@ extensions: - ["::from", "Argument[0]", "ReturnValue.Reference", "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"] + - ["::read_line", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_until", "Argument[self]", "Argument[1]", "taint", "df-generated"] + - ["::read", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_exact", "Argument[self]", "Argument[0]", "taint", "df-generated"] + - ["::read_to_end", "Argument[self]", "Argument[0]", "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"] @@ -35,15 +45,14 @@ extensions: - ["::downcast", "Argument[self]", "ReturnValue.Field[core::result::Result::Err(0)]", "value", "dfc-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].Reference.Reference", "ReturnValue.Reference", "value", "dfc-generated"] - - ["::into_inner", "Argument[0].Reference", "ReturnValue", "value", "dfc-generated"] + - ["::into_inner", "Argument[0]", "ReturnValue", "taint", "df-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", "taint", "df-generated"] - - ["::into_raw_with_allocator", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::into_raw", "Argument[0]", "ReturnValue.Reference", "value", "dfc-generated"] + - ["::into_raw_with_allocator", "Argument[0]", "ReturnValue.Field[0].Reference", "value", "dfc-generated"] - ["::into_unique", "Argument[0]", "ReturnValue", "taint", "df-generated"] - - ["::leak", "Argument[0]", "ReturnValue", "taint", "df-generated"] + - ["::leak", "Argument[0]", "ReturnValue.Reference", "value", "dfc-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"] @@ -68,6 +77,8 @@ extensions: - ["::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"] - ["::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"] - ["::from", "Argument[0]", "ReturnValue.Field[alloc::collections::binary_heap::BinaryHeap::data]", "value", "dfc-generated"] @@ -84,24 +95,27 @@ extensions: - ["::new", "Argument[0].Field[core::ptr::unique::Unique::pointer]", "ReturnValue.Field[1].Field[alloc::collections::btree::borrow::DormantMutRef::ptr]", "value", "dfc-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"] - ["::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_inner", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::first_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_key_value", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::get_mut", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::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]", "ReturnValue", "taint", "df-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"] - ["::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]", "ReturnValue", "taint", "df-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"] - ["::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"] @@ -110,9 +124,9 @@ extensions: - ["::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"] - ["::with_mutable_key", "Argument[self].Field[alloc::collections::btree::map::CursorMut::inner]", "ReturnValue", "value", "dfc-generated"] - - ["::peek_next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::peek_prev", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::peek", "Argument[self]", "ReturnValue", "taint", "df-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"] @@ -258,7 +272,7 @@ extensions: - ["::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]", "ReturnValue", "taint", "df-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"] - ["::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"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::clone", "Argument[self]", "ReturnValue", "taint", "df-generated"] @@ -302,8 +316,10 @@ extensions: - ["::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"] @@ -334,6 +350,8 @@ extensions: - ["::len", "Argument[self].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"] - ["::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"] @@ -385,6 +403,7 @@ extensions: - ["::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_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"] - ["::into_bytes", "Argument[self].Field[alloc::ffi::c_str::FromVecWithNulError::bytes]", "ReturnValue", "value", "dfc-generated"] @@ -403,11 +422,19 @@ extensions: - ["::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"] - ["::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"] - ["::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"] - ["::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"] @@ -415,12 +442,24 @@ extensions: - ["::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"] @@ -443,6 +482,7 @@ extensions: - ["::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"] - ["::as_mut", "Argument[self]", "ReturnValue", "value", "dfc-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].Field[alloc::string::String::vec].Reference", "ReturnValue.Field[alloc::string::String::vec]", "value", "dfc-generated"] @@ -466,13 +506,21 @@ extensions: - ["::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"] - ["::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"] - ["::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"] - ["::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"] @@ -534,7 +582,7 @@ extensions: - ["::current_len", "Argument[self].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]", "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"] - ["::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"] @@ -559,7 +607,7 @@ extensions: - ["::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]", "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"] - ["::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"] @@ -2154,15 +2202,19 @@ extensions: - ["::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"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::find", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::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"] @@ -2226,28 +2278,32 @@ extensions: - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-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"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] + - ["::next_back", "Argument[self].Field[core::iter::adapters::flatten::FlattenCompat::frontiter].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::fold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-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]", "ReturnValue", "taint", "df-generated"] - - ["::next", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::next_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::nth_back", "Argument[self]", "ReturnValue", "taint", "df-generated"] - - ["::rfind", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::try_rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::rfold", "Argument[0]", "ReturnValue", "value", "dfc-generated"] @@ -2790,7 +2846,6 @@ extensions: - ["::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"] - - ["::clone", "Argument[self].Field[core::option::Iter::inner]", "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"] - ["::from", "Argument[0].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Field[core::option::Option::Some(0)].Reference", "value", "dfc-generated"] @@ -2808,12 +2863,12 @@ extensions: - ["::expect", "Argument[self].Field[core::option::Option::Some(0)]", "ReturnValue", "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].Reference.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[0].ReturnValue", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - - ["::get_or_insert_with", "Argument[0]", "Argument[self].Reference.Field[core::option::Option::Some(0)]", "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].Reference.Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::inspect", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::is_none_or", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-generated"] @@ -4767,7 +4822,8 @@ extensions: - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::into_token_stream", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::expand_expr", "Argument[self]", "ReturnValue", "taint", "df-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"] - ["::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"] @@ -4828,7 +4884,7 @@ extensions: - ["::warning", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::mark", "Argument[0]", "ReturnValue", "value", "dfc-generated"] - ["::unmark", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - - ["::sp", "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"] - ["::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"] @@ -4881,7 +4937,11 @@ extensions: - ["::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"] - ["::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[0]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0]", "ReturnValue.Field[std::error::Report::error]", "value", "dfc-generated"] - ["::pretty", "Argument[0]", "Argument[self].Field[std::error::Report::pretty]", "value", "dfc-generated"] @@ -5040,7 +5100,6 @@ extensions: - ["::set_position", "Argument[0]", "Argument[self].Field[std::io::cursor::Cursor::pos]", "value", "dfc-generated"] - ["::from", "Argument[0].Field[1]", "ReturnValue", "value", "dfc-generated"] - ["::from", "Argument[0].Field[std::io::buffered::IntoInnerError(1)]", "ReturnValue", "value", "dfc-generated"] - - ["::read_to_end", "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"] - ["::into_inner", "Argument[self].Field[std::io::pipe::PipeReader(0)]", "ReturnValue", "value", "dfc-generated"] @@ -5130,6 +5189,7 @@ extensions: - ["::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"] @@ -5150,7 +5210,6 @@ extensions: - ["::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"] - - ["::read_to_end", "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"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStderr::inner]", "value", "dfc-generated"] @@ -5158,7 +5217,6 @@ extensions: - ["::as_inner", "Argument[self].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"] - - ["::read_to_end", "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"] - ["::from_inner", "Argument[0]", "ReturnValue.Field[std::process::ChildStdout::inner]", "value", "dfc-generated"] @@ -5327,6 +5385,8 @@ extensions: - ["::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"] - ["::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"] @@ -5368,7 +5428,6 @@ extensions: - ["::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[0]", "ReturnValue", "taint", "df-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"] @@ -5378,7 +5437,6 @@ extensions: - ["::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"] - - ["::read_to_end", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::read_to_end", "Argument[self]", "Argument[0]", "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"] @@ -5497,6 +5555,8 @@ extensions: - ["::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"] - ["::from", "Argument[0]", "ReturnValue.Field[stdarch-gen-arm::expression::Expression::FnCall(0)]", "value", "dfc-generated"] @@ -5508,8 +5568,10 @@ extensions: - ["::typekind", "Argument[self].Field[stdarch-gen-arm::input::InputType::Type(0)]", "ReturnValue.Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::from_str", "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"] - ["::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]", "ReturnValue", "taint", "df-generated"] + - ["::make_fn_call", "Argument[self].Field[stdarch-gen-arm::intrinsic::LLVMLink::signature].Field[core::option::Option::Some(0)]", "ReturnValue.Reference", "value", "dfc-generated"] - ["::resolve", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["::resolve", "Argument[self]", "ReturnValue", "taint", "df-generated"] - ["::drop_argument", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -5553,8 +5615,8 @@ extensions: - ["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"] - - ["as_if_std::the_backtrace_crate::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "ReturnValue", "taint", "df-generated"] - - ["backtrace::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "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"] + - ["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"] - ["core::array::drain::drain_array_with", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["core::char::convert::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] - ["core::char::from_digit", "Argument[0]", "ReturnValue", "taint", "df-generated"] @@ -6404,7 +6466,7 @@ extensions: - ["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_rs::symbolize::gimli::elf::handle_split_dwarf", "Argument[2]", "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::io::append_to_string", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] @@ -6435,8 +6497,8 @@ extensions: - ["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[2]", "ReturnValue", "taint", "df-generated"] - - ["stdarch-gen-arm::big_endian::create_mut_let_variable", "Argument[2]", "ReturnValue", "taint", "df-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"] @@ -6566,7 +6628,10 @@ extensions: - ["::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"] - ["::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"] - ["::split_off", "Argument[0]", "log-injection", "df-generated"] - ["::split_off", "Argument[self]", "alloc-layout", "df-generated"] @@ -6644,6 +6709,10 @@ extensions: - ["::new", "Argument[0]", "log-injection", "df-generated"] - ["::new_os", "Argument[0]", "log-injection", "df-generated"] - ["::new_simple", "Argument[0]", "log-injection", "df-generated"] + - ["::write", "Argument[0]", "log-injection", "df-generated"] + - ["::write_all", "Argument[0]", "log-injection", "df-generated"] + - ["::write", "Argument[0]", "log-injection", "df-generated"] + - ["::write_all", "Argument[0]", "log-injection", "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"] @@ -6662,7 +6731,10 @@ extensions: - ["::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"] - ["::to_tokens", "Argument[self]", "log-injection", "df-generated"] + - ["::build", "Argument[0]", "log-injection", "df-generated"] + - ["::build_and_save", "Argument[0]", "log-injection", "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"] diff --git a/rust/ql/lib/ext/generated/serde.model.yml b/rust/ql/lib/ext/generated/serde.model.yml index 0d06a220b93..68946771143 100644 --- a/rust/ql/lib/ext/generated/serde.model.yml +++ b/rust/ql/lib/ext/generated/serde.model.yml @@ -17,6 +17,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"] - ["::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"] @@ -187,6 +188,8 @@ extensions: - ["::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]", "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"] @@ -244,7 +247,9 @@ extensions: - ["::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"] - ["::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"] diff --git a/rust/ql/lib/ext/generated/tokio.model.yml b/rust/ql/lib/ext/generated/tokio.model.yml index be824c6ffb3..98c9fb5f33f 100644 --- a/rust/ql/lib/ext/generated/tokio.model.yml +++ b/rust/ql/lib/ext/generated/tokio.model.yml @@ -618,6 +618,7 @@ extensions: - ["::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"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::blocking::task::BlockingTask::func].Field[core::option::Option::Some(0)]", "value", "dfc-generated"] - ["::enable_all", "Argument[self]", "ReturnValue", "value", "dfc-generated"] - ["::enable_io", "Argument[self]", "ReturnValue", "value", "dfc-generated"] @@ -658,6 +659,7 @@ extensions: - ["::set", "Argument[1].ReturnValue", "ReturnValue", "value", "dfc-generated"] - ["::with", "Argument[0].ReturnValue", "ReturnValue", "value", "dfc-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"] - ["::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"] @@ -674,10 +676,13 @@ extensions: - ["::unpark", "Argument[self].Field[tokio::runtime::park::ParkThread::inner]", "ReturnValue.Field[tokio::runtime::park::UnparkThread::inner]", "value", "dfc-generated"] - ["::new", "Argument[0]", "ReturnValue.Field[tokio::runtime::process::Driver::park]", "value", "dfc-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"] - ["::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"] - ["::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"] - ["::as_current_thread", "Argument[self].Field[tokio::runtime::scheduler::Handle::CurrentThread(0)]", "ReturnValue", "value", "dfc-generated"] @@ -971,6 +976,10 @@ extensions: - ["::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"] - ["::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"] - ["::into_inner", "Argument[self].Field[tokio::time::timeout::Timeout::value]", "ReturnValue", "value", "dfc-generated"] From 76b7228160a5e686c1311a720cddfbc224824090 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:41:26 +0200 Subject: [PATCH 216/340] JS: Remove js/actions/command-injection Superseded by actions/command-injection/{medium,critical} --- .../CWE-094/ExpressionInjection.qhelp | 56 ---- .../Security/CWE-094/ExpressionInjection.ql | 270 ------------------ .../CWE-094/examples/comment_issue_bad.yml | 8 - .../examples/comment_issue_bad_env.yml | 10 - .../CWE-094/examples/comment_issue_good.yml | 10 - .../.github/workflows/comment_issue.yml | 28 -- .../workflows/comment_issue_newline.yml | 10 - .../.github/workflows/discussion.yml | 8 - .../.github/workflows/discussion_comment.yml | 9 - .../.github/workflows/gollum.yml | 11 - .../.github/workflows/issues.yaml | 20 -- .../.github/workflows/pull_request_review.yml | 14 - .../workflows/pull_request_review_comment.yml | 14 - .../.github/workflows/pull_request_target.yml | 16 -- .../.github/workflows/push.yml | 16 -- .../.github/workflows/workflow_run.yml | 16 -- .../ExpressionInjection.expected | 65 ----- .../ExpressionInjection.qlref | 1 - .../ExpressionInjection/action1/action.yml | 14 - .../ExpressionInjection/action2/action.yml | 17 -- 20 files changed, 613 deletions(-) delete mode 100644 javascript/ql/src/Security/CWE-094/ExpressionInjection.qhelp delete mode 100644 javascript/ql/src/Security/CWE-094/ExpressionInjection.ql delete mode 100644 javascript/ql/src/Security/CWE-094/examples/comment_issue_bad.yml delete mode 100644 javascript/ql/src/Security/CWE-094/examples/comment_issue_bad_env.yml delete mode 100644 javascript/ql/src/Security/CWE-094/examples/comment_issue_good.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue_newline.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion_comment.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/gollum.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/issues.yaml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review_comment.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_target.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/push.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/workflow_run.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.expected delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.qlref delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action1/action.yml delete mode 100644 javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action2/action.yml diff --git a/javascript/ql/src/Security/CWE-094/ExpressionInjection.qhelp b/javascript/ql/src/Security/CWE-094/ExpressionInjection.qhelp deleted file mode 100644 index df9d97e4e6b..00000000000 --- a/javascript/ql/src/Security/CWE-094/ExpressionInjection.qhelp +++ /dev/null @@ -1,56 +0,0 @@ - - - -

    - Using user-controlled input in GitHub Actions may lead to - code injection in contexts like run: or script:. -

    -

    - Code injection in GitHub Actions may allow an attacker to - exfiltrate any secrets used in the workflow and - the temporary GitHub repository authorization token. - The token might have write access to the repository, allowing an attacker - to use the token to make changes to the repository. -

    -
    - - -

    - The best practice to avoid code injection vulnerabilities - in GitHub workflows is to set the untrusted input value of the expression - to an intermediate environment variable and then use the environment variable - using the native syntax of the shell/script interpreter (that is, not ${{ env.VAR }}). -

    -

    - It is also recommended to limit the permissions of any tokens used - by a workflow such as the GITHUB_TOKEN. -

    -
    - - -

    - The following example lets a user inject an arbitrary shell command: -

    - - -

    - The following example uses an environment variable, but - still allows the injection because of the use of expression syntax: -

    - - -

    - The following example uses shell syntax to read - the environment variable and will prevent the attack: -

    - -
    - - -
  • GitHub Security Lab Research: Keeping your GitHub Actions and workflows secure: Untrusted input.
  • -
  • GitHub Docs: Security hardening for GitHub Actions.
  • -
  • GitHub Docs: Permissions for the GITHUB_TOKEN.
  • -
    -
    diff --git a/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql b/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql deleted file mode 100644 index 6c01edb330f..00000000000 --- a/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql +++ /dev/null @@ -1,270 +0,0 @@ -/** - * @name Expression injection in Actions - * @description Using user-controlled GitHub Actions contexts like `run:` or `script:` may allow a malicious - * user to inject code into the GitHub action. - * @kind problem - * @problem.severity warning - * @security-severity 9.3 - * @precision high - * @id js/actions/command-injection - * @tags actions - * security - * external/cwe/cwe-094 - */ - -import javascript -import semmle.javascript.Actions - -/** - * A `script:` field within an Actions `with:` specific to `actions/github-script` action. - * - * For example: - * ``` - * uses: actions/github-script@v3 - * with: - * script: console.log('${{ github.event.pull_request.head.sha }}') - * ``` - */ -class GitHubScript extends YamlNode, YamlString { - GitHubScriptWith with; - - GitHubScript() { with.lookup("script") = this } - - /** Gets the `with` field this field belongs to. */ - GitHubScriptWith getWith() { result = with } -} - -/** - * A step that uses `actions/github-script` action. - */ -class GitHubScriptStep extends Actions::Step { - GitHubScriptStep() { this.getUses().getGitHubRepository() = "actions/github-script" } -} - -/** - * A `with:` field sibling to `uses: actions/github-script`. - */ -class GitHubScriptWith extends YamlNode, YamlMapping { - GitHubScriptStep step; - - GitHubScriptWith() { step.lookup("with") = this } - - /** Gets the step this field belongs to. */ - GitHubScriptStep getStep() { result = step } -} - -bindingset[context] -private predicate isExternalUserControlledIssue(string context) { - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*issue\\s*\\.\\s*title\\b") or - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*issue\\s*\\.\\s*body\\b") -} - -bindingset[context] -private predicate isExternalUserControlledPullRequest(string context) { - exists(string reg | - reg = - [ - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*title\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*body\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*head\\s*\\.\\s*label\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*head\\s*\\.\\s*repo\\s*\\.\\s*default_branch\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*head\\s*\\.\\s*repo\\s*\\.\\s*description\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*head\\s*\\.\\s*repo\\s*\\.\\s*homepage\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pull_request\\s*\\.\\s*head\\s*\\.\\s*ref\\b", - "\\bgithub\\s*\\.\\s*head_ref\\b" - ] - | - context.regexpMatch(reg) - ) -} - -bindingset[context] -private predicate isExternalUserControlledReview(string context) { - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*review\\s*\\.\\s*body\\b") -} - -bindingset[context] -private predicate isExternalUserControlledComment(string context) { - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*comment\\s*\\.\\s*body\\b") -} - -bindingset[context] -private predicate isExternalUserControlledGollum(string context) { - context - .regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pages\\[[0-9]+\\]\\s*\\.\\s*page_name\\b") or - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*pages\\[[0-9]+\\]\\s*\\.\\s*title\\b") -} - -bindingset[context] -private predicate isExternalUserControlledCommit(string context) { - exists(string reg | - reg = - [ - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*commits\\[[0-9]+\\]\\s*\\.\\s*message\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*head_commit\\s*\\.\\s*message\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*head_commit\\s*\\.\\s*author\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*head_commit\\s*\\.\\s*author\\s*\\.\\s*name\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*head_commit\\s*\\.\\s*committer\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*head_commit\\s*\\.\\s*committer\\s*\\.\\s*name\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*commits\\[[0-9]+\\]\\s*\\.\\s*author\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*commits\\[[0-9]+\\]\\s*\\.\\s*author\\s*\\.\\s*name\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*commits\\[[0-9]+\\]\\s*\\.\\s*committer\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*commits\\[[0-9]+\\]\\s*\\.\\s*committer\\s*\\.\\s*name\\b", - ] - | - context.regexpMatch(reg) - ) -} - -bindingset[context] -private predicate isExternalUserControlledDiscussion(string context) { - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*discussion\\s*\\.\\s*title\\b") or - context.regexpMatch("\\bgithub\\s*\\.\\s*event\\s*\\.\\s*discussion\\s*\\.\\s*body\\b") -} - -bindingset[context] -private predicate isExternalUserControlledWorkflowRun(string context) { - exists(string reg | - reg = - [ - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_branch\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*display_title\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_repository\\b\\s*\\.\\s*description\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_commit\\b\\s*\\.\\s*message\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_commit\\b\\s*\\.\\s*author\\b\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_commit\\b\\s*\\.\\s*author\\b\\s*\\.\\s*name\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_commit\\b\\s*\\.\\s*committer\\b\\s*\\.\\s*email\\b", - "\\bgithub\\s*\\.\\s*event\\s*\\.\\s*workflow_run\\s*\\.\\s*head_commit\\b\\s*\\.\\s*committer\\b\\s*\\.\\s*name\\b", - ] - | - context.regexpMatch(reg) - ) -} - -/** - * Holds if environment name in the `injection` (in a form of `env.name`) - * is tainted by the `context` (in a form of `github.event.xxx.xxx`). - */ -bindingset[injection] -predicate isEnvInterpolationTainted(string injection, string context) { - exists(Actions::Env env, string envName, YamlString envValue | - envValue = env.lookup(envName) and - Actions::getEnvName(injection) = envName and - Actions::getASimpleReferenceExpression(envValue) = context - ) -} - -/** - * Holds if the `run` contains any expression interpolation `${{ e }}`. - * Sets `context` to the initial untrusted value assignment in case of `${{ env... }}` interpolation - */ -predicate isRunInjectable(Actions::Run run, string injection, string context) { - Actions::getASimpleReferenceExpression(run) = injection and - ( - injection = context - or - isEnvInterpolationTainted(injection, context) - ) -} - -/** - * Holds if the `actions/github-script` contains any expression interpolation `${{ e }}`. - * Sets `context` to the initial untrusted value assignment in case of `${{ env... }}` interpolation - */ -predicate isScriptInjectable(GitHubScript script, string injection, string context) { - Actions::getASimpleReferenceExpression(script) = injection and - ( - injection = context - or - isEnvInterpolationTainted(injection, context) - ) -} - -/** - * Holds if the composite action contains untrusted expression interpolation `${{ e }}`. - */ -YamlNode getInjectableCompositeActionNode(Actions::Runs runs, string injection, string context) { - exists(Actions::Run run | - isRunInjectable(run, injection, context) and - result = run and - run.getStep().getRuns() = runs - ) - or - exists(GitHubScript script | - isScriptInjectable(script, injection, context) and - result = script and - script.getWith().getStep().getRuns() = runs - ) -} - -/** - * Holds if the workflow contains untrusted expression interpolation `${{ e }}`. - */ -YamlNode getInjectableWorkflowNode(Actions::On on, string injection, string context) { - exists(Actions::Run run | - isRunInjectable(run, injection, context) and - result = run and - run.getStep().getJob().getWorkflow().getOn() = on - ) - or - exists(GitHubScript script | - isScriptInjectable(script, injection, context) and - result = script and - script.getWith().getStep().getJob().getWorkflow().getOn() = on - ) -} - -from YamlNode node, string injection, string context -where - exists(Actions::CompositeAction action, Actions::Runs runs | - action.getRuns() = runs and - node = getInjectableCompositeActionNode(runs, injection, context) and - ( - isExternalUserControlledIssue(context) or - isExternalUserControlledPullRequest(context) or - isExternalUserControlledReview(context) or - isExternalUserControlledComment(context) or - isExternalUserControlledGollum(context) or - isExternalUserControlledCommit(context) or - isExternalUserControlledDiscussion(context) or - isExternalUserControlledWorkflowRun(context) - ) - ) - or - exists(Actions::On on | - node = getInjectableWorkflowNode(on, injection, context) and - ( - exists(on.getNode("issues")) and - isExternalUserControlledIssue(context) - or - exists(on.getNode("pull_request_target")) and - isExternalUserControlledPullRequest(context) - or - exists(on.getNode("pull_request_review")) and - (isExternalUserControlledReview(context) or isExternalUserControlledPullRequest(context)) - or - exists(on.getNode("pull_request_review_comment")) and - (isExternalUserControlledComment(context) or isExternalUserControlledPullRequest(context)) - or - exists(on.getNode("issue_comment")) and - (isExternalUserControlledComment(context) or isExternalUserControlledIssue(context)) - or - exists(on.getNode("gollum")) and - isExternalUserControlledGollum(context) - or - exists(on.getNode("push")) and - isExternalUserControlledCommit(context) - or - exists(on.getNode("discussion")) and - isExternalUserControlledDiscussion(context) - or - exists(on.getNode("discussion_comment")) and - (isExternalUserControlledDiscussion(context) or isExternalUserControlledComment(context)) - or - exists(on.getNode("workflow_run")) and - isExternalUserControlledWorkflowRun(context) - ) - ) -select node, - "Potential injection from the ${{ " + injection + - " }}, which may be controlled by an external user." diff --git a/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad.yml b/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad.yml deleted file mode 100644 index 1a25d44693b..00000000000 --- a/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad.yml +++ /dev/null @@ -1,8 +0,0 @@ -on: issue_comment - -jobs: - echo-body: - runs-on: ubuntu-latest - steps: - - run: | - echo '${{ github.event.comment.body }}' \ No newline at end of file diff --git a/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad_env.yml b/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad_env.yml deleted file mode 100644 index b7698938de7..00000000000 --- a/javascript/ql/src/Security/CWE-094/examples/comment_issue_bad_env.yml +++ /dev/null @@ -1,10 +0,0 @@ -on: issue_comment - -jobs: - echo-body: - runs-on: ubuntu-latest - steps: - - env: - BODY: ${{ github.event.issue.body }} - run: | - echo '${{ env.BODY }}' \ No newline at end of file diff --git a/javascript/ql/src/Security/CWE-094/examples/comment_issue_good.yml b/javascript/ql/src/Security/CWE-094/examples/comment_issue_good.yml deleted file mode 100644 index 07254a8b204..00000000000 --- a/javascript/ql/src/Security/CWE-094/examples/comment_issue_good.yml +++ /dev/null @@ -1,10 +0,0 @@ -on: issue_comment - -jobs: - echo-body: - runs-on: ubuntu-latest - steps: - - env: - BODY: ${{ github.event.issue.body }} - run: | - echo "$BODY" diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue.yml deleted file mode 100644 index 17ead9fdd20..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue.yml +++ /dev/null @@ -1,28 +0,0 @@ -on: issue_comment - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: | - echo '${{ github.event.comment.body }}' - - echo-chamber2: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.comment.body }}' - - run: echo '${{ github.event.issue.body }}' - - run: echo '${{ github.event.issue.title }}' - - echo-chamber3: - runs-on: ubuntu-latest - steps: - - uses: actions/github-script@v3 - with: - script: console.log('${{ github.event.comment.body }}') - - uses: actions/github-script@v3 - with: - script: console.log('${{ github.event.issue.body }}') - - uses: actions/github-script@v3 - with: - script: console.log('${{ github.event.issue.title }}') \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue_newline.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue_newline.yml deleted file mode 100644 index 0a64e47f6cb..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/comment_issue_newline.yml +++ /dev/null @@ -1,10 +0,0 @@ -on: issue_comment - -# same as comment_issue but this file ends with a line break - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: | - echo '${{ github.event.comment.body }}' diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion.yml deleted file mode 100644 index fdb140ec380..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion.yml +++ /dev/null @@ -1,8 +0,0 @@ -on: discussion - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.discussion.title }}' - - run: echo '${{ github.event.discussion.body }}' \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion_comment.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion_comment.yml deleted file mode 100644 index 649d3a6e131..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/discussion_comment.yml +++ /dev/null @@ -1,9 +0,0 @@ -on: discussion_comment - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.discussion.title }}' - - run: echo '${{ github.event.discussion.body }}' - - run: echo '${{ github.event.comment.body }}' \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/gollum.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/gollum.yml deleted file mode 100644 index a952c8c1ab8..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/gollum.yml +++ /dev/null @@ -1,11 +0,0 @@ -on: gollum - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.pages[1].title }}' - - run: echo '${{ github.event.pages[11].title }}' - - run: echo '${{ github.event.pages[0].page_name }}' - - run: echo '${{ github.event.pages[2222].page_name }}' - - run: echo '${{ toJSON(github.event.pages.*.title) }}' # safe \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/issues.yaml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/issues.yaml deleted file mode 100644 index 5e767ce0239..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/issues.yaml +++ /dev/null @@ -1,20 +0,0 @@ -on: issues - -env: - global_env: ${{ github.event.issue.title }} - test: test - -jobs: - echo-chamber: - env: - job_env: ${{ github.event.issue.title }} - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.issue.title }}' - - run: echo '${{ github.event.issue.body }}' - - run: echo '${{ env.global_env }}' - - run: echo '${{ env.test }}' - - run: echo '${{ env.job_env }}' - - run: echo '${{ env.step_env }}' - env: - step_env: ${{ github.event.issue.title }} diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review.yml deleted file mode 100644 index d4ce7885669..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review.yml +++ /dev/null @@ -1,14 +0,0 @@ -on: pull_request_review - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.pull_request.title }}' - - run: echo '${{ github.event.pull_request.body }}' - - run: echo '${{ github.event.pull_request.head.label }}' - - run: echo '${{ github.event.pull_request.head.repo.default_branch }}' - - run: echo '${{ github.event.pull_request.head.repo.description }}' - - run: echo '${{ github.event.pull_request.head.repo.homepage }}' - - run: echo '${{ github.event.pull_request.head.ref }}' - - run: echo '${{ github.event.review.body }}' diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review_comment.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review_comment.yml deleted file mode 100644 index 5d288caad85..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_review_comment.yml +++ /dev/null @@ -1,14 +0,0 @@ -on: pull_request_review_comment - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.pull_request.title }}' - - run: echo '${{ github.event.pull_request.body }}' - - run: echo '${{ github.event.pull_request.head.label }}' - - run: echo '${{ github.event.pull_request.head.repo.default_branch }}' - - run: echo '${{ github.event.pull_request.head.repo.description }}' - - run: echo '${{ github.event.pull_request.head.repo.homepage }}' - - run: echo '${{ github.event.pull_request.head.ref }}' - - run: echo '${{ github.event.comment.body }}' diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_target.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_target.yml deleted file mode 100644 index 215b3252885..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/pull_request_target.yml +++ /dev/null @@ -1,16 +0,0 @@ -on: pull_request_target - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.issue.title }}' # not defined - - run: echo '${{ github.event.issue.body }}' # not defined - - run: echo '${{ github.event.pull_request.title }}' - - run: echo '${{ github.event.pull_request.body }}' - - run: echo '${{ github.event.pull_request.head.label }}' - - run: echo '${{ github.event.pull_request.head.repo.default_branch }}' - - run: echo '${{ github.event.pull_request.head.repo.description }}' - - run: echo '${{ github.event.pull_request.head.repo.homepage }}' - - run: echo '${{ github.event.pull_request.head.ref }}' - - run: echo '${{ github.head_ref }}' diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/push.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/push.yml deleted file mode 100644 index 2006a7999da..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/push.yml +++ /dev/null @@ -1,16 +0,0 @@ -on: push - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.commits[11].message }}' - - run: echo '${{ github.event.commits[11].author.email }}' - - run: echo '${{ github.event.commits[11].author.name }}' - - run: echo '${{ github.event.head_commit.message }}' - - run: echo '${{ github.event.head_commit.author.email }}' - - run: echo '${{ github.event.head_commit.author.name }}' - - run: echo '${{ github.event.head_commit.committer.email }}' - - run: echo '${{ github.event.head_commit.committer.name }}' - - run: echo '${{ github.event.commits[11].committer.email }}' - - run: echo '${{ github.event.commits[11].committer.name }}' \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/workflow_run.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/workflow_run.yml deleted file mode 100644 index 60e7645f60f..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/.github/workflows/workflow_run.yml +++ /dev/null @@ -1,16 +0,0 @@ -on: - workflow_run: - workflows: [test] - -jobs: - echo-chamber: - runs-on: ubuntu-latest - steps: - - run: echo '${{ github.event.workflow_run.display_title }}' - - run: echo '${{ github.event.workflow_run.head_commit.message }}' - - run: echo '${{ github.event.workflow_run.head_commit.author.email }}' - - run: echo '${{ github.event.workflow_run.head_commit.author.name }}' - - run: echo '${{ github.event.workflow_run.head_commit.committer.email }}' - - run: echo '${{ github.event.workflow_run.head_commit.committer.name }}' - - run: echo '${{ github.event.workflow_run.head_branch }}' - - run: echo '${{ github.event.workflow_run.head_repository.description }}' diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.expected deleted file mode 100644 index 414b9b9ae40..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.expected +++ /dev/null @@ -1,65 +0,0 @@ -| .github/workflows/comment_issue.yml:7:12:8:48 | \| | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:13:12:13:50 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:14:12:14:48 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.issue.body }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:15:12:15:49 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.issue.title }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:22:17:22:63 | console ... dy }}') | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:25:17:25:61 | console ... dy }}') | Potential injection from the ${{ github.event.issue.body }}, which may be controlled by an external user. | -| .github/workflows/comment_issue.yml:28:17:28:62 | console ... le }}') | Potential injection from the ${{ github.event.issue.title }}, which may be controlled by an external user. | -| .github/workflows/comment_issue_newline.yml:9:14:10:50 | \| | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/discussion.yml:7:12:7:54 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.discussion.title }}, which may be controlled by an external user. | -| .github/workflows/discussion.yml:8:12:8:53 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.discussion.body }}, which may be controlled by an external user. | -| .github/workflows/discussion_comment.yml:7:12:7:54 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.discussion.title }}, which may be controlled by an external user. | -| .github/workflows/discussion_comment.yml:8:12:8:53 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.discussion.body }}, which may be controlled by an external user. | -| .github/workflows/discussion_comment.yml:9:12:9:50 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/gollum.yml:7:12:7:52 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.pages[1].title }}, which may be controlled by an external user. | -| .github/workflows/gollum.yml:8:12:8:53 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.pages[11].title }}, which may be controlled by an external user. | -| .github/workflows/gollum.yml:9:12:9:56 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.pages[0].page_name }}, which may be controlled by an external user. | -| .github/workflows/gollum.yml:10:12:10:59 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.pages[2222].page_name }}, which may be controlled by an external user. | -| .github/workflows/issues.yaml:13:12:13:49 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.issue.title }}, which may be controlled by an external user. | -| .github/workflows/issues.yaml:14:12:14:48 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.issue.body }}, which may be controlled by an external user. | -| .github/workflows/issues.yaml:15:12:15:39 | echo '$ ... env }}' | Potential injection from the ${{ env.global_env }}, which may be controlled by an external user. | -| .github/workflows/issues.yaml:17:12:17:36 | echo '$ ... env }}' | Potential injection from the ${{ env.job_env }}, which may be controlled by an external user. | -| .github/workflows/issues.yaml:18:12:18:37 | echo '$ ... env }}' | Potential injection from the ${{ env.step_env }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:7:12:7:56 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.pull_request.title }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:8:12:8:55 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.pull_request.body }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:9:12:9:61 | echo '$ ... bel }}' | Potential injection from the ${{ github.event.pull_request.head.label }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:10:12:10:75 | echo '$ ... nch }}' | Potential injection from the ${{ github.event.pull_request.head.repo.default_branch }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:11:12:11:72 | echo '$ ... ion }}' | Potential injection from the ${{ github.event.pull_request.head.repo.description }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:12:12:12:69 | echo '$ ... age }}' | Potential injection from the ${{ github.event.pull_request.head.repo.homepage }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:13:12:13:59 | echo '$ ... ref }}' | Potential injection from the ${{ github.event.pull_request.head.ref }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review.yml:14:12:14:49 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.review.body }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:7:12:7:56 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.pull_request.title }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:8:12:8:55 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.pull_request.body }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:9:12:9:61 | echo '$ ... bel }}' | Potential injection from the ${{ github.event.pull_request.head.label }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:10:12:10:75 | echo '$ ... nch }}' | Potential injection from the ${{ github.event.pull_request.head.repo.default_branch }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:11:12:11:72 | echo '$ ... ion }}' | Potential injection from the ${{ github.event.pull_request.head.repo.description }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:12:12:12:69 | echo '$ ... age }}' | Potential injection from the ${{ github.event.pull_request.head.repo.homepage }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:13:12:13:59 | echo '$ ... ref }}' | Potential injection from the ${{ github.event.pull_request.head.ref }}, which may be controlled by an external user. | -| .github/workflows/pull_request_review_comment.yml:14:12:14:50 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:9:12:9:56 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.pull_request.title }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:10:12:10:55 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.pull_request.body }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:11:12:11:61 | echo '$ ... bel }}' | Potential injection from the ${{ github.event.pull_request.head.label }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:12:12:12:75 | echo '$ ... nch }}' | Potential injection from the ${{ github.event.pull_request.head.repo.default_branch }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:13:12:13:72 | echo '$ ... ion }}' | Potential injection from the ${{ github.event.pull_request.head.repo.description }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:14:12:14:69 | echo '$ ... age }}' | Potential injection from the ${{ github.event.pull_request.head.repo.homepage }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:15:12:15:59 | echo '$ ... ref }}' | Potential injection from the ${{ github.event.pull_request.head.ref }}, which may be controlled by an external user. | -| .github/workflows/pull_request_target.yml:16:12:16:40 | echo '$ ... ref }}' | Potential injection from the ${{ github.head_ref }}, which may be controlled by an external user. | -| .github/workflows/push.yml:7:12:7:57 | echo '$ ... age }}' | Potential injection from the ${{ github.event.commits[11].message }}, which may be controlled by an external user. | -| .github/workflows/push.yml:8:12:8:62 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.commits[11].author.email }}, which may be controlled by an external user. | -| .github/workflows/push.yml:9:12:9:61 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.commits[11].author.name }}, which may be controlled by an external user. | -| .github/workflows/push.yml:10:12:10:57 | echo '$ ... age }}' | Potential injection from the ${{ github.event.head_commit.message }}, which may be controlled by an external user. | -| .github/workflows/push.yml:11:12:11:62 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.head_commit.author.email }}, which may be controlled by an external user. | -| .github/workflows/push.yml:12:12:12:61 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.head_commit.author.name }}, which may be controlled by an external user. | -| .github/workflows/push.yml:13:12:13:65 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.head_commit.committer.email }}, which may be controlled by an external user. | -| .github/workflows/push.yml:14:12:14:64 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.head_commit.committer.name }}, which may be controlled by an external user. | -| .github/workflows/push.yml:15:12:15:65 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.commits[11].committer.email }}, which may be controlled by an external user. | -| .github/workflows/push.yml:16:12:16:64 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.commits[11].committer.name }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:9:12:9:64 | echo '$ ... tle }}' | Potential injection from the ${{ github.event.workflow_run.display_title }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:10:12:10:70 | echo '$ ... age }}' | Potential injection from the ${{ github.event.workflow_run.head_commit.message }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:11:12:11:75 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.workflow_run.head_commit.author.email }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:12:12:12:74 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.workflow_run.head_commit.author.name }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:13:12:13:78 | echo '$ ... ail }}' | Potential injection from the ${{ github.event.workflow_run.head_commit.committer.email }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:14:12:14:77 | echo '$ ... ame }}' | Potential injection from the ${{ github.event.workflow_run.head_commit.committer.name }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:15:12:15:62 | echo '$ ... nch }}' | Potential injection from the ${{ github.event.workflow_run.head_branch }}, which may be controlled by an external user. | -| .github/workflows/workflow_run.yml:16:12:16:78 | echo '$ ... ion }}' | Potential injection from the ${{ github.event.workflow_run.head_repository.description }}, which may be controlled by an external user. | -| action1/action.yml:14:12:14:50 | echo '$ ... ody }}' | Potential injection from the ${{ github.event.comment.body }}, which may be controlled by an external user. | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.qlref b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.qlref deleted file mode 100644 index dd00277b79b..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/ExpressionInjection.qlref +++ /dev/null @@ -1 +0,0 @@ -query: Security/CWE-094/ExpressionInjection.ql diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action1/action.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action1/action.yml deleted file mode 100644 index e9a178cf3db..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action1/action.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: 'test' -description: 'test' -branding: - icon: 'test' - color: 'test' -inputs: - test: - description: test - required: false - default: 'test' -runs: - using: "composite" - steps: - - run: echo '${{ github.event.comment.body }}' \ No newline at end of file diff --git a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action2/action.yml b/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action2/action.yml deleted file mode 100644 index 40fe0b31e6a..00000000000 --- a/javascript/ql/test/query-tests/Security/CWE-094/ExpressionInjection/action2/action.yml +++ /dev/null @@ -1,17 +0,0 @@ -name: 'Hello World' -description: 'Greet someone and record the time' -inputs: - who-to-greet: # id of input - description: 'Who to greet' - required: true - default: 'World' -outputs: - time: # id of output - description: 'The time we greeted you' -runs: - using: 'docker' - steps: # this is actually invalid, used to test we correctly identify composite actions - - run: echo '${{ github.event.comment.body }}' - image: 'Dockerfile' - args: - - ${{ inputs.who-to-greet }} \ No newline at end of file From b1da23968c0a27ad8e62ffb1e1629501bb0095a9 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:46:05 +0200 Subject: [PATCH 217/340] JS: Change note --- .../2025-06-23-remove-legacy-actions-queries.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md diff --git a/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md b/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md new file mode 100644 index 00000000000..412a941b878 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md @@ -0,0 +1,7 @@ +--- +category: minorAnalysis +--- +* Removed three queries from the JS qlpack, which have been superseded by newer queries that are part of the Actions qlpack: + * `js/actions/pull-request-target` has been superseded by `actions/untrusted-checkout/{medium,high,critical}` + * `js/actions/actions-artifact-leak` has been supersded by `actions/secrets-in-artifacts` + * `js/actions/command-injection` has been superseded by `actions/command-injection/{medium,critical}` From 45f089fda066384aae8d5bc4778067f694594df7 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Mon, 23 Jun 2025 13:39:31 +0100 Subject: [PATCH 218/340] Ruby: skip non-existent files in overlay changes JSON The previous implementation returned None if any of the paths in the changes JSON couldn't be canonicalized. This could happen for files that were deleted in the diff. Now, it just ignores paths for which canonicalize() fails. --- ruby/extractor/src/extractor.rs | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 983a918fee6..7a78bbdd1ae 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -357,17 +357,15 @@ fn get_overlay_changed_files() -> Option> { // ... // ] // } - json_value - .get("changes")? - .as_array()? - .iter() - .map(|change| { - change - .as_str() - .map(|s| PathBuf::from(s).canonicalize().ok()) - .flatten() - }) - .collect() + Some( + json_value + .get("changes")? + .as_array()? + .iter() + .filter_map(|change| change.as_str()) + .filter_map(|s| PathBuf::from(s).canonicalize().ok()) + .collect(), + ) } fn scan_coding_comment(content: &[u8]) -> std::option::Option> { From 7da2d71a7038313b86461a0dcc8f3d876042cc7a Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 14:57:23 +0200 Subject: [PATCH 219/340] JS: Update query suite expectations --- .../query-suite/javascript-code-scanning.qls.expected | 2 -- .../query-suite/javascript-security-and-quality.qls.expected | 2 -- .../query-suite/javascript-security-extended.qls.expected | 2 -- .../integration-tests/query-suite/not_included_in_qls.expected | 1 - 4 files changed, 7 deletions(-) diff --git a/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected index 1cf124ce3cf..652ac0ebc1b 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-code-scanning.qls.expected @@ -31,7 +31,6 @@ ql/javascript/ql/src/Security/CWE-079/Xss.ql ql/javascript/ql/src/Security/CWE-079/XssThroughDom.ql ql/javascript/ql/src/Security/CWE-089/SqlInjection.ql ql/javascript/ql/src/Security/CWE-094/CodeInjection.ql -ql/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql ql/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql ql/javascript/ql/src/Security/CWE-094/UnsafeDynamicMethodAccess.ql ql/javascript/ql/src/Security/CWE-1004/ClientExposedCookie.ql @@ -48,7 +47,6 @@ ql/javascript/ql/src/Security/CWE-201/PostMessageStar.ql ql/javascript/ql/src/Security/CWE-209/StackTraceExposure.ql ql/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql ql/javascript/ql/src/Security/CWE-300/InsecureDependencyResolution.ql -ql/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/BuildArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/CleartextLogging.ql ql/javascript/ql/src/Security/CWE-312/CleartextStorage.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected index eb4acd38e39..dd587768308 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-security-and-quality.qls.expected @@ -119,7 +119,6 @@ ql/javascript/ql/src/Security/CWE-079/Xss.ql ql/javascript/ql/src/Security/CWE-079/XssThroughDom.ql ql/javascript/ql/src/Security/CWE-089/SqlInjection.ql ql/javascript/ql/src/Security/CWE-094/CodeInjection.ql -ql/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql ql/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql ql/javascript/ql/src/Security/CWE-094/UnsafeCodeConstruction.ql ql/javascript/ql/src/Security/CWE-094/UnsafeDynamicMethodAccess.ql @@ -140,7 +139,6 @@ ql/javascript/ql/src/Security/CWE-201/PostMessageStar.ql ql/javascript/ql/src/Security/CWE-209/StackTraceExposure.ql ql/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql ql/javascript/ql/src/Security/CWE-300/InsecureDependencyResolution.ql -ql/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/BuildArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/CleartextLogging.ql ql/javascript/ql/src/Security/CWE-312/CleartextStorage.ql diff --git a/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected b/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected index a5b5cfefdbc..9b7cfd22ed6 100644 --- a/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected +++ b/javascript/ql/integration-tests/query-suite/javascript-security-extended.qls.expected @@ -34,7 +34,6 @@ ql/javascript/ql/src/Security/CWE-079/Xss.ql ql/javascript/ql/src/Security/CWE-079/XssThroughDom.ql ql/javascript/ql/src/Security/CWE-089/SqlInjection.ql ql/javascript/ql/src/Security/CWE-094/CodeInjection.ql -ql/javascript/ql/src/Security/CWE-094/ExpressionInjection.ql ql/javascript/ql/src/Security/CWE-094/ImproperCodeSanitization.ql ql/javascript/ql/src/Security/CWE-094/UnsafeCodeConstruction.ql ql/javascript/ql/src/Security/CWE-094/UnsafeDynamicMethodAccess.ql @@ -55,7 +54,6 @@ ql/javascript/ql/src/Security/CWE-201/PostMessageStar.ql ql/javascript/ql/src/Security/CWE-209/StackTraceExposure.ql ql/javascript/ql/src/Security/CWE-295/DisablingCertificateValidation.ql ql/javascript/ql/src/Security/CWE-300/InsecureDependencyResolution.ql -ql/javascript/ql/src/Security/CWE-312/ActionsArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/BuildArtifactLeak.ql ql/javascript/ql/src/Security/CWE-312/CleartextLogging.ql ql/javascript/ql/src/Security/CWE-312/CleartextStorage.ql diff --git a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected index c80c3fc76da..9d67dfc2cc7 100644 --- a/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected +++ b/javascript/ql/integration-tests/query-suite/not_included_in_qls.expected @@ -67,7 +67,6 @@ ql/javascript/ql/src/Summary/TaintSinks.ql ql/javascript/ql/src/Summary/TaintSources.ql ql/javascript/ql/src/definitions.ql ql/javascript/ql/src/experimental/Security/CWE-094-dataURL/CodeInjection.ql -ql/javascript/ql/src/experimental/Security/CWE-094/UntrustedCheckout.ql ql/javascript/ql/src/experimental/Security/CWE-099/EnvValueAndKeyInjection.ql ql/javascript/ql/src/experimental/Security/CWE-099/EnvValueInjection.ql ql/javascript/ql/src/experimental/Security/CWE-340/TokenBuiltFromUUID.ql From 73501960446c0297401b2b83dc56fb9886811748 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 23 Jun 2025 13:24:02 +0200 Subject: [PATCH 220/340] Rust: Take derive macros into account in `is{In,From}MacroExpansion` --- .../rust/elements/internal/AstNodeImpl.qll | 6 +- .../rust/elements/internal/MacroCallImpl.qll | 8 +- .../type-inference/type-inference.expected | 1093 ----------------- 3 files changed, 8 insertions(+), 1099 deletions(-) diff --git a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll index b80da6d7084..5cebd52b137 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/AstNodeImpl.qll @@ -70,9 +70,9 @@ module Impl { */ pragma[nomagic] predicate isFromMacroExpansion() { - exists(MacroCall mc | - MacroCallImpl::isInMacroExpansion(mc, this) and - not this = mc.getATokenTreeNode() + exists(AstNode root | + MacroCallImpl::isInMacroExpansion(root, this) and + not this = root.(MacroCall).getATokenTreeNode() ) } diff --git a/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll index cac1d71dd1e..7afe59662e4 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/MacroCallImpl.qll @@ -14,10 +14,12 @@ module Impl { private import rust pragma[nomagic] - predicate isInMacroExpansion(MacroCall mc, AstNode n) { - n = mc.getMacroCallExpansion() + predicate isInMacroExpansion(AstNode root, AstNode n) { + n = root.(MacroCall).getMacroCallExpansion() or - isInMacroExpansion(mc, n.getParentNode()) + n = root.(Adt).getDeriveMacroExpansion(_) + or + isInMacroExpansion(root, n.getParentNode()) } // the following QLdoc is generated: if you need to edit it, do it in the schema file 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 3a628ac5c96..fdbe769eba8 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -191,90 +191,6 @@ inferType | loop/main.rs:7:12:7:15 | SelfParam | | loop/main.rs:6:1:8:1 | Self [trait T1] | | loop/main.rs:11:12:11:15 | SelfParam | | loop/main.rs:10:1:14:1 | Self [trait T2] | | loop/main.rs:12:9:12:12 | self | | loop/main.rs:10:1:14:1 | Self [trait T2] | -| main.rs:2:5:2:20 | "S" | | {EXTERNAL LOCATION} | str | -| main.rs:2:5:2:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:2:5:2:20 | SelfParam | &T | main.rs:2:5:3:13 | S | -| main.rs:2:5:2:20 | f | | file://:0:0:0:0 | & | -| main.rs:2:5:2:20 | f | | file://:0:0:0:0 | & | -| main.rs:2:5:2:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:2:5:2:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:2:5:2:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:2:5:2:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:2:5:2:20 | self | | file://:0:0:0:0 | & | -| main.rs:2:5:2:20 | self | &T | main.rs:2:5:3:13 | S | -| main.rs:3:12:3:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:3:12:3:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:3:12:3:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:3:12:3:12 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:5:5:5:20 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:5:5:5:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:5:5:5:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:5:5:5:20 | SelfParam | &T | main.rs:5:5:8:5 | MyThing | -| main.rs:5:5:5:20 | f | | file://:0:0:0:0 | & | -| main.rs:5:5:5:20 | f | | file://:0:0:0:0 | & | -| main.rs:5:5:5:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:5:5:5:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:5:5:5:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:5:5:5:20 | self | | file://:0:0:0:0 | & | -| main.rs:5:5:5:20 | self | &T | main.rs:5:5:8:5 | MyThing | -| main.rs:6:12:7:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:6:12:7:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:6:12:7:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:6:12:7:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:7:9:7:9 | &a | | file://:0:0:0:0 | & | -| main.rs:7:9:7:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:7:9:7:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:7:9:7:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:7:9:7:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:10:5:10:20 | "MyNone" | | {EXTERNAL LOCATION} | str | -| main.rs:10:5:10:20 | "MySome" | | {EXTERNAL LOCATION} | str | -| main.rs:10:5:10:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:10:5:10:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:10:5:10:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:10:5:10:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:10:5:10:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:10:5:10:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | SelfParam | &T | main.rs:10:5:14:5 | MyOption | -| main.rs:10:5:10:20 | SelfParam | &T.T | main.rs:11:19:11:19 | T | -| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | f | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:10:5:10:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:10:5:10:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:10:5:10:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:10:5:10:20 | self | | file://:0:0:0:0 | & | -| main.rs:10:5:10:20 | self | &T | main.rs:10:5:14:5 | MyOption | -| main.rs:10:5:10:20 | self | &T.T | main.rs:11:19:11:19 | T | -| main.rs:11:10:13:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:11:10:13:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:11:10:13:14 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:11:10:13:14 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:16:5:16:20 | "GenericThing" | | {EXTERNAL LOCATION} | str | -| main.rs:16:5:16:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:16:5:16:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:16:5:16:20 | SelfParam | &T | main.rs:16:5:19:5 | GenericThing | -| main.rs:16:5:16:20 | SelfParam | &T.A | main.rs:17:25:17:25 | A | -| main.rs:16:5:16:20 | f | | file://:0:0:0:0 | & | -| main.rs:16:5:16:20 | f | | file://:0:0:0:0 | & | -| main.rs:16:5:16:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:16:5:16:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:16:5:16:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:16:5:16:20 | self | | file://:0:0:0:0 | & | -| main.rs:16:5:16:20 | self | &T | main.rs:16:5:19:5 | GenericThing | -| main.rs:16:5:16:20 | self | &T.A | main.rs:17:25:17:25 | A | -| main.rs:17:12:18:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:17:12:18:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:17:12:18:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:17:12:18:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:18:9:18:9 | &a | | file://:0:0:0:0 | & | -| main.rs:18:9:18:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:18:9:18:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:18:9:18:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:18:9:18:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | 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:2:5:3:13 | S | @@ -368,26 +284,6 @@ inferType | 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 | | main.rs:94:9:94:14 | y.m2() | | main.rs:72:5:72:21 | Foo | -| main.rs:99:5:99:20 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:99:5:99:20 | "field" | | {EXTERNAL LOCATION} | str | -| main.rs:99:5:99:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:99:5:99:20 | SelfParam | &T | main.rs:99:5:102:5 | MyThing | -| main.rs:99:5:99:20 | f | | file://:0:0:0:0 | & | -| main.rs:99:5:99:20 | f | | file://:0:0:0:0 | & | -| main.rs:99:5:99:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:99:5:99:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:99:5:99:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:99:5:99:20 | self | | file://:0:0:0:0 | & | -| main.rs:99:5:99:20 | self | &T | main.rs:99:5:102:5 | MyThing | -| main.rs:100:12:101:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:100:12:101:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:100:12:101:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:100:12:101:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:101:9:101:13 | &field | | file://:0:0:0:0 | & | -| main.rs:101:9:101:13 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:101:9:101:13 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:101:9:101:13 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:101:9:101:13 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:105:25:105:28 | SelfParam | | main.rs:104:5:106:5 | Self [trait MyTrait] | | main.rs:110:25:110:28 | SelfParam | | main.rs:99:5:102:5 | MyThing | | main.rs:110:39:112:9 | { ... } | | {EXTERNAL LOCATION} | bool | @@ -405,58 +301,6 @@ inferType | main.rs:120:13:120:13 | b | | {EXTERNAL LOCATION} | bool | | main.rs:120:17:120:40 | ...::trait_method(...) | | {EXTERNAL LOCATION} | bool | | main.rs:120:39:120:39 | y | | main.rs:99:5:102:5 | MyThing | -| main.rs:125:5:125:20 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:125:5:125:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:125:5:125:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:125:5:125:20 | SelfParam | &T | main.rs:125:5:128:5 | MyThing | -| main.rs:125:5:125:20 | SelfParam | &T.A | main.rs:126:20:126:20 | A | -| main.rs:125:5:125:20 | f | | file://:0:0:0:0 | & | -| main.rs:125:5:125:20 | f | | file://:0:0:0:0 | & | -| main.rs:125:5:125:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:125:5:125:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:125:5:125:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:125:5:125:20 | self | | file://:0:0:0:0 | & | -| main.rs:125:5:125:20 | self | &T | main.rs:125:5:128:5 | MyThing | -| main.rs:125:5:125:20 | self | &T.A | main.rs:126:20:126:20 | A | -| main.rs:126:12:127:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:126:12:127:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:126:12:127:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:126:12:127:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:127:9:127:9 | &a | | file://:0:0:0:0 | & | -| main.rs:127:9:127:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:127:9:127:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:127:9:127:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:127:9:127:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:130:5:130:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:130:5:130:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:130:5:130:20 | SelfParam | &T | main.rs:130:5:131:14 | S1 | -| main.rs:130:5:130:20 | f | | file://:0:0:0:0 | & | -| main.rs:130:5:130:20 | f | | file://:0:0:0:0 | & | -| main.rs:130:5:130:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:130:5:130:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:130:5:130:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:130:5:130:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:130:5:130:20 | self | | file://:0:0:0:0 | & | -| main.rs:130:5:130:20 | self | &T | main.rs:130:5:131:14 | S1 | -| main.rs:131:12:131:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:131:12:131:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:131:12:131:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:131:12:131:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:132:5:132:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:132:5:132:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:132:5:132:20 | SelfParam | &T | main.rs:132:5:133:14 | S2 | -| main.rs:132:5:132:20 | f | | file://:0:0:0:0 | & | -| main.rs:132:5:132:20 | f | | file://:0:0:0:0 | & | -| main.rs:132:5:132:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:132:5:132:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:132:5:132:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:132:5:132:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:132:5:132:20 | self | | file://:0:0:0:0 | & | -| main.rs:132:5:132:20 | self | &T | main.rs:132:5:133:14 | S2 | -| main.rs:133:12:133:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:133:12:133:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:133:12:133:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:133:12:133:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:137:15:137:18 | SelfParam | | main.rs:125:5:128:5 | MyThing | | main.rs:137:15:137:18 | SelfParam | A | main.rs:130:5:131:14 | S1 | | main.rs:137:27:139:9 | { ... } | | main.rs:130:5:131:14 | S1 | @@ -524,156 +368,6 @@ inferType | main.rs:170:26:170:26 | y | | main.rs:125:5:128:5 | MyThing | | main.rs:170:26:170:26 | y | A | main.rs:132:5:133:14 | S2 | | main.rs:170:26:170:31 | y.m2() | | main.rs:132:5:133:14 | S2 | -| main.rs:175:5:175:33 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:175:5:175:33 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:175:5:175:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | SelfParam | &T | main.rs:175:5:178:5 | MyThing | -| main.rs:175:5:175:33 | SelfParam | &T | main.rs:175:5:178:5 | MyThing | -| main.rs:175:5:175:33 | SelfParam | &T.A | main.rs:176:20:176:20 | A | -| main.rs:175:5:175:33 | SelfParam | &T.A | main.rs:176:20:176:20 | A | -| main.rs:175:5:175:33 | f | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | f | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:175:5:175:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:175:5:175:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:175:5:175:33 | self | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | self | | file://:0:0:0:0 | & | -| main.rs:175:5:175:33 | self | &T | main.rs:175:5:178:5 | MyThing | -| main.rs:175:5:175:33 | self | &T | main.rs:175:5:178:5 | MyThing | -| main.rs:175:5:175:33 | self | &T.A | main.rs:176:20:176:20 | A | -| main.rs:175:5:175:33 | self | &T.A | main.rs:176:20:176:20 | A | -| main.rs:176:12:177:9 | MyThing {...} | | main.rs:175:5:178:5 | MyThing | -| main.rs:176:12:177:9 | MyThing {...} | A | main.rs:176:20:176:20 | A | -| main.rs:176:12:177:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:176:12:177:9 | match self { ... } | | main.rs:175:5:178:5 | MyThing | -| main.rs:176:12:177:9 | match self { ... } | A | main.rs:176:20:176:20 | A | -| main.rs:176:12:177:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:176:12:177:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:176:12:177:9 | { ... } | | main.rs:175:5:178:5 | MyThing | -| main.rs:176:12:177:9 | { ... } | A | main.rs:176:20:176:20 | A | -| main.rs:176:12:177:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:177:9:177:9 | &a | | file://:0:0:0:0 | & | -| main.rs:177:9:177:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:177:9:177:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:177:9:177:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:177:9:177:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:177:9:177:9 | a.clone() | | main.rs:176:20:176:20 | A | -| main.rs:180:5:180:33 | "MyPair" | | {EXTERNAL LOCATION} | str | -| main.rs:180:5:180:33 | "p1" | | {EXTERNAL LOCATION} | str | -| main.rs:180:5:180:33 | "p2" | | {EXTERNAL LOCATION} | str | -| main.rs:180:5:180:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | SelfParam | &T | main.rs:180:5:184:5 | MyPair | -| main.rs:180:5:180:33 | SelfParam | &T | main.rs:180:5:184:5 | MyPair | -| main.rs:180:5:180:33 | SelfParam | &T.P1 | main.rs:181:19:181:20 | P1 | -| main.rs:180:5:180:33 | SelfParam | &T.P1 | main.rs:181:19:181:20 | P1 | -| main.rs:180:5:180:33 | SelfParam | &T.P2 | main.rs:181:23:181:24 | P2 | -| main.rs:180:5:180:33 | SelfParam | &T.P2 | main.rs:181:23:181:24 | P2 | -| main.rs:180:5:180:33 | f | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | f | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:180:5:180:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:180:5:180:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:180:5:180:33 | self | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | self | | file://:0:0:0:0 | & | -| main.rs:180:5:180:33 | self | &T | main.rs:180:5:184:5 | MyPair | -| main.rs:180:5:180:33 | self | &T | main.rs:180:5:184:5 | MyPair | -| main.rs:180:5:180:33 | self | &T.P1 | main.rs:181:19:181:20 | P1 | -| main.rs:180:5:180:33 | self | &T.P1 | main.rs:181:19:181:20 | P1 | -| main.rs:180:5:180:33 | self | &T.P2 | main.rs:181:23:181:24 | P2 | -| main.rs:180:5:180:33 | self | &T.P2 | main.rs:181:23:181:24 | P2 | -| main.rs:181:12:183:10 | MyPair {...} | | main.rs:180:5:184:5 | MyPair | -| main.rs:181:12:183:10 | MyPair {...} | P1 | main.rs:181:19:181:20 | P1 | -| main.rs:181:12:183:10 | MyPair {...} | P2 | main.rs:181:23:181:24 | P2 | -| main.rs:181:12:183:10 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:181:12:183:10 | match self { ... } | | main.rs:180:5:184:5 | MyPair | -| main.rs:181:12:183:10 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:181:12:183:10 | match self { ... } | P1 | main.rs:181:19:181:20 | P1 | -| main.rs:181:12:183:10 | match self { ... } | P2 | main.rs:181:23:181:24 | P2 | -| main.rs:181:12:183:10 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:181:12:183:10 | { ... } | | main.rs:180:5:184:5 | MyPair | -| main.rs:181:12:183:10 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:181:12:183:10 | { ... } | P1 | main.rs:181:19:181:20 | P1 | -| main.rs:181:12:183:10 | { ... } | P2 | main.rs:181:23:181:24 | P2 | -| main.rs:182:9:182:10 | &p1 | | file://:0:0:0:0 | & | -| main.rs:182:9:182:10 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:182:9:182:10 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:182:9:182:10 | p1.clone() | | main.rs:181:19:181:20 | P1 | -| main.rs:182:9:183:10 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:182:9:183:10 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:182:9:183:10 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:182:9:183:10 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:183:9:183:10 | &p2 | | file://:0:0:0:0 | & | -| main.rs:183:9:183:10 | p2.clone() | | main.rs:181:23:181:24 | P2 | -| main.rs:186:5:186:33 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:186:5:186:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | SelfParam | &T | main.rs:186:5:187:14 | S1 | -| main.rs:186:5:186:33 | SelfParam | &T | main.rs:186:5:187:14 | S1 | -| main.rs:186:5:186:33 | f | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | f | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:186:5:186:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:186:5:186:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:186:5:186:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:186:5:186:33 | self | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | self | | file://:0:0:0:0 | & | -| main.rs:186:5:186:33 | self | &T | main.rs:186:5:187:14 | S1 | -| main.rs:186:5:186:33 | self | &T | main.rs:186:5:187:14 | S1 | -| main.rs:187:12:187:13 | S1 | | main.rs:186:5:187:14 | S1 | -| main.rs:187:12:187:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:187:12:187:13 | match self { ... } | | main.rs:186:5:187:14 | S1 | -| main.rs:187:12:187:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:187:12:187:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:187:12:187:13 | { ... } | | main.rs:186:5:187:14 | S1 | -| main.rs:187:12:187:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:188:5:188:33 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:188:5:188:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | SelfParam | &T | main.rs:188:5:189:14 | S2 | -| main.rs:188:5:188:33 | SelfParam | &T | main.rs:188:5:189:14 | S2 | -| main.rs:188:5:188:33 | f | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | f | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:188:5:188:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:188:5:188:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:188:5:188:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:188:5:188:33 | self | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | self | | file://:0:0:0:0 | & | -| main.rs:188:5:188:33 | self | &T | main.rs:188:5:189:14 | S2 | -| main.rs:188:5:188:33 | self | &T | main.rs:188:5:189:14 | S2 | -| main.rs:189:12:189:13 | S2 | | main.rs:188:5:189:14 | S2 | -| main.rs:189:12:189:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:189:12:189:13 | match self { ... } | | main.rs:188:5:189:14 | S2 | -| main.rs:189:12:189:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:189:12:189:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:189:12:189:13 | { ... } | | main.rs:188:5:189:14 | S2 | -| main.rs:189:12:189:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:190:5:190:42 | "S3" | | {EXTERNAL LOCATION} | str | -| main.rs:190:5:190:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | SelfParam | &T | main.rs:190:5:191:14 | S3 | -| main.rs:190:5:190:42 | SelfParam | &T | main.rs:190:5:191:14 | S3 | -| main.rs:190:5:190:42 | f | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | f | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:190:5:190:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:190:5:190:42 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:190:5:190:42 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:190:5:190:42 | self | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | self | | file://:0:0:0:0 | & | -| main.rs:190:5:190:42 | self | &T | main.rs:190:5:191:14 | S3 | -| main.rs:190:5:190:42 | self | &T | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | S3 | | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | S3 | | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:191:12:191:13 | match self { ... } | | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:191:12:191:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:191:12:191:13 | { ... } | | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | { ... } | | main.rs:190:5:191:14 | S3 | -| main.rs:191:12:191:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:194:15:194:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:196:15:196:18 | SelfParam | | main.rs:193:5:202:5 | Self [trait MyTrait] | | main.rs:199:9:201:9 | { ... } | | main.rs:193:5:202:5 | Self [trait MyTrait] | @@ -1007,28 +701,6 @@ inferType | main.rs:392:17:392:33 | convert_to(...) | | main.rs:186:5:187:14 | S1 | | main.rs:392:28:392:32 | thing | | main.rs:175:5:178:5 | MyThing | | main.rs:392:28:392:32 | thing | A | main.rs:186:5:187:14 | S1 | -| main.rs:397:5:397:33 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:397:5:397:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | SelfParam | &T | main.rs:397:5:398:14 | S1 | -| main.rs:397:5:397:33 | SelfParam | &T | main.rs:397:5:398:14 | S1 | -| main.rs:397:5:397:33 | f | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | f | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:397:5:397:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:397:5:397:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:397:5:397:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:397:5:397:33 | self | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | self | | file://:0:0:0:0 | & | -| main.rs:397:5:397:33 | self | &T | main.rs:397:5:398:14 | S1 | -| main.rs:397:5:397:33 | self | &T | main.rs:397:5:398:14 | S1 | -| main.rs:398:12:398:13 | S1 | | main.rs:397:5:398:14 | S1 | -| main.rs:398:12:398:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:398:12:398:13 | match self { ... } | | main.rs:397:5:398:14 | S1 | -| main.rs:398:12:398:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:398:12:398:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:398:12:398:13 | { ... } | | main.rs:397:5:398:14 | S1 | -| main.rs:398:12:398:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:401:26:401:29 | SelfParam | | main.rs:400:5:404:5 | Self [trait OverlappingTrait] | | main.rs:403:28:403:31 | SelfParam | | main.rs:400:5:404:5 | Self [trait OverlappingTrait] | | main.rs:403:34:403:35 | s1 | | main.rs:397:5:398:14 | S1 | @@ -1053,36 +725,6 @@ inferType | main.rs:433:18:433:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:433:26:433:26 | x | | main.rs:397:5:398:14 | S1 | | main.rs:433:26:433:44 | x.common_method_2() | | main.rs:397:5:398:14 | S1 | -| main.rs:440:5:440:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:440:5:440:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:440:5:440:20 | SelfParam | &T | main.rs:440:5:441:14 | S1 | -| main.rs:440:5:440:20 | f | | file://:0:0:0:0 | & | -| main.rs:440:5:440:20 | f | | file://:0:0:0:0 | & | -| main.rs:440:5:440:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:440:5:440:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:440:5:440:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:440:5:440:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:440:5:440:20 | self | | file://:0:0:0:0 | & | -| main.rs:440:5:440:20 | self | &T | main.rs:440:5:441:14 | S1 | -| main.rs:441:12:441:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:441:12:441:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:441:12:441:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:441:12:441:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:443:5:443:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:443:5:443:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:443:5:443:20 | SelfParam | &T | main.rs:443:5:444:14 | S2 | -| main.rs:443:5:443:20 | f | | file://:0:0:0:0 | & | -| main.rs:443:5:443:20 | f | | file://:0:0:0:0 | & | -| main.rs:443:5:443:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:443:5:443:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:443:5:443:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:443:5:443:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:443:5:443:20 | self | | file://:0:0:0:0 | & | -| main.rs:443:5:443:20 | self | &T | main.rs:443:5:444:14 | S2 | -| main.rs:444:12:444:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:444:12:444:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:444:12:444:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:444:12:444:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:450:19:450:22 | SelfParam | | main.rs:448:5:451:5 | Self [trait FirstTrait] | | main.rs:455:19:455:22 | SelfParam | | main.rs:453:5:456:5 | Self [trait SecondTrait] | | main.rs:458:64:458:64 | x | | main.rs:458:45:458:61 | T | @@ -1155,58 +797,6 @@ inferType | main.rs:511:18:511:29 | "{:?}, {:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:511:32:511:33 | s1 | | {EXTERNAL LOCATION} | u8 | | main.rs:511:36:511:37 | s2 | | {EXTERNAL LOCATION} | i64 | -| main.rs:516:5:516:20 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:516:5:516:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:516:5:516:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:516:5:516:20 | SelfParam | &T | main.rs:516:5:519:5 | MyThing | -| main.rs:516:5:516:20 | SelfParam | &T.T | main.rs:517:20:517:20 | T | -| main.rs:516:5:516:20 | f | | file://:0:0:0:0 | & | -| main.rs:516:5:516:20 | f | | file://:0:0:0:0 | & | -| main.rs:516:5:516:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:516:5:516:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:516:5:516:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:516:5:516:20 | self | | file://:0:0:0:0 | & | -| main.rs:516:5:516:20 | self | &T | main.rs:516:5:519:5 | MyThing | -| main.rs:516:5:516:20 | self | &T.T | main.rs:517:20:517:20 | T | -| main.rs:517:12:518:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:517:12:518:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:517:12:518:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:517:12:518:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:518:9:518:9 | &a | | file://:0:0:0:0 | & | -| main.rs:518:9:518:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:518:9:518:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:518:9:518:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:518:9:518:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:521:5:521:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:521:5:521:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:521:5:521:20 | SelfParam | &T | main.rs:521:5:522:14 | S1 | -| main.rs:521:5:521:20 | f | | file://:0:0:0:0 | & | -| main.rs:521:5:521:20 | f | | file://:0:0:0:0 | & | -| main.rs:521:5:521:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:521:5:521:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:521:5:521:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:521:5:521:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:521:5:521:20 | self | | file://:0:0:0:0 | & | -| main.rs:521:5:521:20 | self | &T | main.rs:521:5:522:14 | S1 | -| main.rs:522:12:522:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:522:12:522:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:522:12:522:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:522:12:522:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:523:5:523:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:523:5:523:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:523:5:523:20 | SelfParam | &T | main.rs:523:5:524:14 | S2 | -| main.rs:523:5:523:20 | f | | file://:0:0:0:0 | & | -| main.rs:523:5:523:20 | f | | file://:0:0:0:0 | & | -| main.rs:523:5:523:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:523:5:523:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:523:5:523:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:523:5:523:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:523:5:523:20 | self | | file://:0:0:0:0 | & | -| main.rs:523:5:523:20 | self | &T | main.rs:523:5:524:14 | S2 | -| main.rs:524:12:524:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:524:12:524:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:524:12:524:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:524:12:524:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:527:15:527:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:529:15:529:18 | SelfParam | | main.rs:526:5:535:5 | Self [trait MyTrait] | | main.rs:532:9:534:9 | { ... } | | main.rs:526:19:526:19 | A | @@ -1315,28 +905,6 @@ inferType | main.rs:581:37:581:38 | y3 | T.T | main.rs:523:5:524:14 | S2 | | main.rs:582:18:582:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:582:26:582:26 | b | | main.rs:523:5:524:14 | S2 | -| main.rs:587:5:587:20 | "Wrapper" | | {EXTERNAL LOCATION} | str | -| main.rs:587:5:587:20 | "field" | | {EXTERNAL LOCATION} | str | -| main.rs:587:5:587:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:587:5:587:20 | SelfParam | &T | main.rs:587:5:590:5 | Wrapper | -| main.rs:587:5:587:20 | SelfParam | &T.A | main.rs:588:20:588:20 | A | -| main.rs:587:5:587:20 | f | | file://:0:0:0:0 | & | -| main.rs:587:5:587:20 | f | | file://:0:0:0:0 | & | -| main.rs:587:5:587:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:587:5:587:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:587:5:587:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:587:5:587:20 | self | | file://:0:0:0:0 | & | -| main.rs:587:5:587:20 | self | &T | main.rs:587:5:590:5 | Wrapper | -| main.rs:587:5:587:20 | self | &T.A | main.rs:588:20:588:20 | A | -| main.rs:588:12:589:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:588:12:589:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:588:12:589:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:588:12:589:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:589:9:589:13 | &field | | file://:0:0:0:0 | & | -| main.rs:589:9:589:13 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:589:9:589:13 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:589:9:589:13 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:589:9:589:13 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:593:19:593:22 | SelfParam | | main.rs:587:5:590:5 | Wrapper | | main.rs:593:19:593:22 | SelfParam | A | main.rs:592:10:592:10 | A | | main.rs:593:30:595:9 | { ... } | | main.rs:592:10:592:10 | A | @@ -1371,57 +939,6 @@ inferType | main.rs:633:20:633:24 | SelfParam | &T | main.rs:626:5:636:5 | Self [trait TraitMultipleAssoc] | | main.rs:635:20:635:24 | SelfParam | | file://:0:0:0:0 | & | | main.rs:635:20:635:24 | SelfParam | &T | main.rs:626:5:636:5 | Self [trait TraitMultipleAssoc] | -| main.rs:638:5:638:29 | "S" | | {EXTERNAL LOCATION} | str | -| main.rs:638:5:638:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:638:5:638:29 | SelfParam | &T | main.rs:638:5:639:13 | S | -| main.rs:638:5:638:29 | f | | file://:0:0:0:0 | & | -| main.rs:638:5:638:29 | f | | file://:0:0:0:0 | & | -| main.rs:638:5:638:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:638:5:638:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:638:5:638:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:638:5:638:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:638:5:638:29 | self | | file://:0:0:0:0 | & | -| main.rs:638:5:638:29 | self | &T | main.rs:638:5:639:13 | S | -| main.rs:639:12:639:12 | S | | main.rs:638:5:639:13 | S | -| main.rs:639:12:639:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:639:12:639:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:639:12:639:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:639:12:639:12 | { ... } | | main.rs:638:5:639:13 | S | -| main.rs:639:12:639:12 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:641:5:641:29 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:641:5:641:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:641:5:641:29 | SelfParam | &T | main.rs:641:5:642:14 | S2 | -| main.rs:641:5:641:29 | f | | file://:0:0:0:0 | & | -| main.rs:641:5:641:29 | f | | file://:0:0:0:0 | & | -| main.rs:641:5:641:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:641:5:641:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:641:5:641:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:641:5:641:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:641:5:641:29 | self | | file://:0:0:0:0 | & | -| main.rs:641:5:641:29 | self | &T | main.rs:641:5:642:14 | S2 | -| main.rs:642:12:642:13 | S2 | | main.rs:641:5:642:14 | S2 | -| main.rs:642:12:642:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:642:12:642:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:642:12:642:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:642:12:642:13 | { ... } | | main.rs:641:5:642:14 | S2 | -| main.rs:642:12:642:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:644:5:644:29 | "AT" | | {EXTERNAL LOCATION} | str | -| main.rs:644:5:644:29 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:644:5:644:29 | SelfParam | &T | main.rs:644:5:645:14 | AT | -| main.rs:644:5:644:29 | f | | file://:0:0:0:0 | & | -| main.rs:644:5:644:29 | f | | file://:0:0:0:0 | & | -| main.rs:644:5:644:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:644:5:644:29 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:644:5:644:29 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:644:5:644:29 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:644:5:644:29 | self | | file://:0:0:0:0 | & | -| main.rs:644:5:644:29 | self | &T | main.rs:644:5:645:14 | AT | -| main.rs:645:12:645:13 | AT | | main.rs:644:5:645:14 | AT | -| main.rs:645:12:645:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:645:12:645:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:645:12:645:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:645:12:645:13 | { ... } | | main.rs:644:5:645:14 | AT | -| main.rs:645:12:645:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:651:15:651:18 | SelfParam | | main.rs:638:5:639:13 | S | | main.rs:651:45:653:9 | { ... } | | main.rs:644:5:645:14 | AT | | main.rs:652:13:652:14 | AT | | main.rs:644:5:645:14 | AT | @@ -1508,67 +1025,6 @@ inferType | main.rs:731:13:731:21 | assoc_two | | main.rs:641:5:642:14 | S2 | | main.rs:731:25:731:26 | AT | | main.rs:644:5:645:14 | AT | | main.rs:731:25:731:36 | AT.get_two() | | main.rs:641:5:642:14 | S2 | -| main.rs:736:5:736:20 | "C1" | | {EXTERNAL LOCATION} | str | -| main.rs:736:5:736:20 | "C2" | | {EXTERNAL LOCATION} | str | -| main.rs:736:5:736:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:736:5:736:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:736:5:736:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:736:5:736:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:736:5:736:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | SelfParam | &T | main.rs:736:5:740:5 | MyEnum | -| main.rs:736:5:736:20 | SelfParam | &T.A | main.rs:737:17:737:17 | A | -| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | f | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:736:5:736:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:736:5:736:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:736:5:736:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:736:5:736:20 | self | | file://:0:0:0:0 | & | -| main.rs:736:5:736:20 | self | &T | main.rs:736:5:740:5 | MyEnum | -| main.rs:736:5:736:20 | self | &T.A | main.rs:737:17:737:17 | A | -| main.rs:737:10:739:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:737:10:739:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:737:10:739:14 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:737:10:739:14 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:739:14:739:14 | &a | | file://:0:0:0:0 | & | -| main.rs:739:14:739:14 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:739:14:739:14 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:739:14:739:14 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:739:14:739:14 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:742:5:742:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:742:5:742:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:742:5:742:20 | SelfParam | &T | main.rs:742:5:743:14 | S1 | -| main.rs:742:5:742:20 | f | | file://:0:0:0:0 | & | -| main.rs:742:5:742:20 | f | | file://:0:0:0:0 | & | -| main.rs:742:5:742:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:742:5:742:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:742:5:742:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:742:5:742:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:742:5:742:20 | self | | file://:0:0:0:0 | & | -| main.rs:742:5:742:20 | self | &T | main.rs:742:5:743:14 | S1 | -| main.rs:743:12:743:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:743:12:743:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:743:12:743:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:743:12:743:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:744:5:744:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:744:5:744:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:744:5:744:20 | SelfParam | &T | main.rs:744:5:745:14 | S2 | -| main.rs:744:5:744:20 | f | | file://:0:0:0:0 | & | -| main.rs:744:5:744:20 | f | | file://:0:0:0:0 | & | -| main.rs:744:5:744:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:744:5:744:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:744:5:744:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:744:5:744:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:744:5:744:20 | self | | file://:0:0:0:0 | & | -| main.rs:744:5:744:20 | self | &T | main.rs:744:5:745:14 | S2 | -| main.rs:745:12:745:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:745:12:745:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:745:12:745:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:745:12:745:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:748:15:748:18 | SelfParam | | main.rs:736:5:740:5 | MyEnum | | main.rs:748:15:748:18 | SelfParam | A | main.rs:747:10:747:10 | T | | main.rs:748:26:753:9 | { ... } | | main.rs:747:10:747:10 | T | @@ -1597,80 +1053,6 @@ inferType | main.rs:761:26:761:26 | y | | main.rs:736:5:740:5 | MyEnum | | main.rs:761:26:761:26 | y | A | main.rs:744:5:745:14 | S2 | | main.rs:761:26:761:31 | y.m1() | | main.rs:744:5:745:14 | S2 | -| main.rs:766:5:766:20 | "MyThing" | | {EXTERNAL LOCATION} | str | -| main.rs:766:5:766:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:766:5:766:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:766:5:766:20 | SelfParam | &T | main.rs:766:5:769:5 | MyThing | -| main.rs:766:5:766:20 | SelfParam | &T.A | main.rs:767:20:767:20 | A | -| main.rs:766:5:766:20 | f | | file://:0:0:0:0 | & | -| main.rs:766:5:766:20 | f | | file://:0:0:0:0 | & | -| main.rs:766:5:766:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:766:5:766:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:766:5:766:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:766:5:766:20 | self | | file://:0:0:0:0 | & | -| main.rs:766:5:766:20 | self | &T | main.rs:766:5:769:5 | MyThing | -| main.rs:766:5:766:20 | self | &T.A | main.rs:767:20:767:20 | A | -| main.rs:767:12:768:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:767:12:768:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:767:12:768:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:767:12:768:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:768:9:768:9 | &a | | file://:0:0:0:0 | & | -| main.rs:768:9:768:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:768:9:768:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:768:9:768:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:768:9:768:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:771:5:771:20 | "MyThing2" | | {EXTERNAL LOCATION} | str | -| main.rs:771:5:771:20 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:771:5:771:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:771:5:771:20 | SelfParam | &T | main.rs:771:5:774:5 | MyThing2 | -| main.rs:771:5:771:20 | SelfParam | &T.A | main.rs:772:21:772:21 | A | -| main.rs:771:5:771:20 | f | | file://:0:0:0:0 | & | -| main.rs:771:5:771:20 | f | | file://:0:0:0:0 | & | -| main.rs:771:5:771:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:771:5:771:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:771:5:771:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:771:5:771:20 | self | | file://:0:0:0:0 | & | -| main.rs:771:5:771:20 | self | &T | main.rs:771:5:774:5 | MyThing2 | -| main.rs:771:5:771:20 | self | &T.A | main.rs:772:21:772:21 | A | -| main.rs:772:12:773:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:772:12:773:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:772:12:773:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:772:12:773:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:773:9:773:9 | &a | | file://:0:0:0:0 | & | -| main.rs:773:9:773:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:773:9:773:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:773:9:773:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:773:9:773:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:776:5:776:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:776:5:776:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:776:5:776:20 | SelfParam | &T | main.rs:776:5:777:14 | S1 | -| main.rs:776:5:776:20 | f | | file://:0:0:0:0 | & | -| main.rs:776:5:776:20 | f | | file://:0:0:0:0 | & | -| main.rs:776:5:776:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:776:5:776:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:776:5:776:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:776:5:776:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:776:5:776:20 | self | | file://:0:0:0:0 | & | -| main.rs:776:5:776:20 | self | &T | main.rs:776:5:777:14 | S1 | -| main.rs:777:12:777:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:777:12:777:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:777:12:777:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:777:12:777:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:778:5:778:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:778:5:778:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:778:5:778:20 | SelfParam | &T | main.rs:778:5:779:14 | S2 | -| main.rs:778:5:778:20 | f | | file://:0:0:0:0 | & | -| main.rs:778:5:778:20 | f | | file://:0:0:0:0 | & | -| main.rs:778:5:778:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:778:5:778:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:778:5:778:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:778:5:778:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:778:5:778:20 | self | | file://:0:0:0:0 | & | -| main.rs:778:5:778:20 | self | &T | main.rs:778:5:779:14 | S2 | -| main.rs:779:12:779:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:779:12:779:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:779:12:779:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:779:12:779:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:783:15:783:18 | SelfParam | | main.rs:781:5:784:5 | Self [trait MyTrait1] | | main.rs:788:15:788:18 | SelfParam | | main.rs:786:5:798:5 | Self [trait MyTrait2] | | main.rs:791:9:797:9 | { ... } | | main.rs:786:20:786:22 | Tr2 | @@ -1802,36 +1184,6 @@ inferType | main.rs:867:17:867:32 | call_trait_m1(...) | A | main.rs:778:5:779:14 | S2 | | main.rs:867:31:867:31 | x | | main.rs:771:5:774:5 | MyThing2 | | main.rs:867:31:867:31 | x | A | main.rs:778:5:779:14 | S2 | -| main.rs:875:5:875:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:875:5:875:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:875:5:875:20 | SelfParam | &T | main.rs:875:5:876:14 | S1 | -| main.rs:875:5:875:20 | f | | file://:0:0:0:0 | & | -| main.rs:875:5:875:20 | f | | file://:0:0:0:0 | & | -| main.rs:875:5:875:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:875:5:875:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:875:5:875:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:875:5:875:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:875:5:875:20 | self | | file://:0:0:0:0 | & | -| main.rs:875:5:875:20 | self | &T | main.rs:875:5:876:14 | S1 | -| main.rs:876:12:876:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:876:12:876:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:876:12:876:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:876:12:876:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:878:5:878:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:878:5:878:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:878:5:878:20 | SelfParam | &T | main.rs:878:5:879:14 | S2 | -| main.rs:878:5:878:20 | f | | file://:0:0:0:0 | & | -| main.rs:878:5:878:20 | f | | file://:0:0:0:0 | & | -| main.rs:878:5:878:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:878:5:878:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:878:5:878:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:878:5:878:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:878:5:878:20 | self | | file://:0:0:0:0 | & | -| main.rs:878:5:878:20 | self | &T | main.rs:878:5:879:14 | S2 | -| main.rs:879:12:879:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:879:12:879:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:879:12:879:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:879:12:879:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:885:22:885:22 | x | | file://:0:0:0:0 | & | | main.rs:885:22:885:22 | x | &T | main.rs:885:11:885:19 | T | | main.rs:885:35:887:5 | { ... } | | file://:0:0:0:0 | & | @@ -1878,56 +1230,6 @@ inferType | main.rs:916:13:916:13 | y | | main.rs:878:5:879:14 | S2 | | main.rs:916:21:916:27 | into(...) | | main.rs:878:5:879:14 | S2 | | main.rs:916:26:916:26 | x | | main.rs:875:5:876:14 | S1 | -| main.rs:921:5:921:20 | "PairBoth" | | {EXTERNAL LOCATION} | str | -| main.rs:921:5:921:20 | "PairFst" | | {EXTERNAL LOCATION} | str | -| main.rs:921:5:921:20 | "PairNone" | | {EXTERNAL LOCATION} | str | -| main.rs:921:5:921:20 | "PairSnd" | | {EXTERNAL LOCATION} | str | -| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | &f1 | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:921:5:921:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:921:5:921:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:921:5:921:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | SelfParam | &T | main.rs:921:5:927:5 | PairOption | -| main.rs:921:5:921:20 | SelfParam | &T.Fst | main.rs:922:21:922:23 | Fst | -| main.rs:921:5:921:20 | SelfParam | &T.Snd | main.rs:922:26:922:28 | Snd | -| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | f | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:921:5:921:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:921:5:921:20 | self | | file://:0:0:0:0 | & | -| main.rs:921:5:921:20 | self | &T | main.rs:921:5:927:5 | PairOption | -| main.rs:921:5:921:20 | self | &T.Fst | main.rs:922:21:922:23 | Fst | -| main.rs:921:5:921:20 | self | &T.Snd | main.rs:922:26:922:28 | Snd | -| main.rs:922:10:926:16 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:922:10:926:16 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:922:10:926:16 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:922:10:926:16 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:930:22:930:25 | SelfParam | | main.rs:921:5:927:5 | PairOption | | main.rs:930:22:930:25 | SelfParam | Fst | main.rs:929:10:929:12 | Fst | | main.rs:930:22:930:25 | SelfParam | Snd | main.rs:929:15:929:17 | Snd | @@ -1948,51 +1250,6 @@ inferType | main.rs:934:45:934:47 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:935:41:935:43 | snd | | main.rs:929:15:929:17 | Snd | | main.rs:935:49:935:51 | snd | | main.rs:929:15:929:17 | Snd | -| main.rs:940:5:940:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:940:5:940:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:940:5:940:20 | SelfParam | &T | main.rs:940:5:941:14 | S1 | -| main.rs:940:5:940:20 | f | | file://:0:0:0:0 | & | -| main.rs:940:5:940:20 | f | | file://:0:0:0:0 | & | -| main.rs:940:5:940:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:940:5:940:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:940:5:940:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:940:5:940:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:940:5:940:20 | self | | file://:0:0:0:0 | & | -| main.rs:940:5:940:20 | self | &T | main.rs:940:5:941:14 | S1 | -| main.rs:941:12:941:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:941:12:941:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:941:12:941:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:941:12:941:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:943:5:943:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:943:5:943:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:943:5:943:20 | SelfParam | &T | main.rs:943:5:944:14 | S2 | -| main.rs:943:5:943:20 | f | | file://:0:0:0:0 | & | -| main.rs:943:5:943:20 | f | | file://:0:0:0:0 | & | -| main.rs:943:5:943:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:943:5:943:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:943:5:943:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:943:5:943:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:943:5:943:20 | self | | file://:0:0:0:0 | & | -| main.rs:943:5:943:20 | self | &T | main.rs:943:5:944:14 | S2 | -| main.rs:944:12:944:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:944:12:944:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:944:12:944:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:944:12:944:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:946:5:946:20 | "S3" | | {EXTERNAL LOCATION} | str | -| main.rs:946:5:946:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:946:5:946:20 | SelfParam | &T | main.rs:946:5:947:14 | S3 | -| main.rs:946:5:946:20 | f | | file://:0:0:0:0 | & | -| main.rs:946:5:946:20 | f | | file://:0:0:0:0 | & | -| main.rs:946:5:946:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:946:5:946:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:946:5:946:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:946:5:946:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:946:5:946:20 | self | | file://:0:0:0:0 | & | -| main.rs:946:5:946:20 | self | &T | main.rs:946:5:947:14 | S3 | -| main.rs:947:12:947:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:947:12:947:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:947:12:947:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:947:12:947:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:961:10:961:10 | t | | main.rs:921:5:927:5 | PairOption | | main.rs:961:10:961:10 | t | Fst | main.rs:943:5:944:14 | S2 | | main.rs:961:10:961:10 | t | Snd | main.rs:921:5:927:5 | PairOption | @@ -2062,33 +1319,6 @@ inferType | main.rs:983:31:983:53 | ...::PairSnd(...) | Fst | main.rs:943:5:944:14 | S2 | | main.rs:983:31:983:53 | ...::PairSnd(...) | Snd | main.rs:946:5:947:14 | S3 | | main.rs:983:51:983:52 | S3 | | main.rs:946:5:947:14 | S3 | -| main.rs:988:5:988:20 | "MyNone" | | {EXTERNAL LOCATION} | str | -| main.rs:988:5:988:20 | "MySome" | | {EXTERNAL LOCATION} | str | -| main.rs:988:5:988:20 | &f0 | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:988:5:988:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:988:5:988:20 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:988:5:988:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:988:5:988:20 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:988:5:988:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | SelfParam | &T | main.rs:988:5:992:5 | MyOption | -| main.rs:988:5:988:20 | SelfParam | &T.T | main.rs:989:19:989:19 | T | -| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | f | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:988:5:988:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:988:5:988:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:988:5:988:20 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:988:5:988:20 | self | | file://:0:0:0:0 | & | -| main.rs:988:5:988:20 | self | &T | main.rs:988:5:992:5 | MyOption | -| main.rs:988:5:988:20 | self | &T.T | main.rs:989:19:989:19 | T | -| main.rs:989:10:991:14 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:989:10:991:14 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:989:10:991:14 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:989:10:991:14 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:996:16:996:24 | SelfParam | | file://:0:0:0:0 | & | | main.rs:996:16:996:24 | SelfParam | &T | main.rs:994:5:1001:5 | Self [trait MyTrait] | | main.rs:996:27:996:31 | value | | main.rs:994:19:994:19 | S | @@ -2122,21 +1352,6 @@ inferType | main.rs:1018:34:1018:34 | x | T | main.rs:1014:10:1014:10 | T | | main.rs:1018:40:1018:40 | x | | main.rs:988:5:992:5 | MyOption | | main.rs:1018:40:1018:40 | x | T | main.rs:1014:10:1014:10 | T | -| main.rs:1023:5:1023:20 | "S" | | {EXTERNAL LOCATION} | str | -| main.rs:1023:5:1023:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1023:5:1023:20 | SelfParam | &T | main.rs:1023:5:1024:13 | S | -| main.rs:1023:5:1023:20 | f | | file://:0:0:0:0 | & | -| main.rs:1023:5:1023:20 | f | | file://:0:0:0:0 | & | -| main.rs:1023:5:1023:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1023:5:1023:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1023:5:1023:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1023:5:1023:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:1023:5:1023:20 | self | | file://:0:0:0:0 | & | -| main.rs:1023:5:1023:20 | self | &T | main.rs:1023:5:1024:13 | S | -| main.rs:1024:12:1024:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1024:12:1024:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1024:12:1024:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1024:12:1024:12 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1027:13:1027:14 | x1 | | main.rs:988:5:992:5 | MyOption | | main.rs:1027:18:1027:37 | ...::new(...) | | main.rs:988:5:992:5 | MyOption | | main.rs:1028:18:1028:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | @@ -2249,93 +1464,6 @@ inferType | main.rs:1070:18:1070:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1070:26:1070:34 | from_loop | | main.rs:988:5:992:5 | MyOption | | main.rs:1070:26:1070:34 | from_loop | T | main.rs:1023:5:1024:13 | S | -| main.rs:1076:5:1076:33 | "S" | | {EXTERNAL LOCATION} | str | -| main.rs:1076:5:1076:33 | &f0 | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:1076:5:1076:33 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:1076:5:1076:33 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:1076:5:1076:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | SelfParam | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1076:5:1076:33 | SelfParam | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1076:5:1076:33 | SelfParam | &T.T | main.rs:1077:14:1077:14 | T | -| main.rs:1076:5:1076:33 | SelfParam | &T.T | main.rs:1077:14:1077:14 | T | -| main.rs:1076:5:1076:33 | f | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | f | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1076:5:1076:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1076:5:1076:33 | f0.clone() | | main.rs:1077:14:1077:14 | T | -| main.rs:1076:5:1076:33 | f.debug_tuple(...) | | {EXTERNAL LOCATION} | DebugTuple | -| main.rs:1076:5:1076:33 | self | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | self | | file://:0:0:0:0 | & | -| main.rs:1076:5:1076:33 | self | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1076:5:1076:33 | self | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1076:5:1076:33 | self | &T.T | main.rs:1077:14:1077:14 | T | -| main.rs:1076:5:1076:33 | self | &T.T | main.rs:1077:14:1077:14 | T | -| main.rs:1077:12:1077:12 | S(...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1077:12:1077:12 | S(...) | T | main.rs:1077:14:1077:14 | T | -| main.rs:1077:12:1077:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1077:12:1077:12 | match self { ... } | | main.rs:1076:5:1077:19 | S | -| main.rs:1077:12:1077:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1077:12:1077:12 | match self { ... } | T | main.rs:1077:14:1077:14 | T | -| main.rs:1077:12:1077:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1077:12:1077:12 | { ... } | | main.rs:1076:5:1077:19 | S | -| main.rs:1077:12:1077:12 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1077:12:1077:12 | { ... } | T | main.rs:1077:14:1077:14 | T | -| main.rs:1079:5:1079:33 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:1079:5:1079:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | SelfParam | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1079:5:1079:33 | SelfParam | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1079:5:1079:33 | f | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | f | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1079:5:1079:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1079:5:1079:33 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1079:5:1079:33 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:1079:5:1079:33 | self | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | self | | file://:0:0:0:0 | & | -| main.rs:1079:5:1079:33 | self | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1079:5:1079:33 | self | &T | main.rs:1079:5:1080:14 | S2 | -| main.rs:1080:12:1080:13 | S2 | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1080:12:1080:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1080:12:1080:13 | match self { ... } | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1080:12:1080:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1080:12:1080:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1080:12:1080:13 | { ... } | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1080:12:1080:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1082:5:1082:42 | "MyInt" | | {EXTERNAL LOCATION} | str | -| main.rs:1082:5:1082:42 | "a" | | {EXTERNAL LOCATION} | str | -| main.rs:1082:5:1082:42 | ...::default(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1082:5:1082:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1082:5:1082:42 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1082:5:1082:42 | f | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | f | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1082:5:1082:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1082:5:1082:42 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1082:5:1082:42 | self | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | self | | file://:0:0:0:0 | & | -| main.rs:1082:5:1082:42 | self | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1082:5:1082:42 | self | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | MyInt {...} | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1083:12:1084:9 | match self { ... } | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1083:12:1084:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1083:12:1084:9 | { ... } | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | { ... } | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1083:12:1084:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1084:9:1084:9 | &a | | file://:0:0:0:0 | & | -| main.rs:1084:9:1084:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1084:9:1084:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1084:9:1084:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:1084:9:1084:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:1084:9:1084:9 | a.clone() | | {EXTERNAL LOCATION} | i64 | | main.rs:1088:15:1088:18 | SelfParam | | main.rs:1076:5:1077:19 | S | | main.rs:1088:15:1088:18 | SelfParam | T | main.rs:1087:10:1087:10 | T | | main.rs:1088:26:1090:9 | { ... } | | main.rs:1087:10:1087:10 | T | @@ -2606,37 +1734,6 @@ inferType | main.rs:1211:9:1211:15 | x.foo() | | file://:0:0:0:0 | & | | main.rs:1211:9:1211:15 | x.foo() | &T | main.rs:1201:5:1201:26 | MyStruct | | main.rs:1211:9:1211:15 | x.foo() | &T.T | main.rs:1199:5:1199:13 | S | -| main.rs:1216:5:1216:42 | "MyFlag" | | {EXTERNAL LOCATION} | str | -| main.rs:1216:5:1216:42 | "bool" | | {EXTERNAL LOCATION} | str | -| main.rs:1216:5:1216:42 | ...::default(...) | | {EXTERNAL LOCATION} | bool | -| main.rs:1216:5:1216:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | SelfParam | &T | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1216:5:1216:42 | SelfParam | &T | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1216:5:1216:42 | f | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | f | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1216:5:1216:42 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1216:5:1216:42 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1216:5:1216:42 | self | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | self | | file://:0:0:0:0 | & | -| main.rs:1216:5:1216:42 | self | &T | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1216:5:1216:42 | self | &T | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | MyFlag {...} | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | MyFlag {...} | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1217:12:1218:12 | match self { ... } | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1217:12:1218:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1217:12:1218:12 | { ... } | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | { ... } | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1217:12:1218:12 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1218:9:1218:12 | &bool | | file://:0:0:0:0 | & | -| main.rs:1218:9:1218:12 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1218:9:1218:12 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1218:9:1218:12 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:1218:9:1218:12 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:1218:9:1218:12 | bool.clone() | | {EXTERNAL LOCATION} | bool | | main.rs:1222:17:1222:25 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1222:17:1222:25 | SelfParam | &T | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1223:13:1223:16 | self | | file://:0:0:0:0 | & | @@ -2768,36 +1865,6 @@ inferType | main.rs:1258:27:1258:30 | flag | | main.rs:1216:5:1219:5 | MyFlag | | main.rs:1259:18:1259:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | | main.rs:1259:26:1259:29 | flag | | main.rs:1216:5:1219:5 | MyFlag | -| main.rs:1266:5:1266:20 | "S1" | | {EXTERNAL LOCATION} | str | -| main.rs:1266:5:1266:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1266:5:1266:20 | SelfParam | &T | main.rs:1266:5:1267:14 | S1 | -| main.rs:1266:5:1266:20 | f | | file://:0:0:0:0 | & | -| main.rs:1266:5:1266:20 | f | | file://:0:0:0:0 | & | -| main.rs:1266:5:1266:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1266:5:1266:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1266:5:1266:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1266:5:1266:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:1266:5:1266:20 | self | | file://:0:0:0:0 | & | -| main.rs:1266:5:1266:20 | self | &T | main.rs:1266:5:1267:14 | S1 | -| main.rs:1267:12:1267:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1267:12:1267:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1267:12:1267:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1267:12:1267:13 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1269:5:1269:20 | "S2" | | {EXTERNAL LOCATION} | str | -| main.rs:1269:5:1269:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1269:5:1269:20 | SelfParam | &T | main.rs:1269:5:1270:14 | S2 | -| main.rs:1269:5:1269:20 | f | | file://:0:0:0:0 | & | -| main.rs:1269:5:1269:20 | f | | file://:0:0:0:0 | & | -| main.rs:1269:5:1269:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1269:5:1269:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1269:5:1269:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1269:5:1269:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:1269:5:1269:20 | self | | file://:0:0:0:0 | & | -| main.rs:1269:5:1269:20 | self | &T | main.rs:1269:5:1270:14 | S2 | -| main.rs:1270:12:1270:13 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1270:12:1270:13 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1270:12:1270:13 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1270:12:1270:13 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1273:43:1276:5 | { ... } | | {EXTERNAL LOCATION} | Result | | main.rs:1273:43:1276:5 | { ... } | E | main.rs:1266:5:1267:14 | S1 | | main.rs:1273:43:1276:5 | { ... } | T | main.rs:1266:5:1267:14 | S1 | @@ -2936,39 +2003,6 @@ inferType | main.rs:1347:13:1347:17 | ... = ... | | file://:0:0:0:0 | () | | main.rs:1347:17:1347:17 | 2 | | {EXTERNAL LOCATION} | i32 | | main.rs:1349:9:1349:9 | a | | {EXTERNAL LOCATION} | i32 | -| main.rs:1357:5:1357:33 | "Vec2" | | {EXTERNAL LOCATION} | str | -| main.rs:1357:5:1357:33 | "x" | | {EXTERNAL LOCATION} | str | -| main.rs:1357:5:1357:33 | "y" | | {EXTERNAL LOCATION} | str | -| main.rs:1357:5:1357:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1357:5:1357:33 | SelfParam | &T | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1357:5:1357:33 | f | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | f | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1357:5:1357:33 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1357:5:1357:33 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1357:5:1357:33 | self | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | self | | file://:0:0:0:0 | & | -| main.rs:1357:5:1357:33 | self | &T | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1357:5:1357:33 | self | &T | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1358:12:1360:9 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1358:12:1360:9 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1358:12:1360:9 | match self { ... } | | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1358:12:1360:9 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1358:12:1360:9 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1358:12:1360:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | -| main.rs:1358:12:1360:9 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1359:9:1359:9 | &x | | file://:0:0:0:0 | & | -| main.rs:1359:9:1359:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1359:9:1359:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1359:9:1359:9 | x.clone() | | {EXTERNAL LOCATION} | i64 | -| main.rs:1359:9:1360:9 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1359:9:1360:9 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1359:9:1360:9 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:1359:9:1360:9 | ... .finish() | E | {EXTERNAL LOCATION} | Error | -| main.rs:1360:9:1360:9 | &y | | file://:0:0:0:0 | & | -| main.rs:1360:9:1360:9 | y.clone() | | {EXTERNAL LOCATION} | i64 | | main.rs:1363:30:1365:9 | { ... } | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1364:13:1364:31 | Vec2 {...} | | main.rs:1356:5:1361:5 | Vec2 | | main.rs:1364:23:1364:23 | 0 | | {EXTERNAL LOCATION} | i32 | @@ -3787,47 +2821,10 @@ inferType | main.rs:1823:13:1823:13 | d | | main.rs:1771:5:1771:14 | S2 | | main.rs:1823:17:1823:34 | uses_my_trait2(...) | | main.rs:1771:5:1771:14 | S2 | | main.rs:1823:32:1823:33 | S1 | | main.rs:1770:5:1770:14 | S1 | -| main.rs:1830:5:1830:20 | "S" | | {EXTERNAL LOCATION} | str | -| main.rs:1830:5:1830:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1830:5:1830:20 | SelfParam | &T | main.rs:1830:5:1831:13 | S | -| main.rs:1830:5:1830:20 | f | | file://:0:0:0:0 | & | -| main.rs:1830:5:1830:20 | f | | file://:0:0:0:0 | & | -| main.rs:1830:5:1830:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1830:5:1830:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1830:5:1830:20 | f.write_str(...) | | {EXTERNAL LOCATION} | Result | -| main.rs:1830:5:1830:20 | f.write_str(...) | E | {EXTERNAL LOCATION} | Error | -| main.rs:1830:5:1830:20 | self | | file://:0:0:0:0 | & | -| main.rs:1830:5:1830:20 | self | &T | main.rs:1830:5:1831:13 | S | -| main.rs:1831:12:1831:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1831:12:1831:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1831:12:1831:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1831:12:1831:12 | { ... } | E | {EXTERNAL LOCATION} | Error | | main.rs:1834:16:1834:20 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1834:16:1834:20 | SelfParam | &T | main.rs:1830:5:1831:13 | S | | main.rs:1834:31:1836:9 | { ... } | | main.rs:1830:5:1831:13 | S | | main.rs:1835:13:1835:13 | S | | main.rs:1830:5:1831:13 | S | -| main.rs:1839:5:1839:20 | "MyVec" | | {EXTERNAL LOCATION} | str | -| main.rs:1839:5:1839:20 | "data" | | {EXTERNAL LOCATION} | str | -| main.rs:1839:5:1839:20 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1839:5:1839:20 | SelfParam | &T | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1839:5:1839:20 | SelfParam | &T.T | main.rs:1840:18:1840:18 | T | -| main.rs:1839:5:1839:20 | f | | file://:0:0:0:0 | & | -| main.rs:1839:5:1839:20 | f | | file://:0:0:0:0 | & | -| main.rs:1839:5:1839:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1839:5:1839:20 | f | &T | {EXTERNAL LOCATION} | Formatter | -| main.rs:1839:5:1839:20 | f.debug_struct(...) | | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1839:5:1839:20 | self | | file://:0:0:0:0 | & | -| main.rs:1839:5:1839:20 | self | &T | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1839:5:1839:20 | self | &T.T | main.rs:1840:18:1840:18 | T | -| main.rs:1840:12:1841:12 | match self { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1840:12:1841:12 | match self { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1840:12:1841:12 | { ... } | | {EXTERNAL LOCATION} | Result | -| main.rs:1840:12:1841:12 | { ... } | E | {EXTERNAL LOCATION} | Error | -| main.rs:1841:9:1841:12 | &data | | file://:0:0:0:0 | & | -| main.rs:1841:9:1841:12 | ... .field(...) | | file://:0:0:0:0 | & | -| main.rs:1841:9:1841:12 | ... .field(...) | &T | {EXTERNAL LOCATION} | DebugStruct | -| main.rs:1841:9:1841:12 | ... .finish() | | {EXTERNAL LOCATION} | Result | -| main.rs:1841:9:1841:12 | ... .finish() | E | {EXTERNAL LOCATION} | Error | | main.rs:1845:26:1847:9 | { ... } | | main.rs:1839:5:1842:5 | MyVec | | main.rs:1845:26:1847:9 | { ... } | T | main.rs:1844:10:1844:10 | T | | main.rs:1846:13:1846:38 | MyVec {...} | | main.rs:1839:5:1842:5 | MyVec | @@ -3973,93 +2970,3 @@ inferType | main.rs:1928:41:1928:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | | main.rs:1944:5:1944:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures -| main.rs:2:5:2:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:5:5:5:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:7:9:7:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:7:9:7:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:10:5:10:20 | ... .field(...) | Unexpected result: method=field | -| main.rs:10:5:10:20 | ... .finish() | Unexpected result: method=finish | -| main.rs:10:5:10:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | -| main.rs:16:5:16:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:18:9:18:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:18:9:18:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:99:5:99:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:101:9:101:13 | ... .field(...) | Unexpected result: method=field | -| main.rs:101:9:101:13 | ... .finish() | Unexpected result: method=finish | -| main.rs:125:5:125:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:127:9:127:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:127:9:127:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:130:5:130:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:132:5:132:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:175:5:175:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:177:9:177:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:177:9:177:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:180:5:180:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:182:9:182:10 | ... .field(...) | Unexpected result: method=field | -| main.rs:182:9:183:10 | ... .field(...) | Unexpected result: method=field | -| main.rs:182:9:183:10 | ... .finish() | Unexpected result: method=finish | -| main.rs:186:5:186:33 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:188:5:188:33 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:190:5:190:42 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:397:5:397:33 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:440:5:440:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:443:5:443:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:516:5:516:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:518:9:518:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:518:9:518:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:521:5:521:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:523:5:523:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:587:5:587:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:589:9:589:13 | ... .field(...) | Unexpected result: method=field | -| main.rs:589:9:589:13 | ... .finish() | Unexpected result: method=finish | -| main.rs:638:5:638:29 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:641:5:641:29 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:644:5:644:29 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:736:5:736:20 | ... .field(...) | Unexpected result: method=field | -| main.rs:736:5:736:20 | ... .finish() | Unexpected result: method=finish | -| main.rs:736:5:736:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:736:5:736:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | -| main.rs:739:14:739:14 | ... .field(...) | Unexpected result: method=field | -| main.rs:739:14:739:14 | ... .finish() | Unexpected result: method=finish | -| main.rs:742:5:742:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:744:5:744:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:766:5:766:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:768:9:768:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:768:9:768:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:771:5:771:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:773:9:773:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:773:9:773:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:776:5:776:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:778:5:778:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:875:5:875:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:878:5:878:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:921:5:921:20 | ... .field(...) | Unexpected result: method=field | -| main.rs:921:5:921:20 | ... .finish() | Unexpected result: method=finish | -| main.rs:921:5:921:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | -| main.rs:940:5:940:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:943:5:943:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:946:5:946:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:988:5:988:20 | ... .field(...) | Unexpected result: method=field | -| main.rs:988:5:988:20 | ... .finish() | Unexpected result: method=finish | -| main.rs:988:5:988:20 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | -| main.rs:1023:5:1023:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:1076:5:1076:33 | ... .field(...) | Unexpected result: method=field | -| main.rs:1076:5:1076:33 | ... .finish() | Unexpected result: method=finish | -| main.rs:1076:5:1076:33 | f.debug_tuple(...) | Unexpected result: method=debug_tuple | -| main.rs:1079:5:1079:33 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:1082:5:1082:42 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:1084:9:1084:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:1084:9:1084:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:1216:5:1216:42 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:1218:9:1218:12 | ... .field(...) | Unexpected result: method=field | -| main.rs:1218:9:1218:12 | ... .finish() | Unexpected result: method=finish | -| main.rs:1266:5:1266:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:1269:5:1269:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:1357:5:1357:33 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:1359:9:1359:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:1359:9:1360:9 | ... .field(...) | Unexpected result: method=field | -| main.rs:1359:9:1360:9 | ... .finish() | Unexpected result: method=finish | -| main.rs:1830:5:1830:20 | f.write_str(...) | Unexpected result: method=write_str | -| main.rs:1839:5:1839:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | -| main.rs:1841:9:1841:12 | ... .field(...) | Unexpected result: method=field | -| main.rs:1841:9:1841:12 | ... .finish() | Unexpected result: method=finish | From 768ccc6a540270b29e58292e82fb2bd5ea7958fa Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:26:08 +0200 Subject: [PATCH 221/340] JS: Add test for react 'use' function --- .../ql/test/library-tests/TripleDot/react-use.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 javascript/ql/test/library-tests/TripleDot/react-use.js diff --git a/javascript/ql/test/library-tests/TripleDot/react-use.js b/javascript/ql/test/library-tests/TripleDot/react-use.js new file mode 100644 index 00000000000..294a4f303eb --- /dev/null +++ b/javascript/ql/test/library-tests/TripleDot/react-use.js @@ -0,0 +1,12 @@ +import { use } from "react"; + +async function fetchData() { + return new Promise((resolve) => { + resolve(source("fetchedData")); + }); +} + +function Component() { + const data = use(fetchData()); + sink(data); // $ MISSING: hasValueFlow=fetchedData +} From 980d0f46fa56761091e28d8e3edc91d7e2263386 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:27:21 +0200 Subject: [PATCH 222/340] JS: Add model for react 'use' --- javascript/ql/lib/ext/react.model.yml | 6 ++++++ javascript/ql/test/library-tests/TripleDot/react-use.js | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 javascript/ql/lib/ext/react.model.yml diff --git a/javascript/ql/lib/ext/react.model.yml b/javascript/ql/lib/ext/react.model.yml new file mode 100644 index 00000000000..51b6aaefc46 --- /dev/null +++ b/javascript/ql/lib/ext/react.model.yml @@ -0,0 +1,6 @@ +extensions: + - addsTo: + pack: codeql/javascript-all + extensible: summaryModel + data: + - ["react", "Member[use]", "Argument[0].Awaited", "ReturnValue", "value"] diff --git a/javascript/ql/test/library-tests/TripleDot/react-use.js b/javascript/ql/test/library-tests/TripleDot/react-use.js index 294a4f303eb..1691a7fbea4 100644 --- a/javascript/ql/test/library-tests/TripleDot/react-use.js +++ b/javascript/ql/test/library-tests/TripleDot/react-use.js @@ -8,5 +8,5 @@ async function fetchData() { function Component() { const data = use(fetchData()); - sink(data); // $ MISSING: hasValueFlow=fetchedData + sink(data); // $ hasValueFlow=fetchedData } From 8ff7182f3a3d433b63acb28cd599a12a45884d1c Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:37:15 +0200 Subject: [PATCH 223/340] JS: Move React test predicates into one file --- .../frameworks/ReactJS/ReactComponent.qll | 3 - ...ReactComponent_getACandidatePropsValue.qll | 5 -- ...eactComponent_getACandidateStateSource.qll | 7 -- .../ReactComponent_getADirectPropsSource.qll | 5 -- ...ReactComponent_getAPreviousStateSource.qll | 7 -- .../ReactJS/ReactComponent_getAPropRead.qll | 5 -- .../ReactComponent_getInstanceMethod.qll | 5 -- .../frameworks/ReactJS/ReactComponent_ref.qll | 3 - .../frameworks/ReactJS/ReactName.qll | 17 ----- .../ReactJS/getADirectStateAccess.qll | 5 -- .../frameworks/ReactJS/react.qll | 3 - .../library-tests/frameworks/ReactJS/tests.ql | 67 ++++++++++++++++--- 12 files changed, 56 insertions(+), 76 deletions(-) delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidatePropsValue.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidateStateSource.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getADirectPropsSource.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPreviousStateSource.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPropRead.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getInstanceMethod.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_ref.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/ReactName.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/getADirectStateAccess.qll delete mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/react.qll diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent.qll deleted file mode 100644 index a48c6b8f1c9..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent.qll +++ /dev/null @@ -1,3 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent(ReactComponent c) { any() } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidatePropsValue.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidatePropsValue.qll deleted file mode 100644 index a551aa457ec..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidatePropsValue.qll +++ /dev/null @@ -1,5 +0,0 @@ -import javascript - -query predicate test_ReactComponent_getACandidatePropsValue(DataFlow::Node res) { - exists(ReactComponent c | res = c.getACandidatePropsValue(_)) -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidateStateSource.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidateStateSource.qll deleted file mode 100644 index af6597ab96c..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getACandidateStateSource.qll +++ /dev/null @@ -1,7 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_getACandidateStateSource( - ReactComponent c, DataFlow::SourceNode res -) { - res = c.getACandidateStateSource() -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getADirectPropsSource.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getADirectPropsSource.qll deleted file mode 100644 index 9f9ebd89f8d..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getADirectPropsSource.qll +++ /dev/null @@ -1,5 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_getADirectPropsSource(ReactComponent c, DataFlow::SourceNode res) { - res = c.getADirectPropsAccess() -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPreviousStateSource.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPreviousStateSource.qll deleted file mode 100644 index b1bfe312dae..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPreviousStateSource.qll +++ /dev/null @@ -1,7 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_getAPreviousStateSource( - ReactComponent c, DataFlow::SourceNode res -) { - res = c.getAPreviousStateSource() -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPropRead.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPropRead.qll deleted file mode 100644 index 0ff2a588a02..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getAPropRead.qll +++ /dev/null @@ -1,5 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_getAPropRead(ReactComponent c, string n, DataFlow::PropRead res) { - res = c.getAPropRead(n) -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getInstanceMethod.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getInstanceMethod.qll deleted file mode 100644 index b813e19539b..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_getInstanceMethod.qll +++ /dev/null @@ -1,5 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_getInstanceMethod(ReactComponent c, string n, Function res) { - res = c.getInstanceMethod(n) -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_ref.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_ref.qll deleted file mode 100644 index a017a0715fe..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactComponent_ref.qll +++ /dev/null @@ -1,3 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_ReactComponent_ref(ReactComponent c, DataFlow::Node res) { res = c.ref() } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactName.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/ReactName.qll deleted file mode 100644 index 885f1f38a57..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/ReactName.qll +++ /dev/null @@ -1,17 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_JSXname(JsxElement element, JsxName jsxname, string name, string type) { - name = jsxname.getValue() and - ( - jsxname instanceof Identifier and type = "Identifier" - or - jsxname instanceof ThisExpr and type = "thisExpr" - or - jsxname.(DotExpr).getBase() instanceof JsxName and type = "dot" - or - jsxname instanceof JsxQualifiedName and type = "qualifiedName" - ) and - element.getNameExpr() = jsxname -} - -query ThisExpr test_JsxName_this(JsxElement element) { result.getParentExpr+() = element } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/getADirectStateAccess.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/getADirectStateAccess.qll deleted file mode 100644 index b43f3e487d7..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/getADirectStateAccess.qll +++ /dev/null @@ -1,5 +0,0 @@ -import semmle.javascript.frameworks.React - -query predicate test_getADirectStateAccess(ReactComponent c, DataFlow::SourceNode res) { - res = c.getADirectStateAccess() -} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/react.qll b/javascript/ql/test/library-tests/frameworks/ReactJS/react.qll deleted file mode 100644 index a5f254b7970..00000000000 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/react.qll +++ /dev/null @@ -1,3 +0,0 @@ -import javascript - -query predicate test_react(DataFlow::ValueNode nd) { react().flowsTo(nd) } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql index 4d20306d4ed..653f2481d97 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql @@ -1,14 +1,59 @@ -import getADirectStateAccess -import ReactComponent_getInstanceMethod -import react -import ReactComponent_getAPreviousStateSource -import ReactComponent_ref -import ReactComponent_getACandidateStateSource -import ReactComponent_getADirectPropsSource -import ReactComponent_getACandidatePropsValue -import ReactComponent -import ReactComponent_getAPropRead -import ReactName +import javascript +import semmle.javascript.frameworks.React + +query predicate test_getADirectStateAccess(ReactComponent c, DataFlow::SourceNode res) { + res = c.getADirectStateAccess() +} + +query predicate test_ReactComponent_getInstanceMethod(ReactComponent c, string n, Function res) { + res = c.getInstanceMethod(n) +} + +query predicate test_react(DataFlow::ValueNode nd) { react().flowsTo(nd) } + +query predicate test_ReactComponent_getAPreviousStateSource( + ReactComponent c, DataFlow::SourceNode res +) { + res = c.getAPreviousStateSource() +} + +query predicate test_ReactComponent_ref(ReactComponent c, DataFlow::Node res) { res = c.ref() } + +query predicate test_ReactComponent_getACandidateStateSource( + ReactComponent c, DataFlow::SourceNode res +) { + res = c.getACandidateStateSource() +} + +query predicate test_ReactComponent_getADirectPropsSource(ReactComponent c, DataFlow::SourceNode res) { + res = c.getADirectPropsAccess() +} + +query predicate test_ReactComponent_getACandidatePropsValue(DataFlow::Node res) { + exists(ReactComponent c | res = c.getACandidatePropsValue(_)) +} + +query predicate test_ReactComponent(ReactComponent c) { any() } + +query predicate test_ReactComponent_getAPropRead(ReactComponent c, string n, DataFlow::PropRead res) { + res = c.getAPropRead(n) +} + +query predicate test_JSXname(JsxElement element, JsxName jsxname, string name, string type) { + name = jsxname.getValue() and + ( + jsxname instanceof Identifier and type = "Identifier" + or + jsxname instanceof ThisExpr and type = "thisExpr" + or + jsxname.(DotExpr).getBase() instanceof JsxName and type = "dot" + or + jsxname instanceof JsxQualifiedName and type = "qualifiedName" + ) and + element.getNameExpr() = jsxname +} + +query ThisExpr test_JsxName_this(JsxElement element) { result.getParentExpr+() = element } query DataFlow::SourceNode locationSource() { result = DOM::locationSource() } From 84accd1c81846043ea1c42816f36b259ef99de97 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 20 Jun 2025 16:12:53 +0200 Subject: [PATCH 224/340] Rust: Implement overloaded index expression in type inference --- .../rust/dataflow/internal/DataFlowImpl.qll | 6 +- .../rust/elements/internal/CallImpl.qll | 16 ++++ .../codeql/rust/internal/TypeInference.qll | 77 ++++++++++--------- .../test/library-tests/type-inference/main.rs | 8 +- .../type-inference/type-inference.expected | 73 ++---------------- 5 files changed, 69 insertions(+), 111 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 59ff2fc24c2..20c9e80b87a 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -959,7 +959,11 @@ private module Cached { cached newtype TDataFlowCall = - TCall(CallCfgNode c) { Stages::DataFlowStage::ref() } or + TCall(CallCfgNode c) { + Stages::DataFlowStage::ref() and + // TODO: Handle index expressions as calls in data flow. + not c.getCall() instanceof IndexExpr + } or TSummaryCall( FlowSummaryImpl::Public::SummarizedCallable c, FlowSummaryImpl::Private::SummaryNode receiver ) { diff --git a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll index f350e88efad..9cd45ca7670 100644 --- a/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll +++ b/rust/ql/lib/codeql/rust/elements/internal/CallImpl.qll @@ -160,4 +160,20 @@ module Impl { pos.asPosition() = 0 and result = super.getOperand(1) } } + + private class IndexCall extends Call instanceof IndexExpr { + override string getMethodName() { result = "index" } + + override Trait getTrait() { result.getCanonicalPath() = "core::ops::index::Index" } + + override predicate implicitBorrowAt(ArgumentPosition pos, boolean certain) { + pos.isSelf() and certain = true + } + + override Expr getArgument(ArgumentPosition pos) { + pos.isSelf() and result = super.getBase() + or + pos.asPosition() = 0 and result = super.getIndex() + } + } } diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index b560ac5ec8c..04cb6b2c484 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -772,45 +772,48 @@ private Type inferCallExprBaseType(AstNode n, TypePath path) { n = a.getNodeAt(apos) and result = CallExprBaseMatching::inferAccessType(a, apos, path0) | - ( + if apos.isBorrowed(true) or - // The desugaring of the unary `*e` is `*Deref::deref(&e)`. To handle the - // deref expression after the call we must strip a `&` from the type at - // the return position. - apos.isReturn() and a instanceof DerefExpr - ) and - path0.isCons(TRefTypeParameter(), path) - or - apos.isBorrowed(false) and - exists(Type argType | argType = inferType(n) | - if argType = TRefType() + // The desugaring of the unary `*e` is `*Deref::deref(&e)` and the + // desugaring of `a[b]` is `*Index::index(&a, b)`. To handle the deref + // expression after the call we must strip a `&` from the type at the + // return position. + apos.isReturn() and + (a instanceof DerefExpr or a instanceof IndexExpr) + then path0.isCons(TRefTypeParameter(), path) + else + if apos.isBorrowed(false) then - path = path0 and - path0.isCons(TRefTypeParameter(), _) - or - // adjust for implicit deref - not path0.isCons(TRefTypeParameter(), _) and - not (path0.isEmpty() and result = TRefType()) and - path = TypePath::cons(TRefTypeParameter(), path0) - else ( - not ( - argType.(StructType).asItemNode() instanceof StringStruct and - result.(StructType).asItemNode() instanceof Builtins::Str - ) and - ( - not path0.isCons(TRefTypeParameter(), _) and - not (path0.isEmpty() and result = TRefType()) and - path = path0 - or - // adjust for implicit borrow - path0.isCons(TRefTypeParameter(), path) + exists(Type argType | argType = inferType(n) | + if argType = TRefType() + then + path = path0 and + path0.isCons(TRefTypeParameter(), _) + or + // adjust for implicit deref + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) and + path = TypePath::cons(TRefTypeParameter(), path0) + else ( + not ( + argType.(StructType).asItemNode() instanceof StringStruct and + result.(StructType).asItemNode() instanceof Builtins::Str + ) and + ( + not path0.isCons(TRefTypeParameter(), _) and + not (path0.isEmpty() and result = TRefType()) and + path = path0 + or + // adjust for implicit borrow + path0.isCons(TRefTypeParameter(), path) + ) + ) ) + else ( + not apos.isBorrowed(_) and + path = path0 ) - ) - or - not apos.isBorrowed(_) and - path = path0 ) } @@ -1116,8 +1119,8 @@ private class Vec extends Struct { */ pragma[nomagic] private Type inferIndexExprType(IndexExpr ie, TypePath path) { - // TODO: Should be implemented as method resolution, using the special - // `std::ops::Index` trait. + // TODO: Method resolution to the `std::ops::Index` trait can handle the + // `Index` instances for slices and arrays. exists(TypePath exprPath, Builtins::BuiltinType t | TStruct(t) = inferType(ie.getIndex()) and ( @@ -1129,8 +1132,6 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { ) and result = inferType(ie.getBase(), exprPath) | - exprPath.isCons(any(Vec v).getElementTypeParameter(), path) - or exprPath.isCons(any(ArrayTypeParameter tp), path) or exists(TypePath path0 | diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index 109581588a5..a963e2e0edc 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1856,21 +1856,21 @@ mod indexers { // MyVec::index fn index(&self, index: usize) -> &Self::Output { - &self.data[index] // $ fieldof=MyVec + &self.data[index] // $ fieldof=MyVec method=index } } fn analyze_slice(slice: &[S]) { - let x = slice[0].foo(); // $ method=foo type=x:S + let x = slice[0].foo(); // $ method=foo type=x:S method=index } pub fn f() { let mut vec = MyVec::new(); // $ type=vec:T.S vec.push(S); // $ method=push - vec[0].foo(); // $ MISSING: method=foo -- type inference does not support the `Index` trait yet + vec[0].foo(); // $ method=MyVec::index method=foo let xs: [S; 1] = [S]; - let x = xs[0].foo(); // $ method=foo type=x:S + let x = xs[0].foo(); // $ method=foo type=x:S method=index analyze_slice(&xs); } 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 3a628ac5c96..35df5930a5c 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -31,23 +31,15 @@ inferType | dereference.rs:36:14:36:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:36:36:36:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:9:37:11 | _b2 | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:37:9:37:11 | _b2 | | file://:0:0:0:0 | & | -| dereference.rs:37:9:37:11 | _b2 | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:15:37:17 | * ... | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:37:15:37:17 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:37:15:37:17 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:37:16:37:17 | a2 | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:40:9:40:10 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:40:14:40:42 | MyIntPointer {...} | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:40:36:40:40 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:9:41:11 | _b3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:41:15:41:19 | (...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:41:15:41:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:41:15:41:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:15:41:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:41:16:41:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:41:16:41:18 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:41:16:41:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:41:17:41:18 | a3 | | dereference.rs:4:1:6:1 | MyIntPointer | | dereference.rs:46:9:46:10 | c1 | | dereference.rs:17:1:19:1 | MySmartPointer | | dereference.rs:46:9:46:10 | c1 | T | {EXTERNAL LOCATION} | char | @@ -66,11 +58,7 @@ inferType | dereference.rs:50:14:50:42 | MySmartPointer {...} | T | {EXTERNAL LOCATION} | char | | dereference.rs:50:38:50:40 | 'a' | | {EXTERNAL LOCATION} | char | | dereference.rs:51:9:51:11 | _d2 | | {EXTERNAL LOCATION} | char | -| dereference.rs:51:9:51:11 | _d2 | | file://:0:0:0:0 | & | -| dereference.rs:51:9:51:11 | _d2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:51:15:51:17 | * ... | | {EXTERNAL LOCATION} | char | -| dereference.rs:51:15:51:17 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:51:15:51:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:51:16:51:17 | c2 | | dereference.rs:17:1:19:1 | MySmartPointer | | dereference.rs:51:16:51:17 | c2 | T | {EXTERNAL LOCATION} | char | | dereference.rs:54:9:54:10 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | @@ -80,12 +68,8 @@ inferType | dereference.rs:54:38:54:42 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:9:55:11 | _d3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:55:15:55:19 | (...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:55:15:55:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:55:15:55:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:15:55:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:55:16:55:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:55:16:55:18 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:55:16:55:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:55:17:55:18 | c3 | | dereference.rs:17:1:19:1 | MySmartPointer | | dereference.rs:55:17:55:18 | c3 | T | {EXTERNAL LOCATION} | i64 | | dereference.rs:60:9:60:10 | e1 | | file://:0:0:0:0 | & | @@ -107,11 +91,7 @@ inferType | dereference.rs:64:14:64:17 | &'a' | &T | {EXTERNAL LOCATION} | char | | dereference.rs:64:15:64:17 | 'a' | | {EXTERNAL LOCATION} | char | | dereference.rs:65:9:65:11 | _f2 | | {EXTERNAL LOCATION} | char | -| dereference.rs:65:9:65:11 | _f2 | | file://:0:0:0:0 | & | -| dereference.rs:65:9:65:11 | _f2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:65:15:65:17 | * ... | | {EXTERNAL LOCATION} | char | -| dereference.rs:65:15:65:17 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:65:15:65:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:65:16:65:17 | e2 | | file://:0:0:0:0 | & | | dereference.rs:65:16:65:17 | e2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:68:9:68:10 | e3 | | file://:0:0:0:0 | & | @@ -121,12 +101,8 @@ inferType | dereference.rs:68:15:68:19 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:9:69:11 | _f3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:15:69:19 | (...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:69:15:69:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:69:15:69:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:15:69:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:69:16:69:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:69:16:69:18 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:69:16:69:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:69:17:69:18 | e3 | | file://:0:0:0:0 | & | | dereference.rs:69:17:69:18 | e3 | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:74:9:74:10 | g1 | | {EXTERNAL LOCATION} | Box | @@ -151,11 +127,7 @@ inferType | dereference.rs:78:25:78:37 | ...::new(...) | T | {EXTERNAL LOCATION} | char | | dereference.rs:78:34:78:36 | 'a' | | {EXTERNAL LOCATION} | char | | dereference.rs:79:9:79:11 | _h2 | | {EXTERNAL LOCATION} | char | -| dereference.rs:79:9:79:11 | _h2 | | file://:0:0:0:0 | & | -| dereference.rs:79:9:79:11 | _h2 | &T | {EXTERNAL LOCATION} | char | | dereference.rs:79:15:79:17 | * ... | | {EXTERNAL LOCATION} | char | -| dereference.rs:79:15:79:17 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:79:15:79:17 | * ... | &T | {EXTERNAL LOCATION} | char | | dereference.rs:79:16:79:17 | g2 | | {EXTERNAL LOCATION} | Box | | dereference.rs:79:16:79:17 | g2 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:79:16:79:17 | g2 | T | {EXTERNAL LOCATION} | char | @@ -168,12 +140,8 @@ inferType | dereference.rs:82:33:82:37 | 34i64 | | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:9:83:11 | _h3 | | {EXTERNAL LOCATION} | bool | | dereference.rs:83:15:83:19 | (...) | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:83:15:83:19 | (...) | | file://:0:0:0:0 | & | -| dereference.rs:83:15:83:19 | (...) | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:15:83:33 | ... .is_positive() | | {EXTERNAL LOCATION} | bool | | dereference.rs:83:16:83:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| dereference.rs:83:16:83:18 | * ... | | file://:0:0:0:0 | & | -| dereference.rs:83:16:83:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | dereference.rs:83:17:83:18 | g3 | | {EXTERNAL LOCATION} | Box | | dereference.rs:83:17:83:18 | g3 | A | {EXTERNAL LOCATION} | Global | | dereference.rs:83:17:83:18 | g3 | T | {EXTERNAL LOCATION} | i64 | @@ -2372,27 +2340,15 @@ inferType | main.rs:1109:29:1109:33 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1109:29:1109:33 | SelfParam | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1109:43:1111:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1110:13:1110:22 | (...) | | file://:0:0:0:0 | & | | main.rs:1110:13:1110:22 | (...) | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:13:1110:22 | (...) | &T | file://:0:0:0:0 | & | -| main.rs:1110:13:1110:22 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:13:1110:22 | (...) | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:13:1110:24 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1110:14:1110:21 | * ... | | file://:0:0:0:0 | & | | main.rs:1110:14:1110:21 | * ... | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:14:1110:21 | * ... | &T | file://:0:0:0:0 | & | -| main.rs:1110:14:1110:21 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:14:1110:21 | * ... | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:15:1110:21 | (...) | | file://:0:0:0:0 | & | | main.rs:1110:15:1110:21 | (...) | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:15:1110:21 | (...) | &T | file://:0:0:0:0 | & | | main.rs:1110:15:1110:21 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:15:1110:21 | (...) | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:16:1110:20 | * ... | | file://:0:0:0:0 | & | | main.rs:1110:16:1110:20 | * ... | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:16:1110:20 | * ... | &T | file://:0:0:0:0 | & | | main.rs:1110:16:1110:20 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1110:16:1110:20 | * ... | &T.&T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1110:17:1110:20 | self | | file://:0:0:0:0 | & | | main.rs:1110:17:1110:20 | self | &T | file://:0:0:0:0 | & | | main.rs:1110:17:1110:20 | self | &T | main.rs:1082:5:1085:5 | MyInt | @@ -2400,13 +2356,9 @@ inferType | main.rs:1114:33:1114:36 | SelfParam | | file://:0:0:0:0 | & | | main.rs:1114:33:1114:36 | SelfParam | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1114:46:1116:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1115:13:1115:19 | (...) | | file://:0:0:0:0 | & | | main.rs:1115:13:1115:19 | (...) | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1115:13:1115:19 | (...) | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1115:13:1115:21 | ... .a | | {EXTERNAL LOCATION} | i64 | -| main.rs:1115:14:1115:18 | * ... | | file://:0:0:0:0 | & | | main.rs:1115:14:1115:18 | * ... | | main.rs:1082:5:1085:5 | MyInt | -| main.rs:1115:14:1115:18 | * ... | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1115:15:1115:18 | self | | file://:0:0:0:0 | & | | main.rs:1115:15:1115:18 | self | &T | main.rs:1082:5:1085:5 | MyInt | | main.rs:1120:13:1120:14 | x1 | | main.rs:1076:5:1077:19 | S | @@ -2504,16 +2456,10 @@ inferType | main.rs:1143:19:1143:23 | S(...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1143:21:1143:22 | S2 | | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:18:1146:23 | "{:?}\\n" | | {EXTERNAL LOCATION} | str | -| main.rs:1146:26:1146:30 | (...) | | file://:0:0:0:0 | & | | main.rs:1146:26:1146:30 | (...) | | main.rs:1076:5:1077:19 | S | -| main.rs:1146:26:1146:30 | (...) | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:26:1146:30 | (...) | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:26:1146:30 | (...) | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:26:1146:35 | ... .m1() | | main.rs:1079:5:1080:14 | S2 | -| main.rs:1146:27:1146:29 | * ... | | file://:0:0:0:0 | & | | main.rs:1146:27:1146:29 | * ... | | main.rs:1076:5:1077:19 | S | -| main.rs:1146:27:1146:29 | * ... | &T | main.rs:1076:5:1077:19 | S | -| main.rs:1146:27:1146:29 | * ... | &T.T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:27:1146:29 | * ... | T | main.rs:1079:5:1080:14 | S2 | | main.rs:1146:28:1146:29 | x6 | | file://:0:0:0:0 | & | | main.rs:1146:28:1146:29 | x6 | &T | main.rs:1076:5:1077:19 | S | @@ -2739,20 +2685,10 @@ inferType | main.rs:1251:15:1251:16 | &x | &T | main.rs:1227:5:1227:13 | S | | main.rs:1251:16:1251:16 | x | | main.rs:1227:5:1227:13 | S | | main.rs:1253:13:1253:13 | n | | {EXTERNAL LOCATION} | bool | -| main.rs:1253:13:1253:13 | n | | file://:0:0:0:0 | & | -| main.rs:1253:13:1253:13 | n | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1253:13:1253:13 | n | &T | file://:0:0:0:0 | & | -| main.rs:1253:13:1253:13 | n | &T.&T | {EXTERNAL LOCATION} | bool | | main.rs:1253:17:1253:24 | * ... | | {EXTERNAL LOCATION} | bool | -| main.rs:1253:17:1253:24 | * ... | | file://:0:0:0:0 | & | -| main.rs:1253:17:1253:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1253:17:1253:24 | * ... | &T | file://:0:0:0:0 | & | -| main.rs:1253:17:1253:24 | * ... | &T.&T | {EXTERNAL LOCATION} | bool | | main.rs:1253:18:1253:24 | * ... | | {EXTERNAL LOCATION} | bool | | main.rs:1253:18:1253:24 | * ... | | file://:0:0:0:0 | & | | main.rs:1253:18:1253:24 | * ... | &T | {EXTERNAL LOCATION} | bool | -| main.rs:1253:18:1253:24 | * ... | &T | file://:0:0:0:0 | & | -| main.rs:1253:18:1253:24 | * ... | &T.&T | {EXTERNAL LOCATION} | bool | | main.rs:1253:19:1253:24 | &... | | file://:0:0:0:0 | & | | main.rs:1253:19:1253:24 | &... | &T | {EXTERNAL LOCATION} | bool | | main.rs:1253:19:1253:24 | &... | &T | file://:0:0:0:0 | & | @@ -3863,10 +3799,12 @@ inferType | main.rs:1859:14:1859:29 | ...[index] | | main.rs:1854:10:1854:10 | T | | main.rs:1859:24:1859:28 | index | | {EXTERNAL LOCATION} | usize | | main.rs:1863:22:1863:26 | slice | | file://:0:0:0:0 | & | +| main.rs:1863:22:1863:26 | slice | | file://:0:0:0:0 | [] | | main.rs:1863:22:1863:26 | slice | &T | file://:0:0:0:0 | [] | | main.rs:1863:22:1863:26 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | | main.rs:1864:13:1864:13 | x | | main.rs:1830:5:1831:13 | S | | main.rs:1864:17:1864:21 | slice | | file://:0:0:0:0 | & | +| main.rs:1864:17:1864:21 | slice | | file://:0:0:0:0 | [] | | main.rs:1864:17:1864:21 | slice | &T | file://:0:0:0:0 | [] | | main.rs:1864:17:1864:21 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | | main.rs:1864:17:1864:24 | slice[0] | | main.rs:1830:5:1831:13 | S | @@ -3881,7 +3819,10 @@ inferType | main.rs:1869:18:1869:18 | S | | main.rs:1830:5:1831:13 | S | | main.rs:1870:9:1870:11 | vec | | main.rs:1839:5:1842:5 | MyVec | | main.rs:1870:9:1870:11 | vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1870:9:1870:14 | vec[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1870:9:1870:20 | ... .foo() | | main.rs:1830:5:1831:13 | S | | main.rs:1870:13:1870:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1870:13:1870:13 | 0 | | {EXTERNAL LOCATION} | usize | | main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | | main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | | main.rs:1872:13:1872:14 | xs | [T;...] | main.rs:1830:5:1831:13 | S | @@ -3926,11 +3867,7 @@ inferType | main.rs:1899:26:1899:30 | value | | file://:0:0:0:0 | & | | main.rs:1899:26:1899:30 | value | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1899:47:1901:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:47:1901:9 | { ... } | | file://:0:0:0:0 | & | -| main.rs:1899:47:1901:9 | { ... } | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1900:13:1900:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:13:1900:18 | * ... | | file://:0:0:0:0 | & | -| main.rs:1900:13:1900:18 | * ... | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1900:14:1900:18 | value | | file://:0:0:0:0 | & | | main.rs:1900:14:1900:18 | value | &T | {EXTERNAL LOCATION} | i64 | | main.rs:1906:19:1906:23 | SelfParam | | file://:0:0:0:0 | & | From 846ef9ad5a2ff76ef6cac17c775e0342b1ac71b2 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Fri, 20 Jun 2025 16:18:05 +0200 Subject: [PATCH 225/340] Rust: Document spurious type --- .../test/library-tests/type-inference/main.rs | 8 +- .../type-inference/type-inference.expected | 214 +++++++++--------- 2 files changed, 114 insertions(+), 108 deletions(-) diff --git a/rust/ql/test/library-tests/type-inference/main.rs b/rust/ql/test/library-tests/type-inference/main.rs index a963e2e0edc..18af89be3ab 100644 --- a/rust/ql/test/library-tests/type-inference/main.rs +++ b/rust/ql/test/library-tests/type-inference/main.rs @@ -1861,7 +1861,13 @@ mod indexers { } fn analyze_slice(slice: &[S]) { - let x = slice[0].foo(); // $ method=foo type=x:S method=index + // NOTE: `slice` gets the spurious type `[]` because the desugaring of + // the index expression adds an implicit borrow. `&slice` has the type + // `&&[S]`, but the `index` methods takes a `&[S]`, so Rust adds an + // implicit dereference. We cannot currently handle a position that is + // both implicitly dereferenced and implicitly borrowed, so the extra + // type sneaks in. + let x = slice[0].foo(); // $ method=foo type=x:S method=index SPURIOUS: type=slice:[] } pub fn 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 35df5930a5c..0ae35aba917 100644 --- a/rust/ql/test/library-tests/type-inference/type-inference.expected +++ b/rust/ql/test/library-tests/type-inference/type-inference.expected @@ -3802,113 +3802,113 @@ inferType | main.rs:1863:22:1863:26 | slice | | file://:0:0:0:0 | [] | | main.rs:1863:22:1863:26 | slice | &T | file://:0:0:0:0 | [] | | main.rs:1863:22:1863:26 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | -| main.rs:1864:13:1864:13 | x | | main.rs:1830:5:1831:13 | S | -| main.rs:1864:17:1864:21 | slice | | file://:0:0:0:0 | & | -| main.rs:1864:17:1864:21 | slice | | file://:0:0:0:0 | [] | -| main.rs:1864:17:1864:21 | slice | &T | file://:0:0:0:0 | [] | -| main.rs:1864:17:1864:21 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | -| main.rs:1864:17:1864:24 | slice[0] | | main.rs:1830:5:1831:13 | S | -| main.rs:1864:17:1864:30 | ... .foo() | | main.rs:1830:5:1831:13 | S | -| main.rs:1864:23:1864:23 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1868:13:1868:19 | mut vec | | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1868:13:1868:19 | mut vec | T | main.rs:1830:5:1831:13 | S | -| main.rs:1868:23:1868:34 | ...::new(...) | | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1868:23:1868:34 | ...::new(...) | T | main.rs:1830:5:1831:13 | S | -| main.rs:1869:9:1869:11 | vec | | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1869:9:1869:11 | vec | T | main.rs:1830:5:1831:13 | S | -| main.rs:1869:18:1869:18 | S | | main.rs:1830:5:1831:13 | S | -| main.rs:1870:9:1870:11 | vec | | main.rs:1839:5:1842:5 | MyVec | -| main.rs:1870:9:1870:11 | vec | T | main.rs:1830:5:1831:13 | S | -| main.rs:1870:9:1870:14 | vec[0] | | main.rs:1830:5:1831:13 | S | -| main.rs:1870:9:1870:20 | ... .foo() | | main.rs:1830:5:1831:13 | S | -| main.rs:1870:13:1870:13 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1870:13:1870:13 | 0 | | {EXTERNAL LOCATION} | usize | -| main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1872:13:1872:14 | xs | | file://:0:0:0:0 | [] | -| main.rs:1872:13:1872:14 | xs | [T;...] | main.rs:1830:5:1831:13 | S | -| main.rs:1872:13:1872:14 | xs | [T] | main.rs:1830:5:1831:13 | S | -| main.rs:1872:21:1872:21 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1872:26:1872:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1872:26:1872:28 | [...] | | file://:0:0:0:0 | [] | -| main.rs:1872:26:1872:28 | [...] | [T;...] | main.rs:1830:5:1831:13 | S | -| main.rs:1872:26:1872:28 | [...] | [T] | main.rs:1830:5:1831:13 | S | -| main.rs:1872:27:1872:27 | S | | main.rs:1830:5:1831:13 | S | -| main.rs:1873:13:1873:13 | x | | main.rs:1830:5:1831:13 | S | -| main.rs:1873:17:1873:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1873:17:1873:18 | xs | | file://:0:0:0:0 | [] | -| main.rs:1873:17:1873:18 | xs | [T;...] | main.rs:1830:5:1831:13 | S | -| main.rs:1873:17:1873:18 | xs | [T] | main.rs:1830:5:1831:13 | S | -| main.rs:1873:17:1873:21 | xs[0] | | main.rs:1830:5:1831:13 | S | -| main.rs:1873:17:1873:27 | ... .foo() | | main.rs:1830:5:1831:13 | S | -| main.rs:1873:20:1873:20 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1875:23:1875:25 | &xs | | file://:0:0:0:0 | & | -| main.rs:1875:23:1875:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1875:23:1875:25 | &xs | &T | file://:0:0:0:0 | [] | -| main.rs:1875:23:1875:25 | &xs | &T.[T;...] | main.rs:1830:5:1831:13 | S | -| main.rs:1875:23:1875:25 | &xs | &T.[T] | main.rs:1830:5:1831:13 | S | -| main.rs:1875:24:1875:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1875:24:1875:25 | xs | | file://:0:0:0:0 | [] | -| main.rs:1875:24:1875:25 | xs | [T;...] | main.rs:1830:5:1831:13 | S | -| main.rs:1875:24:1875:25 | xs | [T] | main.rs:1830:5:1831:13 | S | -| main.rs:1881:25:1881:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | -| main.rs:1881:25:1881:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | -| main.rs:1881:25:1881:45 | { ... } | | {EXTERNAL LOCATION} | String | -| main.rs:1881:38:1881:45 | "World!" | | {EXTERNAL LOCATION} | str | -| main.rs:1887:19:1887:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1887:19:1887:23 | SelfParam | &T | main.rs:1886:5:1888:5 | Self [trait MyAdd] | -| main.rs:1887:26:1887:30 | value | | main.rs:1886:17:1886:17 | T | -| main.rs:1892:19:1892:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1892:19:1892:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1892:26:1892:30 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1892:46:1894:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1893:13:1893:17 | value | | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:19:1899:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1899:19:1899:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:26:1899:30 | value | | file://:0:0:0:0 | & | -| main.rs:1899:26:1899:30 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1899:47:1901:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:13:1900:18 | * ... | | {EXTERNAL LOCATION} | i64 | -| main.rs:1900:14:1900:18 | value | | file://:0:0:0:0 | & | -| main.rs:1900:14:1900:18 | value | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:19:1906:23 | SelfParam | | file://:0:0:0:0 | & | -| main.rs:1906:19:1906:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1906:26:1906:30 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1906:47:1912:9 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1906:47:1912:9 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:13:1911:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | -| main.rs:1907:13:1911:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | -| main.rs:1907:16:1907:20 | value | | {EXTERNAL LOCATION} | bool | -| main.rs:1907:22:1909:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1907:22:1909:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1908:17:1908:17 | 1 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1908:17:1908:17 | 1 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1909:20:1911:13 | { ... } | | {EXTERNAL LOCATION} | i32 | -| main.rs:1909:20:1911:13 | { ... } | | {EXTERNAL LOCATION} | i64 | -| main.rs:1910:17:1910:17 | 0 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1910:17:1910:17 | 0 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:13:1916:13 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1916:13:1916:13 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1916:22:1916:23 | 73 | | {EXTERNAL LOCATION} | i32 | -| main.rs:1916:22:1916:23 | 73 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:9:1917:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1917:9:1917:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:9:1917:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1917:18:1917:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:9:1918:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1918:9:1918:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:9:1918:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:18:1918:22 | &5i64 | | file://:0:0:0:0 | & | -| main.rs:1918:18:1918:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | -| main.rs:1918:19:1918:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:9:1919:9 | x | | {EXTERNAL LOCATION} | i32 | -| main.rs:1919:9:1919:9 | x | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:9:1919:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | -| main.rs:1919:18:1919:21 | true | | {EXTERNAL LOCATION} | bool | -| main.rs:1927:5:1927:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1928:5:1928:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | -| main.rs:1928:20:1928:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1928:41:1928:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | -| main.rs:1944:5:1944:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | +| main.rs:1870:13:1870:13 | x | | main.rs:1830:5:1831:13 | S | +| main.rs:1870:17:1870:21 | slice | | file://:0:0:0:0 | & | +| main.rs:1870:17:1870:21 | slice | | file://:0:0:0:0 | [] | +| main.rs:1870:17:1870:21 | slice | &T | file://:0:0:0:0 | [] | +| main.rs:1870:17:1870:21 | slice | &T.[T] | main.rs:1830:5:1831:13 | S | +| main.rs:1870:17:1870:24 | slice[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1870:17:1870:30 | ... .foo() | | main.rs:1830:5:1831:13 | S | +| main.rs:1870:23:1870:23 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1874:13:1874:19 | mut vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1874:13:1874:19 | mut vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1874:23:1874:34 | ...::new(...) | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1874:23:1874:34 | ...::new(...) | T | main.rs:1830:5:1831:13 | S | +| main.rs:1875:9:1875:11 | vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1875:9:1875:11 | vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1875:18:1875:18 | S | | main.rs:1830:5:1831:13 | S | +| main.rs:1876:9:1876:11 | vec | | main.rs:1839:5:1842:5 | MyVec | +| main.rs:1876:9:1876:11 | vec | T | main.rs:1830:5:1831:13 | S | +| main.rs:1876:9:1876:14 | vec[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1876:9:1876:20 | ... .foo() | | main.rs:1830:5:1831:13 | S | +| main.rs:1876:13:1876:13 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1876:13:1876:13 | 0 | | {EXTERNAL LOCATION} | usize | +| main.rs:1878:13:1878:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1878:13:1878:14 | xs | | file://:0:0:0:0 | [] | +| main.rs:1878:13:1878:14 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1878:13:1878:14 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1878:21:1878:21 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1878:26:1878:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1878:26:1878:28 | [...] | | file://:0:0:0:0 | [] | +| main.rs:1878:26:1878:28 | [...] | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1878:26:1878:28 | [...] | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1878:27:1878:27 | S | | main.rs:1830:5:1831:13 | S | +| main.rs:1879:13:1879:13 | x | | main.rs:1830:5:1831:13 | S | +| main.rs:1879:17:1879:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1879:17:1879:18 | xs | | file://:0:0:0:0 | [] | +| main.rs:1879:17:1879:18 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1879:17:1879:18 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1879:17:1879:21 | xs[0] | | main.rs:1830:5:1831:13 | S | +| main.rs:1879:17:1879:27 | ... .foo() | | main.rs:1830:5:1831:13 | S | +| main.rs:1879:20:1879:20 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1881:23:1881:25 | &xs | | file://:0:0:0:0 | & | +| main.rs:1881:23:1881:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1881:23:1881:25 | &xs | &T | file://:0:0:0:0 | [] | +| main.rs:1881:23:1881:25 | &xs | &T.[T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1881:23:1881:25 | &xs | &T.[T] | main.rs:1830:5:1831:13 | S | +| main.rs:1881:24:1881:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1881:24:1881:25 | xs | | file://:0:0:0:0 | [] | +| main.rs:1881:24:1881:25 | xs | [T;...] | main.rs:1830:5:1831:13 | S | +| main.rs:1881:24:1881:25 | xs | [T] | main.rs:1830:5:1831:13 | S | +| main.rs:1887:25:1887:35 | "Hello, {}" | | {EXTERNAL LOCATION} | str | +| main.rs:1887:25:1887:45 | ...::format(...) | | {EXTERNAL LOCATION} | String | +| main.rs:1887:25:1887:45 | { ... } | | {EXTERNAL LOCATION} | String | +| main.rs:1887:38:1887:45 | "World!" | | {EXTERNAL LOCATION} | str | +| main.rs:1893:19:1893:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1893:19:1893:23 | SelfParam | &T | main.rs:1892:5:1894:5 | Self [trait MyAdd] | +| main.rs:1893:26:1893:30 | value | | main.rs:1892:17:1892:17 | T | +| main.rs:1898:19:1898:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1898:19:1898:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:26:1898:30 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1898:46:1900:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1899:13:1899:17 | value | | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:19:1905:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1905:19:1905:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:26:1905:30 | value | | file://:0:0:0:0 | & | +| main.rs:1905:26:1905:30 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1905:47:1907:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:13:1906:18 | * ... | | {EXTERNAL LOCATION} | i64 | +| main.rs:1906:14:1906:18 | value | | file://:0:0:0:0 | & | +| main.rs:1906:14:1906:18 | value | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:19:1912:23 | SelfParam | | file://:0:0:0:0 | & | +| main.rs:1912:19:1912:23 | SelfParam | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1912:26:1912:30 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1912:47:1918:9 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1912:47:1918:9 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:13:1917:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i32 | +| main.rs:1913:13:1917:13 | if value {...} else {...} | | {EXTERNAL LOCATION} | i64 | +| main.rs:1913:16:1913:20 | value | | {EXTERNAL LOCATION} | bool | +| main.rs:1913:22:1915:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1913:22:1915:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1914:17:1914:17 | 1 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1914:17:1914:17 | 1 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1915:20:1917:13 | { ... } | | {EXTERNAL LOCATION} | i32 | +| main.rs:1915:20:1917:13 | { ... } | | {EXTERNAL LOCATION} | i64 | +| main.rs:1916:17:1916:17 | 0 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1916:17:1916:17 | 0 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1922:13:1922:13 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1922:13:1922:13 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1922:22:1922:23 | 73 | | {EXTERNAL LOCATION} | i32 | +| main.rs:1922:22:1922:23 | 73 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:9:1923:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1923:9:1923:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:9:1923:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1923:18:1923:21 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1924:9:1924:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:9:1924:23 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:18:1924:22 | &5i64 | | file://:0:0:0:0 | & | +| main.rs:1924:18:1924:22 | &5i64 | &T | {EXTERNAL LOCATION} | i64 | +| main.rs:1924:19:1924:22 | 5i64 | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:9:1925:9 | x | | {EXTERNAL LOCATION} | i32 | +| main.rs:1925:9:1925:9 | x | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:9:1925:22 | x.my_add(...) | | {EXTERNAL LOCATION} | i64 | +| main.rs:1925:18:1925:21 | true | | {EXTERNAL LOCATION} | bool | +| main.rs:1933:5:1933:20 | ...::f(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1934:5:1934:60 | ...::g(...) | | main.rs:72:5:72:21 | Foo | +| main.rs:1934:20:1934:38 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1934:41:1934:59 | ...::Foo {...} | | main.rs:72:5:72:21 | Foo | +| main.rs:1950:5:1950:15 | ...::f(...) | | {EXTERNAL LOCATION} | trait Future | testFailures | main.rs:2:5:2:20 | f.write_str(...) | Unexpected result: method=write_str | | main.rs:5:5:5:20 | f.debug_struct(...) | Unexpected result: method=debug_struct | From 326c7de521b116f85d51fce73c10b8e906d66050 Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Sat, 21 Jun 2025 13:16:40 +0200 Subject: [PATCH 226/340] Rust: Ensure index expressions are not handled as calls yet in data flow --- .../lib/codeql/rust/dataflow/internal/DataFlowImpl.qll | 10 +++++++--- rust/ql/lib/codeql/rust/dataflow/internal/Node.qll | 6 +++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll index 20c9e80b87a..fb3a46d7866 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/DataFlowImpl.qll @@ -145,9 +145,13 @@ final class ArgumentPosition extends ParameterPosition { * as the synthetic `ReceiverNode` is the argument for the `self` parameter. */ predicate isArgumentForCall(ExprCfgNode arg, CallCfgNode call, ParameterPosition pos) { - call.getPositionalArgument(pos.getPosition()) = arg - or - call.getReceiver() = arg and pos.isSelf() and not call.getCall().receiverImplicitlyBorrowed() + // TODO: Handle index expressions as calls in data flow. + not call.getCall() instanceof IndexExpr and + ( + call.getPositionalArgument(pos.getPosition()) = arg + or + call.getReceiver() = arg and pos.isSelf() and not call.getCall().receiverImplicitlyBorrowed() + ) } /** Provides logic related to SSA. */ diff --git a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll index 51343c1eb40..b18ccbacbd6 100644 --- a/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll +++ b/rust/ql/lib/codeql/rust/dataflow/internal/Node.qll @@ -472,7 +472,11 @@ newtype TNode = getPostUpdateReverseStep(any(PostUpdateNode n).getPreUpdateNode().asExpr(), _) ] } or - TReceiverNode(CallCfgNode mc, Boolean isPost) { mc.getCall().receiverImplicitlyBorrowed() } or + TReceiverNode(CallCfgNode mc, Boolean isPost) { + mc.getCall().receiverImplicitlyBorrowed() and + // TODO: Handle index expressions as calls in data flow. + not mc.getCall() instanceof IndexExpr + } or TSsaNode(SsaImpl::DataFlowIntegration::SsaNode node) or TFlowSummaryNode(FlowSummaryImpl::Private::SummaryNode sn) or TClosureSelfReferenceNode(CfgScope c) { lambdaCreationExpr(c, _) } or From 99fb6b62adefb86d9dada9e481309bb56262785b Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:38:27 +0200 Subject: [PATCH 227/340] JS: Remove test_ prefix from query predicates --- .../library-tests/frameworks/ReactJS/tests.ql | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql index 653f2481d97..9124dbd7a72 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql @@ -1,45 +1,41 @@ import javascript import semmle.javascript.frameworks.React -query predicate test_getADirectStateAccess(ReactComponent c, DataFlow::SourceNode res) { +query predicate getADirectStateAccess(ReactComponent c, DataFlow::SourceNode res) { res = c.getADirectStateAccess() } -query predicate test_ReactComponent_getInstanceMethod(ReactComponent c, string n, Function res) { +query predicate getInstanceMethod(ReactComponent c, string n, Function res) { res = c.getInstanceMethod(n) } -query predicate test_react(DataFlow::ValueNode nd) { react().flowsTo(nd) } +query predicate reactLibraryRef(DataFlow::ValueNode nd) { react().flowsTo(nd) } -query predicate test_ReactComponent_getAPreviousStateSource( - ReactComponent c, DataFlow::SourceNode res -) { +query predicate getAPreviousStateSource(ReactComponent c, DataFlow::SourceNode res) { res = c.getAPreviousStateSource() } -query predicate test_ReactComponent_ref(ReactComponent c, DataFlow::Node res) { res = c.ref() } +query predicate reactComponentRef(ReactComponent c, DataFlow::Node res) { res = c.ref() } -query predicate test_ReactComponent_getACandidateStateSource( - ReactComponent c, DataFlow::SourceNode res -) { +query predicate getACandidateStateSource(ReactComponent c, DataFlow::SourceNode res) { res = c.getACandidateStateSource() } -query predicate test_ReactComponent_getADirectPropsSource(ReactComponent c, DataFlow::SourceNode res) { +query predicate getADirectPropsSource(ReactComponent c, DataFlow::SourceNode res) { res = c.getADirectPropsAccess() } -query predicate test_ReactComponent_getACandidatePropsValue(DataFlow::Node res) { +query predicate getACandidatePropsValue(DataFlow::Node res) { exists(ReactComponent c | res = c.getACandidatePropsValue(_)) } -query predicate test_ReactComponent(ReactComponent c) { any() } +query predicate reactComponent(ReactComponent c) { any() } -query predicate test_ReactComponent_getAPropRead(ReactComponent c, string n, DataFlow::PropRead res) { +query predicate getAPropRead(ReactComponent c, string n, DataFlow::PropRead res) { res = c.getAPropRead(n) } -query predicate test_JSXname(JsxElement element, JsxName jsxname, string name, string type) { +query predicate jsxName(JsxElement element, JsxName jsxname, string name, string type) { name = jsxname.getValue() and ( jsxname instanceof Identifier and type = "Identifier" @@ -53,7 +49,7 @@ query predicate test_JSXname(JsxElement element, JsxName jsxname, string name, s element.getNameExpr() = jsxname } -query ThisExpr test_JsxName_this(JsxElement element) { result.getParentExpr+() = element } +query ThisExpr jsxNameThis(JsxElement element) { result.getParentExpr+() = element } query DataFlow::SourceNode locationSource() { result = DOM::locationSource() } From 1a18e683641240d3afe8a669c1e14b430bf45bdd Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:44:08 +0200 Subject: [PATCH 228/340] JS: Remove reactLibraryRef This is not testing anything interesting, and is noisy when adding inline expectations --- javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql | 2 -- 1 file changed, 2 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql index 9124dbd7a72..6de8091b010 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.ql @@ -9,8 +9,6 @@ query predicate getInstanceMethod(ReactComponent c, string n, Function res) { res = c.getInstanceMethod(n) } -query predicate reactLibraryRef(DataFlow::ValueNode nd) { react().flowsTo(nd) } - query predicate getAPreviousStateSource(ReactComponent c, DataFlow::SourceNode res) { res = c.getAPreviousStateSource() } From 1787d4dce8f694a719fd7b1cc182ed699fb361d6 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:45:10 +0200 Subject: [PATCH 229/340] JS: Enable inline expectations in test Will update files in next commit --- javascript/ql/test/library-tests/frameworks/ReactJS/tests.qlref | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/tests.qlref diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.qlref b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.qlref new file mode 100644 index 00000000000..8581a3f8b74 --- /dev/null +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.qlref @@ -0,0 +1,2 @@ +query: tests.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql From 180b023c7c515ee62c057774e0f9124b7a0ce9a6 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:45:24 +0200 Subject: [PATCH 230/340] JS: Add inline expectations to React test --- .../library-tests/frameworks/ReactJS/es5.js | 10 +++---- .../library-tests/frameworks/ReactJS/es6.js | 8 +++--- .../frameworks/ReactJS/exportedComponent.jsx | 4 +-- .../frameworks/ReactJS/importedComponent.jsx | 6 ++-- .../frameworks/ReactJS/namedImport.js | 4 +-- .../frameworks/ReactJS/plainfn.js | 16 +++++------ .../frameworks/ReactJS/preact.js | 10 +++---- .../ReactJS/probably-a-component.js | 6 ++-- .../library-tests/frameworks/ReactJS/props.js | 28 +++++++++---------- .../ReactJS/rare-lifecycle-methods.js | 4 +-- .../frameworks/ReactJS/statePropertyReads.js | 2 +- .../frameworks/ReactJS/statePropertyWrites.js | 6 ++-- .../frameworks/ReactJS/thisAccesses.js | 16 +++++------ .../ReactJS/thisAccesses_importedMappers.js | 2 +- .../ReactJS/useHigherOrderComponent.jsx | 6 ++-- 15 files changed, 64 insertions(+), 64 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/es5.js b/javascript/ql/test/library-tests/frameworks/ReactJS/es5.js index abef8d7d8bb..8d1eb47b55f 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/es5.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/es5.js @@ -1,14 +1,14 @@ var Hello = React.createClass({ displayName: 'Hello', render: function() { - return
    Hello {this.props.name}
    ; + return
    Hello {this.props.name}
    ; // $ threatModelSource=view-component-input }, getDefaultProps: function() { return { - name: 'world' + name: 'world' // $ getACandidatePropsValue }; } -}); +}); // $ reactComponent Hello.info = function() { return "Nothing to see here."; @@ -17,6 +17,6 @@ Hello.info = function() { var createReactClass = require('create-react-class'); var Greeting = createReactClass({ render: function() { - return

    Hello, {this.props.name}

    ; + return

    Hello, {this.props.name}

    ; // $ threatModelSource=view-component-input } -}); +}); // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/es6.js b/javascript/ql/test/library-tests/frameworks/ReactJS/es6.js index 2991888354c..333ac1a943f 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/es6.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/es6.js @@ -1,11 +1,11 @@ -class Hello extends React.Component { +class Hello extends React.Component { // $ threatModelSource=view-component-input render() { - return
    Hello {this.props.name}
    ; + return
    Hello {this.props.name}
    ; // $ threatModelSource=view-component-input } static info() { return "Nothing to see here."; } -} +} // $ reactComponent Hello.displayName = 'Hello'; Hello.defaultProps = { name: 'world' @@ -17,4 +17,4 @@ class Hello2 extends React.Component { this.state.bar.foo = 42; this.state = { baz: 42}; } -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/exportedComponent.jsx b/javascript/ql/test/library-tests/frameworks/ReactJS/exportedComponent.jsx index 4335b4bc308..9e2d5580228 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/exportedComponent.jsx +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/exportedComponent.jsx @@ -1,3 +1,3 @@ -export function MyComponent(props) { +export function MyComponent(props) { // $ threatModelSource=view-component-input return
    -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/importedComponent.jsx b/javascript/ql/test/library-tests/frameworks/ReactJS/importedComponent.jsx index d94acf59abe..ed04d4bec88 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/importedComponent.jsx +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/importedComponent.jsx @@ -1,5 +1,5 @@ import { MyComponent } from "./exportedComponent"; -export function render({color, location}) { - return -} +export function render({color, location}) { // $ threatModelSource=view-component-input locationSource threatModelSource=remote + return // $ getACandidatePropsValue +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/namedImport.js b/javascript/ql/test/library-tests/frameworks/ReactJS/namedImport.js index 3c5a7182d65..c29160c8ed5 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/namedImport.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/namedImport.js @@ -1,5 +1,5 @@ import { Component } from "react"; -class C extends Component {} +class C extends Component {} // $ threatModelSource=view-component-input reactComponent -class D extends C {} +class D extends C {} // $ threatModelSource=view-component-input reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/plainfn.js b/javascript/ql/test/library-tests/frameworks/ReactJS/plainfn.js index 7f5995b9fdb..c5d029a44d1 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/plainfn.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/plainfn.js @@ -1,15 +1,15 @@ -function Hello(props) { +function Hello(props) { // $ threatModelSource=view-component-input return
    Hello {props.name}
    ; -} +} // $ reactComponent -function Hello2(props) { +function Hello2(props) { // $ threatModelSource=view-component-input return React.createElement("div"); -} +} // $ reactComponent -function Hello3(props) { +function Hello3(props) { // $ threatModelSource=view-component-input var x = React.createElement("div"); return x; -} +} // $ reactComponent function NotAComponent(props) { if (y) @@ -17,8 +17,8 @@ function NotAComponent(props) { return g(); } -function SpuriousComponent(props) { +function SpuriousComponent(props) { // $ threatModelSource=view-component-input if (y) return React.createElement("div"); return 42; -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/preact.js b/javascript/ql/test/library-tests/frameworks/ReactJS/preact.js index 787064397f0..ced8ae6be30 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/preact.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/preact.js @@ -1,11 +1,11 @@ -class Hello extends Preact.Component { - render(props, state) { +class Hello extends Preact.Component { // $ threatModelSource=view-component-input + render(props, state) { // $ threatModelSource=view-component-input props.name; state.name; return
    ; } -} +} // $ reactComponent -class Hello extends preact.Component { +class Hello extends preact.Component { // $ threatModelSource=view-component-input -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/probably-a-component.js b/javascript/ql/test/library-tests/frameworks/ReactJS/probably-a-component.js index a8205039b8e..c82188beb02 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/probably-a-component.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/probably-a-component.js @@ -1,6 +1,6 @@ -class Hello extends Component { +class Hello extends Component { // $ threatModelSource=view-component-input render() { - this.props.name; + this.props.name; // $ threatModelSource=view-component-input return
    ; } -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/props.js b/javascript/ql/test/library-tests/frameworks/ReactJS/props.js index c1cce38a040..153ee147342 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/props.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/props.js @@ -1,36 +1,36 @@ function ES2015() { - class C extends React.Component { - } + class C extends React.Component { // $ threatModelSource=view-component-input + } // $ reactComponent - C.defaultProps = { propFromDefaultProps: "propFromDefaultProps" }; + C.defaultProps = { propFromDefaultProps: "propFromDefaultProps" }; // $ getACandidatePropsValue - (); + (); // $ getACandidatePropsValue - new C({propFromConstructor: "propFromConstructor"}); + new C({propFromConstructor: "propFromConstructor"}); // $ getACandidatePropsValue } function ES5() { var C = React.createClass({ getDefaultProps() { - return { propFromDefaultProps: "propFromDefaultProps" }; + return { propFromDefaultProps: "propFromDefaultProps" }; // $ getACandidatePropsValue } - }); + }); // $ reactComponent - (); + (); // $ getACandidatePropsValue - C({propFromConstructor: "propFromConstructor"}); + C({propFromConstructor: "propFromConstructor"}); // $ getACandidatePropsValue } function Functional() { - function C(props) { + function C(props) { // $ threatModelSource=view-component-input return
    ; - } + } // $ reactComponent - C.defaultProps = { propFromDefaultProps: "propFromDefaultProps" }; + C.defaultProps = { propFromDefaultProps: "propFromDefaultProps" }; // $ getACandidatePropsValue - (); + (); // $ getACandidatePropsValue - new C({propFromConstructor: "propFromConstructor"}); + new C({propFromConstructor: "propFromConstructor"}); // $ getACandidatePropsValue } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/rare-lifecycle-methods.js b/javascript/ql/test/library-tests/frameworks/ReactJS/rare-lifecycle-methods.js index c3f7c13b162..b4943ea66c3 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/rare-lifecycle-methods.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/rare-lifecycle-methods.js @@ -1,4 +1,4 @@ -class C extends React.Component { +class C extends React.Component { // $ threatModelSource=view-component-input static getDerivedStateFromProps(props, state) { return {}; } @@ -8,4 +8,4 @@ class C extends React.Component { getSnapshotBeforeUpdate(prevProps, prevState) { return {}; } -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyReads.js b/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyReads.js index 697bc35c150..93a120937d7 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyReads.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyReads.js @@ -10,4 +10,4 @@ class Reads extends React.Component { componentDidUpdate(prevProps, prevState) { prevState.p4; } -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyWrites.js b/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyWrites.js index 692400c7381..27e02bc6f66 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyWrites.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/statePropertyWrites.js @@ -31,15 +31,15 @@ class Writes extends React.Component { state = { p7: 42 }; -} +} // $ reactComponent React.createClass({ render: function() { - return
    Hello {this.props.name}
    ; + return
    Hello {this.props.name}
    ; // $ threatModelSource=view-component-input }, getInitialState: function() { return { p8: 42 }; } -}); +}); // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses.js b/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses.js index b662b7ca53b..c30509974d4 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses.js @@ -13,7 +13,7 @@ class C extends React.Component { someInstanceMethod() { this; } -} +} // $ reactComponent React.createClass({ render: function() { @@ -26,14 +26,14 @@ React.createClass({ someInstanceMethod: function() { this; } -}); +}); // $ reactComponent -(function (props) { +(function (props) { // $ threatModelSource=view-component-input (function () { this; props; }).bind(this); return
    ; -}) +}) // $ reactComponent React.createClass({ render: function() { @@ -42,14 +42,14 @@ React.createClass({ }, this) return
    ; }, -}); +}); // $ reactComponent class C2 extends React.Component { - constructor (y) { + constructor (y) { // $ threatModelSource=view-component-input this.state = x; this.state = y; } -} +} // $ reactComponent class C3 extends React.Component { constructor() { @@ -60,4 +60,4 @@ class C3 extends React.Component { var foo = ; var bar = ; } -} +} // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses_importedMappers.js b/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses_importedMappers.js index 06e5e1149fd..abbbdd844ed 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses_importedMappers.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/thisAccesses_importedMappers.js @@ -12,4 +12,4 @@ React.createClass({ return
    ; }, -}); +}); // $ reactComponent diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/useHigherOrderComponent.jsx b/javascript/ql/test/library-tests/frameworks/ReactJS/useHigherOrderComponent.jsx index a57c5aa70ba..dba28fd1c6c 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/useHigherOrderComponent.jsx +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/useHigherOrderComponent.jsx @@ -2,17 +2,17 @@ import SomeComponent from './higherOrderComponent'; import { lazy } from 'react'; function foo() { - return + return // $ getACandidatePropsValue } const LazyLoadedComponent = lazy(() => import('./higherOrderComponent')); function bar() { - return + return // $ getACandidatePropsValue } const LazyLoadedComponent2 = lazy(() => import('./exportedComponent').then(m => m.MyComponent)); function barz() { - return + return // $ getACandidatePropsValue } From 7dd7246cd453a4191d146a2e3f5e719727fe3d6c Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:45:44 +0200 Subject: [PATCH 231/340] JS: Update tests.expected Mostly noise due to renamed predicates and reordered result sets --- .../frameworks/ReactJS/tests.expected | 304 ++++++++---------- 1 file changed, 133 insertions(+), 171 deletions(-) diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected index 9a5c38ddbf9..1e1607801cf 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected @@ -1,42 +1,112 @@ -test_react -| es5.js:1:13:1:17 | React | -| es6.js:1:21:1:25 | React | -| es6.js:14:22:14:26 | React | -| globalReactRefs.js:1:1:1:5 | React | -| globalReactRefs.js:4:5:4:9 | React | -| globalReactRefs.js:7:1:7:5 | React | -| importedReactRefs.js:1:8:1:12 | React | -| importedReactRefs.js:3:1:3:5 | React | -| importedReactRefs.js:6:5:6:9 | React | -| importedReactRefs.js:9:1:9:5 | React | -| plainfn.js:6:12:6:16 | React | -| plainfn.js:10:13:10:17 | React | -| plainfn.js:16:16:16:20 | React | -| plainfn.js:22:16:22:20 | React | -| props.js:2:21:2:25 | React | -| props.js:13:13:13:17 | React | -| rare-lifecycle-methods.js:1:17:1:21 | React | -| requiredReactRefs.js:1:13:1:28 | require("react") | -| requiredReactRefs.js:3:1:3:5 | React | -| requiredReactRefs.js:6:5:6:9 | React | -| requiredReactRefs.js:9:1:9:5 | React | -| requiredReactRefs.js:12:17:12:32 | require("react") | -| requiredReactRefs.js:14:5:14:9 | React | -| requiredReactRefs.js:17:9:17:13 | React | -| requiredReactRefs.js:20:5:20:9 | React | -| statePropertyReads.js:1:21:1:25 | React | -| statePropertyWrites.js:1:22:1:26 | React | -| statePropertyWrites.js:36:1:36:5 | React | -| thisAccesses.js:1:17:1:21 | React | -| thisAccesses.js:18:1:18:5 | React | -| thisAccesses.js:38:1:38:5 | React | -| thisAccesses.js:40:9:40:13 | React | -| thisAccesses.js:47:18:47:22 | React | -| thisAccesses.js:54:18:54:22 | React | -| thisAccesses_importedMappers.js:1:8:1:12 | React | -| thisAccesses_importedMappers.js:4:1:4:5 | React | -| thisAccesses_importedMappers.js:6:9:6:13 | React | -test_JSXname +getACandidatePropsValue +| es5.js:8:13:8:19 | 'world' | +| importedComponent.jsx:4:32:4:36 | color | +| props.js:5:46:5:67 | "propFr ... tProps" | +| props.js:7:22:7:34 | "propFromJSX" | +| props.js:9:33:9:53 | "propFr ... ructor" | +| props.js:15:44:15:65 | "propFr ... tProps" | +| props.js:19:22:19:34 | "propFromJSX" | +| props.js:21:29:21:49 | "propFr ... ructor" | +| props.js:30:46:30:67 | "propFr ... tProps" | +| props.js:32:22:32:34 | "propFromJSX" | +| props.js:34:33:34:53 | "propFr ... ructor" | +| useHigherOrderComponent.jsx:5:33:5:37 | "red" | +| useHigherOrderComponent.jsx:11:39:11:44 | "lazy" | +| useHigherOrderComponent.jsx:17:40:17:46 | "lazy2" | +getACandidateStateSource +| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:22:18:31 | { baz: 42} | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:3:16:3:17 | {} | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:5:38:5:46 | nextState | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:45:7:56 | prevState.p3 | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:8:18:8:19 | {} | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:12:18:12:19 | {} | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:16:18:16:19 | {} | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:20:18:20:19 | {} | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:31:13:33:5 | {\\n ... 2\\n } | +| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:41:12:43:5 | {\\n p8: 42\\n } | +| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y | +| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:22:49:22 | x | +getADirectPropsSource +| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:4:24:4:33 | this.props | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | es5.js:20:24:20:33 | this.props | +| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:1:37:1:36 | args | +| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:3:24:3:33 | this.props | +| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | exportedComponent.jsx:1:29:1:33 | props | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | importedComponent.jsx:3:24:3:40 | {color, location} | +| namedImport.js:3:1:3:28 | class C ... nent {} | namedImport.js:3:27:3:26 | args | +| namedImport.js:5:1:5:20 | class D extends C {} | namedImport.js:5:19:5:18 | args | +| plainfn.js:1:1:3:1 | functio ... div>;\\n} | plainfn.js:1:16:1:20 | props | +| plainfn.js:5:1:7:1 | functio ... iv");\\n} | plainfn.js:5:17:5:21 | props | +| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | plainfn.js:9:17:9:21 | props | +| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | plainfn.js:20:28:20:32 | props | +| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:1:38:1:37 | args | +| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:12:2:16 | props | +| preact.js:9:1:11:1 | class H ... nput\\n\\n} | preact.js:9:38:9:37 | args | +| probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:1:31:1:30 | args | +| probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:3:9:3:18 | this.props | +| props.js:2:5:3:5 | class C ... t\\n } | props.js:2:37:2:36 | args | +| props.js:26:5:28:5 | functio ... ;\\n } | props.js:26:16:26:20 | props | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:1:33:1:32 | args | +| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:38:24:38:33 | this.props | +| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | thisAccesses.js:31:12:31:16 | props | +| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y | +getADirectStateAccess +| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:16:9:16:18 | this.state | +| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:17:9:17:18 | this.state | +| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:9:18:18 | this.state | +| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:19:2:23 | state | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:3:9:3:18 | this.state | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:5:9:5:18 | this.state | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:4:9:4:17 | cmp.state | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:6:9:6:17 | cmp.state | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:10:9:10:17 | cmp.state | +| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:9:49:18 | this.state | +| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:50:9:50:18 | this.state | +getAPreviousStateSource +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:2:44:2:48 | state | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:8:40:8:48 | prevState | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:24:7:32 | prevState | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:10:35:10:43 | prevState | +getAPropRead +| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | name | es5.js:4:24:4:38 | this.props.name | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | name | es5.js:20:24:20:38 | this.props.name | +| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | name | es6.js:3:24:3:38 | this.props.name | +| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | color | exportedComponent.jsx:2:32:2:42 | props.color | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | color | importedComponent.jsx:3:25:3:29 | color | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | location | importedComponent.jsx:3:32:3:39 | location | +| plainfn.js:1:1:3:1 | functio ... div>;\\n} | name | plainfn.js:2:22:2:31 | props.name | +| preact.js:1:1:7:1 | class H ... }\\n} | name | preact.js:3:9:3:18 | props.name | +| probably-a-component.js:1:1:6:1 | class H ... }\\n} | name | probably-a-component.js:3:9:3:23 | this.props.name | +| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | name | statePropertyWrites.js:38:24:38:38 | this.props.name | +getInstanceMethod +| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | getDefaultProps | es5.js:6:20:10:3 | functio ... };\\n } | +| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | render | es5.js:3:11:5:3 | functio ... put\\n } | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | render | es5.js:19:11:21:3 | functio ... put\\n } | +| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | render | es6.js:2:9:4:3 | () {\\n ... put\\n } | +| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | render | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | render | importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | +| plainfn.js:1:1:3:1 | functio ... div>;\\n} | render | plainfn.js:1:1:3:1 | functio ... div>;\\n} | +| plainfn.js:5:1:7:1 | functio ... iv");\\n} | render | plainfn.js:5:1:7:1 | functio ... iv");\\n} | +| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | render | plainfn.js:9:1:12:1 | functio ... rn x;\\n} | +| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | render | plainfn.js:20:1:24:1 | functio ... n 42;\\n} | +| preact.js:1:1:7:1 | class H ... }\\n} | render | preact.js:2:11:6:5 | (props, ... ;\\n } | +| probably-a-component.js:1:1:6:1 | class H ... }\\n} | render | probably-a-component.js:2:11:5:5 | () {\\n ... ;\\n } | +| props.js:13:31:17:5 | {\\n ... }\\n } | getDefaultProps | props.js:14:24:16:9 | () {\\n ... } | +| props.js:26:5:28:5 | functio ... ;\\n } | render | props.js:26:5:28:5 | functio ... ;\\n } | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | getSnapshotBeforeUpdate | rare-lifecycle-methods.js:8:28:10:5 | (prevPr ... ;\\n } | +| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | shouldComponentUpdate | rare-lifecycle-methods.js:5:26:7:5 | (nextPr ... ;\\n } | +| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | componentDidUpdate | statePropertyReads.js:10:23:12:5 | (prevPr ... ;\\n } | +| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | getInitialState | statePropertyWrites.js:25:20:29:5 | () { // ... ;\\n } | +| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | getInitialState | statePropertyWrites.js:40:20:44:3 | functio ... };\\n } | +| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | render | statePropertyWrites.js:37:11:39:3 | functio ... put\\n } | +| thisAccesses.js:1:1:16:1 | class C ... }\\n} | someInstanceMethod | thisAccesses.js:13:23:15:5 | () {\\n ... ;\\n } | +| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | render | thisAccesses.js:19:13:24:5 | functio ... ;\\n } | +| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | someInstanceMethod | thisAccesses.js:26:25:28:5 | functio ... ;\\n } | +| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | render | thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | +| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} | render | thisAccesses.js:39:13:44:5 | functio ... ;\\n } | +| thisAccesses.js:54:1:63:1 | class C ... }\\n} | render | thisAccesses.js:59:11:62:5 | () {\\n ... ;\\n } | +| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | render | thisAccesses_importedMappers.js:5:13:14:5 | functio ... ;\\n } | +jsxName | es5.js:4:12:4:45 |
    He ... }
    | es5.js:4:13:4:15 | div | div | Identifier | | es5.js:20:12:20:44 |

    Hel ... e}

    | es5.js:20:13:20:14 | h1 | h1 | Identifier | | es6.js:3:12:3:45 |
    He ... }
    | es6.js:3:13:3:15 | div | div | Identifier | @@ -62,13 +132,22 @@ test_JSXname | useHigherOrderComponent.jsx:5:12:5:39 | | useHigherOrderComponent.jsx:5:13:5:25 | SomeComponent | SomeComponent | Identifier | | useHigherOrderComponent.jsx:11:12:11:46 | | useHigherOrderComponent.jsx:11:13:11:31 | LazyLoadedComponent | LazyLoadedComponent | Identifier | | useHigherOrderComponent.jsx:17:12:17:48 | | useHigherOrderComponent.jsx:17:13:17:32 | LazyLoadedComponent2 | LazyLoadedComponent2 | Identifier | -test_ReactComponent +jsxNameThis +| es5.js:4:12:4:45 |
    He ... }
    | es5.js:4:24:4:27 | this | +| es5.js:20:12:20:44 |

    Hel ... e}

    | es5.js:20:24:20:27 | this | +| es6.js:3:12:3:45 |
    He ... }
    | es6.js:3:24:3:27 | this | +| statePropertyWrites.js:38:12:38:45 |
    He ... }
    | statePropertyWrites.js:38:24:38:27 | this | +| thisAccesses.js:60:19:60:41 | | thisAccesses.js:60:20:60:23 | this | +| thisAccesses.js:61:19:61:41 | | thisAccesses.js:61:20:61:23 | this | +locationSource +| importedComponent.jsx:3:32:3:39 | location | +reactComponent | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | | es6.js:1:1:8:1 | class H ... ;\\n }\\n} | | es6.js:14:1:20:1 | class H ... }\\n} | | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | | namedImport.js:3:1:3:28 | class C ... nent {} | | namedImport.js:5:1:5:20 | class D extends C {} | | plainfn.js:1:1:3:1 | functio ... div>;\\n} | @@ -76,9 +155,9 @@ test_ReactComponent | plainfn.js:9:1:12:1 | functio ... rn x;\\n} | | plainfn.js:20:1:24:1 | functio ... n 42;\\n} | | preact.js:1:1:7:1 | class H ... }\\n} | -| preact.js:9:1:11:1 | class H ... nt {\\n\\n} | +| preact.js:9:1:11:1 | class H ... nput\\n\\n} | | probably-a-component.js:1:1:6:1 | class H ... }\\n} | -| props.js:2:5:3:5 | class C ... {\\n } | +| props.js:2:5:3:5 | class C ... t\\n } | | props.js:13:31:17:5 | {\\n ... }\\n } | | props.js:26:5:28:5 | functio ... ;\\n } | | rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | @@ -92,14 +171,14 @@ test_ReactComponent | thisAccesses.js:47:1:52:1 | class C ... }\\n} | | thisAccesses.js:54:1:63:1 | class C ... }\\n} | | thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | -test_ReactComponent_ref +reactComponentRef | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:3:11:3:10 | this | | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:4:24:4:27 | this | | es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:6:20:6:19 | this | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | es5.js:19:11:19:10 | this | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | es5.js:20:24:20:27 | this | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | es5.js:19:11:19:10 | this | +| es5.js:18:33:22:1 | {\\n ren ... t\\n }\\n} | es5.js:20:24:20:27 | this | | es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:1:37:1:36 | implicit 'this' | | es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:1:37:1:36 | this | | es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:2:9:2:8 | this | @@ -110,7 +189,7 @@ test_ReactComponent_ref | es6.js:14:1:20:1 | class H ... }\\n} | es6.js:17:9:17:12 | this | | es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:9:18:12 | this | | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | exportedComponent.jsx:1:8:1:7 | this | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | importedComponent.jsx:3:8:3:7 | this | +| importedComponent.jsx:3:8:5:1 | functio ... Value\\n} | importedComponent.jsx:3:8:3:7 | this | | namedImport.js:3:1:3:28 | class C ... nent {} | namedImport.js:3:27:3:26 | implicit 'this' | | namedImport.js:3:1:3:28 | class C ... nent {} | namedImport.js:3:27:3:26 | this | | namedImport.js:5:1:5:20 | class D extends C {} | namedImport.js:5:19:5:18 | implicit 'this' | @@ -122,15 +201,15 @@ test_ReactComponent_ref | preact.js:1:1:7:1 | class H ... }\\n} | preact.js:1:38:1:37 | implicit 'this' | | preact.js:1:1:7:1 | class H ... }\\n} | preact.js:1:38:1:37 | this | | preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:11:2:10 | this | -| preact.js:9:1:11:1 | class H ... nt {\\n\\n} | preact.js:9:38:9:37 | implicit 'this' | -| preact.js:9:1:11:1 | class H ... nt {\\n\\n} | preact.js:9:38:9:37 | this | +| preact.js:9:1:11:1 | class H ... nput\\n\\n} | preact.js:9:38:9:37 | implicit 'this' | +| preact.js:9:1:11:1 | class H ... nput\\n\\n} | preact.js:9:38:9:37 | this | | probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:1:31:1:30 | implicit 'this' | | probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:1:31:1:30 | this | | probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:2:11:2:10 | this | | probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:3:9:3:12 | this | -| props.js:2:5:3:5 | class C ... {\\n } | props.js:2:37:2:36 | implicit 'this' | -| props.js:2:5:3:5 | class C ... {\\n } | props.js:2:37:2:36 | this | -| props.js:2:5:3:5 | class C ... {\\n } | props.js:9:5:9:55 | new C({ ... ctor"}) | +| props.js:2:5:3:5 | class C ... t\\n } | props.js:2:37:2:36 | implicit 'this' | +| props.js:2:5:3:5 | class C ... t\\n } | props.js:2:37:2:36 | this | +| props.js:2:5:3:5 | class C ... t\\n } | props.js:9:5:9:55 | new C({ ... ctor"}) | | props.js:13:31:17:5 | {\\n ... }\\n } | props.js:13:31:17:5 | {\\n ... }\\n } | | props.js:13:31:17:5 | {\\n ... }\\n } | props.js:14:24:14:23 | this | | props.js:26:5:28:5 | functio ... ;\\n } | props.js:26:5:26:4 | this | @@ -201,123 +280,6 @@ test_ReactComponent_ref | thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:9:25:9:24 | this | | thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:10:13:10:16 | this | | thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | thisAccesses_importedMappers.js:11:12:11:15 | this | -test_getADirectStateAccess -| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:16:9:16:18 | this.state | -| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:17:9:17:18 | this.state | -| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:9:18:18 | this.state | -| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:19:2:23 | state | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:3:9:3:18 | this.state | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:5:9:5:18 | this.state | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:4:9:4:17 | cmp.state | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:6:9:6:17 | cmp.state | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:10:9:10:17 | cmp.state | -| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:9:49:18 | this.state | -| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:50:9:50:18 | this.state | -test_ReactComponent_getAPropRead -| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | name | es5.js:4:24:4:38 | this.props.name | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | name | es5.js:20:24:20:38 | this.props.name | -| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | name | es6.js:3:24:3:38 | this.props.name | -| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | color | exportedComponent.jsx:2:32:2:42 | props.color | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | color | importedComponent.jsx:3:25:3:29 | color | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | location | importedComponent.jsx:3:32:3:39 | location | -| plainfn.js:1:1:3:1 | functio ... div>;\\n} | name | plainfn.js:2:22:2:31 | props.name | -| preact.js:1:1:7:1 | class H ... }\\n} | name | preact.js:3:9:3:18 | props.name | -| probably-a-component.js:1:1:6:1 | class H ... }\\n} | name | probably-a-component.js:3:9:3:23 | this.props.name | -| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | name | statePropertyWrites.js:38:24:38:38 | this.props.name | -test_ReactComponent_getInstanceMethod -| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | getDefaultProps | es5.js:6:20:10:3 | functio ... };\\n } | -| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | render | es5.js:3:11:5:3 | functio ... v>;\\n } | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | render | es5.js:19:11:21:3 | functio ... 1>;\\n } | -| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | render | es6.js:2:9:4:3 | () {\\n ... v>;\\n } | -| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | render | exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | render | importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | -| plainfn.js:1:1:3:1 | functio ... div>;\\n} | render | plainfn.js:1:1:3:1 | functio ... div>;\\n} | -| plainfn.js:5:1:7:1 | functio ... iv");\\n} | render | plainfn.js:5:1:7:1 | functio ... iv");\\n} | -| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | render | plainfn.js:9:1:12:1 | functio ... rn x;\\n} | -| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | render | plainfn.js:20:1:24:1 | functio ... n 42;\\n} | -| preact.js:1:1:7:1 | class H ... }\\n} | render | preact.js:2:11:6:5 | (props, ... ;\\n } | -| probably-a-component.js:1:1:6:1 | class H ... }\\n} | render | probably-a-component.js:2:11:5:5 | () {\\n ... ;\\n } | -| props.js:13:31:17:5 | {\\n ... }\\n } | getDefaultProps | props.js:14:24:16:9 | () {\\n ... } | -| props.js:26:5:28:5 | functio ... ;\\n } | render | props.js:26:5:28:5 | functio ... ;\\n } | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | getSnapshotBeforeUpdate | rare-lifecycle-methods.js:8:28:10:5 | (prevPr ... ;\\n } | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | shouldComponentUpdate | rare-lifecycle-methods.js:5:26:7:5 | (nextPr ... ;\\n } | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | componentDidUpdate | statePropertyReads.js:10:23:12:5 | (prevPr ... ;\\n } | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | getInitialState | statePropertyWrites.js:25:20:29:5 | () { // ... ;\\n } | -| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | getInitialState | statePropertyWrites.js:40:20:44:3 | functio ... };\\n } | -| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | render | statePropertyWrites.js:37:11:39:3 | functio ... v>;\\n } | -| thisAccesses.js:1:1:16:1 | class C ... }\\n} | someInstanceMethod | thisAccesses.js:13:23:15:5 | () {\\n ... ;\\n } | -| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | render | thisAccesses.js:19:13:24:5 | functio ... ;\\n } | -| thisAccesses.js:18:19:29:1 | {\\n r ... }\\n} | someInstanceMethod | thisAccesses.js:26:25:28:5 | functio ... ;\\n } | -| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | render | thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | -| thisAccesses.js:38:19:45:1 | {\\n r ... },\\n} | render | thisAccesses.js:39:13:44:5 | functio ... ;\\n } | -| thisAccesses.js:54:1:63:1 | class C ... }\\n} | render | thisAccesses.js:59:11:62:5 | () {\\n ... ;\\n } | -| thisAccesses_importedMappers.js:4:19:15:1 | {\\n r ... },\\n} | render | thisAccesses_importedMappers.js:5:13:14:5 | functio ... ;\\n } | -test_ReactComponent_getADirectPropsSource -| es5.js:1:31:11:1 | {\\n dis ... ;\\n }\\n} | es5.js:4:24:4:33 | this.props | -| es5.js:18:33:22:1 | {\\n ren ... ;\\n }\\n} | es5.js:20:24:20:33 | this.props | -| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:1:37:1:36 | args | -| es6.js:1:1:8:1 | class H ... ;\\n }\\n} | es6.js:3:24:3:33 | this.props | -| exportedComponent.jsx:1:8:3:1 | functio ... r}}/>\\n} | exportedComponent.jsx:1:29:1:33 | props | -| importedComponent.jsx:3:8:5:1 | functio ... or}/>\\n} | importedComponent.jsx:3:24:3:40 | {color, location} | -| namedImport.js:3:1:3:28 | class C ... nent {} | namedImport.js:3:27:3:26 | args | -| namedImport.js:5:1:5:20 | class D extends C {} | namedImport.js:5:19:5:18 | args | -| plainfn.js:1:1:3:1 | functio ... div>;\\n} | plainfn.js:1:16:1:20 | props | -| plainfn.js:5:1:7:1 | functio ... iv");\\n} | plainfn.js:5:17:5:21 | props | -| plainfn.js:9:1:12:1 | functio ... rn x;\\n} | plainfn.js:9:17:9:21 | props | -| plainfn.js:20:1:24:1 | functio ... n 42;\\n} | plainfn.js:20:28:20:32 | props | -| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:1:38:1:37 | args | -| preact.js:1:1:7:1 | class H ... }\\n} | preact.js:2:12:2:16 | props | -| preact.js:9:1:11:1 | class H ... nt {\\n\\n} | preact.js:9:38:9:37 | args | -| probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:1:31:1:30 | args | -| probably-a-component.js:1:1:6:1 | class H ... }\\n} | probably-a-component.js:3:9:3:18 | this.props | -| props.js:2:5:3:5 | class C ... {\\n } | props.js:2:37:2:36 | args | -| props.js:26:5:28:5 | functio ... ;\\n } | props.js:26:16:26:20 | props | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:1:33:1:32 | args | -| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:38:24:38:33 | this.props | -| thisAccesses.js:31:2:36:1 | functio ... iv/>;\\n} | thisAccesses.js:31:12:31:16 | props | -| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y | -test_ReactComponent_getACandidatePropsValue -| es5.js:8:13:8:19 | 'world' | -| importedComponent.jsx:4:32:4:36 | color | -| props.js:5:46:5:67 | "propFr ... tProps" | -| props.js:7:22:7:34 | "propFromJSX" | -| props.js:9:33:9:53 | "propFr ... ructor" | -| props.js:15:44:15:65 | "propFr ... tProps" | -| props.js:19:22:19:34 | "propFromJSX" | -| props.js:21:29:21:49 | "propFr ... ructor" | -| props.js:30:46:30:67 | "propFr ... tProps" | -| props.js:32:22:32:34 | "propFromJSX" | -| props.js:34:33:34:53 | "propFr ... ructor" | -| useHigherOrderComponent.jsx:5:33:5:37 | "red" | -| useHigherOrderComponent.jsx:11:39:11:44 | "lazy" | -| useHigherOrderComponent.jsx:17:40:17:46 | "lazy2" | -test_ReactComponent_getAPreviousStateSource -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:2:44:2:48 | state | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:8:40:8:48 | prevState | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:24:7:32 | prevState | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:10:35:10:43 | prevState | -test_ReactComponent_getACandidateStateSource -| es6.js:14:1:20:1 | class H ... }\\n} | es6.js:18:22:18:31 | { baz: 42} | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:3:16:3:17 | {} | -| rare-lifecycle-methods.js:1:1:11:1 | class C ... }\\n} | rare-lifecycle-methods.js:5:38:5:46 | nextState | -| statePropertyReads.js:1:1:13:1 | class R ... }\\n} | statePropertyReads.js:7:45:7:56 | prevState.p3 | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:8:18:8:19 | {} | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:12:18:12:19 | {} | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:16:18:16:19 | {} | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:20:18:20:19 | {} | -| statePropertyWrites.js:1:1:34:1 | class W ... };\\n} | statePropertyWrites.js:31:13:33:5 | {\\n ... 2\\n } | -| statePropertyWrites.js:36:19:45:1 | {\\n ren ... ;\\n }\\n} | statePropertyWrites.js:41:12:43:5 | {\\n p8: 42\\n } | -| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:48:18:48:18 | y | -| thisAccesses.js:47:1:52:1 | class C ... }\\n} | thisAccesses.js:49:22:49:22 | x | -test_JsxName_this -| es5.js:4:12:4:45 |
    He ... }
    | es5.js:4:24:4:27 | this | -| es5.js:20:12:20:44 |

    Hel ... e}

    | es5.js:20:24:20:27 | this | -| es6.js:3:12:3:45 |
    He ... }
    | es6.js:3:24:3:27 | this | -| statePropertyWrites.js:38:12:38:45 |
    He ... }
    | statePropertyWrites.js:38:24:38:27 | this | -| thisAccesses.js:60:19:60:41 | | thisAccesses.js:60:20:60:23 | this | -| thisAccesses.js:61:19:61:41 | | thisAccesses.js:61:20:61:23 | this | -locationSource -| importedComponent.jsx:3:32:3:39 | location | threatModelSource | es5.js:4:24:4:33 | this.props | view-component-input | | es5.js:20:24:20:33 | this.props | view-component-input | From d9f4e4a90d9b14e2ff31d328bc47be1264a611d8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:48:44 +0200 Subject: [PATCH 232/340] JS: Add tests for functions with "use server" directive --- .../library-tests/frameworks/ReactJS/use-server1.js | 10 ++++++++++ .../library-tests/frameworks/ReactJS/use-server2.js | 11 +++++++++++ 2 files changed, 21 insertions(+) create mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js create mode 100644 javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js new file mode 100644 index 00000000000..3773edf957a --- /dev/null +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js @@ -0,0 +1,10 @@ +async function getData( + x, // $ MISSING: threatModelSource=remote + y) { // $ MISSING: threatModelSource=remote + "use server"; +} + +async function getData2( + x, // should not be remote flow sources (because the function does not have "use server") + y) { +} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js new file mode 100644 index 00000000000..e91b59b50d3 --- /dev/null +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js @@ -0,0 +1,11 @@ +"use server"; + +export async function getData( + x, // $ MISSING: threatModelSource=remote + y) { // $ MISSING: threatModelSource=remote +} + +async function getData2( + x, // should not be remote flow sources (because the function is not exported) + y) { +} From cc1a28ac7e86aa00b8e6b4f6c7dce2553a2e0b0b Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 15:57:11 +0200 Subject: [PATCH 233/340] JS: Add parameters of server functions as remote flow sources --- .../semmle/javascript/frameworks/React.qll | 19 +++++++++++++++++++ .../frameworks/ReactJS/tests.expected | 4 ++++ .../frameworks/ReactJS/use-server1.js | 4 ++-- .../frameworks/ReactJS/use-server2.js | 4 ++-- 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/React.qll b/javascript/ql/lib/semmle/javascript/frameworks/React.qll index 4d126b88829..3a361e70594 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/React.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/React.qll @@ -875,3 +875,22 @@ private class ReactPropAsViewComponentInput extends ViewComponentInput { override string getSourceType() { result = "React props" } } + +private predicate isServerFunction(DataFlow::FunctionNode func) { + exists(Directive::UseServerDirective useServer | + useServer.getContainer() = func.getFunction() + or + useServer.getContainer().(Module).getAnExportedValue(_).getAFunctionValue() = func + ) +} + +private class ServerFunctionRemoteFlowSource extends RemoteFlowSource { + ServerFunctionRemoteFlowSource() { + exists(DataFlow::FunctionNode func | + isServerFunction(func) and + this = func.getAParameter() + ) + } + + override string getSourceType() { result = "React server function parameter" } +} diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected index 1e1607801cf..9b453989bb8 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/tests.expected @@ -305,3 +305,7 @@ threatModelSource | statePropertyWrites.js:38:24:38:33 | this.props | view-component-input | | thisAccesses.js:31:12:31:16 | props | view-component-input | | thisAccesses.js:48:18:48:18 | y | view-component-input | +| use-server1.js:2:5:2:5 | x | remote | +| use-server1.js:3:5:3:5 | y | remote | +| use-server2.js:4:5:4:5 | x | remote | +| use-server2.js:5:5:5:5 | y | remote | diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js index 3773edf957a..1625ff23d1c 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server1.js @@ -1,6 +1,6 @@ async function getData( - x, // $ MISSING: threatModelSource=remote - y) { // $ MISSING: threatModelSource=remote + x, // $ threatModelSource=remote + y) { // $ threatModelSource=remote "use server"; } diff --git a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js index e91b59b50d3..fa0bbab0552 100644 --- a/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js +++ b/javascript/ql/test/library-tests/frameworks/ReactJS/use-server2.js @@ -1,8 +1,8 @@ "use server"; export async function getData( - x, // $ MISSING: threatModelSource=remote - y) { // $ MISSING: threatModelSource=remote + x, // $ threatModelSource=remote + y) { // $ threatModelSource=remote } async function getData2( From 61887beae01101c54f34d892deece617d4101ebd Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 16:02:45 +0200 Subject: [PATCH 234/340] JS: Add test case for false positive --- .../CodeInjection/CodeInjection.expected | 18 ++++++++++++++++-- .../HeuristicSourceCodeInjection.expected | 15 ++++++++++++++- .../CodeInjection/react-server-function.js | 5 +++++ .../Security/CWE-094/CodeInjection/react.js | 15 ++++++++++++--- 4 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react-server-function.js diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected index 4d54adb2724..412f0a5c5fa 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/CodeInjection.expected @@ -65,7 +65,8 @@ | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | module.js:11:17:11:30 | req.query.code | This code execution depends on a $@. | module.js:11:17:11:30 | req.query.code | user-provided value | | react-native.js:8:32:8:38 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:8:32:8:38 | tainted | This code execution depends on a $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value | | react-native.js:10:23:10:29 | tainted | react-native.js:7:17:7:33 | req.param("code") | react-native.js:10:23:10:29 | tainted | This code execution depends on a $@. | react-native.js:7:17:7:33 | req.param("code") | user-provided value | -| react.js:10:56:10:77 | documen ... on.hash | react.js:10:56:10:77 | documen ... on.hash | react.js:10:56:10:77 | documen ... on.hash | This code execution depends on a $@. | react.js:10:56:10:77 | documen ... on.hash | user-provided value | +| react.js:11:56:11:77 | documen ... on.hash | react.js:11:56:11:77 | documen ... on.hash | react.js:11:56:11:77 | documen ... on.hash | This code execution depends on a $@. | react.js:11:56:11:77 | documen ... on.hash | user-provided value | +| react.js:25:8:25:11 | data | react-server-function.js:3:35:3:35 | x | react.js:25:8:25:11 | data | This code execution depends on a $@. | react-server-function.js:3:35:3:35 | x | user-provided value | | template-sinks.js:20:17:20:23 | tainted | template-sinks.js:18:19:18:31 | req.query.foo | template-sinks.js:20:17:20:23 | tainted | Template, which may contain code, depends on a $@. | template-sinks.js:18:19:18:31 | req.query.foo | user-provided value | | template-sinks.js:21:16:21:22 | tainted | template-sinks.js:18:19:18:31 | req.query.foo | template-sinks.js:21:16:21:22 | tainted | Template, which may contain code, depends on a $@. | template-sinks.js:18:19:18:31 | req.query.foo | user-provided value | | template-sinks.js:22:18:22:24 | tainted | template-sinks.js:18:19:18:31 | req.query.foo | template-sinks.js:22:18:22:24 | tainted | Template, which may contain code, depends on a $@. | template-sinks.js:18:19:18:31 | req.query.foo | user-provided value | @@ -156,6 +157,12 @@ edges | react-native.js:7:7:7:33 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | provenance | | +| react-server-function.js:3:35:3:35 | x | react-server-function.js:4:12:4:12 | x | provenance | | +| react-server-function.js:4:12:4:12 | x | react-server-function.js:4:12:4:29 | x + " from server" | provenance | | +| react-server-function.js:4:12:4:29 | x + " from server" | react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | provenance | | +| react.js:24:9:24:45 | data | react.js:25:8:25:11 | data | provenance | | +| react.js:24:16:24:45 | use(ech ... alue")) | react.js:24:9:24:45 | data | provenance | | +| react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | react.js:24:16:24:45 | use(ech ... alue")) | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:20:17:20:23 | tainted | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:21:16:21:22 | tainted | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:22:18:22:24 | tainted | provenance | | @@ -287,7 +294,14 @@ nodes | react-native.js:7:17:7:33 | req.param("code") | semmle.label | req.param("code") | | react-native.js:8:32:8:38 | tainted | semmle.label | tainted | | react-native.js:10:23:10:29 | tainted | semmle.label | tainted | -| react.js:10:56:10:77 | documen ... on.hash | semmle.label | documen ... on.hash | +| react-server-function.js:3:35:3:35 | x | semmle.label | x | +| react-server-function.js:4:12:4:12 | x | semmle.label | x | +| react-server-function.js:4:12:4:29 | x + " from server" | semmle.label | x + " from server" | +| react.js:11:56:11:77 | documen ... on.hash | semmle.label | documen ... on.hash | +| react.js:24:9:24:45 | data | semmle.label | data | +| react.js:24:16:24:45 | use(ech ... alue")) | semmle.label | use(ech ... alue")) | +| react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | semmle.label | echoSer ... value") [PromiseValue] | +| react.js:25:8:25:11 | data | semmle.label | data | | template-sinks.js:18:9:18:31 | tainted | semmle.label | tainted | | template-sinks.js:18:19:18:31 | req.query.foo | semmle.label | req.query.foo | | template-sinks.js:20:17:20:23 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected index a1c8354ecf7..5a249b086b9 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/HeuristicSourceCodeInjection.expected @@ -58,6 +58,12 @@ edges | react-native.js:7:7:7:33 | tainted | react-native.js:8:32:8:38 | tainted | provenance | | | react-native.js:7:7:7:33 | tainted | react-native.js:10:23:10:29 | tainted | provenance | | | react-native.js:7:17:7:33 | req.param("code") | react-native.js:7:7:7:33 | tainted | provenance | | +| react-server-function.js:3:35:3:35 | x | react-server-function.js:4:12:4:12 | x | provenance | | +| react-server-function.js:4:12:4:12 | x | react-server-function.js:4:12:4:29 | x + " from server" | provenance | | +| react-server-function.js:4:12:4:29 | x + " from server" | react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | provenance | | +| react.js:24:9:24:45 | data | react.js:25:8:25:11 | data | provenance | | +| react.js:24:16:24:45 | use(ech ... alue")) | react.js:24:9:24:45 | data | provenance | | +| react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | react.js:24:16:24:45 | use(ech ... alue")) | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:20:17:20:23 | tainted | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:21:16:21:22 | tainted | provenance | | | template-sinks.js:18:9:18:31 | tainted | template-sinks.js:22:18:22:24 | tainted | provenance | | @@ -191,7 +197,14 @@ nodes | react-native.js:7:17:7:33 | req.param("code") | semmle.label | req.param("code") | | react-native.js:8:32:8:38 | tainted | semmle.label | tainted | | react-native.js:10:23:10:29 | tainted | semmle.label | tainted | -| react.js:10:56:10:77 | documen ... on.hash | semmle.label | documen ... on.hash | +| react-server-function.js:3:35:3:35 | x | semmle.label | x | +| react-server-function.js:4:12:4:12 | x | semmle.label | x | +| react-server-function.js:4:12:4:29 | x + " from server" | semmle.label | x + " from server" | +| react.js:11:56:11:77 | documen ... on.hash | semmle.label | documen ... on.hash | +| react.js:24:9:24:45 | data | semmle.label | data | +| react.js:24:16:24:45 | use(ech ... alue")) | semmle.label | use(ech ... alue")) | +| react.js:24:20:24:44 | echoSer ... value") [PromiseValue] | semmle.label | echoSer ... value") [PromiseValue] | +| react.js:25:8:25:11 | data | semmle.label | data | | template-sinks.js:18:9:18:31 | tainted | semmle.label | tainted | | template-sinks.js:18:19:18:31 | req.query.foo | semmle.label | req.query.foo | | template-sinks.js:20:17:20:23 | tainted | semmle.label | tainted | diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react-server-function.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react-server-function.js new file mode 100644 index 00000000000..9c6bf514201 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react-server-function.js @@ -0,0 +1,5 @@ +"use server"; + +export async function echoService(x) { // $ Source[js/code-injection] + return x + " from server"; +} diff --git a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react.js b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react.js index 32db7a3f621..ab6ff096af4 100644 --- a/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react.js +++ b/javascript/ql/test/query-tests/Security/CWE-094/CodeInjection/react.js @@ -1,6 +1,7 @@ -import React from "react"; +import React, { use } from "react"; import {Helmet} from "react-helmet"; - +import { echoService } from "./react-server-function"; + class Application extends React.Component { render () { return ( @@ -14,4 +15,12 @@ class Application extends React.Component { } }; -export default Application \ No newline at end of file +export default Application + +export function Component() { + // We currently get false-positive flow through server functions in cases where a safe value + // is passed as the argument, which flows to the return value. In this case, the tainted parameter + // flows out of the return value regardless. + const data = use(echoService("safe value")); + eval(data); // $ SPURIOUS: Alert[js/code-injection] +} From 4fc5738deddbfba85fab2e79cd2fde7cb95498a3 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 16:08:21 +0200 Subject: [PATCH 235/340] JS: Change note --- .../ql/src/change-notes/2025-06-23-react-use-server.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 javascript/ql/src/change-notes/2025-06-23-react-use-server.md diff --git a/javascript/ql/src/change-notes/2025-06-23-react-use-server.md b/javascript/ql/src/change-notes/2025-06-23-react-use-server.md new file mode 100644 index 00000000000..b3d3088b640 --- /dev/null +++ b/javascript/ql/src/change-notes/2025-06-23-react-use-server.md @@ -0,0 +1,5 @@ +--- +category: majorAnalysis +--- +* Taint is now tracked through the React `use` function. +* Parameters of React server functions, marked with the `"use server"` directive, are now seen as taint sources. From ea0a80a06aabdad698c5631911811431bd3449c8 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 23 Jun 2025 16:38:04 +0200 Subject: [PATCH 236/340] JS: Un-deprecate Actions.qll for now as we have some internal queries that use it. --- javascript/ql/lib/semmle/javascript/Actions.qll | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Actions.qll b/javascript/ql/lib/semmle/javascript/Actions.qll index d3f19681d88..a3dd7542ec1 100644 --- a/javascript/ql/lib/semmle/javascript/Actions.qll +++ b/javascript/ql/lib/semmle/javascript/Actions.qll @@ -1,10 +1,9 @@ /** - * DEPRECATED. Models for GitHub Actions workflow files are part of the actions qlpack now. + * PENDING DEPRECATION. Models for GitHub Actions workflow files are part of the actions qlpack now. * * Libraries for modeling GitHub Actions workflow files written in YAML. * See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions. */ -deprecated module; import javascript From 8d4e36f8698c950acca7473666b89e483338e850 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Mon, 23 Jun 2025 17:53:53 +0200 Subject: [PATCH 237/340] Rust: enable change-note check --- .github/workflows/check-change-note.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/check-change-note.yml b/.github/workflows/check-change-note.yml index 3330e6e1136..70b78ce7294 100644 --- a/.github/workflows/check-change-note.yml +++ b/.github/workflows/check-change-note.yml @@ -16,7 +16,6 @@ on: - "shared/**/*.qll" - "!**/experimental/**" - "!ql/**" - - "!rust/**" - ".github/workflows/check-change-note.yml" jobs: From 584b4f51aa8706147fe18437545fc735d5843056 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 16:26:59 +0200 Subject: [PATCH 238/340] JS: add false positive test cases for hostname regex detection --- .../IncompleteHostnameRegExp.expected | 1 + .../tst-IncompleteHostnameRegExp.js | 4 ++++ .../MissingRegExpAnchor/MissingRegExpAnchor.expected | 1 + .../query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js | 6 ++++++ 4 files changed, 12 insertions(+) create mode 100644 javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js diff --git a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected index 90d4e925d21..af7c020ce3b 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected +++ b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected @@ -27,3 +27,4 @@ | tst-IncompleteHostnameRegExp.js:56:14:56:38 | ^http://test.example.com | This regular expression has an unescaped '.' before 'example.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:56:13:56:39 | '^http: ... le.com' | here | | tst-IncompleteHostnameRegExp.js:60:5:60:20 | foo.example\\.com | This regular expression has an unescaped '.' before 'example\\.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:60:2:60:32 | /^(foo. ... ever)$/ | here | | tst-IncompleteHostnameRegExp.js:62:18:62:41 | ^http://test.example.com | This regular expression has an unescaped '.' before 'example.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:62:17:62:42 | "^http: ... le.com" | here | +| tst-IncompleteHostnameRegExp.js:65:24:65:38 | https://a.b.com | This string, which is used as a regular expression $@, has an unescaped '.' before 'b.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:66:58:66:69 | megacliteUrl | here | diff --git a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js index ae0447f132f..5e16491a01e 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js +++ b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js @@ -60,4 +60,8 @@ /^(foo.example\.com|whatever)$/; // $ Alert (but kinda OK - one disjunction doesn't even look like a hostname) if (s.matchAll("^http://test.example.com")) {} // $ Alert + + const sinon = require('sinon'); + const megacliteUrl = "https://a.b.com"; // $SPURIOUS:Alert + sinon.assert.calledWith(postStub.firstCall, sinon.match(megacliteUrl)); }); diff --git a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected index ebff0b583c0..d29b0411a49 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected +++ b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected @@ -68,3 +68,4 @@ | tst-UnanchoredUrlRegExp.js:117:50:117:59 | "good.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | | tst-UnanchoredUrlRegExp.js:118:50:118:68 | "https?://good.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | | tst-UnanchoredUrlRegExp.js:119:50:119:73 | "https? ... m:8080" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | +| tst.js:4:24:4:40 | "https://a.b.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | diff --git a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js new file mode 100644 index 00000000000..1214e5a301d --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js @@ -0,0 +1,6 @@ +const sinon = require('sinon'); + +function testFunction() { + const megacliteUrl = "https://a.b.com"; // $SPURIOUS:Alert + sinon.assert.calledWith(postStub.firstCall, sinon.match(megacliteUrl)); +} From ef51ab172f6cb6ba549c4196f81b8ed4578dcc24 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 16:28:22 +0200 Subject: [PATCH 239/340] JS: exclude `sinon` module from regexp match calls --- javascript/ql/lib/semmle/javascript/Regexp.qll | 2 ++ .../IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected | 1 - .../IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js | 2 +- .../CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected | 1 - .../query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js | 2 +- 5 files changed, 4 insertions(+), 4 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/Regexp.qll b/javascript/ql/lib/semmle/javascript/Regexp.qll index 642a3d196fb..ea2993ae7da 100644 --- a/javascript/ql/lib/semmle/javascript/Regexp.qll +++ b/javascript/ql/lib/semmle/javascript/Regexp.qll @@ -998,6 +998,8 @@ private predicate isUsedAsNonMatchObject(DataFlow::MethodCallNode call) { or // Result is obviously unused call.asExpr() = any(ExprStmt stmt).getExpr() + or + call = API::moduleImport("sinon").getMember("match").getACall() ) } diff --git a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected index af7c020ce3b..90d4e925d21 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected +++ b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/IncompleteHostnameRegExp.expected @@ -27,4 +27,3 @@ | tst-IncompleteHostnameRegExp.js:56:14:56:38 | ^http://test.example.com | This regular expression has an unescaped '.' before 'example.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:56:13:56:39 | '^http: ... le.com' | here | | tst-IncompleteHostnameRegExp.js:60:5:60:20 | foo.example\\.com | This regular expression has an unescaped '.' before 'example\\.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:60:2:60:32 | /^(foo. ... ever)$/ | here | | tst-IncompleteHostnameRegExp.js:62:18:62:41 | ^http://test.example.com | This regular expression has an unescaped '.' before 'example.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:62:17:62:42 | "^http: ... le.com" | here | -| tst-IncompleteHostnameRegExp.js:65:24:65:38 | https://a.b.com | This string, which is used as a regular expression $@, has an unescaped '.' before 'b.com', so it might match more hosts than expected. | tst-IncompleteHostnameRegExp.js:66:58:66:69 | megacliteUrl | here | diff --git a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js index 5e16491a01e..b2e030a5492 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js +++ b/javascript/ql/test/query-tests/Security/CWE-020/IncompleteHostnameRegExp/tst-IncompleteHostnameRegExp.js @@ -62,6 +62,6 @@ if (s.matchAll("^http://test.example.com")) {} // $ Alert const sinon = require('sinon'); - const megacliteUrl = "https://a.b.com"; // $SPURIOUS:Alert + const megacliteUrl = "https://a.b.com"; sinon.assert.calledWith(postStub.firstCall, sinon.match(megacliteUrl)); }); diff --git a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected index d29b0411a49..ebff0b583c0 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected +++ b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/MissingRegExpAnchor.expected @@ -68,4 +68,3 @@ | tst-UnanchoredUrlRegExp.js:117:50:117:59 | "good.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | | tst-UnanchoredUrlRegExp.js:118:50:118:68 | "https?://good.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | | tst-UnanchoredUrlRegExp.js:119:50:119:73 | "https? ... m:8080" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | -| tst.js:4:24:4:40 | "https://a.b.com" | When this is used as a regular expression on a URL, it may match anywhere, and arbitrary hosts may come before or after it. | diff --git a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js index 1214e5a301d..d4e4d97b651 100644 --- a/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js +++ b/javascript/ql/test/query-tests/Security/CWE-020/MissingRegExpAnchor/tst.js @@ -1,6 +1,6 @@ const sinon = require('sinon'); function testFunction() { - const megacliteUrl = "https://a.b.com"; // $SPURIOUS:Alert + const megacliteUrl = "https://a.b.com"; sinon.assert.calledWith(postStub.firstCall, sinon.match(megacliteUrl)); } From 33f42444d555ecf8add9657ae2fd61c73f72ded0 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 16:31:18 +0200 Subject: [PATCH 240/340] JS: add change note --- javascript/ql/lib/change-notes/2025-06-20-sinon.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-20-sinon.md diff --git a/javascript/ql/lib/change-notes/2025-06-20-sinon.md b/javascript/ql/lib/change-notes/2025-06-20-sinon.md new file mode 100644 index 00000000000..fd8b8e0ad07 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-20-sinon.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Calls to `sinon.match()` are no longer incorrectly identified as regular expression operations. From d8b5cb58625357e5861f8498b42089080b3dd74d Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 08:51:31 +0200 Subject: [PATCH 241/340] JS: moved `execa` out of experimental --- javascript/ql/lib/javascript.qll | 1 + .../javascript => lib/semmle/javascript/frameworks}/Execa.qll | 0 2 files changed, 1 insertion(+) rename javascript/ql/{src/experimental/semmle/javascript => lib/semmle/javascript/frameworks}/Execa.qll (100%) diff --git a/javascript/ql/lib/javascript.qll b/javascript/ql/lib/javascript.qll index d75eed29b8e..7accf28be07 100644 --- a/javascript/ql/lib/javascript.qll +++ b/javascript/ql/lib/javascript.qll @@ -92,6 +92,7 @@ import semmle.javascript.frameworks.DigitalOcean import semmle.javascript.frameworks.DomEvents import semmle.javascript.frameworks.Electron import semmle.javascript.frameworks.EventEmitter +import semmle.javascript.frameworks.Execa import semmle.javascript.frameworks.Files import semmle.javascript.frameworks.Firebase import semmle.javascript.frameworks.FormParsers diff --git a/javascript/ql/src/experimental/semmle/javascript/Execa.qll b/javascript/ql/lib/semmle/javascript/frameworks/Execa.qll similarity index 100% rename from javascript/ql/src/experimental/semmle/javascript/Execa.qll rename to javascript/ql/lib/semmle/javascript/frameworks/Execa.qll From d05de1ba4e9bf98fd1f91b43ade3e48292238bb8 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 09:20:46 +0200 Subject: [PATCH 242/340] JS: moved `execa` test cases outside experimental --- .../Execa/CommandInjection/tests.expected | 22 ---- .../Execa/CommandInjection/tests.js | 36 ----- .../Execa/CommandInjection/tests.ql | 38 ------ .../Execa/PathInjection/tests.expected | 6 - .../experimental/Execa/PathInjection/tests.ql | 34 ----- .../CWE-022/TaintedPath/TaintedPath.expected | 23 ++++ .../Security/CWE-022/TaintedPath/execa.js} | 12 +- .../CommandInjection.expected | 124 ++++++++++++++++++ .../CWE-078/CommandInjection/execa.js | 36 +++++ 9 files changed, 189 insertions(+), 142 deletions(-) delete mode 100644 javascript/ql/test/experimental/Execa/CommandInjection/tests.expected delete mode 100644 javascript/ql/test/experimental/Execa/CommandInjection/tests.js delete mode 100644 javascript/ql/test/experimental/Execa/CommandInjection/tests.ql delete mode 100644 javascript/ql/test/experimental/Execa/PathInjection/tests.expected delete mode 100644 javascript/ql/test/experimental/Execa/PathInjection/tests.ql rename javascript/ql/test/{experimental/Execa/PathInjection/tests.js => query-tests/Security/CWE-022/TaintedPath/execa.js} (61%) create mode 100644 javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js diff --git a/javascript/ql/test/experimental/Execa/CommandInjection/tests.expected b/javascript/ql/test/experimental/Execa/CommandInjection/tests.expected deleted file mode 100644 index 931d1de923f..00000000000 --- a/javascript/ql/test/experimental/Execa/CommandInjection/tests.expected +++ /dev/null @@ -1,22 +0,0 @@ -passingPositiveTests -| PASSED | CommandInjection | tests.js:11:46:11:70 | // test ... jection | -| PASSED | CommandInjection | tests.js:12:43:12:67 | // test ... jection | -| PASSED | CommandInjection | tests.js:13:63:13:87 | // test ... jection | -| PASSED | CommandInjection | tests.js:14:62:14:86 | // test ... jection | -| PASSED | CommandInjection | tests.js:15:60:15:84 | // test ... jection | -| PASSED | CommandInjection | tests.js:17:45:17:69 | // test ... jection | -| PASSED | CommandInjection | tests.js:18:42:18:66 | // test ... jection | -| PASSED | CommandInjection | tests.js:19:62:19:86 | // test ... jection | -| PASSED | CommandInjection | tests.js:20:63:20:87 | // test ... jection | -| PASSED | CommandInjection | tests.js:21:60:21:84 | // test ... jection | -| PASSED | CommandInjection | tests.js:23:43:23:67 | // test ... jection | -| PASSED | CommandInjection | tests.js:24:40:24:64 | // test ... jection | -| PASSED | CommandInjection | tests.js:25:40:25:64 | // test ... jection | -| PASSED | CommandInjection | tests.js:26:60:26:84 | // test ... jection | -| PASSED | CommandInjection | tests.js:28:41:28:65 | // test ... jection | -| PASSED | CommandInjection | tests.js:29:58:29:82 | // test ... jection | -| PASSED | CommandInjection | tests.js:31:51:31:75 | // test ... jection | -| PASSED | CommandInjection | tests.js:32:68:32:92 | // test ... jection | -| PASSED | CommandInjection | tests.js:34:49:34:73 | // test ... jection | -| PASSED | CommandInjection | tests.js:35:66:35:90 | // test ... jection | -failingPositiveTests diff --git a/javascript/ql/test/experimental/Execa/CommandInjection/tests.js b/javascript/ql/test/experimental/Execa/CommandInjection/tests.js deleted file mode 100644 index eb35be96b61..00000000000 --- a/javascript/ql/test/experimental/Execa/CommandInjection/tests.js +++ /dev/null @@ -1,36 +0,0 @@ -import { execa, execaSync, execaCommand, execaCommandSync, $ } from 'execa'; -import http from 'node:http' -import url from 'url' - -http.createServer(async function (req, res) { - let cmd = url.parse(req.url, true).query["cmd"][0]; - let arg1 = url.parse(req.url, true).query["arg1"]; - let arg2 = url.parse(req.url, true).query["arg2"]; - let arg3 = url.parse(req.url, true).query["arg3"]; - - await $`${cmd} ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - await $`ssh ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - $({ shell: false }).sync`${cmd} ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - $({ shell: true }).sync`${cmd} ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - $({ shell: false }).sync`ssh ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - - $.sync`${cmd} ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - $.sync`ssh ${arg1} ${arg2} ${arg3}`; // test: CommandInjection - await $({ shell: true })`${cmd} ${arg1} ${arg2} ${arg3}` // test: CommandInjection - await $({ shell: false })`${cmd} ${arg1} ${arg2} ${arg3}` // test: CommandInjection - await $({ shell: false })`ssh ${arg1} ${arg2} ${arg3}` // test: CommandInjection - - await execa(cmd, [arg1, arg2, arg3]); // test: CommandInjection - await execa(cmd, { shell: true }); // test: CommandInjection - await execa(cmd, { shell: true }); // test: CommandInjection - await execa(cmd, [arg1, arg2, arg3], { shell: true }); // test: CommandInjection - - execaSync(cmd, [arg1, arg2, arg3]); // test: CommandInjection - execaSync(cmd, [arg1, arg2, arg3], { shell: true }); // test: CommandInjection - - await execaCommand(cmd + arg1 + arg2 + arg3); // test: CommandInjection - await execaCommand(cmd + arg1 + arg2 + arg3, { shell: true }); // test: CommandInjection - - execaCommandSync(cmd + arg1 + arg2 + arg3); // test: CommandInjection - execaCommandSync(cmd + arg1 + arg2 + arg3, { shell: true }); // test: CommandInjection -}); \ No newline at end of file diff --git a/javascript/ql/test/experimental/Execa/CommandInjection/tests.ql b/javascript/ql/test/experimental/Execa/CommandInjection/tests.ql deleted file mode 100644 index a8ab812f821..00000000000 --- a/javascript/ql/test/experimental/Execa/CommandInjection/tests.ql +++ /dev/null @@ -1,38 +0,0 @@ -import javascript - -class InlineTest extends LineComment { - string tests; - - InlineTest() { tests = this.getText().regexpCapture("\\s*test:(.*)", 1) } - - string getPositiveTest() { - result = tests.trim().splitAt(",").trim() and not result.matches("!%") - } - - predicate hasPositiveTest(string test) { test = this.getPositiveTest() } - - predicate inNode(DataFlow::Node n) { - this.getLocation().getFile() = n.getFile() and - this.getLocation().getStartLine() = n.getStartLine() - } -} - -import experimental.semmle.javascript.Execa - -query predicate passingPositiveTests(string res, string expectation, InlineTest t) { - res = "PASSED" and - t.hasPositiveTest(expectation) and - expectation = "CommandInjection" and - exists(SystemCommandExecution n | - t.inNode(n.getArgumentList()) or t.inNode(n.getACommandArgument()) - ) -} - -query predicate failingPositiveTests(string res, string expectation, InlineTest t) { - res = "FAILED" and - t.hasPositiveTest(expectation) and - expectation = "CommandInjection" and - not exists(SystemCommandExecution n | - t.inNode(n.getArgumentList()) or t.inNode(n.getACommandArgument()) - ) -} diff --git a/javascript/ql/test/experimental/Execa/PathInjection/tests.expected b/javascript/ql/test/experimental/Execa/PathInjection/tests.expected deleted file mode 100644 index 3149ae1c022..00000000000 --- a/javascript/ql/test/experimental/Execa/PathInjection/tests.expected +++ /dev/null @@ -1,6 +0,0 @@ -passingPositiveTests -| PASSED | PathInjection | tests.js:9:43:9:64 | // test ... jection | -| PASSED | PathInjection | tests.js:12:50:12:71 | // test ... jection | -| PASSED | PathInjection | tests.js:15:61:15:82 | // test ... jection | -| PASSED | PathInjection | tests.js:18:73:18:94 | // test ... jection | -failingPositiveTests diff --git a/javascript/ql/test/experimental/Execa/PathInjection/tests.ql b/javascript/ql/test/experimental/Execa/PathInjection/tests.ql deleted file mode 100644 index 08b5435e01f..00000000000 --- a/javascript/ql/test/experimental/Execa/PathInjection/tests.ql +++ /dev/null @@ -1,34 +0,0 @@ -import javascript - -class InlineTest extends LineComment { - string tests; - - InlineTest() { tests = this.getText().regexpCapture("\\s*test:(.*)", 1) } - - string getPositiveTest() { - result = tests.trim().splitAt(",").trim() and not result.matches("!%") - } - - predicate hasPositiveTest(string test) { test = this.getPositiveTest() } - - predicate inNode(DataFlow::Node n) { - this.getLocation().getFile() = n.getFile() and - this.getLocation().getStartLine() = n.getStartLine() - } -} - -import experimental.semmle.javascript.Execa - -query predicate passingPositiveTests(string res, string expectation, InlineTest t) { - res = "PASSED" and - t.hasPositiveTest(expectation) and - expectation = "PathInjection" and - exists(FileSystemReadAccess n | t.inNode(n.getAPathArgument())) -} - -query predicate failingPositiveTests(string res, string expectation, InlineTest t) { - res = "FAILED" and - t.hasPositiveTest(expectation) and - expectation = "PathInjection" and - not exists(FileSystemReadAccess n | t.inNode(n.getAPathArgument())) -} diff --git a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected index 08bf15800da..2a3e4c18884 100644 --- a/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected +++ b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/TaintedPath.expected @@ -48,6 +48,10 @@ | TaintedPath.js:214:29:214:42 | improperEscape | TaintedPath.js:212:24:212:30 | req.url | TaintedPath.js:214:29:214:42 | improperEscape | This path depends on a $@. | TaintedPath.js:212:24:212:30 | req.url | user-provided value | | TaintedPath.js:216:29:216:43 | improperEscape2 | TaintedPath.js:212:24:212:30 | req.url | TaintedPath.js:216:29:216:43 | improperEscape2 | This path depends on a $@. | TaintedPath.js:212:24:212:30 | req.url | user-provided value | | examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | examples/TaintedPath.js:8:28:8:34 | req.url | examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | This path depends on a $@. | examples/TaintedPath.js:8:28:8:34 | req.url | user-provided value | +| execa.js:9:26:9:33 | filePath | execa.js:6:30:6:36 | req.url | execa.js:9:26:9:33 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value | +| execa.js:12:37:12:44 | filePath | execa.js:6:30:6:36 | req.url | execa.js:12:37:12:44 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value | +| execa.js:15:50:15:57 | filePath | execa.js:6:30:6:36 | req.url | execa.js:15:50:15:57 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value | +| execa.js:18:62:18:69 | filePath | execa.js:6:30:6:36 | req.url | execa.js:18:62:18:69 | filePath | This path depends on a $@. | execa.js:6:30:6:36 | req.url | user-provided value | | express.js:8:20:8:32 | req.query.bar | express.js:8:20:8:32 | req.query.bar | express.js:8:20:8:32 | req.query.bar | This path depends on a $@. | express.js:8:20:8:32 | req.query.bar | user-provided value | | handlebars.js:11:32:11:39 | filePath | handlebars.js:29:46:29:60 | req.params.path | handlebars.js:11:32:11:39 | filePath | This path depends on a $@. | handlebars.js:29:46:29:60 | req.params.path | user-provided value | | handlebars.js:15:25:15:32 | filePath | handlebars.js:43:15:43:29 | req.params.path | handlebars.js:15:25:15:32 | filePath | This path depends on a $@. | handlebars.js:43:15:43:29 | req.params.path | user-provided value | @@ -399,6 +403,15 @@ edges | examples/TaintedPath.js:8:18:8:52 | url.par ... ry.path | examples/TaintedPath.js:8:7:8:52 | filePath | provenance | | | examples/TaintedPath.js:8:28:8:34 | req.url | examples/TaintedPath.js:8:18:8:41 | url.par ... , true) | provenance | Config | | examples/TaintedPath.js:10:36:10:43 | filePath | examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | provenance | Config | +| execa.js:6:9:6:64 | filePath | execa.js:9:26:9:33 | filePath | provenance | | +| execa.js:6:9:6:64 | filePath | execa.js:12:37:12:44 | filePath | provenance | | +| execa.js:6:9:6:64 | filePath | execa.js:15:50:15:57 | filePath | provenance | | +| execa.js:6:9:6:64 | filePath | execa.js:18:62:18:69 | filePath | provenance | | +| execa.js:6:20:6:43 | url.par ... , true) | execa.js:6:20:6:49 | url.par ... ).query | provenance | Config | +| execa.js:6:20:6:49 | url.par ... ).query | execa.js:6:20:6:61 | url.par ... ePath"] | provenance | Config | +| execa.js:6:20:6:61 | url.par ... ePath"] | execa.js:6:20:6:64 | url.par ... th"][0] | provenance | Config | +| execa.js:6:20:6:64 | url.par ... th"][0] | execa.js:6:9:6:64 | filePath | provenance | | +| execa.js:6:30:6:36 | req.url | execa.js:6:20:6:43 | url.par ... , true) | provenance | Config | | handlebars.js:10:51:10:58 | filePath | handlebars.js:11:32:11:39 | filePath | provenance | | | handlebars.js:13:73:13:80 | filePath | handlebars.js:15:25:15:32 | filePath | provenance | | | handlebars.js:29:46:29:60 | req.params.path | handlebars.js:10:51:10:58 | filePath | provenance | | @@ -944,6 +957,16 @@ nodes | examples/TaintedPath.js:8:28:8:34 | req.url | semmle.label | req.url | | examples/TaintedPath.js:10:29:10:43 | ROOT + filePath | semmle.label | ROOT + filePath | | examples/TaintedPath.js:10:36:10:43 | filePath | semmle.label | filePath | +| execa.js:6:9:6:64 | filePath | semmle.label | filePath | +| execa.js:6:20:6:43 | url.par ... , true) | semmle.label | url.par ... , true) | +| execa.js:6:20:6:49 | url.par ... ).query | semmle.label | url.par ... ).query | +| execa.js:6:20:6:61 | url.par ... ePath"] | semmle.label | url.par ... ePath"] | +| execa.js:6:20:6:64 | url.par ... th"][0] | semmle.label | url.par ... th"][0] | +| execa.js:6:30:6:36 | req.url | semmle.label | req.url | +| execa.js:9:26:9:33 | filePath | semmle.label | filePath | +| execa.js:12:37:12:44 | filePath | semmle.label | filePath | +| execa.js:15:50:15:57 | filePath | semmle.label | filePath | +| execa.js:18:62:18:69 | filePath | semmle.label | filePath | | express.js:8:20:8:32 | req.query.bar | semmle.label | req.query.bar | | handlebars.js:10:51:10:58 | filePath | semmle.label | filePath | | handlebars.js:11:32:11:39 | filePath | semmle.label | filePath | diff --git a/javascript/ql/test/experimental/Execa/PathInjection/tests.js b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/execa.js similarity index 61% rename from javascript/ql/test/experimental/Execa/PathInjection/tests.js rename to javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/execa.js index 4665b8c8950..8fcfdd42c67 100644 --- a/javascript/ql/test/experimental/Execa/PathInjection/tests.js +++ b/javascript/ql/test/query-tests/Security/CWE-022/TaintedPath/execa.js @@ -3,17 +3,17 @@ import http from 'node:http' import url from 'url' http.createServer(async function (req, res) { - let filePath = url.parse(req.url, true).query["filePath"][0]; + let filePath = url.parse(req.url, true).query["filePath"][0]; // $Source // Piping to stdin from a file - await $({ inputFile: filePath })`cat` // test: PathInjection + await $({ inputFile: filePath })`cat` // $Alert // Piping to stdin from a file - await execa('cat', { inputFile: filePath }); // test: PathInjection + await execa('cat', { inputFile: filePath }); // $Alert // Piping Stdout to file - await execa('echo', ['example3']).pipeStdout(filePath); // test: PathInjection + await execa('echo', ['example3']).pipeStdout(filePath); // $Alert // Piping all of command output to file - await execa('echo', ['example4'], { all: true }).pipeAll(filePath); // test: PathInjection -}); \ No newline at end of file + await execa('echo', ['example4'], { all: true }).pipeAll(filePath); // $Alert +}); diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected index b68d40a540d..707be5ce452 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected @@ -24,6 +24,34 @@ | exec-sh2.js:10:12:10:57 | cp.spaw ... ptions) | exec-sh2.js:14:25:14:31 | req.url | exec-sh2.js:10:40:10:46 | command | This command line depends on a $@. | exec-sh2.js:14:25:14:31 | req.url | user-provided value | | exec-sh.js:15:12:15:61 | cp.spaw ... ptions) | exec-sh.js:19:25:19:31 | req.url | exec-sh.js:15:44:15:50 | command | This command line depends on a $@. | exec-sh.js:19:25:19:31 | req.url | user-provided value | | execSeries.js:14:41:14:47 | command | execSeries.js:18:34:18:40 | req.url | execSeries.js:14:41:14:47 | command | This command line depends on a $@. | execSeries.js:18:34:18:40 | req.url | user-provided value | +| execa.js:11:15:11:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:11:15:11:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:13:32:13:34 | cmd | execa.js:6:25:6:31 | req.url | execa.js:13:32:13:34 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:14:31:14:33 | cmd | execa.js:6:25:6:31 | req.url | execa.js:14:31:14:33 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:17:14:17:16 | cmd | execa.js:6:25:6:31 | req.url | execa.js:17:14:17:16 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:19:32:19:34 | cmd | execa.js:6:25:6:31 | req.url | execa.js:19:32:19:34 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:20:33:20:35 | cmd | execa.js:6:25:6:31 | req.url | execa.js:20:33:20:35 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:23:17:23:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:23:17:23:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:24:17:24:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:24:17:24:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:25:17:25:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:25:17:25:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:26:17:26:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:26:17:26:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:28:15:28:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:28:15:28:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:29:15:29:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:29:15:29:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | +| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | +| execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | +| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | | form-parsers.js:9:8:9:39 | "touch ... nalname | form-parsers.js:9:19:9:26 | req.file | form-parsers.js:9:8:9:39 | "touch ... nalname | This command line depends on a $@. | form-parsers.js:9:19:9:26 | req.file | user-provided value | | form-parsers.js:14:10:14:37 | "touch ... nalname | form-parsers.js:13:3:13:11 | req.files | form-parsers.js:14:10:14:37 | "touch ... nalname | This command line depends on a $@. | form-parsers.js:13:3:13:11 | req.files | user-provided value | | form-parsers.js:25:10:25:28 | "touch " + filename | form-parsers.js:24:48:24:55 | filename | form-parsers.js:25:10:25:28 | "touch " + filename | This command line depends on a $@. | form-parsers.js:24:48:24:55 | filename | user-provided value | @@ -112,6 +140,58 @@ edges | execSeries.js:18:34:18:40 | req.url | execSeries.js:18:13:18:47 | require ... , true) | provenance | | | execSeries.js:19:12:19:16 | [cmd] [0] | execSeries.js:13:19:13:26 | commands [0] | provenance | | | execSeries.js:19:13:19:15 | cmd | execSeries.js:19:12:19:16 | [cmd] [0] | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:11:15:11:17 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:13:32:13:34 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:14:31:14:33 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:17:14:17:16 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:19:32:19:34 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:20:33:20:35 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:23:17:23:19 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:24:17:24:19 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:25:17:25:19 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:26:17:26:19 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:28:15:28:17 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:29:15:29:17 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:31:24:31:26 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:32:24:32:26 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:34:22:34:24 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:35:22:35:24 | cmd | provenance | | +| execa.js:6:15:6:38 | url.par ... , true) | execa.js:6:9:6:54 | cmd | provenance | | +| execa.js:6:25:6:31 | req.url | execa.js:6:15:6:38 | url.par ... , true) | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:31:30:31:33 | arg1 | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:32:30:32:33 | arg1 | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:34:28:34:31 | arg1 | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:35:28:35:31 | arg1 | provenance | | +| execa.js:7:16:7:39 | url.par ... , true) | execa.js:7:9:7:53 | arg1 | provenance | | +| execa.js:7:26:7:32 | req.url | execa.js:7:16:7:39 | url.par ... , true) | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:31:37:31:40 | arg2 | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:32:37:32:40 | arg2 | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:34:35:34:38 | arg2 | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:35:35:35:38 | arg2 | provenance | | +| execa.js:8:16:8:39 | url.par ... , true) | execa.js:8:9:8:53 | arg2 | provenance | | +| execa.js:8:26:8:32 | req.url | execa.js:8:16:8:39 | url.par ... , true) | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:31:44:31:47 | arg3 | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:32:44:32:47 | arg3 | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:34:42:34:45 | arg3 | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:35:42:35:45 | arg3 | provenance | | +| execa.js:9:16:9:39 | url.par ... , true) | execa.js:9:9:9:53 | arg3 | provenance | | +| execa.js:9:26:9:32 | req.url | execa.js:9:16:9:39 | url.par ... , true) | provenance | | +| execa.js:31:24:31:26 | cmd | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | +| execa.js:31:30:31:33 | arg1 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | +| execa.js:31:37:31:40 | arg2 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | +| execa.js:31:44:31:47 | arg3 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | +| execa.js:32:24:32:26 | cmd | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | +| execa.js:32:30:32:33 | arg1 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | +| execa.js:32:37:32:40 | arg2 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | +| execa.js:32:44:32:47 | arg3 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | +| execa.js:34:22:34:24 | cmd | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | +| execa.js:34:28:34:31 | arg1 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | +| execa.js:34:35:34:38 | arg2 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | +| execa.js:34:42:34:45 | arg3 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | +| execa.js:35:22:35:24 | cmd | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | +| execa.js:35:28:35:31 | arg1 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | +| execa.js:35:35:35:38 | arg2 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | +| execa.js:35:42:35:45 | arg3 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | | form-parsers.js:9:19:9:26 | req.file | form-parsers.js:9:8:9:39 | "touch ... nalname | provenance | | | form-parsers.js:13:3:13:11 | req.files | form-parsers.js:13:21:13:24 | file | provenance | | | form-parsers.js:13:21:13:24 | file | form-parsers.js:14:21:14:24 | file | provenance | | @@ -216,6 +296,50 @@ nodes | execSeries.js:18:34:18:40 | req.url | semmle.label | req.url | | execSeries.js:19:12:19:16 | [cmd] [0] | semmle.label | [cmd] [0] | | execSeries.js:19:13:19:15 | cmd | semmle.label | cmd | +| execa.js:6:9:6:54 | cmd | semmle.label | cmd | +| execa.js:6:15:6:38 | url.par ... , true) | semmle.label | url.par ... , true) | +| execa.js:6:25:6:31 | req.url | semmle.label | req.url | +| execa.js:7:9:7:53 | arg1 | semmle.label | arg1 | +| execa.js:7:16:7:39 | url.par ... , true) | semmle.label | url.par ... , true) | +| execa.js:7:26:7:32 | req.url | semmle.label | req.url | +| execa.js:8:9:8:53 | arg2 | semmle.label | arg2 | +| execa.js:8:16:8:39 | url.par ... , true) | semmle.label | url.par ... , true) | +| execa.js:8:26:8:32 | req.url | semmle.label | req.url | +| execa.js:9:9:9:53 | arg3 | semmle.label | arg3 | +| execa.js:9:16:9:39 | url.par ... , true) | semmle.label | url.par ... , true) | +| execa.js:9:26:9:32 | req.url | semmle.label | req.url | +| execa.js:11:15:11:17 | cmd | semmle.label | cmd | +| execa.js:13:32:13:34 | cmd | semmle.label | cmd | +| execa.js:14:31:14:33 | cmd | semmle.label | cmd | +| execa.js:17:14:17:16 | cmd | semmle.label | cmd | +| execa.js:19:32:19:34 | cmd | semmle.label | cmd | +| execa.js:20:33:20:35 | cmd | semmle.label | cmd | +| execa.js:23:17:23:19 | cmd | semmle.label | cmd | +| execa.js:24:17:24:19 | cmd | semmle.label | cmd | +| execa.js:25:17:25:19 | cmd | semmle.label | cmd | +| execa.js:26:17:26:19 | cmd | semmle.label | cmd | +| execa.js:28:15:28:17 | cmd | semmle.label | cmd | +| execa.js:29:15:29:17 | cmd | semmle.label | cmd | +| execa.js:31:24:31:26 | cmd | semmle.label | cmd | +| execa.js:31:24:31:47 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:31:30:31:33 | arg1 | semmle.label | arg1 | +| execa.js:31:37:31:40 | arg2 | semmle.label | arg2 | +| execa.js:31:44:31:47 | arg3 | semmle.label | arg3 | +| execa.js:32:24:32:26 | cmd | semmle.label | cmd | +| execa.js:32:24:32:47 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:32:30:32:33 | arg1 | semmle.label | arg1 | +| execa.js:32:37:32:40 | arg2 | semmle.label | arg2 | +| execa.js:32:44:32:47 | arg3 | semmle.label | arg3 | +| execa.js:34:22:34:24 | cmd | semmle.label | cmd | +| execa.js:34:22:34:45 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:34:28:34:31 | arg1 | semmle.label | arg1 | +| execa.js:34:35:34:38 | arg2 | semmle.label | arg2 | +| execa.js:34:42:34:45 | arg3 | semmle.label | arg3 | +| execa.js:35:22:35:24 | cmd | semmle.label | cmd | +| execa.js:35:22:35:45 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:35:28:35:31 | arg1 | semmle.label | arg1 | +| execa.js:35:35:35:38 | arg2 | semmle.label | arg2 | +| execa.js:35:42:35:45 | arg3 | semmle.label | arg3 | | form-parsers.js:9:8:9:39 | "touch ... nalname | semmle.label | "touch ... nalname | | form-parsers.js:9:19:9:26 | req.file | semmle.label | req.file | | form-parsers.js:13:3:13:11 | req.files | semmle.label | req.files | diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js new file mode 100644 index 00000000000..55c8ff95938 --- /dev/null +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js @@ -0,0 +1,36 @@ +import { execa, execaSync, execaCommand, execaCommandSync, $ } from 'execa'; +import http from 'node:http' +import url from 'url' + +http.createServer(async function (req, res) { + let cmd = url.parse(req.url, true).query["cmd"][0]; // $Source + let arg1 = url.parse(req.url, true).query["arg1"]; // $Source + let arg2 = url.parse(req.url, true).query["arg2"]; // $Source + let arg3 = url.parse(req.url, true).query["arg3"]; // $Source + + await $`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + await $`ssh ${arg1} ${arg2} ${arg3}`; // safely escapes variables, preventing shell injection. + $({ shell: false }).sync`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + $({ shell: true }).sync`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + $({ shell: false }).sync`ssh ${arg1} ${arg2} ${arg3}`; // safely escapes variables, preventing shell injection. + + $.sync`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + $.sync`ssh ${arg1} ${arg2} ${arg3}`; // safely escapes variables, preventing shell injection. + await $({ shell: true })`${cmd} ${arg1} ${arg2} ${arg3}` // $Alert + await $({ shell: false })`${cmd} ${arg1} ${arg2} ${arg3}` // $Alert + await $({ shell: false })`ssh ${arg1} ${arg2} ${arg3}` // safely escapes variables, preventing shell injection. + + await execa(cmd, [arg1, arg2, arg3]); // $Alert + await execa(cmd, { shell: true }); // $Alert + await execa(cmd, { shell: true }); // $Alert + await execa(cmd, [arg1, arg2, arg3], { shell: true }); // $Alert + + execaSync(cmd, [arg1, arg2, arg3]); // $Alert + execaSync(cmd, [arg1, arg2, arg3], { shell: true }); // $Alert + + await execaCommand(cmd + arg1 + arg2 + arg3); // $Alert + await execaCommand(cmd + arg1 + arg2 + arg3, { shell: true }); // $Alert + + execaCommandSync(cmd + arg1 + arg2 + arg3); // $Alert + execaCommandSync(cmd + arg1 + arg2 + arg3, { shell: true }); // $Alert +}); From 8c345461f0019d4185c2df0be7ba9c8d190e03f2 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Fri, 20 Jun 2025 15:05:12 +0200 Subject: [PATCH 243/340] JS: add change note --- javascript/ql/lib/change-notes/2025-06-20-execa.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 javascript/ql/lib/change-notes/2025-06-20-execa.md diff --git a/javascript/ql/lib/change-notes/2025-06-20-execa.md b/javascript/ql/lib/change-notes/2025-06-20-execa.md new file mode 100644 index 00000000000..41459ec9c24 --- /dev/null +++ b/javascript/ql/lib/change-notes/2025-06-20-execa.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The model for the `execa` library has been promoted from experimental to stable. From 153e91bebbf8c458c76708148441bd1facdf078b Mon Sep 17 00:00:00 2001 From: Simon Friis Vindum Date: Tue, 24 Jun 2025 09:30:23 +0200 Subject: [PATCH 244/340] Rust: Re-enable special casing in indexing for `Vec` --- rust/ql/lib/codeql/rust/internal/TypeInference.qll | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rust/ql/lib/codeql/rust/internal/TypeInference.qll b/rust/ql/lib/codeql/rust/internal/TypeInference.qll index 04cb6b2c484..2052f3f74d9 100644 --- a/rust/ql/lib/codeql/rust/internal/TypeInference.qll +++ b/rust/ql/lib/codeql/rust/internal/TypeInference.qll @@ -1132,6 +1132,8 @@ private Type inferIndexExprType(IndexExpr ie, TypePath path) { ) and result = inferType(ie.getBase(), exprPath) | + exprPath.isCons(any(Vec v).getElementTypeParameter(), path) + or exprPath.isCons(any(ArrayTypeParameter tp), path) or exists(TypePath path0 | From cb983102e58df6c824979a6d9901b7e4e5d4689b Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 24 Jun 2025 09:46:20 +0200 Subject: [PATCH 245/340] JS: Remote mention of Element MaD token --- .../customizing-library-models-for-javascript.rst | 1 - 1 file changed, 1 deletion(-) diff --git a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst index fa2c1d4e8a8..413471be885 100644 --- a/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst +++ b/docs/codeql/codeql-language-guides/customizing-library-models-for-javascript.rst @@ -517,7 +517,6 @@ The following components are supported: - **Member[**\ `name`\ **]** selects the property with the given name. - **AnyMember** selects any property regardless of name. - **ArrayElement** selects an element of an array. -- **Element** selects an element of an array, iterator, or set object. - **MapValue** selects a value of a map object. - **Awaited** selects the value of a promise. - **Instance** selects instances of a class, including instances of its subclasses. From d0c7550119e0fbc7ba082c94df492308f3e9326a Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Tue, 24 Jun 2025 09:19:22 +0200 Subject: [PATCH 246/340] Rust: refactor `pre_emit!` and `post_emit!` to a trait --- rust/ast-generator/src/main.rs | 30 ++ .../templates/extractor.mustache | 23 +- .../templates/post_emission.mustache | 3 + .../templates/pre_emission.mustache | 5 + .../templates/trap_class_mapping.mustache | 6 + rust/extractor/src/translate/base.rs | 265 ++++++---- rust/extractor/src/translate/generated.rs | 483 +++++------------- rust/extractor/src/translate/mappings.rs | 13 + 8 files changed, 369 insertions(+), 459 deletions(-) create mode 100644 rust/ast-generator/templates/post_emission.mustache create mode 100644 rust/ast-generator/templates/pre_emission.mustache create mode 100644 rust/ast-generator/templates/trap_class_mapping.mustache diff --git a/rust/ast-generator/src/main.rs b/rust/ast-generator/src/main.rs index 5871326cbad..e6f39c4147d 100644 --- a/rust/ast-generator/src/main.rs +++ b/rust/ast-generator/src/main.rs @@ -52,6 +52,32 @@ fn property_name(type_name: &str, field_name: &str) -> String { name.to_owned() } +fn has_special_emission(type_name: &str) -> bool { + matches!( + type_name, + "Item" + | "AssocItem" + | "ExternItem" + | "Meta" + | "MacroCall" + | "Fn" + | "Struct" + | "Enum" + | "Union" + | "Trait" + | "Module" + | "Variant" + | "PathExpr" + | "RecordExpr" + | "PathPat" + | "RecordPat" + | "TupleStructPat" + | "MethodCallExpr" + | "PathSegment" + | "Const" + ) +} + fn to_lower_snake_case(s: &str) -> String { let mut buf = String::with_capacity(s.len()); let mut prev = false; @@ -355,6 +381,7 @@ struct ExtractorEnumInfo { snake_case_name: String, ast_name: String, variants: Vec, + has_special_emission: bool, } #[derive(Serialize, Default)] @@ -376,6 +403,7 @@ struct ExtractorNodeInfo { ast_name: String, fields: Vec, has_attrs: bool, + has_special_emission: bool, } #[derive(Serialize)] @@ -406,6 +434,7 @@ fn enum_to_extractor_info(node: &AstEnumSrc) -> Option { } }) .collect(), + has_special_emission: has_special_emission(&node.name), }) } @@ -460,6 +489,7 @@ fn node_to_extractor_info(node: &AstNodeSrc) -> ExtractorNodeInfo { ast_name: node.name.clone(), fields, has_attrs, + has_special_emission: has_special_emission(&node.name), } } diff --git a/rust/ast-generator/templates/extractor.mustache b/rust/ast-generator/templates/extractor.mustache index ab1fd4b0d37..03269c26ae3 100644 --- a/rust/ast-generator/templates/extractor.mustache +++ b/rust/ast-generator/templates/extractor.mustache @@ -1,8 +1,7 @@ //! Generated by `ast-generator`, do not edit by hand. use super::base::Translator; -use super::mappings::TextValue; -use crate::{pre_emit,post_emit}; +use super::mappings::{TextValue, HasTrapClass, Emission}; use crate::generated; use crate::trap::{Label, TrapId}; use ra_ap_syntax::ast::{ @@ -13,29 +12,23 @@ use ra_ap_syntax::ast::{ use ra_ap_syntax::{AstNode, ast}; impl Translator<'_> { - fn emit_else_branch(&mut self, node: &ast::ElseBranch) -> Option> { - match node { - ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into), - ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into), - } - } {{#enums}} pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { - pre_emit!({{name}}, self, node); + {{>pre_emission}} let label = match node { {{#variants}} ast::{{ast_name}}::{{variant_ast_name}}(inner) => self.emit_{{snake_case_name}}(inner).map(Into::into), {{/variants}} }?; - post_emit!({{name}}, self, node, label); + {{>post_emission}} Some(label) } {{/enums}} {{#nodes}} pub(crate) fn emit_{{snake_case_name}}(&mut self, node: &ast::{{ast_name}}) -> Option> { - pre_emit!({{name}}, self, node); + {{>pre_emission}} {{#has_attrs}} if self.should_be_excluded(node) { return None; } {{/has_attrs}} @@ -65,9 +58,15 @@ impl Translator<'_> { {{/fields}} }); self.emit_location(label, node); - post_emit!({{name}}, self, node, label); + {{>post_emission}} self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } {{/nodes}} } +{{#enums}} +{{>trap_class_mapping}} +{{/enums}} +{{#nodes}} +{{>trap_class_mapping}} +{{/nodes}} diff --git a/rust/ast-generator/templates/post_emission.mustache b/rust/ast-generator/templates/post_emission.mustache new file mode 100644 index 00000000000..fb57a7802a1 --- /dev/null +++ b/rust/ast-generator/templates/post_emission.mustache @@ -0,0 +1,3 @@ +{{#has_special_emission}} +self.post_emit(node, label); +{{/has_special_emission}} diff --git a/rust/ast-generator/templates/pre_emission.mustache b/rust/ast-generator/templates/pre_emission.mustache new file mode 100644 index 00000000000..150529c4129 --- /dev/null +++ b/rust/ast-generator/templates/pre_emission.mustache @@ -0,0 +1,5 @@ +{{#has_special_emission}} +if let Some(label) = self.pre_emit(node) { + return Some(label); +} +{{/has_special_emission}} diff --git a/rust/ast-generator/templates/trap_class_mapping.mustache b/rust/ast-generator/templates/trap_class_mapping.mustache new file mode 100644 index 00000000000..6d833c64067 --- /dev/null +++ b/rust/ast-generator/templates/trap_class_mapping.mustache @@ -0,0 +1,6 @@ +{{#has_special_emission}} + +impl HasTrapClass for ast::{{ast_name}} { + type TrapClass = generated::{{name}}; +} +{{/has_special_emission}} diff --git a/rust/extractor/src/translate/base.rs b/rust/extractor/src/translate/base.rs index a71d9787e94..6c7a8ce7db1 100644 --- a/rust/extractor/src/translate/base.rs +++ b/rust/extractor/src/translate/base.rs @@ -1,4 +1,4 @@ -use super::mappings::{AddressableAst, AddressableHir, PathAst}; +use super::mappings::{AddressableAst, AddressableHir, Emission, PathAst}; use crate::generated::{self}; use crate::rust_analyzer::FileSemanticInformation; use crate::trap::{DiagnosticSeverity, TrapFile, TrapId}; @@ -22,121 +22,165 @@ use ra_ap_syntax::{ ast, }; -#[macro_export] -macro_rules! pre_emit { - (Item, $self:ident, $node:ident) => { - if let Some(label) = $self.prepare_item_expansion($node) { - return Some(label.into()); - } - }; - (AssocItem, $self:ident, $node:ident) => { - if let Some(label) = $self.prepare_item_expansion(&$node.clone().into()) { - return Some(label.into()); - } - }; - (ExternItem, $self:ident, $node:ident) => { - if let Some(label) = $self.prepare_item_expansion(&$node.clone().into()) { - return Some(label.into()); - } - }; - (Meta, $self:ident, $node:ident) => { - // rust-analyzer doesn't expand macros in this context - $self.macro_context_depth += 1; - }; - ($($_:tt)*) => {}; +impl Emission for Translator<'_> { + fn pre_emit(&mut self, node: &ast::Item) -> Option> { + self.prepare_item_expansion(node).map(Into::into) + } + + fn post_emit(&mut self, node: &ast::Item, label: Label) { + self.emit_item_expansion(node, label); + } } -// TODO: remove the mannually written Label conversions. These can be auto-generated by -// changing the base class of AssocItem from AstNode to Item -impl From> for crate::trap::Label { - fn from(value: crate::trap::Label) -> Self { +impl Emission for Translator<'_> { + fn pre_emit(&mut self, node: &ast::AssocItem) -> Option> { + self.prepare_item_expansion(&node.clone().into()) + .map(Into::into) + } + + fn post_emit(&mut self, node: &ast::AssocItem, label: Label) { + self.emit_item_expansion(&node.clone().into(), label.into()); + } +} + +impl Emission for Translator<'_> { + fn pre_emit(&mut self, node: &ast::ExternItem) -> Option> { + self.prepare_item_expansion(&node.clone().into()) + .map(Into::into) + } + + fn post_emit(&mut self, node: &ast::ExternItem, label: Label) { + self.emit_item_expansion(&node.clone().into(), label.into()); + } +} + +impl Emission for Translator<'_> { + fn pre_emit(&mut self, _node: &ast::Meta) -> Option> { + self.macro_context_depth += 1; + None + } + + fn post_emit(&mut self, _node: &ast::Meta, _label: Label) { + self.macro_context_depth -= 1; + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Fn, label: Label) { + self.emit_function_has_implementation(node, label); + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Struct, label: Label) { + self.emit_derive_expansion(node, label); + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Enum, label: Label) { + self.emit_derive_expansion(node, label); + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Union, label: Label) { + self.emit_derive_expansion(node, label); + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Trait, label: Label) { + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Module, label: Label) { + self.extract_canonical_origin(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Variant, label: Label) { + self.extract_canonical_origin_of_enum_variant(node, label); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::PathExpr, label: Label) { + self.extract_path_canonical_destination(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::RecordExpr, label: Label) { + self.extract_path_canonical_destination(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::PathPat, label: Label) { + self.extract_path_canonical_destination(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::RecordPat, label: Label) { + self.extract_path_canonical_destination(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::TupleStructPat, label: Label) { + self.extract_path_canonical_destination(node, label.into()); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::MethodCallExpr, label: Label) { + self.extract_method_canonical_destination(node, label); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::PathSegment, label: Label) { + self.extract_types_from_path_segment(node, label); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::Const, label: Label) { + self.emit_const_has_implementation(node, label); + } +} + +impl Emission for Translator<'_> { + fn post_emit(&mut self, node: &ast::MacroCall, label: Label) { + self.extract_macro_call_expanded(node, label); + } +} +// TODO: remove the manually written Label conversions. These can be auto-generated by +// ch +// anging the base class of AssocItem from AstNode to Item +impl From> for Label { + fn from(value: Label) -> Self { // SAFETY: this is safe because every concrete instance of `@assoc_item` is also an instance of `@item` unsafe { Self::from_untyped(value.as_untyped()) } } } -// TODO: remove the mannually written Label conversions. These can be auto-generated by +// TODO: remove the manually written Label conversions. These can be auto-generated by // changing the base class of ExternItem from AstNode to Item -impl From> for crate::trap::Label { - fn from(value: crate::trap::Label) -> Self { +impl From> for Label { + fn from(value: Label) -> Self { // SAFETY: this is safe because every concrete instance of `@extern_item` is also an instance of `@item` unsafe { Self::from_untyped(value.as_untyped()) } } } -#[macro_export] -macro_rules! post_emit { - (Meta, $self:ident, $node:ident, $label:ident) => { - $self.macro_context_depth -= 1; - }; - (MacroCall, $self:ident, $node:ident, $label:ident) => { - $self.extract_macro_call_expanded($node, $label); - }; - (Function, $self:ident, $node:ident, $label:ident) => { - $self.emit_function_has_implementation($node, $label); - $self.extract_canonical_origin($node, $label.into()); - }; - (Trait, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin($node, $label.into()); - }; - (Struct, $self:ident, $node:ident, $label:ident) => { - $self.emit_derive_expansion($node, $label); - $self.extract_canonical_origin($node, $label.into()); - }; - (Enum, $self:ident, $node:ident, $label:ident) => { - $self.emit_derive_expansion($node, $label); - $self.extract_canonical_origin($node, $label.into()); - }; - (Union, $self:ident, $node:ident, $label:ident) => { - $self.emit_derive_expansion($node, $label); - $self.extract_canonical_origin($node, $label.into()); - }; - (Module, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin($node, $label.into()); - }; - (Variant, $self:ident, $node:ident, $label:ident) => { - $self.extract_canonical_origin_of_enum_variant($node, $label); - }; - (Item, $self:ident, $node:ident, $label:ident) => { - $self.emit_item_expansion($node, $label); - }; - (AssocItem, $self:ident, $node:ident, $label:ident) => { - $self.emit_item_expansion( - &$node.clone().into(), - From::>::from($label), - ); - }; - (ExternItem, $self:ident, $node:ident, $label:ident) => { - $self.emit_item_expansion( - &$node.clone().into(), - From::>::from($label), - ); - }; - // TODO canonical origin of other items - (PathExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination($node, $label.into()); - }; - (StructExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination($node, $label.into()); - }; - (PathPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination($node, $label.into()); - }; - (StructPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination($node, $label.into()); - }; - (TupleStructPat, $self:ident, $node:ident, $label:ident) => { - $self.extract_path_canonical_destination($node, $label.into()); - }; - (MethodCallExpr, $self:ident, $node:ident, $label:ident) => { - $self.extract_method_canonical_destination($node, $label); - }; - (PathSegment, $self:ident, $node:ident, $label:ident) => { - $self.extract_types_from_path_segment($node, $label.into()); - }; - (Const, $self:ident, $node:ident, $label:ident) => { - $self.emit_const_has_implementation($node, $label); - }; - ($($_:tt)*) => {}; -} // see https://github.com/tokio-rs/tracing/issues/2730 macro_rules! dispatch_to_tracing { @@ -497,6 +541,17 @@ impl<'a> Translator<'a> { ); } } + + pub(crate) fn emit_else_branch( + &mut self, + node: &ast::ElseBranch, + ) -> Option> { + match node { + ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into), + ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into), + } + } + fn canonical_path_from_type(&self, ty: Type) -> Option { let sema = self.semantics.as_ref().unwrap(); // rust-analyzer doesn't provide a type enum directly diff --git a/rust/extractor/src/translate/generated.rs b/rust/extractor/src/translate/generated.rs index 39efe763a3b..787ce71bf2a 100644 --- a/rust/extractor/src/translate/generated.rs +++ b/rust/extractor/src/translate/generated.rs @@ -1,9 +1,8 @@ //! Generated by `ast-generator`, do not edit by hand. use super::base::Translator; -use super::mappings::TextValue; +use super::mappings::{Emission, HasTrapClass, TextValue}; use crate::generated; use crate::trap::{Label, TrapId}; -use crate::{post_emit, pre_emit}; use ra_ap_syntax::ast::{ HasArgList, HasAttrs, HasGenericArgs, HasGenericParams, HasLoopBody, HasModuleItem, HasName, HasTypeBounds, HasVisibility, RangeItem, @@ -11,17 +10,10 @@ use ra_ap_syntax::ast::{ #[rustfmt::skip] use ra_ap_syntax::{AstNode, ast}; impl Translator<'_> { - fn emit_else_branch(&mut self, node: &ast::ElseBranch) -> Option> { - match node { - ast::ElseBranch::IfExpr(inner) => self.emit_if_expr(inner).map(Into::into), - ast::ElseBranch::Block(inner) => self.emit_block_expr(inner).map(Into::into), - } - } pub(crate) fn emit_asm_operand( &mut self, node: &ast::AsmOperand, ) -> Option> { - pre_emit!(AsmOperand, self, node); let label = match node { ast::AsmOperand::AsmConst(inner) => self.emit_asm_const(inner).map(Into::into), ast::AsmOperand::AsmLabel(inner) => self.emit_asm_label(inner).map(Into::into), @@ -30,14 +22,12 @@ impl Translator<'_> { } ast::AsmOperand::AsmSym(inner) => self.emit_asm_sym(inner).map(Into::into), }?; - post_emit!(AsmOperand, self, node, label); Some(label) } pub(crate) fn emit_asm_piece( &mut self, node: &ast::AsmPiece, ) -> Option> { - pre_emit!(AsmPiece, self, node); let label = match node { ast::AsmPiece::AsmClobberAbi(inner) => self.emit_asm_clobber_abi(inner).map(Into::into), ast::AsmPiece::AsmOperandNamed(inner) => { @@ -45,25 +35,25 @@ impl Translator<'_> { } ast::AsmPiece::AsmOptions(inner) => self.emit_asm_options(inner).map(Into::into), }?; - post_emit!(AsmPiece, self, node, label); Some(label) } pub(crate) fn emit_assoc_item( &mut self, node: &ast::AssocItem, ) -> Option> { - pre_emit!(AssocItem, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let label = match node { ast::AssocItem::Const(inner) => self.emit_const(inner).map(Into::into), ast::AssocItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::AssocItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::AssocItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), }?; - post_emit!(AssocItem, self, node, label); + self.post_emit(node, label); Some(label) } pub(crate) fn emit_expr(&mut self, node: &ast::Expr) -> Option> { - pre_emit!(Expr, self, node); let label = match node { ast::Expr::ArrayExpr(inner) => self.emit_array_expr(inner).map(Into::into), ast::Expr::AsmExpr(inner) => self.emit_asm_expr(inner).map(Into::into), @@ -102,28 +92,28 @@ impl Translator<'_> { ast::Expr::YeetExpr(inner) => self.emit_yeet_expr(inner).map(Into::into), ast::Expr::YieldExpr(inner) => self.emit_yield_expr(inner).map(Into::into), }?; - post_emit!(Expr, self, node, label); Some(label) } pub(crate) fn emit_extern_item( &mut self, node: &ast::ExternItem, ) -> Option> { - pre_emit!(ExternItem, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let label = match node { ast::ExternItem::Fn(inner) => self.emit_fn(inner).map(Into::into), ast::ExternItem::MacroCall(inner) => self.emit_macro_call(inner).map(Into::into), ast::ExternItem::Static(inner) => self.emit_static(inner).map(Into::into), ast::ExternItem::TypeAlias(inner) => self.emit_type_alias(inner).map(Into::into), }?; - post_emit!(ExternItem, self, node, label); + self.post_emit(node, label); Some(label) } pub(crate) fn emit_field_list( &mut self, node: &ast::FieldList, ) -> Option> { - pre_emit!(FieldList, self, node); let label = match node { ast::FieldList::RecordFieldList(inner) => { self.emit_record_field_list(inner).map(Into::into) @@ -132,28 +122,24 @@ impl Translator<'_> { self.emit_tuple_field_list(inner).map(Into::into) } }?; - post_emit!(FieldList, self, node, label); Some(label) } pub(crate) fn emit_generic_arg( &mut self, node: &ast::GenericArg, ) -> Option> { - pre_emit!(GenericArg, self, node); let label = match node { ast::GenericArg::AssocTypeArg(inner) => self.emit_assoc_type_arg(inner).map(Into::into), ast::GenericArg::ConstArg(inner) => self.emit_const_arg(inner).map(Into::into), ast::GenericArg::LifetimeArg(inner) => self.emit_lifetime_arg(inner).map(Into::into), ast::GenericArg::TypeArg(inner) => self.emit_type_arg(inner).map(Into::into), }?; - post_emit!(GenericArg, self, node, label); Some(label) } pub(crate) fn emit_generic_param( &mut self, node: &ast::GenericParam, ) -> Option> { - pre_emit!(GenericParam, self, node); let label = match node { ast::GenericParam::ConstParam(inner) => self.emit_const_param(inner).map(Into::into), ast::GenericParam::LifetimeParam(inner) => { @@ -161,11 +147,9 @@ impl Translator<'_> { } ast::GenericParam::TypeParam(inner) => self.emit_type_param(inner).map(Into::into), }?; - post_emit!(GenericParam, self, node, label); Some(label) } pub(crate) fn emit_pat(&mut self, node: &ast::Pat) -> Option> { - pre_emit!(Pat, self, node); let label = match node { ast::Pat::BoxPat(inner) => self.emit_box_pat(inner).map(Into::into), ast::Pat::ConstBlockPat(inner) => self.emit_const_block_pat(inner).map(Into::into), @@ -184,21 +168,17 @@ impl Translator<'_> { ast::Pat::TupleStructPat(inner) => self.emit_tuple_struct_pat(inner).map(Into::into), ast::Pat::WildcardPat(inner) => self.emit_wildcard_pat(inner).map(Into::into), }?; - post_emit!(Pat, self, node, label); Some(label) } pub(crate) fn emit_stmt(&mut self, node: &ast::Stmt) -> Option> { - pre_emit!(Stmt, self, node); let label = match node { ast::Stmt::ExprStmt(inner) => self.emit_expr_stmt(inner).map(Into::into), ast::Stmt::Item(inner) => self.emit_item(inner).map(Into::into), ast::Stmt::LetStmt(inner) => self.emit_let_stmt(inner).map(Into::into), }?; - post_emit!(Stmt, self, node, label); Some(label) } pub(crate) fn emit_type(&mut self, node: &ast::Type) -> Option> { - pre_emit!(TypeRepr, self, node); let label = match node { ast::Type::ArrayType(inner) => self.emit_array_type(inner).map(Into::into), ast::Type::DynTraitType(inner) => self.emit_dyn_trait_type(inner).map(Into::into), @@ -215,23 +195,22 @@ impl Translator<'_> { ast::Type::SliceType(inner) => self.emit_slice_type(inner).map(Into::into), ast::Type::TupleType(inner) => self.emit_tuple_type(inner).map(Into::into), }?; - post_emit!(TypeRepr, self, node, label); Some(label) } pub(crate) fn emit_use_bound_generic_arg( &mut self, node: &ast::UseBoundGenericArg, ) -> Option> { - pre_emit!(UseBoundGenericArg, self, node); let label = match node { ast::UseBoundGenericArg::Lifetime(inner) => self.emit_lifetime(inner).map(Into::into), ast::UseBoundGenericArg::NameRef(inner) => self.emit_name_ref(inner).map(Into::into), }?; - post_emit!(UseBoundGenericArg, self, node, label); Some(label) } pub(crate) fn emit_item(&mut self, node: &ast::Item) -> Option> { - pre_emit!(Item, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let label = match node { ast::Item::Const(inner) => self.emit_const(inner).map(Into::into), ast::Item::Enum(inner) => self.emit_enum(inner).map(Into::into), @@ -251,18 +230,16 @@ impl Translator<'_> { ast::Item::Union(inner) => self.emit_union(inner).map(Into::into), ast::Item::Use(inner) => self.emit_use(inner).map(Into::into), }?; - post_emit!(Item, self, node, label); + self.post_emit(node, label); Some(label) } pub(crate) fn emit_abi(&mut self, node: &ast::Abi) -> Option> { - pre_emit!(Abi, self, node); let abi_string = node.try_get_text(); let label = self.trap.emit(generated::Abi { id: TrapId::Star, abi_string, }); self.emit_location(label, node); - post_emit!(Abi, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -270,14 +247,12 @@ impl Translator<'_> { &mut self, node: &ast::ArgList, ) -> Option> { - pre_emit!(ArgList, self, node); let args = node.args().filter_map(|x| self.emit_expr(&x)).collect(); let label = self.trap.emit(generated::ArgList { id: TrapId::Star, args, }); self.emit_location(label, node); - post_emit!(ArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -285,7 +260,6 @@ impl Translator<'_> { &mut self, node: &ast::ArrayExpr, ) -> Option> { - pre_emit!(ArrayExprInternal, self, node); if self.should_be_excluded(node) { return None; } @@ -299,7 +273,6 @@ impl Translator<'_> { is_semicolon, }); self.emit_location(label, node); - post_emit!(ArrayExprInternal, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -307,7 +280,6 @@ impl Translator<'_> { &mut self, node: &ast::ArrayType, ) -> Option> { - pre_emit!(ArrayTypeRepr, self, node); let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let element_type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ArrayTypeRepr { @@ -316,7 +288,6 @@ impl Translator<'_> { element_type_repr, }); self.emit_location(label, node); - post_emit!(ArrayTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -324,12 +295,10 @@ impl Translator<'_> { &mut self, node: &ast::AsmClobberAbi, ) -> Option> { - pre_emit!(AsmClobberAbi, self, node); let label = self .trap .emit(generated::AsmClobberAbi { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(AsmClobberAbi, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -337,7 +306,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmConst, ) -> Option> { - pre_emit!(AsmConst, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::AsmConst { @@ -346,7 +314,6 @@ impl Translator<'_> { is_const, }); self.emit_location(label, node); - post_emit!(AsmConst, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -354,10 +321,8 @@ impl Translator<'_> { &mut self, node: &ast::AsmDirSpec, ) -> Option> { - pre_emit!(AsmDirSpec, self, node); let label = self.trap.emit(generated::AsmDirSpec { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(AsmDirSpec, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -365,7 +330,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmExpr, ) -> Option> { - pre_emit!(AsmExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -382,7 +346,6 @@ impl Translator<'_> { template, }); self.emit_location(label, node); - post_emit!(AsmExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -390,14 +353,12 @@ impl Translator<'_> { &mut self, node: &ast::AsmLabel, ) -> Option> { - pre_emit!(AsmLabel, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::AsmLabel { id: TrapId::Star, block_expr, }); self.emit_location(label, node); - post_emit!(AsmLabel, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -405,7 +366,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandExpr, ) -> Option> { - pre_emit!(AsmOperandExpr, self, node); let in_expr = node.in_expr().and_then(|x| self.emit_expr(&x)); let out_expr = node.out_expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::AsmOperandExpr { @@ -414,7 +374,6 @@ impl Translator<'_> { out_expr, }); self.emit_location(label, node); - post_emit!(AsmOperandExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -422,7 +381,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmOperandNamed, ) -> Option> { - pre_emit!(AsmOperandNamed, self, node); let asm_operand = node.asm_operand().and_then(|x| self.emit_asm_operand(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::AsmOperandNamed { @@ -431,7 +389,6 @@ impl Translator<'_> { name, }); self.emit_location(label, node); - post_emit!(AsmOperandNamed, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -439,14 +396,12 @@ impl Translator<'_> { &mut self, node: &ast::AsmOption, ) -> Option> { - pre_emit!(AsmOption, self, node); let is_raw = node.raw_token().is_some(); let label = self.trap.emit(generated::AsmOption { id: TrapId::Star, is_raw, }); self.emit_location(label, node); - post_emit!(AsmOption, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -454,7 +409,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmOptions, ) -> Option> { - pre_emit!(AsmOptionsList, self, node); let asm_options = node .asm_options() .filter_map(|x| self.emit_asm_option(&x)) @@ -464,7 +418,6 @@ impl Translator<'_> { asm_options, }); self.emit_location(label, node); - post_emit!(AsmOptionsList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -472,7 +425,6 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegOperand, ) -> Option> { - pre_emit!(AsmRegOperand, self, node); let asm_dir_spec = node.asm_dir_spec().and_then(|x| self.emit_asm_dir_spec(&x)); let asm_operand_expr = node .asm_operand_expr() @@ -485,7 +437,6 @@ impl Translator<'_> { asm_reg_spec, }); self.emit_location(label, node); - post_emit!(AsmRegOperand, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -493,26 +444,22 @@ impl Translator<'_> { &mut self, node: &ast::AsmRegSpec, ) -> Option> { - pre_emit!(AsmRegSpec, self, node); let identifier = node.name_ref().and_then(|x| self.emit_name_ref(&x)); let label = self.trap.emit(generated::AsmRegSpec { id: TrapId::Star, identifier, }); self.emit_location(label, node); - post_emit!(AsmRegSpec, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_asm_sym(&mut self, node: &ast::AsmSym) -> Option> { - pre_emit!(AsmSym, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::AsmSym { id: TrapId::Star, path, }); self.emit_location(label, node); - post_emit!(AsmSym, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -520,7 +467,6 @@ impl Translator<'_> { &mut self, node: &ast::AssocItemList, ) -> Option> { - pre_emit!(AssocItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -535,7 +481,6 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - post_emit!(AssocItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -543,7 +488,6 @@ impl Translator<'_> { &mut self, node: &ast::AssocTypeArg, ) -> Option> { - pre_emit!(AssocTypeArg, self, node); let const_arg = node.const_arg().and_then(|x| self.emit_const_arg(&x)); let generic_arg_list = node .generic_arg_list() @@ -570,19 +514,16 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(AssocTypeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_attr(&mut self, node: &ast::Attr) -> Option> { - pre_emit!(Attr, self, node); let meta = node.meta().and_then(|x| self.emit_meta(&x)); let label = self.trap.emit(generated::Attr { id: TrapId::Star, meta, }); self.emit_location(label, node); - post_emit!(Attr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -590,7 +531,6 @@ impl Translator<'_> { &mut self, node: &ast::AwaitExpr, ) -> Option> { - pre_emit!(AwaitExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -602,7 +542,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(AwaitExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -610,7 +549,6 @@ impl Translator<'_> { &mut self, node: &ast::BecomeExpr, ) -> Option> { - pre_emit!(BecomeExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -622,7 +560,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(BecomeExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -630,7 +567,6 @@ impl Translator<'_> { &mut self, node: &ast::BinExpr, ) -> Option> { - pre_emit!(BinaryExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -646,7 +582,6 @@ impl Translator<'_> { rhs, }); self.emit_location(label, node); - post_emit!(BinaryExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -654,7 +589,6 @@ impl Translator<'_> { &mut self, node: &ast::BlockExpr, ) -> Option> { - pre_emit!(BlockExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -680,19 +614,16 @@ impl Translator<'_> { stmt_list, }); self.emit_location(label, node); - post_emit!(BlockExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_box_pat(&mut self, node: &ast::BoxPat) -> Option> { - pre_emit!(BoxPat, self, node); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::BoxPat { id: TrapId::Star, pat, }); self.emit_location(label, node); - post_emit!(BoxPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -700,7 +631,6 @@ impl Translator<'_> { &mut self, node: &ast::BreakExpr, ) -> Option> { - pre_emit!(BreakExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -714,7 +644,6 @@ impl Translator<'_> { lifetime, }); self.emit_location(label, node); - post_emit!(BreakExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -722,7 +651,6 @@ impl Translator<'_> { &mut self, node: &ast::CallExpr, ) -> Option> { - pre_emit!(CallExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -736,7 +664,6 @@ impl Translator<'_> { function, }); self.emit_location(label, node); - post_emit!(CallExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -744,7 +671,6 @@ impl Translator<'_> { &mut self, node: &ast::CastExpr, ) -> Option> { - pre_emit!(CastExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -758,7 +684,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(CastExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -766,7 +691,6 @@ impl Translator<'_> { &mut self, node: &ast::ClosureBinder, ) -> Option> { - pre_emit!(ClosureBinder, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -775,7 +699,6 @@ impl Translator<'_> { generic_param_list, }); self.emit_location(label, node); - post_emit!(ClosureBinder, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -783,7 +706,6 @@ impl Translator<'_> { &mut self, node: &ast::ClosureExpr, ) -> Option> { - pre_emit!(ClosureExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -813,12 +735,13 @@ impl Translator<'_> { ret_type, }); self.emit_location(label, node); - post_emit!(ClosureExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_const(&mut self, node: &ast::Const) -> Option> { - pre_emit!(Const, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -850,7 +773,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Const, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -858,14 +781,12 @@ impl Translator<'_> { &mut self, node: &ast::ConstArg, ) -> Option> { - pre_emit!(ConstArg, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ConstArg { id: TrapId::Star, expr, }); self.emit_location(label, node); - post_emit!(ConstArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -873,7 +794,6 @@ impl Translator<'_> { &mut self, node: &ast::ConstBlockPat, ) -> Option> { - pre_emit!(ConstBlockPat, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let is_const = node.const_token().is_some(); let label = self.trap.emit(generated::ConstBlockPat { @@ -882,7 +802,6 @@ impl Translator<'_> { is_const, }); self.emit_location(label, node); - post_emit!(ConstBlockPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -890,7 +809,6 @@ impl Translator<'_> { &mut self, node: &ast::ConstParam, ) -> Option> { - pre_emit!(ConstParam, self, node); if self.should_be_excluded(node) { return None; } @@ -908,7 +826,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(ConstParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -916,7 +833,6 @@ impl Translator<'_> { &mut self, node: &ast::ContinueExpr, ) -> Option> { - pre_emit!(ContinueExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -928,7 +844,6 @@ impl Translator<'_> { lifetime, }); self.emit_location(label, node); - post_emit!(ContinueExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -936,7 +851,6 @@ impl Translator<'_> { &mut self, node: &ast::DynTraitType, ) -> Option> { - pre_emit!(DynTraitTypeRepr, self, node); let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -945,12 +859,13 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(DynTraitTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_enum(&mut self, node: &ast::Enum) -> Option> { - pre_emit!(Enum, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -972,7 +887,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Enum, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -980,14 +895,12 @@ impl Translator<'_> { &mut self, node: &ast::ExprStmt, ) -> Option> { - pre_emit!(ExprStmt, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::ExprStmt { id: TrapId::Star, expr, }); self.emit_location(label, node); - post_emit!(ExprStmt, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -995,7 +908,6 @@ impl Translator<'_> { &mut self, node: &ast::ExternBlock, ) -> Option> { - pre_emit!(ExternBlock, self, node); if self.should_be_excluded(node) { return None; } @@ -1013,7 +925,6 @@ impl Translator<'_> { is_unsafe, }); self.emit_location(label, node); - post_emit!(ExternBlock, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1021,7 +932,6 @@ impl Translator<'_> { &mut self, node: &ast::ExternCrate, ) -> Option> { - pre_emit!(ExternCrate, self, node); if self.should_be_excluded(node) { return None; } @@ -1037,7 +947,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(ExternCrate, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1045,7 +954,6 @@ impl Translator<'_> { &mut self, node: &ast::ExternItemList, ) -> Option> { - pre_emit!(ExternItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -1060,7 +968,6 @@ impl Translator<'_> { extern_items, }); self.emit_location(label, node); - post_emit!(ExternItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1068,7 +975,6 @@ impl Translator<'_> { &mut self, node: &ast::FieldExpr, ) -> Option> { - pre_emit!(FieldExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1082,12 +988,13 @@ impl Translator<'_> { identifier, }); self.emit_location(label, node); - post_emit!(FieldExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_fn(&mut self, node: &ast::Fn) -> Option> { - pre_emit!(Function, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -1129,7 +1036,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Function, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1137,7 +1044,6 @@ impl Translator<'_> { &mut self, node: &ast::FnPtrType, ) -> Option> { - pre_emit!(FnPtrTypeRepr, self, node); let abi = node.abi().and_then(|x| self.emit_abi(&x)); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); @@ -1154,7 +1060,6 @@ impl Translator<'_> { ret_type, }); self.emit_location(label, node); - post_emit!(FnPtrTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1162,7 +1067,6 @@ impl Translator<'_> { &mut self, node: &ast::ForExpr, ) -> Option> { - pre_emit!(ForExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1180,7 +1084,6 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(ForExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1188,7 +1091,6 @@ impl Translator<'_> { &mut self, node: &ast::ForType, ) -> Option> { - pre_emit!(ForTypeRepr, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -1199,7 +1101,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(ForTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1207,7 +1108,6 @@ impl Translator<'_> { &mut self, node: &ast::FormatArgsArg, ) -> Option> { - pre_emit!(FormatArgsArg, self, node); let expr = node.expr().and_then(|x| self.emit_expr(&x)); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::FormatArgsArg { @@ -1216,7 +1116,6 @@ impl Translator<'_> { name, }); self.emit_location(label, node); - post_emit!(FormatArgsArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1224,7 +1123,6 @@ impl Translator<'_> { &mut self, node: &ast::FormatArgsExpr, ) -> Option> { - pre_emit!(FormatArgsExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1241,7 +1139,6 @@ impl Translator<'_> { template, }); self.emit_location(label, node); - post_emit!(FormatArgsExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1249,7 +1146,6 @@ impl Translator<'_> { &mut self, node: &ast::GenericArgList, ) -> Option> { - pre_emit!(GenericArgList, self, node); let generic_args = node .generic_args() .filter_map(|x| self.emit_generic_arg(&x)) @@ -1259,7 +1155,6 @@ impl Translator<'_> { generic_args, }); self.emit_location(label, node); - post_emit!(GenericArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1267,7 +1162,6 @@ impl Translator<'_> { &mut self, node: &ast::GenericParamList, ) -> Option> { - pre_emit!(GenericParamList, self, node); let generic_params = node .generic_params() .filter_map(|x| self.emit_generic_param(&x)) @@ -1277,7 +1171,6 @@ impl Translator<'_> { generic_params, }); self.emit_location(label, node); - post_emit!(GenericParamList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1285,7 +1178,6 @@ impl Translator<'_> { &mut self, node: &ast::IdentPat, ) -> Option> { - pre_emit!(IdentPat, self, node); if self.should_be_excluded(node) { return None; } @@ -1303,12 +1195,10 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(IdentPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_if_expr(&mut self, node: &ast::IfExpr) -> Option> { - pre_emit!(IfExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1324,12 +1214,10 @@ impl Translator<'_> { then, }); self.emit_location(label, node); - post_emit!(IfExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_impl(&mut self, node: &ast::Impl) -> Option> { - pre_emit!(Impl, self, node); if self.should_be_excluded(node) { return None; } @@ -1361,7 +1249,6 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Impl, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1369,7 +1256,6 @@ impl Translator<'_> { &mut self, node: &ast::ImplTraitType, ) -> Option> { - pre_emit!(ImplTraitTypeRepr, self, node); let type_bound_list = node .type_bound_list() .and_then(|x| self.emit_type_bound_list(&x)); @@ -1378,7 +1264,6 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(ImplTraitTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1386,7 +1271,6 @@ impl Translator<'_> { &mut self, node: &ast::IndexExpr, ) -> Option> { - pre_emit!(IndexExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1400,7 +1284,6 @@ impl Translator<'_> { index, }); self.emit_location(label, node); - post_emit!(IndexExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1408,12 +1291,10 @@ impl Translator<'_> { &mut self, node: &ast::InferType, ) -> Option> { - pre_emit!(InferTypeRepr, self, node); let label = self .trap .emit(generated::InferTypeRepr { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(InferTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1421,7 +1302,6 @@ impl Translator<'_> { &mut self, node: &ast::ItemList, ) -> Option> { - pre_emit!(ItemList, self, node); if self.should_be_excluded(node) { return None; } @@ -1433,19 +1313,16 @@ impl Translator<'_> { items, }); self.emit_location(label, node); - post_emit!(ItemList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_label(&mut self, node: &ast::Label) -> Option> { - pre_emit!(Label, self, node); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::Label { id: TrapId::Star, lifetime, }); self.emit_location(label, node); - post_emit!(Label, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1453,14 +1330,12 @@ impl Translator<'_> { &mut self, node: &ast::LetElse, ) -> Option> { - pre_emit!(LetElse, self, node); let block_expr = node.block_expr().and_then(|x| self.emit_block_expr(&x)); let label = self.trap.emit(generated::LetElse { id: TrapId::Star, block_expr, }); self.emit_location(label, node); - post_emit!(LetElse, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1468,7 +1343,6 @@ impl Translator<'_> { &mut self, node: &ast::LetExpr, ) -> Option> { - pre_emit!(LetExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1482,7 +1356,6 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(LetExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1490,7 +1363,6 @@ impl Translator<'_> { &mut self, node: &ast::LetStmt, ) -> Option> { - pre_emit!(LetStmt, self, node); if self.should_be_excluded(node) { return None; } @@ -1508,7 +1380,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(LetStmt, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1516,14 +1387,12 @@ impl Translator<'_> { &mut self, node: &ast::Lifetime, ) -> Option> { - pre_emit!(Lifetime, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::Lifetime { id: TrapId::Star, text, }); self.emit_location(label, node); - post_emit!(Lifetime, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1531,14 +1400,12 @@ impl Translator<'_> { &mut self, node: &ast::LifetimeArg, ) -> Option> { - pre_emit!(LifetimeArg, self, node); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let label = self.trap.emit(generated::LifetimeArg { id: TrapId::Star, lifetime, }); self.emit_location(label, node); - post_emit!(LifetimeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1546,7 +1413,6 @@ impl Translator<'_> { &mut self, node: &ast::LifetimeParam, ) -> Option> { - pre_emit!(LifetimeParam, self, node); if self.should_be_excluded(node) { return None; } @@ -1562,7 +1428,6 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(LifetimeParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1570,7 +1435,6 @@ impl Translator<'_> { &mut self, node: &ast::Literal, ) -> Option> { - pre_emit!(LiteralExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1582,7 +1446,6 @@ impl Translator<'_> { text_value, }); self.emit_location(label, node); - post_emit!(LiteralExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1590,14 +1453,12 @@ impl Translator<'_> { &mut self, node: &ast::LiteralPat, ) -> Option> { - pre_emit!(LiteralPat, self, node); let literal = node.literal().and_then(|x| self.emit_literal(&x)); let label = self.trap.emit(generated::LiteralPat { id: TrapId::Star, literal, }); self.emit_location(label, node); - post_emit!(LiteralPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1605,7 +1466,6 @@ impl Translator<'_> { &mut self, node: &ast::LoopExpr, ) -> Option> { - pre_emit!(LoopExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1619,7 +1479,6 @@ impl Translator<'_> { loop_body, }); self.emit_location(label, node); - post_emit!(LoopExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1627,7 +1486,9 @@ impl Translator<'_> { &mut self, node: &ast::MacroCall, ) -> Option> { - pre_emit!(MacroCall, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -1645,7 +1506,7 @@ impl Translator<'_> { token_tree, }); self.emit_location(label, node); - post_emit!(MacroCall, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1653,7 +1514,6 @@ impl Translator<'_> { &mut self, node: &ast::MacroDef, ) -> Option> { - pre_emit!(MacroDef, self, node); if self.should_be_excluded(node) { return None; } @@ -1679,7 +1539,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(MacroDef, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1687,14 +1546,12 @@ impl Translator<'_> { &mut self, node: &ast::MacroExpr, ) -> Option> { - pre_emit!(MacroExpr, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroExpr { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - post_emit!(MacroExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1702,14 +1559,12 @@ impl Translator<'_> { &mut self, node: &ast::MacroItems, ) -> Option> { - pre_emit!(MacroItems, self, node); let items = node.items().filter_map(|x| self.emit_item(&x)).collect(); let label = self.trap.emit(generated::MacroItems { id: TrapId::Star, items, }); self.emit_location(label, node); - post_emit!(MacroItems, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1717,14 +1572,12 @@ impl Translator<'_> { &mut self, node: &ast::MacroPat, ) -> Option> { - pre_emit!(MacroPat, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroPat { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - post_emit!(MacroPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1732,7 +1585,6 @@ impl Translator<'_> { &mut self, node: &ast::MacroRules, ) -> Option> { - pre_emit!(MacroRules, self, node); if self.should_be_excluded(node) { return None; } @@ -1748,7 +1600,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(MacroRules, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1756,7 +1607,6 @@ impl Translator<'_> { &mut self, node: &ast::MacroStmts, ) -> Option> { - pre_emit!(MacroBlockExpr, self, node); let tail_expr = node.expr().and_then(|x| self.emit_expr(&x)); let statements = node .statements() @@ -1768,7 +1618,6 @@ impl Translator<'_> { statements, }); self.emit_location(label, node); - post_emit!(MacroBlockExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1776,14 +1625,12 @@ impl Translator<'_> { &mut self, node: &ast::MacroType, ) -> Option> { - pre_emit!(MacroTypeRepr, self, node); let macro_call = node.macro_call().and_then(|x| self.emit_macro_call(&x)); let label = self.trap.emit(generated::MacroTypeRepr { id: TrapId::Star, macro_call, }); self.emit_location(label, node); - post_emit!(MacroTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1791,7 +1638,6 @@ impl Translator<'_> { &mut self, node: &ast::MatchArm, ) -> Option> { - pre_emit!(MatchArm, self, node); if self.should_be_excluded(node) { return None; } @@ -1807,7 +1653,6 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(MatchArm, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1815,7 +1660,6 @@ impl Translator<'_> { &mut self, node: &ast::MatchArmList, ) -> Option> { - pre_emit!(MatchArmList, self, node); if self.should_be_excluded(node) { return None; } @@ -1830,7 +1674,6 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - post_emit!(MatchArmList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1838,7 +1681,6 @@ impl Translator<'_> { &mut self, node: &ast::MatchExpr, ) -> Option> { - pre_emit!(MatchExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -1854,7 +1696,6 @@ impl Translator<'_> { match_arm_list, }); self.emit_location(label, node); - post_emit!(MatchExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1862,19 +1703,19 @@ impl Translator<'_> { &mut self, node: &ast::MatchGuard, ) -> Option> { - pre_emit!(MatchGuard, self, node); let condition = node.condition().and_then(|x| self.emit_expr(&x)); let label = self.trap.emit(generated::MatchGuard { id: TrapId::Star, condition, }); self.emit_location(label, node); - post_emit!(MatchGuard, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_meta(&mut self, node: &ast::Meta) -> Option> { - pre_emit!(Meta, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let expr = node.expr().and_then(|x| self.emit_expr(&x)); let is_unsafe = node.unsafe_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); @@ -1887,7 +1728,7 @@ impl Translator<'_> { token_tree, }); self.emit_location(label, node); - post_emit!(Meta, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1895,7 +1736,9 @@ impl Translator<'_> { &mut self, node: &ast::MethodCallExpr, ) -> Option> { - pre_emit!(MethodCallExpr, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -1915,12 +1758,14 @@ impl Translator<'_> { receiver, }); self.emit_location(label, node); - post_emit!(MethodCallExpr, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_module(&mut self, node: &ast::Module) -> Option> { - pre_emit!(Module, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -1936,19 +1781,17 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(Module, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_name(&mut self, node: &ast::Name) -> Option> { - pre_emit!(Name, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::Name { id: TrapId::Star, text, }); self.emit_location(label, node); - post_emit!(Name, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1956,14 +1799,12 @@ impl Translator<'_> { &mut self, node: &ast::NameRef, ) -> Option> { - pre_emit!(NameRef, self, node); let text = node.try_get_text(); let label = self.trap.emit(generated::NameRef { id: TrapId::Star, text, }); self.emit_location(label, node); - post_emit!(NameRef, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1971,12 +1812,10 @@ impl Translator<'_> { &mut self, node: &ast::NeverType, ) -> Option> { - pre_emit!(NeverTypeRepr, self, node); let label = self .trap .emit(generated::NeverTypeRepr { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(NeverTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -1984,7 +1823,6 @@ impl Translator<'_> { &mut self, node: &ast::OffsetOfExpr, ) -> Option> { - pre_emit!(OffsetOfExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2001,24 +1839,20 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(OffsetOfExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_or_pat(&mut self, node: &ast::OrPat) -> Option> { - pre_emit!(OrPat, self, node); let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::OrPat { id: TrapId::Star, pats, }); self.emit_location(label, node); - post_emit!(OrPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_param(&mut self, node: &ast::Param) -> Option> { - pre_emit!(Param, self, node); if self.should_be_excluded(node) { return None; } @@ -2036,7 +1870,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(Param, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2044,7 +1877,6 @@ impl Translator<'_> { &mut self, node: &ast::ParamList, ) -> Option> { - pre_emit!(ParamList, self, node); let params = node.params().filter_map(|x| self.emit_param(&x)).collect(); let self_param = node.self_param().and_then(|x| self.emit_self_param(&x)); let label = self.trap.emit(generated::ParamList { @@ -2053,7 +1885,6 @@ impl Translator<'_> { self_param, }); self.emit_location(label, node); - post_emit!(ParamList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2061,7 +1892,6 @@ impl Translator<'_> { &mut self, node: &ast::ParenExpr, ) -> Option> { - pre_emit!(ParenExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2073,7 +1903,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(ParenExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2081,14 +1910,12 @@ impl Translator<'_> { &mut self, node: &ast::ParenPat, ) -> Option> { - pre_emit!(ParenPat, self, node); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::ParenPat { id: TrapId::Star, pat, }); self.emit_location(label, node); - post_emit!(ParenPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2096,14 +1923,12 @@ impl Translator<'_> { &mut self, node: &ast::ParenType, ) -> Option> { - pre_emit!(ParenTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::ParenTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - post_emit!(ParenTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2111,7 +1936,6 @@ impl Translator<'_> { &mut self, node: &ast::ParenthesizedArgList, ) -> Option> { - pre_emit!(ParenthesizedArgList, self, node); let type_args = node .type_args() .filter_map(|x| self.emit_type_arg(&x)) @@ -2121,12 +1945,10 @@ impl Translator<'_> { type_args, }); self.emit_location(label, node); - post_emit!(ParenthesizedArgList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_path(&mut self, node: &ast::Path) -> Option> { - pre_emit!(Path, self, node); let qualifier = node.qualifier().and_then(|x| self.emit_path(&x)); let segment = node.segment().and_then(|x| self.emit_path_segment(&x)); let label = self.trap.emit(generated::Path { @@ -2135,7 +1957,6 @@ impl Translator<'_> { segment, }); self.emit_location(label, node); - post_emit!(Path, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2143,7 +1964,9 @@ impl Translator<'_> { &mut self, node: &ast::PathExpr, ) -> Option> { - pre_emit!(PathExpr, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -2155,7 +1978,7 @@ impl Translator<'_> { path, }); self.emit_location(label, node); - post_emit!(PathExpr, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2163,14 +1986,16 @@ impl Translator<'_> { &mut self, node: &ast::PathPat, ) -> Option> { - pre_emit!(PathPat, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathPat { id: TrapId::Star, path, }); self.emit_location(label, node); - post_emit!(PathPat, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2178,7 +2003,9 @@ impl Translator<'_> { &mut self, node: &ast::PathSegment, ) -> Option> { - pre_emit!(PathSegment, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let generic_arg_list = node .generic_arg_list() .and_then(|x| self.emit_generic_arg_list(&x)); @@ -2199,7 +2026,7 @@ impl Translator<'_> { return_type_syntax, }); self.emit_location(label, node); - post_emit!(PathSegment, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2207,14 +2034,12 @@ impl Translator<'_> { &mut self, node: &ast::PathType, ) -> Option> { - pre_emit!(PathTypeRepr, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::PathTypeRepr { id: TrapId::Star, path, }); self.emit_location(label, node); - post_emit!(PathTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2222,7 +2047,6 @@ impl Translator<'_> { &mut self, node: &ast::PrefixExpr, ) -> Option> { - pre_emit!(PrefixExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2236,7 +2060,6 @@ impl Translator<'_> { operator_name, }); self.emit_location(label, node); - post_emit!(PrefixExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2244,7 +2067,6 @@ impl Translator<'_> { &mut self, node: &ast::PtrType, ) -> Option> { - pre_emit!(PtrTypeRepr, self, node); let is_const = node.const_token().is_some(); let is_mut = node.mut_token().is_some(); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2255,7 +2077,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(PtrTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2263,7 +2084,6 @@ impl Translator<'_> { &mut self, node: &ast::RangeExpr, ) -> Option> { - pre_emit!(RangeExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2279,7 +2099,6 @@ impl Translator<'_> { start, }); self.emit_location(label, node); - post_emit!(RangeExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2287,7 +2106,6 @@ impl Translator<'_> { &mut self, node: &ast::RangePat, ) -> Option> { - pre_emit!(RangePat, self, node); let end = node.end().and_then(|x| self.emit_pat(&x)); let operator_name = node.try_get_text(); let start = node.start().and_then(|x| self.emit_pat(&x)); @@ -2298,7 +2116,6 @@ impl Translator<'_> { start, }); self.emit_location(label, node); - post_emit!(RangePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2306,7 +2123,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordExpr, ) -> Option> { - pre_emit!(StructExpr, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let path = node.path().and_then(|x| self.emit_path(&x)); let struct_expr_field_list = node .record_expr_field_list() @@ -2317,7 +2136,7 @@ impl Translator<'_> { struct_expr_field_list, }); self.emit_location(label, node); - post_emit!(StructExpr, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2325,7 +2144,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordExprField, ) -> Option> { - pre_emit!(StructExprField, self, node); if self.should_be_excluded(node) { return None; } @@ -2339,7 +2157,6 @@ impl Translator<'_> { identifier, }); self.emit_location(label, node); - post_emit!(StructExprField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2347,7 +2164,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordExprFieldList, ) -> Option> { - pre_emit!(StructExprFieldList, self, node); if self.should_be_excluded(node) { return None; } @@ -2364,7 +2180,6 @@ impl Translator<'_> { spread, }); self.emit_location(label, node); - post_emit!(StructExprFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2372,7 +2187,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordField, ) -> Option> { - pre_emit!(StructField, self, node); if self.should_be_excluded(node) { return None; } @@ -2392,7 +2206,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(StructField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2400,7 +2213,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordFieldList, ) -> Option> { - pre_emit!(StructFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_record_field(&x)) @@ -2410,7 +2222,6 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - post_emit!(StructFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2418,7 +2229,9 @@ impl Translator<'_> { &mut self, node: &ast::RecordPat, ) -> Option> { - pre_emit!(StructPat, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let path = node.path().and_then(|x| self.emit_path(&x)); let struct_pat_field_list = node .record_pat_field_list() @@ -2429,7 +2242,7 @@ impl Translator<'_> { struct_pat_field_list, }); self.emit_location(label, node); - post_emit!(StructPat, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2437,7 +2250,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordPatField, ) -> Option> { - pre_emit!(StructPatField, self, node); if self.should_be_excluded(node) { return None; } @@ -2451,7 +2263,6 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(StructPatField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2459,7 +2270,6 @@ impl Translator<'_> { &mut self, node: &ast::RecordPatFieldList, ) -> Option> { - pre_emit!(StructPatFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_record_pat_field(&x)) @@ -2471,7 +2281,6 @@ impl Translator<'_> { rest_pat, }); self.emit_location(label, node); - post_emit!(StructPatFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2479,7 +2288,6 @@ impl Translator<'_> { &mut self, node: &ast::RefExpr, ) -> Option> { - pre_emit!(RefExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2497,12 +2305,10 @@ impl Translator<'_> { is_raw, }); self.emit_location(label, node); - post_emit!(RefExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_ref_pat(&mut self, node: &ast::RefPat) -> Option> { - pre_emit!(RefPat, self, node); let is_mut = node.mut_token().is_some(); let pat = node.pat().and_then(|x| self.emit_pat(&x)); let label = self.trap.emit(generated::RefPat { @@ -2511,7 +2317,6 @@ impl Translator<'_> { pat, }); self.emit_location(label, node); - post_emit!(RefPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2519,7 +2324,6 @@ impl Translator<'_> { &mut self, node: &ast::RefType, ) -> Option> { - pre_emit!(RefTypeRepr, self, node); let is_mut = node.mut_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); @@ -2530,19 +2334,16 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(RefTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_rename(&mut self, node: &ast::Rename) -> Option> { - pre_emit!(Rename, self, node); let name = node.name().and_then(|x| self.emit_name(&x)); let label = self.trap.emit(generated::Rename { id: TrapId::Star, name, }); self.emit_location(label, node); - post_emit!(Rename, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2550,7 +2351,6 @@ impl Translator<'_> { &mut self, node: &ast::RestPat, ) -> Option> { - pre_emit!(RestPat, self, node); if self.should_be_excluded(node) { return None; } @@ -2560,7 +2360,6 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - post_emit!(RestPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2568,14 +2367,12 @@ impl Translator<'_> { &mut self, node: &ast::RetType, ) -> Option> { - pre_emit!(RetTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::RetTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - post_emit!(RetTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2583,7 +2380,6 @@ impl Translator<'_> { &mut self, node: &ast::ReturnExpr, ) -> Option> { - pre_emit!(ReturnExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2595,7 +2391,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(ReturnExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2603,12 +2398,10 @@ impl Translator<'_> { &mut self, node: &ast::ReturnTypeSyntax, ) -> Option> { - pre_emit!(ReturnTypeSyntax, self, node); let label = self .trap .emit(generated::ReturnTypeSyntax { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(ReturnTypeSyntax, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2616,7 +2409,6 @@ impl Translator<'_> { &mut self, node: &ast::SelfParam, ) -> Option> { - pre_emit!(SelfParam, self, node); if self.should_be_excluded(node) { return None; } @@ -2636,7 +2428,6 @@ impl Translator<'_> { type_repr, }); self.emit_location(label, node); - post_emit!(SelfParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2644,14 +2435,12 @@ impl Translator<'_> { &mut self, node: &ast::SlicePat, ) -> Option> { - pre_emit!(SlicePat, self, node); let pats = node.pats().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::SlicePat { id: TrapId::Star, pats, }); self.emit_location(label, node); - post_emit!(SlicePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2659,14 +2448,12 @@ impl Translator<'_> { &mut self, node: &ast::SliceType, ) -> Option> { - pre_emit!(SliceTypeRepr, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::SliceTypeRepr { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - post_emit!(SliceTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2674,7 +2461,6 @@ impl Translator<'_> { &mut self, node: &ast::SourceFile, ) -> Option> { - pre_emit!(SourceFile, self, node); if self.should_be_excluded(node) { return None; } @@ -2686,12 +2472,10 @@ impl Translator<'_> { items, }); self.emit_location(label, node); - post_emit!(SourceFile, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_static(&mut self, node: &ast::Static) -> Option> { - pre_emit!(Static, self, node); if self.should_be_excluded(node) { return None; } @@ -2719,7 +2503,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(Static, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2727,7 +2510,6 @@ impl Translator<'_> { &mut self, node: &ast::StmtList, ) -> Option> { - pre_emit!(StmtList, self, node); if self.should_be_excluded(node) { return None; } @@ -2744,12 +2526,13 @@ impl Translator<'_> { tail_expr, }); self.emit_location(label, node); - post_emit!(StmtList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_struct(&mut self, node: &ast::Struct) -> Option> { - pre_emit!(Struct, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -2771,7 +2554,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Struct, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2779,15 +2562,15 @@ impl Translator<'_> { &mut self, node: &ast::TokenTree, ) -> Option> { - pre_emit!(TokenTree, self, node); let label = self.trap.emit(generated::TokenTree { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(TokenTree, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_trait(&mut self, node: &ast::Trait) -> Option> { - pre_emit!(Trait, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -2819,7 +2602,7 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Trait, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2827,7 +2610,6 @@ impl Translator<'_> { &mut self, node: &ast::TraitAlias, ) -> Option> { - pre_emit!(TraitAlias, self, node); if self.should_be_excluded(node) { return None; } @@ -2851,7 +2633,6 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(TraitAlias, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2859,7 +2640,6 @@ impl Translator<'_> { &mut self, node: &ast::TryExpr, ) -> Option> { - pre_emit!(TryExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2871,7 +2651,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(TryExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2879,7 +2658,6 @@ impl Translator<'_> { &mut self, node: &ast::TupleExpr, ) -> Option> { - pre_emit!(TupleExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -2891,7 +2669,6 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - post_emit!(TupleExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2899,7 +2676,6 @@ impl Translator<'_> { &mut self, node: &ast::TupleField, ) -> Option> { - pre_emit!(TupleField, self, node); if self.should_be_excluded(node) { return None; } @@ -2913,7 +2689,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(TupleField, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2921,7 +2696,6 @@ impl Translator<'_> { &mut self, node: &ast::TupleFieldList, ) -> Option> { - pre_emit!(TupleFieldList, self, node); let fields = node .fields() .filter_map(|x| self.emit_tuple_field(&x)) @@ -2931,7 +2705,6 @@ impl Translator<'_> { fields, }); self.emit_location(label, node); - post_emit!(TupleFieldList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2939,14 +2712,12 @@ impl Translator<'_> { &mut self, node: &ast::TuplePat, ) -> Option> { - pre_emit!(TuplePat, self, node); let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let label = self.trap.emit(generated::TuplePat { id: TrapId::Star, fields, }); self.emit_location(label, node); - post_emit!(TuplePat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2954,7 +2725,9 @@ impl Translator<'_> { &mut self, node: &ast::TupleStructPat, ) -> Option> { - pre_emit!(TupleStructPat, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } let fields = node.fields().filter_map(|x| self.emit_pat(&x)).collect(); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::TupleStructPat { @@ -2963,7 +2736,7 @@ impl Translator<'_> { path, }); self.emit_location(label, node); - post_emit!(TupleStructPat, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2971,14 +2744,12 @@ impl Translator<'_> { &mut self, node: &ast::TupleType, ) -> Option> { - pre_emit!(TupleTypeRepr, self, node); let fields = node.fields().filter_map(|x| self.emit_type(&x)).collect(); let label = self.trap.emit(generated::TupleTypeRepr { id: TrapId::Star, fields, }); self.emit_location(label, node); - post_emit!(TupleTypeRepr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -2986,7 +2757,6 @@ impl Translator<'_> { &mut self, node: &ast::TypeAlias, ) -> Option> { - pre_emit!(TypeAlias, self, node); if self.should_be_excluded(node) { return None; } @@ -3014,7 +2784,6 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(TypeAlias, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3022,14 +2791,12 @@ impl Translator<'_> { &mut self, node: &ast::TypeArg, ) -> Option> { - pre_emit!(TypeArg, self, node); let type_repr = node.ty().and_then(|x| self.emit_type(&x)); let label = self.trap.emit(generated::TypeArg { id: TrapId::Star, type_repr, }); self.emit_location(label, node); - post_emit!(TypeArg, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3037,7 +2804,6 @@ impl Translator<'_> { &mut self, node: &ast::TypeBound, ) -> Option> { - pre_emit!(TypeBound, self, node); let is_async = node.async_token().is_some(); let is_const = node.const_token().is_some(); let lifetime = node.lifetime().and_then(|x| self.emit_lifetime(&x)); @@ -3054,7 +2820,6 @@ impl Translator<'_> { use_bound_generic_args, }); self.emit_location(label, node); - post_emit!(TypeBound, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3062,7 +2827,6 @@ impl Translator<'_> { &mut self, node: &ast::TypeBoundList, ) -> Option> { - pre_emit!(TypeBoundList, self, node); let bounds = node .bounds() .filter_map(|x| self.emit_type_bound(&x)) @@ -3072,7 +2836,6 @@ impl Translator<'_> { bounds, }); self.emit_location(label, node); - post_emit!(TypeBoundList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3080,7 +2843,6 @@ impl Translator<'_> { &mut self, node: &ast::TypeParam, ) -> Option> { - pre_emit!(TypeParam, self, node); if self.should_be_excluded(node) { return None; } @@ -3098,7 +2860,6 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(TypeParam, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3106,7 +2867,6 @@ impl Translator<'_> { &mut self, node: &ast::UnderscoreExpr, ) -> Option> { - pre_emit!(UnderscoreExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3116,12 +2876,13 @@ impl Translator<'_> { attrs, }); self.emit_location(label, node); - post_emit!(UnderscoreExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_union(&mut self, node: &ast::Union) -> Option> { - pre_emit!(Union, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -3145,12 +2906,11 @@ impl Translator<'_> { where_clause, }); self.emit_location(label, node); - post_emit!(Union, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } pub(crate) fn emit_use(&mut self, node: &ast::Use) -> Option> { - pre_emit!(Use, self, node); if self.should_be_excluded(node) { return None; } @@ -3164,7 +2924,6 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(Use, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3172,7 +2931,6 @@ impl Translator<'_> { &mut self, node: &ast::UseBoundGenericArgs, ) -> Option> { - pre_emit!(UseBoundGenericArgs, self, node); let use_bound_generic_args = node .use_bound_generic_args() .filter_map(|x| self.emit_use_bound_generic_arg(&x)) @@ -3182,7 +2940,6 @@ impl Translator<'_> { use_bound_generic_args, }); self.emit_location(label, node); - post_emit!(UseBoundGenericArgs, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3190,7 +2947,6 @@ impl Translator<'_> { &mut self, node: &ast::UseTree, ) -> Option> { - pre_emit!(UseTree, self, node); let is_glob = node.star_token().is_some(); let path = node.path().and_then(|x| self.emit_path(&x)); let rename = node.rename().and_then(|x| self.emit_rename(&x)); @@ -3205,7 +2961,6 @@ impl Translator<'_> { use_tree_list, }); self.emit_location(label, node); - post_emit!(UseTree, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3213,7 +2968,6 @@ impl Translator<'_> { &mut self, node: &ast::UseTreeList, ) -> Option> { - pre_emit!(UseTreeList, self, node); let use_trees = node .use_trees() .filter_map(|x| self.emit_use_tree(&x)) @@ -3223,7 +2977,6 @@ impl Translator<'_> { use_trees, }); self.emit_location(label, node); - post_emit!(UseTreeList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3231,7 +2984,9 @@ impl Translator<'_> { &mut self, node: &ast::Variant, ) -> Option> { - pre_emit!(Variant, self, node); + if let Some(label) = self.pre_emit(node) { + return Some(label); + } if self.should_be_excluded(node) { return None; } @@ -3249,7 +3004,7 @@ impl Translator<'_> { visibility, }); self.emit_location(label, node); - post_emit!(Variant, self, node, label); + self.post_emit(node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3257,7 +3012,6 @@ impl Translator<'_> { &mut self, node: &ast::VariantList, ) -> Option> { - pre_emit!(VariantList, self, node); let variants = node .variants() .filter_map(|x| self.emit_variant(&x)) @@ -3267,7 +3021,6 @@ impl Translator<'_> { variants, }); self.emit_location(label, node); - post_emit!(VariantList, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3275,14 +3028,12 @@ impl Translator<'_> { &mut self, node: &ast::Visibility, ) -> Option> { - pre_emit!(Visibility, self, node); let path = node.path().and_then(|x| self.emit_path(&x)); let label = self.trap.emit(generated::Visibility { id: TrapId::Star, path, }); self.emit_location(label, node); - post_emit!(Visibility, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3290,7 +3041,6 @@ impl Translator<'_> { &mut self, node: &ast::WhereClause, ) -> Option> { - pre_emit!(WhereClause, self, node); let predicates = node .predicates() .filter_map(|x| self.emit_where_pred(&x)) @@ -3300,7 +3050,6 @@ impl Translator<'_> { predicates, }); self.emit_location(label, node); - post_emit!(WhereClause, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3308,7 +3057,6 @@ impl Translator<'_> { &mut self, node: &ast::WherePred, ) -> Option> { - pre_emit!(WherePred, self, node); let generic_param_list = node .generic_param_list() .and_then(|x| self.emit_generic_param_list(&x)); @@ -3325,7 +3073,6 @@ impl Translator<'_> { type_bound_list, }); self.emit_location(label, node); - post_emit!(WherePred, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3333,7 +3080,6 @@ impl Translator<'_> { &mut self, node: &ast::WhileExpr, ) -> Option> { - pre_emit!(WhileExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3349,7 +3095,6 @@ impl Translator<'_> { loop_body, }); self.emit_location(label, node); - post_emit!(WhileExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3357,10 +3102,8 @@ impl Translator<'_> { &mut self, node: &ast::WildcardPat, ) -> Option> { - pre_emit!(WildcardPat, self, node); let label = self.trap.emit(generated::WildcardPat { id: TrapId::Star }); self.emit_location(label, node); - post_emit!(WildcardPat, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3368,7 +3111,6 @@ impl Translator<'_> { &mut self, node: &ast::YeetExpr, ) -> Option> { - pre_emit!(YeetExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3380,7 +3122,6 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(YeetExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } @@ -3388,7 +3129,6 @@ impl Translator<'_> { &mut self, node: &ast::YieldExpr, ) -> Option> { - pre_emit!(YieldExpr, self, node); if self.should_be_excluded(node) { return None; } @@ -3400,8 +3140,67 @@ impl Translator<'_> { expr, }); self.emit_location(label, node); - post_emit!(YieldExpr, self, node, label); self.emit_tokens(node, label.into(), node.syntax().children_with_tokens()); Some(label) } } +impl HasTrapClass for ast::AssocItem { + type TrapClass = generated::AssocItem; +} +impl HasTrapClass for ast::ExternItem { + type TrapClass = generated::ExternItem; +} +impl HasTrapClass for ast::Item { + type TrapClass = generated::Item; +} +impl HasTrapClass for ast::Const { + type TrapClass = generated::Const; +} +impl HasTrapClass for ast::Enum { + type TrapClass = generated::Enum; +} +impl HasTrapClass for ast::Fn { + type TrapClass = generated::Function; +} +impl HasTrapClass for ast::MacroCall { + type TrapClass = generated::MacroCall; +} +impl HasTrapClass for ast::Meta { + type TrapClass = generated::Meta; +} +impl HasTrapClass for ast::MethodCallExpr { + type TrapClass = generated::MethodCallExpr; +} +impl HasTrapClass for ast::Module { + type TrapClass = generated::Module; +} +impl HasTrapClass for ast::PathExpr { + type TrapClass = generated::PathExpr; +} +impl HasTrapClass for ast::PathPat { + type TrapClass = generated::PathPat; +} +impl HasTrapClass for ast::PathSegment { + type TrapClass = generated::PathSegment; +} +impl HasTrapClass for ast::RecordExpr { + type TrapClass = generated::StructExpr; +} +impl HasTrapClass for ast::RecordPat { + type TrapClass = generated::StructPat; +} +impl HasTrapClass for ast::Struct { + type TrapClass = generated::Struct; +} +impl HasTrapClass for ast::Trait { + type TrapClass = generated::Trait; +} +impl HasTrapClass for ast::TupleStructPat { + type TrapClass = generated::TupleStructPat; +} +impl HasTrapClass for ast::Union { + type TrapClass = generated::Union; +} +impl HasTrapClass for ast::Variant { + type TrapClass = generated::Variant; +} diff --git a/rust/extractor/src/translate/mappings.rs b/rust/extractor/src/translate/mappings.rs index 3068e5cea52..3e71c6deb14 100644 --- a/rust/extractor/src/translate/mappings.rs +++ b/rust/extractor/src/translate/mappings.rs @@ -1,7 +1,20 @@ +use crate::trap::{Label, TrapClass}; use ra_ap_hir::{Enum, Function, HasContainer, Module, Semantics, Struct, Trait, Union}; use ra_ap_ide_db::RootDatabase; use ra_ap_syntax::{AstNode, ast, ast::RangeItem}; +pub(crate) trait HasTrapClass: AstNode { + type TrapClass: TrapClass; +} + +pub(crate) trait Emission { + fn pre_emit(&mut self, _node: &T) -> Option> { + None + } + + fn post_emit(&mut self, _node: &T, _label: Label) {} +} + pub(crate) trait TextValue { fn try_get_text(&self) -> Option; } From 3e074b2425c1af762bbad177d2bc11bb4c2855db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Jun 2025 08:55:31 +0000 Subject: [PATCH 247/340] Release preparation for version 2.22.1 --- actions/ql/lib/CHANGELOG.md | 8 +++++++ .../0.4.12.md} | 9 +++---- 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.4.md | 3 +++ actions/ql/src/codeql-pack.release.yml | 2 +- actions/ql/src/qlpack.yml | 2 +- cpp/ql/lib/CHANGELOG.md | 17 +++++++++++++ .../2014-12-13-deprecate-throwing.md | 4 ---- .../2025-06-06-lambda-parameters.md | 4 ---- .../lib/change-notes/2025-06-11-leave-stmt.md | 5 ---- .../2025-06-16-namespace-attributes.md | 4 ---- .../2025-06-17-arraytype-typedefs.md | 4 ---- cpp/ql/lib/change-notes/released/5.2.0.md | 16 +++++++++++++ cpp/ql/lib/codeql-pack.release.yml | 2 +- cpp/ql/lib/qlpack.yml | 2 +- cpp/ql/src/CHANGELOG.md | 6 +++++ .../1.4.3.md} | 9 +++---- 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.43.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.43.md | 3 +++ .../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.1.9.md | 3 +++ csharp/ql/lib/codeql-pack.release.yml | 2 +- csharp/ql/lib/qlpack.yml | 2 +- csharp/ql/src/CHANGELOG.md | 11 +++++++++ .../2025-06-03-dereferece-extension-method.md | 4 ---- ...educe-CWE-134-for-memory-safe-languages.md | 4 ---- .../ql/src/change-notes/2025-06-16-tagging.md | 4 ---- csharp/ql/src/change-notes/released/1.3.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.26.md | 3 +++ .../codeql-pack.release.yml | 2 +- go/ql/consistency-queries/qlpack.yml | 2 +- go/ql/lib/CHANGELOG.md | 4 ++++ go/ql/lib/change-notes/released/4.2.8.md | 3 +++ go/ql/lib/codeql-pack.release.yml | 2 +- go/ql/lib/qlpack.yml | 2 +- go/ql/src/CHANGELOG.md | 24 +++++++++++++++++++ .../1.4.0.md} | 7 +++--- go/ql/src/codeql-pack.release.yml | 2 +- go/ql/src/qlpack.yml | 2 +- java/ql/lib/CHANGELOG.md | 6 +++++ .../7.3.2.md} | 7 +++--- java/ql/lib/codeql-pack.release.yml | 2 +- java/ql/lib/qlpack.yml | 2 +- java/ql/src/CHANGELOG.md | 21 ++++++++++++++++ ...educe-CWE-134-for-memory-safe-languages.md | 4 ---- ...lding-cmdline-with-string-concatenation.md | 4 ---- .../1.6.0.md} | 9 ++++--- java/ql/src/codeql-pack.release.yml | 2 +- java/ql/src/qlpack.yml | 2 +- javascript/ql/lib/CHANGELOG.md | 12 ++++++++++ .../2025-06-03-axios-instance-support.md | 4 ---- ...25-06-05-skip-obviously-generated-files.md | 4 ---- .../2025-06-13-remove-encodeuri.md | 4 ---- .../2025-06-16-middleware-express.md | 5 ---- .../change-notes/2025-06-16-serialize-js.md | 4 ---- .../ql/lib/change-notes/2025-06-20-sinon.md | 4 ---- .../ql/lib/change-notes/released/2.6.6.md | 11 +++++++++ javascript/ql/lib/codeql-pack.release.yml | 2 +- javascript/ql/lib/qlpack.yml | 2 +- javascript/ql/src/CHANGELOG.md | 15 ++++++++++++ .../2025-05-30-dom-property-access.md | 4 ---- .../2025-06-12-loop-iteration-fix.md | 4 ---- .../change-notes/2025-06-12-loop-iteration.md | 4 ---- .../2025-06-12-string-interpolation.md | 4 ---- .../2025-06-12-suspicious-method-name.md | 4 ---- .../2025-06-12-template-syntax-metadata.md | 4 ---- .../change-notes/2025-06-16-mass-promotion.md | 4 ---- .../ql/src/change-notes/released/1.7.0.md | 14 +++++++++++ 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.26.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/4.0.10.md | 3 +++ python/ql/lib/codeql-pack.release.yml | 2 +- python/ql/lib/qlpack.yml | 2 +- python/ql/src/CHANGELOG.md | 10 ++++++++ .../2025-05-23-iter-not-return-self.md | 4 ---- .../1.6.0.md} | 12 ++++++---- 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/4.1.9.md | 3 +++ ruby/ql/lib/codeql-pack.release.yml | 2 +- ruby/ql/lib/qlpack.yml | 2 +- ruby/ql/src/CHANGELOG.md | 7 ++++++ .../1.4.0.md} | 7 +++--- ruby/ql/src/codeql-pack.release.yml | 2 +- ruby/ql/src/qlpack.yml | 2 +- rust/ql/lib/CHANGELOG.md | 6 +++++ .../change-notes/released/0.1.11.md} | 7 +++--- rust/ql/lib/codeql-pack.release.yml | 2 +- rust/ql/lib/qlpack.yml | 2 +- rust/ql/src/CHANGELOG.md | 6 +++++ .../change-notes/released/0.1.11.md} | 7 +++--- rust/ql/src/codeql-pack.release.yml | 2 +- rust/ql/src/qlpack.yml | 2 +- shared/controlflow/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.10.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.10.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.26.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.4.md | 3 +++ shared/quantum/codeql-pack.release.yml | 2 +- shared/quantum/qlpack.yml | 2 +- shared/rangeanalysis/CHANGELOG.md | 4 ++++ .../change-notes/released/1.0.26.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.26.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.2.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.26.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.26.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.26.md | 3 +++ shared/typeflow/codeql-pack.release.yml | 2 +- shared/typeflow/qlpack.yml | 2 +- shared/typeinference/CHANGELOG.md | 4 ++++ .../change-notes/released/0.0.7.md | 3 +++ shared/typeinference/codeql-pack.release.yml | 2 +- shared/typeinference/qlpack.yml | 2 +- shared/typetracking/CHANGELOG.md | 4 ++++ .../change-notes/released/2.0.10.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.26.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.13.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.26.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.26.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/5.0.2.md | 3 +++ swift/ql/lib/codeql-pack.release.yml | 2 +- swift/ql/lib/qlpack.yml | 2 +- swift/ql/src/CHANGELOG.md | 6 +++++ .../1.2.0.md} | 9 +++---- swift/ql/src/codeql-pack.release.yml | 2 +- swift/ql/src/qlpack.yml | 2 +- 184 files changed, 517 insertions(+), 212 deletions(-) rename actions/ql/lib/change-notes/{2025-06-09-bash-parsing-performance.md => released/0.4.12.md} (59%) create mode 100644 actions/ql/src/change-notes/released/0.6.4.md delete mode 100644 cpp/ql/lib/change-notes/2014-12-13-deprecate-throwing.md delete mode 100644 cpp/ql/lib/change-notes/2025-06-06-lambda-parameters.md delete mode 100644 cpp/ql/lib/change-notes/2025-06-11-leave-stmt.md delete mode 100644 cpp/ql/lib/change-notes/2025-06-16-namespace-attributes.md delete mode 100644 cpp/ql/lib/change-notes/2025-06-17-arraytype-typedefs.md create mode 100644 cpp/ql/lib/change-notes/released/5.2.0.md rename cpp/ql/src/change-notes/{2025-06-13-mad-summaries.md => released/1.4.3.md} (84%) create mode 100644 csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.43.md create mode 100644 csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.43.md create mode 100644 csharp/ql/lib/change-notes/released/5.1.9.md delete mode 100644 csharp/ql/src/change-notes/2025-06-03-dereferece-extension-method.md delete mode 100644 csharp/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md delete mode 100644 csharp/ql/src/change-notes/2025-06-16-tagging.md create mode 100644 csharp/ql/src/change-notes/released/1.3.0.md create mode 100644 go/ql/consistency-queries/change-notes/released/1.0.26.md create mode 100644 go/ql/lib/change-notes/released/4.2.8.md rename go/ql/src/change-notes/{2025-06-13-add-tags-to-quality-queries.md => released/1.4.0.md} (98%) rename java/ql/lib/change-notes/{2025-06-12-assert-cfg.md => released/7.3.2.md} (77%) delete mode 100644 java/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md delete mode 100644 java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md rename java/ql/src/change-notes/{2025-06-17-add-tags-to-quality-queries.md => released/1.6.0.md} (87%) delete mode 100644 javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md delete mode 100644 javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md delete mode 100644 javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md delete mode 100644 javascript/ql/lib/change-notes/2025-06-16-middleware-express.md delete mode 100644 javascript/ql/lib/change-notes/2025-06-16-serialize-js.md delete mode 100644 javascript/ql/lib/change-notes/2025-06-20-sinon.md create mode 100644 javascript/ql/lib/change-notes/released/2.6.6.md delete mode 100644 javascript/ql/src/change-notes/2025-05-30-dom-property-access.md delete mode 100644 javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md delete mode 100644 javascript/ql/src/change-notes/2025-06-12-loop-iteration.md delete mode 100644 javascript/ql/src/change-notes/2025-06-12-string-interpolation.md delete mode 100644 javascript/ql/src/change-notes/2025-06-12-suspicious-method-name.md delete mode 100644 javascript/ql/src/change-notes/2025-06-12-template-syntax-metadata.md delete mode 100644 javascript/ql/src/change-notes/2025-06-16-mass-promotion.md create mode 100644 javascript/ql/src/change-notes/released/1.7.0.md create mode 100644 misc/suite-helpers/change-notes/released/1.0.26.md create mode 100644 python/ql/lib/change-notes/released/4.0.10.md delete mode 100644 python/ql/src/change-notes/2025-05-23-iter-not-return-self.md rename python/ql/src/change-notes/{2025-06-18-quality-query-metadata.md => released/1.6.0.md} (59%) create mode 100644 ruby/ql/lib/change-notes/released/4.1.9.md rename ruby/ql/src/change-notes/{2025-06-17-tagging.md => released/1.4.0.md} (88%) rename rust/ql/{src/change-notes/2025-06-13-public-preview.md => lib/change-notes/released/0.1.11.md} (53%) rename rust/ql/{lib/change-notes/2025-06-13-public-preview.md => src/change-notes/released/0.1.11.md} (54%) create mode 100644 shared/controlflow/change-notes/released/2.0.10.md create mode 100644 shared/dataflow/change-notes/released/2.0.10.md create mode 100644 shared/mad/change-notes/released/1.0.26.md create mode 100644 shared/quantum/change-notes/released/0.0.4.md create mode 100644 shared/rangeanalysis/change-notes/released/1.0.26.md create mode 100644 shared/regex/change-notes/released/1.0.26.md create mode 100644 shared/ssa/change-notes/released/2.0.2.md create mode 100644 shared/threat-models/change-notes/released/1.0.26.md create mode 100644 shared/tutorial/change-notes/released/1.0.26.md create mode 100644 shared/typeflow/change-notes/released/1.0.26.md create mode 100644 shared/typeinference/change-notes/released/0.0.7.md create mode 100644 shared/typetracking/change-notes/released/2.0.10.md create mode 100644 shared/typos/change-notes/released/1.0.26.md create mode 100644 shared/util/change-notes/released/2.0.13.md create mode 100644 shared/xml/change-notes/released/1.0.26.md create mode 100644 shared/yaml/change-notes/released/1.0.26.md create mode 100644 swift/ql/lib/change-notes/released/5.0.2.md rename swift/ql/src/change-notes/{2025-06-06-reduce-CWE-134-for-memory-safe-languages.md => released/1.2.0.md} (59%) diff --git a/actions/ql/lib/CHANGELOG.md b/actions/ql/lib/CHANGELOG.md index 53bf9173713..9547b4d4609 100644 --- a/actions/ql/lib/CHANGELOG.md +++ b/actions/ql/lib/CHANGELOG.md @@ -1,3 +1,11 @@ +## 0.4.12 + +### Minor Analysis Improvements + +* Fixed performance issues in the parsing of Bash scripts in workflow files, + which led to out-of-disk errors when analysing certain workflow files with + complex interpolations of shell commands or quoted strings. + ## 0.4.11 No user-facing changes. diff --git a/actions/ql/lib/change-notes/2025-06-09-bash-parsing-performance.md b/actions/ql/lib/change-notes/released/0.4.12.md similarity index 59% rename from actions/ql/lib/change-notes/2025-06-09-bash-parsing-performance.md rename to actions/ql/lib/change-notes/released/0.4.12.md index 5ee29557c85..cf36214eae2 100644 --- a/actions/ql/lib/change-notes/2025-06-09-bash-parsing-performance.md +++ b/actions/ql/lib/change-notes/released/0.4.12.md @@ -1,6 +1,7 @@ ---- -category: minorAnalysis ---- +## 0.4.12 + +### Minor Analysis Improvements + * Fixed performance issues in the parsing of Bash scripts in workflow files, which led to out-of-disk errors when analysing certain workflow files with - complex interpolations of shell commands or quoted strings. \ No newline at end of file + complex interpolations of shell commands or quoted strings. diff --git a/actions/ql/lib/codeql-pack.release.yml b/actions/ql/lib/codeql-pack.release.yml index 80a4283b3e4..530dc320490 100644 --- a/actions/ql/lib/codeql-pack.release.yml +++ b/actions/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.4.11 +lastReleaseVersion: 0.4.12 diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index 596bf4a14f0..f5e82a8647a 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.12-dev +version: 0.4.12 library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/CHANGELOG.md b/actions/ql/src/CHANGELOG.md index 3140211bc4a..b2846cd81fc 100644 --- a/actions/ql/src/CHANGELOG.md +++ b/actions/ql/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.6.4 + +No user-facing changes. + ## 0.6.3 No user-facing changes. diff --git a/actions/ql/src/change-notes/released/0.6.4.md b/actions/ql/src/change-notes/released/0.6.4.md new file mode 100644 index 00000000000..7e98b0159fc --- /dev/null +++ b/actions/ql/src/change-notes/released/0.6.4.md @@ -0,0 +1,3 @@ +## 0.6.4 + +No user-facing changes. diff --git a/actions/ql/src/codeql-pack.release.yml b/actions/ql/src/codeql-pack.release.yml index b7dafe32c5d..ced8cf94614 100644 --- a/actions/ql/src/codeql-pack.release.yml +++ b/actions/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.6.3 +lastReleaseVersion: 0.6.4 diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 99c4fd8d02c..442839b0dcf 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.4-dev +version: 0.6.4 library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/CHANGELOG.md b/cpp/ql/lib/CHANGELOG.md index c46ab004464..392305a6489 100644 --- a/cpp/ql/lib/CHANGELOG.md +++ b/cpp/ql/lib/CHANGELOG.md @@ -1,3 +1,20 @@ +## 5.2.0 + +### Deprecated APIs + +* The `ThrowingFunction` class (`semmle.code.cpp.models.interfaces.Throwing`) has been deprecated. Please use the `AlwaysSehThrowingFunction` class instead. + +### New Features + +* Added a predicate `getAnAttribute` to `Namespace` to retrieve a namespace attribute. +* The Microsoft-specific `__leave` statement is now supported. +* A new class `LeaveStmt` extending `JumpStmt` was added to represent `__leave` statements. +* Added a predicate `hasParameterList` to `LambdaExpression` to capture whether a lambda has an explicitly specified parameter list. + +### Bug Fixes + +* `resolveTypedefs` now properly resolves typedefs for `ArrayType`s. + ## 5.1.0 ### New Features diff --git a/cpp/ql/lib/change-notes/2014-12-13-deprecate-throwing.md b/cpp/ql/lib/change-notes/2014-12-13-deprecate-throwing.md deleted file mode 100644 index 9a46cc7da8f..00000000000 --- a/cpp/ql/lib/change-notes/2014-12-13-deprecate-throwing.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: deprecated ---- -* The `ThrowingFunction` class (`semmle.code.cpp.models.interfaces.Throwing`) has been deprecated. Please use the `AlwaysSehThrowingFunction` class instead. diff --git a/cpp/ql/lib/change-notes/2025-06-06-lambda-parameters.md b/cpp/ql/lib/change-notes/2025-06-06-lambda-parameters.md deleted file mode 100644 index 44f9b12968d..00000000000 --- a/cpp/ql/lib/change-notes/2025-06-06-lambda-parameters.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a predicate `hasParameterList` to `LambdaExpression` to capture whether a lambda has an explicitly specified parameter list. diff --git a/cpp/ql/lib/change-notes/2025-06-11-leave-stmt.md b/cpp/ql/lib/change-notes/2025-06-11-leave-stmt.md deleted file mode 100644 index d06be5b77a9..00000000000 --- a/cpp/ql/lib/change-notes/2025-06-11-leave-stmt.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: feature ---- -* The Microsoft-specific `__leave` statement is now supported. -* A new class `LeaveStmt` extending `JumpStmt` was added to represent `__leave` statements. \ No newline at end of file diff --git a/cpp/ql/lib/change-notes/2025-06-16-namespace-attributes.md b/cpp/ql/lib/change-notes/2025-06-16-namespace-attributes.md deleted file mode 100644 index cbed27e109c..00000000000 --- a/cpp/ql/lib/change-notes/2025-06-16-namespace-attributes.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: feature ---- -* Added a predicate `getAnAttribute` to `Namespace` to retrieve a namespace attribute. diff --git a/cpp/ql/lib/change-notes/2025-06-17-arraytype-typedefs.md b/cpp/ql/lib/change-notes/2025-06-17-arraytype-typedefs.md deleted file mode 100644 index 0bc3130e6a3..00000000000 --- a/cpp/ql/lib/change-notes/2025-06-17-arraytype-typedefs.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: fix ---- -* `resolveTypedefs` now properly resolves typedefs for `ArrayType`s. diff --git a/cpp/ql/lib/change-notes/released/5.2.0.md b/cpp/ql/lib/change-notes/released/5.2.0.md new file mode 100644 index 00000000000..a55198c1086 --- /dev/null +++ b/cpp/ql/lib/change-notes/released/5.2.0.md @@ -0,0 +1,16 @@ +## 5.2.0 + +### Deprecated APIs + +* The `ThrowingFunction` class (`semmle.code.cpp.models.interfaces.Throwing`) has been deprecated. Please use the `AlwaysSehThrowingFunction` class instead. + +### New Features + +* Added a predicate `getAnAttribute` to `Namespace` to retrieve a namespace attribute. +* The Microsoft-specific `__leave` statement is now supported. +* A new class `LeaveStmt` extending `JumpStmt` was added to represent `__leave` statements. +* Added a predicate `hasParameterList` to `LambdaExpression` to capture whether a lambda has an explicitly specified parameter list. + +### Bug Fixes + +* `resolveTypedefs` now properly resolves typedefs for `ArrayType`s. diff --git a/cpp/ql/lib/codeql-pack.release.yml b/cpp/ql/lib/codeql-pack.release.yml index dd8d287d010..9e57a36a7dc 100644 --- a/cpp/ql/lib/codeql-pack.release.yml +++ b/cpp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.0 +lastReleaseVersion: 5.2.0 diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index c0dd5d2ae2a..fd47588712c 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 5.1.1-dev +version: 5.2.0 groups: cpp dbscheme: semmlecode.cpp.dbscheme extractor: cpp diff --git a/cpp/ql/src/CHANGELOG.md b/cpp/ql/src/CHANGELOG.md index 4edd493015a..7fc5b0d92bd 100644 --- a/cpp/ql/src/CHANGELOG.md +++ b/cpp/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.4.3 + +### Minor Analysis Improvements + +* Added flow model for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2/`, `nghttp2/nghttp2`, `libuv/libuv/`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. + ## 1.4.2 No user-facing changes. diff --git a/cpp/ql/src/change-notes/2025-06-13-mad-summaries.md b/cpp/ql/src/change-notes/released/1.4.3.md similarity index 84% rename from cpp/ql/src/change-notes/2025-06-13-mad-summaries.md rename to cpp/ql/src/change-notes/released/1.4.3.md index f70b9037cd4..2280196429b 100644 --- a/cpp/ql/src/change-notes/2025-06-13-mad-summaries.md +++ b/cpp/ql/src/change-notes/released/1.4.3.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- -* Added flow model for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2/`, `nghttp2/nghttp2`, `libuv/libuv/`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. \ No newline at end of file +## 1.4.3 + +### Minor Analysis Improvements + +* Added flow model for the following libraries: `madler/zlib`, `google/brotli`, `libidn/libidn2`, `libssh2/libssh2/`, `nghttp2/nghttp2`, `libuv/libuv/`, and `curl/curl`. This may result in more alerts when running queries on codebases that use these libraries. diff --git a/cpp/ql/src/codeql-pack.release.yml b/cpp/ql/src/codeql-pack.release.yml index a76cacdf799..08f88b689fb 100644 --- a/cpp/ql/src/codeql-pack.release.yml +++ b/cpp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.4.2 +lastReleaseVersion: 1.4.3 diff --git a/cpp/ql/src/qlpack.yml b/cpp/ql/src/qlpack.yml index 290c18cb815..1ea432be220 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.4.3-dev +version: 1.4.3 groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md index 127bb19bbc6..99267b32a40 100644 --- a/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.43 + +No user-facing changes. + ## 1.7.42 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.43.md b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.43.md new file mode 100644 index 00000000000..10a22c6b4be --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/lib/change-notes/released/1.7.43.md @@ -0,0 +1,3 @@ +## 1.7.43 + +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 8317cee0ddb..9b37539bf65 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.42 +lastReleaseVersion: 1.7.43 diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index a86abb4812b..4eb119b21c1 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.43-dev +version: 1.7.43 groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md index 127bb19bbc6..99267b32a40 100644 --- a/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md +++ b/csharp/ql/campaigns/Solorigate/src/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.7.43 + +No user-facing changes. + ## 1.7.42 No user-facing changes. diff --git a/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.43.md b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.43.md new file mode 100644 index 00000000000..10a22c6b4be --- /dev/null +++ b/csharp/ql/campaigns/Solorigate/src/change-notes/released/1.7.43.md @@ -0,0 +1,3 @@ +## 1.7.43 + +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 8317cee0ddb..9b37539bf65 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.42 +lastReleaseVersion: 1.7.43 diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index caf1e66033e..7b0b33c02d9 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.43-dev +version: 1.7.43 groups: - csharp - solorigate diff --git a/csharp/ql/lib/CHANGELOG.md b/csharp/ql/lib/CHANGELOG.md index 5eeedc6f77b..3124c68b6ab 100644 --- a/csharp/ql/lib/CHANGELOG.md +++ b/csharp/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.1.9 + +No user-facing changes. + ## 5.1.8 No user-facing changes. diff --git a/csharp/ql/lib/change-notes/released/5.1.9.md b/csharp/ql/lib/change-notes/released/5.1.9.md new file mode 100644 index 00000000000..78965f168e0 --- /dev/null +++ b/csharp/ql/lib/change-notes/released/5.1.9.md @@ -0,0 +1,3 @@ +## 5.1.9 + +No user-facing changes. diff --git a/csharp/ql/lib/codeql-pack.release.yml b/csharp/ql/lib/codeql-pack.release.yml index 8ffbb79d224..f9bf2605261 100644 --- a/csharp/ql/lib/codeql-pack.release.yml +++ b/csharp/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.1.8 +lastReleaseVersion: 5.1.9 diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index 464284c56cb..aed137e4fea 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.1.9-dev +version: 5.1.9 groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/CHANGELOG.md b/csharp/ql/src/CHANGELOG.md index 4eabf64f6a5..da76eab521c 100644 --- a/csharp/ql/src/CHANGELOG.md +++ b/csharp/ql/src/CHANGELOG.md @@ -1,3 +1,14 @@ +## 1.3.0 + +### Query Metadata Changes + +* Query metadata tags have been systematically updated for many C# queries. Primary categorization as either `reliability` or `maintainability`, and relevant sub-category tags such as `readability`, `useless-code`, `complexity`, `performance`, `correctness`, `error-handling`, and `concurrency`. Aligns with the established [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags). +* Adjusts the `@security-severity` from 9.3 to 7.3 for `cs/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. + +### Minor Analysis Improvements + +* The queries `cs/dereferenced-value-is-always-null` and `cs/dereferenced-value-may-be-null` have been improved to reduce false positives. The queries no longer assume that expressions are dereferenced when passed as the receiver (`this` parameter) to extension methods where that parameter is a nullable type. + ## 1.2.2 No user-facing changes. diff --git a/csharp/ql/src/change-notes/2025-06-03-dereferece-extension-method.md b/csharp/ql/src/change-notes/2025-06-03-dereferece-extension-method.md deleted file mode 100644 index b12ec9768d5..00000000000 --- a/csharp/ql/src/change-notes/2025-06-03-dereferece-extension-method.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The queries `cs/dereferenced-value-is-always-null` and `cs/dereferenced-value-may-be-null` have been improved to reduce false positives. The queries no longer assume that expressions are dereferenced when passed as the receiver (`this` parameter) to extension methods where that parameter is a nullable type. diff --git a/csharp/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md b/csharp/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md deleted file mode 100644 index 60006391ac6..00000000000 --- a/csharp/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Adjusts the `@security-severity` from 9.3 to 7.3 for `cs/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. diff --git a/csharp/ql/src/change-notes/2025-06-16-tagging.md b/csharp/ql/src/change-notes/2025-06-16-tagging.md deleted file mode 100644 index d0b8d2c41ee..00000000000 --- a/csharp/ql/src/change-notes/2025-06-16-tagging.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Query metadata tags have been systematically updated for many C# queries. Primary categorization as either `reliability` or `maintainability`, and relevant sub-category tags such as `readability`, `useless-code`, `complexity`, `performance`, `correctness`, `error-handling`, and `concurrency`. Aligns with the established [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags). diff --git a/csharp/ql/src/change-notes/released/1.3.0.md b/csharp/ql/src/change-notes/released/1.3.0.md new file mode 100644 index 00000000000..91cd3426944 --- /dev/null +++ b/csharp/ql/src/change-notes/released/1.3.0.md @@ -0,0 +1,10 @@ +## 1.3.0 + +### Query Metadata Changes + +* Query metadata tags have been systematically updated for many C# queries. Primary categorization as either `reliability` or `maintainability`, and relevant sub-category tags such as `readability`, `useless-code`, `complexity`, `performance`, `correctness`, `error-handling`, and `concurrency`. Aligns with the established [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags). +* Adjusts the `@security-severity` from 9.3 to 7.3 for `cs/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. + +### Minor Analysis Improvements + +* The queries `cs/dereferenced-value-is-always-null` and `cs/dereferenced-value-may-be-null` have been improved to reduce false positives. The queries no longer assume that expressions are dereferenced when passed as the receiver (`this` parameter) to extension methods where that parameter is a nullable type. diff --git a/csharp/ql/src/codeql-pack.release.yml b/csharp/ql/src/codeql-pack.release.yml index 0a70a9a01a7..ec16350ed6f 100644 --- a/csharp/ql/src/codeql-pack.release.yml +++ b/csharp/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.2.2 +lastReleaseVersion: 1.3.0 diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index 6437a730f15..ceb761092b7 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.2.3-dev +version: 1.3.0 groups: - csharp - queries diff --git a/go/ql/consistency-queries/CHANGELOG.md b/go/ql/consistency-queries/CHANGELOG.md index 3fa1fa4c69b..0d814dec385 100644 --- a/go/ql/consistency-queries/CHANGELOG.md +++ b/go/ql/consistency-queries/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/go/ql/consistency-queries/change-notes/released/1.0.26.md b/go/ql/consistency-queries/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/go/ql/consistency-queries/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +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 a5a44030e85..125d169e44f 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.25 +lastReleaseVersion: 1.0.26 diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 17730391629..1dc60b72029 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.26-dev +version: 1.0.26 groups: - go - queries diff --git a/go/ql/lib/CHANGELOG.md b/go/ql/lib/CHANGELOG.md index 879662575e2..c5fac252869 100644 --- a/go/ql/lib/CHANGELOG.md +++ b/go/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.2.8 + +No user-facing changes. + ## 4.2.7 ### Minor Analysis Improvements diff --git a/go/ql/lib/change-notes/released/4.2.8.md b/go/ql/lib/change-notes/released/4.2.8.md new file mode 100644 index 00000000000..9b1c8820dc4 --- /dev/null +++ b/go/ql/lib/change-notes/released/4.2.8.md @@ -0,0 +1,3 @@ +## 4.2.8 + +No user-facing changes. diff --git a/go/ql/lib/codeql-pack.release.yml b/go/ql/lib/codeql-pack.release.yml index 0c0ee7d4dfd..9b51fbc5ce5 100644 --- a/go/ql/lib/codeql-pack.release.yml +++ b/go/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.2.7 +lastReleaseVersion: 4.2.8 diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 9c6a8397bc3..3ec41de9acc 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.2.8-dev +version: 4.2.8 groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/CHANGELOG.md b/go/ql/src/CHANGELOG.md index 515fbad7adf..521c1320839 100644 --- a/go/ql/src/CHANGELOG.md +++ b/go/ql/src/CHANGELOG.md @@ -1,3 +1,27 @@ +## 1.4.0 + +### Query Metadata Changes + +* The tag `quality` has been added to multiple Go quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* The tag `external/cwe/cwe-129` has been added to `go/constant-length-comparison`. +* The tag `external/cwe/cwe-193` has been added to `go/index-out-of-bounds`. +* The tag `external/cwe/cwe-197` has been added to `go/shift-out-of-range`. +* The tag `external/cwe/cwe-248` has been added to `go/redundant-recover`. +* The tag `external/cwe/cwe-252` has been added to `go/missing-error-check` and `go/unhandled-writable-file-close`. +* The tag `external/cwe/cwe-480` has been added to `go/mistyped-exponentiation`. +* The tag `external/cwe/cwe-570` has been added to `go/impossible-interface-nil-check` and `go/comparison-of-identical-expressions`. +* The tag `external/cwe/cwe-571` has been added to `go/negative-length-check` and `go/comparison-of-identical-expressions`. +* The tag `external/cwe/cwe-783` has been added to `go/whitespace-contradicts-precedence`. +* The tag `external/cwe/cwe-835` has been added to `go/inconsistent-loop-direction`. +* The tag `error-handling` has been added to `go/missing-error-check`, `go/unhandled-writable-file-close`, and `go/unexpected-nil-value`. +* The tag `useless-code` has been added to `go/useless-assignment-to-field`, `go/useless-assignment-to-local`, `go/useless-expression`, and `go/unreachable-statement`. +* The tag `logic` has been removed from `go/index-out-of-bounds` and `go/unexpected-nil-value`. +* The tags `call` and `defer` have been removed from `go/unhandled-writable-file-close`. +* The tags `correctness` and `quality` have been reordered in `go/missing-error-check` and `go/unhandled-writable-file-close`. +* The tag `maintainability` has been changed to `reliability` for `go/unhandled-writable-file-close`. +* The tag order has been standardized to have `quality` first, followed by the top-level category (`reliability` or `maintainability`), then sub-category tags, and finally CWE tags. +* The description text has been updated in `go/whitespace-contradicts-precedence` to change "may even indicate" to "may indicate". + ## 1.3.0 ### New Queries diff --git a/go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md b/go/ql/src/change-notes/released/1.4.0.md similarity index 98% rename from go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md rename to go/ql/src/change-notes/released/1.4.0.md index 9233cb05e80..e97351b26ed 100644 --- a/go/ql/src/change-notes/2025-06-13-add-tags-to-quality-queries.md +++ b/go/ql/src/change-notes/released/1.4.0.md @@ -1,6 +1,7 @@ ---- -category: queryMetadata ---- +## 1.4.0 + +### Query Metadata Changes + * The tag `quality` has been added to multiple Go quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. * The tag `external/cwe/cwe-129` has been added to `go/constant-length-comparison`. * The tag `external/cwe/cwe-193` has been added to `go/index-out-of-bounds`. diff --git a/go/ql/src/codeql-pack.release.yml b/go/ql/src/codeql-pack.release.yml index ec16350ed6f..b8b2e97d508 100644 --- a/go/ql/src/codeql-pack.release.yml +++ b/go/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.0 +lastReleaseVersion: 1.4.0 diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 874d6e093fc..25b99dd292b 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.3.1-dev +version: 1.4.0 groups: - go - queries diff --git a/java/ql/lib/CHANGELOG.md b/java/ql/lib/CHANGELOG.md index 1e624ba0913..320552a8f14 100644 --- a/java/ql/lib/CHANGELOG.md +++ b/java/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 7.3.2 + +### Minor Analysis Improvements + +* Java `assert` statements are now assumed to be executed for the purpose of analysing control flow. This improves precision for a number of queries. + ## 7.3.1 No user-facing changes. diff --git a/java/ql/lib/change-notes/2025-06-12-assert-cfg.md b/java/ql/lib/change-notes/released/7.3.2.md similarity index 77% rename from java/ql/lib/change-notes/2025-06-12-assert-cfg.md rename to java/ql/lib/change-notes/released/7.3.2.md index 69219633166..6e3c0320860 100644 --- a/java/ql/lib/change-notes/2025-06-12-assert-cfg.md +++ b/java/ql/lib/change-notes/released/7.3.2.md @@ -1,4 +1,5 @@ ---- -category: minorAnalysis ---- +## 7.3.2 + +### Minor Analysis Improvements + * Java `assert` statements are now assumed to be executed for the purpose of analysing control flow. This improves precision for a number of queries. diff --git a/java/ql/lib/codeql-pack.release.yml b/java/ql/lib/codeql-pack.release.yml index 43cb026b139..cf3deb9367d 100644 --- a/java/ql/lib/codeql-pack.release.yml +++ b/java/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 7.3.1 +lastReleaseVersion: 7.3.2 diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 35f35a391c5..20df8bf32a7 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.3.2-dev +version: 7.3.2 groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/CHANGELOG.md b/java/ql/src/CHANGELOG.md index ca355f5e684..fe2be06be35 100644 --- a/java/ql/src/CHANGELOG.md +++ b/java/ql/src/CHANGELOG.md @@ -1,3 +1,24 @@ +## 1.6.0 + +### Query Metadata Changes + +* The tag `quality` has been added to multiple Java quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* The tag `external/cwe/cwe-571` has been added to `java/equals-on-unrelated-types`. +* The tag `readability` has been added to `java/missing-override-annotation`, `java/deprecated-call`, `java/inconsistent-javadoc-throws`, `java/unknown-javadoc-parameter`, `java/jdk-internal-api-access`, `java/underscore-identifier`, `java/misleading-indentation`, `java/inefficient-empty-string-test`, `java/non-static-nested-class`, `inefficient-string-constructor`, and `java/constants-only-interface`. +* The tag `useless-code` has been added to `java/useless-type-test`, and `java/useless-tostring-call`. +* The tag `complexity` has been added to `java/chained-type-tests`, and `java/abstract-to-concrete-cast`. +* The tag `error-handling` has been added to `java/ignored-error-status-of-call`, and `java/uncaught-number-format-exception`. +* The tag `correctness` has been added to `java/evaluation-to-constant`, `java/whitespace-contradicts-precedence`, `java/empty-container`, `java/string-buffer-char-init`, `java/call-to-object-tostring`, `java/print-array` and `java/internal-representation-exposure`. +* The tag `performance` has been added to `java/input-resource-leak`, `java/database-resource-leak`, `java/output-resource-leak`, `java/inefficient-key-set-iterator`, `java/inefficient-output-stream`, and `java/inefficient-boxed-constructor`. +* The tag `correctness` has been removed from `java/call-to-thread-run`, `java/unsafe-double-checked-locking`, `java/unsafe-double-checked-locking-init-order`, `java/non-sync-override`, `java/sync-on-boxed-types`, `java/unsynchronized-getter`, `java/input-resource-leak`, `java/output-resource-leak`, `java/database-resource-leak`, and `java/ignored-error-status-of-call`. +* The tags `maintainability` has been removed from `java/string-buffer-char-init`, `java/inefficient-key-set-iterator`, `java/inefficient-boxed-constructor`, and `java/internal-representation-exposure`. +* The tags `reliability` has been removed from `java/subtle-inherited-call`, `java/print-array`, and `java/call-to-object-tostring`. +* The tags `maintainability` and `useless-code` have been removed from `java/evaluation-to-constant`. +* The tags `maintainability` and `readability` have been removed from `java/whitespace-contradicts-precedence`. +* The tags `maintainability` and `useless-code` have been removed from `java/empty-container`. +* Adjusts the `@precision` from high to medium for `java/concatenated-command-line` because it is producing false positive alerts when the concatenated strings are hard-coded. +* Adjusts the `@security-severity` from 9.3 to 7.3 for `java/tainted-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. + ## 1.5.2 No user-facing changes. diff --git a/java/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md b/java/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md deleted file mode 100644 index 6ab4beb7290..00000000000 --- a/java/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Adjusts the `@security-severity` from 9.3 to 7.3 for `java/tainted-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. diff --git a/java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md b/java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md deleted file mode 100644 index 392e1965def..00000000000 --- a/java/ql/src/change-notes/2025-06-10-reduce-precision-for-building-cmdline-with-string-concatenation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Adjusts the `@precision` from high to medium for `java/concatenated-command-line` because it is producing false positive alerts when the concatenated strings are hard-coded. diff --git a/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md b/java/ql/src/change-notes/released/1.6.0.md similarity index 87% rename from java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md rename to java/ql/src/change-notes/released/1.6.0.md index a8c07fb3560..539ce3d0969 100644 --- a/java/ql/src/change-notes/2025-06-17-add-tags-to-quality-queries.md +++ b/java/ql/src/change-notes/released/1.6.0.md @@ -1,6 +1,7 @@ ---- -category: queryMetadata ---- +## 1.6.0 + +### Query Metadata Changes + * The tag `quality` has been added to multiple Java quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. * The tag `external/cwe/cwe-571` has been added to `java/equals-on-unrelated-types`. * The tag `readability` has been added to `java/missing-override-annotation`, `java/deprecated-call`, `java/inconsistent-javadoc-throws`, `java/unknown-javadoc-parameter`, `java/jdk-internal-api-access`, `java/underscore-identifier`, `java/misleading-indentation`, `java/inefficient-empty-string-test`, `java/non-static-nested-class`, `inefficient-string-constructor`, and `java/constants-only-interface`. @@ -15,3 +16,5 @@ category: queryMetadata * The tags `maintainability` and `useless-code` have been removed from `java/evaluation-to-constant`. * The tags `maintainability` and `readability` have been removed from `java/whitespace-contradicts-precedence`. * The tags `maintainability` and `useless-code` have been removed from `java/empty-container`. +* Adjusts the `@precision` from high to medium for `java/concatenated-command-line` because it is producing false positive alerts when the concatenated strings are hard-coded. +* Adjusts the `@security-severity` from 9.3 to 7.3 for `java/tainted-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. diff --git a/java/ql/src/codeql-pack.release.yml b/java/ql/src/codeql-pack.release.yml index 7eb901bae56..c4f0b07d533 100644 --- a/java/ql/src/codeql-pack.release.yml +++ b/java/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.6.0 diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index a0b518b6876..dc34cd46a86 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.5.3-dev +version: 1.6.0 groups: - java - queries diff --git a/javascript/ql/lib/CHANGELOG.md b/javascript/ql/lib/CHANGELOG.md index 0068a86fb4c..e2d82cba835 100644 --- a/javascript/ql/lib/CHANGELOG.md +++ b/javascript/ql/lib/CHANGELOG.md @@ -1,3 +1,15 @@ +## 2.6.6 + +### Minor Analysis Improvements + +* Calls to `sinon.match()` are no longer incorrectly identified as regular expression operations. +* Improved data flow tracking through middleware to handle default value and similar patterns. +* Added `req._parsedUrl` as a remote input source. +* Improved taint tracking through calls to `serialize-javascript`. +* Removed `encodeURI` and `escape` functions from the sanitizer list for request forgery. +* The JavaScript extractor now skips generated JavaScript files if the original TypeScript files are already present. It also skips any files in the output directory specified in the `compilerOptions` part of the `tsconfig.json` file. +* Added support for Axios instances in the `axios` module. + ## 2.6.5 ### Minor Analysis Improvements diff --git a/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md b/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md deleted file mode 100644 index baaf1611b77..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-03-axios-instance-support.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Added support for Axios instances in the `axios` module. diff --git a/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md b/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md deleted file mode 100644 index 16d81cb4cc3..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-05-skip-obviously-generated-files.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The JavaScript extractor now skips generated JavaScript files if the original TypeScript files are already present. It also skips any files in the output directory specified in the `compilerOptions` part of the `tsconfig.json` file. diff --git a/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md b/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md deleted file mode 100644 index ab91e9905af..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-13-remove-encodeuri.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Removed `encodeURI` and `escape` functions from the sanitizer list for request forgery. diff --git a/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md b/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md deleted file mode 100644 index 600aad8bafc..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-16-middleware-express.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved data flow tracking through middleware to handle default value and similar patterns. -* Added `req._parsedUrl` as a remote input source. diff --git a/javascript/ql/lib/change-notes/2025-06-16-serialize-js.md b/javascript/ql/lib/change-notes/2025-06-16-serialize-js.md deleted file mode 100644 index a89e0e19b6f..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-16-serialize-js.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Improved taint tracking through calls to `serialize-javascript`. diff --git a/javascript/ql/lib/change-notes/2025-06-20-sinon.md b/javascript/ql/lib/change-notes/2025-06-20-sinon.md deleted file mode 100644 index fd8b8e0ad07..00000000000 --- a/javascript/ql/lib/change-notes/2025-06-20-sinon.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Calls to `sinon.match()` are no longer incorrectly identified as regular expression operations. diff --git a/javascript/ql/lib/change-notes/released/2.6.6.md b/javascript/ql/lib/change-notes/released/2.6.6.md new file mode 100644 index 00000000000..f11e9d42d99 --- /dev/null +++ b/javascript/ql/lib/change-notes/released/2.6.6.md @@ -0,0 +1,11 @@ +## 2.6.6 + +### Minor Analysis Improvements + +* Calls to `sinon.match()` are no longer incorrectly identified as regular expression operations. +* Improved data flow tracking through middleware to handle default value and similar patterns. +* Added `req._parsedUrl` as a remote input source. +* Improved taint tracking through calls to `serialize-javascript`. +* Removed `encodeURI` and `escape` functions from the sanitizer list for request forgery. +* The JavaScript extractor now skips generated JavaScript files if the original TypeScript files are already present. It also skips any files in the output directory specified in the `compilerOptions` part of the `tsconfig.json` file. +* Added support for Axios instances in the `axios` module. diff --git a/javascript/ql/lib/codeql-pack.release.yml b/javascript/ql/lib/codeql-pack.release.yml index b29c290895c..305ff8cbbf2 100644 --- a/javascript/ql/lib/codeql-pack.release.yml +++ b/javascript/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.6.5 +lastReleaseVersion: 2.6.6 diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index b367ab88549..e9fe865ca12 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.6-dev +version: 2.6.6 groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/CHANGELOG.md b/javascript/ql/src/CHANGELOG.md index b6939ad5ec4..11615030c50 100644 --- a/javascript/ql/src/CHANGELOG.md +++ b/javascript/ql/src/CHANGELOG.md @@ -1,3 +1,18 @@ +## 1.7.0 + +### Query Metadata Changes + +* The `quality` tag has been added to multiple JavaScript quality queries, with tags for `reliability` or `maintainability` categories and their sub-categories. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* Added `reliability` tag to the `js/suspicious-method-name-declaration` query. +* Added `reliability` and `language-features` tags to the `js/template-syntax-in-string-literal` query. + +### Minor Analysis Improvements + +* The `js/loop-iteration-skipped-due-to-shifting` query now has the `reliability` tag. +* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when the return value of `splice` is used to decide whether to adjust the loop counter. +* Fixed false positives in the `js/template-syntax-in-string-literal` query where template syntax in string concatenation and "manual string interpolation" patterns were incorrectly flagged. +* The `js/useless-expression` query now correctly flags only the innermost expressions with no effect, avoiding duplicate alerts on compound expressions. + ## 1.6.2 No user-facing changes. diff --git a/javascript/ql/src/change-notes/2025-05-30-dom-property-access.md b/javascript/ql/src/change-notes/2025-05-30-dom-property-access.md deleted file mode 100644 index 2dcb16a8327..00000000000 --- a/javascript/ql/src/change-notes/2025-05-30-dom-property-access.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `js/useless-expression` query now correctly flags only the innermost expressions with no effect, avoiding duplicate alerts on compound expressions. diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md deleted file mode 100644 index 2716069fb71..00000000000 --- a/javascript/ql/src/change-notes/2025-06-12-loop-iteration-fix.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when the return value of `splice` is used to decide whether to adjust the loop counter. diff --git a/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md b/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md deleted file mode 100644 index 13b9fcf592a..00000000000 --- a/javascript/ql/src/change-notes/2025-06-12-loop-iteration.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `js/loop-iteration-skipped-due-to-shifting` query now has the `reliability` tag. diff --git a/javascript/ql/src/change-notes/2025-06-12-string-interpolation.md b/javascript/ql/src/change-notes/2025-06-12-string-interpolation.md deleted file mode 100644 index 446ecf0fcb2..00000000000 --- a/javascript/ql/src/change-notes/2025-06-12-string-interpolation.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* Fixed false positives in the `js/template-syntax-in-string-literal` query where template syntax in string concatenation and "manual string interpolation" patterns were incorrectly flagged. diff --git a/javascript/ql/src/change-notes/2025-06-12-suspicious-method-name.md b/javascript/ql/src/change-notes/2025-06-12-suspicious-method-name.md deleted file mode 100644 index dfee27ffdd3..00000000000 --- a/javascript/ql/src/change-notes/2025-06-12-suspicious-method-name.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Added `reliability` tag to the `js/suspicious-method-name-declaration` query. diff --git a/javascript/ql/src/change-notes/2025-06-12-template-syntax-metadata.md b/javascript/ql/src/change-notes/2025-06-12-template-syntax-metadata.md deleted file mode 100644 index f29f602095d..00000000000 --- a/javascript/ql/src/change-notes/2025-06-12-template-syntax-metadata.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* Added `reliability` and `language-features` tags to the `js/template-syntax-in-string-literal` query. diff --git a/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md b/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md deleted file mode 100644 index dedaba09d1d..00000000000 --- a/javascript/ql/src/change-notes/2025-06-16-mass-promotion.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: queryMetadata ---- -* The `quality` tag has been added to multiple JavaScript quality queries, with tags for `reliability` or `maintainability` categories and their sub-categories. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. diff --git a/javascript/ql/src/change-notes/released/1.7.0.md b/javascript/ql/src/change-notes/released/1.7.0.md new file mode 100644 index 00000000000..682a8b5d0c6 --- /dev/null +++ b/javascript/ql/src/change-notes/released/1.7.0.md @@ -0,0 +1,14 @@ +## 1.7.0 + +### Query Metadata Changes + +* The `quality` tag has been added to multiple JavaScript quality queries, with tags for `reliability` or `maintainability` categories and their sub-categories. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. +* Added `reliability` tag to the `js/suspicious-method-name-declaration` query. +* Added `reliability` and `language-features` tags to the `js/template-syntax-in-string-literal` query. + +### Minor Analysis Improvements + +* The `js/loop-iteration-skipped-due-to-shifting` query now has the `reliability` tag. +* Fixed false positives in the `js/loop-iteration-skipped-due-to-shifting` query when the return value of `splice` is used to decide whether to adjust the loop counter. +* Fixed false positives in the `js/template-syntax-in-string-literal` query where template syntax in string concatenation and "manual string interpolation" patterns were incorrectly flagged. +* The `js/useless-expression` query now correctly flags only the innermost expressions with no effect, avoiding duplicate alerts on compound expressions. diff --git a/javascript/ql/src/codeql-pack.release.yml b/javascript/ql/src/codeql-pack.release.yml index 5f5beb68311..d1184cc6750 100644 --- a/javascript/ql/src/codeql-pack.release.yml +++ b/javascript/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.6.2 +lastReleaseVersion: 1.7.0 diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 0bfacd0c21e..546308a70c7 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 1.6.3-dev +version: 1.7.0 groups: - javascript - queries diff --git a/misc/suite-helpers/CHANGELOG.md b/misc/suite-helpers/CHANGELOG.md index 534af566852..c7c1d20c642 100644 --- a/misc/suite-helpers/CHANGELOG.md +++ b/misc/suite-helpers/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/misc/suite-helpers/change-notes/released/1.0.26.md b/misc/suite-helpers/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/misc/suite-helpers/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/misc/suite-helpers/codeql-pack.release.yml b/misc/suite-helpers/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/misc/suite-helpers/codeql-pack.release.yml +++ b/misc/suite-helpers/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 848e808db34..1cfed45557b 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.26-dev +version: 1.0.26 groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/CHANGELOG.md b/python/ql/lib/CHANGELOG.md index 09dc9d983a8..9f915e24edc 100644 --- a/python/ql/lib/CHANGELOG.md +++ b/python/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.0.10 + +No user-facing changes. + ## 4.0.9 No user-facing changes. diff --git a/python/ql/lib/change-notes/released/4.0.10.md b/python/ql/lib/change-notes/released/4.0.10.md new file mode 100644 index 00000000000..5dd008b9fa1 --- /dev/null +++ b/python/ql/lib/change-notes/released/4.0.10.md @@ -0,0 +1,3 @@ +## 4.0.10 + +No user-facing changes. diff --git a/python/ql/lib/codeql-pack.release.yml b/python/ql/lib/codeql-pack.release.yml index 25b75788f99..df9695089ca 100644 --- a/python/ql/lib/codeql-pack.release.yml +++ b/python/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.0.9 +lastReleaseVersion: 4.0.10 diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index ffd394c2544..23e252fdf3d 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.10-dev +version: 4.0.10 groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/CHANGELOG.md b/python/ql/src/CHANGELOG.md index 292fda17c90..4a77f1a1d6d 100644 --- a/python/ql/src/CHANGELOG.md +++ b/python/ql/src/CHANGELOG.md @@ -1,3 +1,13 @@ +## 1.6.0 + +### Query Metadata Changes + +* The tag `quality` has been added to multiple Python quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. + +### Minor Analysis Improvements + +* The `py/iter-returns-non-self` query has been modernized, and no longer alerts for certain cases where an equivalent iterator is returned. + ## 1.5.2 ### Minor Analysis Improvements diff --git a/python/ql/src/change-notes/2025-05-23-iter-not-return-self.md b/python/ql/src/change-notes/2025-05-23-iter-not-return-self.md deleted file mode 100644 index 80b8313a72b..00000000000 --- a/python/ql/src/change-notes/2025-05-23-iter-not-return-self.md +++ /dev/null @@ -1,4 +0,0 @@ ---- -category: minorAnalysis ---- -* The `py/iter-returns-non-self` query has been modernized, and no longer alerts for certain cases where an equivalent iterator is returned. \ No newline at end of file diff --git a/python/ql/src/change-notes/2025-06-18-quality-query-metadata.md b/python/ql/src/change-notes/released/1.6.0.md similarity index 59% rename from python/ql/src/change-notes/2025-06-18-quality-query-metadata.md rename to python/ql/src/change-notes/released/1.6.0.md index 92533f7df75..72dd1bf2002 100644 --- a/python/ql/src/change-notes/2025-06-18-quality-query-metadata.md +++ b/python/ql/src/change-notes/released/1.6.0.md @@ -1,5 +1,9 @@ +## 1.6.0 ---- -category: queryMetadata ---- -* The tag `quality` has been added to multiple Python quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. \ No newline at end of file +### Query Metadata Changes + +* The tag `quality` has been added to multiple Python quality queries for consistency. They have all been given a tag for one of the two top-level categories `reliability` or `maintainability`, and a tag for a sub-category. See [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags) for more information about these categories. + +### Minor Analysis Improvements + +* The `py/iter-returns-non-self` query has been modernized, and no longer alerts for certain cases where an equivalent iterator is returned. diff --git a/python/ql/src/codeql-pack.release.yml b/python/ql/src/codeql-pack.release.yml index 7eb901bae56..c4f0b07d533 100644 --- a/python/ql/src/codeql-pack.release.yml +++ b/python/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.5.2 +lastReleaseVersion: 1.6.0 diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 2fa2d2204b9..0c32f4f2093 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.5.3-dev +version: 1.6.0 groups: - python - queries diff --git a/ruby/ql/lib/CHANGELOG.md b/ruby/ql/lib/CHANGELOG.md index cdd84b3aeeb..2a4d6f21375 100644 --- a/ruby/ql/lib/CHANGELOG.md +++ b/ruby/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 4.1.9 + +No user-facing changes. + ## 4.1.8 No user-facing changes. diff --git a/ruby/ql/lib/change-notes/released/4.1.9.md b/ruby/ql/lib/change-notes/released/4.1.9.md new file mode 100644 index 00000000000..94eac40d6e3 --- /dev/null +++ b/ruby/ql/lib/change-notes/released/4.1.9.md @@ -0,0 +1,3 @@ +## 4.1.9 + +No user-facing changes. diff --git a/ruby/ql/lib/codeql-pack.release.yml b/ruby/ql/lib/codeql-pack.release.yml index 8636017292c..4a8b9706277 100644 --- a/ruby/ql/lib/codeql-pack.release.yml +++ b/ruby/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 4.1.8 +lastReleaseVersion: 4.1.9 diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index ab4215ced20..40bb9be3252 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 4.1.9-dev +version: 4.1.9 groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/CHANGELOG.md b/ruby/ql/src/CHANGELOG.md index fcee47275f5..ef903e8d144 100644 --- a/ruby/ql/src/CHANGELOG.md +++ b/ruby/ql/src/CHANGELOG.md @@ -1,3 +1,10 @@ +## 1.4.0 + +### Query Metadata Changes + +* Update query metadata tags for `rb/database-query-in-loop` and `rb/useless-assignment-to-local` to align with the established +[Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags). + ## 1.3.2 No user-facing changes. diff --git a/ruby/ql/src/change-notes/2025-06-17-tagging.md b/ruby/ql/src/change-notes/released/1.4.0.md similarity index 88% rename from ruby/ql/src/change-notes/2025-06-17-tagging.md rename to ruby/ql/src/change-notes/released/1.4.0.md index 757e1c55577..2c71d9748b4 100644 --- a/ruby/ql/src/change-notes/2025-06-17-tagging.md +++ b/ruby/ql/src/change-notes/released/1.4.0.md @@ -1,5 +1,6 @@ ---- -category: queryMetadata ---- +## 1.4.0 + +### Query Metadata Changes + * Update query metadata tags for `rb/database-query-in-loop` and `rb/useless-assignment-to-local` to align with the established [Query file metadata and alert message style guide](https://github.com/github/codeql/blob/main/docs/query-metadata-style-guide.md#quality-query-sub-category-tags). diff --git a/ruby/ql/src/codeql-pack.release.yml b/ruby/ql/src/codeql-pack.release.yml index 86a9cb32d86..b8b2e97d508 100644 --- a/ruby/ql/src/codeql-pack.release.yml +++ b/ruby/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.3.2 +lastReleaseVersion: 1.4.0 diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index b6053c7a9ef..d5c59e42e0a 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.3.3-dev +version: 1.4.0 groups: - ruby - queries diff --git a/rust/ql/lib/CHANGELOG.md b/rust/ql/lib/CHANGELOG.md index 85c29db05c1..aaaa73ae07e 100644 --- a/rust/ql/lib/CHANGELOG.md +++ b/rust/ql/lib/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.1.11 + +### New Features + +* Initial public preview release. + ## 0.1.10 No user-facing changes. diff --git a/rust/ql/src/change-notes/2025-06-13-public-preview.md b/rust/ql/lib/change-notes/released/0.1.11.md similarity index 53% rename from rust/ql/src/change-notes/2025-06-13-public-preview.md rename to rust/ql/lib/change-notes/released/0.1.11.md index ab2250e3b58..58740d0b024 100644 --- a/rust/ql/src/change-notes/2025-06-13-public-preview.md +++ b/rust/ql/lib/change-notes/released/0.1.11.md @@ -1,4 +1,5 @@ ---- -category: newQuery ---- +## 0.1.11 + +### New Features + * Initial public preview release. diff --git a/rust/ql/lib/codeql-pack.release.yml b/rust/ql/lib/codeql-pack.release.yml index 30f5ca88be0..1d1688e8d61 100644 --- a/rust/ql/lib/codeql-pack.release.yml +++ b/rust/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.10 +lastReleaseVersion: 0.1.11 diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index e20992cbb0b..a559ad4266e 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.1.11-dev +version: 0.1.11 groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/CHANGELOG.md b/rust/ql/src/CHANGELOG.md index 1459910b5ee..ad73b7174f9 100644 --- a/rust/ql/src/CHANGELOG.md +++ b/rust/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 0.1.11 + +### New Queries + +* Initial public preview release. + ## 0.1.10 No user-facing changes. diff --git a/rust/ql/lib/change-notes/2025-06-13-public-preview.md b/rust/ql/src/change-notes/released/0.1.11.md similarity index 54% rename from rust/ql/lib/change-notes/2025-06-13-public-preview.md rename to rust/ql/src/change-notes/released/0.1.11.md index d60dc3315b8..04115f54f4c 100644 --- a/rust/ql/lib/change-notes/2025-06-13-public-preview.md +++ b/rust/ql/src/change-notes/released/0.1.11.md @@ -1,4 +1,5 @@ ---- -category: feature ---- +## 0.1.11 + +### New Queries + * Initial public preview release. diff --git a/rust/ql/src/codeql-pack.release.yml b/rust/ql/src/codeql-pack.release.yml index 30f5ca88be0..1d1688e8d61 100644 --- a/rust/ql/src/codeql-pack.release.yml +++ b/rust/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.1.10 +lastReleaseVersion: 0.1.11 diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 9f1b7148e38..03403d6aaf4 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.11-dev +version: 0.1.11 groups: - rust - queries diff --git a/shared/controlflow/CHANGELOG.md b/shared/controlflow/CHANGELOG.md index a9641b2d087..0109a7bd5a7 100644 --- a/shared/controlflow/CHANGELOG.md +++ b/shared/controlflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.10 + +No user-facing changes. + ## 2.0.9 No user-facing changes. diff --git a/shared/controlflow/change-notes/released/2.0.10.md b/shared/controlflow/change-notes/released/2.0.10.md new file mode 100644 index 00000000000..37310f107aa --- /dev/null +++ b/shared/controlflow/change-notes/released/2.0.10.md @@ -0,0 +1,3 @@ +## 2.0.10 + +No user-facing changes. diff --git a/shared/controlflow/codeql-pack.release.yml b/shared/controlflow/codeql-pack.release.yml index ce305265e33..96ea0220a69 100644 --- a/shared/controlflow/codeql-pack.release.yml +++ b/shared/controlflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.9 +lastReleaseVersion: 2.0.10 diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index 6325acc4c5b..e4a5a845477 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.10-dev +version: 2.0.10 groups: shared library: true dependencies: diff --git a/shared/dataflow/CHANGELOG.md b/shared/dataflow/CHANGELOG.md index 10cb758f6ea..128d8ccd0d4 100644 --- a/shared/dataflow/CHANGELOG.md +++ b/shared/dataflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.10 + +No user-facing changes. + ## 2.0.9 No user-facing changes. diff --git a/shared/dataflow/change-notes/released/2.0.10.md b/shared/dataflow/change-notes/released/2.0.10.md new file mode 100644 index 00000000000..37310f107aa --- /dev/null +++ b/shared/dataflow/change-notes/released/2.0.10.md @@ -0,0 +1,3 @@ +## 2.0.10 + +No user-facing changes. diff --git a/shared/dataflow/codeql-pack.release.yml b/shared/dataflow/codeql-pack.release.yml index ce305265e33..96ea0220a69 100644 --- a/shared/dataflow/codeql-pack.release.yml +++ b/shared/dataflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.9 +lastReleaseVersion: 2.0.10 diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 1e1736c81f6..146b0bcdc38 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.10-dev +version: 2.0.10 groups: shared library: true dependencies: diff --git a/shared/mad/CHANGELOG.md b/shared/mad/CHANGELOG.md index ac6be6596f7..01f4051da30 100644 --- a/shared/mad/CHANGELOG.md +++ b/shared/mad/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/mad/change-notes/released/1.0.26.md b/shared/mad/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/mad/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/mad/codeql-pack.release.yml b/shared/mad/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/mad/codeql-pack.release.yml +++ b/shared/mad/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index 0e8adfc89c2..c1c0f892106 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true dependencies: diff --git a/shared/quantum/CHANGELOG.md b/shared/quantum/CHANGELOG.md index d7831747b12..4ffbff1e0c4 100644 --- a/shared/quantum/CHANGELOG.md +++ b/shared/quantum/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.4 + +No user-facing changes. + ## 0.0.3 No user-facing changes. diff --git a/shared/quantum/change-notes/released/0.0.4.md b/shared/quantum/change-notes/released/0.0.4.md new file mode 100644 index 00000000000..eefe286a4d8 --- /dev/null +++ b/shared/quantum/change-notes/released/0.0.4.md @@ -0,0 +1,3 @@ +## 0.0.4 + +No user-facing changes. diff --git a/shared/quantum/codeql-pack.release.yml b/shared/quantum/codeql-pack.release.yml index a24b693d1e7..ec411a674bc 100644 --- a/shared/quantum/codeql-pack.release.yml +++ b/shared/quantum/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.3 +lastReleaseVersion: 0.0.4 diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index d3b36828ade..6d08eb0c2b8 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.4-dev +version: 0.0.4 groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/CHANGELOG.md b/shared/rangeanalysis/CHANGELOG.md index c06e99c5f7f..e0f22e5bc3a 100644 --- a/shared/rangeanalysis/CHANGELOG.md +++ b/shared/rangeanalysis/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/rangeanalysis/change-notes/released/1.0.26.md b/shared/rangeanalysis/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/rangeanalysis/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/rangeanalysis/codeql-pack.release.yml b/shared/rangeanalysis/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/rangeanalysis/codeql-pack.release.yml +++ b/shared/rangeanalysis/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 059cf59c2bf..05741c7ad61 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true dependencies: diff --git a/shared/regex/CHANGELOG.md b/shared/regex/CHANGELOG.md index 1a63aa6e43a..aced064cc7a 100644 --- a/shared/regex/CHANGELOG.md +++ b/shared/regex/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/regex/change-notes/released/1.0.26.md b/shared/regex/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/regex/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/regex/codeql-pack.release.yml b/shared/regex/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/regex/codeql-pack.release.yml +++ b/shared/regex/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index a98c2f6003b..f6b25b571c3 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true dependencies: diff --git a/shared/ssa/CHANGELOG.md b/shared/ssa/CHANGELOG.md index fff1d5b89e2..2359940bf9a 100644 --- a/shared/ssa/CHANGELOG.md +++ b/shared/ssa/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.2 + +No user-facing changes. + ## 2.0.1 No user-facing changes. diff --git a/shared/ssa/change-notes/released/2.0.2.md b/shared/ssa/change-notes/released/2.0.2.md new file mode 100644 index 00000000000..862ef0e9df7 --- /dev/null +++ b/shared/ssa/change-notes/released/2.0.2.md @@ -0,0 +1,3 @@ +## 2.0.2 + +No user-facing changes. diff --git a/shared/ssa/codeql-pack.release.yml b/shared/ssa/codeql-pack.release.yml index fe974a4dbf3..81c7f1dbc13 100644 --- a/shared/ssa/codeql-pack.release.yml +++ b/shared/ssa/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.1 +lastReleaseVersion: 2.0.2 diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 4c73efe3912..2880b7ada2a 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.2-dev +version: 2.0.2 groups: shared library: true dependencies: diff --git a/shared/threat-models/CHANGELOG.md b/shared/threat-models/CHANGELOG.md index 3fa1fa4c69b..0d814dec385 100644 --- a/shared/threat-models/CHANGELOG.md +++ b/shared/threat-models/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/threat-models/change-notes/released/1.0.26.md b/shared/threat-models/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/threat-models/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/threat-models/codeql-pack.release.yml b/shared/threat-models/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/threat-models/codeql-pack.release.yml +++ b/shared/threat-models/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index fda94a8f4ff..0427de7fde8 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.26-dev +version: 1.0.26 library: true groups: shared dataExtensions: diff --git a/shared/tutorial/CHANGELOG.md b/shared/tutorial/CHANGELOG.md index a5290f62bb3..92ac100d5c8 100644 --- a/shared/tutorial/CHANGELOG.md +++ b/shared/tutorial/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/tutorial/change-notes/released/1.0.26.md b/shared/tutorial/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/tutorial/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/tutorial/codeql-pack.release.yml b/shared/tutorial/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/tutorial/codeql-pack.release.yml +++ b/shared/tutorial/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 2ecf5730d21..62664382a22 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.26-dev +version: 1.0.26 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/CHANGELOG.md b/shared/typeflow/CHANGELOG.md index 2283f741ca7..7fa72fbd343 100644 --- a/shared/typeflow/CHANGELOG.md +++ b/shared/typeflow/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/typeflow/change-notes/released/1.0.26.md b/shared/typeflow/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/typeflow/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/typeflow/codeql-pack.release.yml b/shared/typeflow/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/typeflow/codeql-pack.release.yml +++ b/shared/typeflow/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index 119a36067be..b3793d6d29e 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true dependencies: diff --git a/shared/typeinference/CHANGELOG.md b/shared/typeinference/CHANGELOG.md index ad2e63eb470..8f58f5145db 100644 --- a/shared/typeinference/CHANGELOG.md +++ b/shared/typeinference/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.0.7 + +No user-facing changes. + ## 0.0.6 No user-facing changes. diff --git a/shared/typeinference/change-notes/released/0.0.7.md b/shared/typeinference/change-notes/released/0.0.7.md new file mode 100644 index 00000000000..84da6f18c42 --- /dev/null +++ b/shared/typeinference/change-notes/released/0.0.7.md @@ -0,0 +1,3 @@ +## 0.0.7 + +No user-facing changes. diff --git a/shared/typeinference/codeql-pack.release.yml b/shared/typeinference/codeql-pack.release.yml index cf398ce02aa..a2a5484910b 100644 --- a/shared/typeinference/codeql-pack.release.yml +++ b/shared/typeinference/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 0.0.6 +lastReleaseVersion: 0.0.7 diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 32fd6de02e8..24d2c4a200a 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.7-dev +version: 0.0.7 groups: shared library: true dependencies: diff --git a/shared/typetracking/CHANGELOG.md b/shared/typetracking/CHANGELOG.md index 6e434da1f77..58e9c8119af 100644 --- a/shared/typetracking/CHANGELOG.md +++ b/shared/typetracking/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.10 + +No user-facing changes. + ## 2.0.9 No user-facing changes. diff --git a/shared/typetracking/change-notes/released/2.0.10.md b/shared/typetracking/change-notes/released/2.0.10.md new file mode 100644 index 00000000000..37310f107aa --- /dev/null +++ b/shared/typetracking/change-notes/released/2.0.10.md @@ -0,0 +1,3 @@ +## 2.0.10 + +No user-facing changes. diff --git a/shared/typetracking/codeql-pack.release.yml b/shared/typetracking/codeql-pack.release.yml index ce305265e33..96ea0220a69 100644 --- a/shared/typetracking/codeql-pack.release.yml +++ b/shared/typetracking/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.9 +lastReleaseVersion: 2.0.10 diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 193e743290e..23c2d2f5995 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.10-dev +version: 2.0.10 groups: shared library: true dependencies: diff --git a/shared/typos/CHANGELOG.md b/shared/typos/CHANGELOG.md index 62be8d62137..47359494704 100644 --- a/shared/typos/CHANGELOG.md +++ b/shared/typos/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/typos/change-notes/released/1.0.26.md b/shared/typos/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/typos/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/typos/codeql-pack.release.yml b/shared/typos/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/typos/codeql-pack.release.yml +++ b/shared/typos/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 205c84402c0..0af8ef23422 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/CHANGELOG.md b/shared/util/CHANGELOG.md index e9eb55238ef..c8832ace022 100644 --- a/shared/util/CHANGELOG.md +++ b/shared/util/CHANGELOG.md @@ -1,3 +1,7 @@ +## 2.0.13 + +No user-facing changes. + ## 2.0.12 No user-facing changes. diff --git a/shared/util/change-notes/released/2.0.13.md b/shared/util/change-notes/released/2.0.13.md new file mode 100644 index 00000000000..39a24682b50 --- /dev/null +++ b/shared/util/change-notes/released/2.0.13.md @@ -0,0 +1,3 @@ +## 2.0.13 + +No user-facing changes. diff --git a/shared/util/codeql-pack.release.yml b/shared/util/codeql-pack.release.yml index b856d9a13f2..30d169d6eb8 100644 --- a/shared/util/codeql-pack.release.yml +++ b/shared/util/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 2.0.12 +lastReleaseVersion: 2.0.13 diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 5ed3783fded..19c7e5b61dd 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.13-dev +version: 2.0.13 groups: shared library: true dependencies: null diff --git a/shared/xml/CHANGELOG.md b/shared/xml/CHANGELOG.md index 1af448dd16d..a201e0d013f 100644 --- a/shared/xml/CHANGELOG.md +++ b/shared/xml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/xml/change-notes/released/1.0.26.md b/shared/xml/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/xml/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/xml/codeql-pack.release.yml b/shared/xml/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/xml/codeql-pack.release.yml +++ b/shared/xml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 3c979618613..9e6cdf57613 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true dependencies: diff --git a/shared/yaml/CHANGELOG.md b/shared/yaml/CHANGELOG.md index 7944d8a4a2f..74fcb889c9c 100644 --- a/shared/yaml/CHANGELOG.md +++ b/shared/yaml/CHANGELOG.md @@ -1,3 +1,7 @@ +## 1.0.26 + +No user-facing changes. + ## 1.0.25 No user-facing changes. diff --git a/shared/yaml/change-notes/released/1.0.26.md b/shared/yaml/change-notes/released/1.0.26.md new file mode 100644 index 00000000000..4920e2b2435 --- /dev/null +++ b/shared/yaml/change-notes/released/1.0.26.md @@ -0,0 +1,3 @@ +## 1.0.26 + +No user-facing changes. diff --git a/shared/yaml/codeql-pack.release.yml b/shared/yaml/codeql-pack.release.yml index a5a44030e85..125d169e44f 100644 --- a/shared/yaml/codeql-pack.release.yml +++ b/shared/yaml/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.0.25 +lastReleaseVersion: 1.0.26 diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 4dad8cfd7f9..08e295a1b69 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.26-dev +version: 1.0.26 groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/CHANGELOG.md b/swift/ql/lib/CHANGELOG.md index bc63ecb86b4..627463a2cac 100644 --- a/swift/ql/lib/CHANGELOG.md +++ b/swift/ql/lib/CHANGELOG.md @@ -1,3 +1,7 @@ +## 5.0.2 + +No user-facing changes. + ## 5.0.1 ### Minor Analysis Improvements diff --git a/swift/ql/lib/change-notes/released/5.0.2.md b/swift/ql/lib/change-notes/released/5.0.2.md new file mode 100644 index 00000000000..3f921f9ca8b --- /dev/null +++ b/swift/ql/lib/change-notes/released/5.0.2.md @@ -0,0 +1,3 @@ +## 5.0.2 + +No user-facing changes. diff --git a/swift/ql/lib/codeql-pack.release.yml b/swift/ql/lib/codeql-pack.release.yml index ae7df5e18b7..3940dee0f32 100644 --- a/swift/ql/lib/codeql-pack.release.yml +++ b/swift/ql/lib/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 5.0.1 +lastReleaseVersion: 5.0.2 diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 68ce7d4f490..639dcd6ec40 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 5.0.2-dev +version: 5.0.2 groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/CHANGELOG.md b/swift/ql/src/CHANGELOG.md index 54ed582d8d9..5f5f43bafae 100644 --- a/swift/ql/src/CHANGELOG.md +++ b/swift/ql/src/CHANGELOG.md @@ -1,3 +1,9 @@ +## 1.2.0 + +### Query Metadata Changes + +* Adjusts the `@security-severity` from 9.3 to 7.3 for `swift/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. + ## 1.1.5 No user-facing changes. diff --git a/swift/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md b/swift/ql/src/change-notes/released/1.2.0.md similarity index 59% rename from swift/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md rename to swift/ql/src/change-notes/released/1.2.0.md index 43be14dc8eb..fddc229c985 100644 --- a/swift/ql/src/change-notes/2025-06-06-reduce-CWE-134-for-memory-safe-languages.md +++ b/swift/ql/src/change-notes/released/1.2.0.md @@ -1,4 +1,5 @@ ---- -category: queryMetadata ---- -* Adjusts the `@security-severity` from 9.3 to 7.3 for `swift/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. \ No newline at end of file +## 1.2.0 + +### Query Metadata Changes + +* Adjusts the `@security-severity` from 9.3 to 7.3 for `swift/uncontrolled-format-string` to align `CWE-134` severity for memory safe languages to better reflect their impact. diff --git a/swift/ql/src/codeql-pack.release.yml b/swift/ql/src/codeql-pack.release.yml index df39a9de059..75430e73d1c 100644 --- a/swift/ql/src/codeql-pack.release.yml +++ b/swift/ql/src/codeql-pack.release.yml @@ -1,2 +1,2 @@ --- -lastReleaseVersion: 1.1.5 +lastReleaseVersion: 1.2.0 diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index b5bf65254e8..562310fcbe3 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.1.6-dev +version: 1.2.0 groups: - swift - queries From 54bfde9b7af86accf055d64d4bc485d0aedbb531 Mon Sep 17 00:00:00 2001 From: Asger F Date: Tue, 24 Jun 2025 11:22:37 +0200 Subject: [PATCH 248/340] Update javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../change-notes/2025-06-23-remove-legacy-actions-queries.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md b/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md index 412a941b878..628ad8b083b 100644 --- a/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md +++ b/javascript/ql/src/change-notes/2025-06-23-remove-legacy-actions-queries.md @@ -3,5 +3,5 @@ category: minorAnalysis --- * Removed three queries from the JS qlpack, which have been superseded by newer queries that are part of the Actions qlpack: * `js/actions/pull-request-target` has been superseded by `actions/untrusted-checkout/{medium,high,critical}` - * `js/actions/actions-artifact-leak` has been supersded by `actions/secrets-in-artifacts` + * `js/actions/actions-artifact-leak` has been superseded by `actions/secrets-in-artifacts` * `js/actions/command-injection` has been superseded by `actions/command-injection/{medium,critical}` From 0902ca0605dee0899d201a5693bc8dab8e604b1c Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 24 Jun 2025 11:37:07 +0200 Subject: [PATCH 249/340] JS: address copilot suggestions --- .../CommandInjection.expected | 77 +++++++++---------- .../CWE-078/CommandInjection/execa.js | 7 +- 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected index 707be5ce452..22394ec4cb8 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/CommandInjection.expected @@ -33,25 +33,24 @@ | execa.js:23:17:23:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:23:17:23:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | | execa.js:24:17:24:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:24:17:24:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | | execa.js:25:17:25:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:25:17:25:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | -| execa.js:26:17:26:19 | cmd | execa.js:6:25:6:31 | req.url | execa.js:26:17:26:19 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:27:15:27:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:27:15:27:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | | execa.js:28:15:28:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:28:15:28:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | -| execa.js:29:15:29:17 | cmd | execa.js:6:25:6:31 | req.url | execa.js:29:15:29:17 | cmd | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:30:24:30:47 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:30:24:30:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:30:24:30:47 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:30:24:30:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:30:24:30:47 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:30:24:30:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:30:24:30:47 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:30:24:30:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | | execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | | execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | | execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | | execa.js:31:24:31:47 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:31:24:31:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | -| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | -| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | -| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | -| execa.js:32:24:32:47 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:32:24:32:47 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | +| execa.js:33:22:33:45 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:33:22:33:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | +| execa.js:33:22:33:45 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:33:22:33:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | +| execa.js:33:22:33:45 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:33:22:33:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | +| execa.js:33:22:33:45 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:33:22:33:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | | execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | | execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | | execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | | execa.js:34:22:34:45 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:34:22:34:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | -| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:6:25:6:31 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:6:25:6:31 | req.url | user-provided value | -| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:7:26:7:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:7:26:7:32 | req.url | user-provided value | -| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:8:26:8:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:8:26:8:32 | req.url | user-provided value | -| execa.js:35:22:35:45 | cmd + a ... + arg3 | execa.js:9:26:9:32 | req.url | execa.js:35:22:35:45 | cmd + a ... + arg3 | This command line depends on a $@. | execa.js:9:26:9:32 | req.url | user-provided value | | form-parsers.js:9:8:9:39 | "touch ... nalname | form-parsers.js:9:19:9:26 | req.file | form-parsers.js:9:8:9:39 | "touch ... nalname | This command line depends on a $@. | form-parsers.js:9:19:9:26 | req.file | user-provided value | | form-parsers.js:14:10:14:37 | "touch ... nalname | form-parsers.js:13:3:13:11 | req.files | form-parsers.js:14:10:14:37 | "touch ... nalname | This command line depends on a $@. | form-parsers.js:13:3:13:11 | req.files | user-provided value | | form-parsers.js:25:10:25:28 | "touch " + filename | form-parsers.js:24:48:24:55 | filename | form-parsers.js:25:10:25:28 | "touch " + filename | This command line depends on a $@. | form-parsers.js:24:48:24:55 | filename | user-provided value | @@ -149,49 +148,48 @@ edges | execa.js:6:9:6:54 | cmd | execa.js:23:17:23:19 | cmd | provenance | | | execa.js:6:9:6:54 | cmd | execa.js:24:17:24:19 | cmd | provenance | | | execa.js:6:9:6:54 | cmd | execa.js:25:17:25:19 | cmd | provenance | | -| execa.js:6:9:6:54 | cmd | execa.js:26:17:26:19 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:27:15:27:17 | cmd | provenance | | | execa.js:6:9:6:54 | cmd | execa.js:28:15:28:17 | cmd | provenance | | -| execa.js:6:9:6:54 | cmd | execa.js:29:15:29:17 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:30:24:30:26 | cmd | provenance | | | execa.js:6:9:6:54 | cmd | execa.js:31:24:31:26 | cmd | provenance | | -| execa.js:6:9:6:54 | cmd | execa.js:32:24:32:26 | cmd | provenance | | +| execa.js:6:9:6:54 | cmd | execa.js:33:22:33:24 | cmd | provenance | | | execa.js:6:9:6:54 | cmd | execa.js:34:22:34:24 | cmd | provenance | | -| execa.js:6:9:6:54 | cmd | execa.js:35:22:35:24 | cmd | provenance | | | execa.js:6:15:6:38 | url.par ... , true) | execa.js:6:9:6:54 | cmd | provenance | | | execa.js:6:25:6:31 | req.url | execa.js:6:15:6:38 | url.par ... , true) | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:30:30:30:33 | arg1 | provenance | | | execa.js:7:9:7:53 | arg1 | execa.js:31:30:31:33 | arg1 | provenance | | -| execa.js:7:9:7:53 | arg1 | execa.js:32:30:32:33 | arg1 | provenance | | +| execa.js:7:9:7:53 | arg1 | execa.js:33:28:33:31 | arg1 | provenance | | | execa.js:7:9:7:53 | arg1 | execa.js:34:28:34:31 | arg1 | provenance | | -| execa.js:7:9:7:53 | arg1 | execa.js:35:28:35:31 | arg1 | provenance | | | execa.js:7:16:7:39 | url.par ... , true) | execa.js:7:9:7:53 | arg1 | provenance | | | execa.js:7:26:7:32 | req.url | execa.js:7:16:7:39 | url.par ... , true) | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:30:37:30:40 | arg2 | provenance | | | execa.js:8:9:8:53 | arg2 | execa.js:31:37:31:40 | arg2 | provenance | | -| execa.js:8:9:8:53 | arg2 | execa.js:32:37:32:40 | arg2 | provenance | | +| execa.js:8:9:8:53 | arg2 | execa.js:33:35:33:38 | arg2 | provenance | | | execa.js:8:9:8:53 | arg2 | execa.js:34:35:34:38 | arg2 | provenance | | -| execa.js:8:9:8:53 | arg2 | execa.js:35:35:35:38 | arg2 | provenance | | | execa.js:8:16:8:39 | url.par ... , true) | execa.js:8:9:8:53 | arg2 | provenance | | | execa.js:8:26:8:32 | req.url | execa.js:8:16:8:39 | url.par ... , true) | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:30:44:30:47 | arg3 | provenance | | | execa.js:9:9:9:53 | arg3 | execa.js:31:44:31:47 | arg3 | provenance | | -| execa.js:9:9:9:53 | arg3 | execa.js:32:44:32:47 | arg3 | provenance | | +| execa.js:9:9:9:53 | arg3 | execa.js:33:42:33:45 | arg3 | provenance | | | execa.js:9:9:9:53 | arg3 | execa.js:34:42:34:45 | arg3 | provenance | | -| execa.js:9:9:9:53 | arg3 | execa.js:35:42:35:45 | arg3 | provenance | | | execa.js:9:16:9:39 | url.par ... , true) | execa.js:9:9:9:53 | arg3 | provenance | | | execa.js:9:26:9:32 | req.url | execa.js:9:16:9:39 | url.par ... , true) | provenance | | +| execa.js:30:24:30:26 | cmd | execa.js:30:24:30:47 | cmd + a ... + arg3 | provenance | | +| execa.js:30:30:30:33 | arg1 | execa.js:30:24:30:47 | cmd + a ... + arg3 | provenance | | +| execa.js:30:37:30:40 | arg2 | execa.js:30:24:30:47 | cmd + a ... + arg3 | provenance | | +| execa.js:30:44:30:47 | arg3 | execa.js:30:24:30:47 | cmd + a ... + arg3 | provenance | | | execa.js:31:24:31:26 | cmd | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | | execa.js:31:30:31:33 | arg1 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | | execa.js:31:37:31:40 | arg2 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | | execa.js:31:44:31:47 | arg3 | execa.js:31:24:31:47 | cmd + a ... + arg3 | provenance | | -| execa.js:32:24:32:26 | cmd | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | -| execa.js:32:30:32:33 | arg1 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | -| execa.js:32:37:32:40 | arg2 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | -| execa.js:32:44:32:47 | arg3 | execa.js:32:24:32:47 | cmd + a ... + arg3 | provenance | | +| execa.js:33:22:33:24 | cmd | execa.js:33:22:33:45 | cmd + a ... + arg3 | provenance | | +| execa.js:33:28:33:31 | arg1 | execa.js:33:22:33:45 | cmd + a ... + arg3 | provenance | | +| execa.js:33:35:33:38 | arg2 | execa.js:33:22:33:45 | cmd + a ... + arg3 | provenance | | +| execa.js:33:42:33:45 | arg3 | execa.js:33:22:33:45 | cmd + a ... + arg3 | provenance | | | execa.js:34:22:34:24 | cmd | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | | execa.js:34:28:34:31 | arg1 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | | execa.js:34:35:34:38 | arg2 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | | execa.js:34:42:34:45 | arg3 | execa.js:34:22:34:45 | cmd + a ... + arg3 | provenance | | -| execa.js:35:22:35:24 | cmd | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | -| execa.js:35:28:35:31 | arg1 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | -| execa.js:35:35:35:38 | arg2 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | -| execa.js:35:42:35:45 | arg3 | execa.js:35:22:35:45 | cmd + a ... + arg3 | provenance | | | form-parsers.js:9:19:9:26 | req.file | form-parsers.js:9:8:9:39 | "touch ... nalname | provenance | | | form-parsers.js:13:3:13:11 | req.files | form-parsers.js:13:21:13:24 | file | provenance | | | form-parsers.js:13:21:13:24 | file | form-parsers.js:14:21:14:24 | file | provenance | | @@ -317,29 +315,28 @@ nodes | execa.js:23:17:23:19 | cmd | semmle.label | cmd | | execa.js:24:17:24:19 | cmd | semmle.label | cmd | | execa.js:25:17:25:19 | cmd | semmle.label | cmd | -| execa.js:26:17:26:19 | cmd | semmle.label | cmd | +| execa.js:27:15:27:17 | cmd | semmle.label | cmd | | execa.js:28:15:28:17 | cmd | semmle.label | cmd | -| execa.js:29:15:29:17 | cmd | semmle.label | cmd | +| execa.js:30:24:30:26 | cmd | semmle.label | cmd | +| execa.js:30:24:30:47 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:30:30:30:33 | arg1 | semmle.label | arg1 | +| execa.js:30:37:30:40 | arg2 | semmle.label | arg2 | +| execa.js:30:44:30:47 | arg3 | semmle.label | arg3 | | execa.js:31:24:31:26 | cmd | semmle.label | cmd | | execa.js:31:24:31:47 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | | execa.js:31:30:31:33 | arg1 | semmle.label | arg1 | | execa.js:31:37:31:40 | arg2 | semmle.label | arg2 | | execa.js:31:44:31:47 | arg3 | semmle.label | arg3 | -| execa.js:32:24:32:26 | cmd | semmle.label | cmd | -| execa.js:32:24:32:47 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | -| execa.js:32:30:32:33 | arg1 | semmle.label | arg1 | -| execa.js:32:37:32:40 | arg2 | semmle.label | arg2 | -| execa.js:32:44:32:47 | arg3 | semmle.label | arg3 | +| execa.js:33:22:33:24 | cmd | semmle.label | cmd | +| execa.js:33:22:33:45 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | +| execa.js:33:28:33:31 | arg1 | semmle.label | arg1 | +| execa.js:33:35:33:38 | arg2 | semmle.label | arg2 | +| execa.js:33:42:33:45 | arg3 | semmle.label | arg3 | | execa.js:34:22:34:24 | cmd | semmle.label | cmd | | execa.js:34:22:34:45 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | | execa.js:34:28:34:31 | arg1 | semmle.label | arg1 | | execa.js:34:35:34:38 | arg2 | semmle.label | arg2 | | execa.js:34:42:34:45 | arg3 | semmle.label | arg3 | -| execa.js:35:22:35:24 | cmd | semmle.label | cmd | -| execa.js:35:22:35:45 | cmd + a ... + arg3 | semmle.label | cmd + a ... + arg3 | -| execa.js:35:28:35:31 | arg1 | semmle.label | arg1 | -| execa.js:35:35:35:38 | arg2 | semmle.label | arg2 | -| execa.js:35:42:35:45 | arg3 | semmle.label | arg3 | | form-parsers.js:9:8:9:39 | "touch ... nalname | semmle.label | "touch ... nalname | | form-parsers.js:9:19:9:26 | req.file | semmle.label | req.file | | form-parsers.js:13:3:13:11 | req.files | semmle.label | req.files | diff --git a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js index 55c8ff95938..ed7f8832f9c 100644 --- a/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js +++ b/javascript/ql/test/query-tests/Security/CWE-078/CommandInjection/execa.js @@ -16,13 +16,12 @@ http.createServer(async function (req, res) { $.sync`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert $.sync`ssh ${arg1} ${arg2} ${arg3}`; // safely escapes variables, preventing shell injection. - await $({ shell: true })`${cmd} ${arg1} ${arg2} ${arg3}` // $Alert - await $({ shell: false })`${cmd} ${arg1} ${arg2} ${arg3}` // $Alert - await $({ shell: false })`ssh ${arg1} ${arg2} ${arg3}` // safely escapes variables, preventing shell injection. + await $({ shell: true })`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + await $({ shell: false })`${cmd} ${arg1} ${arg2} ${arg3}`; // $Alert + await $({ shell: false })`ssh ${arg1} ${arg2} ${arg3}`; // safely escapes variables, preventing shell injection. await execa(cmd, [arg1, arg2, arg3]); // $Alert await execa(cmd, { shell: true }); // $Alert - await execa(cmd, { shell: true }); // $Alert await execa(cmd, [arg1, arg2, arg3], { shell: true }); // $Alert execaSync(cmd, [arg1, arg2, arg3]); // $Alert From e1fc138670b3130da7b8e2bae52edf5e5e91d844 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Tue, 24 Jun 2025 11:29:36 +0200 Subject: [PATCH 250/340] QL4QL: Extend ql/inline-overlay-caller --- ql/ql/src/codeql_ql/ast/Ast.qll | 11 +++++++++++ ql/ql/src/queries/overlay/InlineOverlayCaller.ql | 5 +++-- .../InlineOverlayCaller/InlineOverlayCaller.expected | 2 +- .../test/queries/overlay/InlineOverlayCaller/Test.qll | 4 ++++ 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/ql/ql/src/codeql_ql/ast/Ast.qll b/ql/ql/src/codeql_ql/ast/Ast.qll index 1e3ac4e8c82..89bdf14d4b2 100644 --- a/ql/ql/src/codeql_ql/ast/Ast.qll +++ b/ql/ql/src/codeql_ql/ast/Ast.qll @@ -2542,6 +2542,10 @@ private class CallerArg extends AnnotationArg { CallerArg() { this.getValue() = "caller" } } +private class CallerQArg extends AnnotationArg { + CallerQArg() { this.getValue() = "caller?" } +} + private class LocalArg extends AnnotationArg { LocalArg() { this.getValue() = "local" } } @@ -2616,6 +2620,13 @@ class OverlayCaller extends Annotation { override string toString() { result = "overlay[caller]" } } +/** An `overlay[caller?]` annotation. */ +class OverlayCallerQ extends Annotation { + OverlayCallerQ() { this.getName() = "overlay" and this.getArgs(0) instanceof CallerQArg } + + override string toString() { result = "overlay[caller?]" } +} + /** An `overlay[local]` annotation. */ class OverlayLocal extends Annotation { OverlayLocal() { this.getName() = "overlay" and this.getArgs(0) instanceof LocalArg } diff --git a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql index d27a0ade9bb..0853dfde830 100644 --- a/ql/ql/src/queries/overlay/InlineOverlayCaller.ql +++ b/ql/ql/src/queries/overlay/InlineOverlayCaller.ql @@ -31,11 +31,12 @@ where mayBeLocal(p) and p.getAnAnnotation() instanceof Inline and not p.getAnAnnotation() instanceof OverlayCaller and + not p.getAnAnnotation() instanceof OverlayCallerQ and not p.isPrivate() select p, "This possibly local non-private inline predicate will not " + "be inlined across the overlay frontier. This may negatively " + "affect evaluation performance. Consider adding an " + - "`overlay[caller]` annotation to allow inlining across the " + - "overlay frontier. Note that adding an `overlay[caller]` " + + "`overlay[caller]` or `overlay[caller?]` annotation to allow inlining across the " + + "overlay frontier. Note that adding an `overlay[caller]` or `overlay[caller?]` " + "annotation affects semantics under overlay evaluation." diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected index d89f1dcb8ef..5075797c0dd 100644 --- a/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/InlineOverlayCaller.expected @@ -1 +1 @@ -| Test.qll:7:11:7:13 | ClasslessPredicate foo | This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an `overlay[caller]` annotation to allow inlining across the overlay frontier. Note that adding an `overlay[caller]` annotation affects semantics under overlay evaluation. | +| Test.qll:7:11:7:13 | ClasslessPredicate foo | This possibly local non-private inline predicate will not be inlined across the overlay frontier. This may negatively affect evaluation performance. Consider adding an `overlay[caller]` or `overlay[caller?]` annotation to allow inlining across the overlay frontier. Note that adding an `overlay[caller]` or `overlay[caller?]` annotation affects semantics under overlay evaluation. | diff --git a/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll index 3e72490ebb0..e25577d91a1 100644 --- a/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll +++ b/ql/ql/test/queries/overlay/InlineOverlayCaller/Test.qll @@ -12,3 +12,7 @@ predicate bar(int x) { x = 43 } pragma[inline] private predicate baz(int x) { x = 44 } + +overlay[caller?] +pragma[inline] +predicate baw(int x) { x = 45 } From 96dcdf94af15a9727ef84429d3c3630dac521ea6 Mon Sep 17 00:00:00 2001 From: Geoffrey White <40627776+geoffw0@users.noreply.github.com> Date: Tue, 24 Jun 2025 11:31:34 +0100 Subject: [PATCH 251/340] Rust: Change note. --- rust/ql/lib/change-notes/2025-06-24-type-inference.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 rust/ql/lib/change-notes/2025-06-24-type-inference.md diff --git a/rust/ql/lib/change-notes/2025-06-24-type-inference.md b/rust/ql/lib/change-notes/2025-06-24-type-inference.md new file mode 100644 index 00000000000..5e3fd6fc53d --- /dev/null +++ b/rust/ql/lib/change-notes/2025-06-24-type-inference.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added type inference for `for` loops and array expressions. From 79a9d7def8d23d62508692aa5eb223aa81e1527f Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Tue, 24 Jun 2025 12:41:22 +0200 Subject: [PATCH 252/340] JS: removed `execa` parts from `SystemCommandExecutors` and moved it to `Execa.qll` --- .../semmle/javascript/frameworks/Execa.qll | 85 +++++++++++++++++++ .../frameworks/SystemCommandExecutors.qll | 13 --- 2 files changed, 85 insertions(+), 13 deletions(-) diff --git a/javascript/ql/lib/semmle/javascript/frameworks/Execa.qll b/javascript/ql/lib/semmle/javascript/frameworks/Execa.qll index 624b21c5dac..2ef2fcde386 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/Execa.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/Execa.qll @@ -58,6 +58,9 @@ module Execa { or this = API::moduleImport("execa").getMember("execaSync").getACall() and isSync = true + or + this = API::moduleImport("execa").getACall() and + isSync = false } } @@ -208,4 +211,86 @@ module Execa { private predicate isExecaShellEnable(API::Node n) { n.getMember("shell").asSink().asExpr().(BooleanLiteral).getValue() = "true" } + + /** + * A call to `execa.node` + */ + class ExecaNodeCall extends SystemCommandExecution, API::CallNode { + ExecaNodeCall() { this = API::moduleImport("execa").getMember("node").getACall() } + + override DataFlow::Node getACommandArgument() { result = this.getArgument(0) } + + override predicate isShellInterpreted(DataFlow::Node arg) { none() } + + override DataFlow::Node getArgumentList() { + result = this.getArgument(1) and + not result.asExpr() instanceof ObjectExpr + } + + override predicate isSync() { none() } + + override DataFlow::Node getOptionsArg() { + result = this.getLastArgument() and + result.asExpr() instanceof ObjectExpr + } + } + + /** + * A call to `execa.stdout`, `execa.stderr`, or `execa.sync` + */ + class ExecaStreamCall extends SystemCommandExecution, API::CallNode { + string methodName; + + ExecaStreamCall() { + methodName in ["stdout", "stderr", "sync"] and + this = API::moduleImport("execa").getMember(methodName).getACall() + } + + override DataFlow::Node getACommandArgument() { result = this.getArgument(0) } + + override predicate isShellInterpreted(DataFlow::Node arg) { + arg = this.getArgument(0) and + isExecaShellEnable(this.getParameter([1, 2])) + } + + override DataFlow::Node getArgumentList() { + result = this.getArgument(1) and + not result.asExpr() instanceof ObjectExpr + } + + override predicate isSync() { methodName = "sync" } + + override DataFlow::Node getOptionsArg() { + result = this.getLastArgument() and + result.asExpr() instanceof ObjectExpr + } + } + + /** + * A call to `execa.shell` or `execa.shellSync` + */ + class ExecaShellCall extends SystemCommandExecution, API::CallNode { + boolean sync; + + ExecaShellCall() { + this = API::moduleImport("execa").getMember("shell").getACall() and + sync = false + or + this = API::moduleImport("execa").getMember("shellSync").getACall() and + sync = true + } + + override DataFlow::Node getACommandArgument() { result = this.getArgument(0) } + + override predicate isShellInterpreted(DataFlow::Node arg) { arg = this.getACommandArgument() } + + override DataFlow::Node getArgumentList() { none() } + + override predicate isSync() { sync = true } + + override DataFlow::Node getOptionsArg() { + result = this.getArgument(1) and + result.asExpr() instanceof ObjectExpr + } + } } diff --git a/javascript/ql/lib/semmle/javascript/frameworks/SystemCommandExecutors.qll b/javascript/ql/lib/semmle/javascript/frameworks/SystemCommandExecutors.qll index 98ee244f769..20baafa0475 100644 --- a/javascript/ql/lib/semmle/javascript/frameworks/SystemCommandExecutors.qll +++ b/javascript/ql/lib/semmle/javascript/frameworks/SystemCommandExecutors.qll @@ -16,17 +16,6 @@ private predicate execApi( cmdArg = 0 and shell = false and optionsArg = -1 - or - mod = "execa" and - optionsArg = -1 and - ( - shell = false and - fn = ["node", "stdout", "stderr", "sync"] - or - shell = true and - fn = ["command", "commandSync", "shell", "shellSync"] - ) and - cmdArg = 0 ) } @@ -38,8 +27,6 @@ private predicate execApi(string mod, int cmdArg, int optionsArg, boolean shell) mod = "cross-spawn-async" and cmdArg = 0 and optionsArg = -1 or mod = "exec-async" and cmdArg = 0 and optionsArg = -1 - or - mod = "execa" and cmdArg = 0 and optionsArg = -1 ) or shell = true and From 6972c7a872f8639f8a0ff7350b83d17d3d18dc79 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Tue, 24 Jun 2025 12:55:14 +0000 Subject: [PATCH 253/340] Post-release preparation for codeql-cli-2.22.1 --- 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/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 +- 40 files changed, 40 insertions(+), 40 deletions(-) diff --git a/actions/ql/lib/qlpack.yml b/actions/ql/lib/qlpack.yml index f5e82a8647a..c6a0df46cfc 100644 --- a/actions/ql/lib/qlpack.yml +++ b/actions/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-all -version: 0.4.12 +version: 0.4.13-dev library: true warnOnImplicitThis: true dependencies: diff --git a/actions/ql/src/qlpack.yml b/actions/ql/src/qlpack.yml index 442839b0dcf..4a4bdde8147 100644 --- a/actions/ql/src/qlpack.yml +++ b/actions/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/actions-queries -version: 0.6.4 +version: 0.6.5-dev library: false warnOnImplicitThis: true groups: [actions, queries] diff --git a/cpp/ql/lib/qlpack.yml b/cpp/ql/lib/qlpack.yml index fd47588712c..e826864ae64 100644 --- a/cpp/ql/lib/qlpack.yml +++ b/cpp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-all -version: 5.2.0 +version: 5.2.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 1ea432be220..ade2daeb369 100644 --- a/cpp/ql/src/qlpack.yml +++ b/cpp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/cpp-queries -version: 1.4.3 +version: 1.4.4-dev groups: - cpp - queries diff --git a/csharp/ql/campaigns/Solorigate/lib/qlpack.yml b/csharp/ql/campaigns/Solorigate/lib/qlpack.yml index 4eb119b21c1..b9e0c245b85 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.43 +version: 1.7.44-dev groups: - csharp - solorigate diff --git a/csharp/ql/campaigns/Solorigate/src/qlpack.yml b/csharp/ql/campaigns/Solorigate/src/qlpack.yml index 7b0b33c02d9..7cf7f04a63a 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.43 +version: 1.7.44-dev groups: - csharp - solorigate diff --git a/csharp/ql/lib/qlpack.yml b/csharp/ql/lib/qlpack.yml index aed137e4fea..faa7e5e7198 100644 --- a/csharp/ql/lib/qlpack.yml +++ b/csharp/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-all -version: 5.1.9 +version: 5.1.10-dev groups: csharp dbscheme: semmlecode.csharp.dbscheme extractor: csharp diff --git a/csharp/ql/src/qlpack.yml b/csharp/ql/src/qlpack.yml index ceb761092b7..b6307e4210a 100644 --- a/csharp/ql/src/qlpack.yml +++ b/csharp/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/csharp-queries -version: 1.3.0 +version: 1.3.1-dev groups: - csharp - queries diff --git a/go/ql/consistency-queries/qlpack.yml b/go/ql/consistency-queries/qlpack.yml index 1dc60b72029..e964007a13d 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.26 +version: 1.0.27-dev groups: - go - queries diff --git a/go/ql/lib/qlpack.yml b/go/ql/lib/qlpack.yml index 3ec41de9acc..44d63e64e3b 100644 --- a/go/ql/lib/qlpack.yml +++ b/go/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-all -version: 4.2.8 +version: 4.2.9-dev groups: go dbscheme: go.dbscheme extractor: go diff --git a/go/ql/src/qlpack.yml b/go/ql/src/qlpack.yml index 25b99dd292b..ad2712943a3 100644 --- a/go/ql/src/qlpack.yml +++ b/go/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/go-queries -version: 1.4.0 +version: 1.4.1-dev groups: - go - queries diff --git a/java/ql/lib/qlpack.yml b/java/ql/lib/qlpack.yml index 20df8bf32a7..d6884627794 100644 --- a/java/ql/lib/qlpack.yml +++ b/java/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-all -version: 7.3.2 +version: 7.3.3-dev groups: java dbscheme: config/semmlecode.dbscheme extractor: java diff --git a/java/ql/src/qlpack.yml b/java/ql/src/qlpack.yml index dc34cd46a86..aaeb2c86ac1 100644 --- a/java/ql/src/qlpack.yml +++ b/java/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/java-queries -version: 1.6.0 +version: 1.6.1-dev groups: - java - queries diff --git a/javascript/ql/lib/qlpack.yml b/javascript/ql/lib/qlpack.yml index e9fe865ca12..ea90eead838 100644 --- a/javascript/ql/lib/qlpack.yml +++ b/javascript/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-all -version: 2.6.6 +version: 2.6.7-dev groups: javascript dbscheme: semmlecode.javascript.dbscheme extractor: javascript diff --git a/javascript/ql/src/qlpack.yml b/javascript/ql/src/qlpack.yml index 546308a70c7..59f83e85aef 100644 --- a/javascript/ql/src/qlpack.yml +++ b/javascript/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/javascript-queries -version: 1.7.0 +version: 1.7.1-dev groups: - javascript - queries diff --git a/misc/suite-helpers/qlpack.yml b/misc/suite-helpers/qlpack.yml index 1cfed45557b..77f627a1900 100644 --- a/misc/suite-helpers/qlpack.yml +++ b/misc/suite-helpers/qlpack.yml @@ -1,4 +1,4 @@ name: codeql/suite-helpers -version: 1.0.26 +version: 1.0.27-dev groups: shared warnOnImplicitThis: true diff --git a/python/ql/lib/qlpack.yml b/python/ql/lib/qlpack.yml index 23e252fdf3d..87101c60e09 100644 --- a/python/ql/lib/qlpack.yml +++ b/python/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-all -version: 4.0.10 +version: 4.0.11-dev groups: python dbscheme: semmlecode.python.dbscheme extractor: python diff --git a/python/ql/src/qlpack.yml b/python/ql/src/qlpack.yml index 0c32f4f2093..ff38476458f 100644 --- a/python/ql/src/qlpack.yml +++ b/python/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/python-queries -version: 1.6.0 +version: 1.6.1-dev groups: - python - queries diff --git a/ruby/ql/lib/qlpack.yml b/ruby/ql/lib/qlpack.yml index 40bb9be3252..ef9f163cbd9 100644 --- a/ruby/ql/lib/qlpack.yml +++ b/ruby/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-all -version: 4.1.9 +version: 4.1.10-dev groups: ruby extractor: ruby dbscheme: ruby.dbscheme diff --git a/ruby/ql/src/qlpack.yml b/ruby/ql/src/qlpack.yml index d5c59e42e0a..f5e2a6997b6 100644 --- a/ruby/ql/src/qlpack.yml +++ b/ruby/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ruby-queries -version: 1.4.0 +version: 1.4.1-dev groups: - ruby - queries diff --git a/rust/ql/lib/qlpack.yml b/rust/ql/lib/qlpack.yml index a559ad4266e..f2a10f4c4f7 100644 --- a/rust/ql/lib/qlpack.yml +++ b/rust/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-all -version: 0.1.11 +version: 0.1.12-dev groups: rust extractor: rust dbscheme: rust.dbscheme diff --git a/rust/ql/src/qlpack.yml b/rust/ql/src/qlpack.yml index 03403d6aaf4..478c7139d5a 100644 --- a/rust/ql/src/qlpack.yml +++ b/rust/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rust-queries -version: 0.1.11 +version: 0.1.12-dev groups: - rust - queries diff --git a/shared/controlflow/qlpack.yml b/shared/controlflow/qlpack.yml index e4a5a845477..a1020700a1a 100644 --- a/shared/controlflow/qlpack.yml +++ b/shared/controlflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/controlflow -version: 2.0.10 +version: 2.0.11-dev groups: shared library: true dependencies: diff --git a/shared/dataflow/qlpack.yml b/shared/dataflow/qlpack.yml index 146b0bcdc38..2064efe3b6b 100644 --- a/shared/dataflow/qlpack.yml +++ b/shared/dataflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/dataflow -version: 2.0.10 +version: 2.0.11-dev groups: shared library: true dependencies: diff --git a/shared/mad/qlpack.yml b/shared/mad/qlpack.yml index c1c0f892106..6a57f272569 100644 --- a/shared/mad/qlpack.yml +++ b/shared/mad/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/mad -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true dependencies: diff --git a/shared/quantum/qlpack.yml b/shared/quantum/qlpack.yml index 6d08eb0c2b8..f95d9c773b1 100644 --- a/shared/quantum/qlpack.yml +++ b/shared/quantum/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/quantum -version: 0.0.4 +version: 0.0.5-dev groups: shared library: true dependencies: diff --git a/shared/rangeanalysis/qlpack.yml b/shared/rangeanalysis/qlpack.yml index 05741c7ad61..b2b9dabb75a 100644 --- a/shared/rangeanalysis/qlpack.yml +++ b/shared/rangeanalysis/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/rangeanalysis -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true dependencies: diff --git a/shared/regex/qlpack.yml b/shared/regex/qlpack.yml index f6b25b571c3..3c478e25f9d 100644 --- a/shared/regex/qlpack.yml +++ b/shared/regex/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/regex -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true dependencies: diff --git a/shared/ssa/qlpack.yml b/shared/ssa/qlpack.yml index 2880b7ada2a..9a9f8759539 100644 --- a/shared/ssa/qlpack.yml +++ b/shared/ssa/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/ssa -version: 2.0.2 +version: 2.0.3-dev groups: shared library: true dependencies: diff --git a/shared/threat-models/qlpack.yml b/shared/threat-models/qlpack.yml index 0427de7fde8..b514f75bb94 100644 --- a/shared/threat-models/qlpack.yml +++ b/shared/threat-models/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/threat-models -version: 1.0.26 +version: 1.0.27-dev library: true groups: shared dataExtensions: diff --git a/shared/tutorial/qlpack.yml b/shared/tutorial/qlpack.yml index 62664382a22..017db79a823 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.26 +version: 1.0.27-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/typeflow/qlpack.yml b/shared/typeflow/qlpack.yml index b3793d6d29e..74b59ee1f74 100644 --- a/shared/typeflow/qlpack.yml +++ b/shared/typeflow/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeflow -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true dependencies: diff --git a/shared/typeinference/qlpack.yml b/shared/typeinference/qlpack.yml index 24d2c4a200a..2b9a8d3ee2d 100644 --- a/shared/typeinference/qlpack.yml +++ b/shared/typeinference/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typeinference -version: 0.0.7 +version: 0.0.8-dev groups: shared library: true dependencies: diff --git a/shared/typetracking/qlpack.yml b/shared/typetracking/qlpack.yml index 23c2d2f5995..a0fbd70f893 100644 --- a/shared/typetracking/qlpack.yml +++ b/shared/typetracking/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typetracking -version: 2.0.10 +version: 2.0.11-dev groups: shared library: true dependencies: diff --git a/shared/typos/qlpack.yml b/shared/typos/qlpack.yml index 0af8ef23422..2abd1968562 100644 --- a/shared/typos/qlpack.yml +++ b/shared/typos/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/typos -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true warnOnImplicitThis: true diff --git a/shared/util/qlpack.yml b/shared/util/qlpack.yml index 19c7e5b61dd..6bebbd01336 100644 --- a/shared/util/qlpack.yml +++ b/shared/util/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/util -version: 2.0.13 +version: 2.0.14-dev groups: shared library: true dependencies: null diff --git a/shared/xml/qlpack.yml b/shared/xml/qlpack.yml index 9e6cdf57613..d0e1fc1af1f 100644 --- a/shared/xml/qlpack.yml +++ b/shared/xml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/xml -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true dependencies: diff --git a/shared/yaml/qlpack.yml b/shared/yaml/qlpack.yml index 08e295a1b69..258719e3193 100644 --- a/shared/yaml/qlpack.yml +++ b/shared/yaml/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/yaml -version: 1.0.26 +version: 1.0.27-dev groups: shared library: true warnOnImplicitThis: true diff --git a/swift/ql/lib/qlpack.yml b/swift/ql/lib/qlpack.yml index 639dcd6ec40..bd0816247ca 100644 --- a/swift/ql/lib/qlpack.yml +++ b/swift/ql/lib/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-all -version: 5.0.2 +version: 5.0.3-dev groups: swift extractor: swift dbscheme: swift.dbscheme diff --git a/swift/ql/src/qlpack.yml b/swift/ql/src/qlpack.yml index 562310fcbe3..b24d4fbd5a7 100644 --- a/swift/ql/src/qlpack.yml +++ b/swift/ql/src/qlpack.yml @@ -1,5 +1,5 @@ name: codeql/swift-queries -version: 1.2.0 +version: 1.2.1-dev groups: - swift - queries From 76a3306c6338fb1fac288b8c33e7d838cfb59aa1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 19 Jun 2025 11:28:01 +0200 Subject: [PATCH 254/340] Go: convert UncontrolledAllocationSize test to .qlref --- .../UncontrolledAllocationSize.expected | 24 +++++++++++++++++-- .../CWE-770/UncontrolledAllocationSize.ql | 6 ----- .../CWE-770/UncontrolledAllocationSize.qlref | 4 ++++ .../CWE-770/UncontrolledAllocationSizeBad.go | 4 ++-- 4 files changed, 28 insertions(+), 10 deletions(-) delete mode 100644 go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql create mode 100644 go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected index 42831abaf15..bdcf83b8935 100644 --- a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.expected @@ -1,2 +1,22 @@ -invalidModelRow -testFailures +#select +| UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | This memory allocation depends on a $@. | UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | user-provided value | +edges +| UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | provenance | Src:MaD:1 MaD:2 | +| UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | UncontrolledAllocationSizeBad.go:13:15:13:20 | source | provenance | | +| UncontrolledAllocationSizeBad.go:13:15:13:20 | source | UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | provenance | MaD:3 | +| UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | provenance | | +| UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | provenance | | +| UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | provenance | Config | +models +| 1 | Source: net/http; Request; true; URL; ; ; ; remote; manual | +| 2 | Summary: net/url; URL; true; Query; ; ; Argument[receiver]; ReturnValue; taint; manual | +| 3 | Summary: net/url; Values; true; Get; ; ; Argument[receiver]; ReturnValue; taint; manual | +nodes +| UncontrolledAllocationSizeBad.go:11:12:11:16 | selection of URL | semmle.label | selection of URL | +| UncontrolledAllocationSizeBad.go:11:12:11:24 | call to Query | semmle.label | call to Query | +| UncontrolledAllocationSizeBad.go:13:15:13:20 | source | semmle.label | source | +| UncontrolledAllocationSizeBad.go:13:15:13:29 | call to Get | semmle.label | call to Get | +| UncontrolledAllocationSizeBad.go:14:2:14:37 | ... := ...[0] | semmle.label | ... := ...[0] | +| UncontrolledAllocationSizeBad.go:14:28:14:36 | sourceStr | semmle.label | sourceStr | +| UncontrolledAllocationSizeBad.go:20:27:20:30 | sink | semmle.label | sink | +subpaths diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql deleted file mode 100644 index de10220d7e3..00000000000 --- a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.ql +++ /dev/null @@ -1,6 +0,0 @@ -import go -import semmle.go.dataflow.ExternalFlow -import ModelValidation -import semmle.go.security.UncontrolledAllocationSize -import utils.test.InlineFlowTest -import FlowTest diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref new file mode 100644 index 00000000000..82741d2fbaa --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSize.qlref @@ -0,0 +1,4 @@ +query: Security/CWE-770/UncontrolledAllocationSize.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go index 0ae70436bde..ae052562705 100644 --- a/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go +++ b/go/ql/test/query-tests/Security/CWE-770/UncontrolledAllocationSizeBad.go @@ -8,7 +8,7 @@ import ( ) func OutOfMemoryBad(w http.ResponseWriter, r *http.Request) { - source := r.URL.Query() + source := r.URL.Query() // $ Source sourceStr := source.Get("n") sink, err := strconv.Atoi(sourceStr) @@ -17,7 +17,7 @@ func OutOfMemoryBad(w http.ResponseWriter, r *http.Request) { return } - result := make([]string, sink) // $hasTaintFlow="sink" + result := make([]string, sink) // $ Alert for i := 0; i < sink; i++ { result[i] = fmt.Sprintf("Item %d", i+1) } From cf92b0e91b75c4177f0d9f4eb535bfa654bb0079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 19 Jun 2025 14:02:46 +0200 Subject: [PATCH 255/340] Go: convert IncorrectIntegerConversion test to .qlref --- .../Security/CWE-681/FilterTestResults.ql | 15 + .../IncorrectIntegerConversion.expected | 2 - .../CWE-681/IncorrectIntegerConversion.go | 262 +++++++++--------- .../CWE-681/IncorrectIntegerConversion.ql | 20 -- .../CWE-681/IncorrectIntegerConversion.qlref | 5 + ...chitectureBuildConstraintInFileName_386.go | 4 +- .../Test32BitArchitectureBuildConstraints.go | 4 +- ...itectureBuildConstraintInFileName_amd64.go | 4 +- .../Test64BitArchitectureBuildConstraints.go | 4 +- .../TestNoArchitectureBuildConstraints.go | 12 +- .../CWE-681/TestOldBuildConstraints.go | 4 +- 11 files changed, 167 insertions(+), 169 deletions(-) create mode 100644 go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql delete mode 100644 go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.ql create mode 100644 go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref diff --git a/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql b/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql new file mode 100644 index 00000000000..9b3e77c416f --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-681/FilterTestResults.ql @@ -0,0 +1,15 @@ +/** + * @kind test-postprocess + * @description Remove the query predicates that differ based on 32/64-bit architecture. This should leave behind `invalidModelRowAdd` and `testFailures` in case of test failures. + */ + +/** + * The input test results: query predicate `relation` contains `data` at (`row`, `column`). + */ +external private predicate queryResults(string relation, int row, int column, string data); + +/** Holds if the test output's query predicate `relation` contains `data` at (`row`, `column`). */ +query predicate results(string relation, int row, int column, string data) { + queryResults(relation, row, column, data) and + not relation in ["#select", "nodes", "edges"] +} diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected index 42831abaf15..e69de29bb2d 100644 --- a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.expected @@ -1,2 +0,0 @@ -invalidModelRow -testFailures diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go index 7927a5fe252..0eee414716b 100644 --- a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.go @@ -24,7 +24,7 @@ func lookupNumberByName(reg *registry, name string) (int32, error) { return 567, nil } func lab(s string) (*something, error) { - num, err := strconv.Atoi(s) + num, err := strconv.Atoi(s) // $ Source if err != nil { number, err := lookupNumberByName(®istry{}, s) @@ -33,7 +33,7 @@ func lab(s string) (*something, error) { } num = int(number) } - target, err := lookupTarget(&config{}, int32(num)) // $ hasValueFlow="num" + target, err := lookupTarget(&config{}, int32(num)) // $ Alert if err != nil { return nil, err } @@ -63,12 +63,12 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 16) + parsed, err := strconv.ParseInt("3456", 10, 16) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert _ = int16(parsed) _ = uint16(parsed) _ = int32(parsed) @@ -79,14 +79,14 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 32) + parsed, err := strconv.ParseInt("3456", 10, 32) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert _ = int32(parsed) _ = uint32(parsed) _ = int64(parsed) @@ -95,32 +95,32 @@ func testParseInt() { _ = uint(parsed) } { - parsed, err := strconv.ParseInt("3456", 10, 64) + parsed, err := strconv.ParseInt("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } { - parsed, err := strconv.ParseInt("3456", 10, 0) + parsed, err := strconv.ParseInt("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -130,11 +130,11 @@ func testParseInt() { func testParseUint() { { - parsed, err := strconv.ParseUint("3456", 10, 8) + parsed, err := strconv.ParseUint("3456", 10, 8) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert _ = uint8(parsed) _ = int16(parsed) _ = uint16(parsed) @@ -146,13 +146,13 @@ func testParseUint() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 16) + parsed, err := strconv.ParseUint("3456", 10, 16) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert _ = uint16(parsed) _ = int32(parsed) _ = uint32(parsed) @@ -162,66 +162,66 @@ func testParseUint() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 32) + parsed, err := strconv.ParseUint("3456", 10, 32) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert _ = uint32(parsed) _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } func testAtoi() { - parsed, err := strconv.Atoi("3456") + parsed, err := strconv.Atoi("3456") // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -233,19 +233,19 @@ type customInt int16 // these should be caught: func typeAliases(input string) { { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } // NOTE: byte is uint8 - _ = byte(parsed) // $ hasValueFlow="parsed" - _ = customInt(parsed) // $ hasValueFlow="parsed" + _ = byte(parsed) // $ Alert + _ = customInt(parsed) // $ Alert } } func testBoundsChecking(input string) { { - parsed, err := strconv.Atoi(input) + parsed, err := strconv.Atoi(input) // $ Source if err != nil { panic(err) } @@ -253,13 +253,13 @@ func testBoundsChecking(input string) { _ = int8(parsed) } if parsed < math.MaxInt8 { - _ = int8(parsed) // $ MISSING: hasValueFlow="parsed" // Not found because we only check for upper bounds + _ = int8(parsed) // $ MISSING: Alert // Not found because we only check for upper bounds if parsed >= 0 { _ = int16(parsed) } } if parsed >= math.MinInt8 { - _ = int8(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert if parsed <= 0 { _ = int16(parsed) } @@ -271,51 +271,51 @@ func testBoundsChecking(input string) { } } { - parsed, err := strconv.ParseUint(input, 10, 0) + parsed, err := strconv.ParseUint(input, 10, 0) // $ Source if err != nil { panic(err) } if parsed <= math.MaxUint64 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" - _ = int64(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert + _ = int64(parsed) // $ Alert _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxInt64 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxUint32 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert _ = uint32(parsed) _ = int64(parsed) _ = uint64(parsed) - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } if parsed <= math.MaxInt32 { - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert _ = int32(parsed) _ = uint32(parsed) _ = int64(parsed) @@ -325,25 +325,25 @@ func testBoundsChecking(input string) { } } { - parsed, err := strconv.ParseUint(input, 10, 32) + parsed, err := strconv.ParseUint(input, 10, 32) // $ Source if err != nil { panic(err) } if parsed <= math.MaxUint16 { _ = uint16(parsed) - _ = int16(parsed) // $ hasValueFlow="parsed" + _ = int16(parsed) // $ Alert } if parsed <= 255 { _ = uint8(parsed) } if parsed <= 256 { - _ = uint8(parsed) // $ hasValueFlow="parsed" + _ = uint8(parsed) // $ Alert } if err == nil && 1 == 1 && parsed < math.MaxInt8 { _ = int8(parsed) } if parsed > 42 { - _ = uint16(parsed) // $ hasValueFlow="parsed" + _ = uint16(parsed) // $ Alert } if parsed >= math.MaxUint8+1 { return @@ -389,64 +389,64 @@ func testRightShifted(input string) { _ = byte(parsed >> 8 & 0xff) } { - parsed, err := strconv.ParseInt(input, 10, 16) + parsed, err := strconv.ParseInt(input, 10, 16) // $ Source if err != nil { panic(err) } - _ = byte(parsed) // $ hasValueFlow="parsed" + _ = byte(parsed) // $ Alert _ = byte(parsed << 8) } } func testPathWithMoreThanOneSink(input string) { { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } - v1 := int16(parsed) // $ hasValueFlow="parsed" + v1 := int16(parsed) // $ Alert _ = int16(v1) } { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } - v := int16(parsed) // $ hasValueFlow="parsed" + v := int16(parsed) // $ Alert _ = int8(v) } { - parsed, err := strconv.ParseInt(input, 10, 32) + parsed, err := strconv.ParseInt(input, 10, 32) // $ Source if err != nil { panic(err) } v1 := int32(parsed) - v2 := int16(v1) // $ hasValueFlow="v1" + v2 := int16(v1) // $ Alert _ = int8(v2) } { - parsed, err := strconv.ParseInt(input, 10, 16) + parsed, err := strconv.ParseInt(input, 10, 16) // $ Source if err != nil { panic(err) } v1 := int64(parsed) v2 := int32(v1) v3 := int16(v2) - _ = int8(v3) // $ hasValueFlow="v3" + _ = int8(v3) // $ Alert } } func testUsingStrConvIntSize(input string) { - parsed, err := strconv.ParseInt(input, 10, strconv.IntSize) + parsed, err := strconv.ParseInt(input, 10, strconv.IntSize) // $ Source if err != nil { panic(err) } - _ = int8(parsed) // $ hasValueFlow="parsed" - _ = uint8(parsed) // $ hasValueFlow="parsed" - _ = int16(parsed) // $ hasValueFlow="parsed" - _ = uint16(parsed) // $ hasValueFlow="parsed" - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int8(parsed) // $ Alert + _ = uint8(parsed) // $ Alert + _ = int16(parsed) // $ Alert + _ = uint16(parsed) // $ Alert + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert _ = int64(parsed) _ = uint64(parsed) _ = int(parsed) @@ -490,7 +490,7 @@ func dealWithArchSizeCorrectly(s string) uint { } func typeSwitch1(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 switch v := input.(type) { case int16, string: @@ -498,19 +498,19 @@ func typeSwitch1(s string) { return } _ = int16(v.(int16)) - _ = int8(v.(int16)) // $ hasValueFlow="type assertion" + _ = int8(v.(int16)) // $ Alert case int32: _ = int32(v) - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert case int64: - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert default: - _ = int8(v.(int64)) // $ hasValueFlow="type assertion" + _ = int8(v.(int64)) // $ Alert } } func typeSwitch2(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 switch input.(type) { case int16, string: @@ -518,25 +518,25 @@ func typeSwitch2(s string) { return } _ = int16(input.(int16)) - _ = int8(input.(int16)) // $ hasValueFlow="type assertion" + _ = int8(input.(int16)) // $ Alert case int32: _ = int32(input.(int32)) - _ = int8(input.(int32)) // $ hasValueFlow="type assertion" + _ = int8(input.(int32)) // $ Alert case int64: - _ = int8(input.(int64)) // $ hasValueFlow="type assertion" + _ = int8(input.(int64)) // $ Alert default: - _ = int8(input.(int64)) // $ hasValueFlow="type assertion" + _ = int8(input.(int64)) // $ Alert } } func checkedTypeAssertion(s string) { - i64, _ := strconv.ParseInt(s, 10, 64) + i64, _ := strconv.ParseInt(s, 10, 64) // $ Source var input any = i64 if v, ok := input.(int16); ok { // Need to account for the fact that within this case clause, v is an int16 _ = int16(v) - _ = int8(v) // $ hasValueFlow="v" + _ = int8(v) // $ Alert } else if v, ok := input.(int32); ok { - _ = int16(v) // $ hasValueFlow="v" + _ = int16(v) // $ Alert } } diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.ql b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.ql deleted file mode 100644 index e5d1b2aebab..00000000000 --- a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.ql +++ /dev/null @@ -1,20 +0,0 @@ -import go -import semmle.go.dataflow.ExternalFlow -import ModelValidation -import utils.test.InlineExpectationsTest -import semmle.go.security.IncorrectIntegerConversionLib - -module TestIncorrectIntegerConversion implements TestSig { - string getARelevantTag() { result = "hasValueFlow" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasValueFlow" and - exists(DataFlow::Node sink | Flow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "\"" + sink.toString() + "\"" - ) - } -} - -import MakeTest diff --git a/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref new file mode 100644 index 00000000000..d424ad73de8 --- /dev/null +++ b/go/ql/test/query-tests/Security/CWE-681/IncorrectIntegerConversion.qlref @@ -0,0 +1,5 @@ +query: Security/CWE-681/IncorrectIntegerConversionQuery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql + - ./FilterTestResults.ql diff --git a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go index 0ff7b0e87ac..21eff8479a8 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraintInFileName_386.go @@ -16,11 +16,11 @@ func testIntSource386() { _ = uint32(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert _ = uint32(parsed) } { diff --git a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go index 79b776bdcac..16d5bba86c6 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test32BitArchitectureBuildConstraints.go @@ -19,11 +19,11 @@ func testIntSource32() { _ = uint32(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 0) + parsed, err := strconv.ParseUint("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert _ = uint32(parsed) } { diff --git a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go index b5becec4af9..d1bd2673729 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraintInFileName_amd64.go @@ -16,11 +16,11 @@ func testIntSinkAmd64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } diff --git a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go index cf7aaf439a8..b07727d25ad 100644 --- a/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/Test64BitArchitectureBuildConstraints.go @@ -19,11 +19,11 @@ func testIntSink64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } diff --git a/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go index 70f1938b5b3..3138dd9a8c2 100644 --- a/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/TestNoArchitectureBuildConstraints.go @@ -9,19 +9,19 @@ import ( func testIntSizeIsArchicturallyDependent1() { { - parsed, err := strconv.ParseInt("3456", 10, 0) + parsed, err := strconv.ParseInt("3456", 10, 0) // $ Source if err != nil { panic(err) } - _ = int32(parsed) // $ hasValueFlow="parsed" - _ = uint32(parsed) // $ hasValueFlow="parsed" + _ = int32(parsed) // $ Alert + _ = uint32(parsed) // $ Alert } { - parsed, err := strconv.ParseInt("3456", 10, 64) + parsed, err := strconv.ParseInt("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" - _ = uint(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert + _ = uint(parsed) // $ Alert } } diff --git a/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go b/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go index 34f686c6e8a..35980ee9978 100644 --- a/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go +++ b/go/ql/test/query-tests/Security/CWE-681/TestOldBuildConstraints.go @@ -20,11 +20,11 @@ func oldTestIntSink64() { _ = uint(parsed) } { - parsed, err := strconv.ParseUint("3456", 10, 64) + parsed, err := strconv.ParseUint("3456", 10, 64) // $ Source if err != nil { panic(err) } - _ = int(parsed) // $ hasValueFlow="parsed" + _ = int(parsed) // $ Alert _ = uint(parsed) } } From 807c7691c653867f3d222935684af857409b98bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 19 Jun 2025 17:12:45 +0200 Subject: [PATCH 256/340] Ruby: add PrettyPrintModels test postprocessor --- ruby/ql/lib/utils/test/PrettyPrintModels.ql | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 ruby/ql/lib/utils/test/PrettyPrintModels.ql diff --git a/ruby/ql/lib/utils/test/PrettyPrintModels.ql b/ruby/ql/lib/utils/test/PrettyPrintModels.ql new file mode 100644 index 00000000000..115cc2c1287 --- /dev/null +++ b/ruby/ql/lib/utils/test/PrettyPrintModels.ql @@ -0,0 +1,6 @@ +/** + * @kind test-postprocess + */ + +import codeql.ruby.frameworks.data.internal.ApiGraphModels +import codeql.dataflow.test.ProvenancePathGraph::TestPostProcessing::TranslateProvenanceResults From e32982057cc09062586399bebafbe9fb3186bf5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 19 Jun 2025 17:32:00 +0200 Subject: [PATCH 257/340] Ruby: convert CommandInjection test to .qlref --- .../CommandInjection.expected | 128 +++++++++--------- .../CommandInjection/CommandInjection.ql | 16 --- .../CommandInjection/CommandInjection.qlref | 4 + .../CommandInjection/CommandInjection.rb | 47 +++---- 4 files changed, 92 insertions(+), 103 deletions(-) delete mode 100644 ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.ql create mode 100644 ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.qlref diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected index 049edf75ace..2173fed576a 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.expected @@ -1,32 +1,49 @@ -models -| 1 | Sink: Terrapin::CommandLine!; Method[new].Argument[0]; command-injection | -| 2 | Sink: Terrapin::CommandLine!; Method[new].Argument[1]; command-injection | +#select +| CommandInjection.rb:7:10:7:15 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:7:10:7:15 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:8:16:8:18 | cmd | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:8:16:8:18 | cmd | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:10:14:10:16 | cmd | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:10:14:10:16 | cmd | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:11:17:11:22 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:11:17:11:22 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:13:9:13:14 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:13:9:13:14 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:30:19:30:24 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:30:19:30:24 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:34:24:34:36 | "echo #{...}" | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:34:24:34:36 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:35:39:35:51 | "grep #{...}" | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:35:39:35:51 | "grep #{...}" | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | +| CommandInjection.rb:51:24:51:36 | "echo #{...}" | CommandInjection.rb:47:15:47:20 | call to params | CommandInjection.rb:51:24:51:36 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:47:15:47:20 | call to params | user-provided value | +| CommandInjection.rb:60:14:60:16 | cmd | CommandInjection.rb:55:13:55:18 | call to params | CommandInjection.rb:60:14:60:16 | cmd | This command depends on a $@. | CommandInjection.rb:55:13:55:18 | call to params | user-provided value | +| CommandInjection.rb:75:14:75:29 | "echo #{...}" | CommandInjection.rb:74:18:74:23 | number | CommandInjection.rb:75:14:75:29 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:74:18:74:23 | number | user-provided value | +| CommandInjection.rb:83:14:83:34 | "echo #{...}" | CommandInjection.rb:82:23:82:33 | blah_number | CommandInjection.rb:83:14:83:34 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:82:23:82:33 | blah_number | user-provided value | +| CommandInjection.rb:92:14:92:39 | "echo #{...}" | CommandInjection.rb:92:22:92:37 | ...[...] | CommandInjection.rb:92:14:92:39 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:92:22:92:37 | ...[...] | user-provided value | +| CommandInjection.rb:105:16:105:28 | "cat #{...}" | CommandInjection.rb:104:16:104:21 | call to params | CommandInjection.rb:105:16:105:28 | "cat #{...}" | This command depends on a $@. | CommandInjection.rb:104:16:104:21 | call to params | user-provided value | +| CommandInjection.rb:112:33:112:44 | ...[...] | CommandInjection.rb:112:33:112:38 | call to params | CommandInjection.rb:112:33:112:44 | ...[...] | This command depends on a $@. | CommandInjection.rb:112:33:112:38 | call to params | user-provided value | +| CommandInjection.rb:114:41:114:56 | "#{...}" | CommandInjection.rb:114:44:114:49 | call to params | CommandInjection.rb:114:41:114:56 | "#{...}" | This command depends on a $@. | CommandInjection.rb:114:44:114:49 | call to params | user-provided value | edges | CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:7:10:7:15 | #{...} | provenance | | | CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:8:16:8:18 | cmd | provenance | | | CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:10:14:10:16 | cmd | provenance | | | CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:11:17:11:22 | #{...} | provenance | | | CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:13:9:13:14 | #{...} | provenance | | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:29:19:29:24 | #{...} | provenance | | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:33:24:33:36 | "echo #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:34:39:34:51 | "grep #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:30:19:30:24 | #{...} | provenance | | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:34:24:34:36 | "echo #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:6:9:6:11 | cmd | CommandInjection.rb:35:39:35:51 | "grep #{...}" | provenance | AdditionalTaintStep | | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:6:15:6:26 | ...[...] | provenance | | | CommandInjection.rb:6:15:6:26 | ...[...] | CommandInjection.rb:6:9:6:11 | cmd | provenance | | -| CommandInjection.rb:46:9:46:11 | cmd | CommandInjection.rb:50:24:50:36 | "echo #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:46:15:46:20 | call to params | CommandInjection.rb:46:15:46:26 | ...[...] | provenance | | -| CommandInjection.rb:46:15:46:26 | ...[...] | CommandInjection.rb:46:9:46:11 | cmd | provenance | | -| CommandInjection.rb:54:7:54:9 | cmd | CommandInjection.rb:59:14:59:16 | cmd | provenance | | -| CommandInjection.rb:54:13:54:18 | call to params | CommandInjection.rb:54:13:54:24 | ...[...] | provenance | | -| CommandInjection.rb:54:13:54:24 | ...[...] | CommandInjection.rb:54:7:54:9 | cmd | provenance | | -| CommandInjection.rb:73:18:73:23 | number | CommandInjection.rb:74:14:74:29 | "echo #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:81:23:81:33 | blah_number | CommandInjection.rb:82:14:82:34 | "echo #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:91:22:91:37 | ...[...] | CommandInjection.rb:91:14:91:39 | "echo #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:103:9:103:12 | file | CommandInjection.rb:104:16:104:28 | "cat #{...}" | provenance | AdditionalTaintStep | -| CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:103:16:103:28 | ...[...] | provenance | | -| CommandInjection.rb:103:16:103:28 | ...[...] | CommandInjection.rb:103:9:103:12 | file | provenance | | -| CommandInjection.rb:111:33:111:38 | call to params | CommandInjection.rb:111:33:111:44 | ...[...] | provenance | Sink:MaD:1 | -| CommandInjection.rb:113:44:113:49 | call to params | CommandInjection.rb:113:44:113:54 | ...[...] | provenance | | -| CommandInjection.rb:113:44:113:54 | ...[...] | CommandInjection.rb:113:41:113:56 | "#{...}" | provenance | AdditionalTaintStep Sink:MaD:2 | +| CommandInjection.rb:47:9:47:11 | cmd | CommandInjection.rb:51:24:51:36 | "echo #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:47:15:47:20 | call to params | CommandInjection.rb:47:15:47:26 | ...[...] | provenance | | +| CommandInjection.rb:47:15:47:26 | ...[...] | CommandInjection.rb:47:9:47:11 | cmd | provenance | | +| CommandInjection.rb:55:7:55:9 | cmd | CommandInjection.rb:60:14:60:16 | cmd | provenance | | +| CommandInjection.rb:55:13:55:18 | call to params | CommandInjection.rb:55:13:55:24 | ...[...] | provenance | | +| CommandInjection.rb:55:13:55:24 | ...[...] | CommandInjection.rb:55:7:55:9 | cmd | provenance | | +| CommandInjection.rb:74:18:74:23 | number | CommandInjection.rb:75:14:75:29 | "echo #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:82:23:82:33 | blah_number | CommandInjection.rb:83:14:83:34 | "echo #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:92:22:92:37 | ...[...] | CommandInjection.rb:92:14:92:39 | "echo #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:104:9:104:12 | file | CommandInjection.rb:105:16:105:28 | "cat #{...}" | provenance | AdditionalTaintStep | +| CommandInjection.rb:104:16:104:21 | call to params | CommandInjection.rb:104:16:104:28 | ...[...] | provenance | | +| CommandInjection.rb:104:16:104:28 | ...[...] | CommandInjection.rb:104:9:104:12 | file | provenance | | +| CommandInjection.rb:112:33:112:38 | call to params | CommandInjection.rb:112:33:112:44 | ...[...] | provenance | Sink:MaD:1 | +| CommandInjection.rb:114:44:114:49 | call to params | CommandInjection.rb:114:44:114:54 | ...[...] | provenance | | +| CommandInjection.rb:114:44:114:54 | ...[...] | CommandInjection.rb:114:41:114:56 | "#{...}" | provenance | AdditionalTaintStep Sink:MaD:2 | +models +| 1 | Sink: Terrapin::CommandLine!; Method[new].Argument[0]; command-injection | +| 2 | Sink: Terrapin::CommandLine!; Method[new].Argument[1]; command-injection | nodes | CommandInjection.rb:6:9:6:11 | cmd | semmle.label | cmd | | CommandInjection.rb:6:15:6:20 | call to params | semmle.label | call to params | @@ -36,47 +53,30 @@ nodes | CommandInjection.rb:10:14:10:16 | cmd | semmle.label | cmd | | CommandInjection.rb:11:17:11:22 | #{...} | semmle.label | #{...} | | CommandInjection.rb:13:9:13:14 | #{...} | semmle.label | #{...} | -| CommandInjection.rb:29:19:29:24 | #{...} | semmle.label | #{...} | -| CommandInjection.rb:33:24:33:36 | "echo #{...}" | semmle.label | "echo #{...}" | -| CommandInjection.rb:34:39:34:51 | "grep #{...}" | semmle.label | "grep #{...}" | -| CommandInjection.rb:46:9:46:11 | cmd | semmle.label | cmd | -| CommandInjection.rb:46:15:46:20 | call to params | semmle.label | call to params | -| CommandInjection.rb:46:15:46:26 | ...[...] | semmle.label | ...[...] | -| CommandInjection.rb:50:24:50:36 | "echo #{...}" | semmle.label | "echo #{...}" | -| CommandInjection.rb:54:7:54:9 | cmd | semmle.label | cmd | -| CommandInjection.rb:54:13:54:18 | call to params | semmle.label | call to params | -| CommandInjection.rb:54:13:54:24 | ...[...] | semmle.label | ...[...] | -| CommandInjection.rb:59:14:59:16 | cmd | semmle.label | cmd | -| CommandInjection.rb:73:18:73:23 | number | semmle.label | number | -| CommandInjection.rb:74:14:74:29 | "echo #{...}" | semmle.label | "echo #{...}" | -| CommandInjection.rb:81:23:81:33 | blah_number | semmle.label | blah_number | -| CommandInjection.rb:82:14:82:34 | "echo #{...}" | semmle.label | "echo #{...}" | -| CommandInjection.rb:91:14:91:39 | "echo #{...}" | semmle.label | "echo #{...}" | -| CommandInjection.rb:91:22:91:37 | ...[...] | semmle.label | ...[...] | -| CommandInjection.rb:103:9:103:12 | file | semmle.label | file | -| CommandInjection.rb:103:16:103:21 | call to params | semmle.label | call to params | -| CommandInjection.rb:103:16:103:28 | ...[...] | semmle.label | ...[...] | -| CommandInjection.rb:104:16:104:28 | "cat #{...}" | semmle.label | "cat #{...}" | -| CommandInjection.rb:111:33:111:38 | call to params | semmle.label | call to params | -| CommandInjection.rb:111:33:111:44 | ...[...] | semmle.label | ...[...] | -| CommandInjection.rb:113:41:113:56 | "#{...}" | semmle.label | "#{...}" | -| CommandInjection.rb:113:44:113:49 | call to params | semmle.label | call to params | -| CommandInjection.rb:113:44:113:54 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:30:19:30:24 | #{...} | semmle.label | #{...} | +| CommandInjection.rb:34:24:34:36 | "echo #{...}" | semmle.label | "echo #{...}" | +| CommandInjection.rb:35:39:35:51 | "grep #{...}" | semmle.label | "grep #{...}" | +| CommandInjection.rb:47:9:47:11 | cmd | semmle.label | cmd | +| CommandInjection.rb:47:15:47:20 | call to params | semmle.label | call to params | +| CommandInjection.rb:47:15:47:26 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:51:24:51:36 | "echo #{...}" | semmle.label | "echo #{...}" | +| CommandInjection.rb:55:7:55:9 | cmd | semmle.label | cmd | +| CommandInjection.rb:55:13:55:18 | call to params | semmle.label | call to params | +| CommandInjection.rb:55:13:55:24 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:60:14:60:16 | cmd | semmle.label | cmd | +| CommandInjection.rb:74:18:74:23 | number | semmle.label | number | +| CommandInjection.rb:75:14:75:29 | "echo #{...}" | semmle.label | "echo #{...}" | +| CommandInjection.rb:82:23:82:33 | blah_number | semmle.label | blah_number | +| CommandInjection.rb:83:14:83:34 | "echo #{...}" | semmle.label | "echo #{...}" | +| CommandInjection.rb:92:14:92:39 | "echo #{...}" | semmle.label | "echo #{...}" | +| CommandInjection.rb:92:22:92:37 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:104:9:104:12 | file | semmle.label | file | +| CommandInjection.rb:104:16:104:21 | call to params | semmle.label | call to params | +| CommandInjection.rb:104:16:104:28 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:105:16:105:28 | "cat #{...}" | semmle.label | "cat #{...}" | +| CommandInjection.rb:112:33:112:38 | call to params | semmle.label | call to params | +| CommandInjection.rb:112:33:112:44 | ...[...] | semmle.label | ...[...] | +| CommandInjection.rb:114:41:114:56 | "#{...}" | semmle.label | "#{...}" | +| CommandInjection.rb:114:44:114:49 | call to params | semmle.label | call to params | +| CommandInjection.rb:114:44:114:54 | ...[...] | semmle.label | ...[...] | subpaths -#select -| CommandInjection.rb:7:10:7:15 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:7:10:7:15 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:8:16:8:18 | cmd | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:8:16:8:18 | cmd | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:10:14:10:16 | cmd | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:10:14:10:16 | cmd | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:11:17:11:22 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:11:17:11:22 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:13:9:13:14 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:13:9:13:14 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:29:19:29:24 | #{...} | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:29:19:29:24 | #{...} | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:33:24:33:36 | "echo #{...}" | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:33:24:33:36 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:34:39:34:51 | "grep #{...}" | CommandInjection.rb:6:15:6:20 | call to params | CommandInjection.rb:34:39:34:51 | "grep #{...}" | This command depends on a $@. | CommandInjection.rb:6:15:6:20 | call to params | user-provided value | -| CommandInjection.rb:50:24:50:36 | "echo #{...}" | CommandInjection.rb:46:15:46:20 | call to params | CommandInjection.rb:50:24:50:36 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:46:15:46:20 | call to params | user-provided value | -| CommandInjection.rb:59:14:59:16 | cmd | CommandInjection.rb:54:13:54:18 | call to params | CommandInjection.rb:59:14:59:16 | cmd | This command depends on a $@. | CommandInjection.rb:54:13:54:18 | call to params | user-provided value | -| CommandInjection.rb:74:14:74:29 | "echo #{...}" | CommandInjection.rb:73:18:73:23 | number | CommandInjection.rb:74:14:74:29 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:73:18:73:23 | number | user-provided value | -| CommandInjection.rb:82:14:82:34 | "echo #{...}" | CommandInjection.rb:81:23:81:33 | blah_number | CommandInjection.rb:82:14:82:34 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:81:23:81:33 | blah_number | user-provided value | -| CommandInjection.rb:91:14:91:39 | "echo #{...}" | CommandInjection.rb:91:22:91:37 | ...[...] | CommandInjection.rb:91:14:91:39 | "echo #{...}" | This command depends on a $@. | CommandInjection.rb:91:22:91:37 | ...[...] | user-provided value | -| CommandInjection.rb:104:16:104:28 | "cat #{...}" | CommandInjection.rb:103:16:103:21 | call to params | CommandInjection.rb:104:16:104:28 | "cat #{...}" | This command depends on a $@. | CommandInjection.rb:103:16:103:21 | call to params | user-provided value | -| CommandInjection.rb:111:33:111:44 | ...[...] | CommandInjection.rb:111:33:111:38 | call to params | CommandInjection.rb:111:33:111:44 | ...[...] | This command depends on a $@. | CommandInjection.rb:111:33:111:38 | call to params | user-provided value | -| CommandInjection.rb:113:41:113:56 | "#{...}" | CommandInjection.rb:113:44:113:49 | call to params | CommandInjection.rb:113:41:113:56 | "#{...}" | This command depends on a $@. | CommandInjection.rb:113:44:113:49 | call to params | user-provided value | diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.ql b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.ql deleted file mode 100644 index c0f54091eb4..00000000000 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.ql +++ /dev/null @@ -1,16 +0,0 @@ -/** - * @kind path-problem - */ - -import codeql.ruby.AST -import codeql.ruby.security.CommandInjectionQuery -import codeql.dataflow.test.ProvenancePathGraph -import codeql.ruby.frameworks.data.internal.ApiGraphModels -import ShowProvenance - -from CommandInjectionFlow::PathNode source, CommandInjectionFlow::PathNode sink, Source sourceNode -where - CommandInjectionFlow::flowPath(source, sink) and - sourceNode = source.getNode() -select sink.getNode(), source, sink, "This command depends on a $@.", sourceNode, - sourceNode.getSourceType() diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.qlref b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.qlref new file mode 100644 index 00000000000..1d0a8c019fb --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.qlref @@ -0,0 +1,4 @@ +query: queries/security/cwe-078/CommandInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb index 12c15a30b15..9fd7c6286a1 100644 --- a/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb +++ b/ruby/ql/test/query-tests/security/cwe-078/CommandInjection/CommandInjection.rb @@ -3,14 +3,15 @@ require "open3" class UsersController < ActionController::Base def create - cmd = params[:cmd] - `#{cmd}` - system(cmd) + cmd = params[:cmd] # $ Source + `#{cmd}` # $ Alert + system(cmd) # $ Alert system("echo", cmd) # OK, because cmd is not shell interpreted - exec(cmd) - %x(echo #{cmd}) + exec(cmd) # $ Alert + %x(echo #{cmd}) # $ Alert result = <<`EOF` - #{cmd} + #{cmd} #{# $ Alert + } EOF safe_cmd_1 = Shellwords.escape(cmd) @@ -26,12 +27,12 @@ EOF if %w(foo bar).include? cmd `echo #{cmd}` else - `echo #{cmd}` + `echo #{cmd}` # $ Alert end # Open3 methods - Open3.capture2("echo #{cmd}") - Open3.pipeline("cat foo.txt", "grep #{cmd}") + Open3.capture2("echo #{cmd}") # $ Alert + Open3.pipeline("cat foo.txt", "grep #{cmd}") # $ Alert Open3.pipeline(["echo", cmd], "tail") # OK, because cmd is not shell interpreted end @@ -43,20 +44,20 @@ EOF end def index - cmd = params[:key] + cmd = params[:key] # $ Source if %w(foo bar).include? cmd `echo #{cmd}` end - Open3.capture2("echo #{cmd}") + Open3.capture2("echo #{cmd}") # $ Alert end def update - cmd = params[:key] + cmd = params[:key] # $ Source case cmd when "foo" system(cmd) end - system(cmd) + system(cmd) # $ Alert end end @@ -70,16 +71,16 @@ module Types field :with_arg, String, null: false, description: "A field with an argument" do argument :number, Int, "A number", required: true end - def with_arg(number:) - system("echo #{number}") + def with_arg(number:) # $ Source + system("echo #{number}") # $ Alert number.to_s end field :with_method, String, null: false, description: "A field with a custom resolver method", resolver_method: :custom_method do argument :blah_number, Int, "A number", required: true end - def custom_method(blah_number:, number: nil) - system("echo #{blah_number}") + def custom_method(blah_number:, number: nil) # $ Source + system("echo #{blah_number}") # $ Alert system("echo #{number}") # OK, number: is not an `argument` for this field blah_number.to_s end @@ -88,7 +89,7 @@ module Types argument :something, Int, "A number", required: true end def with_splat(**args) - system("echo #{args[:something]}") + system("echo #{args[:something]}") # $ Alert args[:something].to_s end @@ -100,17 +101,17 @@ end class Foo < ActionController::Base def create - file = params[:file] - system("cat #{file}") + file = params[:file] # $ Source + system("cat #{file}") # $ Alert # .shellescape system("cat #{file.shellescape}") # OK, because file is shell escaped - + end def index - Terrapin::CommandLine.new(params[:foo], "bar") # BAD + Terrapin::CommandLine.new(params[:foo], "bar") # $ Alert - Terrapin::CommandLine.new("echo", "#{params[foo]}") # BAD + Terrapin::CommandLine.new("echo", "#{params[foo]}") # $ Alert cmd = Terrapin::CommandLine.new("echo", ":msg") cmd.run(msg: params[:foo]) # GOOD From 92a48cdc2b4238d008fa197e4a3392cdb70e28f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Thu, 19 Jun 2025 17:38:50 +0200 Subject: [PATCH 258/340] Ruby: convert InsecureDownload test to .qlref --- .../cwe-829/InsecureDownload.expected | 23 +++++++++---------- .../security/cwe-829/InsecureDownload.ql | 23 ------------------- .../security/cwe-829/InsecureDownload.qlref | 4 ++++ .../security/cwe-829/insecure_download.rb | 18 +++++++-------- 4 files changed, 24 insertions(+), 44 deletions(-) delete mode 100644 ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql create mode 100644 ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.qlref diff --git a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected index 67e59fb08c1..b8951412c1f 100644 --- a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected +++ b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.expected @@ -1,4 +1,14 @@ -testFailures +#select +| insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ of sensitive file from $@. | insecure_download.rb:27:5:27:46 | call to get | Download | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | HTTP source | +| insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ of sensitive file from $@. | insecure_download.rb:27:5:27:46 | call to get | Download | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | HTTP source | +| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | insecure_download.rb:33:15:33:17 | url | $@ of sensitive file from $@. | insecure_download.rb:33:5:33:18 | call to get | Download | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | HTTP source | +| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | insecure_download.rb:33:15:33:17 | url | $@ of sensitive file from $@. | insecure_download.rb:33:5:33:18 | call to get | Download | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" | HTTP source | +| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | $@ of sensitive file from $@. | insecure_download.rb:33:5:33:18 | call to get | Download | insecure_download.rb:33:15:33:17 | url | HTTP source | +| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | $@ of sensitive file from $@. | insecure_download.rb:33:5:33:18 | call to get | Download | insecure_download.rb:33:15:33:17 | url | HTTP source | +| insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | $@ of sensitive file from $@. | insecure_download.rb:37:32:37:69 | call to get | Download | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | HTTP source | +| insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | $@ of sensitive file from $@. | insecure_download.rb:41:27:41:64 | call to get | Download | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | HTTP source | +| insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | $@ of sensitive file from $@. | insecure_download.rb:43:12:43:57 | call to get | Download | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | HTTP source | +| insecure_download.rb:53:65:53:78 | "/myscript.sh" | insecure_download.rb:53:65:53:78 | "/myscript.sh" | insecure_download.rb:53:65:53:78 | "/myscript.sh" | $@ of sensitive file from $@. | insecure_download.rb:53:14:53:79 | call to get | Download | insecure_download.rb:53:65:53:78 | "/myscript.sh" | HTTP source | edges | insecure_download.rb:31:5:31:7 | url : String | insecure_download.rb:33:15:33:17 | url | provenance | | | insecure_download.rb:31:5:31:7 | url : String | insecure_download.rb:33:15:33:17 | url | provenance | | @@ -18,14 +28,3 @@ nodes | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | semmle.label | "http://example.org/unsafe.unk..." | | insecure_download.rb:53:65:53:78 | "/myscript.sh" | semmle.label | "/myscript.sh" | subpaths -#select -| insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | "http://example.org/unsafe.APK" | -| insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | $@ | insecure_download.rb:27:15:27:45 | "http://example.org/unsafe.APK" | "http://example.org/unsafe.APK" | -| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | insecure_download.rb:33:15:33:17 | url | $@ | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | "http://example.org/unsafe.APK" : String | -| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | insecure_download.rb:33:15:33:17 | url | $@ | insecure_download.rb:31:11:31:41 | "http://example.org/unsafe.APK" : String | "http://example.org/unsafe.APK" : String | -| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | $@ | insecure_download.rb:33:15:33:17 | url | url | -| insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | insecure_download.rb:33:15:33:17 | url | $@ | insecure_download.rb:33:15:33:17 | url | url | -| insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | $@ | insecure_download.rb:37:42:37:68 | "http://example.org/unsafe" | "http://example.org/unsafe" | -| insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | $@ | insecure_download.rb:41:37:41:63 | "http://example.org/unsafe" | "http://example.org/unsafe" | -| insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | $@ | insecure_download.rb:43:22:43:56 | "http://example.org/unsafe.unk..." | "http://example.org/unsafe.unk..." | -| insecure_download.rb:53:65:53:78 | "/myscript.sh" | insecure_download.rb:53:65:53:78 | "/myscript.sh" | insecure_download.rb:53:65:53:78 | "/myscript.sh" | $@ | insecure_download.rb:53:65:53:78 | "/myscript.sh" | "/myscript.sh" | diff --git a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql deleted file mode 100644 index a8480b23a2d..00000000000 --- a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.ql +++ /dev/null @@ -1,23 +0,0 @@ -import codeql.ruby.security.InsecureDownloadQuery -import InsecureDownloadFlow::PathGraph -import utils.test.InlineExpectationsTest -import utils.test.InlineFlowTestUtil - -module FlowTest implements TestSig { - string getARelevantTag() { result = "BAD" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "BAD" and - exists(DataFlow::Node src, DataFlow::Node sink | InsecureDownloadFlow::flow(src, sink) | - sink.getLocation() = location and - element = sink.toString() and - if exists(getSourceArgString(src)) then value = getSourceArgString(src) else value = "" - ) - } -} - -import MakeTest - -from InsecureDownloadFlow::PathNode source, InsecureDownloadFlow::PathNode sink -where InsecureDownloadFlow::flowPath(source, sink) -select sink, source, sink, "$@", source, source.toString() diff --git a/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.qlref b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.qlref new file mode 100644 index 00000000000..e2048e1cee4 --- /dev/null +++ b/ruby/ql/test/query-tests/security/cwe-829/InsecureDownload.qlref @@ -0,0 +1,4 @@ +query: queries/security/cwe-829/InsecureDownload.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/ruby/ql/test/query-tests/security/cwe-829/insecure_download.rb b/ruby/ql/test/query-tests/security/cwe-829/insecure_download.rb index 062de2e4e8f..80b6c286aad 100644 --- a/ruby/ql/test/query-tests/security/cwe-829/insecure_download.rb +++ b/ruby/ql/test/query-tests/security/cwe-829/insecure_download.rb @@ -2,7 +2,7 @@ require "excon" def foo def download_tools(installer) - Excon.get(installer[:url]) # $ MISSING: BAD= (requires hash flow) + Excon.get(installer[:url]) # $ MISSING: Alert (requires hash flow) end constants = { @@ -24,23 +24,23 @@ def bar Excon.get("https://download.microsoft.com/download/5/f/7/5f7acaeb-8363-451f-9425-68a90f98b238/visualcppbuildtools_full.exe") # GOOD - Excon.get("http://example.org/unsafe.APK") # $BAD= + Excon.get("http://example.org/unsafe.APK") # $ Alert end def baz - url = "http://example.org/unsafe.APK" + url = "http://example.org/unsafe.APK" # $ Source - Excon.get(url) # $BAD= + Excon.get(url) # $ Alert end def test - File.open("foo.exe").write(Excon.get("http://example.org/unsafe").body) # $BAD= + File.open("foo.exe").write(Excon.get("http://example.org/unsafe").body) # $ Alert File.open("foo.safe").write(Excon.get("http://example.org/unsafe").body) # GOOD - File.write("foo.exe", Excon.get("http://example.org/unsafe").body) # $BAD= + File.write("foo.exe", Excon.get("http://example.org/unsafe").body) # $ Alert - resp = Excon.get("http://example.org/unsafe.unknown") # $BAD= + resp = Excon.get("http://example.org/unsafe.unknown") # $ Alert file = File.open("unsafe.exe", "w") file.write(resp.body) @@ -50,6 +50,6 @@ def test end def sh - script = Net::HTTP.new("http://mydownload.example.org").get("/myscript.sh").body # $BAD= + script = Net::HTTP.new("http://mydownload.example.org").get("/myscript.sh").body # $ Alert system(script) -end \ No newline at end of file +end From 7615ec7a240897afbad78071f87ebace79420271 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 20 Jun 2025 09:43:50 +0200 Subject: [PATCH 259/340] Swift: convert PredicateInjection test to .qlref --- .../CWE-946/PredicateInjectionTest.expected | 20 ++++++++++++++++++ .../CWE-946/PredicateInjectionTest.ql | 21 ------------------- .../CWE-946/PredicateInjectionTest.qlref | 3 +++ .../Security/CWE-946/predicateInjection.swift | 12 +++++------ 4 files changed, 29 insertions(+), 27 deletions(-) delete mode 100644 swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.ql create mode 100644 swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.qlref diff --git a/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.expected b/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.expected index e69de29bb2d..4c1b0eb782e 100644 --- a/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.expected +++ b/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.expected @@ -0,0 +1,20 @@ +#select +| predicateInjection.swift:26:25:26:25 | remoteString | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:26:25:26:25 | remoteString | This predicate depends on a $@. | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | user-provided value | +| predicateInjection.swift:29:25:29:25 | remoteString | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:29:25:29:25 | remoteString | This predicate depends on a $@. | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | user-provided value | +| predicateInjection.swift:31:25:31:25 | remoteString | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:31:25:31:25 | remoteString | This predicate depends on a $@. | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | user-provided value | +| predicateInjection.swift:33:25:33:25 | remoteString | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:33:25:33:25 | remoteString | This predicate depends on a $@. | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | user-provided value | +| predicateInjection.swift:36:42:36:42 | remoteString | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:36:42:36:42 | remoteString | This predicate depends on a $@. | predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | user-provided value | +edges +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:26:25:26:25 | remoteString | provenance | | +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:29:25:29:25 | remoteString | provenance | | +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:31:25:31:25 | remoteString | provenance | | +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:33:25:33:25 | remoteString | provenance | | +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | predicateInjection.swift:36:42:36:42 | remoteString | provenance | | +nodes +| predicateInjection.swift:23:24:23:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| predicateInjection.swift:26:25:26:25 | remoteString | semmle.label | remoteString | +| predicateInjection.swift:29:25:29:25 | remoteString | semmle.label | remoteString | +| predicateInjection.swift:31:25:31:25 | remoteString | semmle.label | remoteString | +| predicateInjection.swift:33:25:33:25 | remoteString | semmle.label | remoteString | +| predicateInjection.swift:36:42:36:42 | remoteString | semmle.label | remoteString | +subpaths diff --git a/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.ql b/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.ql deleted file mode 100644 index 202ca05ad43..00000000000 --- a/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.ql +++ /dev/null @@ -1,21 +0,0 @@ -import swift -import codeql.swift.dataflow.DataFlow -import codeql.swift.security.PredicateInjectionQuery -import utils.test.InlineExpectationsTest - -module PredicateInjectionTest implements TestSig { - string getARelevantTag() { result = "hasPredicateInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node source, DataFlow::Node sink, Expr sinkExpr | - PredicateInjectionFlow::flow(source, sink) and - sinkExpr = sink.asExpr() and - location = sinkExpr.getLocation() and - element = sinkExpr.toString() and - tag = "hasPredicateInjection" and - value = source.asExpr().getLocation().getStartLine().toString() - ) - } -} - -import MakeTest diff --git a/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.qlref b/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.qlref new file mode 100644 index 00000000000..f968b9a3525 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-946/PredicateInjectionTest.qlref @@ -0,0 +1,3 @@ +query: queries/Security/CWE-943/PredicateInjection.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/swift/ql/test/query-tests/Security/CWE-946/predicateInjection.swift b/swift/ql/test/query-tests/Security/CWE-946/predicateInjection.swift index 1de6b50f4cf..56ead0544d2 100644 --- a/swift/ql/test/query-tests/Security/CWE-946/predicateInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-946/predicateInjection.swift @@ -20,19 +20,19 @@ class NSPredicate { // --- tests --- func test() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let safeString = "safe" - NSPredicate(format: remoteString, argumentArray: []) // $ hasPredicateInjection=23 + NSPredicate(format: remoteString, argumentArray: []) // $ Alert NSPredicate(format: safeString, argumentArray: []) // Safe NSPredicate(format: safeString, argumentArray: [remoteString]) // Safe - NSPredicate(format: remoteString, arguments: CVaListPointer(_fromUnsafeMutablePointer: UnsafeMutablePointer(bitPattern: 0)!)) // $ hasPredicateInjection=23 + NSPredicate(format: remoteString, arguments: CVaListPointer(_fromUnsafeMutablePointer: UnsafeMutablePointer(bitPattern: 0)!)) // $ Alert NSPredicate(format: safeString, arguments: CVaListPointer(_fromUnsafeMutablePointer: UnsafeMutablePointer(bitPattern: 0)!)) // Safe - NSPredicate(format: remoteString) // $ hasPredicateInjection=23 + NSPredicate(format: remoteString) // $ Alert NSPredicate(format: safeString) // Safe - NSPredicate(format: remoteString, "" as! CVarArg) // $ hasPredicateInjection=23 + NSPredicate(format: remoteString, "" as! CVarArg) // $ Alert NSPredicate(format: safeString, "" as! CVarArg) // Safe NSPredicate(format: safeString, remoteString as! CVarArg) // Safe - NSPredicate(fromMetadataQueryString: remoteString) // $ hasPredicateInjection=23 + NSPredicate(fromMetadataQueryString: remoteString) // $ Alert NSPredicate(fromMetadataQueryString: safeString) // Safe } From 895a8fcb0f7c3fbcef75353aa56ff67fb26f1de7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 20 Jun 2025 10:05:42 +0200 Subject: [PATCH 260/340] Swift: convert CleartextLogging test to .qlref --- .../CWE-312/CleartextLoggingTest.expected | 297 ++++++++++++++++++ .../Security/CWE-312/CleartextLoggingTest.ql | 20 -- .../CWE-312/CleartextLoggingTest.qlref | 3 + .../CWE-312/cleartextLoggingTest.swift | 168 +++++----- 4 files changed, 384 insertions(+), 104 deletions(-) delete mode 100644 swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.ql create mode 100644 swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.qlref diff --git a/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.expected b/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.expected index e69de29bb2d..397e4d8a05b 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.expected +++ b/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.expected @@ -0,0 +1,297 @@ +#select +| cleartextLoggingTest.swift:167:11:167:11 | [...] | cleartextLoggingTest.swift:167:11:167:11 | password | cleartextLoggingTest.swift:167:11:167:11 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:167:11:167:11 | password | password | +| cleartextLoggingTest.swift:168:11:168:11 | [...] | cleartextLoggingTest.swift:168:11:168:11 | password | cleartextLoggingTest.swift:168:11:168:11 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:168:11:168:11 | password | password | +| cleartextLoggingTest.swift:169:26:169:26 | password | cleartextLoggingTest.swift:169:26:169:26 | password | cleartextLoggingTest.swift:169:26:169:26 | password | This operation writes 'password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:169:26:169:26 | password | password | +| cleartextLoggingTest.swift:170:11:170:11 | [...] | cleartextLoggingTest.swift:170:11:170:11 | password | cleartextLoggingTest.swift:170:11:170:11 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:170:11:170:11 | password | password | +| cleartextLoggingTest.swift:171:26:171:26 | password | cleartextLoggingTest.swift:171:26:171:26 | password | cleartextLoggingTest.swift:171:26:171:26 | password | This operation writes 'password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:171:26:171:26 | password | password | +| cleartextLoggingTest.swift:172:42:172:42 | password | cleartextLoggingTest.swift:172:42:172:42 | password | cleartextLoggingTest.swift:172:42:172:42 | password | This operation writes 'password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:172:42:172:42 | password | password | +| cleartextLoggingTest.swift:175:16:175:16 | [...] | cleartextLoggingTest.swift:175:16:175:16 | password | cleartextLoggingTest.swift:175:16:175:16 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:175:16:175:16 | password | password | +| cleartextLoggingTest.swift:177:10:177:10 | password | cleartextLoggingTest.swift:177:10:177:10 | password | cleartextLoggingTest.swift:177:10:177:10 | password | This operation writes 'password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:177:10:177:10 | password | password | +| cleartextLoggingTest.swift:179:11:179:11 | password | cleartextLoggingTest.swift:179:11:179:11 | password | cleartextLoggingTest.swift:179:11:179:11 | password | This operation writes 'password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:179:11:179:11 | password | password | +| cleartextLoggingTest.swift:180:17:180:17 | [...] | cleartextLoggingTest.swift:180:17:180:17 | password | cleartextLoggingTest.swift:180:17:180:17 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:180:17:180:17 | password | password | +| cleartextLoggingTest.swift:181:20:181:24 | [...] | cleartextLoggingTest.swift:181:24:181:24 | password | cleartextLoggingTest.swift:181:20:181:24 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:181:24:181:24 | password | password | +| cleartextLoggingTest.swift:182:11:182:11 | "..." | cleartextLoggingTest.swift:182:14:182:14 | password | cleartextLoggingTest.swift:182:11:182:11 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:182:14:182:14 | password | password | +| cleartextLoggingTest.swift:183:18:183:38 | call to getVaList(_:) | cleartextLoggingTest.swift:183:29:183:29 | password | cleartextLoggingTest.swift:183:18:183:38 | call to getVaList(_:) | This operation writes 'call to getVaList(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:183:29:183:29 | password | password | +| cleartextLoggingTest.swift:184:21:184:45 | call to getVaList(_:) | cleartextLoggingTest.swift:184:36:184:36 | password | cleartextLoggingTest.swift:184:21:184:45 | call to getVaList(_:) | This operation writes 'call to getVaList(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:184:36:184:36 | password | password | +| cleartextLoggingTest.swift:220:11:220:11 | passphrase | cleartextLoggingTest.swift:220:11:220:11 | passphrase | cleartextLoggingTest.swift:220:11:220:11 | passphrase | This operation writes 'passphrase' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:220:11:220:11 | passphrase | passphrase | +| cleartextLoggingTest.swift:221:11:221:11 | pass_phrase | cleartextLoggingTest.swift:221:11:221:11 | pass_phrase | cleartextLoggingTest.swift:221:11:221:11 | pass_phrase | This operation writes 'pass_phrase' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:221:11:221:11 | pass_phrase | pass_phrase | +| cleartextLoggingTest.swift:224:49:224:49 | [...] | cleartextLoggingTest.swift:224:49:224:49 | password | cleartextLoggingTest.swift:224:49:224:49 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:224:49:224:49 | password | password | +| cleartextLoggingTest.swift:225:55:225:63 | [...] | cleartextLoggingTest.swift:225:63:225:63 | password | cleartextLoggingTest.swift:225:55:225:63 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:225:63:225:63 | password | password | +| cleartextLoggingTest.swift:241:8:241:8 | x | cleartextLoggingTest.swift:240:24:240:24 | x | cleartextLoggingTest.swift:241:8:241:8 | x | This operation writes 'x' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:240:24:240:24 | x | x | +| cleartextLoggingTest.swift:244:8:244:8 | y | cleartextLoggingTest.swift:243:10:243:22 | call to getPassword() | cleartextLoggingTest.swift:244:8:244:8 | y | This operation writes 'y' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:243:10:243:22 | call to getPassword() | call to getPassword() | +| cleartextLoggingTest.swift:248:8:248:10 | .password | cleartextLoggingTest.swift:248:8:248:10 | .password | cleartextLoggingTest.swift:248:8:248:10 | .password | This operation writes '.password' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:248:8:248:10 | .password | .password | +| cleartextLoggingTest.swift:263:8:263:20 | .value | cleartextLoggingTest.swift:263:8:263:11 | .password | cleartextLoggingTest.swift:263:8:263:20 | .value | This operation writes '.value' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:263:8:263:11 | .password | .password | +| cleartextLoggingTest.swift:287:8:287:8 | [...] | cleartextLoggingTest.swift:286:8:286:8 | password | cleartextLoggingTest.swift:287:8:287:8 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:286:8:286:8 | password | password | +| cleartextLoggingTest.swift:290:8:290:8 | [...] | cleartextLoggingTest.swift:289:18:289:18 | password | cleartextLoggingTest.swift:290:8:290:8 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:289:18:289:18 | password | password | +| cleartextLoggingTest.swift:296:13:296:13 | [...] | cleartextLoggingTest.swift:295:13:295:13 | password | cleartextLoggingTest.swift:296:13:296:13 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:295:13:295:13 | password | password | +| cleartextLoggingTest.swift:302:7:302:7 | myString7 | cleartextLoggingTest.swift:301:7:301:7 | password | cleartextLoggingTest.swift:302:7:302:7 | myString7 | This operation writes 'myString7' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:301:7:301:7 | password | password | +| cleartextLoggingTest.swift:308:8:308:8 | [...] | cleartextLoggingTest.swift:307:18:307:18 | password | cleartextLoggingTest.swift:308:8:308:8 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:307:18:307:18 | password | password | +| cleartextLoggingTest.swift:313:8:313:8 | [...] | cleartextLoggingTest.swift:311:19:311:19 | password | cleartextLoggingTest.swift:313:8:313:8 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:311:19:311:19 | password | password | +| cleartextLoggingTest.swift:319:8:319:8 | [...] | cleartextLoggingTest.swift:318:2:318:2 | password | cleartextLoggingTest.swift:319:8:319:8 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:318:2:318:2 | password | password | +| cleartextLoggingTest.swift:334:17:334:17 | { ... } | cleartextLoggingTest.swift:334:17:334:17 | password | cleartextLoggingTest.swift:334:17:334:17 | { ... } | This operation writes '{ ... }' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:334:17:334:17 | password | password | +| cleartextLoggingTest.swift:336:20:336:20 | { ... } | cleartextLoggingTest.swift:336:20:336:20 | password | cleartextLoggingTest.swift:336:20:336:20 | { ... } | This operation writes '{ ... }' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:336:20:336:20 | password | password | +| cleartextLoggingTest.swift:338:23:338:23 | { ... } | cleartextLoggingTest.swift:338:23:338:23 | password | cleartextLoggingTest.swift:338:23:338:23 | { ... } | This operation writes '{ ... }' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:338:23:338:23 | password | password | +| cleartextLoggingTest.swift:340:23:340:23 | { ... } | cleartextLoggingTest.swift:340:23:340:23 | password | cleartextLoggingTest.swift:340:23:340:23 | { ... } | This operation writes '{ ... }' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:340:23:340:23 | password | password | +| cleartextLoggingTest.swift:342:14:342:14 | { ... } | cleartextLoggingTest.swift:342:14:342:14 | password | cleartextLoggingTest.swift:342:14:342:14 | { ... } | This operation writes '{ ... }' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:342:14:342:14 | password | password | +| cleartextLoggingTest.swift:347:69:347:69 | "..." | cleartextLoggingTest.swift:347:72:347:72 | passwordString | cleartextLoggingTest.swift:347:69:347:69 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:347:72:347:72 | passwordString | passwordString | +| cleartextLoggingTest.swift:350:61:350:61 | "..." | cleartextLoggingTest.swift:350:64:350:64 | passwordString | cleartextLoggingTest.swift:350:61:350:61 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:350:64:350:64 | passwordString | passwordString | +| cleartextLoggingTest.swift:351:92:351:118 | call to getVaList(_:) | cleartextLoggingTest.swift:351:103:351:103 | passwordString | cleartextLoggingTest.swift:351:92:351:118 | call to getVaList(_:) | This operation writes 'call to getVaList(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:351:103:351:103 | passwordString | passwordString | +| cleartextLoggingTest.swift:353:20:353:20 | "..." | cleartextLoggingTest.swift:353:23:353:23 | passwordString | cleartextLoggingTest.swift:353:20:353:20 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:353:23:353:23 | passwordString | passwordString | +| cleartextLoggingTest.swift:354:40:354:40 | [...] | cleartextLoggingTest.swift:354:40:354:40 | passwordString | cleartextLoggingTest.swift:354:40:354:40 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:354:40:354:40 | passwordString | passwordString | +| cleartextLoggingTest.swift:355:44:355:51 | [...] | cleartextLoggingTest.swift:355:51:355:51 | passwordString | cleartextLoggingTest.swift:355:44:355:51 | [...] | This operation writes '[...]' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:355:51:355:51 | passwordString | passwordString | +| cleartextLoggingTest.swift:356:17:356:17 | "..." | cleartextLoggingTest.swift:356:20:356:20 | passwordString | cleartextLoggingTest.swift:356:17:356:17 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:356:20:356:20 | passwordString | passwordString | +| cleartextLoggingTest.swift:357:37:357:63 | call to getVaList(_:) | cleartextLoggingTest.swift:357:48:357:48 | passwordString | cleartextLoggingTest.swift:357:37:357:63 | call to getVaList(_:) | This operation writes 'call to getVaList(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:357:48:357:48 | passwordString | passwordString | +| cleartextLoggingTest.swift:358:23:358:23 | "..." | cleartextLoggingTest.swift:358:26:358:26 | passwordString | cleartextLoggingTest.swift:358:23:358:23 | "..." | This operation writes '"..."' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:358:26:358:26 | passwordString | passwordString | +| cleartextLoggingTest.swift:359:43:359:69 | call to getVaList(_:) | cleartextLoggingTest.swift:359:54:359:54 | passwordString | cleartextLoggingTest.swift:359:43:359:69 | call to getVaList(_:) | This operation writes 'call to getVaList(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:359:54:359:54 | passwordString | passwordString | +| cleartextLoggingTest.swift:365:18:365:18 | authKey | cleartextLoggingTest.swift:365:18:365:18 | authKey | cleartextLoggingTest.swift:365:18:365:18 | authKey | This operation writes 'authKey' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:365:18:365:18 | authKey | authKey | +| cleartextLoggingTest.swift:366:18:366:33 | call to String.init(_:) | cleartextLoggingTest.swift:366:25:366:25 | authKey2 | cleartextLoggingTest.swift:366:18:366:33 | call to String.init(_:) | This operation writes 'call to String.init(_:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:366:25:366:25 | authKey2 | authKey2 | +| cleartextLoggingTest.swift:369:16:369:40 | call to NSString.init(string:) | cleartextLoggingTest.swift:369:33:369:33 | authKey | cleartextLoggingTest.swift:369:16:369:40 | call to NSString.init(string:) | This operation writes 'call to NSString.init(string:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:369:33:369:33 | authKey | authKey | +| cleartextLoggingTest.swift:370:13:370:13 | authKey | cleartextLoggingTest.swift:370:13:370:13 | authKey | cleartextLoggingTest.swift:370:13:370:13 | authKey | This operation writes 'authKey' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:370:13:370:13 | authKey | authKey | +| cleartextLoggingTest.swift:371:24:371:24 | authKey | cleartextLoggingTest.swift:371:24:371:24 | authKey | cleartextLoggingTest.swift:371:24:371:24 | authKey | This operation writes 'authKey' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:371:24:371:24 | authKey | authKey | +| cleartextLoggingTest.swift:378:16:378:16 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:378:16:378:16 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:379:18:379:18 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:379:18:379:18 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:380:18:380:18 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:380:18:380:18 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:381:17:381:37 | call to NSString.init(string:) | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:381:17:381:37 | call to NSString.init(string:) | This operation writes 'call to NSString.init(string:)' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:382:19:382:19 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:382:19:382:19 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:383:20:383:20 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:383:20:383:20 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:384:18:384:18 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:384:18:384:18 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:385:21:385:21 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:385:21:385:21 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +| cleartextLoggingTest.swift:386:18:386:18 | msg | cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:386:18:386:18 | msg | This operation writes 'msg' to a log file. It may contain unencrypted sensitive data from $@. | cleartextLoggingTest.swift:377:29:377:29 | authKey | authKey | +edges +| cleartextLoggingTest.swift:167:11:167:11 | [...] [Collection element] | cleartextLoggingTest.swift:167:11:167:11 | [...] | provenance | | +| cleartextLoggingTest.swift:167:11:167:11 | password | cleartextLoggingTest.swift:167:11:167:11 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:168:11:168:11 | [...] [Collection element] | cleartextLoggingTest.swift:168:11:168:11 | [...] | provenance | | +| cleartextLoggingTest.swift:168:11:168:11 | password | cleartextLoggingTest.swift:168:11:168:11 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:170:11:170:11 | [...] [Collection element] | cleartextLoggingTest.swift:170:11:170:11 | [...] | provenance | | +| cleartextLoggingTest.swift:170:11:170:11 | password | cleartextLoggingTest.swift:170:11:170:11 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:175:16:175:16 | [...] [Collection element] | cleartextLoggingTest.swift:175:16:175:16 | [...] | provenance | | +| cleartextLoggingTest.swift:175:16:175:16 | password | cleartextLoggingTest.swift:175:16:175:16 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:180:17:180:17 | [...] [Collection element] | cleartextLoggingTest.swift:180:17:180:17 | [...] | provenance | | +| cleartextLoggingTest.swift:180:17:180:17 | password | cleartextLoggingTest.swift:180:17:180:17 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:181:20:181:24 | [...] [Collection element] | cleartextLoggingTest.swift:181:20:181:24 | [...] | provenance | | +| cleartextLoggingTest.swift:181:24:181:24 | password | cleartextLoggingTest.swift:181:20:181:24 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:182:14:182:14 | password | cleartextLoggingTest.swift:182:11:182:11 | "..." | provenance | | +| cleartextLoggingTest.swift:183:28:183:37 | [...] [Collection element] | cleartextLoggingTest.swift:183:18:183:38 | call to getVaList(_:) | provenance | | +| cleartextLoggingTest.swift:183:29:183:29 | password | cleartextLoggingTest.swift:183:28:183:37 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:184:31:184:44 | [...] [Collection element] | cleartextLoggingTest.swift:184:21:184:45 | call to getVaList(_:) | provenance | | +| cleartextLoggingTest.swift:184:36:184:36 | password | cleartextLoggingTest.swift:184:31:184:44 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:224:49:224:49 | [...] [Collection element] | cleartextLoggingTest.swift:224:49:224:49 | [...] | provenance | | +| cleartextLoggingTest.swift:224:49:224:49 | password | cleartextLoggingTest.swift:224:49:224:49 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:225:55:225:63 | [...] [Collection element] | cleartextLoggingTest.swift:225:55:225:63 | [...] | provenance | | +| cleartextLoggingTest.swift:225:63:225:63 | password | cleartextLoggingTest.swift:225:55:225:63 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:240:24:240:24 | x | cleartextLoggingTest.swift:241:8:241:8 | x | provenance | | +| cleartextLoggingTest.swift:243:10:243:22 | call to getPassword() | cleartextLoggingTest.swift:244:8:244:8 | y | provenance | | +| cleartextLoggingTest.swift:253:7:253:7 | self | file://:0:0:0:0 | self | provenance | | +| cleartextLoggingTest.swift:263:8:263:11 | .password | cleartextLoggingTest.swift:253:7:253:7 | self | provenance | | +| cleartextLoggingTest.swift:263:8:263:11 | .password | cleartextLoggingTest.swift:263:8:263:20 | .value | provenance | Config | +| cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | cleartextLoggingTest.swift:286:23:286:23 | [post] myString2 | provenance | | +| cleartextLoggingTest.swift:286:8:286:8 | password | cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:286:23:286:23 | [post] myString2 | cleartextLoggingTest.swift:287:8:287:8 | myString2 | provenance | | +| cleartextLoggingTest.swift:287:8:287:8 | [...] [Collection element] | cleartextLoggingTest.swift:287:8:287:8 | [...] | provenance | | +| cleartextLoggingTest.swift:287:8:287:8 | myString2 | cleartextLoggingTest.swift:287:8:287:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:289:8:289:18 | ... .+(_:_:) ... | cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | cleartextLoggingTest.swift:289:33:289:33 | [post] myString3 | provenance | | +| cleartextLoggingTest.swift:289:18:289:18 | password | cleartextLoggingTest.swift:289:8:289:18 | ... .+(_:_:) ... | provenance | | +| cleartextLoggingTest.swift:289:33:289:33 | [post] myString3 | cleartextLoggingTest.swift:290:8:290:8 | myString3 | provenance | | +| cleartextLoggingTest.swift:290:8:290:8 | [...] [Collection element] | cleartextLoggingTest.swift:290:8:290:8 | [...] | provenance | | +| cleartextLoggingTest.swift:290:8:290:8 | myString3 | cleartextLoggingTest.swift:290:8:290:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | cleartextLoggingTest.swift:295:28:295:28 | [post] myString5 | provenance | | +| cleartextLoggingTest.swift:295:13:295:13 | password | cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:295:28:295:28 | [post] myString5 | cleartextLoggingTest.swift:296:13:296:13 | myString5 | provenance | | +| cleartextLoggingTest.swift:296:13:296:13 | [...] [Collection element] | cleartextLoggingTest.swift:296:13:296:13 | [...] | provenance | | +| cleartextLoggingTest.swift:296:13:296:13 | myString5 | cleartextLoggingTest.swift:296:13:296:13 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:301:7:301:7 | password | cleartextLoggingTest.swift:301:22:301:22 | [post] myString7 | provenance | | +| cleartextLoggingTest.swift:301:22:301:22 | [post] myString7 | cleartextLoggingTest.swift:302:7:302:7 | myString7 | provenance | | +| cleartextLoggingTest.swift:307:2:307:2 | [post] myString9 | cleartextLoggingTest.swift:308:8:308:8 | myString9 | provenance | | +| cleartextLoggingTest.swift:307:18:307:18 | password | cleartextLoggingTest.swift:307:2:307:2 | [post] myString9 | provenance | | +| cleartextLoggingTest.swift:308:8:308:8 | [...] [Collection element] | cleartextLoggingTest.swift:308:8:308:8 | [...] | provenance | | +| cleartextLoggingTest.swift:308:8:308:8 | myString9 | cleartextLoggingTest.swift:308:8:308:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:311:2:311:2 | [post] myString10 | cleartextLoggingTest.swift:313:8:313:8 | myString10 | provenance | | +| cleartextLoggingTest.swift:311:19:311:19 | password | cleartextLoggingTest.swift:311:2:311:2 | [post] myString10 | provenance | | +| cleartextLoggingTest.swift:313:8:313:8 | [...] [Collection element] | cleartextLoggingTest.swift:313:8:313:8 | [...] | provenance | | +| cleartextLoggingTest.swift:313:8:313:8 | myString10 | cleartextLoggingTest.swift:313:8:313:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:318:2:318:2 | password | cleartextLoggingTest.swift:318:22:318:22 | [post] myString12 | provenance | | +| cleartextLoggingTest.swift:318:22:318:22 | [post] myString12 | cleartextLoggingTest.swift:319:8:319:8 | myString12 | provenance | | +| cleartextLoggingTest.swift:319:8:319:8 | [...] [Collection element] | cleartextLoggingTest.swift:319:8:319:8 | [...] | provenance | | +| cleartextLoggingTest.swift:319:8:319:8 | myString12 | cleartextLoggingTest.swift:319:8:319:8 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:334:17:334:17 | password | cleartextLoggingTest.swift:334:17:334:17 | { ... } | provenance | | +| cleartextLoggingTest.swift:336:20:336:20 | password | cleartextLoggingTest.swift:336:20:336:20 | { ... } | provenance | | +| cleartextLoggingTest.swift:338:23:338:23 | password | cleartextLoggingTest.swift:338:23:338:23 | { ... } | provenance | | +| cleartextLoggingTest.swift:340:23:340:23 | password | cleartextLoggingTest.swift:340:23:340:23 | { ... } | provenance | | +| cleartextLoggingTest.swift:342:14:342:14 | password | cleartextLoggingTest.swift:342:14:342:14 | { ... } | provenance | | +| cleartextLoggingTest.swift:347:72:347:72 | passwordString | cleartextLoggingTest.swift:347:69:347:69 | "..." | provenance | | +| cleartextLoggingTest.swift:350:64:350:64 | passwordString | cleartextLoggingTest.swift:350:61:350:61 | "..." | provenance | | +| cleartextLoggingTest.swift:351:102:351:117 | [...] [Collection element] | cleartextLoggingTest.swift:351:92:351:118 | call to getVaList(_:) | provenance | | +| cleartextLoggingTest.swift:351:103:351:103 | passwordString | cleartextLoggingTest.swift:351:102:351:117 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:353:23:353:23 | passwordString | cleartextLoggingTest.swift:353:20:353:20 | "..." | provenance | | +| cleartextLoggingTest.swift:354:40:354:40 | [...] [Collection element] | cleartextLoggingTest.swift:354:40:354:40 | [...] | provenance | | +| cleartextLoggingTest.swift:354:40:354:40 | passwordString | cleartextLoggingTest.swift:354:40:354:40 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:355:44:355:51 | [...] [Collection element] | cleartextLoggingTest.swift:355:44:355:51 | [...] | provenance | | +| cleartextLoggingTest.swift:355:51:355:51 | passwordString | cleartextLoggingTest.swift:355:44:355:51 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:356:20:356:20 | passwordString | cleartextLoggingTest.swift:356:17:356:17 | "..." | provenance | | +| cleartextLoggingTest.swift:357:47:357:62 | [...] [Collection element] | cleartextLoggingTest.swift:357:37:357:63 | call to getVaList(_:) | provenance | | +| cleartextLoggingTest.swift:357:48:357:48 | passwordString | cleartextLoggingTest.swift:357:47:357:62 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:358:26:358:26 | passwordString | cleartextLoggingTest.swift:358:23:358:23 | "..." | provenance | | +| cleartextLoggingTest.swift:359:53:359:68 | [...] [Collection element] | cleartextLoggingTest.swift:359:43:359:69 | call to getVaList(_:) | provenance | | +| cleartextLoggingTest.swift:359:54:359:54 | passwordString | cleartextLoggingTest.swift:359:53:359:68 | [...] [Collection element] | provenance | | +| cleartextLoggingTest.swift:366:25:366:25 | authKey2 | cleartextLoggingTest.swift:366:18:366:33 | call to String.init(_:) | provenance | | +| cleartextLoggingTest.swift:369:33:369:33 | authKey | cleartextLoggingTest.swift:369:16:369:40 | call to NSString.init(string:) | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:378:16:378:16 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:379:18:379:18 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:380:18:380:18 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:381:34:381:34 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:382:19:382:19 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:383:20:383:20 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:384:18:384:18 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:385:21:385:21 | msg | provenance | | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | cleartextLoggingTest.swift:386:18:386:18 | msg | provenance | | +| cleartextLoggingTest.swift:381:34:381:34 | msg | cleartextLoggingTest.swift:381:17:381:37 | call to NSString.init(string:) | provenance | | +| file://:0:0:0:0 | self | file://:0:0:0:0 | .value | provenance | Config | +nodes +| cleartextLoggingTest.swift:167:11:167:11 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:167:11:167:11 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:167:11:167:11 | password | semmle.label | password | +| cleartextLoggingTest.swift:168:11:168:11 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:168:11:168:11 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:168:11:168:11 | password | semmle.label | password | +| cleartextLoggingTest.swift:169:26:169:26 | password | semmle.label | password | +| cleartextLoggingTest.swift:170:11:170:11 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:170:11:170:11 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:170:11:170:11 | password | semmle.label | password | +| cleartextLoggingTest.swift:171:26:171:26 | password | semmle.label | password | +| cleartextLoggingTest.swift:172:42:172:42 | password | semmle.label | password | +| cleartextLoggingTest.swift:175:16:175:16 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:175:16:175:16 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:175:16:175:16 | password | semmle.label | password | +| cleartextLoggingTest.swift:177:10:177:10 | password | semmle.label | password | +| cleartextLoggingTest.swift:179:11:179:11 | password | semmle.label | password | +| cleartextLoggingTest.swift:180:17:180:17 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:180:17:180:17 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:180:17:180:17 | password | semmle.label | password | +| cleartextLoggingTest.swift:181:20:181:24 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:181:20:181:24 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:181:24:181:24 | password | semmle.label | password | +| cleartextLoggingTest.swift:182:11:182:11 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:182:14:182:14 | password | semmle.label | password | +| cleartextLoggingTest.swift:183:18:183:38 | call to getVaList(_:) | semmle.label | call to getVaList(_:) | +| cleartextLoggingTest.swift:183:28:183:37 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:183:29:183:29 | password | semmle.label | password | +| cleartextLoggingTest.swift:184:21:184:45 | call to getVaList(_:) | semmle.label | call to getVaList(_:) | +| cleartextLoggingTest.swift:184:31:184:44 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:184:36:184:36 | password | semmle.label | password | +| cleartextLoggingTest.swift:220:11:220:11 | passphrase | semmle.label | passphrase | +| cleartextLoggingTest.swift:221:11:221:11 | pass_phrase | semmle.label | pass_phrase | +| cleartextLoggingTest.swift:224:49:224:49 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:224:49:224:49 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:224:49:224:49 | password | semmle.label | password | +| cleartextLoggingTest.swift:225:55:225:63 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:225:55:225:63 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:225:63:225:63 | password | semmle.label | password | +| cleartextLoggingTest.swift:240:24:240:24 | x | semmle.label | x | +| cleartextLoggingTest.swift:241:8:241:8 | x | semmle.label | x | +| cleartextLoggingTest.swift:243:10:243:22 | call to getPassword() | semmle.label | call to getPassword() | +| cleartextLoggingTest.swift:244:8:244:8 | y | semmle.label | y | +| cleartextLoggingTest.swift:248:8:248:10 | .password | semmle.label | .password | +| cleartextLoggingTest.swift:253:7:253:7 | self | semmle.label | self | +| cleartextLoggingTest.swift:263:8:263:11 | .password | semmle.label | .password | +| cleartextLoggingTest.swift:263:8:263:20 | .value | semmle.label | .value | +| cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:286:8:286:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:286:8:286:8 | password | semmle.label | password | +| cleartextLoggingTest.swift:286:23:286:23 | [post] myString2 | semmle.label | [post] myString2 | +| cleartextLoggingTest.swift:287:8:287:8 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:287:8:287:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:287:8:287:8 | myString2 | semmle.label | myString2 | +| cleartextLoggingTest.swift:289:8:289:18 | ... .+(_:_:) ... | semmle.label | ... .+(_:_:) ... | +| cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:289:8:289:18 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:289:18:289:18 | password | semmle.label | password | +| cleartextLoggingTest.swift:289:33:289:33 | [post] myString3 | semmle.label | [post] myString3 | +| cleartextLoggingTest.swift:290:8:290:8 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:290:8:290:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:290:8:290:8 | myString3 | semmle.label | myString3 | +| cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:295:13:295:13 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:295:13:295:13 | password | semmle.label | password | +| cleartextLoggingTest.swift:295:28:295:28 | [post] myString5 | semmle.label | [post] myString5 | +| cleartextLoggingTest.swift:296:13:296:13 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:296:13:296:13 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:296:13:296:13 | myString5 | semmle.label | myString5 | +| cleartextLoggingTest.swift:301:7:301:7 | password | semmle.label | password | +| cleartextLoggingTest.swift:301:22:301:22 | [post] myString7 | semmle.label | [post] myString7 | +| cleartextLoggingTest.swift:302:7:302:7 | myString7 | semmle.label | myString7 | +| cleartextLoggingTest.swift:307:2:307:2 | [post] myString9 | semmle.label | [post] myString9 | +| cleartextLoggingTest.swift:307:18:307:18 | password | semmle.label | password | +| cleartextLoggingTest.swift:308:8:308:8 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:308:8:308:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:308:8:308:8 | myString9 | semmle.label | myString9 | +| cleartextLoggingTest.swift:311:2:311:2 | [post] myString10 | semmle.label | [post] myString10 | +| cleartextLoggingTest.swift:311:19:311:19 | password | semmle.label | password | +| cleartextLoggingTest.swift:313:8:313:8 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:313:8:313:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:313:8:313:8 | myString10 | semmle.label | myString10 | +| cleartextLoggingTest.swift:318:2:318:2 | password | semmle.label | password | +| cleartextLoggingTest.swift:318:22:318:22 | [post] myString12 | semmle.label | [post] myString12 | +| cleartextLoggingTest.swift:319:8:319:8 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:319:8:319:8 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:319:8:319:8 | myString12 | semmle.label | myString12 | +| cleartextLoggingTest.swift:334:17:334:17 | password | semmle.label | password | +| cleartextLoggingTest.swift:334:17:334:17 | { ... } | semmle.label | { ... } | +| cleartextLoggingTest.swift:336:20:336:20 | password | semmle.label | password | +| cleartextLoggingTest.swift:336:20:336:20 | { ... } | semmle.label | { ... } | +| cleartextLoggingTest.swift:338:23:338:23 | password | semmle.label | password | +| cleartextLoggingTest.swift:338:23:338:23 | { ... } | semmle.label | { ... } | +| cleartextLoggingTest.swift:340:23:340:23 | password | semmle.label | password | +| cleartextLoggingTest.swift:340:23:340:23 | { ... } | semmle.label | { ... } | +| cleartextLoggingTest.swift:342:14:342:14 | password | semmle.label | password | +| cleartextLoggingTest.swift:342:14:342:14 | { ... } | semmle.label | { ... } | +| cleartextLoggingTest.swift:347:69:347:69 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:347:72:347:72 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:350:61:350:61 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:350:64:350:64 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:351:92:351:118 | call to getVaList(_:) | semmle.label | call to getVaList(_:) | +| cleartextLoggingTest.swift:351:102:351:117 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:351:103:351:103 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:353:20:353:20 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:353:23:353:23 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:354:40:354:40 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:354:40:354:40 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:354:40:354:40 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:355:44:355:51 | [...] | semmle.label | [...] | +| cleartextLoggingTest.swift:355:44:355:51 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:355:51:355:51 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:356:17:356:17 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:356:20:356:20 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:357:37:357:63 | call to getVaList(_:) | semmle.label | call to getVaList(_:) | +| cleartextLoggingTest.swift:357:47:357:62 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:357:48:357:48 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:358:23:358:23 | "..." | semmle.label | "..." | +| cleartextLoggingTest.swift:358:26:358:26 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:359:43:359:69 | call to getVaList(_:) | semmle.label | call to getVaList(_:) | +| cleartextLoggingTest.swift:359:53:359:68 | [...] [Collection element] | semmle.label | [...] [Collection element] | +| cleartextLoggingTest.swift:359:54:359:54 | passwordString | semmle.label | passwordString | +| cleartextLoggingTest.swift:365:18:365:18 | authKey | semmle.label | authKey | +| cleartextLoggingTest.swift:366:18:366:33 | call to String.init(_:) | semmle.label | call to String.init(_:) | +| cleartextLoggingTest.swift:366:25:366:25 | authKey2 | semmle.label | authKey2 | +| cleartextLoggingTest.swift:369:16:369:40 | call to NSString.init(string:) | semmle.label | call to NSString.init(string:) | +| cleartextLoggingTest.swift:369:33:369:33 | authKey | semmle.label | authKey | +| cleartextLoggingTest.swift:370:13:370:13 | authKey | semmle.label | authKey | +| cleartextLoggingTest.swift:371:24:371:24 | authKey | semmle.label | authKey | +| cleartextLoggingTest.swift:377:29:377:29 | authKey | semmle.label | authKey | +| cleartextLoggingTest.swift:378:16:378:16 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:379:18:379:18 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:380:18:380:18 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:381:17:381:37 | call to NSString.init(string:) | semmle.label | call to NSString.init(string:) | +| cleartextLoggingTest.swift:381:34:381:34 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:382:19:382:19 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:383:20:383:20 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:384:18:384:18 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:385:21:385:21 | msg | semmle.label | msg | +| cleartextLoggingTest.swift:386:18:386:18 | msg | semmle.label | msg | +| file://:0:0:0:0 | .value | semmle.label | .value | +| file://:0:0:0:0 | self | semmle.label | self | +subpaths +| cleartextLoggingTest.swift:263:8:263:11 | .password | cleartextLoggingTest.swift:253:7:253:7 | self | file://:0:0:0:0 | .value | cleartextLoggingTest.swift:263:8:263:20 | .value | diff --git a/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.ql b/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.ql deleted file mode 100644 index e7371e9d743..00000000000 --- a/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import swift -import codeql.swift.dataflow.DataFlow -import codeql.swift.security.CleartextLoggingQuery -import utils.test.InlineExpectationsTest - -module CleartextLogging implements TestSig { - string getARelevantTag() { result = "hasCleartextLogging" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node source, DataFlow::Node sink | - CleartextLoggingFlow::flow(source, sink) and - location = sink.getLocation() and - element = sink.toString() and - tag = "hasCleartextLogging" and - value = source.asExpr().getLocation().getStartLine().toString() - ) - } -} - -import MakeTest diff --git a/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.qlref b/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.qlref new file mode 100644 index 00000000000..d277352353d --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-312/CleartextLoggingTest.qlref @@ -0,0 +1,3 @@ +query: queries/Security/CWE-312/CleartextLogging.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift index c3f29378519..060d6c5041e 100644 --- a/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift +++ b/swift/ql/test/query-tests/Security/CWE-312/cleartextLoggingTest.swift @@ -164,24 +164,24 @@ class MyRemoteLogger { // --- tests --- func test1(password: String, passwordHash : String, passphrase: String, pass_phrase: String) { - print(password) // $ hasCleartextLogging=167 - print(password, separator: "") // $ $ hasCleartextLogging=168 - print("", separator: password) // $ hasCleartextLogging=169 - print(password, separator: "", terminator: "") // $ hasCleartextLogging=170 - print("", separator: password, terminator: "") // $ hasCleartextLogging=171 - print("", separator: "", terminator: password) // $ hasCleartextLogging=172 + print(password) // $ Alert + print(password, separator: "") // $ Alert + print("", separator: password) // $ Alert + print(password, separator: "", terminator: "") // $ Alert + print("", separator: password, terminator: "") // $ Alert + print("", separator: "", terminator: password) // $ Alert print(passwordHash) // safe - debugPrint(password) // $ hasCleartextLogging=175 + debugPrint(password) // $ Alert - dump(password) // $ hasCleartextLogging=177 + dump(password) // $ Alert - NSLog(password) // $ hasCleartextLogging=179 - NSLog("%@", password) // $ hasCleartextLogging=180 - NSLog("%@ %@", "", password) // $ hasCleartextLogging=181 - NSLog("\(password)") // $ hasCleartextLogging=182 - NSLogv("%@", getVaList([password])) // $ hasCleartextLogging=183 - NSLogv("%@ %@", getVaList(["", password])) // $ hasCleartextLogging=184 + NSLog(password) // $ Alert + NSLog("%@", password) // $ Alert + NSLog("%@ %@", "", password) // $ Alert + NSLog("\(password)") // $ Alert + NSLogv("%@", getVaList([password])) // $ Alert + NSLogv("%@ %@", getVaList(["", password])) // $ Alert NSLog(passwordHash) // safe NSLogv("%@", getVaList([passwordHash])) // safe @@ -191,38 +191,38 @@ func test1(password: String, passwordHash : String, passphrase: String, pass_phr log.log("\(password)") // safe log.log("\(password, privacy: .auto)") // safe log.log("\(password, privacy: .private)") // safe - log.log("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=194 + log.log("\(password, privacy: .public)") // $ MISSING: Alert log.log("\(passwordHash, privacy: .public)") // safe log.log("\(password, privacy: .sensitive)") // safe - log.log("\(bankAccount)") // $ MISSING: hasCleartextLogging=197 - log.log("\(bankAccount, privacy: .auto)") // $ MISSING: hasCleartextLogging=198 + log.log("\(bankAccount)") // $ MISSING: Alert + log.log("\(bankAccount, privacy: .auto)") // $ MISSING: Alert log.log("\(bankAccount, privacy: .private)") // safe - log.log("\(bankAccount, privacy: .public)") // $ MISSING: hasCleartextLogging=200 + log.log("\(bankAccount, privacy: .public)") // $ MISSING: Alert log.log("\(bankAccount, privacy: .sensitive)") // safe - log.log(level: .default, "\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=202 - log.trace("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=203 + log.log(level: .default, "\(password, privacy: .public)") // $ MISSING: Alert + log.trace("\(password, privacy: .public)") // $ MISSING: Alert log.trace("\(passwordHash, privacy: .public)") // safe - log.debug("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=205 + log.debug("\(password, privacy: .public)") // $ MISSING: Alert log.debug("\(passwordHash, privacy: .public)") // safe - log.info("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=207 + log.info("\(password, privacy: .public)") // $ MISSING: Alert log.info("\(passwordHash, privacy: .public)") // safe - log.notice("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=209 + log.notice("\(password, privacy: .public)") // $ MISSING: Alert log.notice("\(passwordHash, privacy: .public)") // safe - log.warning("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=211 + log.warning("\(password, privacy: .public)") // $ MISSING: Alert log.warning("\(passwordHash, privacy: .public)") // safe - log.error("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=213 + log.error("\(password, privacy: .public)") // $ MISSING: Alert log.error("\(passwordHash, privacy: .public)") // safe - log.critical("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=215 + log.critical("\(password, privacy: .public)") // $ MISSING: Alert log.critical("\(passwordHash, privacy: .public)") // safe - log.fault("\(password, privacy: .public)") // $ MISSING: hasCleartextLogging=217 + log.fault("\(password, privacy: .public)") // $ MISSING: Alert log.fault("\(passwordHash, privacy: .public)") // safe - NSLog(passphrase) // $ hasCleartextLogging=220 - NSLog(pass_phrase) // $ hasCleartextLogging=221 + NSLog(passphrase) // $ Alert + NSLog(pass_phrase) // $ Alert os_log("%@", log: .default, type: .default, "") // safe - os_log("%@", log: .default, type: .default, password) // $ hasCleartextLogging=224 - os_log("%@ %@ %@", log: .default, type: .default, "", "", password) // $ hasCleartextLogging=225 + os_log("%@", log: .default, type: .default, password) // $ Alert + os_log("%@ %@ %@", log: .default, type: .default, "", "", password) // $ Alert } class MyClass { @@ -236,16 +236,16 @@ func doSomething(password: String) { } func test3(x: String) { // alternative evidence of sensitivity... - NSLog(x) // $ MISSING: hasCleartextLogging=240 - doSomething(password: x); - NSLog(x) // $ hasCleartextLogging=240 + NSLog(x) // $ MISSING: Alert + doSomething(password: x); // $ Source + NSLog(x) // $ Alert - let y = getPassword(); - NSLog(y) // $ hasCleartextLogging=243 + let y = getPassword(); // $ Source + NSLog(y) // $ Alert let z = MyClass() NSLog(z.harmless) // safe - NSLog(z.password) // $ hasCleartextLogging=248 + NSLog(z.password) // $ Alert } struct MyOuter { @@ -260,7 +260,7 @@ struct MyOuter { func test3(mo : MyOuter) { // struct members... - NSLog(mo.password.value) // $ hasCleartextLogging=263 + NSLog(mo.password.value) // $ Alert NSLog(mo.harmless.value) // safe } @@ -283,40 +283,40 @@ func test4(harmless: String, password: String) { print(harmless, to: &myString1) print(myString1) // safe - print(password, to: &myString2) - print(myString2) // $ hasCleartextLogging=286 + print(password, to: &myString2) // $ Source + print(myString2) // $ Alert - print("log: " + password, to: &myString3) - print(myString3) // $ hasCleartextLogging=289 + print("log: " + password, to: &myString3) // $ Source + print(myString3) // $ Alert debugPrint(harmless, to: &myString4) debugPrint(myString4) // safe - debugPrint(password, to: &myString5) - debugPrint(myString5) // $ hasCleartextLogging=295 + debugPrint(password, to: &myString5) // $ Source + debugPrint(myString5) // $ Alert dump(harmless, to: &myString6) dump(myString6) // safe - dump(password, to: &myString7) - dump(myString7) // $ hasCleartextLogging=301 + dump(password, to: &myString7) // $ Source + dump(myString7) // $ Alert myString8.write(harmless) print(myString8) - myString9.write(password) - print(myString9) // $ hasCleartextLogging=307 + myString9.write(password) // $ Source + print(myString9) // $ Alert myString10.write(harmless) - myString10.write(password) + myString10.write(password) // $ Source myString10.write(harmless) - print(myString10) // $ hasCleartextLogging=311 + print(myString10) // $ Alert harmless.write(to: &myString11) print(myString11) - password.write(to: &myString12) - print(myString12) // $ hasCleartextLogging=318 + password.write(to: &myString12) // $ Source + print(myString12) // $ Alert print(password, to: &myString13) // $ safe - only printed to another string debugPrint(password, to: &myString13) // $ safe - only printed to another string @@ -331,59 +331,59 @@ func test5(password: String, caseNum: Int) { switch caseNum { case 0: - assert(false, password) // $ hasCleartextLogging=334 + assert(false, password) // $ Alert case 1: - assertionFailure(password) // $ hasCleartextLogging=336 + assertionFailure(password) // $ Alert case 2: - precondition(false, password) // $ hasCleartextLogging=338 + precondition(false, password) // $ Alert case 3: - preconditionFailure(password) // $ hasCleartextLogging=340 + preconditionFailure(password) // $ Alert default: - fatalError(password) // $ hasCleartextLogging=342 + fatalError(password) // $ Alert } } func test6(passwordString: String) { - let e = NSException(name: NSExceptionName("exception"), reason: "\(passwordString) is incorrect!", userInfo: nil) // $ hasCleartextLogging=347 + let e = NSException(name: NSExceptionName("exception"), reason: "\(passwordString) is incorrect!", userInfo: nil) // $ Alert e.raise() - NSException.raise(NSExceptionName("exception"), format: "\(passwordString) is incorrect!", arguments: getVaList([])) // $ hasCleartextLogging=350 - NSException.raise(NSExceptionName("exception"), format: "%s is incorrect!", arguments: getVaList([passwordString])) // $ hasCleartextLogging=351 + NSException.raise(NSExceptionName("exception"), format: "\(passwordString) is incorrect!", arguments: getVaList([])) // $ Alert + NSException.raise(NSExceptionName("exception"), format: "%s is incorrect!", arguments: getVaList([passwordString])) // $ Alert - _ = dprintf(0, "\(passwordString) is incorrect!") // $ hasCleartextLogging=353 - _ = dprintf(0, "%s is incorrect!", passwordString) // $ hasCleartextLogging=354 - _ = dprintf(0, "%s: %s is incorrect!", "foo", passwordString) // $ hasCleartextLogging=355 - _ = vprintf("\(passwordString) is incorrect!", getVaList([])) // $ hasCleartextLogging=356 - _ = vprintf("%s is incorrect!", getVaList([passwordString])) // $ hasCleartextLogging=357 - _ = vfprintf(nil, "\(passwordString) is incorrect!", getVaList([])) // $ hasCleartextLogging=358 - _ = vfprintf(nil, "%s is incorrect!", getVaList([passwordString])) // $ hasCleartextLogging=359 + _ = dprintf(0, "\(passwordString) is incorrect!") // $ Alert + _ = dprintf(0, "%s is incorrect!", passwordString) // $ Alert + _ = dprintf(0, "%s: %s is incorrect!", "foo", passwordString) // $ Alert + _ = vprintf("\(passwordString) is incorrect!", getVaList([])) // $ Alert + _ = vprintf("%s is incorrect!", getVaList([passwordString])) // $ Alert + _ = vfprintf(nil, "\(passwordString) is incorrect!", getVaList([])) // $ Alert + _ = vfprintf(nil, "%s is incorrect!", getVaList([passwordString])) // $ Alert _ = vasprintf_l(nil, nil, "\(passwordString) is incorrect!", getVaList([])) // good (`sprintf` is not logging) _ = vasprintf_l(nil, nil, "%s is incorrect!", getVaList([passwordString])) // good (`sprintf` is not logging) } func test7(authKey: String, authKey2: Int, authKey3: Float, password: String, secret: String) { - log(message: authKey) // $ hasCleartextLogging=365 - log(message: String(authKey2)) // $ hasCleartextLogging=366 - logging(message: authKey) // $ MISSING: hasCleartextLogging=367 - logfile(file: 0, message: authKey) // $ MISSING: hasCleartextLogging=368 - logMessage(NSString(string: authKey)) // $ hasCleartextLogging=369 - logInfo(authKey) // $ hasCleartextLogging=370 - logError(errorMsg: authKey) // $ hasCleartextLogging=371 + log(message: authKey) // $ Alert + log(message: String(authKey2)) // $ Alert + logging(message: authKey) // $ MISSING: Alert + logfile(file: 0, message: authKey) // $ MISSING: Alert + logMessage(NSString(string: authKey)) // $ Alert + logInfo(authKey) // $ Alert + logError(errorMsg: authKey) // $ Alert harmless(authKey) // GOOD: not logging _ = logarithm(authKey3) // GOOD: not logging doLogin(login: authKey) // GOOD: not logging let logger = LogFile() - let msg = "authKey: " + authKey - logger.log(msg) // $ hasCleartextLogging=377 - logger.trace(msg) // $ hasCleartextLogging=377 - logger.debug(msg) // $ hasCleartextLogging=377 - logger.info(NSString(string: msg)) // $ hasCleartextLogging=377 - logger.notice(msg) // $ hasCleartextLogging=377 - logger.warning(msg) // $ hasCleartextLogging=377 - logger.error(msg) // $ hasCleartextLogging=377 - logger.critical(msg) // $ hasCleartextLogging=377 - logger.fatal(msg) // $ hasCleartextLogging=377 + let msg = "authKey: " + authKey // $ Source + logger.log(msg) // $ Alert + logger.trace(msg) // $ Alert + logger.debug(msg) // $ Alert + logger.info(NSString(string: msg)) // $ Alert + logger.notice(msg) // $ Alert + logger.warning(msg) // $ Alert + logger.error(msg) // $ Alert + logger.critical(msg) // $ Alert + logger.fatal(msg) // $ Alert let logic = Logic() logic.addInt(authKey2) // GOOD: not logging From aa3e0116c1ba7556b262975573517ed20c3b0a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 20 Jun 2025 10:17:37 +0200 Subject: [PATCH 261/340] Swift: convert PathInjection test to .qlref --- .../PathInjection/PathInjectionTest.expected | 415 ++++++++++++++++++ .../PathInjection/PathInjectionTest.ql | 22 - .../PathInjection/PathInjectionTest.qlref | 3 + .../PathInjection/testPathInjection.swift | 230 +++++----- 4 files changed, 533 insertions(+), 137 deletions(-) delete mode 100644 swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.ql create mode 100644 swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.qlref diff --git a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.expected b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.expected index e69de29bb2d..c6be4599c2a 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.expected +++ b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.expected @@ -0,0 +1,415 @@ +#select +| file://:0:0:0:0 | [post] self | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | file://:0:0:0:0 | [post] self | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| file://:0:0:0:0 | [post] self | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | file://:0:0:0:0 | [post] self | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:295:24:295:24 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:295:24:295:24 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:298:30:298:30 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:298:30:298:30 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:299:22:299:22 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:299:22:299:22 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:300:34:300:34 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:300:34:300:34 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:301:26:301:26 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:301:26:301:26 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:304:40:304:40 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:304:40:304:40 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:305:44:305:44 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:305:44:305:44 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:306:31:306:31 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:306:31:306:31 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:307:35:307:35 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:307:35:307:35 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:308:44:308:44 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:308:44:308:44 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:309:33:309:33 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:309:33:309:33 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:310:28:310:28 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:310:28:310:28 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:311:40:311:40 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:311:40:311:40 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:312:35:312:35 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:312:35:312:35 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:313:23:313:23 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:313:23:313:23 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:314:27:314:27 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:314:27:314:27 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:315:22:315:22 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:315:22:315:22 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:316:30:316:30 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:316:30:316:30 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:317:51:317:51 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:317:51:317:51 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:318:24:318:24 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:318:24:318:24 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:319:45:319:45 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:319:45:319:45 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:320:21:320:21 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:320:21:320:21 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:321:34:321:34 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:321:34:321:34 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:322:25:322:25 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:322:25:322:25 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:323:37:323:37 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:323:37:323:37 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:324:21:324:21 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:324:21:324:21 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:325:34:325:34 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:325:34:325:34 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:326:25:326:25 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:326:25:326:25 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:327:37:327:37 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:327:37:327:37 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:328:31:328:31 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:328:31:328:31 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:329:60:329:60 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:329:60:329:60 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:330:35:330:35 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:330:35:330:35 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:331:60:331:60 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:331:60:331:60 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:332:21:332:21 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:332:21:332:21 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:333:34:333:34 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:333:34:333:34 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:334:25:334:25 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:334:25:334:25 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:335:37:335:37 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:335:37:335:37 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:336:50:336:50 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:336:50:336:50 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:337:35:337:35 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:337:35:337:35 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:338:35:338:35 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:338:35:338:35 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:339:41:339:41 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:339:41:339:41 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:340:33:340:33 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:340:33:340:33 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:341:38:341:38 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:341:38:341:38 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:342:51:342:51 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:342:51:342:51 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:343:43:343:43 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:343:43:343:43 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:344:34:344:34 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:344:34:344:34 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:346:50:346:50 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:346:50:346:50 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:347:42:347:42 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:347:42:347:42 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:348:40:348:40 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:348:40:348:40 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:349:43:349:43 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:349:43:349:43 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:350:60:350:60 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:350:60:350:60 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:351:50:351:50 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:351:50:351:50 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:352:50:352:50 | remoteNsUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:352:50:352:50 | remoteNsUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:353:76:353:76 | remoteNsUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:353:76:353:76 | remoteNsUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:356:41:356:41 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:356:41:356:41 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:357:41:357:41 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:357:41:357:41 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:358:41:358:41 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:358:41:358:41 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:360:43:360:43 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:360:43:360:43 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:361:43:361:43 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:361:43:361:43 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:362:26:362:26 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:362:26:362:26 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:363:30:363:30 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:363:30:363:30 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:365:59:365:59 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:365:59:365:59 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:366:46:366:46 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:366:46:366:46 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:367:42:367:42 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:367:42:367:42 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:368:48:368:84 | call to FilePath.init(stringLiteral:) | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:368:48:368:84 | call to FilePath.init(stringLiteral:) | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:369:44:369:80 | call to FilePath.init(stringLiteral:) | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:369:44:369:80 | call to FilePath.init(stringLiteral:) | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:370:25:370:25 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:370:25:370:25 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:371:26:371:26 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:371:26:371:26 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:375:28:375:28 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:375:28:375:28 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:377:32:377:32 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:377:32:377:32 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:379:33:379:33 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:379:33:379:33 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:381:40:381:40 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:381:40:381:40 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:383:38:383:38 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:383:38:383:38 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:385:38:385:38 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:385:38:385:38 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:387:38:387:38 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:387:38:387:38 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:389:38:389:38 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:389:38:389:38 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:395:35:395:35 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:395:35:395:35 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:397:40:397:40 | remoteUrl | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:397:40:397:40 | remoteUrl | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:401:2:401:2 | [post] config | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:401:2:401:2 | [post] config | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:403:2:403:2 | [post] config | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:403:2:403:2 | [post] config | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:414:22:414:22 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:414:22:414:22 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:416:24:416:24 | buffer2 | testPathInjection.swift:409:22:409:87 | call to Data.init(contentsOf:options:) | testPathInjection.swift:416:24:416:24 | buffer2 | This path depends on a $@. | testPathInjection.swift:409:22:409:87 | call to Data.init(contentsOf:options:) | user-provided value | +| testPathInjection.swift:418:25:418:25 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:418:25:418:25 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:427:49:427:49 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:427:49:427:49 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:429:25:429:25 | remoteString | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:429:25:429:25 | remoteString | This path depends on a $@. | testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:441:33:441:33 | remoteString | testPathInjection.swift:433:24:433:78 | call to String.init(contentsOf:) | testPathInjection.swift:441:33:441:33 | remoteString | This path depends on a $@. | testPathInjection.swift:433:24:433:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:450:28:450:66 | call to appendingPathComponent(_:) | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:450:28:450:66 | call to appendingPathComponent(_:) | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:451:28:451:93 | call to appendingPathComponent(_:) | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:451:28:451:93 | call to appendingPathComponent(_:) | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:453:28:453:28 | u1 | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:453:28:453:28 | u1 | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:455:28:455:28 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:455:28:455:28 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:456:28:456:28 | u2 | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:456:28:456:28 | u2 | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:461:24:461:63 | ...! | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:461:24:461:63 | ...! | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:464:24:464:38 | ...! | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:464:24:464:38 | ...! | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:465:24:465:53 | ...! | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:465:24:465:53 | ...! | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:467:32:467:32 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:467:32:467:32 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:468:38:468:38 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:468:38:468:38 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:469:45:469:45 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:469:45:469:45 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:473:32:473:35 | .pointee | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:473:32:473:35 | .pointee | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:482:32:482:36 | ...[...] | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:482:32:482:36 | ...[...] | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:484:35:484:35 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:484:35:484:35 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:485:41:485:41 | remoteString | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:485:41:485:41 | remoteString | This path depends on a $@. | testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:507:25:507:25 | remoteString | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:507:25:507:25 | remoteString | This path depends on a $@. | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:508:17:508:17 | remoteString | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:508:17:508:17 | remoteString | This path depends on a $@. | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:509:41:509:41 | remoteString | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:509:41:509:41 | remoteString | This path depends on a $@. | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:511:38:511:38 | remoteString | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:511:38:511:38 | remoteString | This path depends on a $@. | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | user-provided value | +| testPathInjection.swift:513:22:513:22 | remoteString | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:513:22:513:22 | remoteString | This path depends on a $@. | testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | user-provided value | +edges +| file://:0:0:0:0 | [post] self [fileURL] | testPathInjection.swift:248:7:248:7 | self [Return] [fileURL] | provenance | | +| file://:0:0:0:0 | [post] self [seedFilePath] | testPathInjection.swift:249:13:249:13 | self [Return] [seedFilePath] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [fileURL] | provenance | | +| file://:0:0:0:0 | value | file://:0:0:0:0 | [post] self [seedFilePath] | provenance | | +| testPathInjection.swift:248:7:248:7 | value | file://:0:0:0:0 | value | provenance | | +| testPathInjection.swift:249:13:249:13 | value | file://:0:0:0:0 | value | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:290:33:290:33 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:291:37:291:37 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:300:34:300:34 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:301:26:301:26 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:305:44:305:44 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:307:35:307:35 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:308:44:308:44 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:309:33:309:33 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:311:40:311:40 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:312:35:312:35 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:314:27:314:27 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:322:25:322:25 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:323:37:323:37 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:326:25:326:25 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:327:37:327:37 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:330:35:330:35 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:331:60:331:60 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:334:25:334:25 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:335:37:335:37 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:336:50:336:50 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:337:35:337:35 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:338:35:338:35 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:339:41:339:41 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:340:33:340:33 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:341:38:341:38 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:342:51:342:51 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:343:43:343:43 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:346:50:346:50 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:347:42:347:42 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:348:40:348:40 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:349:43:349:43 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:350:60:350:60 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:351:50:351:50 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:356:41:356:41 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:357:41:357:41 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:358:41:358:41 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:360:43:360:43 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:361:43:361:43 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:363:30:363:30 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:365:59:365:59 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:366:46:366:46 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:367:42:367:42 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:368:72:368:72 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:369:68:369:68 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:371:26:371:26 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:375:28:375:28 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:377:32:377:32 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:379:33:379:33 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:381:40:381:40 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:383:38:383:38 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:385:38:385:38 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:387:38:387:38 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:389:38:389:38 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:414:22:414:22 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:418:25:418:25 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:427:49:427:49 | remoteString | provenance | | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | testPathInjection.swift:429:25:429:25 | remoteString | provenance | | +| testPathInjection.swift:290:21:290:45 | call to URL.init(string:) [some:0] | testPathInjection.swift:290:21:290:46 | ...! | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:295:24:295:24 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:298:30:298:30 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:299:22:299:22 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:304:40:304:40 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:306:31:306:31 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:310:28:310:28 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:313:23:313:23 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:315:22:315:22 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:316:30:316:30 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:317:51:317:51 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:318:24:318:24 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:319:45:319:45 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:320:21:320:21 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:321:34:321:34 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:324:21:324:21 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:325:34:325:34 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:328:31:328:31 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:329:60:329:60 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:332:21:332:21 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:333:34:333:34 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:344:34:344:34 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:362:26:362:26 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:370:25:370:25 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:395:35:395:35 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:397:40:397:40 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:401:19:401:19 | remoteUrl | provenance | | +| testPathInjection.swift:290:21:290:46 | ...! | testPathInjection.swift:403:24:403:24 | remoteUrl | provenance | | +| testPathInjection.swift:290:33:290:33 | remoteString | testPathInjection.swift:290:21:290:45 | call to URL.init(string:) [some:0] | provenance | | +| testPathInjection.swift:291:23:291:49 | call to NSURL.init(string:) [some:0] | testPathInjection.swift:291:23:291:50 | ...! | provenance | | +| testPathInjection.swift:291:23:291:50 | ...! | testPathInjection.swift:352:50:352:50 | remoteNsUrl | provenance | | +| testPathInjection.swift:291:23:291:50 | ...! | testPathInjection.swift:353:76:353:76 | remoteNsUrl | provenance | | +| testPathInjection.swift:291:37:291:37 | remoteString | testPathInjection.swift:291:23:291:49 | call to NSURL.init(string:) [some:0] | provenance | | +| testPathInjection.swift:368:72:368:72 | remoteString | testPathInjection.swift:368:48:368:84 | call to FilePath.init(stringLiteral:) | provenance | | +| testPathInjection.swift:369:68:369:68 | remoteString | testPathInjection.swift:369:44:369:80 | call to FilePath.init(stringLiteral:) | provenance | | +| testPathInjection.swift:401:19:401:19 | remoteUrl | testPathInjection.swift:248:7:248:7 | value | provenance | | +| testPathInjection.swift:401:19:401:19 | remoteUrl | testPathInjection.swift:401:2:401:2 | [post] config | provenance | | +| testPathInjection.swift:403:24:403:24 | remoteUrl | testPathInjection.swift:249:13:249:13 | value | provenance | | +| testPathInjection.swift:403:24:403:24 | remoteUrl | testPathInjection.swift:403:2:403:2 | [post] config | provenance | | +| testPathInjection.swift:409:22:409:87 | call to Data.init(contentsOf:options:) | testPathInjection.swift:411:5:411:5 | remoteData | provenance | | +| testPathInjection.swift:411:5:411:5 | remoteData | testPathInjection.swift:411:30:411:30 | [post] buffer2 | provenance | | +| testPathInjection.swift:411:30:411:30 | [post] buffer2 | testPathInjection.swift:416:24:416:24 | buffer2 | provenance | | +| testPathInjection.swift:433:24:433:78 | call to String.init(contentsOf:) | testPathInjection.swift:441:33:441:33 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:450:54:450:54 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:451:54:451:54 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:452:28:452:28 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:455:28:455:28 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:455:28:455:28 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:461:50:461:50 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:463:28:463:28 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:467:32:467:32 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:468:38:468:38 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:469:45:469:45 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:472:18:472:18 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:480:9:480:9 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:484:35:484:35 | remoteString | provenance | | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | testPathInjection.swift:485:41:485:41 | remoteString | provenance | | +| testPathInjection.swift:450:54:450:54 | remoteString | testPathInjection.swift:450:28:450:66 | call to appendingPathComponent(_:) | provenance | | +| testPathInjection.swift:451:28:451:66 | call to appendingPathComponent(_:) | testPathInjection.swift:451:28:451:93 | call to appendingPathComponent(_:) | provenance | | +| testPathInjection.swift:451:54:451:54 | remoteString | testPathInjection.swift:451:28:451:66 | call to appendingPathComponent(_:) | provenance | | +| testPathInjection.swift:452:5:452:5 | [post] u1 | testPathInjection.swift:453:28:453:28 | u1 | provenance | | +| testPathInjection.swift:452:28:452:28 | remoteString | testPathInjection.swift:452:5:452:5 | [post] u1 | provenance | | +| testPathInjection.swift:455:14:455:40 | call to URL.init(filePath:directoryHint:relativeTo:) | testPathInjection.swift:456:28:456:28 | u2 | provenance | | +| testPathInjection.swift:455:28:455:28 | remoteString | testPathInjection.swift:455:14:455:40 | call to URL.init(filePath:directoryHint:relativeTo:) | provenance | | +| testPathInjection.swift:461:24:461:62 | call to appendingPathComponent(_:) | testPathInjection.swift:461:24:461:63 | ...! | provenance | | +| testPathInjection.swift:461:50:461:50 | remoteString | testPathInjection.swift:461:24:461:62 | call to appendingPathComponent(_:) | provenance | | +| testPathInjection.swift:463:14:463:40 | call to NSURL.init(string:) [some:0] | testPathInjection.swift:463:14:463:41 | ...! | provenance | | +| testPathInjection.swift:463:14:463:41 | ...! | testPathInjection.swift:464:24:464:38 | ...! | provenance | | +| testPathInjection.swift:463:14:463:41 | ...! | testPathInjection.swift:465:24:465:24 | u4 | provenance | | +| testPathInjection.swift:463:28:463:28 | remoteString | testPathInjection.swift:463:14:463:40 | call to NSURL.init(string:) [some:0] | provenance | | +| testPathInjection.swift:465:24:465:24 | u4 | testPathInjection.swift:465:24:465:52 | call to appendingPathComponent(_:) | provenance | | +| testPathInjection.swift:465:24:465:52 | call to appendingPathComponent(_:) | testPathInjection.swift:465:24:465:53 | ...! | provenance | | +| testPathInjection.swift:472:5:472:5 | [post] s1 [pointee] | testPathInjection.swift:473:32:473:32 | s1 [pointee] | provenance | | +| testPathInjection.swift:472:18:472:18 | remoteString | testPathInjection.swift:472:5:472:5 | [post] s1 [pointee] | provenance | | +| testPathInjection.swift:473:32:473:32 | s1 [pointee] | testPathInjection.swift:473:32:473:35 | .pointee | provenance | | +| testPathInjection.swift:480:9:480:9 | remoteString | testPathInjection.swift:480:41:480:41 | [post] s3 [Collection element] | provenance | | +| testPathInjection.swift:480:41:480:41 | [post] s3 [Collection element] | testPathInjection.swift:482:32:482:32 | s3 [Collection element] | provenance | | +| testPathInjection.swift:482:32:482:32 | s3 [Collection element] | testPathInjection.swift:482:32:482:36 | ...[...] | provenance | | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:507:25:507:25 | remoteString | provenance | | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:508:17:508:17 | remoteString | provenance | | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:509:41:509:41 | remoteString | provenance | | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:511:38:511:38 | remoteString | provenance | | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | testPathInjection.swift:513:22:513:22 | remoteString | provenance | | +nodes +| file://:0:0:0:0 | [post] self | semmle.label | [post] self | +| file://:0:0:0:0 | [post] self | semmle.label | [post] self | +| file://:0:0:0:0 | [post] self [fileURL] | semmle.label | [post] self [fileURL] | +| file://:0:0:0:0 | [post] self [seedFilePath] | semmle.label | [post] self [seedFilePath] | +| file://:0:0:0:0 | value | semmle.label | value | +| file://:0:0:0:0 | value | semmle.label | value | +| testPathInjection.swift:248:7:248:7 | self [Return] [fileURL] | semmle.label | self [Return] [fileURL] | +| testPathInjection.swift:248:7:248:7 | value | semmle.label | value | +| testPathInjection.swift:249:13:249:13 | self [Return] [seedFilePath] | semmle.label | self [Return] [seedFilePath] | +| testPathInjection.swift:249:13:249:13 | value | semmle.label | value | +| testPathInjection.swift:289:24:289:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testPathInjection.swift:290:21:290:45 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| testPathInjection.swift:290:21:290:46 | ...! | semmle.label | ...! | +| testPathInjection.swift:290:33:290:33 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:291:23:291:49 | call to NSURL.init(string:) [some:0] | semmle.label | call to NSURL.init(string:) [some:0] | +| testPathInjection.swift:291:23:291:50 | ...! | semmle.label | ...! | +| testPathInjection.swift:291:37:291:37 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:295:24:295:24 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:298:30:298:30 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:299:22:299:22 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:300:34:300:34 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:301:26:301:26 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:304:40:304:40 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:305:44:305:44 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:306:31:306:31 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:307:35:307:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:308:44:308:44 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:309:33:309:33 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:310:28:310:28 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:311:40:311:40 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:312:35:312:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:313:23:313:23 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:314:27:314:27 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:315:22:315:22 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:316:30:316:30 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:317:51:317:51 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:318:24:318:24 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:319:45:319:45 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:320:21:320:21 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:321:34:321:34 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:322:25:322:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:323:37:323:37 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:324:21:324:21 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:325:34:325:34 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:326:25:326:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:327:37:327:37 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:328:31:328:31 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:329:60:329:60 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:330:35:330:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:331:60:331:60 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:332:21:332:21 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:333:34:333:34 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:334:25:334:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:335:37:335:37 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:336:50:336:50 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:337:35:337:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:338:35:338:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:339:41:339:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:340:33:340:33 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:341:38:341:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:342:51:342:51 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:343:43:343:43 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:344:34:344:34 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:346:50:346:50 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:347:42:347:42 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:348:40:348:40 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:349:43:349:43 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:350:60:350:60 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:351:50:351:50 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:352:50:352:50 | remoteNsUrl | semmle.label | remoteNsUrl | +| testPathInjection.swift:353:76:353:76 | remoteNsUrl | semmle.label | remoteNsUrl | +| testPathInjection.swift:356:41:356:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:357:41:357:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:358:41:358:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:360:43:360:43 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:361:43:361:43 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:362:26:362:26 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:363:30:363:30 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:365:59:365:59 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:366:46:366:46 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:367:42:367:42 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:368:48:368:84 | call to FilePath.init(stringLiteral:) | semmle.label | call to FilePath.init(stringLiteral:) | +| testPathInjection.swift:368:72:368:72 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:369:44:369:80 | call to FilePath.init(stringLiteral:) | semmle.label | call to FilePath.init(stringLiteral:) | +| testPathInjection.swift:369:68:369:68 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:370:25:370:25 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:371:26:371:26 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:375:28:375:28 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:377:32:377:32 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:379:33:379:33 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:381:40:381:40 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:383:38:383:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:385:38:385:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:387:38:387:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:389:38:389:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:395:35:395:35 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:397:40:397:40 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:401:2:401:2 | [post] config | semmle.label | [post] config | +| testPathInjection.swift:401:19:401:19 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:403:2:403:2 | [post] config | semmle.label | [post] config | +| testPathInjection.swift:403:24:403:24 | remoteUrl | semmle.label | remoteUrl | +| testPathInjection.swift:409:22:409:87 | call to Data.init(contentsOf:options:) | semmle.label | call to Data.init(contentsOf:options:) | +| testPathInjection.swift:411:5:411:5 | remoteData | semmle.label | remoteData | +| testPathInjection.swift:411:30:411:30 | [post] buffer2 | semmle.label | [post] buffer2 | +| testPathInjection.swift:414:22:414:22 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:416:24:416:24 | buffer2 | semmle.label | buffer2 | +| testPathInjection.swift:418:25:418:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:427:49:427:49 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:429:25:429:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:433:24:433:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testPathInjection.swift:441:33:441:33 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:445:24:445:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testPathInjection.swift:450:28:450:66 | call to appendingPathComponent(_:) | semmle.label | call to appendingPathComponent(_:) | +| testPathInjection.swift:450:54:450:54 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:451:28:451:66 | call to appendingPathComponent(_:) | semmle.label | call to appendingPathComponent(_:) | +| testPathInjection.swift:451:28:451:93 | call to appendingPathComponent(_:) | semmle.label | call to appendingPathComponent(_:) | +| testPathInjection.swift:451:54:451:54 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:452:5:452:5 | [post] u1 | semmle.label | [post] u1 | +| testPathInjection.swift:452:28:452:28 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:453:28:453:28 | u1 | semmle.label | u1 | +| testPathInjection.swift:455:14:455:40 | call to URL.init(filePath:directoryHint:relativeTo:) | semmle.label | call to URL.init(filePath:directoryHint:relativeTo:) | +| testPathInjection.swift:455:28:455:28 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:455:28:455:28 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:456:28:456:28 | u2 | semmle.label | u2 | +| testPathInjection.swift:461:24:461:62 | call to appendingPathComponent(_:) | semmle.label | call to appendingPathComponent(_:) | +| testPathInjection.swift:461:24:461:63 | ...! | semmle.label | ...! | +| testPathInjection.swift:461:50:461:50 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:463:14:463:40 | call to NSURL.init(string:) [some:0] | semmle.label | call to NSURL.init(string:) [some:0] | +| testPathInjection.swift:463:14:463:41 | ...! | semmle.label | ...! | +| testPathInjection.swift:463:28:463:28 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:464:24:464:38 | ...! | semmle.label | ...! | +| testPathInjection.swift:465:24:465:24 | u4 | semmle.label | u4 | +| testPathInjection.swift:465:24:465:52 | call to appendingPathComponent(_:) | semmle.label | call to appendingPathComponent(_:) | +| testPathInjection.swift:465:24:465:53 | ...! | semmle.label | ...! | +| testPathInjection.swift:467:32:467:32 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:468:38:468:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:469:45:469:45 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:472:5:472:5 | [post] s1 [pointee] | semmle.label | [post] s1 [pointee] | +| testPathInjection.swift:472:18:472:18 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:473:32:473:32 | s1 [pointee] | semmle.label | s1 [pointee] | +| testPathInjection.swift:473:32:473:35 | .pointee | semmle.label | .pointee | +| testPathInjection.swift:480:9:480:9 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:480:41:480:41 | [post] s3 [Collection element] | semmle.label | [post] s3 [Collection element] | +| testPathInjection.swift:482:32:482:32 | s3 [Collection element] | semmle.label | s3 [Collection element] | +| testPathInjection.swift:482:32:482:36 | ...[...] | semmle.label | ...[...] | +| testPathInjection.swift:484:35:484:35 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:485:41:485:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:505:24:505:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testPathInjection.swift:507:25:507:25 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:508:17:508:17 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:509:41:509:41 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:511:38:511:38 | remoteString | semmle.label | remoteString | +| testPathInjection.swift:513:22:513:22 | remoteString | semmle.label | remoteString | +subpaths +| testPathInjection.swift:401:19:401:19 | remoteUrl | testPathInjection.swift:248:7:248:7 | value | testPathInjection.swift:248:7:248:7 | self [Return] [fileURL] | testPathInjection.swift:401:2:401:2 | [post] config | +| testPathInjection.swift:403:24:403:24 | remoteUrl | testPathInjection.swift:249:13:249:13 | value | testPathInjection.swift:249:13:249:13 | self [Return] [seedFilePath] | testPathInjection.swift:403:2:403:2 | [post] config | diff --git a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.ql b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.ql deleted file mode 100644 index a32f9c56ee9..00000000000 --- a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.ql +++ /dev/null @@ -1,22 +0,0 @@ -import swift -import codeql.swift.dataflow.DataFlow -import codeql.swift.dataflow.FlowSources -import codeql.swift.security.PathInjectionQuery -import utils.test.InlineExpectationsTest - -module PathInjectionTest implements TestSig { - string getARelevantTag() { result = "hasPathInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node source, DataFlow::Node sink | - PathInjectionFlow::flow(source, sink) and - location = sink.getLocation() and - element = sink.toString() and - tag = "hasPathInjection" and - location.getFile().getName() != "" and - value = source.asExpr().getLocation().getStartLine().toString() - ) - } -} - -import MakeTest diff --git a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.qlref b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.qlref new file mode 100644 index 00000000000..6269075fd96 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/PathInjectionTest.qlref @@ -0,0 +1,3 @@ +query: queries/Security/CWE-022/PathInjection.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/testPathInjection.swift b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/testPathInjection.swift index 2d9b6d88c39..c7c26085225 100644 --- a/swift/ql/test/query-tests/Security/CWE-022/PathInjection/testPathInjection.swift +++ b/swift/ql/test/query-tests/Security/CWE-022/PathInjection/testPathInjection.swift @@ -286,151 +286,151 @@ class Connection { // --- tests --- func test(buffer1: UnsafeMutablePointer, buffer2: UnsafeMutablePointer) { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteUrl = URL(string: remoteString)! let remoteNsUrl = NSURL(string: remoteString)! let safeUrl = URL(string: "")! let safeNsUrl = NSURL(string: "")! - Data("").write(to: remoteUrl, options: []) // $ hasPathInjection=289 + Data("").write(to: remoteUrl, options: []) // $ Alert let nsData = NSData() - let _ = nsData.write(to: remoteUrl, atomically: false) // $ hasPathInjection=289 - nsData.write(to: remoteUrl, options: []) // $ hasPathInjection=289 - let _ = nsData.write(toFile: remoteString, atomically: false) // $ hasPathInjection=289 - nsData.write(toFile: remoteString, options: []) // $ hasPathInjection=289 + let _ = nsData.write(to: remoteUrl, atomically: false) // $ Alert + nsData.write(to: remoteUrl, options: []) // $ Alert + let _ = nsData.write(toFile: remoteString, atomically: false) // $ Alert + nsData.write(toFile: remoteString, options: []) // $ Alert let fm = FileManager() - let _ = fm.contentsOfDirectory(at: remoteUrl, includingPropertiesForKeys: [], options: []) // $ hasPathInjection=289 - let _ = fm.contentsOfDirectory(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.enumerator(at: remoteUrl, includingPropertiesForKeys: [], options: [], errorHandler: nil) // $ hasPathInjection=289 - let _ = fm.enumerator(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.subpathsOfDirectory(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.subpaths(atPath: remoteString) // $ hasPathInjection=289 - fm.createDirectory(at: remoteUrl, withIntermediateDirectories: false, attributes: [:]) // $ hasPathInjection=289 - let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=289 - let _ = fm.createFile(atPath: remoteString, contents: nil, attributes: [:]) // $ hasPathInjection=289 - fm.removeItem(at: remoteUrl) // $ hasPathInjection=289 - fm.removeItem(atPath: remoteString) // $ hasPathInjection=289 - fm.trashItem(at: remoteUrl, resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=289 - let _ = fm.replaceItemAt(remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: []) // $ hasPathInjection=289 - let _ = fm.replaceItemAt(safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: []) // $ hasPathInjection=289 - fm.replaceItem(at: remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=289 - fm.replaceItem(at: safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ hasPathInjection=289 - fm.copyItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=289 - fm.copyItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=289 - fm.copyItem(atPath: remoteString, toPath: "") // $ hasPathInjection=289 - fm.copyItem(atPath: "", toPath: remoteString) // $ hasPathInjection=289 - fm.moveItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=289 - fm.moveItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=289 - fm.moveItem(atPath: remoteString, toPath: "") // $ hasPathInjection=289 - fm.moveItem(atPath: "", toPath: remoteString) // $ hasPathInjection=289 - fm.createSymbolicLink(at: remoteUrl, withDestinationURL: safeUrl) // $ hasPathInjection=289 - fm.createSymbolicLink(at: safeUrl, withDestinationURL: remoteUrl) // $ hasPathInjection=289 - fm.createSymbolicLink(atPath: remoteString, withDestinationPath: "") // $ hasPathInjection=289 - fm.createSymbolicLink(atPath: "", withDestinationPath: remoteString) // $ hasPathInjection=289 - fm.linkItem(at: remoteUrl, to: safeUrl) // $ hasPathInjection=289 - fm.linkItem(at: safeUrl, to: remoteUrl) // $ hasPathInjection=289 - fm.linkItem(atPath: remoteString, toPath: "") // $ hasPathInjection=289 - fm.linkItem(atPath: "", toPath: remoteString) // $ hasPathInjection=289 - let _ = fm.destinationOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.fileExists(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.fileExists(atPath: remoteString, isDirectory: UnsafeMutablePointer.init(bitPattern: 0)) // $ hasPathInjection=289 - fm.setAttributes([:], ofItemAtPath: remoteString) // $ hasPathInjection=289 - let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.contentsEqual(atPath: remoteString, andPath: "") // $ hasPathInjection=289 - let _ = fm.contentsEqual(atPath: "", andPath: remoteString) // $ hasPathInjection=289 - let _ = fm.changeCurrentDirectoryPath(remoteString) // $ hasPathInjection=289 - let _ = fm.unmountVolume(at: remoteUrl, options: [], completionHandler: { _ in }) // $ hasPathInjection=289 + let _ = fm.contentsOfDirectory(at: remoteUrl, includingPropertiesForKeys: [], options: []) // $ Alert + let _ = fm.contentsOfDirectory(atPath: remoteString) // $ Alert + let _ = fm.enumerator(at: remoteUrl, includingPropertiesForKeys: [], options: [], errorHandler: nil) // $ Alert + let _ = fm.enumerator(atPath: remoteString) // $ Alert + let _ = fm.subpathsOfDirectory(atPath: remoteString) // $ Alert + let _ = fm.subpaths(atPath: remoteString) // $ Alert + fm.createDirectory(at: remoteUrl, withIntermediateDirectories: false, attributes: [:]) // $ Alert + let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ Alert + let _ = fm.createFile(atPath: remoteString, contents: nil, attributes: [:]) // $ Alert + fm.removeItem(at: remoteUrl) // $ Alert + fm.removeItem(atPath: remoteString) // $ Alert + fm.trashItem(at: remoteUrl, resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ Alert + let _ = fm.replaceItemAt(remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: []) // $ Alert + let _ = fm.replaceItemAt(safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: []) // $ Alert + fm.replaceItem(at: remoteUrl, withItemAt: safeUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ Alert + fm.replaceItem(at: safeUrl, withItemAt: remoteUrl, backupItemName: nil, options: [], resultingItemURL: AutoreleasingUnsafeMutablePointer()) // $ Alert + fm.copyItem(at: remoteUrl, to: safeUrl) // $ Alert + fm.copyItem(at: safeUrl, to: remoteUrl) // $ Alert + fm.copyItem(atPath: remoteString, toPath: "") // $ Alert + fm.copyItem(atPath: "", toPath: remoteString) // $ Alert + fm.moveItem(at: remoteUrl, to: safeUrl) // $ Alert + fm.moveItem(at: safeUrl, to: remoteUrl) // $ Alert + fm.moveItem(atPath: remoteString, toPath: "") // $ Alert + fm.moveItem(atPath: "", toPath: remoteString) // $ Alert + fm.createSymbolicLink(at: remoteUrl, withDestinationURL: safeUrl) // $ Alert + fm.createSymbolicLink(at: safeUrl, withDestinationURL: remoteUrl) // $ Alert + fm.createSymbolicLink(atPath: remoteString, withDestinationPath: "") // $ Alert + fm.createSymbolicLink(atPath: "", withDestinationPath: remoteString) // $ Alert + fm.linkItem(at: remoteUrl, to: safeUrl) // $ Alert + fm.linkItem(at: safeUrl, to: remoteUrl) // $ Alert + fm.linkItem(atPath: remoteString, toPath: "") // $ Alert + fm.linkItem(atPath: "", toPath: remoteString) // $ Alert + let _ = fm.destinationOfSymbolicLink(atPath: remoteString) // $ Alert + let _ = fm.fileExists(atPath: remoteString) // $ Alert + let _ = fm.fileExists(atPath: remoteString, isDirectory: UnsafeMutablePointer.init(bitPattern: 0)) // $ Alert + fm.setAttributes([:], ofItemAtPath: remoteString) // $ Alert + let _ = fm.contents(atPath: remoteString) // $ Alert + let _ = fm.contentsEqual(atPath: remoteString, andPath: "") // $ Alert + let _ = fm.contentsEqual(atPath: "", andPath: remoteString) // $ Alert + let _ = fm.changeCurrentDirectoryPath(remoteString) // $ Alert + let _ = fm.unmountVolume(at: remoteUrl, options: [], completionHandler: { _ in }) // $ Alert // Deprecated methods - let _ = fm.changeFileAttributes([:], atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.directoryContents(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ hasPathInjection=289 - let _ = fm.createSymbolicLink(atPath: remoteString, pathContent: "") // $ hasPathInjection=289 - let _ = fm.createSymbolicLink(atPath: "", pathContent: remoteString) // $ hasPathInjection=289 - let _ = fm.pathContentOfSymbolicLink(atPath: remoteString) // $ hasPathInjection=289 - let _ = fm.replaceItemAtURL(originalItemURL: remoteNsUrl, withItemAtURL: safeNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=289 - let _ = fm.replaceItemAtURL(originalItemURL: safeNsUrl, withItemAtURL: remoteNsUrl, backupItemName: nil, options: []) // $ hasPathInjection=289 + let _ = fm.changeFileAttributes([:], atPath: remoteString) // $ Alert + let _ = fm.directoryContents(atPath: remoteString) // $ Alert + let _ = fm.createDirectory(atPath: remoteString, attributes: [:]) // $ Alert + let _ = fm.createSymbolicLink(atPath: remoteString, pathContent: "") // $ Alert + let _ = fm.createSymbolicLink(atPath: "", pathContent: remoteString) // $ Alert + let _ = fm.pathContentOfSymbolicLink(atPath: remoteString) // $ Alert + let _ = fm.replaceItemAtURL(originalItemURL: remoteNsUrl, withItemAtURL: safeNsUrl, backupItemName: nil, options: []) // $ Alert + let _ = fm.replaceItemAtURL(originalItemURL: safeNsUrl, withItemAtURL: remoteNsUrl, backupItemName: nil, options: []) // $ Alert var encoding = String.Encoding.utf8 - let _ = try! String(contentsOfFile: remoteString) // $ hasPathInjection=289 - let _ = try! String(contentsOfFile: remoteString, encoding: String.Encoding.utf8) // $ hasPathInjection=289 - let _ = try! String(contentsOfFile: remoteString, usedEncoding: &encoding) // $ hasPathInjection=289 + let _ = try! String(contentsOfFile: remoteString) // $ Alert + let _ = try! String(contentsOfFile: remoteString, encoding: String.Encoding.utf8) // $ Alert + let _ = try! String(contentsOfFile: remoteString, usedEncoding: &encoding) // $ Alert - let _ = try! NSString(contentsOfFile: remoteString, encoding: 0) // $ hasPathInjection=289 - let _ = try! NSString(contentsOfFile: remoteString, usedEncoding: nil) // $ hasPathInjection=289 - NSString().write(to: remoteUrl, atomically: true, encoding: 0) // $ hasPathInjection=289 - NSString().write(toFile: remoteString, atomically: true, encoding: 0) // $ hasPathInjection=289 + let _ = try! NSString(contentsOfFile: remoteString, encoding: 0) // $ Alert + let _ = try! NSString(contentsOfFile: remoteString, usedEncoding: nil) // $ Alert + NSString().write(to: remoteUrl, atomically: true, encoding: 0) // $ Alert + NSString().write(toFile: remoteString, atomically: true, encoding: 0) // $ Alert - let _ = NSKeyedUnarchiver().unarchiveObject(withFile: remoteString) // $ hasPathInjection=289 - let _ = ArchiveByteStream.fileStream(fd: remoteString as! FileDescriptor, automaticClose: true) // $ hasPathInjection=289 - ArchiveByteStream.withFileStream(fd: remoteString as! FileDescriptor, automaticClose: true) { _ in } // $ hasPathInjection=289 - let _ = ArchiveByteStream.fileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) // $ hasPathInjection=289 - ArchiveByteStream.withFileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) { _ in } // $ hasPathInjection=289 - let _ = Bundle(url: remoteUrl) // $ hasPathInjection=289 - let _ = Bundle(path: remoteString) // $ hasPathInjection=289 + let _ = NSKeyedUnarchiver().unarchiveObject(withFile: remoteString) // $ Alert + let _ = ArchiveByteStream.fileStream(fd: remoteString as! FileDescriptor, automaticClose: true) // $ Alert + ArchiveByteStream.withFileStream(fd: remoteString as! FileDescriptor, automaticClose: true) { _ in } // $ Alert + let _ = ArchiveByteStream.fileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) // $ Alert + ArchiveByteStream.withFileStream(path: FilePath(stringLiteral: remoteString), mode: .readOnly, options: .append, permissions: .ownerRead) { _ in } // $ Alert + let _ = Bundle(url: remoteUrl) // $ Alert + let _ = Bundle(path: remoteString) // $ Alert // GRDB - let _ = Database(path: remoteString, description: "", configuration: Configuration()) // $ hasPathInjection=289 + let _ = Database(path: remoteString, description: "", configuration: Configuration()) // $ Alert let _ = Database(path: "", description: "", configuration: Configuration()) // Safe - let _ = DatabasePool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=289 + let _ = DatabasePool(path: remoteString, configuration: Configuration()) // $ Alert let _ = DatabasePool(path: "", configuration: Configuration()) // Safe - let _ = DatabaseQueue(path: remoteString, configuration: Configuration()) // $ hasPathInjection=289 + let _ = DatabaseQueue(path: remoteString, configuration: Configuration()) // $ Alert let _ = DatabaseQueue(path: "", configuration: Configuration()) // Safe - let _ = DatabaseSnapshotPool(path: remoteString, configuration: Configuration()) // $ hasPathInjection=289 + let _ = DatabaseSnapshotPool(path: remoteString, configuration: Configuration()) // $ Alert let _ = DatabaseSnapshotPool(path: "", configuration: Configuration()) // Safe - let _ = SerializedDatabase(path: remoteString, defaultLabel: "") // $ hasPathInjection=289 + let _ = SerializedDatabase(path: remoteString, defaultLabel: "") // $ Alert let _ = SerializedDatabase(path: "", defaultLabel: "") // Safe - let _ = SerializedDatabase(path: remoteString, defaultLabel: "", purpose: nil) // $ hasPathInjection=289 + let _ = SerializedDatabase(path: remoteString, defaultLabel: "", purpose: nil) // $ Alert let _ = SerializedDatabase(path: "", defaultLabel: "", purpose: nil) // Safe - let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "") // $ hasPathInjection=289 + let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "") // $ Alert let _ = SerializedDatabase(path: "", configuration: Configuration(), defaultLabel: "") // Safe - let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "", purpose: nil) // $ hasPathInjection=289 + let _ = SerializedDatabase(path: remoteString, configuration: Configuration(), defaultLabel: "", purpose: nil) // $ Alert let _ = SerializedDatabase(path: "", configuration: Configuration(), defaultLabel: "", purpose: nil) // Safe // Realm _ = Realm.Configuration(fileURL: safeUrl) // GOOD - _ = Realm.Configuration(fileURL: remoteUrl) // $ hasPathInjection=289 + _ = Realm.Configuration(fileURL: remoteUrl) // $ Alert _ = Realm.Configuration(seedFilePath: safeUrl) // GOOD - _ = Realm.Configuration(seedFilePath: remoteUrl) // $ hasPathInjection=289 + _ = Realm.Configuration(seedFilePath: remoteUrl) // $ Alert var config = Realm.Configuration() // GOOD config.fileURL = safeUrl // GOOD - config.fileURL = remoteUrl // $ hasPathInjection=289 + config.fileURL = remoteUrl // $ Alert config.seedFilePath = safeUrl // GOOD - config.seedFilePath = remoteUrl // $ hasPathInjection=289 + config.seedFilePath = remoteUrl // $ Alert // sqlite3 var db: OpaquePointer? let localData = Data(0) - let remoteData = Data(contentsOf: URL(string: "http://example.com/")!, options: []) + let remoteData = Data(contentsOf: URL(string: "http://example.com/")!, options: []) // $ Source localData.copyBytes(to: buffer1, count: localData.count) remoteData.copyBytes(to: buffer2, count: remoteData.count) _ = sqlite3_open("myFile.sqlite3", &db) // GOOD - _ = sqlite3_open(remoteString, &db) // $ hasPathInjection=289 + _ = sqlite3_open(remoteString, &db) // $ Alert _ = sqlite3_open16(buffer1, &db) // GOOD - _ = sqlite3_open16(buffer2, &db) // $ hasPathInjection=409 + _ = sqlite3_open16(buffer2, &db) // $ Alert _ = sqlite3_open_v2("myFile.sqlite3", &db, 0, nil) // GOOD - _ = sqlite3_open_v2(remoteString, &db, 0, nil) // $ hasPathInjection=289 + _ = sqlite3_open_v2(remoteString, &db, 0, nil) // $ Alert sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: "myFile.sqlite3").utf8String) // GOOD - sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ MISSING: hasPathInjection=289 + sqlite3_temp_directory = UnsafeMutablePointer(mutating: NSString(string: remoteString).utf8String) // $ MISSING: Alert // SQLite.swift try! _ = Connection() try! _ = Connection(Connection.Location.uri("myFile.sqlite3")) // GOOD - try! _ = Connection(Connection.Location.uri(remoteString)) // $ hasPathInjection=289 + try! _ = Connection(Connection.Location.uri(remoteString)) // $ Alert try! _ = Connection("myFile.sqlite3") // GOOD - try! _ = Connection(remoteString) // $ hasPathInjection=289 + try! _ = Connection(remoteString) // $ Alert } func testBarriers() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let fm = FileManager() @@ -438,51 +438,51 @@ func testBarriers() { if (filePath.lexicallyNormalized().starts(with: "/safe")) { let _ = fm.contents(atPath: remoteString) // Safe } - let _ = fm.contents(atPath: remoteString) // $ hasPathInjection=433 + let _ = fm.contents(atPath: remoteString) // $ Alert } func testPathInjection2(s1: UnsafeMutablePointer, s2: UnsafeMutablePointer, s3: UnsafeMutablePointer, fm: FileManager) throws { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source var u1 = URL(filePath: "") _ = NSData(contentsOf: u1) _ = NSData(contentsOf: u1.appendingPathComponent("")) - _ = NSData(contentsOf: u1.appendingPathComponent(remoteString)) // $ hasPathInjection=445 - _ = NSData(contentsOf: u1.appendingPathComponent(remoteString).appendingPathComponent("")) // $ hasPathInjection=445 + _ = NSData(contentsOf: u1.appendingPathComponent(remoteString)) // $ Alert + _ = NSData(contentsOf: u1.appendingPathComponent(remoteString).appendingPathComponent("")) // $ Alert u1.appendPathComponent(remoteString) - _ = NSData(contentsOf: u1) // $ hasPathInjection=445 + _ = NSData(contentsOf: u1) // $ Alert - let u2 = URL(filePath: remoteString) // $ hasPathInjection=445 - _ = NSData(contentsOf: u2) // $ hasPathInjection=445 + let u2 = URL(filePath: remoteString) // $ Alert + _ = NSData(contentsOf: u2) // $ Alert let u3 = NSURL(string: "")! Data("").write(to: u3.filePathURL!, options: []) Data("").write(to: u3.appendingPathComponent("")!, options: []) - Data("").write(to: u3.appendingPathComponent(remoteString)!, options: []) // $ hasPathInjection=445 + Data("").write(to: u3.appendingPathComponent(remoteString)!, options: []) // $ Alert let u4 = NSURL(string: remoteString)! - Data("").write(to: u4.filePathURL!, options: []) // $ hasPathInjection=445 - Data("").write(to: u4.appendingPathComponent("")!, options: []) // $ hasPathInjection=445 + Data("").write(to: u4.filePathURL!, options: []) // $ Alert + Data("").write(to: u4.appendingPathComponent("")!, options: []) // $ Alert - _ = NSData(contentsOfFile: remoteString)! // $ hasPathInjection=445 - _ = NSData(contentsOfMappedFile: remoteString)! // $ hasPathInjection=445 - _ = NSData.dataWithContentsOfMappedFile(remoteString)! // $ hasPathInjection=445 + _ = NSData(contentsOfFile: remoteString)! // $ Alert + _ = NSData(contentsOfMappedFile: remoteString)! // $ Alert + _ = NSData.dataWithContentsOfMappedFile(remoteString)! // $ Alert _ = NSData().write(toFile: s1.pointee, atomically: true) s1.pointee = remoteString - _ = NSData().write(toFile: s1.pointee, atomically: true) // $ hasPathInjection=445 - _ = NSData().write(toFile: s1[0], atomically: true) // $ MISSING: hasPathInjection=445 + _ = NSData().write(toFile: s1.pointee, atomically: true) // $ Alert + _ = NSData().write(toFile: s1[0], atomically: true) // $ MISSING: Alert _ = "".completePath(into: s2, caseSensitive: false, matchesInto: nil, filterTypes: nil) _ = NSData().write(toFile: s2.pointee, atomically: true) _ = NSData().write(toFile: s2[0], atomically: true) _ = remoteString.completePath(into: s3, caseSensitive: false, matchesInto: nil, filterTypes: nil) - _ = NSData().write(toFile: s3.pointee, atomically: true) // $ MISSING: hasPathInjection=445 - _ = NSData().write(toFile: s3[0], atomically: true) // $ hasPathInjection=445 + _ = NSData().write(toFile: s3.pointee, atomically: true) // $ MISSING: Alert + _ = NSData().write(toFile: s3[0], atomically: true) // $ Alert - _ = fm.fileAttributes(atPath: remoteString, traverseLink: true) // $ hasPathInjection=445 - _ = try fm.attributesOfItem(atPath: remoteString) // $ hasPathInjection=445 + _ = fm.fileAttributes(atPath: remoteString, traverseLink: true) // $ Alert + _ = try fm.attributesOfItem(atPath: remoteString) // $ Alert } // --- @@ -502,18 +502,18 @@ class MyFile { } func testPathInjectionHeuristics() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source - myOpenFile1(atPath: remoteString) // $ hasPathInjection=505 - myOpenFile2(remoteString) // $ hasPathInjection=505 - myFindFiles(ofType: 0, inDirectory: remoteString) // $ hasPathInjection=505 + myOpenFile1(atPath: remoteString) // $ Alert + myOpenFile2(remoteString) // $ Alert + myFindFiles(ofType: 0, inDirectory: remoteString) // $ Alert - let mc = MyClass(contentsOfFile: remoteString) // $ hasPathInjection=505 + let mc = MyClass(contentsOfFile: remoteString) // $ Alert mc.doSomething(keyPath: remoteString) // good - not a path - mc.write(toFile: remoteString) // $ hasPathInjection=505 + mc.write(toFile: remoteString) // $ Alert let mf1 = MyFile(path: "") - let mf2 = MyFile(path: remoteString) // $ MISSING: hasPathInjection= + let mf2 = MyFile(path: remoteString) // $ MISSING: Alert _ = NSSortDescriptor(key: remoteString, ascending: true) // good - not a path _ = NSSortDescriptor(keyPath: remoteString as! KeyPath, ascending: true) // good - not a path From 35a48e7f415b1867daf262d48608bad701722034 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Fri, 20 Jun 2025 10:29:22 +0200 Subject: [PATCH 262/340] Swift: convert XXE test to .qlref --- .../Security/CWE-611/XXETest.expected | 85 +++++++++++++++++++ .../query-tests/Security/CWE-611/XXETest.ql | 27 ------ .../Security/CWE-611/XXETest.qlref | 3 + .../CWE-611/testAEXMLDocumentXXE.swift | 18 ++-- .../Security/CWE-611/testXMLDocumentXXE.swift | 12 +-- .../Security/CWE-611/testXMLParserXXE.swift | 14 +-- 6 files changed, 110 insertions(+), 49 deletions(-) delete mode 100644 swift/ql/test/query-tests/Security/CWE-611/XXETest.ql create mode 100644 swift/ql/test/query-tests/Security/CWE-611/XXETest.qlref diff --git a/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected b/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected index e69de29bb2d..3f582702b1f 100644 --- a/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected +++ b/swift/ql/test/query-tests/Security/CWE-611/XXETest.expected @@ -0,0 +1,85 @@ +#select +| testAEXMLDocumentXXE.swift:51:32:51:32 | remoteString | testAEXMLDocumentXXE.swift:50:24:50:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:51:32:51:32 | remoteString | XML parsing depends on a $@ without guarding against external entity expansion. | testAEXMLDocumentXXE.swift:50:24:50:78 | call to String.init(contentsOf:) | user-provided value | +| testAEXMLDocumentXXE.swift:74:32:74:32 | remoteData | testAEXMLDocumentXXE.swift:70:24:70:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:74:32:74:32 | remoteData | XML parsing depends on a $@ without guarding against external entity expansion. | testAEXMLDocumentXXE.swift:70:24:70:78 | call to String.init(contentsOf:) | user-provided value | +| testAEXMLDocumentXXE.swift:99:17:99:17 | remoteData | testAEXMLDocumentXXE.swift:97:24:97:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:99:17:99:17 | remoteData | XML parsing depends on a $@ without guarding against external entity expansion. | testAEXMLDocumentXXE.swift:97:24:97:78 | call to String.init(contentsOf:) | user-provided value | +| testAEXMLDocumentXXE.swift:128:46:128:46 | remoteData | testAEXMLDocumentXXE.swift:126:24:126:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:128:46:128:46 | remoteData | XML parsing depends on a $@ without guarding against external entity expansion. | testAEXMLDocumentXXE.swift:126:24:126:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLDocumentXXE.swift:40:37:40:37 | remoteUrl | testXMLDocumentXXE.swift:38:24:38:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:40:37:40:37 | remoteUrl | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLDocumentXXE.swift:38:24:38:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLDocumentXXE.swift:58:31:58:31 | remoteData | testXMLDocumentXXE.swift:56:24:56:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:58:31:58:31 | remoteData | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLDocumentXXE.swift:56:24:56:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLDocumentXXE.swift:75:36:75:36 | remoteString | testXMLDocumentXXE.swift:74:24:74:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:75:36:75:36 | remoteString | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLDocumentXXE.swift:74:24:74:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLParserXXE.swift:34:34:34:34 | remoteData | testXMLParserXXE.swift:32:24:32:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:34:34:34:34 | remoteData | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLParserXXE.swift:32:24:32:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLParserXXE.swift:42:36:42:36 | remoteStream | testXMLParserXXE.swift:39:24:39:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:42:36:42:36 | remoteStream | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLParserXXE.swift:39:24:39:78 | call to String.init(contentsOf:) | user-provided value | +| testXMLParserXXE.swift:49:40:49:40 | remoteUrl | testXMLParserXXE.swift:47:24:47:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:49:40:49:40 | remoteUrl | XML parsing depends on a $@ without guarding against external entity expansion. | testXMLParserXXE.swift:47:24:47:78 | call to String.init(contentsOf:) | user-provided value | +edges +| testAEXMLDocumentXXE.swift:50:24:50:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:51:32:51:32 | remoteString | provenance | | +| testAEXMLDocumentXXE.swift:70:24:70:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:71:27:71:27 | remoteString | provenance | | +| testAEXMLDocumentXXE.swift:71:22:71:39 | call to Data.init(_:) | testAEXMLDocumentXXE.swift:74:32:74:32 | remoteData | provenance | | +| testAEXMLDocumentXXE.swift:71:27:71:27 | remoteString | testAEXMLDocumentXXE.swift:71:22:71:39 | call to Data.init(_:) | provenance | | +| testAEXMLDocumentXXE.swift:97:24:97:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:98:27:98:27 | remoteString | provenance | | +| testAEXMLDocumentXXE.swift:98:22:98:39 | call to Data.init(_:) | testAEXMLDocumentXXE.swift:99:17:99:17 | remoteData | provenance | | +| testAEXMLDocumentXXE.swift:98:27:98:27 | remoteString | testAEXMLDocumentXXE.swift:98:22:98:39 | call to Data.init(_:) | provenance | | +| testAEXMLDocumentXXE.swift:126:24:126:78 | call to String.init(contentsOf:) | testAEXMLDocumentXXE.swift:127:27:127:27 | remoteString | provenance | | +| testAEXMLDocumentXXE.swift:127:22:127:39 | call to Data.init(_:) | testAEXMLDocumentXXE.swift:128:46:128:46 | remoteData | provenance | | +| testAEXMLDocumentXXE.swift:127:27:127:27 | remoteString | testAEXMLDocumentXXE.swift:127:22:127:39 | call to Data.init(_:) | provenance | | +| testXMLDocumentXXE.swift:38:24:38:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:39:33:39:33 | remoteString | provenance | | +| testXMLDocumentXXE.swift:39:21:39:45 | call to URL.init(string:) [some:0] | testXMLDocumentXXE.swift:39:21:39:46 | ...! | provenance | | +| testXMLDocumentXXE.swift:39:21:39:46 | ...! | testXMLDocumentXXE.swift:40:37:40:37 | remoteUrl | provenance | | +| testXMLDocumentXXE.swift:39:33:39:33 | remoteString | testXMLDocumentXXE.swift:39:21:39:45 | call to URL.init(string:) [some:0] | provenance | | +| testXMLDocumentXXE.swift:56:24:56:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:57:27:57:27 | remoteString | provenance | | +| testXMLDocumentXXE.swift:57:22:57:39 | call to Data.init(_:) | testXMLDocumentXXE.swift:58:31:58:31 | remoteData | provenance | | +| testXMLDocumentXXE.swift:57:27:57:27 | remoteString | testXMLDocumentXXE.swift:57:22:57:39 | call to Data.init(_:) | provenance | | +| testXMLDocumentXXE.swift:74:24:74:78 | call to String.init(contentsOf:) | testXMLDocumentXXE.swift:75:36:75:36 | remoteString | provenance | | +| testXMLParserXXE.swift:32:24:32:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:33:27:33:27 | remoteString | provenance | | +| testXMLParserXXE.swift:33:22:33:39 | call to Data.init(_:) | testXMLParserXXE.swift:34:34:34:34 | remoteData | provenance | | +| testXMLParserXXE.swift:33:27:33:27 | remoteString | testXMLParserXXE.swift:33:22:33:39 | call to Data.init(_:) | provenance | | +| testXMLParserXXE.swift:39:24:39:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:40:27:40:27 | remoteString | provenance | | +| testXMLParserXXE.swift:40:22:40:39 | call to Data.init(_:) | testXMLParserXXE.swift:41:42:41:42 | remoteData | provenance | | +| testXMLParserXXE.swift:40:22:40:39 | call to Data.init(_:) | testXMLParserXXE.swift:42:36:42:36 | remoteStream | provenance | AdditionalTaintStep | +| testXMLParserXXE.swift:40:27:40:27 | remoteString | testXMLParserXXE.swift:40:22:40:39 | call to Data.init(_:) | provenance | | +| testXMLParserXXE.swift:41:24:41:52 | call to InputStream.init(data:) | testXMLParserXXE.swift:42:36:42:36 | remoteStream | provenance | | +| testXMLParserXXE.swift:41:42:41:42 | remoteData | testXMLParserXXE.swift:41:24:41:52 | call to InputStream.init(data:) | provenance | | +| testXMLParserXXE.swift:47:24:47:78 | call to String.init(contentsOf:) | testXMLParserXXE.swift:48:33:48:33 | remoteString | provenance | | +| testXMLParserXXE.swift:48:21:48:45 | call to URL.init(string:) [some:0] | testXMLParserXXE.swift:48:21:48:46 | ...! | provenance | | +| testXMLParserXXE.swift:48:21:48:46 | ...! | testXMLParserXXE.swift:49:40:49:40 | remoteUrl | provenance | | +| testXMLParserXXE.swift:48:33:48:33 | remoteString | testXMLParserXXE.swift:48:21:48:45 | call to URL.init(string:) [some:0] | provenance | | +nodes +| testAEXMLDocumentXXE.swift:50:24:50:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testAEXMLDocumentXXE.swift:51:32:51:32 | remoteString | semmle.label | remoteString | +| testAEXMLDocumentXXE.swift:70:24:70:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testAEXMLDocumentXXE.swift:71:22:71:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testAEXMLDocumentXXE.swift:71:27:71:27 | remoteString | semmle.label | remoteString | +| testAEXMLDocumentXXE.swift:74:32:74:32 | remoteData | semmle.label | remoteData | +| testAEXMLDocumentXXE.swift:97:24:97:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testAEXMLDocumentXXE.swift:98:22:98:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testAEXMLDocumentXXE.swift:98:27:98:27 | remoteString | semmle.label | remoteString | +| testAEXMLDocumentXXE.swift:99:17:99:17 | remoteData | semmle.label | remoteData | +| testAEXMLDocumentXXE.swift:126:24:126:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testAEXMLDocumentXXE.swift:127:22:127:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testAEXMLDocumentXXE.swift:127:27:127:27 | remoteString | semmle.label | remoteString | +| testAEXMLDocumentXXE.swift:128:46:128:46 | remoteData | semmle.label | remoteData | +| testXMLDocumentXXE.swift:38:24:38:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLDocumentXXE.swift:39:21:39:45 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| testXMLDocumentXXE.swift:39:21:39:46 | ...! | semmle.label | ...! | +| testXMLDocumentXXE.swift:39:33:39:33 | remoteString | semmle.label | remoteString | +| testXMLDocumentXXE.swift:40:37:40:37 | remoteUrl | semmle.label | remoteUrl | +| testXMLDocumentXXE.swift:56:24:56:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLDocumentXXE.swift:57:22:57:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testXMLDocumentXXE.swift:57:27:57:27 | remoteString | semmle.label | remoteString | +| testXMLDocumentXXE.swift:58:31:58:31 | remoteData | semmle.label | remoteData | +| testXMLDocumentXXE.swift:74:24:74:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLDocumentXXE.swift:75:36:75:36 | remoteString | semmle.label | remoteString | +| testXMLParserXXE.swift:32:24:32:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLParserXXE.swift:33:22:33:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testXMLParserXXE.swift:33:27:33:27 | remoteString | semmle.label | remoteString | +| testXMLParserXXE.swift:34:34:34:34 | remoteData | semmle.label | remoteData | +| testXMLParserXXE.swift:39:24:39:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLParserXXE.swift:40:22:40:39 | call to Data.init(_:) | semmle.label | call to Data.init(_:) | +| testXMLParserXXE.swift:40:27:40:27 | remoteString | semmle.label | remoteString | +| testXMLParserXXE.swift:41:24:41:52 | call to InputStream.init(data:) | semmle.label | call to InputStream.init(data:) | +| testXMLParserXXE.swift:41:42:41:42 | remoteData | semmle.label | remoteData | +| testXMLParserXXE.swift:42:36:42:36 | remoteStream | semmle.label | remoteStream | +| testXMLParserXXE.swift:47:24:47:78 | call to String.init(contentsOf:) | semmle.label | call to String.init(contentsOf:) | +| testXMLParserXXE.swift:48:21:48:45 | call to URL.init(string:) [some:0] | semmle.label | call to URL.init(string:) [some:0] | +| testXMLParserXXE.swift:48:21:48:46 | ...! | semmle.label | ...! | +| testXMLParserXXE.swift:48:33:48:33 | remoteString | semmle.label | remoteString | +| testXMLParserXXE.swift:49:40:49:40 | remoteUrl | semmle.label | remoteUrl | +subpaths diff --git a/swift/ql/test/query-tests/Security/CWE-611/XXETest.ql b/swift/ql/test/query-tests/Security/CWE-611/XXETest.ql deleted file mode 100644 index 64001151b44..00000000000 --- a/swift/ql/test/query-tests/Security/CWE-611/XXETest.ql +++ /dev/null @@ -1,27 +0,0 @@ -import swift -import codeql.swift.dataflow.FlowSources -import codeql.swift.security.XXEQuery -import utils.test.InlineExpectationsTest - -class TestRemoteSource extends RemoteFlowSource { - TestRemoteSource() { this.asExpr().(ApplyExpr).getStaticTarget().getName().matches("source%") } - - override string getSourceType() { result = "Test source" } -} - -module XxeTest implements TestSig { - string getARelevantTag() { result = "hasXXE" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - exists(DataFlow::Node source, DataFlow::Node sink, Expr sinkExpr | - XxeFlow::flow(source, sink) and - sinkExpr = sink.asExpr() and - location = sinkExpr.getLocation() and - element = sinkExpr.toString() and - tag = "hasXXE" and - value = source.asExpr().getLocation().getStartLine().toString() - ) - } -} - -import MakeTest diff --git a/swift/ql/test/query-tests/Security/CWE-611/XXETest.qlref b/swift/ql/test/query-tests/Security/CWE-611/XXETest.qlref new file mode 100644 index 00000000000..83154ac29d4 --- /dev/null +++ b/swift/ql/test/query-tests/Security/CWE-611/XXETest.qlref @@ -0,0 +1,3 @@ +query: queries/Security/CWE-611/XXE.ql +postprocess: + - utils/test/InlineExpectationsTestQuery.ql diff --git a/swift/ql/test/query-tests/Security/CWE-611/testAEXMLDocumentXXE.swift b/swift/ql/test/query-tests/Security/CWE-611/testAEXMLDocumentXXE.swift index 9f337030158..c7501d4bcbd 100644 --- a/swift/ql/test/query-tests/Security/CWE-611/testAEXMLDocumentXXE.swift +++ b/swift/ql/test/query-tests/Security/CWE-611/testAEXMLDocumentXXE.swift @@ -47,8 +47,8 @@ func testString() { var options = AEXMLOptions() options.parserSettings.shouldResolveExternalEntities = true - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) - let _ = AEXMLDocument(xml: remoteString, encoding: String.Encoding.utf8, options: options) // $ hasXXE=50 + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source + let _ = AEXMLDocument(xml: remoteString, encoding: String.Encoding.utf8, options: options) // $ Alert } func testStringSafeImplicit() { @@ -67,11 +67,11 @@ func testStringSafeExplicit() { } func testData() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) var options = AEXMLOptions() options.parserSettings.shouldResolveExternalEntities = true - let _ = AEXMLDocument(xml: remoteData, options: options) // $ hasXXE=70 + let _ = AEXMLDocument(xml: remoteData, options: options) // $ Alert } func testDataSafeImplicit() { @@ -94,9 +94,9 @@ func testDataLoadXml() { options.parserSettings.shouldResolveExternalEntities = true let doc = AEXMLDocument(root: nil, options: options) - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) - doc.loadXML(remoteData) // $ hasXXE=97 + doc.loadXML(remoteData) // $ Alert } func testDataLoadXmlSafeImplicit() { @@ -123,9 +123,9 @@ func testParser() { options.parserSettings.shouldResolveExternalEntities = true let doc = AEXMLDocument(root: nil, options: options) - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) - let _ = AEXMLParser(document: doc, data: remoteData) // $ hasXXE=126 + let _ = AEXMLParser(document: doc, data: remoteData) // $ Alert } func testParserSafeImplicit() { @@ -145,4 +145,4 @@ func testParserSafeExplicit() { let remoteString = String(contentsOf: URL(string: "http://example.com/")!) let remoteData = Data(remoteString) let _ = AEXMLParser(document: doc, data: remoteData) // NO XXE -} \ No newline at end of file +} diff --git a/swift/ql/test/query-tests/Security/CWE-611/testXMLDocumentXXE.swift b/swift/ql/test/query-tests/Security/CWE-611/testXMLDocumentXXE.swift index 07180301e72..9cfa694839a 100644 --- a/swift/ql/test/query-tests/Security/CWE-611/testXMLDocumentXXE.swift +++ b/swift/ql/test/query-tests/Security/CWE-611/testXMLDocumentXXE.swift @@ -35,9 +35,9 @@ class XMLDocument { // --- tests --- func testUrl() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteUrl = URL(string: remoteString)! - let _ = XMLDocument(contentsOf: remoteUrl, options: [.nodeLoadExternalEntitiesAlways]) // $ hasXXE=38 + let _ = XMLDocument(contentsOf: remoteUrl, options: [.nodeLoadExternalEntitiesAlways]) // $ Alert } func testUrlSafeImplicit() { @@ -53,9 +53,9 @@ func testUrlSafeExplicit() { } func testData() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) - let _ = XMLDocument(data: remoteData, options: [.nodeLoadExternalEntitiesAlways]) // $ hasXXE=56 + let _ = XMLDocument(data: remoteData, options: [.nodeLoadExternalEntitiesAlways]) // $ Alert } func testDataSafeImplicit() { @@ -71,8 +71,8 @@ func testDataSafeExplicit() { } func testString() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) - let _ = XMLDocument(xmlString: remoteString, options: [.nodeLoadExternalEntitiesAlways]) // $ hasXXE=74 + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source + let _ = XMLDocument(xmlString: remoteString, options: [.nodeLoadExternalEntitiesAlways]) // $ Alert } func testStringSafeImplicit() { diff --git a/swift/ql/test/query-tests/Security/CWE-611/testXMLParserXXE.swift b/swift/ql/test/query-tests/Security/CWE-611/testXMLParserXXE.swift index 75538f014f9..3b679675b1a 100644 --- a/swift/ql/test/query-tests/Security/CWE-611/testXMLParserXXE.swift +++ b/swift/ql/test/query-tests/Security/CWE-611/testXMLParserXXE.swift @@ -29,24 +29,24 @@ class XMLParser { // --- tests --- func testData() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) - let parser = XMLParser(data: remoteData) // $ hasXXE=32 + let parser = XMLParser(data: remoteData) // $ Alert parser.shouldResolveExternalEntities = true } func testInputStream() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteData = Data(remoteString) let remoteStream = InputStream(data: remoteData) - let parser = XMLParser(stream: remoteStream) // $ hasXXE=39 + let parser = XMLParser(stream: remoteStream) // $ Alert parser.shouldResolveExternalEntities = true } func testUrl() { - let remoteString = String(contentsOf: URL(string: "http://example.com/")!) + let remoteString = String(contentsOf: URL(string: "http://example.com/")!) // $ Source let remoteUrl = URL(string: remoteString)! - let parser = XMLParser(contentsOf: remoteUrl) // $ hasXXE=47 + let parser = XMLParser(contentsOf: remoteUrl) // $ Alert parser?.shouldResolveExternalEntities = true } @@ -89,4 +89,4 @@ func testUrlSafeExplicit() { let remoteUrl = URL(string: remoteString)! let parser = XMLParser(contentsOf: remoteUrl) // NO XXE: parser disables external entities parser?.shouldResolveExternalEntities = false -} \ No newline at end of file +} From 588efe4b2b3daa42c334d01d19d0f7a0156c51e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 10:00:12 +0200 Subject: [PATCH 263/340] Java: Convert TaintedPath test to .qlref --- .../CWE-022/semmle/tests/TaintedPath.expected | 474 ++++++++++++++++++ .../CWE-022/semmle/tests/TaintedPath.java | 4 +- .../CWE-022/semmle/tests/TaintedPath.ql | 4 - .../CWE-022/semmle/tests/TaintedPath.qlref | 4 + .../security/CWE-022/semmle/tests/Test.java | 156 +++--- 5 files changed, 558 insertions(+), 84 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.ql create mode 100644 java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.qlref diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected index e69de29bb2d..aee29733bca 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.expected @@ -0,0 +1,474 @@ +#select +| TaintedPath.java:16:71:16:78 | filename | TaintedPath.java:13:58:13:78 | getInputStream(...) : InputStream | TaintedPath.java:16:71:16:78 | filename | This path depends on a $@. | TaintedPath.java:13:58:13:78 | getInputStream(...) | user-provided value | +| Test.java:37:52:37:68 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:37:52:37:68 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:39:32:39:48 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:39:32:39:48 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:41:47:41:63 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:41:47:41:63 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:43:10:43:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:43:10:43:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:45:10:45:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:45:10:45:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:47:10:47:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:47:10:47:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:49:10:49:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:49:10:49:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:51:39:51:53 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:51:39:51:53 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:53:10:53:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:53:10:53:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:55:10:55:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:55:10:55:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:57:10:57:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:57:10:57:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:59:10:59:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:59:10:59:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:61:10:61:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:61:10:61:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:63:10:63:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:63:10:63:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:65:10:65:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:65:10:65:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:67:10:67:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:67:10:67:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:69:31:69:45 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:69:31:69:45 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:71:10:71:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:71:10:71:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:73:10:73:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:73:10:73:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:75:10:75:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:75:10:75:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:77:10:77:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:77:10:77:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:79:10:79:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:79:10:79:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:81:10:81:24 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:81:10:81:24 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:83:31:83:45 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:83:31:83:45 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:85:29:85:43 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:85:29:85:43 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:87:29:87:53 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:87:29:87:53 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:89:29:89:45 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:89:29:89:45 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:91:24:91:38 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:91:24:91:38 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:93:24:93:48 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:93:24:93:48 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:95:24:95:38 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:95:24:95:38 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:97:24:97:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:97:24:97:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:99:24:99:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:99:24:99:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:101:20:101:34 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:101:20:101:34 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:102:20:102:34 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:102:20:102:34 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:104:33:104:47 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:104:33:104:47 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:105:40:105:54 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:105:40:105:54 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:107:33:107:47 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:107:33:107:47 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:109:31:109:45 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:109:31:109:45 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:111:26:111:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:111:26:111:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:113:26:113:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:113:26:113:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:115:34:115:48 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:115:34:115:48 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:117:35:117:49 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:117:35:117:49 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:119:30:119:44 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:119:30:119:44 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:121:22:121:36 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:121:22:121:36 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:123:30:123:44 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:123:30:123:44 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:125:21:125:35 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:125:21:125:35 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:127:26:127:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:127:26:127:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:129:33:129:47 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:129:33:129:47 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:131:33:131:47 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:131:33:131:47 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:132:33:132:47 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:132:33:132:47 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:134:31:134:45 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:134:31:134:45 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:136:21:136:35 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:136:21:136:35 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:137:21:137:35 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:137:21:137:35 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:138:21:138:35 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:138:21:138:35 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:140:27:140:41 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:140:27:140:41 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:141:27:141:41 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:141:27:141:41 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:143:26:143:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:143:26:143:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:145:35:145:49 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:145:35:145:49 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:147:41:147:57 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:147:41:147:57 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:149:45:149:61 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:149:45:149:61 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:151:43:151:57 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:151:43:151:57 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:153:28:153:42 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:153:28:153:42 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:155:41:155:55 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:155:41:155:55 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:160:30:160:44 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:160:30:160:44 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:162:40:162:81 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:162:40:162:81 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:164:34:164:75 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:164:34:164:75 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:166:34:166:75 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:166:34:166:75 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:168:23:168:37 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:168:23:168:37 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:181:23:181:37 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:181:23:181:37 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:186:23:186:40 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:186:23:186:40 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:188:20:188:34 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:188:20:188:34 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:190:21:190:35 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:190:21:190:35 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:192:22:192:36 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:192:22:192:36 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:197:20:197:34 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:197:20:197:34 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:199:19:199:33 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:199:19:199:33 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +| Test.java:204:20:204:36 | (...)... | Test.java:32:16:32:45 | getParameter(...) : String | Test.java:204:20:204:36 | (...)... | This path depends on a $@. | Test.java:32:16:32:45 | getParameter(...) | user-provided value | +edges +| TaintedPath.java:13:17:13:89 | new BufferedReader(...) : BufferedReader | TaintedPath.java:14:27:14:40 | filenameReader : BufferedReader | provenance | | +| TaintedPath.java:13:36:13:88 | new InputStreamReader(...) : InputStreamReader | TaintedPath.java:13:17:13:89 | new BufferedReader(...) : BufferedReader | provenance | MaD:74 | +| TaintedPath.java:13:58:13:78 | getInputStream(...) : InputStream | TaintedPath.java:13:36:13:88 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:72 MaD:76 | +| TaintedPath.java:14:27:14:40 | filenameReader : BufferedReader | TaintedPath.java:14:27:14:51 | readLine(...) : String | provenance | MaD:75 | +| TaintedPath.java:14:27:14:51 | readLine(...) : String | TaintedPath.java:16:71:16:78 | filename | provenance | Sink:MaD:27 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:37:61:37:68 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:39:41:39:48 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:41:56:41:63 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:43:17:43:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:45:17:45:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:47:17:47:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:49:17:49:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:51:46:51:53 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:53:17:53:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:55:17:55:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:57:17:57:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:59:17:59:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:61:17:61:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:63:17:63:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:65:17:65:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:67:17:67:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:69:38:69:45 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:71:17:71:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:73:17:73:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:75:17:75:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:77:17:77:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:79:17:79:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:81:17:81:24 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:83:38:83:45 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:85:36:85:43 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:87:46:87:53 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:89:38:89:45 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:91:31:91:38 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:93:41:93:48 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:95:31:95:38 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:97:33:97:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:99:33:99:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:101:27:101:34 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:102:27:102:34 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:104:40:104:47 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:105:47:105:54 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:107:40:107:47 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:109:38:109:45 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:111:33:111:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:113:33:113:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:115:41:115:48 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:117:42:117:49 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:119:37:119:44 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:121:29:121:36 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:123:37:123:44 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:125:28:125:35 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:127:33:127:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:129:40:129:47 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:131:40:131:47 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:132:40:132:47 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:134:38:134:45 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:136:28:136:35 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:137:28:137:35 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:138:28:138:35 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:140:34:140:41 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:141:34:141:41 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:143:33:143:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:145:42:145:49 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:147:50:147:57 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:149:54:149:61 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:151:50:151:57 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:153:35:153:42 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:155:48:155:55 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:160:37:160:44 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:162:74:162:81 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:164:68:164:75 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:166:68:166:75 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:168:30:168:37 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:181:30:181:37 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:186:33:186:40 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:188:27:188:34 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:190:28:190:35 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:192:29:192:36 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:197:27:197:34 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:199:26:199:33 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:32:16:32:45 | getParameter(...) : String | Test.java:204:29:204:36 | source(...) : String | provenance | Src:MaD:73 | +| Test.java:37:61:37:68 | source(...) : String | Test.java:37:52:37:68 | (...)... | provenance | Sink:MaD:31 | +| Test.java:39:41:39:48 | source(...) : String | Test.java:39:32:39:48 | (...)... | provenance | Sink:MaD:29 | +| Test.java:41:56:41:63 | source(...) : String | Test.java:41:47:41:63 | (...)... | provenance | Sink:MaD:30 | +| Test.java:43:17:43:24 | source(...) : String | Test.java:43:10:43:24 | (...)... | provenance | Sink:MaD:1 | +| Test.java:45:17:45:24 | source(...) : String | Test.java:45:10:45:24 | (...)... | provenance | Sink:MaD:2 | +| Test.java:47:17:47:24 | source(...) : String | Test.java:47:10:47:24 | (...)... | provenance | Sink:MaD:3 | +| Test.java:49:17:49:24 | source(...) : String | Test.java:49:10:49:24 | (...)... | provenance | Sink:MaD:4 | +| Test.java:51:46:51:53 | source(...) : String | Test.java:51:39:51:53 | (...)... | provenance | Sink:MaD:5 | +| Test.java:53:17:53:24 | source(...) : String | Test.java:53:10:53:24 | (...)... | provenance | Sink:MaD:6 | +| Test.java:55:17:55:24 | source(...) : String | Test.java:55:10:55:24 | (...)... | provenance | Sink:MaD:7 | +| Test.java:57:17:57:24 | source(...) : String | Test.java:57:10:57:24 | (...)... | provenance | Sink:MaD:8 | +| Test.java:59:17:59:24 | source(...) : String | Test.java:59:10:59:24 | (...)... | provenance | Sink:MaD:9 | +| Test.java:61:17:61:24 | source(...) : String | Test.java:61:10:61:24 | (...)... | provenance | Sink:MaD:10 | +| Test.java:63:17:63:24 | source(...) : String | Test.java:63:10:63:24 | (...)... | provenance | Sink:MaD:11 | +| Test.java:65:17:65:24 | source(...) : String | Test.java:65:10:65:24 | (...)... | provenance | Sink:MaD:12 | +| Test.java:67:17:67:24 | source(...) : String | Test.java:67:10:67:24 | (...)... | provenance | Sink:MaD:13 | +| Test.java:69:38:69:45 | source(...) : String | Test.java:69:31:69:45 | (...)... | provenance | Sink:MaD:14 | +| Test.java:71:17:71:24 | source(...) : String | Test.java:71:10:71:24 | (...)... | provenance | Sink:MaD:15 | +| Test.java:73:17:73:24 | source(...) : String | Test.java:73:10:73:24 | (...)... | provenance | Sink:MaD:16 | +| Test.java:75:17:75:24 | source(...) : String | Test.java:75:10:75:24 | (...)... | provenance | Sink:MaD:17 | +| Test.java:77:17:77:24 | source(...) : String | Test.java:77:10:77:24 | (...)... | provenance | Sink:MaD:19 | +| Test.java:79:17:79:24 | source(...) : String | Test.java:79:10:79:24 | (...)... | provenance | Sink:MaD:18 | +| Test.java:81:17:81:24 | source(...) : String | Test.java:81:10:81:24 | (...)... | provenance | Sink:MaD:20 | +| Test.java:83:38:83:45 | source(...) : String | Test.java:83:31:83:45 | (...)... | provenance | Sink:MaD:14 | +| Test.java:85:36:85:43 | source(...) : String | Test.java:85:29:85:43 | (...)... | provenance | Sink:MaD:21 | +| Test.java:87:46:87:53 | source(...) : String | Test.java:87:29:87:53 | (...)... | provenance | Sink:MaD:22 | +| Test.java:89:38:89:45 | source(...) : String | Test.java:89:29:89:45 | (...)... | provenance | Sink:MaD:23 | +| Test.java:91:31:91:38 | source(...) : String | Test.java:91:24:91:38 | (...)... | provenance | Sink:MaD:24 | +| Test.java:93:41:93:48 | source(...) : String | Test.java:93:24:93:48 | (...)... | provenance | Sink:MaD:26 | +| Test.java:95:31:95:38 | source(...) : String | Test.java:95:24:95:38 | (...)... | provenance | Sink:MaD:25 | +| Test.java:97:33:97:40 | source(...) : String | Test.java:97:24:97:40 | (...)... | provenance | Sink:MaD:27 | +| Test.java:99:33:99:40 | source(...) : String | Test.java:99:24:99:40 | (...)... | provenance | Sink:MaD:28 | +| Test.java:101:27:101:34 | source(...) : String | Test.java:101:20:101:34 | (...)... | provenance | Sink:MaD:34 | +| Test.java:102:27:102:34 | source(...) : String | Test.java:102:20:102:34 | (...)... | provenance | Sink:MaD:33 | +| Test.java:104:40:104:47 | source(...) : String | Test.java:104:33:104:47 | (...)... | provenance | Sink:MaD:35 | +| Test.java:105:47:105:54 | source(...) : String | Test.java:105:40:105:54 | (...)... | provenance | Sink:MaD:32 | +| Test.java:107:40:107:47 | source(...) : String | Test.java:107:33:107:47 | (...)... | provenance | Sink:MaD:36 | +| Test.java:109:38:109:45 | source(...) : String | Test.java:109:31:109:45 | (...)... | provenance | Sink:MaD:37 | +| Test.java:111:33:111:40 | source(...) : String | Test.java:111:26:111:40 | (...)... | provenance | Sink:MaD:38 | +| Test.java:113:33:113:40 | source(...) : String | Test.java:113:26:113:40 | (...)... | provenance | Sink:MaD:39 | +| Test.java:115:41:115:48 | source(...) : String | Test.java:115:34:115:48 | (...)... | provenance | Sink:MaD:40 | +| Test.java:117:42:117:49 | source(...) : String | Test.java:117:35:117:49 | (...)... | provenance | Sink:MaD:41 | +| Test.java:119:37:119:44 | source(...) : String | Test.java:119:30:119:44 | (...)... | provenance | Sink:MaD:42 | +| Test.java:121:29:121:36 | source(...) : String | Test.java:121:22:121:36 | (...)... | provenance | Sink:MaD:43 | +| Test.java:123:37:123:44 | source(...) : String | Test.java:123:30:123:44 | (...)... | provenance | Sink:MaD:44 | +| Test.java:125:28:125:35 | source(...) : String | Test.java:125:21:125:35 | (...)... | provenance | Sink:MaD:45 | +| Test.java:127:33:127:40 | source(...) : String | Test.java:127:26:127:40 | (...)... | provenance | Sink:MaD:46 | +| Test.java:129:40:129:47 | source(...) : String | Test.java:129:33:129:47 | (...)... | provenance | Sink:MaD:47 | +| Test.java:131:40:131:47 | source(...) : String | Test.java:131:33:131:47 | (...)... | provenance | Sink:MaD:48 | +| Test.java:132:40:132:47 | source(...) : String | Test.java:132:33:132:47 | (...)... | provenance | Sink:MaD:48 | +| Test.java:134:38:134:45 | source(...) : String | Test.java:134:31:134:45 | (...)... | provenance | Sink:MaD:49 | +| Test.java:136:28:136:35 | source(...) : String | Test.java:136:21:136:35 | (...)... | provenance | Sink:MaD:50 | +| Test.java:137:28:137:35 | source(...) : String | Test.java:137:21:137:35 | (...)... | provenance | Sink:MaD:50 | +| Test.java:138:28:138:35 | source(...) : String | Test.java:138:21:138:35 | (...)... | provenance | Sink:MaD:50 | +| Test.java:140:34:140:41 | source(...) : String | Test.java:140:27:140:41 | (...)... | provenance | Sink:MaD:51 | +| Test.java:141:34:141:41 | source(...) : String | Test.java:141:27:141:41 | (...)... | provenance | Sink:MaD:51 | +| Test.java:143:33:143:40 | source(...) : String | Test.java:143:26:143:40 | (...)... | provenance | Sink:MaD:52 | +| Test.java:145:42:145:49 | source(...) : String | Test.java:145:35:145:49 | (...)... | provenance | Sink:MaD:53 | +| Test.java:147:50:147:57 | source(...) : String | Test.java:147:41:147:57 | (...)... | provenance | Sink:MaD:65 | +| Test.java:149:54:149:61 | source(...) : String | Test.java:149:45:149:61 | (...)... | provenance | Sink:MaD:66 | +| Test.java:151:50:151:57 | source(...) : String | Test.java:151:43:151:57 | (...)... | provenance | Sink:MaD:71 | +| Test.java:153:35:153:42 | source(...) : String | Test.java:153:28:153:42 | (...)... | provenance | Sink:MaD:69 | +| Test.java:155:48:155:55 | source(...) : String | Test.java:155:41:155:55 | (...)... | provenance | Sink:MaD:70 | +| Test.java:160:37:160:44 | source(...) : String | Test.java:160:30:160:44 | (...)... | provenance | Sink:MaD:63 | +| Test.java:162:74:162:81 | source(...) : String | Test.java:162:40:162:81 | (...)... | provenance | Sink:MaD:60 | +| Test.java:164:68:164:75 | source(...) : String | Test.java:164:34:164:75 | (...)... | provenance | Sink:MaD:62 | +| Test.java:166:68:166:75 | source(...) : String | Test.java:166:34:166:75 | (...)... | provenance | Sink:MaD:61 | +| Test.java:168:30:168:37 | source(...) : String | Test.java:168:23:168:37 | (...)... | provenance | Sink:MaD:67 | +| Test.java:181:30:181:37 | source(...) : String | Test.java:181:23:181:37 | (...)... | provenance | Sink:MaD:64 | +| Test.java:186:33:186:40 | source(...) : String | Test.java:186:23:186:40 | (...)... | provenance | Sink:MaD:54 | +| Test.java:188:27:188:34 | source(...) : String | Test.java:188:20:188:34 | (...)... | provenance | Sink:MaD:55 | +| Test.java:190:28:190:35 | source(...) : String | Test.java:190:21:190:35 | (...)... | provenance | Sink:MaD:56 | +| Test.java:192:29:192:36 | source(...) : String | Test.java:192:22:192:36 | (...)... | provenance | Sink:MaD:57 | +| Test.java:197:27:197:34 | source(...) : String | Test.java:197:20:197:34 | (...)... | provenance | Sink:MaD:58 | +| Test.java:199:26:199:33 | source(...) : String | Test.java:199:19:199:33 | (...)... | provenance | Sink:MaD:59 | +| Test.java:204:29:204:36 | source(...) : String | Test.java:204:20:204:36 | (...)... | provenance | Sink:MaD:68 | +models +| 1 | Sink: java.io; File; true; canExecute; (); ; Argument[this]; path-injection; manual | +| 2 | Sink: java.io; File; true; canRead; (); ; Argument[this]; path-injection; manual | +| 3 | Sink: java.io; File; true; canWrite; (); ; Argument[this]; path-injection; manual | +| 4 | Sink: java.io; File; true; createNewFile; (); ; Argument[this]; path-injection; ai-manual | +| 5 | Sink: java.io; File; true; createTempFile; (String,String,File); ; Argument[2]; path-injection; ai-manual | +| 6 | Sink: java.io; File; true; delete; (); ; Argument[this]; path-injection; manual | +| 7 | Sink: java.io; File; true; deleteOnExit; (); ; Argument[this]; path-injection; manual | +| 8 | Sink: java.io; File; true; exists; (); ; Argument[this]; path-injection; manual | +| 9 | Sink: java.io; File; true; isDirectory; (); ; Argument[this]; path-injection; manual | +| 10 | Sink: java.io; File; true; isFile; (); ; Argument[this]; path-injection; manual | +| 11 | Sink: java.io; File; true; isHidden; (); ; Argument[this]; path-injection; manual | +| 12 | Sink: java.io; File; true; mkdir; (); ; Argument[this]; path-injection; manual | +| 13 | Sink: java.io; File; true; mkdirs; (); ; Argument[this]; path-injection; manual | +| 14 | Sink: java.io; File; true; renameTo; (File); ; Argument[0]; path-injection; ai-manual | +| 15 | Sink: java.io; File; true; renameTo; (File); ; Argument[this]; path-injection; ai-manual | +| 16 | Sink: java.io; File; true; setExecutable; ; ; Argument[this]; path-injection; manual | +| 17 | Sink: java.io; File; true; setLastModified; ; ; Argument[this]; path-injection; manual | +| 18 | Sink: java.io; File; true; setReadOnly; ; ; Argument[this]; path-injection; manual | +| 19 | Sink: java.io; File; true; setReadable; ; ; Argument[this]; path-injection; manual | +| 20 | Sink: java.io; File; true; setWritable; ; ; Argument[this]; path-injection; manual | +| 21 | Sink: java.io; FileInputStream; true; FileInputStream; (File); ; Argument[0]; path-injection; ai-manual | +| 22 | Sink: java.io; FileInputStream; true; FileInputStream; (FileDescriptor); ; Argument[0]; path-injection; manual | +| 23 | Sink: java.io; FileInputStream; true; FileInputStream; (String); ; Argument[0]; path-injection; ai-manual | +| 24 | Sink: java.io; FileReader; true; FileReader; (File); ; Argument[0]; path-injection; ai-manual | +| 25 | Sink: java.io; FileReader; true; FileReader; (File,Charset); ; Argument[0]; path-injection; manual | +| 26 | Sink: java.io; FileReader; true; FileReader; (FileDescriptor); ; Argument[0]; path-injection; manual | +| 27 | Sink: java.io; FileReader; true; FileReader; (String); ; Argument[0]; path-injection; ai-manual | +| 28 | Sink: java.io; FileReader; true; FileReader; (String,Charset); ; Argument[0]; path-injection; manual | +| 29 | Sink: java.lang; Class; false; getResource; (String); ; Argument[0]; path-injection; ai-manual | +| 30 | Sink: java.lang; ClassLoader; true; getSystemResourceAsStream; (String); ; Argument[0]; path-injection; ai-manual | +| 31 | Sink: java.lang; Module; true; getResourceAsStream; (String); ; Argument[0]; path-injection; ai-manual | +| 32 | Sink: java.nio.file; Files; false; copy; (InputStream,Path,CopyOption[]); ; Argument[1]; path-injection; manual | +| 33 | Sink: java.nio.file; Files; false; copy; (Path,OutputStream); ; Argument[0]; path-injection; manual | +| 34 | Sink: java.nio.file; Files; false; copy; (Path,Path,CopyOption[]); ; Argument[0]; path-injection; manual | +| 35 | Sink: java.nio.file; Files; false; copy; (Path,Path,CopyOption[]); ; Argument[1]; path-injection; manual | +| 36 | Sink: java.nio.file; Files; false; createDirectories; ; ; Argument[0]; path-injection; manual | +| 37 | Sink: java.nio.file; Files; false; createDirectory; ; ; Argument[0]; path-injection; manual | +| 38 | Sink: java.nio.file; Files; false; createFile; ; ; Argument[0]; path-injection; manual | +| 39 | Sink: java.nio.file; Files; false; createLink; ; ; Argument[0]; path-injection; manual | +| 40 | Sink: java.nio.file; Files; false; createSymbolicLink; ; ; Argument[0]; path-injection; manual | +| 41 | Sink: java.nio.file; Files; false; createTempDirectory; (Path,String,FileAttribute[]); ; Argument[0]; path-injection; manual | +| 42 | Sink: java.nio.file; Files; false; createTempFile; (Path,String,String,FileAttribute[]); ; Argument[0]; path-injection; manual | +| 43 | Sink: java.nio.file; Files; false; delete; (Path); ; Argument[0]; path-injection; ai-manual | +| 44 | Sink: java.nio.file; Files; false; deleteIfExists; (Path); ; Argument[0]; path-injection; ai-manual | +| 45 | Sink: java.nio.file; Files; false; lines; (Path,Charset); ; Argument[0]; path-injection; ai-manual | +| 46 | Sink: java.nio.file; Files; false; move; ; ; Argument[1]; path-injection; manual | +| 47 | Sink: java.nio.file; Files; false; newBufferedReader; (Path,Charset); ; Argument[0]; path-injection; ai-manual | +| 48 | Sink: java.nio.file; Files; false; newBufferedWriter; ; ; Argument[0]; path-injection; manual | +| 49 | Sink: java.nio.file; Files; false; newOutputStream; ; ; Argument[0]; path-injection; manual | +| 50 | Sink: java.nio.file; Files; false; write; ; ; Argument[0]; path-injection; manual | +| 51 | Sink: java.nio.file; Files; false; writeString; ; ; Argument[0]; path-injection; manual | +| 52 | Sink: javax.xml.transform.stream; StreamResult; true; StreamResult; (File); ; Argument[0]; path-injection; ai-manual | +| 53 | Sink: org.apache.commons.io; FileUtils; true; openInputStream; (File); ; Argument[0]; path-injection; ai-manual | +| 54 | Sink: org.apache.tools.ant.taskdefs; Copy; true; addFileset; (FileSet); ; Argument[0]; path-injection; ai-manual | +| 55 | Sink: org.apache.tools.ant.taskdefs; Copy; true; setFile; (File); ; Argument[0]; path-injection; ai-manual | +| 56 | Sink: org.apache.tools.ant.taskdefs; Copy; true; setTodir; (File); ; Argument[0]; path-injection; ai-manual | +| 57 | Sink: org.apache.tools.ant.taskdefs; Copy; true; setTofile; (File); ; Argument[0]; path-injection; ai-manual | +| 58 | Sink: org.apache.tools.ant.taskdefs; Expand; true; setDest; (File); ; Argument[0]; path-injection; ai-manual | +| 59 | Sink: org.apache.tools.ant.taskdefs; Expand; true; setSrc; (File); ; Argument[0]; path-injection; ai-manual | +| 60 | Sink: org.apache.tools.ant; AntClassLoader; true; AntClassLoader; (ClassLoader,Project,Path,boolean); ; Argument[2]; path-injection; ai-manual | +| 61 | Sink: org.apache.tools.ant; AntClassLoader; true; AntClassLoader; (Project,Path); ; Argument[1]; path-injection; ai-manual | +| 62 | Sink: org.apache.tools.ant; AntClassLoader; true; AntClassLoader; (Project,Path,boolean); ; Argument[1]; path-injection; ai-manual | +| 63 | Sink: org.apache.tools.ant; AntClassLoader; true; addPathComponent; (File); ; Argument[0]; path-injection; ai-manual | +| 64 | Sink: org.apache.tools.ant; DirectoryScanner; true; setBasedir; (File); ; Argument[0]; path-injection; ai-manual | +| 65 | Sink: org.codehaus.cargo.container.installer; ZipURLInstaller; true; ZipURLInstaller; (URL,String,String); ; Argument[1]; path-injection; ai-manual | +| 66 | Sink: org.codehaus.cargo.container.installer; ZipURLInstaller; true; ZipURLInstaller; (URL,String,String); ; Argument[2]; path-injection; ai-manual | +| 67 | Sink: org.kohsuke.stapler.framework.io; LargeText; true; LargeText; (File,Charset,boolean,boolean); ; Argument[0]; path-injection; ai-manual | +| 68 | Sink: org.openjdk.jmh.runner.options; ChainedOptionsBuilder; true; result; (String); ; Argument[0]; path-injection; ai-manual | +| 69 | Sink: org.springframework.util; FileCopyUtils; false; copy; (File,File); ; Argument[0]; path-injection; manual | +| 70 | Sink: org.springframework.util; FileCopyUtils; false; copy; (File,File); ; Argument[1]; path-injection; manual | +| 71 | Sink: org.springframework.util; FileCopyUtils; false; copy; (byte[],File); ; Argument[1]; path-injection; manual | +| 72 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 73 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 74 | Summary: java.io; BufferedReader; false; BufferedReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 75 | Summary: java.io; BufferedReader; true; readLine; ; ; Argument[this]; ReturnValue; taint; manual | +| 76 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| TaintedPath.java:13:17:13:89 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | +| TaintedPath.java:13:36:13:88 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| TaintedPath.java:13:58:13:78 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TaintedPath.java:14:27:14:40 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | +| TaintedPath.java:14:27:14:51 | readLine(...) : String | semmle.label | readLine(...) : String | +| TaintedPath.java:16:71:16:78 | filename | semmle.label | filename | +| Test.java:32:16:32:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| Test.java:37:52:37:68 | (...)... | semmle.label | (...)... | +| Test.java:37:61:37:68 | source(...) : String | semmle.label | source(...) : String | +| Test.java:39:32:39:48 | (...)... | semmle.label | (...)... | +| Test.java:39:41:39:48 | source(...) : String | semmle.label | source(...) : String | +| Test.java:41:47:41:63 | (...)... | semmle.label | (...)... | +| Test.java:41:56:41:63 | source(...) : String | semmle.label | source(...) : String | +| Test.java:43:10:43:24 | (...)... | semmle.label | (...)... | +| Test.java:43:17:43:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:45:10:45:24 | (...)... | semmle.label | (...)... | +| Test.java:45:17:45:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:47:10:47:24 | (...)... | semmle.label | (...)... | +| Test.java:47:17:47:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:49:10:49:24 | (...)... | semmle.label | (...)... | +| Test.java:49:17:49:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:51:39:51:53 | (...)... | semmle.label | (...)... | +| Test.java:51:46:51:53 | source(...) : String | semmle.label | source(...) : String | +| Test.java:53:10:53:24 | (...)... | semmle.label | (...)... | +| Test.java:53:17:53:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:55:10:55:24 | (...)... | semmle.label | (...)... | +| Test.java:55:17:55:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:57:10:57:24 | (...)... | semmle.label | (...)... | +| Test.java:57:17:57:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:59:10:59:24 | (...)... | semmle.label | (...)... | +| Test.java:59:17:59:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:61:10:61:24 | (...)... | semmle.label | (...)... | +| Test.java:61:17:61:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:63:10:63:24 | (...)... | semmle.label | (...)... | +| Test.java:63:17:63:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:65:10:65:24 | (...)... | semmle.label | (...)... | +| Test.java:65:17:65:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:67:10:67:24 | (...)... | semmle.label | (...)... | +| Test.java:67:17:67:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:69:31:69:45 | (...)... | semmle.label | (...)... | +| Test.java:69:38:69:45 | source(...) : String | semmle.label | source(...) : String | +| Test.java:71:10:71:24 | (...)... | semmle.label | (...)... | +| Test.java:71:17:71:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:73:10:73:24 | (...)... | semmle.label | (...)... | +| Test.java:73:17:73:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:75:10:75:24 | (...)... | semmle.label | (...)... | +| Test.java:75:17:75:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:77:10:77:24 | (...)... | semmle.label | (...)... | +| Test.java:77:17:77:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:79:10:79:24 | (...)... | semmle.label | (...)... | +| Test.java:79:17:79:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:81:10:81:24 | (...)... | semmle.label | (...)... | +| Test.java:81:17:81:24 | source(...) : String | semmle.label | source(...) : String | +| Test.java:83:31:83:45 | (...)... | semmle.label | (...)... | +| Test.java:83:38:83:45 | source(...) : String | semmle.label | source(...) : String | +| Test.java:85:29:85:43 | (...)... | semmle.label | (...)... | +| Test.java:85:36:85:43 | source(...) : String | semmle.label | source(...) : String | +| Test.java:87:29:87:53 | (...)... | semmle.label | (...)... | +| Test.java:87:46:87:53 | source(...) : String | semmle.label | source(...) : String | +| Test.java:89:29:89:45 | (...)... | semmle.label | (...)... | +| Test.java:89:38:89:45 | source(...) : String | semmle.label | source(...) : String | +| Test.java:91:24:91:38 | (...)... | semmle.label | (...)... | +| Test.java:91:31:91:38 | source(...) : String | semmle.label | source(...) : String | +| Test.java:93:24:93:48 | (...)... | semmle.label | (...)... | +| Test.java:93:41:93:48 | source(...) : String | semmle.label | source(...) : String | +| Test.java:95:24:95:38 | (...)... | semmle.label | (...)... | +| Test.java:95:31:95:38 | source(...) : String | semmle.label | source(...) : String | +| Test.java:97:24:97:40 | (...)... | semmle.label | (...)... | +| Test.java:97:33:97:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:99:24:99:40 | (...)... | semmle.label | (...)... | +| Test.java:99:33:99:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:101:20:101:34 | (...)... | semmle.label | (...)... | +| Test.java:101:27:101:34 | source(...) : String | semmle.label | source(...) : String | +| Test.java:102:20:102:34 | (...)... | semmle.label | (...)... | +| Test.java:102:27:102:34 | source(...) : String | semmle.label | source(...) : String | +| Test.java:104:33:104:47 | (...)... | semmle.label | (...)... | +| Test.java:104:40:104:47 | source(...) : String | semmle.label | source(...) : String | +| Test.java:105:40:105:54 | (...)... | semmle.label | (...)... | +| Test.java:105:47:105:54 | source(...) : String | semmle.label | source(...) : String | +| Test.java:107:33:107:47 | (...)... | semmle.label | (...)... | +| Test.java:107:40:107:47 | source(...) : String | semmle.label | source(...) : String | +| Test.java:109:31:109:45 | (...)... | semmle.label | (...)... | +| Test.java:109:38:109:45 | source(...) : String | semmle.label | source(...) : String | +| Test.java:111:26:111:40 | (...)... | semmle.label | (...)... | +| Test.java:111:33:111:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:113:26:113:40 | (...)... | semmle.label | (...)... | +| Test.java:113:33:113:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:115:34:115:48 | (...)... | semmle.label | (...)... | +| Test.java:115:41:115:48 | source(...) : String | semmle.label | source(...) : String | +| Test.java:117:35:117:49 | (...)... | semmle.label | (...)... | +| Test.java:117:42:117:49 | source(...) : String | semmle.label | source(...) : String | +| Test.java:119:30:119:44 | (...)... | semmle.label | (...)... | +| Test.java:119:37:119:44 | source(...) : String | semmle.label | source(...) : String | +| Test.java:121:22:121:36 | (...)... | semmle.label | (...)... | +| Test.java:121:29:121:36 | source(...) : String | semmle.label | source(...) : String | +| Test.java:123:30:123:44 | (...)... | semmle.label | (...)... | +| Test.java:123:37:123:44 | source(...) : String | semmle.label | source(...) : String | +| Test.java:125:21:125:35 | (...)... | semmle.label | (...)... | +| Test.java:125:28:125:35 | source(...) : String | semmle.label | source(...) : String | +| Test.java:127:26:127:40 | (...)... | semmle.label | (...)... | +| Test.java:127:33:127:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:129:33:129:47 | (...)... | semmle.label | (...)... | +| Test.java:129:40:129:47 | source(...) : String | semmle.label | source(...) : String | +| Test.java:131:33:131:47 | (...)... | semmle.label | (...)... | +| Test.java:131:40:131:47 | source(...) : String | semmle.label | source(...) : String | +| Test.java:132:33:132:47 | (...)... | semmle.label | (...)... | +| Test.java:132:40:132:47 | source(...) : String | semmle.label | source(...) : String | +| Test.java:134:31:134:45 | (...)... | semmle.label | (...)... | +| Test.java:134:38:134:45 | source(...) : String | semmle.label | source(...) : String | +| Test.java:136:21:136:35 | (...)... | semmle.label | (...)... | +| Test.java:136:28:136:35 | source(...) : String | semmle.label | source(...) : String | +| Test.java:137:21:137:35 | (...)... | semmle.label | (...)... | +| Test.java:137:28:137:35 | source(...) : String | semmle.label | source(...) : String | +| Test.java:138:21:138:35 | (...)... | semmle.label | (...)... | +| Test.java:138:28:138:35 | source(...) : String | semmle.label | source(...) : String | +| Test.java:140:27:140:41 | (...)... | semmle.label | (...)... | +| Test.java:140:34:140:41 | source(...) : String | semmle.label | source(...) : String | +| Test.java:141:27:141:41 | (...)... | semmle.label | (...)... | +| Test.java:141:34:141:41 | source(...) : String | semmle.label | source(...) : String | +| Test.java:143:26:143:40 | (...)... | semmle.label | (...)... | +| Test.java:143:33:143:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:145:35:145:49 | (...)... | semmle.label | (...)... | +| Test.java:145:42:145:49 | source(...) : String | semmle.label | source(...) : String | +| Test.java:147:41:147:57 | (...)... | semmle.label | (...)... | +| Test.java:147:50:147:57 | source(...) : String | semmle.label | source(...) : String | +| Test.java:149:45:149:61 | (...)... | semmle.label | (...)... | +| Test.java:149:54:149:61 | source(...) : String | semmle.label | source(...) : String | +| Test.java:151:43:151:57 | (...)... | semmle.label | (...)... | +| Test.java:151:50:151:57 | source(...) : String | semmle.label | source(...) : String | +| Test.java:153:28:153:42 | (...)... | semmle.label | (...)... | +| Test.java:153:35:153:42 | source(...) : String | semmle.label | source(...) : String | +| Test.java:155:41:155:55 | (...)... | semmle.label | (...)... | +| Test.java:155:48:155:55 | source(...) : String | semmle.label | source(...) : String | +| Test.java:160:30:160:44 | (...)... | semmle.label | (...)... | +| Test.java:160:37:160:44 | source(...) : String | semmle.label | source(...) : String | +| Test.java:162:40:162:81 | (...)... | semmle.label | (...)... | +| Test.java:162:74:162:81 | source(...) : String | semmle.label | source(...) : String | +| Test.java:164:34:164:75 | (...)... | semmle.label | (...)... | +| Test.java:164:68:164:75 | source(...) : String | semmle.label | source(...) : String | +| Test.java:166:34:166:75 | (...)... | semmle.label | (...)... | +| Test.java:166:68:166:75 | source(...) : String | semmle.label | source(...) : String | +| Test.java:168:23:168:37 | (...)... | semmle.label | (...)... | +| Test.java:168:30:168:37 | source(...) : String | semmle.label | source(...) : String | +| Test.java:181:23:181:37 | (...)... | semmle.label | (...)... | +| Test.java:181:30:181:37 | source(...) : String | semmle.label | source(...) : String | +| Test.java:186:23:186:40 | (...)... | semmle.label | (...)... | +| Test.java:186:33:186:40 | source(...) : String | semmle.label | source(...) : String | +| Test.java:188:20:188:34 | (...)... | semmle.label | (...)... | +| Test.java:188:27:188:34 | source(...) : String | semmle.label | source(...) : String | +| Test.java:190:21:190:35 | (...)... | semmle.label | (...)... | +| Test.java:190:28:190:35 | source(...) : String | semmle.label | source(...) : String | +| Test.java:192:22:192:36 | (...)... | semmle.label | (...)... | +| Test.java:192:29:192:36 | source(...) : String | semmle.label | source(...) : String | +| Test.java:197:20:197:34 | (...)... | semmle.label | (...)... | +| Test.java:197:27:197:34 | source(...) : String | semmle.label | source(...) : String | +| Test.java:199:19:199:33 | (...)... | semmle.label | (...)... | +| Test.java:199:26:199:33 | source(...) : String | semmle.label | source(...) : String | +| Test.java:204:20:204:36 | (...)... | semmle.label | (...)... | +| Test.java:204:29:204:36 | source(...) : String | semmle.label | source(...) : String | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java index 00447364bb3..442873b54a4 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.java @@ -10,10 +10,10 @@ import java.nio.file.Paths; public class TaintedPath { public void sendUserFile(Socket sock, String user) throws IOException { BufferedReader filenameReader = - new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); + new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); // $ Source String filename = filenameReader.readLine(); // BAD: read from a file without checking its path - BufferedReader fileReader = new BufferedReader(new FileReader(filename)); // $ hasTaintFlow + BufferedReader fileReader = new BufferedReader(new FileReader(filename)); // $ Alert String fileLine = fileReader.readLine(); while (fileLine != null) { sock.getOutputStream().write(fileLine.getBytes()); diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.ql b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.ql deleted file mode 100644 index 3e7fbdb3131..00000000000 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.TaintedPathQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.qlref b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.qlref new file mode 100644 index 00000000000..574c839511c --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/TaintedPath.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-022/TaintedPath.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java index d8cd210b70c..362c84f4b16 100644 --- a/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java +++ b/java/ql/test/query-tests/security/CWE-022/semmle/tests/Test.java @@ -29,143 +29,143 @@ public class Test { private HttpServletRequest request; public Object source() { - return request.getParameter("source"); + return request.getParameter("source"); // $ Source } void test() throws IOException { // "java.lang;Module;true;getResourceAsStream;(String);;Argument[0];read-file;ai-generated" - getClass().getModule().getResourceAsStream((String) source()); // $ hasTaintFlow + getClass().getModule().getResourceAsStream((String) source()); // $ Alert // "java.lang;Class;false;getResource;(String);;Argument[0];read-file;ai-generated" - getClass().getResource((String) source()); // $ hasTaintFlow + getClass().getResource((String) source()); // $ Alert // "java.lang;ClassLoader;true;getSystemResourceAsStream;(String);;Argument[0];read-file;ai-generated" - ClassLoader.getSystemResourceAsStream((String) source()); // $ hasTaintFlow + ClassLoader.getSystemResourceAsStream((String) source()); // $ Alert // "java.io;File;True;canExecute;();;Argument[this];path-injection;manual" - ((File) source()).canExecute(); // $ hasTaintFlow + ((File) source()).canExecute(); // $ Alert // "java.io;File;True;canRead;();;Argument[this];path-injection;manual" - ((File) source()).canRead(); // $ hasTaintFlow + ((File) source()).canRead(); // $ Alert // "java.io;File;True;canWrite;();;Argument[this];path-injection;manual" - ((File) source()).canWrite(); // $ hasTaintFlow + ((File) source()).canWrite(); // $ Alert // "java.io;File;True;createNewFile;();;Argument[this];path-injection;ai-manual" - ((File) source()).createNewFile(); // $ hasTaintFlow + ((File) source()).createNewFile(); // $ Alert // "java.io;File;true;createTempFile;(String,String,File);;Argument[2];create-file;ai-generated" - File.createTempFile(";", ";", (File) source()); // $ hasTaintFlow + File.createTempFile(";", ";", (File) source()); // $ Alert // "java.io;File;True;delete;();;Argument[this];path-injection;manual" - ((File) source()).delete(); // $ hasTaintFlow + ((File) source()).delete(); // $ Alert // "java.io;File;True;deleteOnExit;();;Argument[this];path-injection;manual" - ((File) source()).deleteOnExit(); // $ hasTaintFlow + ((File) source()).deleteOnExit(); // $ Alert // "java.io;File;True;exists;();;Argument[this];path-injection;manual" - ((File) source()).exists(); // $ hasTaintFlow + ((File) source()).exists(); // $ Alert // "java.io:File;True;isDirectory;();;Argument[this];path-injection;manual" - ((File) source()).isDirectory(); // $ hasTaintFlow + ((File) source()).isDirectory(); // $ Alert // "java.io:File;True;isFile;();;Argument[this];path-injection;manual" - ((File) source()).isFile(); // $ hasTaintFlow + ((File) source()).isFile(); // $ Alert // "java.io:File;True;isHidden;();;Argument[this];path-injection;manual" - ((File) source()).isHidden(); // $ hasTaintFlow + ((File) source()).isHidden(); // $ Alert // "java.io;File;True;mkdir;();;Argument[this];path-injection;manual" - ((File) source()).mkdir(); // $ hasTaintFlow + ((File) source()).mkdir(); // $ Alert // "java.io;File;True;mkdirs;();;Argument[this];path-injection;manual" - ((File) source()).mkdirs(); // $ hasTaintFlow + ((File) source()).mkdirs(); // $ Alert // "java.io;File;True;renameTo;(File);;Argument[0];path-injection;ai-manual" - new File("").renameTo((File) source()); // $ hasTaintFlow + new File("").renameTo((File) source()); // $ Alert // "java.io;File;True;renameTo;(File);;Argument[this];path-injection;ai-manual" - ((File) source()).renameTo(null); // $ hasTaintFlow + ((File) source()).renameTo(null); // $ Alert // "java.io;File;True;setExecutable;;;Argument[this];path-injection;manual" - ((File) source()).setExecutable(true); // $ hasTaintFlow + ((File) source()).setExecutable(true); // $ Alert // "java.io;File;True;setLastModified;;;Argument[this];path-injection;manual" - ((File) source()).setLastModified(0); // $ hasTaintFlow + ((File) source()).setLastModified(0); // $ Alert // "java.io;File;True;setReadable;;;Argument[this];path-injection;manual" - ((File) source()).setReadable(true); // $ hasTaintFlow + ((File) source()).setReadable(true); // $ Alert // "java.io;File;True;setReadOnly;;;Argument[this];path-injection;manual" - ((File) source()).setReadOnly(); // $ hasTaintFlow + ((File) source()).setReadOnly(); // $ Alert // "java.io;File;True;setWritable;;;Argument[this];path-injection;manual" - ((File) source()).setWritable(true); // $ hasTaintFlow + ((File) source()).setWritable(true); // $ Alert // "java.io;File;true;renameTo;(File);;Argument[0];create-file;ai-generated" - new File("").renameTo((File) source()); // $ hasTaintFlow + new File("").renameTo((File) source()); // $ Alert // "java.io;FileInputStream;true;FileInputStream;(File);;Argument[0];read-file;ai-generated" - new FileInputStream((File) source()); // $ hasTaintFlow + new FileInputStream((File) source()); // $ Alert // "java.io;FileInputStream;true;FileInputStream;(FileDescriptor);;Argument[0];read-file;manual" - new FileInputStream((FileDescriptor) source()); // $ hasTaintFlow - // "java.io;FileInputStream;true;FileInputStream;(Strrirng);;Argument[0];read-file;manual" - new FileInputStream((String) source()); // $ hasTaintFlow + new FileInputStream((FileDescriptor) source()); // $ Alert + // "java.io;FileInputStream;true;FileInputStream;(String);;Argument[0];read-file;manual" + new FileInputStream((String) source()); // $ Alert // "java.io;FileReader;true;FileReader;(File);;Argument[0];read-file;ai-generated" - new FileReader((File) source()); // $ hasTaintFlow + new FileReader((File) source()); // $ Alert // "java.io;FileReader;true;FileReader;(FileDescriptor);;Argument[0];read-file;manual" - new FileReader((FileDescriptor) source()); // $ hasTaintFlow + new FileReader((FileDescriptor) source()); // $ Alert // "java.io;FileReader;true;FileReader;(File,Charset);;Argument[0];read-file;manual" - new FileReader((File) source(), null); // $ hasTaintFlow + new FileReader((File) source(), null); // $ Alert // "java.io;FileReader;true;FileReader;(String);;Argument[0];read-file;ai-generated" - new FileReader((String) source()); // $ hasTaintFlow + new FileReader((String) source()); // $ Alert // "java.io;FileReader;true;FileReader;(String,Charset);;Argument[0];read-file;manual" - new FileReader((String) source(), null); // $ hasTaintFlow + new FileReader((String) source(), null); // $ Alert // "java.nio.file;Files;false;copy;;;Argument[0];read-file;manual" - Files.copy((Path) source(), (Path) null); // $ hasTaintFlow - Files.copy((Path) source(), (OutputStream) null); // $ hasTaintFlow + Files.copy((Path) source(), (Path) null); // $ Alert + Files.copy((Path) source(), (OutputStream) null); // $ Alert // "java.nio.file;Files;false;copy;;;Argument[1];create-file;manual" - Files.copy((Path) null, (Path) source()); // $ hasTaintFlow - Files.copy((InputStream) null, (Path) source()); // $ hasTaintFlow + Files.copy((Path) null, (Path) source()); // $ Alert + Files.copy((InputStream) null, (Path) source()); // $ Alert // "java.nio.file;Files;false;createDirectories;;;Argument[0];create-file;manual" - Files.createDirectories((Path) source()); // $ hasTaintFlow + Files.createDirectories((Path) source()); // $ Alert // "java.nio.file;Files;false;createDirectory;;;Argument[0];create-file;manual" - Files.createDirectory((Path) source()); // $ hasTaintFlow + Files.createDirectory((Path) source()); // $ Alert // "java.nio.file;Files;false;createFile;;;Argument[0];create-file;manual" - Files.createFile((Path) source()); // $ hasTaintFlow + Files.createFile((Path) source()); // $ Alert // "java.nio.file;Files;false;createLink;;;Argument[0];create-file;manual" - Files.createLink((Path) source(), null); // $ hasTaintFlow + Files.createLink((Path) source(), null); // $ Alert // "java.nio.file;Files;false;createSymbolicLink;;;Argument[0];create-file;manual" - Files.createSymbolicLink((Path) source(), null); // $ hasTaintFlow + Files.createSymbolicLink((Path) source(), null); // $ Alert // "java.nio.file;Files;false;createTempDirectory;(Path,String,FileAttribute[]);;Argument[0];create-file;manual" - Files.createTempDirectory((Path) source(), null); // $ hasTaintFlow + Files.createTempDirectory((Path) source(), null); // $ Alert // "java.nio.file;Files;false;createTempFile;(Path,String,String,FileAttribute[]);;Argument[0];create-file;manual" - Files.createTempFile((Path) source(), null, null); // $ hasTaintFlow + Files.createTempFile((Path) source(), null, null); // $ Alert // "java.nio.file;Files;false;delete;(Path);;Argument[0];delete-file;ai-generated" - Files.delete((Path) source()); // $ hasTaintFlow + Files.delete((Path) source()); // $ Alert // "java.nio.file;Files;false;deleteIfExists;(Path);;Argument[0];delete-file;ai-generated" - Files.deleteIfExists((Path) source()); // $ hasTaintFlow + Files.deleteIfExists((Path) source()); // $ Alert // "java.nio.file;Files;false;lines;(Path,Charset);;Argument[0];read-file;ai-generated" - Files.lines((Path) source(), null); // $ hasTaintFlow + Files.lines((Path) source(), null); // $ Alert // "java.nio.file;Files;false;move;;;Argument[1];create-file;manual" - Files.move(null, (Path) source()); // $ hasTaintFlow + Files.move(null, (Path) source()); // $ Alert // "java.nio.file;Files;false;newBufferedReader;(Path,Charset);;Argument[0];read-file;ai-generated" - Files.newBufferedReader((Path) source(), null); // $ hasTaintFlow + Files.newBufferedReader((Path) source(), null); // $ Alert // "java.nio.file;Files;false;newBufferedWriter;;;Argument[0];create-file;manual" - Files.newBufferedWriter((Path) source()); // $ hasTaintFlow - Files.newBufferedWriter((Path) source(), (Charset) null); // $ hasTaintFlow + Files.newBufferedWriter((Path) source()); // $ Alert + Files.newBufferedWriter((Path) source(), (Charset) null); // $ Alert // "java.nio.file;Files;false;newOutputStream;;;Argument[0];create-file;manual" - Files.newOutputStream((Path) source()); // $ hasTaintFlow + Files.newOutputStream((Path) source()); // $ Alert // "java.nio.file;Files;false;write;;;Argument[0];create-file;manual" - Files.write((Path) source(), (byte[]) null); // $ hasTaintFlow - Files.write((Path) source(), (Iterable) null); // $ hasTaintFlow - Files.write((Path) source(), (Iterable) null, (Charset) null); // $ hasTaintFlow + Files.write((Path) source(), (byte[]) null); // $ Alert + Files.write((Path) source(), (Iterable) null); // $ Alert + Files.write((Path) source(), (Iterable) null, (Charset) null); // $ Alert // "java.nio.file;Files;false;writeString;;;Argument[0];create-file;manual" - Files.writeString((Path) source(), (CharSequence) null); // $ hasTaintFlow - Files.writeString((Path) source(), (CharSequence) null, (Charset) null); // $ hasTaintFlow + Files.writeString((Path) source(), (CharSequence) null); // $ Alert + Files.writeString((Path) source(), (CharSequence) null, (Charset) null); // $ Alert // "javax.xml.transform.stream;StreamResult";true;"StreamResult;(File);;Argument[0];create-file;ai-generated" - new StreamResult((File) source()); // $ hasTaintFlow + new StreamResult((File) source()); // $ Alert // "org.apache.commons.io;FileUtils;true;openInputStream;(File);;Argument[0];read-file;ai-generated" - FileUtils.openInputStream((File) source()); // $ hasTaintFlow + FileUtils.openInputStream((File) source()); // $ Alert // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[1];create-file;ai-generated" - new ZipURLInstaller((URL) null, (String) source(), ""); // $ hasTaintFlow + new ZipURLInstaller((URL) null, (String) source(), ""); // $ Alert // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[2];create-file;ai-generated" - new ZipURLInstaller((URL) null, "", (String) source()); // $ hasTaintFlow + new ZipURLInstaller((URL) null, "", (String) source()); // $ Alert // "org.springframework.util;FileCopyUtils;false;copy;(byte[],File);;Argument[1];create-file;manual" - FileCopyUtils.copy((byte[]) null, (File) source()); // $ hasTaintFlow + FileCopyUtils.copy((byte[]) null, (File) source()); // $ Alert // "org.springframework.util;FileCopyUtils;false;copy;(File,File);;Argument[0];create-file;manual" - FileCopyUtils.copy((File) source(), null); // $ hasTaintFlow + FileCopyUtils.copy((File) source(), null); // $ Alert // "org.springframework.util;FileCopyUtils;false;copy;(File,File);;Argument[1];create-file;manual" - FileCopyUtils.copy((File) null, (File) source()); // $ hasTaintFlow + FileCopyUtils.copy((File) null, (File) source()); // $ Alert } void test(AntClassLoader acl) { // "org.apache.tools.ant;AntClassLoader;true;addPathComponent;(File);;Argument[0];read-file;ai-generated" - acl.addPathComponent((File) source()); // $ hasTaintFlow + acl.addPathComponent((File) source()); // $ Alert // "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(ClassLoader,Project,Path,boolean);;Argument[2];read-file;ai-generated" - new AntClassLoader(null, null, (org.apache.tools.ant.types.Path) source(), false); // $ hasTaintFlow + new AntClassLoader(null, null, (org.apache.tools.ant.types.Path) source(), false); // $ Alert // "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(Project,Path,boolean);;Argument[1];read-file;ai-generated" - new AntClassLoader(null, (org.apache.tools.ant.types.Path) source(), false); // $ hasTaintFlow + new AntClassLoader(null, (org.apache.tools.ant.types.Path) source(), false); // $ Alert // "org.apache.tools.ant;AntClassLoader;true;AntClassLoader;(Project,Path);;Argument[1];read-file;ai-generated" - new AntClassLoader(null, (org.apache.tools.ant.types.Path) source()); // $ hasTaintFlow + new AntClassLoader(null, (org.apache.tools.ant.types.Path) source()); // $ Alert // "org.kohsuke.stapler.framework.io;LargeText;true;LargeText;(File,Charset,boolean,boolean);;Argument[0];read-file;ai-generated" - new LargeText((File) source(), null, false, false); // $ hasTaintFlow + new LargeText((File) source(), null, false, false); // $ Alert } void doGet6(String root, HttpServletRequest request) throws IOException { @@ -178,29 +178,29 @@ public class Test { void test(DirectoryScanner ds) { // "org.apache.tools.ant;DirectoryScanner;true;setBasedir;(File);;Argument[0];read-file;ai-generated" - ds.setBasedir((File) source()); // $ hasTaintFlow + ds.setBasedir((File) source()); // $ Alert } void test(Copy cp) { // "org.apache.tools.ant.taskdefs;Copy;true;addFileset;(FileSet);;Argument[0];read-file;ai-generated" - cp.addFileset((FileSet) source()); // $ hasTaintFlow + cp.addFileset((FileSet) source()); // $ Alert // "org.apache.tools.ant.taskdefs;Copy;true;setFile;(File);;Argument[0];read-file;ai-generated" - cp.setFile((File) source()); // $ hasTaintFlow + cp.setFile((File) source()); // $ Alert // "org.apache.tools.ant.taskdefs;Copy;true;setTodir;(File);;Argument[0];create-file;ai-generated" - cp.setTodir((File) source()); // $ hasTaintFlow + cp.setTodir((File) source()); // $ Alert // "org.apache.tools.ant.taskdefs;Copy;true;setTofile;(File);;Argument[0];create-file;ai-generated" - cp.setTofile((File) source()); // $ hasTaintFlow + cp.setTofile((File) source()); // $ Alert } void test(Expand ex) { // "org.apache.tools.ant.taskdefs;Expand;true;setDest;(File);;Argument[0];create-file;ai-generated" - ex.setDest((File) source()); // $ hasTaintFlow + ex.setDest((File) source()); // $ Alert // "org.apache.tools.ant.taskdefs;Expand;true;setSrc;(File);;Argument[0];read-file;ai-generated" - ex.setSrc((File) source()); // $ hasTaintFlow + ex.setSrc((File) source()); // $ Alert } void test(ChainedOptionsBuilder cob) { // "org.openjdk.jmh.runner.options;ChainedOptionsBuilder;true;result;(String);;Argument[0];create-file;ai-generated" - cob.result((String) source()); // $ hasTaintFlow + cob.result((String) source()); // $ Alert } } From e1ddce84564d3239454bad45c4361b6bdee10b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 10:27:50 +0200 Subject: [PATCH 264/340] Java: convert PartialPathTraversalFromRemote test to .qlref --- .../tests/PartialPathTraversal.expected | 32 +-- ...artialPathTraversalFromRemoteTest.expected | 135 +++++++++++++ .../PartialPathTraversalFromRemoteTest.ql | 24 --- .../PartialPathTraversalFromRemoteTest.qlref | 4 + .../tests/PartialPathTraversalTest.java | 190 ++++++++++-------- 5 files changed, 259 insertions(+), 126 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected index b876fd2367d..5379de2403b 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversal.expected @@ -1,16 +1,16 @@ -| PartialPathTraversalTest.java:10:14:10:73 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:17:9:17:72 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:29:14:29:58 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:35:14:35:63 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:42:14:42:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:49:14:49:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:53:14:53:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:61:14:61:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:64:14:64:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:75:14:75:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:94:14:94:63 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:102:14:102:63 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:105:14:105:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:173:14:173:63 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:191:18:191:87 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | -| PartialPathTraversalTest.java:209:14:209:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:13:14:13:75 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:20:9:20:74 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:32:14:32:60 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:38:14:38:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:45:14:45:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:52:14:52:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:56:14:56:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:64:14:64:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:67:14:67:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:78:14:78:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:97:14:97:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:105:14:105:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:108:14:108:66 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:176:14:176:65 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:194:18:194:87 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | +| PartialPathTraversalTest.java:212:14:212:64 | startsWith(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal. | diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected index e69de29bb2d..f2af01542ee 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.expected @@ -0,0 +1,135 @@ +#select +| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | Partial Path Traversal Vulnerability due to insufficient guard against path traversal from $@. | PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | user-supplied data | +edges +| PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | PartialPathTraversalTest.java:44:32:44:55 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:44:32:44:55 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | provenance | | +| PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | PartialPathTraversalTest.java:51:32:51:55 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:51:32:51:55 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | provenance | | +| PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | PartialPathTraversalTest.java:55:33:55:56 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:55:33:55:56 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | provenance | | +| PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | PartialPathTraversalTest.java:62:32:62:55 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:62:32:62:55 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | provenance | | +| PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | PartialPathTraversalTest.java:63:33:63:56 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:63:33:63:56 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | provenance | | +| PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | PartialPathTraversalTest.java:188:23:188:23 | p : String | provenance | | +| PartialPathTraversalTest.java:188:13:188:14 | sb [post update] : StringBuilder | PartialPathTraversalTest.java:191:27:191:28 | sb : StringBuilder | provenance | | +| PartialPathTraversalTest.java:188:23:188:23 | p : String | PartialPathTraversalTest.java:188:13:188:14 | sb [post update] : StringBuilder | provenance | MaD:8 | +| PartialPathTraversalTest.java:191:27:191:28 | sb : StringBuilder | PartialPathTraversalTest.java:191:27:191:39 | toString(...) : String | provenance | MaD:9 | +| PartialPathTraversalTest.java:191:27:191:39 | toString(...) : String | PartialPathTraversalTest.java:192:37:192:44 | filePath : String | provenance | | +| PartialPathTraversalTest.java:192:28:192:45 | new File(...) : File | PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | provenance | | +| PartialPathTraversalTest.java:192:37:192:44 | filePath : String | PartialPathTraversalTest.java:192:28:192:45 | new File(...) : File | provenance | MaD:4 | +| PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | provenance | MaD:6 | +| PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | provenance | MaD:6 | +| PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | provenance | | +| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | provenance | | +| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | provenance | MaD:2 | +| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:1 MaD:7 | +| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | provenance | MaD:3 | +| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | PartialPathTraversalTest.java:254:29:254:36 | filename : String | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | provenance | | +| PartialPathTraversalTest.java:254:29:254:36 | filename : String | PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | provenance | MaD:4 | +| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | provenance | MaD:5 | +| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | provenance | MaD:10 | +| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | provenance | | +models +| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 2 | Summary: java.io; BufferedReader; false; BufferedReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 3 | Summary: java.io; BufferedReader; true; readLine; ; ; Argument[this]; ReturnValue; taint; manual | +| 4 | Summary: java.io; File; false; File; ; ; Argument[0]; Argument[this]; taint; manual | +| 5 | Summary: java.io; File; true; getAbsolutePath; ; ; Argument[this]; ReturnValue; taint; manual | +| 6 | Summary: java.io; File; true; getCanonicalPath; ; ; Argument[this]; ReturnValue; taint; manual | +| 7 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 8 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 9 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 10 | Summary: java.lang; String; false; split; ; ; Argument[this]; ReturnValue; taint; manual | +nodes +| PartialPathTraversalTest.java:13:14:13:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:13:14:13:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:20:10:20:14 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:20:10:20:33 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:32:14:32:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:32:14:32:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:38:14:38:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:38:14:38:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:44:32:44:36 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:44:32:44:55 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:45:14:45:26 | canonicalPath | semmle.label | canonicalPath | +| PartialPathTraversalTest.java:51:32:51:36 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:51:32:51:55 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:52:14:52:26 | canonicalPath | semmle.label | canonicalPath | +| PartialPathTraversalTest.java:55:33:55:37 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:55:33:55:56 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:56:14:56:27 | canonicalPath2 | semmle.label | canonicalPath2 | +| PartialPathTraversalTest.java:62:32:62:36 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:62:32:62:55 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:63:33:63:37 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:63:33:63:56 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:64:14:64:26 | canonicalPath | semmle.label | canonicalPath | +| PartialPathTraversalTest.java:67:14:67:27 | canonicalPath2 | semmle.label | canonicalPath2 | +| PartialPathTraversalTest.java:97:14:97:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:97:14:97:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:105:14:105:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:105:14:105:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:108:14:108:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:108:14:108:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:176:14:176:18 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:176:14:176:37 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:186:25:186:30 | path(...) : String[] | semmle.label | path(...) : String[] | +| PartialPathTraversalTest.java:188:13:188:14 | sb [post update] : StringBuilder | semmle.label | sb [post update] : StringBuilder | +| PartialPathTraversalTest.java:188:23:188:23 | p : String | semmle.label | p : String | +| PartialPathTraversalTest.java:191:27:191:28 | sb : StringBuilder | semmle.label | sb : StringBuilder | +| PartialPathTraversalTest.java:191:27:191:39 | toString(...) : String | semmle.label | toString(...) : String | +| PartialPathTraversalTest.java:192:28:192:45 | new File(...) : File | semmle.label | new File(...) : File | +| PartialPathTraversalTest.java:192:37:192:44 | filePath : String | semmle.label | filePath : String | +| PartialPathTraversalTest.java:194:18:194:28 | encodedFile : File | semmle.label | encodedFile : File | +| PartialPathTraversalTest.java:194:18:194:47 | getCanonicalPath(...) | semmle.label | getCanonicalPath(...) | +| PartialPathTraversalTest.java:211:46:211:50 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:211:46:211:69 | getCanonicalPath(...) : String | semmle.label | getCanonicalPath(...) : String | +| PartialPathTraversalTest.java:212:14:212:26 | canonicalPath | semmle.label | canonicalPath | +| PartialPathTraversalTest.java:252:45:252:117 | new BufferedReader(...) : BufferedReader | semmle.label | new BufferedReader(...) : BufferedReader | +| PartialPathTraversalTest.java:252:64:252:116 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| PartialPathTraversalTest.java:252:86:252:106 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| PartialPathTraversalTest.java:253:31:253:44 | filenameReader : BufferedReader | semmle.label | filenameReader : BufferedReader | +| PartialPathTraversalTest.java:253:31:253:55 | readLine(...) : String | semmle.label | readLine(...) : String | +| PartialPathTraversalTest.java:254:20:254:37 | new File(...) : File | semmle.label | new File(...) : File | +| PartialPathTraversalTest.java:254:29:254:36 | filename : String | semmle.label | filename : String | +| PartialPathTraversalTest.java:261:16:261:20 | dir(...) : File | semmle.label | dir(...) : File | +| PartialPathTraversalTest.java:261:16:261:38 | getAbsolutePath(...) : String | semmle.label | getAbsolutePath(...) : String | +| PartialPathTraversalTest.java:261:16:261:60 | split(...) : String[] | semmle.label | split(...) : String[] | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.ql b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.ql deleted file mode 100644 index 45dab6606fa..00000000000 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.ql +++ /dev/null @@ -1,24 +0,0 @@ -import java -import utils.test.InlineExpectationsTest -import semmle.code.java.security.PartialPathTraversalQuery - -class TestRemoteSource extends RemoteFlowSource { - TestRemoteSource() { this.asParameter().hasName(["dir", "path"]) } - - override string getSourceType() { result = "TestSource" } -} - -module Test implements TestSig { - string getARelevantTag() { result = "hasTaintFlow" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasTaintFlow" and - exists(DataFlow::Node sink | PartialPathTraversalFromRemoteFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.qlref b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.qlref new file mode 100644 index 00000000000..0c2ceb8cd73 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalFromRemoteTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-023/PartialPathTraversalFromRemote.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java index af0fd776de1..b1986c1b669 100644 --- a/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java +++ b/java/ql/test/query-tests/security/CWE-023/semmle/tests/PartialPathTraversalTest.java @@ -1,68 +1,71 @@ import java.io.IOException; import java.io.File; import java.io.InputStream; +import java.io.BufferedReader; +import java.io.InputStreamReader; import static java.io.File.separatorChar; import java.nio.file.Files; +import java.net.Socket; public class PartialPathTraversalTest { - public void esapiExample(File dir, File parent) throws IOException { - if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + public void esapiExample(File parent) throws IOException { + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @SuppressWarnings("ResultOfMethodCallIgnored") - void foo1(File dir, File parent) throws IOException { - (dir.getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $hasTaintFlow + void foo1(File parent) throws IOException { + (dir().getCanonicalPath()).startsWith((parent.getCanonicalPath())); // $ Alert } - void foo2(File dir, File parent) throws IOException { - dir.getCanonicalPath(); + void foo2(File parent) throws IOException { + dir().getCanonicalPath(); if ("potato".startsWith(parent.getCanonicalPath())) { System.out.println("Hello!"); } } - void foo3(File dir, File parent) throws IOException { + void foo3(File parent) throws IOException { String parentPath = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentPath)) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentPath)) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo4(File dir) throws IOException { - if (!dir.getCanonicalPath().startsWith("/usr" + "/dir")) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo4() throws IOException { + if (!dir().getCanonicalPath().startsWith("/usr" + "/dir")) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo5(File dir, File parent) throws IOException { - String canonicalPath = dir.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo5(File parent) throws IOException { + String canonicalPath = dir().getCanonicalPath(); + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo6(File dir, File parent) throws IOException { - String canonicalPath = dir.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo6(File parent) throws IOException { + String canonicalPath = dir().getCanonicalPath(); + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - String canonicalPath2 = dir.getCanonicalPath(); - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + String canonicalPath2 = dir().getCanonicalPath(); + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo7(File dir, File parent) throws IOException { - String canonicalPath = dir.getCanonicalPath(); - String canonicalPath2 = dir.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + String canonicalPath = dir().getCanonicalPath(); + String canonicalPath2 = dir().getCanonicalPath(); + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!canonicalPath2.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -72,70 +75,70 @@ public class PartialPathTraversalTest { void foo8(File parent) throws IOException { String canonicalPath = getChild().getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { throw new IOException("Invalid directory: " + getChild().getCanonicalPath()); } } - void foo9(File dir, File parent) throws IOException { - if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath() + File.separator)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo9(File parent) throws IOException { + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath() + File.separator)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo10(File dir, File parent) throws IOException { - if (!dir.getCanonicalPath().startsWith(parent.getCanonicalPath() + File.separatorChar)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo10(File parent) throws IOException { + if (!dir().getCanonicalPath().startsWith(parent.getCanonicalPath() + File.separatorChar)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo11(File dir, File parent) throws IOException { + void foo11(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo12(File dir, File parent) throws IOException { + void foo12(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); String parentCanonical2 = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!dir.getCanonicalPath().startsWith(parentCanonical2)) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo13(File dir, File parent) throws IOException { + void foo13(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + File.separatorChar; - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo14(File dir, File parent) throws IOException { + void foo14(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + separatorChar; - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } void foo15(File dir, File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + File.separatorChar; String parentCanonical2 = parent.getCanonicalPath() + File.separatorChar; - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } - if (!dir.getCanonicalPath().startsWith(parentCanonical2)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical2)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo16(File dir, File parent) throws IOException { + void foo16(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + File.separator; - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -145,7 +148,7 @@ public class PartialPathTraversalTest { "UnusedAssignment", "ResultOfMethodCallIgnored" }) - void foo17(File dir, File parent, boolean branch) throws IOException { + void foo17(File parent, boolean branch) throws IOException { String parentCanonical = null; "test ".startsWith("somethingElse"); if (branch) { @@ -153,8 +156,8 @@ public class PartialPathTraversalTest { } else { parentCanonical = parent.getCanonicalPath() + File.separatorChar; } - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } @@ -163,24 +166,24 @@ public class PartialPathTraversalTest { if (branch) { parentCanonical = parent.getCanonicalPath() + File.separatorChar; } - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo19(File dir, File parent) throws IOException { + void foo19(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath() + "/potato"; - if (!dir.getCanonicalPath().startsWith(parentCanonical)) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical)) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } private File cacheDir; - InputStream foo20(String... path) { + InputStream foo20() { StringBuilder sb = new StringBuilder(); sb.append(cacheDir.getAbsolutePath()); - for (String p : path) { + for (String p : path()) { sb.append(File.separatorChar); sb.append(p); } @@ -188,7 +191,7 @@ public class PartialPathTraversalTest { String filePath = sb.toString(); File encodedFile = new File(filePath); try { - if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $hasTaintFlow + if (!encodedFile.getCanonicalPath().startsWith(cacheDir.getCanonicalPath())) { // $ Alert return null; } return Files.newInputStream(encodedFile.toPath()); @@ -197,37 +200,37 @@ public class PartialPathTraversalTest { } } - void foo21(File dir, File parent) throws IOException { + void foo21(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentCanonical + File.separator)) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical + File.separator)) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo22(File dir, File dir2, File parent, boolean conditional) throws IOException { - String canonicalPath = conditional ? dir.getCanonicalPath() : dir2.getCanonicalPath(); - if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $hasTaintFlow - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + void foo22(File dir2, File parent, boolean conditional) throws IOException { + String canonicalPath = conditional ? dir().getCanonicalPath() : dir2.getCanonicalPath(); + if (!canonicalPath.startsWith(parent.getCanonicalPath())) { // $ Alert + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo23(File dir, File parent) throws IOException { + void foo23(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentCanonical + "/")) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical + "/")) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - void foo24(File dir, File parent) throws IOException { + void foo24(File parent) throws IOException { String parentCanonical = parent.getCanonicalPath(); - if (!dir.getCanonicalPath().startsWith(parentCanonical + '/')) { - throw new IOException("Invalid directory: " + dir.getCanonicalPath()); + if (!dir().getCanonicalPath().startsWith(parentCanonical + '/')) { + throw new IOException("Invalid directory: " + dir().getCanonicalPath()); } } - public void doesNotFlagOptimalSafeVersion(File dir, File parent) throws IOException { - if (!dir.toPath().normalize().startsWith(parent.toPath())) { // Safe - throw new IOException("Path traversal attempt: " + dir.getCanonicalPath()); + public void doesNotFlagOptimalSafeVersion(File parent) throws IOException { + if (!dir().toPath().normalize().startsWith(parent.toPath())) { // Safe + throw new IOException("Path traversal attempt: " + dir().getCanonicalPath()); } } @@ -242,4 +245,19 @@ public class PartialPathTraversalTest { } } -} \ No newline at end of file + Socket sock; + + File dir() { + try { + BufferedReader filenameReader = new BufferedReader(new InputStreamReader(sock.getInputStream(), "UTF-8")); // $ Source + String filename = filenameReader.readLine(); + return new File(filename); + } catch (IOException e) { + throw new RuntimeException("Failed to read from socket", e); + } + } + + String[] path() { + return dir().getAbsolutePath().split(File.separator); + } +} From 3f9e0fee811ce4950f2ba3ba77c7c2e5c4cf7f4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 10:35:32 +0200 Subject: [PATCH 265/340] Java: convert JndiInjection test to .qlref --- .../CWE-074/JndiInjectionTest.expected | 308 ++++++++++++++++++ .../security/CWE-074/JndiInjectionTest.java | 178 +++++----- .../security/CWE-074/JndiInjectionTest.ql | 18 - .../security/CWE-074/JndiInjectionTest.qlref | 4 + 4 files changed, 401 insertions(+), 107 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected index e69de29bb2d..6855ccb2104 100644 --- a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected @@ -0,0 +1,308 @@ +#select +| JndiInjectionTest.java:36:16:36:22 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:36:16:36:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:37:20:37:26 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:37:20:37:26 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:38:29:38:35 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:38:29:38:35 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:39:16:39:22 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:39:16:39:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:40:14:40:20 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:40:14:40:20 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:41:22:41:28 | nameStr | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:41:22:41:28 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:43:16:43:19 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:43:16:43:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:44:20:44:23 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:44:20:44:23 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:45:29:45:32 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:45:29:45:32 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:46:16:46:19 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:46:16:46:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:47:14:47:17 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:47:14:47:17 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:48:22:48:25 | name | JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:48:22:48:25 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:32:38:32:65 | nameStr | this user input | +| JndiInjectionTest.java:56:16:56:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:56:16:56:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:57:20:57:26 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:57:20:57:26 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:58:16:58:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:58:16:58:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:59:14:59:20 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:59:14:59:20 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:60:22:60:28 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:60:22:60:28 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:62:16:62:19 | name | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:62:16:62:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:63:20:63:23 | name | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:63:20:63:23 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:64:16:64:19 | name | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:64:16:64:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:65:14:65:17 | name | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:65:14:65:17 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:66:22:66:25 | name | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:66:22:66:25 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:70:16:70:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:70:16:70:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:71:16:71:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:71:16:71:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:74:16:74:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:74:16:74:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:75:16:75:22 | nameStr | JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:75:16:75:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:52:34:52:61 | nameStr | this user input | +| JndiInjectionTest.java:87:16:87:22 | nameStr | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:87:16:87:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:88:20:88:26 | nameStr | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:88:20:88:26 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:89:16:89:22 | nameStr | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:89:16:89:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:90:14:90:20 | nameStr | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:90:14:90:20 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:91:22:91:28 | nameStr | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:91:22:91:28 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:93:16:93:19 | name | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:93:16:93:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:94:20:94:23 | name | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:94:20:94:23 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:95:16:95:19 | name | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:95:16:95:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:96:14:96:17 | name | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:96:14:96:17 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:97:22:97:25 | name | JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:97:22:97:25 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:83:42:83:69 | nameStr | this user input | +| JndiInjectionTest.java:104:16:104:22 | nameStr | JndiInjectionTest.java:101:42:101:69 | nameStr : String | JndiInjectionTest.java:104:16:104:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:101:42:101:69 | nameStr | this user input | +| JndiInjectionTest.java:105:16:105:22 | nameStr | JndiInjectionTest.java:101:42:101:69 | nameStr : String | JndiInjectionTest.java:105:16:105:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:101:42:101:69 | nameStr | this user input | +| JndiInjectionTest.java:113:16:113:19 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:113:16:113:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:115:16:115:19 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:115:16:115:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:117:16:117:19 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:117:16:117:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:118:16:118:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:118:16:118:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:120:16:120:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:120:16:120:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:122:16:122:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:122:16:122:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:123:23:123:26 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:123:23:123:26 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:124:23:124:29 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:124:23:124:29 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:125:18:125:21 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:125:18:125:21 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:126:16:126:19 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:126:16:126:19 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:127:14:127:17 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:127:14:127:17 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:128:22:128:25 | name | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:128:22:128:25 | name | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:129:16:129:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:129:16:129:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:131:16:131:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:131:16:131:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:132:16:132:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:132:16:132:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:133:16:133:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:133:16:133:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:134:16:134:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:134:16:134:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:138:16:138:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:138:16:138:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:139:16:139:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:139:16:139:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:141:16:141:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:141:16:141:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:142:16:142:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:142:16:142:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:144:16:144:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:144:16:144:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:145:16:145:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:145:16:145:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:149:16:149:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:149:16:149:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:150:16:150:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:150:16:150:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:152:16:152:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:152:16:152:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:153:16:153:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:153:16:153:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:155:16:155:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:155:16:155:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:156:16:156:22 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:156:16:156:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:170:25:170:31 | nameStr | JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:170:25:170:31 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:109:42:109:69 | nameStr | this user input | +| JndiInjectionTest.java:177:16:177:22 | nameStr | JndiInjectionTest.java:174:41:174:68 | nameStr : String | JndiInjectionTest.java:177:16:177:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:174:41:174:68 | nameStr | this user input | +| JndiInjectionTest.java:178:16:178:22 | nameStr | JndiInjectionTest.java:174:41:174:68 | nameStr : String | JndiInjectionTest.java:178:16:178:22 | nameStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:174:41:174:68 | nameStr | this user input | +| JndiInjectionTest.java:183:33:183:57 | new JMXServiceURL(...) | JndiInjectionTest.java:182:37:182:63 | urlStr : String | JndiInjectionTest.java:183:33:183:57 | new JMXServiceURL(...) | JNDI lookup might include name from $@. | JndiInjectionTest.java:182:37:182:63 | urlStr | this user input | +| JndiInjectionTest.java:187:5:187:13 | connector | JndiInjectionTest.java:182:37:182:63 | urlStr : String | JndiInjectionTest.java:187:5:187:13 | connector | JNDI lookup might include name from $@. | JndiInjectionTest.java:182:37:182:63 | urlStr | this user input | +| JndiInjectionTest.java:194:35:194:40 | urlStr | JndiInjectionTest.java:191:27:191:53 | urlStr : String | JndiInjectionTest.java:194:35:194:40 | urlStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:191:27:191:53 | urlStr | this user input | +| JndiInjectionTest.java:202:41:202:46 | urlStr | JndiInjectionTest.java:199:27:199:53 | urlStr : String | JndiInjectionTest.java:202:41:202:46 | urlStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:199:27:199:53 | urlStr | this user input | +| JndiInjectionTest.java:211:37:211:42 | urlStr | JndiInjectionTest.java:207:52:207:78 | urlStr : String | JndiInjectionTest.java:211:37:211:42 | urlStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:207:52:207:78 | urlStr | this user input | +| JndiInjectionTest.java:221:51:221:56 | urlStr | JndiInjectionTest.java:216:52:216:78 | urlStr : String | JndiInjectionTest.java:221:51:221:56 | urlStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:216:52:216:78 | urlStr | this user input | +| JndiInjectionTest.java:231:51:231:56 | urlStr | JndiInjectionTest.java:226:52:226:78 | urlStr : String | JndiInjectionTest.java:231:51:231:56 | urlStr | JNDI lookup might include name from $@. | JndiInjectionTest.java:226:52:226:78 | urlStr | this user input | +edges +| JndiInjectionTest.java:32:38:32:65 | nameStr : String | JndiInjectionTest.java:33:35:33:41 | nameStr : String | provenance | | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:43:16:43:19 | name | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:44:20:44:23 | name | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:45:29:45:32 | name | provenance | Sink:MaD:9 | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:46:16:46:19 | name | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:47:14:47:17 | name | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:48:22:48:25 | name | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | provenance | Config | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:36:16:36:22 | nameStr | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:37:20:37:26 | nameStr | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:38:29:38:35 | nameStr | provenance | Sink:MaD:9 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:39:16:39:22 | nameStr | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:40:14:40:20 | nameStr | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | JndiInjectionTest.java:41:22:41:28 | nameStr | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:52:34:52:61 | nameStr : String | JndiInjectionTest.java:53:34:53:40 | nameStr : String | provenance | | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | JndiInjectionTest.java:62:16:62:19 | name | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | JndiInjectionTest.java:63:20:63:23 | name | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | JndiInjectionTest.java:64:16:64:19 | name | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | JndiInjectionTest.java:65:14:65:17 | name | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | JndiInjectionTest.java:66:22:66:25 | name | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | provenance | Config | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:56:16:56:22 | nameStr | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:57:20:57:26 | nameStr | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:58:16:58:22 | nameStr | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:59:14:59:20 | nameStr | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:60:22:60:28 | nameStr | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:70:16:70:22 | nameStr | provenance | Sink:MaD:3 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:71:16:71:22 | nameStr | provenance | Sink:MaD:3 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:74:16:74:22 | nameStr | provenance | Sink:MaD:3 | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | JndiInjectionTest.java:75:16:75:22 | nameStr | provenance | Sink:MaD:3 | +| JndiInjectionTest.java:83:42:83:69 | nameStr : String | JndiInjectionTest.java:84:35:84:41 | nameStr : String | provenance | | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:93:16:93:19 | name | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:94:20:94:23 | name | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:95:16:95:19 | name | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:96:14:96:17 | name | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | JndiInjectionTest.java:97:22:97:25 | name | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | provenance | Config | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:87:16:87:22 | nameStr | provenance | Sink:MaD:6 | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:88:20:88:26 | nameStr | provenance | Sink:MaD:7 | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:89:16:89:22 | nameStr | provenance | Sink:MaD:8 | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:90:14:90:20 | nameStr | provenance | Sink:MaD:4 | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | JndiInjectionTest.java:91:22:91:28 | nameStr | provenance | Sink:MaD:5 | +| JndiInjectionTest.java:101:42:101:69 | nameStr : String | JndiInjectionTest.java:104:16:104:22 | nameStr | provenance | Sink:MaD:11 | +| JndiInjectionTest.java:101:42:101:69 | nameStr : String | JndiInjectionTest.java:105:16:105:22 | nameStr | provenance | Sink:MaD:11 | +| JndiInjectionTest.java:109:42:109:69 | nameStr : String | JndiInjectionTest.java:111:41:111:47 | nameStr : String | provenance | | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:113:16:113:19 | name | provenance | Sink:MaD:15 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:115:16:115:19 | name | provenance | Sink:MaD:16 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:117:16:117:19 | name | provenance | Sink:MaD:17 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:123:23:123:26 | name | provenance | Sink:MaD:21 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:125:18:125:21 | name | provenance | Sink:MaD:12 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:126:16:126:19 | name | provenance | Sink:MaD:22 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:127:14:127:17 | name | provenance | Sink:MaD:13 | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | JndiInjectionTest.java:128:22:128:25 | name | provenance | Sink:MaD:14 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:111:17:111:48 | add(...) : Name | provenance | Config | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:118:16:118:22 | nameStr | provenance | Sink:MaD:18 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:120:16:120:22 | nameStr | provenance | Sink:MaD:19 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:122:16:122:22 | nameStr | provenance | Sink:MaD:20 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:124:23:124:29 | nameStr | provenance | Sink:MaD:21 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:129:16:129:22 | nameStr | provenance | | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:131:16:131:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:132:16:132:22 | nameStr | provenance | Sink:MaD:25 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:132:16:132:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:133:16:133:22 | nameStr | provenance | Sink:MaD:24 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:133:16:133:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:134:16:134:22 | nameStr | provenance | Sink:MaD:23 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:134:16:134:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:138:16:138:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:139:16:139:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:141:16:141:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:142:16:142:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:144:16:144:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:145:16:145:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:149:16:149:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:150:16:150:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:152:16:152:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:153:16:153:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:155:16:155:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:156:16:156:22 | nameStr | provenance | Sink:MaD:27 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:170:25:170:31 | nameStr | provenance | Sink:MaD:26 | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | JndiInjectionTest.java:170:25:170:31 | nameStr | provenance | Sink:MaD:28 | +| JndiInjectionTest.java:174:41:174:68 | nameStr : String | JndiInjectionTest.java:177:16:177:22 | nameStr | provenance | Sink:MaD:10 | +| JndiInjectionTest.java:174:41:174:68 | nameStr : String | JndiInjectionTest.java:178:16:178:22 | nameStr | provenance | Sink:MaD:10 | +| JndiInjectionTest.java:182:37:182:63 | urlStr : String | JndiInjectionTest.java:183:51:183:56 | urlStr : String | provenance | | +| JndiInjectionTest.java:183:51:183:56 | urlStr : String | JndiInjectionTest.java:183:33:183:57 | new JMXServiceURL(...) | provenance | Config Sink:MaD:2 | +| JndiInjectionTest.java:183:51:183:56 | urlStr : String | JndiInjectionTest.java:185:43:185:48 | urlStr : String | provenance | | +| JndiInjectionTest.java:185:25:185:49 | new JMXServiceURL(...) : JMXServiceURL | JndiInjectionTest.java:186:66:186:68 | url : JMXServiceURL | provenance | | +| JndiInjectionTest.java:185:43:185:48 | urlStr : String | JndiInjectionTest.java:185:25:185:49 | new JMXServiceURL(...) : JMXServiceURL | provenance | Config | +| JndiInjectionTest.java:186:30:186:75 | newJMXConnector(...) : JMXConnector | JndiInjectionTest.java:187:5:187:13 | connector | provenance | Sink:MaD:1 | +| JndiInjectionTest.java:186:66:186:68 | url : JMXServiceURL | JndiInjectionTest.java:186:30:186:75 | newJMXConnector(...) : JMXConnector | provenance | Config | +| JndiInjectionTest.java:186:66:186:68 | url : JMXServiceURL | JndiInjectionTest.java:186:30:186:75 | newJMXConnector(...) : JMXConnector | provenance | MaD:29 | +| JndiInjectionTest.java:191:27:191:53 | urlStr : String | JndiInjectionTest.java:194:35:194:40 | urlStr | provenance | | +| JndiInjectionTest.java:199:27:199:53 | urlStr : String | JndiInjectionTest.java:202:41:202:46 | urlStr | provenance | | +| JndiInjectionTest.java:207:52:207:78 | urlStr : String | JndiInjectionTest.java:211:37:211:42 | urlStr | provenance | | +| JndiInjectionTest.java:216:52:216:78 | urlStr : String | JndiInjectionTest.java:221:51:221:56 | urlStr | provenance | | +| JndiInjectionTest.java:226:52:226:78 | urlStr : String | JndiInjectionTest.java:231:51:231:56 | urlStr | provenance | | +models +| 1 | Sink: javax.management.remote; JMXConnector; true; connect; ; ; Argument[this]; jndi-injection; manual | +| 2 | Sink: javax.management.remote; JMXConnectorFactory; false; connect; ; ; Argument[0]; jndi-injection; manual | +| 3 | Sink: javax.naming.directory; DirContext; true; search; ; ; Argument[0..1]; ldap-injection; manual | +| 4 | Sink: javax.naming; Context; true; list; ; ; Argument[0]; jndi-injection; manual | +| 5 | Sink: javax.naming; Context; true; listBindings; ; ; Argument[0]; jndi-injection; manual | +| 6 | Sink: javax.naming; Context; true; lookup; ; ; Argument[0]; jndi-injection; manual | +| 7 | Sink: javax.naming; Context; true; lookupLink; ; ; Argument[0]; jndi-injection; manual | +| 8 | Sink: javax.naming; Context; true; rename; ; ; Argument[0]; jndi-injection; manual | +| 9 | Sink: javax.naming; InitialContext; true; doLookup; ; ; Argument[0]; jndi-injection; manual | +| 10 | Sink: org.apache.shiro.jndi; JndiTemplate; false; lookup; ; ; Argument[0]; jndi-injection; manual | +| 11 | Sink: org.springframework.jndi; JndiTemplate; false; lookup; ; ; Argument[0]; jndi-injection; manual | +| 12 | Sink: org.springframework.ldap.core; LdapOperations; true; findByDn; ; ; Argument[0]; jndi-injection; manual | +| 13 | Sink: org.springframework.ldap.core; LdapOperations; true; list; ; ; Argument[0]; jndi-injection; manual | +| 14 | Sink: org.springframework.ldap.core; LdapOperations; true; listBindings; ; ; Argument[0]; jndi-injection; manual | +| 15 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (Name); ; Argument[0]; jndi-injection; manual | +| 16 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (Name,ContextMapper); ; Argument[0]; jndi-injection; manual | +| 17 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (Name,String[],ContextMapper); ; Argument[0]; jndi-injection; manual | +| 18 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (String); ; Argument[0]; jndi-injection; manual | +| 19 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (String,ContextMapper); ; Argument[0]; jndi-injection; manual | +| 20 | Sink: org.springframework.ldap.core; LdapOperations; true; lookup; (String,String[],ContextMapper); ; Argument[0]; jndi-injection; manual | +| 21 | Sink: org.springframework.ldap.core; LdapOperations; true; lookupContext; ; ; Argument[0]; jndi-injection; manual | +| 22 | Sink: org.springframework.ldap.core; LdapOperations; true; rename; ; ; Argument[0]; jndi-injection; manual | +| 23 | Sink: org.springframework.ldap.core; LdapOperations; true; search; (String,String,ContextMapper); ; Argument[0]; jndi-injection; manual | +| 24 | Sink: org.springframework.ldap.core; LdapOperations; true; search; (String,String,int,ContextMapper); ; Argument[0]; jndi-injection; manual | +| 25 | Sink: org.springframework.ldap.core; LdapOperations; true; search; (String,String,int,String[],ContextMapper); ; Argument[0]; jndi-injection; manual | +| 26 | Sink: org.springframework.ldap.core; LdapOperations; true; searchForObject; (String,String,ContextMapper); ; Argument[0]; jndi-injection; manual | +| 27 | Sink: org.springframework.ldap.core; LdapTemplate; false; search; ; ; Argument[0..1]; ldap-injection; manual | +| 28 | Sink: org.springframework.ldap.core; LdapTemplate; false; searchForObject; ; ; Argument[0..1]; ldap-injection; manual | +| 29 | Summary: javax.management.remote; JMXConnectorFactory; true; newJMXConnector; (JMXServiceURL,Map); ; Argument[0]; ReturnValue; taint; df-generated | +nodes +| JndiInjectionTest.java:32:38:32:65 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:33:17:33:42 | new CompositeName(...) : CompositeName | semmle.label | new CompositeName(...) : CompositeName | +| JndiInjectionTest.java:33:35:33:41 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:36:16:36:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:37:20:37:26 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:38:29:38:35 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:39:16:39:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:40:14:40:20 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:41:22:41:28 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:43:16:43:19 | name | semmle.label | name | +| JndiInjectionTest.java:44:20:44:23 | name | semmle.label | name | +| JndiInjectionTest.java:45:29:45:32 | name | semmle.label | name | +| JndiInjectionTest.java:46:16:46:19 | name | semmle.label | name | +| JndiInjectionTest.java:47:14:47:17 | name | semmle.label | name | +| JndiInjectionTest.java:48:22:48:25 | name | semmle.label | name | +| JndiInjectionTest.java:52:34:52:61 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:53:17:53:59 | new CompoundName(...) : CompoundName | semmle.label | new CompoundName(...) : CompoundName | +| JndiInjectionTest.java:53:34:53:40 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:56:16:56:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:57:20:57:26 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:58:16:58:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:59:14:59:20 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:60:22:60:28 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:62:16:62:19 | name | semmle.label | name | +| JndiInjectionTest.java:63:20:63:23 | name | semmle.label | name | +| JndiInjectionTest.java:64:16:64:19 | name | semmle.label | name | +| JndiInjectionTest.java:65:14:65:17 | name | semmle.label | name | +| JndiInjectionTest.java:66:22:66:25 | name | semmle.label | name | +| JndiInjectionTest.java:70:16:70:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:71:16:71:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:74:16:74:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:75:16:75:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:83:42:83:69 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:84:17:84:42 | new CompositeName(...) : CompositeName | semmle.label | new CompositeName(...) : CompositeName | +| JndiInjectionTest.java:84:35:84:41 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:87:16:87:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:88:20:88:26 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:89:16:89:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:90:14:90:20 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:91:22:91:28 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:93:16:93:19 | name | semmle.label | name | +| JndiInjectionTest.java:94:20:94:23 | name | semmle.label | name | +| JndiInjectionTest.java:95:16:95:19 | name | semmle.label | name | +| JndiInjectionTest.java:96:14:96:17 | name | semmle.label | name | +| JndiInjectionTest.java:97:22:97:25 | name | semmle.label | name | +| JndiInjectionTest.java:101:42:101:69 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:104:16:104:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:105:16:105:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:109:42:109:69 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:111:17:111:48 | add(...) : Name | semmle.label | add(...) : Name | +| JndiInjectionTest.java:111:41:111:47 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:113:16:113:19 | name | semmle.label | name | +| JndiInjectionTest.java:115:16:115:19 | name | semmle.label | name | +| JndiInjectionTest.java:117:16:117:19 | name | semmle.label | name | +| JndiInjectionTest.java:118:16:118:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:120:16:120:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:122:16:122:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:123:23:123:26 | name | semmle.label | name | +| JndiInjectionTest.java:124:23:124:29 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:125:18:125:21 | name | semmle.label | name | +| JndiInjectionTest.java:126:16:126:19 | name | semmle.label | name | +| JndiInjectionTest.java:127:14:127:17 | name | semmle.label | name | +| JndiInjectionTest.java:128:22:128:25 | name | semmle.label | name | +| JndiInjectionTest.java:129:16:129:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:131:16:131:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:132:16:132:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:133:16:133:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:134:16:134:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:138:16:138:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:139:16:139:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:141:16:141:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:142:16:142:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:144:16:144:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:145:16:145:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:149:16:149:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:150:16:150:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:152:16:152:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:153:16:153:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:155:16:155:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:156:16:156:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:170:25:170:31 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:174:41:174:68 | nameStr : String | semmle.label | nameStr : String | +| JndiInjectionTest.java:177:16:177:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:178:16:178:22 | nameStr | semmle.label | nameStr | +| JndiInjectionTest.java:182:37:182:63 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:183:33:183:57 | new JMXServiceURL(...) | semmle.label | new JMXServiceURL(...) | +| JndiInjectionTest.java:183:51:183:56 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:185:25:185:49 | new JMXServiceURL(...) : JMXServiceURL | semmle.label | new JMXServiceURL(...) : JMXServiceURL | +| JndiInjectionTest.java:185:43:185:48 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:186:30:186:75 | newJMXConnector(...) : JMXConnector | semmle.label | newJMXConnector(...) : JMXConnector | +| JndiInjectionTest.java:186:66:186:68 | url : JMXServiceURL | semmle.label | url : JMXServiceURL | +| JndiInjectionTest.java:187:5:187:13 | connector | semmle.label | connector | +| JndiInjectionTest.java:191:27:191:53 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:194:35:194:40 | urlStr | semmle.label | urlStr | +| JndiInjectionTest.java:199:27:199:53 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:202:41:202:46 | urlStr | semmle.label | urlStr | +| JndiInjectionTest.java:207:52:207:78 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:211:37:211:42 | urlStr | semmle.label | urlStr | +| JndiInjectionTest.java:216:52:216:78 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:221:51:221:56 | urlStr | semmle.label | urlStr | +| JndiInjectionTest.java:226:52:226:78 | urlStr : String | semmle.label | urlStr : String | +| JndiInjectionTest.java:231:51:231:56 | urlStr | semmle.label | urlStr | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java index 549ae554097..961023db60d 100644 --- a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java @@ -29,50 +29,50 @@ import org.springframework.web.bind.annotation.RequestMapping; @Controller public class JndiInjectionTest { @RequestMapping - public void testInitialContextBad1(@RequestParam String nameStr) throws NamingException { + public void testInitialContextBad1(@RequestParam String nameStr) throws NamingException { // $ Source Name name = new CompositeName(nameStr); InitialContext ctx = new InitialContext(); - ctx.lookup(nameStr); // $hasJndiInjection - ctx.lookupLink(nameStr); // $hasJndiInjection - InitialContext.doLookup(nameStr); // $hasJndiInjection - ctx.rename(nameStr, ""); // $hasJndiInjection - ctx.list(nameStr); // $hasJndiInjection - ctx.listBindings(nameStr); // $hasJndiInjection + ctx.lookup(nameStr); // $ Alert + ctx.lookupLink(nameStr); // $ Alert + InitialContext.doLookup(nameStr); // $ Alert + ctx.rename(nameStr, ""); // $ Alert + ctx.list(nameStr); // $ Alert + ctx.listBindings(nameStr); // $ Alert - ctx.lookup(name); // $hasJndiInjection - ctx.lookupLink(name); // $hasJndiInjection - InitialContext.doLookup(name); // $hasJndiInjection - ctx.rename(name, null); // $hasJndiInjection - ctx.list(name); // $hasJndiInjection - ctx.listBindings(name); // $hasJndiInjection + ctx.lookup(name); // $ Alert + ctx.lookupLink(name); // $ Alert + InitialContext.doLookup(name); // $ Alert + ctx.rename(name, null); // $ Alert + ctx.list(name); // $ Alert + ctx.listBindings(name); // $ Alert } @RequestMapping - public void testDirContextBad1(@RequestParam String nameStr) throws NamingException { + public void testDirContextBad1(@RequestParam String nameStr) throws NamingException { // $ Source Name name = new CompoundName(nameStr, new Properties()); DirContext ctx = new InitialDirContext(); - ctx.lookup(nameStr); // $hasJndiInjection - ctx.lookupLink(nameStr); // $hasJndiInjection - ctx.rename(nameStr, ""); // $hasJndiInjection - ctx.list(nameStr); // $hasJndiInjection - ctx.listBindings(nameStr); // $hasJndiInjection + ctx.lookup(nameStr); // $ Alert + ctx.lookupLink(nameStr); // $ Alert + ctx.rename(nameStr, ""); // $ Alert + ctx.list(nameStr); // $ Alert + ctx.listBindings(nameStr); // $ Alert - ctx.lookup(name); // $hasJndiInjection - ctx.lookupLink(name); // $hasJndiInjection - ctx.rename(name, null); // $hasJndiInjection - ctx.list(name); // $hasJndiInjection - ctx.listBindings(name); // $hasJndiInjection + ctx.lookup(name); // $ Alert + ctx.lookupLink(name); // $ Alert + ctx.rename(name, null); // $ Alert + ctx.list(name); // $ Alert + ctx.listBindings(name); // $ Alert SearchControls searchControls = new SearchControls(); searchControls.setReturningObjFlag(true); - ctx.search(nameStr, "", searchControls); // $hasJndiInjection - ctx.search(nameStr, "", new Object[] {}, searchControls); // $hasJndiInjection + ctx.search(nameStr, "", searchControls); // $ Alert + ctx.search(nameStr, "", new Object[] {}, searchControls); // $ Alert SearchControls searchControls2 = new SearchControls(1, 0, 0, null, true, false); - ctx.search(nameStr, "", searchControls2); // $hasJndiInjection - ctx.search(nameStr, "", new Object[] {}, searchControls2); // $hasJndiInjection + ctx.search(nameStr, "", searchControls2); // $ Alert + ctx.search(nameStr, "", new Object[] {}, searchControls2); // $ Alert SearchControls searchControls3 = new SearchControls(1, 0, 0, null, false, false); ctx.search(nameStr, "", searchControls3); // Safe @@ -80,80 +80,80 @@ public class JndiInjectionTest { } @RequestMapping - public void testInitialLdapContextBad1(@RequestParam String nameStr) throws NamingException { + public void testInitialLdapContextBad1(@RequestParam String nameStr) throws NamingException { // $ Source Name name = new CompositeName(nameStr); InitialLdapContext ctx = new InitialLdapContext(); - ctx.lookup(nameStr); // $hasJndiInjection - ctx.lookupLink(nameStr); // $hasJndiInjection - ctx.rename(nameStr, ""); // $hasJndiInjection - ctx.list(nameStr); // $hasJndiInjection - ctx.listBindings(nameStr); // $hasJndiInjection + ctx.lookup(nameStr); // $ Alert + ctx.lookupLink(nameStr); // $ Alert + ctx.rename(nameStr, ""); // $ Alert + ctx.list(nameStr); // $ Alert + ctx.listBindings(nameStr); // $ Alert - ctx.lookup(name); // $hasJndiInjection - ctx.lookupLink(name); // $hasJndiInjection - ctx.rename(name, null); // $hasJndiInjection - ctx.list(name); // $hasJndiInjection - ctx.listBindings(name); // $hasJndiInjection + ctx.lookup(name); // $ Alert + ctx.lookupLink(name); // $ Alert + ctx.rename(name, null); // $ Alert + ctx.list(name); // $ Alert + ctx.listBindings(name); // $ Alert } @RequestMapping - public void testSpringJndiTemplateBad1(@RequestParam String nameStr) throws NamingException { + public void testSpringJndiTemplateBad1(@RequestParam String nameStr) throws NamingException { // $ Source JndiTemplate ctx = new JndiTemplate(); - ctx.lookup(nameStr); // $hasJndiInjection - ctx.lookup(nameStr, null); // $hasJndiInjection + ctx.lookup(nameStr); // $ Alert + ctx.lookup(nameStr, null); // $ Alert } @RequestMapping - public void testSpringLdapTemplateBad1(@RequestParam String nameStr) throws NamingException { + public void testSpringLdapTemplateBad1(@RequestParam String nameStr) throws NamingException { // $ Source LdapTemplate ctx = new LdapTemplate(); Name name = new CompositeName().add(nameStr); - ctx.lookup(name); // $hasJndiInjection + ctx.lookup(name); // $ Alert ctx.lookup(name, (AttributesMapper) null); // Safe - ctx.lookup(name, (ContextMapper) null); // $hasJndiInjection + ctx.lookup(name, (ContextMapper) null); // $ Alert ctx.lookup(name, new String[] {}, (AttributesMapper) null); // Safe - ctx.lookup(name, new String[] {}, (ContextMapper) null); // $hasJndiInjection - ctx.lookup(nameStr); // $hasJndiInjection + ctx.lookup(name, new String[] {}, (ContextMapper) null); // $ Alert + ctx.lookup(nameStr); // $ Alert ctx.lookup(nameStr, (AttributesMapper) null); // Safe - ctx.lookup(nameStr, (ContextMapper) null); // $hasJndiInjection + ctx.lookup(nameStr, (ContextMapper) null); // $ Alert ctx.lookup(nameStr, new String[] {}, (AttributesMapper) null); // Safe - ctx.lookup(nameStr, new String[] {}, (ContextMapper) null); // $hasJndiInjection - ctx.lookupContext(name); // $hasJndiInjection - ctx.lookupContext(nameStr); // $hasJndiInjection - ctx.findByDn(name, null); // $hasJndiInjection - ctx.rename(name, null); // $hasJndiInjection - ctx.list(name); // $hasJndiInjection - ctx.listBindings(name); // $hasJndiInjection - ctx.unbind(nameStr, true); // $hasJndiInjection + ctx.lookup(nameStr, new String[] {}, (ContextMapper) null); // $ Alert + ctx.lookupContext(name); // $ Alert + ctx.lookupContext(nameStr); // $ Alert + ctx.findByDn(name, null); // $ Alert + ctx.rename(name, null); // $ Alert + ctx.list(name); // $ Alert + ctx.listBindings(name); // $ Alert + ctx.unbind(nameStr, true); // $ Alert - ctx.search(nameStr, "", 0, true, null); // $hasJndiInjection - ctx.search(nameStr, "", 0, new String[] {}, (ContextMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", 0, (ContextMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", (ContextMapper) null); // $hasJndiInjection + ctx.search(nameStr, "", 0, true, null); // $ Alert + ctx.search(nameStr, "", 0, new String[] {}, (ContextMapper) null); // $ Alert + ctx.search(nameStr, "", 0, (ContextMapper) null); // $ Alert + ctx.search(nameStr, "", (ContextMapper) null); // $ Alert SearchControls searchControls = new SearchControls(); searchControls.setReturningObjFlag(true); - ctx.search(nameStr, "", searchControls, (AttributesMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls, (AttributesMapper) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls, (AttributesMapper) null); // $ Alert + ctx.search(nameStr, "", searchControls, (AttributesMapper) null, // $ Alert (DirContextProcessor) null); - ctx.search(nameStr, "", searchControls, (ContextMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls, (ContextMapper) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls, (ContextMapper) null); // $ Alert + ctx.search(nameStr, "", searchControls, (ContextMapper) null, // $ Alert (DirContextProcessor) null); - ctx.search(nameStr, "", searchControls, (NameClassPairCallbackHandler) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls, (NameClassPairCallbackHandler) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls, (NameClassPairCallbackHandler) null); // $ Alert + ctx.search(nameStr, "", searchControls, (NameClassPairCallbackHandler) null, // $ Alert (DirContextProcessor) null); SearchControls searchControls2 = new SearchControls(1, 0, 0, null, true, false); - ctx.search(nameStr, "", searchControls2, (AttributesMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls2, (AttributesMapper) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls2, (AttributesMapper) null); // $ Alert + ctx.search(nameStr, "", searchControls2, (AttributesMapper) null, // $ Alert (DirContextProcessor) null); - ctx.search(nameStr, "", searchControls2, (ContextMapper) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls2, (ContextMapper) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls2, (ContextMapper) null); // $ Alert + ctx.search(nameStr, "", searchControls2, (ContextMapper) null, // $ Alert (DirContextProcessor) null); - ctx.search(nameStr, "", searchControls2, (NameClassPairCallbackHandler) null); // $hasJndiInjection - ctx.search(nameStr, "", searchControls2, (NameClassPairCallbackHandler) null, // $hasJndiInjection + ctx.search(nameStr, "", searchControls2, (NameClassPairCallbackHandler) null); // $ Alert + ctx.search(nameStr, "", searchControls2, (NameClassPairCallbackHandler) null, // $ Alert (DirContextProcessor) null); SearchControls searchControls3 = new SearchControls(1, 0, 0, null, false, false); @@ -167,68 +167,68 @@ public class JndiInjectionTest { ctx.search(nameStr, "", searchControls3, (NameClassPairCallbackHandler) null, // Safe (DirContextProcessor) null); - ctx.searchForObject(nameStr, "", (ContextMapper) null); // $hasJndiInjection + ctx.searchForObject(nameStr, "", (ContextMapper) null); // $ Alert } @RequestMapping - public void testShiroJndiTemplateBad1(@RequestParam String nameStr) throws NamingException { + public void testShiroJndiTemplateBad1(@RequestParam String nameStr) throws NamingException { // $ Source org.apache.shiro.jndi.JndiTemplate ctx = new org.apache.shiro.jndi.JndiTemplate(); - ctx.lookup(nameStr); // $hasJndiInjection - ctx.lookup(nameStr, null); // $hasJndiInjection + ctx.lookup(nameStr); // $ Alert + ctx.lookup(nameStr, null); // $ Alert } @RequestMapping - public void testJMXServiceUrlBad1(@RequestParam String urlStr) throws IOException { - JMXConnectorFactory.connect(new JMXServiceURL(urlStr)); // $hasJndiInjection + public void testJMXServiceUrlBad1(@RequestParam String urlStr) throws IOException { // $ Source + JMXConnectorFactory.connect(new JMXServiceURL(urlStr)); // $ Alert JMXServiceURL url = new JMXServiceURL(urlStr); JMXConnector connector = JMXConnectorFactory.newJMXConnector(url, null); - connector.connect(); // $hasJndiInjection + connector.connect(); // $ Alert } @RequestMapping - public void testEnvBad1(@RequestParam String urlStr) throws NamingException { + public void testEnvBad1(@RequestParam String urlStr) throws NamingException { // $ Source Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); - env.put(Context.PROVIDER_URL, urlStr); // $hasJndiInjection + env.put(Context.PROVIDER_URL, urlStr); // $ Alert new InitialContext(env); } @RequestMapping - public void testEnvBad2(@RequestParam String urlStr) throws NamingException { + public void testEnvBad2(@RequestParam String urlStr) throws NamingException { // $ Source Hashtable env = new Hashtable(); env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); - env.put("java.naming.provider.url", urlStr); // $hasJndiInjection + env.put("java.naming.provider.url", urlStr); // $ Alert new InitialDirContext(env); } @RequestMapping - public void testSpringJndiTemplatePropertiesBad1(@RequestParam String urlStr) + public void testSpringJndiTemplatePropertiesBad1(@RequestParam String urlStr) // $ Source throws NamingException { Properties props = new Properties(); props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); - props.put(Context.PROVIDER_URL, urlStr); // $hasJndiInjection + props.put(Context.PROVIDER_URL, urlStr); // $ Alert new JndiTemplate(props); } @RequestMapping - public void testSpringJndiTemplatePropertiesBad2(@RequestParam String urlStr) + public void testSpringJndiTemplatePropertiesBad2(@RequestParam String urlStr) // $ Source throws NamingException { Properties props = new Properties(); props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); - props.setProperty("java.naming.provider.url", urlStr); // $hasJndiInjection + props.setProperty("java.naming.provider.url", urlStr); // $ Alert new JndiTemplate(props); } @RequestMapping - public void testSpringJndiTemplatePropertiesBad3(@RequestParam String urlStr) + public void testSpringJndiTemplatePropertiesBad3(@RequestParam String urlStr) // $ Source throws NamingException { Properties props = new Properties(); props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory"); - props.setProperty("java.naming.provider.url", urlStr); // $hasJndiInjection + props.setProperty("java.naming.provider.url", urlStr); // $ Alert JndiTemplate template = new JndiTemplate(); template.setEnvironment(props); } diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.ql b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.ql deleted file mode 100644 index 03b588555b5..00000000000 --- a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.JndiInjectionQuery -import utils.test.InlineExpectationsTest - -module HasJndiInjectionTest implements TestSig { - string getARelevantTag() { result = "hasJndiInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasJndiInjection" and - exists(DataFlow::Node sink | JndiInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref new file mode 100644 index 00000000000..90b6394597b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-074/JndiInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 199eabdd206f4497e5e887323090df734ebafdb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 10:51:25 +0200 Subject: [PATCH 266/340] Java: convert XsltInjection test to .qlref Also, split off into separate directory from JndiInjectionTest because their $Alerts were interfering with each other. --- .../JndiInjectionTest.expected | 0 .../JndiInjectionTest.java | 0 .../JndiInjectionTest.qlref | 0 .../security/CWE-074/JndiInjection/options | 1 + .../XsltInjection/XsltInjectionTest.expected | 245 ++++++++++++++++++ .../XsltInjectionTest.java | 72 ++--- .../XsltInjection/XsltInjectionTest.qlref | 4 + .../security/CWE-074/XsltInjection/options | 1 + .../CWE-074/XsltInjectionTest.expected | 0 .../security/CWE-074/XsltInjectionTest.ql | 20 -- .../test/query-tests/security/CWE-074/options | 1 - 11 files changed, 287 insertions(+), 57 deletions(-) rename java/ql/test/query-tests/security/CWE-074/{ => JndiInjection}/JndiInjectionTest.expected (100%) rename java/ql/test/query-tests/security/CWE-074/{ => JndiInjection}/JndiInjectionTest.java (100%) rename java/ql/test/query-tests/security/CWE-074/{ => JndiInjection}/JndiInjectionTest.qlref (100%) create mode 100644 java/ql/test/query-tests/security/CWE-074/JndiInjection/options create mode 100644 java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.expected rename java/ql/test/query-tests/security/CWE-074/{ => XsltInjection}/XsltInjectionTest.java (81%) create mode 100644 java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-074/XsltInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.ql delete mode 100644 java/ql/test/query-tests/security/CWE-074/options diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected b/java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.expected similarity index 100% rename from java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.expected rename to java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.expected diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java b/java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.java similarity index 100% rename from java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.java rename to java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.java diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.qlref similarity index 100% rename from java/ql/test/query-tests/security/CWE-074/JndiInjectionTest.qlref rename to java/ql/test/query-tests/security/CWE-074/JndiInjection/JndiInjectionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-074/JndiInjection/options b/java/ql/test/query-tests/security/CWE-074/JndiInjection/options new file mode 100644 index 00000000000..099749ee58b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-074/JndiInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/shiro-core-1.5.2:${testdir}/../../../../stubs/spring-ldap-2.3.2:${testdir}/../../../../stubs/Saxon-HE-9.9.1-7:${testdir}/../../../../stubs/apache-commons-logging-1.2 diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.expected b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.expected new file mode 100644 index 00000000000..87167aa84bf --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.expected @@ -0,0 +1,245 @@ +#select +| XsltInjectionTest.java:31:5:31:59 | newTransformer(...) | XsltInjectionTest.java:30:44:30:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:31:5:31:59 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:30:44:30:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:36:5:36:74 | newTransformer(...) | XsltInjectionTest.java:35:66:35:88 | getInputStream(...) : InputStream | XsltInjectionTest.java:36:5:36:74 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:35:66:35:88 | getInputStream(...) | this user input | +| XsltInjectionTest.java:43:5:43:59 | newTransformer(...) | XsltInjectionTest.java:40:45:40:70 | param : String | XsltInjectionTest.java:43:5:43:59 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:40:45:40:70 | param | this user input | +| XsltInjectionTest.java:48:5:48:74 | newTransformer(...) | XsltInjectionTest.java:47:54:47:76 | getInputStream(...) : InputStream | XsltInjectionTest.java:48:5:48:74 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:47:54:47:76 | getInputStream(...) | this user input | +| XsltInjectionTest.java:54:5:54:59 | newTransformer(...) | XsltInjectionTest.java:53:67:53:89 | getInputStream(...) : InputStream | XsltInjectionTest.java:54:5:54:59 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:53:67:53:89 | getInputStream(...) | this user input | +| XsltInjectionTest.java:60:5:60:59 | newTransformer(...) | XsltInjectionTest.java:59:75:59:97 | getInputStream(...) : InputStream | XsltInjectionTest.java:60:5:60:59 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:59:75:59:97 | getInputStream(...) | this user input | +| XsltInjectionTest.java:66:5:66:74 | newTransformer(...) | XsltInjectionTest.java:65:31:65:53 | getInputStream(...) : InputStream | XsltInjectionTest.java:66:5:66:74 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:65:31:65:53 | getInputStream(...) | this user input | +| XsltInjectionTest.java:72:5:72:59 | newTransformer(...) | XsltInjectionTest.java:71:73:71:95 | getInputStream(...) : InputStream | XsltInjectionTest.java:72:5:72:59 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:71:73:71:95 | getInputStream(...) | this user input | +| XsltInjectionTest.java:80:5:80:34 | newTransformer(...) | XsltInjectionTest.java:76:44:76:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:80:5:80:34 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:76:44:76:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:87:5:87:34 | newTransformer(...) | XsltInjectionTest.java:84:44:84:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:87:5:87:34 | newTransformer(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:84:44:84:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:94:5:94:35 | load(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:94:5:94:35 | load(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:95:5:95:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:95:5:95:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:96:5:96:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:96:5:96:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:97:5:97:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:97:5:97:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:98:5:98:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:98:5:98:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:99:5:99:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:99:5:99:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:100:5:100:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:100:5:100:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:101:5:101:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:101:5:101:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:102:5:102:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:102:5:102:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:103:5:103:37 | load30(...) | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:103:5:103:37 | load30(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:91:44:91:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:112:5:112:46 | load(...) | XsltInjectionTest.java:107:36:107:61 | param : String | XsltInjectionTest.java:112:5:112:46 | load(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:107:36:107:61 | param | this user input | +| XsltInjectionTest.java:113:5:113:49 | load(...) | XsltInjectionTest.java:107:64:107:76 | socket : Socket | XsltInjectionTest.java:113:5:113:49 | load(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:107:64:107:76 | socket | this user input | +| XsltInjectionTest.java:113:5:113:49 | load(...) | XsltInjectionTest.java:109:44:109:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:113:5:113:49 | load(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:109:44:109:66 | getInputStream(...) | this user input | +| XsltInjectionTest.java:114:5:114:50 | load(...) | XsltInjectionTest.java:107:36:107:61 | param : String | XsltInjectionTest.java:114:5:114:50 | load(...) | XSLT transformation might include stylesheet from $@. | XsltInjectionTest.java:107:36:107:61 | param | this user input | +edges +| XsltInjectionTest.java:30:27:30:67 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:31:53:31:58 | source : StreamSource | provenance | | +| XsltInjectionTest.java:30:44:30:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:30:27:30:67 | new StreamSource(...) : StreamSource | provenance | Src:MaD:7 MaD:14 | +| XsltInjectionTest.java:31:53:31:58 | source : StreamSource | XsltInjectionTest.java:31:5:31:59 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:35:27:35:90 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:36:51:36:56 | source : StreamSource | provenance | | +| XsltInjectionTest.java:35:44:35:89 | new InputStreamReader(...) : InputStreamReader | XsltInjectionTest.java:35:27:35:90 | new StreamSource(...) : StreamSource | provenance | MaD:14 | +| XsltInjectionTest.java:35:66:35:88 | getInputStream(...) : InputStream | XsltInjectionTest.java:35:44:35:89 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:7 MaD:8 | +| XsltInjectionTest.java:36:5:36:57 | newTemplates(...) : Templates | XsltInjectionTest.java:36:5:36:74 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:36:5:36:57 | newTemplates(...) : Templates | XsltInjectionTest.java:36:5:36:74 | newTransformer(...) | provenance | MaD:15 Sink:MaD:1 | +| XsltInjectionTest.java:36:51:36:56 | source : StreamSource | XsltInjectionTest.java:36:5:36:57 | newTemplates(...) : Templates | provenance | Config | +| XsltInjectionTest.java:36:51:36:56 | source : StreamSource | XsltInjectionTest.java:36:5:36:57 | newTemplates(...) : Templates | provenance | MaD:16 | +| XsltInjectionTest.java:40:45:40:70 | param : String | XsltInjectionTest.java:42:61:42:64 | xslt : String | provenance | | +| XsltInjectionTest.java:42:27:42:66 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:43:53:43:58 | source : StreamSource | provenance | | +| XsltInjectionTest.java:42:44:42:65 | new StringReader(...) : StringReader | XsltInjectionTest.java:42:27:42:66 | new StreamSource(...) : StreamSource | provenance | MaD:14 | +| XsltInjectionTest.java:42:61:42:64 | xslt : String | XsltInjectionTest.java:42:44:42:65 | new StringReader(...) : StringReader | provenance | MaD:9 | +| XsltInjectionTest.java:43:53:43:58 | source : StreamSource | XsltInjectionTest.java:43:5:43:59 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:47:24:47:78 | new SAXSource(...) : SAXSource | XsltInjectionTest.java:48:51:48:56 | source : SAXSource | provenance | | +| XsltInjectionTest.java:47:38:47:77 | new InputSource(...) : InputSource | XsltInjectionTest.java:47:24:47:78 | new SAXSource(...) : SAXSource | provenance | MaD:12 | +| XsltInjectionTest.java:47:54:47:76 | getInputStream(...) : InputStream | XsltInjectionTest.java:47:38:47:77 | new InputSource(...) : InputSource | provenance | Src:MaD:7 MaD:17 | +| XsltInjectionTest.java:48:5:48:57 | newTemplates(...) : Templates | XsltInjectionTest.java:48:5:48:74 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:48:5:48:57 | newTemplates(...) : Templates | XsltInjectionTest.java:48:5:48:74 | newTransformer(...) | provenance | MaD:15 Sink:MaD:1 | +| XsltInjectionTest.java:48:51:48:56 | source : SAXSource | XsltInjectionTest.java:48:5:48:57 | newTemplates(...) : Templates | provenance | Config | +| XsltInjectionTest.java:48:51:48:56 | source : SAXSource | XsltInjectionTest.java:48:5:48:57 | newTemplates(...) : Templates | provenance | MaD:16 | +| XsltInjectionTest.java:53:9:53:92 | new SAXSource(...) : SAXSource | XsltInjectionTest.java:54:53:54:58 | source : SAXSource | provenance | | +| XsltInjectionTest.java:53:29:53:91 | new InputSource(...) : InputSource | XsltInjectionTest.java:53:9:53:92 | new SAXSource(...) : SAXSource | provenance | MaD:13 | +| XsltInjectionTest.java:53:45:53:90 | new InputStreamReader(...) : InputStreamReader | XsltInjectionTest.java:53:29:53:91 | new InputSource(...) : InputSource | provenance | MaD:17 | +| XsltInjectionTest.java:53:67:53:89 | getInputStream(...) : InputStream | XsltInjectionTest.java:53:45:53:90 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:7 MaD:8 | +| XsltInjectionTest.java:54:53:54:58 | source : SAXSource | XsltInjectionTest.java:54:5:54:59 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:59:9:59:99 | new StAXSource(...) : StAXSource | XsltInjectionTest.java:60:53:60:58 | source : StAXSource | provenance | | +| XsltInjectionTest.java:59:24:59:98 | createXMLEventReader(...) : XMLEventReader | XsltInjectionTest.java:59:9:59:99 | new StAXSource(...) : StAXSource | provenance | Config | +| XsltInjectionTest.java:59:75:59:97 | getInputStream(...) : InputStream | XsltInjectionTest.java:59:24:59:98 | createXMLEventReader(...) : XMLEventReader | provenance | Src:MaD:7 Config | +| XsltInjectionTest.java:60:53:60:58 | source : StAXSource | XsltInjectionTest.java:60:5:60:59 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:64:25:65:56 | new StAXSource(...) : StAXSource | XsltInjectionTest.java:66:51:66:56 | source : StAXSource | provenance | | +| XsltInjectionTest.java:64:40:65:55 | createXMLStreamReader(...) : XMLStreamReader | XsltInjectionTest.java:64:25:65:56 | new StAXSource(...) : StAXSource | provenance | Config | +| XsltInjectionTest.java:65:9:65:54 | new InputStreamReader(...) : InputStreamReader | XsltInjectionTest.java:64:40:65:55 | createXMLStreamReader(...) : XMLStreamReader | provenance | Config | +| XsltInjectionTest.java:65:31:65:53 | getInputStream(...) : InputStream | XsltInjectionTest.java:65:9:65:54 | new InputStreamReader(...) : InputStreamReader | provenance | Src:MaD:7 MaD:8 | +| XsltInjectionTest.java:66:5:66:57 | newTemplates(...) : Templates | XsltInjectionTest.java:66:5:66:74 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:66:5:66:57 | newTemplates(...) : Templates | XsltInjectionTest.java:66:5:66:74 | newTransformer(...) | provenance | MaD:15 Sink:MaD:1 | +| XsltInjectionTest.java:66:51:66:56 | source : StAXSource | XsltInjectionTest.java:66:5:66:57 | newTemplates(...) : Templates | provenance | Config | +| XsltInjectionTest.java:66:51:66:56 | source : StAXSource | XsltInjectionTest.java:66:5:66:57 | newTemplates(...) : Templates | provenance | MaD:16 | +| XsltInjectionTest.java:70:24:71:97 | new DOMSource(...) : DOMSource | XsltInjectionTest.java:72:53:72:58 | source : DOMSource | provenance | | +| XsltInjectionTest.java:71:9:71:96 | parse(...) : Document | XsltInjectionTest.java:70:24:71:97 | new DOMSource(...) : DOMSource | provenance | Config | +| XsltInjectionTest.java:71:73:71:95 | getInputStream(...) : InputStream | XsltInjectionTest.java:71:9:71:96 | parse(...) : Document | provenance | Src:MaD:7 Config | +| XsltInjectionTest.java:72:53:72:58 | source : DOMSource | XsltInjectionTest.java:72:5:72:59 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:76:27:76:67 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:80:28:80:33 | source : StreamSource | provenance | | +| XsltInjectionTest.java:76:44:76:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:76:27:76:67 | new StreamSource(...) : StreamSource | provenance | Src:MaD:7 MaD:14 | +| XsltInjectionTest.java:80:28:80:33 | source : StreamSource | XsltInjectionTest.java:80:5:80:34 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:84:27:84:67 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:87:28:87:33 | source : StreamSource | provenance | | +| XsltInjectionTest.java:84:44:84:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:84:27:84:67 | new StreamSource(...) : StreamSource | provenance | Src:MaD:7 MaD:14 | +| XsltInjectionTest.java:87:28:87:33 | source : StreamSource | XsltInjectionTest.java:87:5:87:34 | newTransformer(...) | provenance | Config Sink:MaD:1 | +| XsltInjectionTest.java:91:27:91:67 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:94:22:94:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:91:27:91:67 | new StreamSource(...) : StreamSource | provenance | Src:MaD:7 MaD:14 | +| XsltInjectionTest.java:94:5:94:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:94:5:94:35 | load(...) | provenance | Config Sink:MaD:6 | +| XsltInjectionTest.java:94:22:94:27 | source : StreamSource | XsltInjectionTest.java:94:5:94:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:94:22:94:27 | source : StreamSource | XsltInjectionTest.java:95:22:95:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:95:5:95:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:95:5:95:37 | load30(...) | provenance | Config Sink:MaD:5 | +| XsltInjectionTest.java:95:22:95:27 | source : StreamSource | XsltInjectionTest.java:95:5:95:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:95:22:95:27 | source : StreamSource | XsltInjectionTest.java:96:22:96:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:96:5:96:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:96:5:96:37 | load30(...) | provenance | Config Sink:MaD:2 | +| XsltInjectionTest.java:96:22:96:27 | source : StreamSource | XsltInjectionTest.java:96:5:96:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:96:22:96:27 | source : StreamSource | XsltInjectionTest.java:97:22:97:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:97:5:97:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:97:5:97:37 | load30(...) | provenance | Config Sink:MaD:2 | +| XsltInjectionTest.java:97:22:97:27 | source : StreamSource | XsltInjectionTest.java:97:5:97:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:97:22:97:27 | source : StreamSource | XsltInjectionTest.java:98:22:98:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:98:5:98:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:98:5:98:37 | load30(...) | provenance | Config Sink:MaD:2 | +| XsltInjectionTest.java:98:22:98:27 | source : StreamSource | XsltInjectionTest.java:98:5:98:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:98:22:98:27 | source : StreamSource | XsltInjectionTest.java:99:22:99:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:99:5:99:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:99:5:99:37 | load30(...) | provenance | Config Sink:MaD:2 | +| XsltInjectionTest.java:99:22:99:27 | source : StreamSource | XsltInjectionTest.java:99:5:99:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:99:22:99:27 | source : StreamSource | XsltInjectionTest.java:100:22:100:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:100:5:100:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:100:5:100:37 | load30(...) | provenance | Config Sink:MaD:3 | +| XsltInjectionTest.java:100:22:100:27 | source : StreamSource | XsltInjectionTest.java:100:5:100:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:100:22:100:27 | source : StreamSource | XsltInjectionTest.java:101:22:101:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:101:5:101:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:101:5:101:37 | load30(...) | provenance | Config Sink:MaD:3 | +| XsltInjectionTest.java:101:22:101:27 | source : StreamSource | XsltInjectionTest.java:101:5:101:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:101:22:101:27 | source : StreamSource | XsltInjectionTest.java:102:22:102:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:102:5:102:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:102:5:102:37 | load30(...) | provenance | Config Sink:MaD:4 | +| XsltInjectionTest.java:102:22:102:27 | source : StreamSource | XsltInjectionTest.java:102:5:102:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:102:22:102:27 | source : StreamSource | XsltInjectionTest.java:103:22:103:27 | source : StreamSource | provenance | | +| XsltInjectionTest.java:103:5:103:28 | compile(...) : XsltExecutable | XsltInjectionTest.java:103:5:103:37 | load30(...) | provenance | Config Sink:MaD:4 | +| XsltInjectionTest.java:103:22:103:27 | source : StreamSource | XsltInjectionTest.java:103:5:103:28 | compile(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:107:36:107:61 | param : String | XsltInjectionTest.java:108:23:108:27 | param : String | provenance | | +| XsltInjectionTest.java:107:64:107:76 | socket : Socket | XsltInjectionTest.java:109:44:109:49 | socket : Socket | provenance | | +| XsltInjectionTest.java:108:15:108:28 | new URI(...) : URI | XsltInjectionTest.java:112:36:112:38 | uri : URI | provenance | | +| XsltInjectionTest.java:108:23:108:27 | param : String | XsltInjectionTest.java:108:15:108:28 | new URI(...) : URI | provenance | MaD:11 | +| XsltInjectionTest.java:109:27:109:67 | new StreamSource(...) : StreamSource | XsltInjectionTest.java:113:29:113:34 | source : StreamSource | provenance | | +| XsltInjectionTest.java:109:44:109:49 | socket : Socket | XsltInjectionTest.java:109:44:109:66 | getInputStream(...) : InputStream | provenance | MaD:10 | +| XsltInjectionTest.java:109:44:109:66 | getInputStream(...) : InputStream | XsltInjectionTest.java:109:27:109:67 | new StreamSource(...) : StreamSource | provenance | Src:MaD:7 MaD:14 | +| XsltInjectionTest.java:112:5:112:39 | loadExecutablePackage(...) : XsltExecutable | XsltInjectionTest.java:112:5:112:46 | load(...) | provenance | Config Sink:MaD:6 | +| XsltInjectionTest.java:112:36:112:38 | uri : URI | XsltInjectionTest.java:112:5:112:39 | loadExecutablePackage(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:112:36:112:38 | uri : URI | XsltInjectionTest.java:114:33:114:35 | uri : URI | provenance | | +| XsltInjectionTest.java:113:5:113:35 | compilePackage(...) : XsltPackage | XsltInjectionTest.java:113:5:113:42 | link(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:113:5:113:42 | link(...) : XsltExecutable | XsltInjectionTest.java:113:5:113:49 | load(...) | provenance | Config Sink:MaD:6 | +| XsltInjectionTest.java:113:29:113:34 | source : StreamSource | XsltInjectionTest.java:113:5:113:35 | compilePackage(...) : XsltPackage | provenance | Config | +| XsltInjectionTest.java:114:5:114:36 | loadLibraryPackage(...) : XsltPackage | XsltInjectionTest.java:114:5:114:43 | link(...) : XsltExecutable | provenance | Config | +| XsltInjectionTest.java:114:5:114:43 | link(...) : XsltExecutable | XsltInjectionTest.java:114:5:114:50 | load(...) | provenance | Config Sink:MaD:6 | +| XsltInjectionTest.java:114:33:114:35 | uri : URI | XsltInjectionTest.java:114:5:114:36 | loadLibraryPackage(...) : XsltPackage | provenance | Config | +models +| 1 | Sink: javax.xml.transform; Transformer; false; transform; ; ; Argument[this]; xslt-injection; manual | +| 2 | Sink: net.sf.saxon.s9api; Xslt30Transformer; false; applyTemplates; ; ; Argument[this]; xslt-injection; manual | +| 3 | Sink: net.sf.saxon.s9api; Xslt30Transformer; false; callFunction; ; ; Argument[this]; xslt-injection; manual | +| 4 | Sink: net.sf.saxon.s9api; Xslt30Transformer; false; callTemplate; ; ; Argument[this]; xslt-injection; manual | +| 5 | Sink: net.sf.saxon.s9api; Xslt30Transformer; false; transform; ; ; Argument[this]; xslt-injection; manual | +| 6 | Sink: net.sf.saxon.s9api; XsltTransformer; false; transform; ; ; Argument[this]; xslt-injection; manual | +| 7 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 8 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 9 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 10 | Summary: java.net; Socket; true; getInputStream; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 11 | Summary: java.net; URI; false; URI; (String); ; Argument[0]; Argument[this]; taint; manual | +| 12 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (InputSource); ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (XMLReader,InputSource); ; Argument[1]; Argument[this]; taint; manual | +| 14 | Summary: javax.xml.transform.stream; StreamSource; false; StreamSource; ; ; Argument[0]; Argument[this]; taint; manual | +| 15 | Summary: javax.xml.transform; Templates; true; newTransformer; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 16 | Summary: javax.xml.transform; TransformerFactory; true; newTemplates; (Source); ; Argument[0]; ReturnValue; taint; df-generated | +| 17 | Summary: org.xml.sax; InputSource; false; InputSource; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| XsltInjectionTest.java:30:27:30:67 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:30:44:30:66 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:31:5:31:59 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:31:53:31:58 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:35:27:35:90 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:35:44:35:89 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| XsltInjectionTest.java:35:66:35:88 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:36:5:36:57 | newTemplates(...) : Templates | semmle.label | newTemplates(...) : Templates | +| XsltInjectionTest.java:36:5:36:74 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:36:51:36:56 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:40:45:40:70 | param : String | semmle.label | param : String | +| XsltInjectionTest.java:42:27:42:66 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:42:44:42:65 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| XsltInjectionTest.java:42:61:42:64 | xslt : String | semmle.label | xslt : String | +| XsltInjectionTest.java:43:5:43:59 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:43:53:43:58 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:47:24:47:78 | new SAXSource(...) : SAXSource | semmle.label | new SAXSource(...) : SAXSource | +| XsltInjectionTest.java:47:38:47:77 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| XsltInjectionTest.java:47:54:47:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:48:5:48:57 | newTemplates(...) : Templates | semmle.label | newTemplates(...) : Templates | +| XsltInjectionTest.java:48:5:48:74 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:48:51:48:56 | source : SAXSource | semmle.label | source : SAXSource | +| XsltInjectionTest.java:53:9:53:92 | new SAXSource(...) : SAXSource | semmle.label | new SAXSource(...) : SAXSource | +| XsltInjectionTest.java:53:29:53:91 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| XsltInjectionTest.java:53:45:53:90 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| XsltInjectionTest.java:53:67:53:89 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:54:5:54:59 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:54:53:54:58 | source : SAXSource | semmle.label | source : SAXSource | +| XsltInjectionTest.java:59:9:59:99 | new StAXSource(...) : StAXSource | semmle.label | new StAXSource(...) : StAXSource | +| XsltInjectionTest.java:59:24:59:98 | createXMLEventReader(...) : XMLEventReader | semmle.label | createXMLEventReader(...) : XMLEventReader | +| XsltInjectionTest.java:59:75:59:97 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:60:5:60:59 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:60:53:60:58 | source : StAXSource | semmle.label | source : StAXSource | +| XsltInjectionTest.java:64:25:65:56 | new StAXSource(...) : StAXSource | semmle.label | new StAXSource(...) : StAXSource | +| XsltInjectionTest.java:64:40:65:55 | createXMLStreamReader(...) : XMLStreamReader | semmle.label | createXMLStreamReader(...) : XMLStreamReader | +| XsltInjectionTest.java:65:9:65:54 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| XsltInjectionTest.java:65:31:65:53 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:66:5:66:57 | newTemplates(...) : Templates | semmle.label | newTemplates(...) : Templates | +| XsltInjectionTest.java:66:5:66:74 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:66:51:66:56 | source : StAXSource | semmle.label | source : StAXSource | +| XsltInjectionTest.java:70:24:71:97 | new DOMSource(...) : DOMSource | semmle.label | new DOMSource(...) : DOMSource | +| XsltInjectionTest.java:71:9:71:96 | parse(...) : Document | semmle.label | parse(...) : Document | +| XsltInjectionTest.java:71:73:71:95 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:72:5:72:59 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:72:53:72:58 | source : DOMSource | semmle.label | source : DOMSource | +| XsltInjectionTest.java:76:27:76:67 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:76:44:76:66 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:80:5:80:34 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:80:28:80:33 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:84:27:84:67 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:84:44:84:66 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:87:5:87:34 | newTransformer(...) | semmle.label | newTransformer(...) | +| XsltInjectionTest.java:87:28:87:33 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:91:27:91:67 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:91:44:91:66 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:94:5:94:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:94:5:94:35 | load(...) | semmle.label | load(...) | +| XsltInjectionTest.java:94:22:94:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:95:5:95:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:95:5:95:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:95:22:95:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:96:5:96:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:96:5:96:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:96:22:96:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:97:5:97:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:97:5:97:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:97:22:97:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:98:5:98:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:98:5:98:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:98:22:98:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:99:5:99:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:99:5:99:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:99:22:99:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:100:5:100:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:100:5:100:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:100:22:100:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:101:5:101:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:101:5:101:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:101:22:101:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:102:5:102:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:102:5:102:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:102:22:102:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:103:5:103:28 | compile(...) : XsltExecutable | semmle.label | compile(...) : XsltExecutable | +| XsltInjectionTest.java:103:5:103:37 | load30(...) | semmle.label | load30(...) | +| XsltInjectionTest.java:103:22:103:27 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:107:36:107:61 | param : String | semmle.label | param : String | +| XsltInjectionTest.java:107:64:107:76 | socket : Socket | semmle.label | socket : Socket | +| XsltInjectionTest.java:108:15:108:28 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| XsltInjectionTest.java:108:23:108:27 | param : String | semmle.label | param : String | +| XsltInjectionTest.java:109:27:109:67 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| XsltInjectionTest.java:109:44:109:49 | socket : Socket | semmle.label | socket : Socket | +| XsltInjectionTest.java:109:44:109:66 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XsltInjectionTest.java:112:5:112:39 | loadExecutablePackage(...) : XsltExecutable | semmle.label | loadExecutablePackage(...) : XsltExecutable | +| XsltInjectionTest.java:112:5:112:46 | load(...) | semmle.label | load(...) | +| XsltInjectionTest.java:112:36:112:38 | uri : URI | semmle.label | uri : URI | +| XsltInjectionTest.java:113:5:113:35 | compilePackage(...) : XsltPackage | semmle.label | compilePackage(...) : XsltPackage | +| XsltInjectionTest.java:113:5:113:42 | link(...) : XsltExecutable | semmle.label | link(...) : XsltExecutable | +| XsltInjectionTest.java:113:5:113:49 | load(...) | semmle.label | load(...) | +| XsltInjectionTest.java:113:29:113:34 | source : StreamSource | semmle.label | source : StreamSource | +| XsltInjectionTest.java:114:5:114:36 | loadLibraryPackage(...) : XsltPackage | semmle.label | loadLibraryPackage(...) : XsltPackage | +| XsltInjectionTest.java:114:5:114:43 | link(...) : XsltExecutable | semmle.label | link(...) : XsltExecutable | +| XsltInjectionTest.java:114:5:114:50 | load(...) | semmle.label | load(...) | +| XsltInjectionTest.java:114:33:114:35 | uri : URI | semmle.label | uri : URI | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.java b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.java similarity index 81% rename from java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.java rename to java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.java index 2bfd02a865c..d6804d801b7 100644 --- a/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.java @@ -27,91 +27,91 @@ import net.sf.saxon.s9api.XsltCompiler; @Controller public class XsltInjectionTest { public void testStreamSourceInputStream(Socket socket) throws Exception { - StreamSource source = new StreamSource(socket.getInputStream()); - TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $hasXsltInjection + StreamSource source = new StreamSource(socket.getInputStream()); // $ Source + TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $ Alert } public void testStreamSourceReader(Socket socket) throws Exception { - StreamSource source = new StreamSource(new InputStreamReader(socket.getInputStream())); - TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $hasXsltInjection + StreamSource source = new StreamSource(new InputStreamReader(socket.getInputStream())); // $ Source + TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $ Alert } @RequestMapping - public void testStreamSourceInjectedParam(@RequestParam String param) throws Exception { + public void testStreamSourceInjectedParam(@RequestParam String param) throws Exception { // $ Source String xslt = ""; StreamSource source = new StreamSource(new StringReader(xslt)); - TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $hasXsltInjection + TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $ Alert } public void testSAXSourceInputStream(Socket socket) throws Exception { - SAXSource source = new SAXSource(new InputSource(socket.getInputStream())); - TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $hasXsltInjection + SAXSource source = new SAXSource(new InputSource(socket.getInputStream())); // $ Source + TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $ Alert } public void testSAXSourceReader(Socket socket) throws Exception { SAXSource source = - new SAXSource(null, new InputSource(new InputStreamReader(socket.getInputStream()))); - TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $hasXsltInjection + new SAXSource(null, new InputSource(new InputStreamReader(socket.getInputStream()))); // $ Source + TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $ Alert } public void testStAXSourceEventReader(Socket socket) throws Exception { StAXSource source = - new StAXSource(XMLInputFactory.newInstance().createXMLEventReader(socket.getInputStream())); - TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $hasXsltInjection + new StAXSource(XMLInputFactory.newInstance().createXMLEventReader(socket.getInputStream())); // $ Source + TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $ Alert } public void testStAXSourceEventStream(Socket socket) throws Exception { StAXSource source = new StAXSource(XMLInputFactory.newInstance().createXMLStreamReader(null, - new InputStreamReader(socket.getInputStream()))); - TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $hasXsltInjection + new InputStreamReader(socket.getInputStream()))); // $ Source + TransformerFactory.newInstance().newTemplates(source).newTransformer().transform(null, null); // $ Alert } public void testDOMSource(Socket socket) throws Exception { DOMSource source = new DOMSource( - DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(socket.getInputStream())); - TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $hasXsltInjection + DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(socket.getInputStream())); // $ Source + TransformerFactory.newInstance().newTransformer(source).transform(null, null); // $ Alert } public void testDisabledXXE(Socket socket) throws Exception { - StreamSource source = new StreamSource(socket.getInputStream()); + StreamSource source = new StreamSource(socket.getInputStream()); // $ Source TransformerFactory factory = TransformerFactory.newInstance(); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); factory.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); - factory.newTransformer(source).transform(null, null); // $hasXsltInjection + factory.newTransformer(source).transform(null, null); // $ Alert } public void testFeatureSecureProcessingDisabled(Socket socket) throws Exception { - StreamSource source = new StreamSource(socket.getInputStream()); + StreamSource source = new StreamSource(socket.getInputStream()); // $ Source TransformerFactory factory = TransformerFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false); - factory.newTransformer(source).transform(null, null); // $hasXsltInjection + factory.newTransformer(source).transform(null, null); // $ Alert } public void testSaxon(Socket socket) throws Exception { - StreamSource source = new StreamSource(socket.getInputStream()); + StreamSource source = new StreamSource(socket.getInputStream()); // $ Source XsltCompiler compiler = new Processor(true).newXsltCompiler(); - compiler.compile(source).load().transform(); // $hasXsltInjection - compiler.compile(source).load30().transform(null, null); // $hasXsltInjection - compiler.compile(source).load30().applyTemplates((Source) null); // $hasXsltInjection - compiler.compile(source).load30().applyTemplates((Source) null, null); // $hasXsltInjection - compiler.compile(source).load30().applyTemplates((XdmValue) null); // $hasXsltInjection - compiler.compile(source).load30().applyTemplates((XdmValue) null, null); // $hasXsltInjection - compiler.compile(source).load30().callFunction(null, null); // $hasXsltInjection - compiler.compile(source).load30().callFunction(null, null, null); // $hasXsltInjection - compiler.compile(source).load30().callTemplate(null); // $hasXsltInjection - compiler.compile(source).load30().callTemplate(null, null); // $hasXsltInjection + compiler.compile(source).load().transform(); // $ Alert + compiler.compile(source).load30().transform(null, null); // $ Alert + compiler.compile(source).load30().applyTemplates((Source) null); // $ Alert + compiler.compile(source).load30().applyTemplates((Source) null, null); // $ Alert + compiler.compile(source).load30().applyTemplates((XdmValue) null); // $ Alert + compiler.compile(source).load30().applyTemplates((XdmValue) null, null); // $ Alert + compiler.compile(source).load30().callFunction(null, null); // $ Alert + compiler.compile(source).load30().callFunction(null, null, null); // $ Alert + compiler.compile(source).load30().callTemplate(null); // $ Alert + compiler.compile(source).load30().callTemplate(null, null); // $ Alert } @RequestMapping - public void testSaxonXsltPackage(@RequestParam String param, Socket socket) throws Exception { + public void testSaxonXsltPackage(@RequestParam String param, Socket socket) throws Exception { // $ Source URI uri = new URI(param); - StreamSource source = new StreamSource(socket.getInputStream()); + StreamSource source = new StreamSource(socket.getInputStream()); // $ Source XsltCompiler compiler = new Processor(true).newXsltCompiler(); - compiler.loadExecutablePackage(uri).load().transform(); // $hasXsltInjection - compiler.compilePackage(source).link().load().transform(); // $hasXsltInjection - compiler.loadLibraryPackage(uri).link().load().transform(); // $hasXsltInjection + compiler.loadExecutablePackage(uri).load().transform(); // $ Alert + compiler.compilePackage(source).link().load().transform(); // $ Alert + compiler.loadLibraryPackage(uri).link().load().transform(); // $ Alert } public void testOkFeatureSecureProcessing(Socket socket) throws Exception { diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.qlref new file mode 100644 index 00000000000..e32e035cedb --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-074/XsltInjection/XsltInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-074/XsltInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjection/options b/java/ql/test/query-tests/security/CWE-074/XsltInjection/options new file mode 100644 index 00000000000..099749ee58b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-074/XsltInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/shiro-core-1.5.2:${testdir}/../../../../stubs/spring-ldap-2.3.2:${testdir}/../../../../stubs/Saxon-HE-9.9.1-7:${testdir}/../../../../stubs/apache-commons-logging-1.2 diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.expected b/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.ql b/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.ql deleted file mode 100644 index 72c003246bc..00000000000 --- a/java/ql/test/query-tests/security/CWE-074/XsltInjectionTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import java -import semmle.code.java.dataflow.TaintTracking -import semmle.code.java.dataflow.FlowSources -import semmle.code.java.security.XsltInjectionQuery -import utils.test.InlineExpectationsTest - -module HasXsltInjectionTest implements TestSig { - string getARelevantTag() { result = "hasXsltInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasXsltInjection" and - exists(DataFlow::Node sink | XsltInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-074/options b/java/ql/test/query-tests/security/CWE-074/options deleted file mode 100644 index becd1ca3f58..00000000000 --- a/java/ql/test/query-tests/security/CWE-074/options +++ /dev/null @@ -1 +0,0 @@ -//semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/springframework-5.8.x:${testdir}/../../../stubs/shiro-core-1.5.2:${testdir}/../../../stubs/spring-ldap-2.3.2:${testdir}/../../../stubs/Saxon-HE-9.9.1-7:${testdir}/../../../stubs/apache-commons-logging-1.2 From 8e53da285f798d2d8b6b6c66013c65f1954de0a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 11:10:09 +0200 Subject: [PATCH 267/340] Java: convert XSS test to .qlref --- .../security/CWE-079/semmle/tests/JaxXSS.java | 74 ++-- .../security/CWE-079/semmle/tests/JsfXSS.java | 20 +- .../CWE-079/semmle/tests/SpringXSS.java | 56 +-- .../CWE-079/semmle/tests/XSS.expected | 336 ++++++++++++++++++ .../security/CWE-079/semmle/tests/XSS.java | 18 +- .../security/CWE-079/semmle/tests/XSS.ql | 18 - .../security/CWE-079/semmle/tests/XSS.qlref | 4 + 7 files changed, 424 insertions(+), 102 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.ql create mode 100644 java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.qlref diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/JaxXSS.java b/java/ql/test/query-tests/security/CWE-079/semmle/tests/JaxXSS.java index a0719526d97..0e096ab94e0 100644 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/JaxXSS.java +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/JaxXSS.java @@ -12,25 +12,25 @@ import java.util.Locale; public class JaxXSS { @GET - public static Response specificContentType(boolean safeContentType, boolean chainDirectly, boolean contentTypeFirst, String userControlled) { + public static Response specificContentType(boolean safeContentType, boolean chainDirectly, boolean contentTypeFirst, String userControlled) { // $ Source Response.ResponseBuilder builder = Response.ok(); if(!safeContentType) { if(chainDirectly) { if(contentTypeFirst) - return builder.type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ xss + return builder.type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ Alert else - return builder.entity(userControlled).type(MediaType.TEXT_HTML).build(); // $ xss + return builder.entity(userControlled).type(MediaType.TEXT_HTML).build(); // $ Alert } else { if(contentTypeFirst) { Response.ResponseBuilder builder2 = builder.type(MediaType.TEXT_HTML); - return builder2.entity(userControlled).build(); // $ xss + return builder2.entity(userControlled).build(); // $ Alert } else { Response.ResponseBuilder builder2 = builder.entity(userControlled); - return builder2.type(MediaType.TEXT_HTML).build(); // $ xss + return builder2.type(MediaType.TEXT_HTML).build(); // $ Alert } } } @@ -56,7 +56,7 @@ public class JaxXSS { } @GET - public static Response specificContentTypeSetterMethods(int route, boolean safeContentType, String userControlled) { + public static Response specificContentTypeSetterMethods(int route, boolean safeContentType, String userControlled) { // $ Source // Test the remarkably many routes to setting a content-type in Jax-RS, besides the ResponseBuilder.entity method used above: @@ -105,39 +105,39 @@ public class JaxXSS { else { if(route == 0) { // via ok, as a string literal: - return Response.ok("text/html").entity(userControlled).build(); // $ xss + return Response.ok("text/html").entity(userControlled).build(); // $ Alert } else if(route == 1) { // via ok, as a string constant: - return Response.ok(MediaType.TEXT_HTML).entity(userControlled).build(); // $ xss + return Response.ok(MediaType.TEXT_HTML).entity(userControlled).build(); // $ Alert } else if(route == 2) { // via ok, as a MediaType constant: - return Response.ok(MediaType.TEXT_HTML_TYPE).entity(userControlled).build(); // $ xss + return Response.ok(MediaType.TEXT_HTML_TYPE).entity(userControlled).build(); // $ Alert } else if(route == 3) { // via ok, as a Variant, via constructor: - return Response.ok(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).entity(userControlled).build(); // $ xss + return Response.ok(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).entity(userControlled).build(); // $ Alert } else if(route == 4) { // via ok, as a Variant, via static method: - return Response.ok(Variant.mediaTypes(MediaType.TEXT_HTML_TYPE).build()).entity(userControlled).build(); // $ xss + return Response.ok(Variant.mediaTypes(MediaType.TEXT_HTML_TYPE).build()).entity(userControlled).build(); // $ Alert } else if(route == 5) { // via ok, as a Variant, via instance method: - return Response.ok(Variant.languages(Locale.UK).mediaTypes(MediaType.TEXT_HTML_TYPE).build()).entity(userControlled).build(); // $ xss + return Response.ok(Variant.languages(Locale.UK).mediaTypes(MediaType.TEXT_HTML_TYPE).build()).entity(userControlled).build(); // $ Alert } else if(route == 6) { // via builder variant, before entity: - return Response.ok().variant(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).entity(userControlled).build(); // $ xss + return Response.ok().variant(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).entity(userControlled).build(); // $ Alert } else if(route == 7) { // via builder variant, after entity: - return Response.ok().entity(userControlled).variant(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).build(); // $ xss + return Response.ok().entity(userControlled).variant(new Variant(MediaType.TEXT_HTML_TYPE, "language", "encoding")).build(); // $ Alert } else if(route == 8) { // provide entity via ok, then content-type via builder: - return Response.ok(userControlled).type(MediaType.TEXT_HTML_TYPE).build(); // $ xss + return Response.ok(userControlled).type(MediaType.TEXT_HTML_TYPE).build(); // $ Alert } } @@ -161,28 +161,28 @@ public class JaxXSS { } @GET @Produces(MediaType.TEXT_HTML) - public static Response methodContentTypeUnsafe(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public static Response methodContentTypeUnsafe(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @POST @Produces(MediaType.TEXT_HTML) - public static Response methodContentTypeUnsafePost(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public static Response methodContentTypeUnsafePost(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET @Produces("text/html") - public static Response methodContentTypeUnsafeStringLiteral(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public static Response methodContentTypeUnsafeStringLiteral(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET @Produces({MediaType.TEXT_HTML, MediaType.APPLICATION_JSON}) - public static Response methodContentTypeMaybeSafe(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public static Response methodContentTypeMaybeSafe(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET @Produces(MediaType.APPLICATION_JSON) - public static Response methodContentTypeSafeOverriddenWithUnsafe(String userControlled) { - return Response.ok().type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ xss + public static Response methodContentTypeSafeOverriddenWithUnsafe(String userControlled) { // $ Source + return Response.ok().type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ Alert } @GET @Produces(MediaType.TEXT_HTML) @@ -204,13 +204,13 @@ public class JaxXSS { } @GET @Produces({"text/html"}) - public Response overridesWithUnsafe(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public Response overridesWithUnsafe(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET - public Response overridesWithUnsafe2(String userControlled) { - return Response.ok().type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ xss + public Response overridesWithUnsafe2(String userControlled) { // $ Source + return Response.ok().type(MediaType.TEXT_HTML).entity(userControlled).build(); // $ Alert } } @@ -218,13 +218,13 @@ public class JaxXSS { @Produces({"text/html"}) public static class ClassContentTypeUnsafe { @GET - public Response test(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public Response test(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET - public String testDirectReturn(String userControlled) { - return userControlled; // $ xss + public String testDirectReturn(String userControlled) { // $ Source + return userControlled; // $ Alert } @GET @Produces({"application/json"}) @@ -239,13 +239,13 @@ public class JaxXSS { } @GET - public static Response entityWithNoMediaType(String userControlled) { - return Response.ok(userControlled).build(); // $ xss + public static Response entityWithNoMediaType(String userControlled) { // $ Source + return Response.ok(userControlled).build(); // $ Alert } @GET - public static String stringWithNoMediaType(String userControlled) { - return userControlled; // $ xss + public static String stringWithNoMediaType(String userControlled) { // $ Source + return userControlled; // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/JsfXSS.java b/java/ql/test/query-tests/security/CWE-079/semmle/tests/JsfXSS.java index 38df344dff2..f3efab3ddfe 100644 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/JsfXSS.java +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/JsfXSS.java @@ -18,7 +18,7 @@ public class JsfXSS extends Renderer { super.encodeBegin(facesContext, component); - Map requestParameters = facesContext.getExternalContext().getRequestParameterMap(); + Map requestParameters = facesContext.getExternalContext().getRequestParameterMap(); // $ Source String windowId = requestParameters.get("window_id"); ResponseWriter writer = facesContext.getResponseWriter(); @@ -26,7 +26,7 @@ public class JsfXSS extends Renderer writer.write("(function(){"); writer.write("dswh.init('" + windowId + "','" + "......" + "'," - + -1 + ",{"); // $ xss + + -1 + ",{"); // $ Alert writer.write("});"); writer.write("})();"); writer.write(""); @@ -57,13 +57,13 @@ public class JsfXSS extends Renderer { ExternalContext ec = facesContext.getExternalContext(); ResponseWriter writer = facesContext.getResponseWriter(); - writer.write(ec.getRequestParameterMap().keySet().iterator().next()); // $ xss - writer.write(ec.getRequestParameterNames().next()); // $ xss - writer.write(ec.getRequestParameterValuesMap().get("someKey")[0]); // $ xss - writer.write(ec.getRequestParameterValuesMap().keySet().iterator().next()); // $ xss - writer.write(ec.getRequestPathInfo()); // $ xss - writer.write(((Cookie)ec.getRequestCookieMap().get("someKey")).getName()); // $ xss - writer.write(ec.getRequestHeaderMap().get("someKey")); // $ xss - writer.write(ec.getRequestHeaderValuesMap().get("someKey")[0]); // $ xss + writer.write(ec.getRequestParameterMap().keySet().iterator().next()); // $ Alert + writer.write(ec.getRequestParameterNames().next()); // $ Alert + writer.write(ec.getRequestParameterValuesMap().get("someKey")[0]); // $ Alert + writer.write(ec.getRequestParameterValuesMap().keySet().iterator().next()); // $ Alert + writer.write(ec.getRequestPathInfo()); // $ Alert + writer.write(((Cookie)ec.getRequestCookieMap().get("someKey")).getName()); // $ Alert + writer.write(ec.getRequestHeaderMap().get("someKey")); // $ Alert + writer.write(ec.getRequestHeaderValuesMap().get("someKey")[0]); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/SpringXSS.java b/java/ql/test/query-tests/security/CWE-079/semmle/tests/SpringXSS.java index ff4957f3788..fd3a26bcf10 100644 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/SpringXSS.java +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/SpringXSS.java @@ -13,17 +13,17 @@ import java.util.Optional; public class SpringXSS { @GetMapping - public static ResponseEntity specificContentType(boolean safeContentType, boolean chainDirectly, String userControlled) { + public static ResponseEntity specificContentType(boolean safeContentType, boolean chainDirectly, String userControlled) { // $ Source ResponseEntity.BodyBuilder builder = ResponseEntity.ok(); if(!safeContentType) { if(chainDirectly) { - return builder.contentType(MediaType.TEXT_HTML).body(userControlled); // $ xss + return builder.contentType(MediaType.TEXT_HTML).body(userControlled); // $ Alert } else { ResponseEntity.BodyBuilder builder2 = builder.contentType(MediaType.TEXT_HTML); - return builder2.body(userControlled); // $ xss + return builder2.body(userControlled); // $ Alert } } else { @@ -59,23 +59,23 @@ public class SpringXSS { } @GetMapping(value = "/xyz", produces = MediaType.TEXT_HTML_VALUE) - public static ResponseEntity methodContentTypeUnsafe(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public static ResponseEntity methodContentTypeUnsafe(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/xyz", produces = "text/html") - public static ResponseEntity methodContentTypeUnsafeStringLiteral(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public static ResponseEntity methodContentTypeUnsafeStringLiteral(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/xyz", produces = {MediaType.TEXT_HTML_VALUE, MediaType.APPLICATION_JSON_VALUE}) - public static ResponseEntity methodContentTypeMaybeSafe(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public static ResponseEntity methodContentTypeMaybeSafe(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/xyz", produces = MediaType.APPLICATION_JSON_VALUE) - public static ResponseEntity methodContentTypeSafeOverriddenWithUnsafe(String userControlled) { - return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(userControlled); // $ xss + public static ResponseEntity methodContentTypeSafeOverriddenWithUnsafe(String userControlled) { // $ Source + return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(userControlled); // $ Alert } @GetMapping(value = "/xyz", produces = MediaType.TEXT_HTML_VALUE) @@ -84,17 +84,17 @@ public class SpringXSS { } @GetMapping(value = "/xyz", produces = {"text/html", "application/json"}) - public static ResponseEntity methodContentTypeMaybeSafeStringLiterals(String userControlled, int constructionMethod) { + public static ResponseEntity methodContentTypeMaybeSafeStringLiterals(String userControlled, int constructionMethod) { // $ Source // Also try out some alternative constructors for the ResponseEntity: switch(constructionMethod) { case 0: - return ResponseEntity.ok(userControlled); // $ xss + return ResponseEntity.ok(userControlled); // $ Alert case 1: - return ResponseEntity.of(Optional.of(userControlled)); // $ xss + return ResponseEntity.of(Optional.of(userControlled)); // $ Alert case 2: - return ResponseEntity.ok().body(userControlled); // $ xss + return ResponseEntity.ok().body(userControlled); // $ Alert case 3: - return new ResponseEntity(userControlled, HttpStatus.OK); // $ xss + return new ResponseEntity(userControlled, HttpStatus.OK); // $ Alert default: return null; } @@ -114,13 +114,13 @@ public class SpringXSS { } @GetMapping(value = "/xyz", produces = {"text/html"}) - public ResponseEntity overridesWithUnsafe(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public ResponseEntity overridesWithUnsafe(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/abc") - public ResponseEntity overridesWithUnsafe2(String userControlled) { - return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(userControlled); // $ xss + public ResponseEntity overridesWithUnsafe2(String userControlled) { // $ Source + return ResponseEntity.ok().contentType(MediaType.TEXT_HTML).body(userControlled); // $ Alert } } @@ -128,13 +128,13 @@ public class SpringXSS { @RequestMapping(produces = {"text/html"}) private static class ClassContentTypeUnsafe { @GetMapping(value = "/abc") - public ResponseEntity test(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public ResponseEntity test(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/abc") - public String testDirectReturn(String userControlled) { - return userControlled; // $ xss + public String testDirectReturn(String userControlled) { // $ Source + return userControlled; // $ Alert } @GetMapping(value = "/xyz", produces = {"application/json"}) @@ -149,13 +149,13 @@ public class SpringXSS { } @GetMapping(value = "/abc") - public static ResponseEntity entityWithNoMediaType(String userControlled) { - return ResponseEntity.ok(userControlled); // $ xss + public static ResponseEntity entityWithNoMediaType(String userControlled) { // $ Source + return ResponseEntity.ok(userControlled); // $ Alert } @GetMapping(value = "/abc") - public static String stringWithNoMediaType(String userControlled) { - return userControlled; // $ xss + public static String stringWithNoMediaType(String userControlled) { // $ Source + return userControlled; // $ Alert } @GetMapping(value = "/abc") diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.expected b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.expected index e69de29bb2d..fcd7fd0ff18 100644 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.expected +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.expected @@ -0,0 +1,336 @@ +#select +| JaxXSS.java:22:59:22:72 | userControlled | JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:22:59:22:72 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:15:120:15:140 | userControlled | user-provided value | +| JaxXSS.java:24:33:24:46 | userControlled | JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:24:33:24:46 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:15:120:15:140 | userControlled | user-provided value | +| JaxXSS.java:29:34:29:47 | userControlled | JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:29:34:29:47 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:15:120:15:140 | userControlled | user-provided value | +| JaxXSS.java:33:18:33:59 | build(...) | JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:33:18:33:59 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:15:120:15:140 | userControlled | user-provided value | +| JaxXSS.java:108:16:108:70 | build(...) | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:108:16:108:70 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:112:16:112:78 | build(...) | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:112:16:112:78 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:116:16:116:83 | build(...) | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:116:16:116:83 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:120:98:120:111 | userControlled | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:120:98:120:111 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:124:89:124:102 | userControlled | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:124:89:124:102 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:128:110:128:123 | userControlled | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:128:110:128:123 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:132:108:132:121 | userControlled | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:132:108:132:121 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:136:37:136:50 | userControlled | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:136:37:136:50 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:140:16:140:81 | build(...) | JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:140:16:140:81 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:59:95:59:115 | userControlled | user-provided value | +| JaxXSS.java:165:12:165:46 | build(...) | JaxXSS.java:164:50:164:70 | userControlled : String | JaxXSS.java:165:12:165:46 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:164:50:164:70 | userControlled | user-provided value | +| JaxXSS.java:170:12:170:46 | build(...) | JaxXSS.java:169:54:169:74 | userControlled : String | JaxXSS.java:170:12:170:46 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:169:54:169:74 | userControlled | user-provided value | +| JaxXSS.java:175:12:175:46 | build(...) | JaxXSS.java:174:63:174:83 | userControlled : String | JaxXSS.java:175:12:175:46 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:174:63:174:83 | userControlled | user-provided value | +| JaxXSS.java:180:12:180:46 | build(...) | JaxXSS.java:179:53:179:73 | userControlled : String | JaxXSS.java:180:12:180:46 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:179:53:179:73 | userControlled | user-provided value | +| JaxXSS.java:185:59:185:72 | userControlled | JaxXSS.java:184:68:184:88 | userControlled : String | JaxXSS.java:185:59:185:72 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:184:68:184:88 | userControlled | user-provided value | +| JaxXSS.java:208:14:208:48 | build(...) | JaxXSS.java:207:41:207:61 | userControlled : String | JaxXSS.java:208:14:208:48 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:207:41:207:61 | userControlled | user-provided value | +| JaxXSS.java:213:61:213:74 | userControlled | JaxXSS.java:212:42:212:62 | userControlled : String | JaxXSS.java:213:61:213:74 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:212:42:212:62 | userControlled | user-provided value | +| JaxXSS.java:222:14:222:48 | build(...) | JaxXSS.java:221:26:221:46 | userControlled : String | JaxXSS.java:222:14:222:48 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:221:26:221:46 | userControlled | user-provided value | +| JaxXSS.java:227:14:227:27 | userControlled | JaxXSS.java:226:36:226:56 | userControlled : String | JaxXSS.java:227:14:227:27 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:226:36:226:56 | userControlled | user-provided value | +| JaxXSS.java:243:12:243:46 | build(...) | JaxXSS.java:242:48:242:68 | userControlled : String | JaxXSS.java:243:12:243:46 | build(...) | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:242:48:242:68 | userControlled | user-provided value | +| JaxXSS.java:248:12:248:25 | userControlled | JaxXSS.java:247:46:247:66 | userControlled : String | JaxXSS.java:248:12:248:25 | userControlled | Cross-site scripting vulnerability due to a $@. | JaxXSS.java:247:46:247:66 | userControlled | user-provided value | +| JsfXSS.java:27:22:29:27 | ... + ... | JsfXSS.java:21:50:21:107 | getRequestParameterMap(...) : Map | JsfXSS.java:27:22:29:27 | ... + ... | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:21:50:21:107 | getRequestParameterMap(...) | user-provided value | +| JsfXSS.java:60:22:60:75 | next(...) | JsfXSS.java:60:22:60:48 | getRequestParameterMap(...) : Map | JsfXSS.java:60:22:60:75 | next(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:60:22:60:48 | getRequestParameterMap(...) | user-provided value | +| JsfXSS.java:61:22:61:57 | next(...) | JsfXSS.java:61:22:61:50 | getRequestParameterNames(...) : Iterator | JsfXSS.java:61:22:61:57 | next(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:61:22:61:50 | getRequestParameterNames(...) | user-provided value | +| JsfXSS.java:62:22:62:72 | ...[...] | JsfXSS.java:62:22:62:54 | getRequestParameterValuesMap(...) : Map | JsfXSS.java:62:22:62:72 | ...[...] | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:62:22:62:54 | getRequestParameterValuesMap(...) | user-provided value | +| JsfXSS.java:63:22:63:81 | next(...) | JsfXSS.java:63:22:63:54 | getRequestParameterValuesMap(...) : Map | JsfXSS.java:63:22:63:81 | next(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:63:22:63:54 | getRequestParameterValuesMap(...) | user-provided value | +| JsfXSS.java:64:22:64:44 | getRequestPathInfo(...) | JsfXSS.java:64:22:64:44 | getRequestPathInfo(...) | JsfXSS.java:64:22:64:44 | getRequestPathInfo(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:64:22:64:44 | getRequestPathInfo(...) | user-provided value | +| JsfXSS.java:65:22:65:80 | getName(...) | JsfXSS.java:65:22:65:80 | getName(...) | JsfXSS.java:65:22:65:80 | getName(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:65:22:65:80 | getName(...) | user-provided value | +| JsfXSS.java:66:22:66:60 | get(...) | JsfXSS.java:66:22:66:45 | getRequestHeaderMap(...) : Map | JsfXSS.java:66:22:66:60 | get(...) | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:66:22:66:45 | getRequestHeaderMap(...) | user-provided value | +| JsfXSS.java:67:22:67:69 | ...[...] | JsfXSS.java:67:22:67:51 | getRequestHeaderValuesMap(...) : Map | JsfXSS.java:67:22:67:69 | ...[...] | Cross-site scripting vulnerability due to a $@. | JsfXSS.java:67:22:67:51 | getRequestHeaderValuesMap(...) | user-provided value | +| SpringXSS.java:22:62:22:75 | userControlled | SpringXSS.java:16:108:16:128 | userControlled : String | SpringXSS.java:22:62:22:75 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:16:108:16:128 | userControlled | user-provided value | +| SpringXSS.java:26:30:26:43 | userControlled | SpringXSS.java:16:108:16:128 | userControlled : String | SpringXSS.java:26:30:26:43 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:16:108:16:128 | userControlled | user-provided value | +| SpringXSS.java:63:12:63:44 | ok(...) | SpringXSS.java:62:64:62:84 | userControlled : String | SpringXSS.java:63:12:63:44 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:62:64:62:84 | userControlled | user-provided value | +| SpringXSS.java:68:12:68:44 | ok(...) | SpringXSS.java:67:77:67:97 | userControlled : String | SpringXSS.java:68:12:68:44 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:67:77:67:97 | userControlled | user-provided value | +| SpringXSS.java:73:12:73:44 | ok(...) | SpringXSS.java:72:67:72:87 | userControlled : String | SpringXSS.java:73:12:73:44 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:72:67:72:87 | userControlled | user-provided value | +| SpringXSS.java:78:70:78:83 | userControlled | SpringXSS.java:77:82:77:102 | userControlled : String | SpringXSS.java:78:70:78:83 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:77:82:77:102 | userControlled | user-provided value | +| SpringXSS.java:91:14:91:46 | ok(...) | SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:91:14:91:46 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:87:81:87:101 | userControlled | user-provided value | +| SpringXSS.java:93:14:93:59 | of(...) | SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:93:14:93:59 | of(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:87:81:87:101 | userControlled | user-provided value | +| SpringXSS.java:95:14:95:53 | body(...) | SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:95:14:95:53 | body(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:87:81:87:101 | userControlled | user-provided value | +| SpringXSS.java:97:14:97:70 | new ResponseEntity(...) | SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:97:14:97:70 | new ResponseEntity(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:87:81:87:101 | userControlled | user-provided value | +| SpringXSS.java:118:14:118:46 | ok(...) | SpringXSS.java:117:55:117:75 | userControlled : String | SpringXSS.java:118:14:118:46 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:117:55:117:75 | userControlled | user-provided value | +| SpringXSS.java:123:72:123:85 | userControlled | SpringXSS.java:122:56:122:76 | userControlled : String | SpringXSS.java:123:72:123:85 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:122:56:122:76 | userControlled | user-provided value | +| SpringXSS.java:132:14:132:46 | ok(...) | SpringXSS.java:131:40:131:60 | userControlled : String | SpringXSS.java:132:14:132:46 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:131:40:131:60 | userControlled | user-provided value | +| SpringXSS.java:137:14:137:27 | userControlled | SpringXSS.java:136:36:136:56 | userControlled : String | SpringXSS.java:137:14:137:27 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:136:36:136:56 | userControlled | user-provided value | +| SpringXSS.java:153:12:153:44 | ok(...) | SpringXSS.java:152:62:152:82 | userControlled : String | SpringXSS.java:153:12:153:44 | ok(...) | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:152:62:152:82 | userControlled | user-provided value | +| SpringXSS.java:158:12:158:25 | userControlled | SpringXSS.java:157:46:157:66 | userControlled : String | SpringXSS.java:158:12:158:25 | userControlled | Cross-site scripting vulnerability due to a $@. | SpringXSS.java:157:46:157:66 | userControlled | user-provided value | +| XSS.java:19:12:19:77 | ... + ... | XSS.java:19:28:19:55 | getParameter(...) : String | XSS.java:19:12:19:77 | ... + ... | Cross-site scripting vulnerability due to a $@. | XSS.java:19:28:19:55 | getParameter(...) | user-provided value | +| XSS.java:34:30:34:87 | ... + ... | XSS.java:34:67:34:87 | getPathInfo(...) : String | XSS.java:34:30:34:87 | ... + ... | Cross-site scripting vulnerability due to a $@. | XSS.java:34:67:34:87 | getPathInfo(...) | user-provided value | +| XSS.java:37:36:37:67 | getBytes(...) | XSS.java:37:36:37:56 | getPathInfo(...) : String | XSS.java:37:36:37:67 | getBytes(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:37:36:37:56 | getPathInfo(...) | user-provided value | +| XSS.java:83:33:83:53 | getPathInfo(...) | XSS.java:83:33:83:53 | getPathInfo(...) | XSS.java:83:33:83:53 | getPathInfo(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:83:33:83:53 | getPathInfo(...) | user-provided value | +| XSS.java:88:33:88:53 | getPathInfo(...) | XSS.java:88:33:88:53 | getPathInfo(...) | XSS.java:88:33:88:53 | getPathInfo(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:88:33:88:53 | getPathInfo(...) | user-provided value | +| XSS.java:93:33:93:53 | getPathInfo(...) | XSS.java:93:33:93:53 | getPathInfo(...) | XSS.java:93:33:93:53 | getPathInfo(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:93:33:93:53 | getPathInfo(...) | user-provided value | +| XSS.java:100:39:100:70 | getBytes(...) | XSS.java:100:39:100:59 | getPathInfo(...) : String | XSS.java:100:39:100:70 | getBytes(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:100:39:100:59 | getPathInfo(...) | user-provided value | +| XSS.java:105:39:105:70 | getBytes(...) | XSS.java:105:39:105:59 | getPathInfo(...) : String | XSS.java:105:39:105:70 | getBytes(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:105:39:105:59 | getPathInfo(...) | user-provided value | +| XSS.java:110:39:110:70 | getBytes(...) | XSS.java:110:39:110:59 | getPathInfo(...) : String | XSS.java:110:39:110:70 | getBytes(...) | Cross-site scripting vulnerability due to a $@. | XSS.java:110:39:110:59 | getPathInfo(...) | user-provided value | +edges +| JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:22:59:22:72 | userControlled | provenance | | +| JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:24:33:24:46 | userControlled | provenance | | +| JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:29:34:29:47 | userControlled | provenance | | +| JaxXSS.java:15:120:15:140 | userControlled : String | JaxXSS.java:32:62:32:75 | userControlled : String | provenance | | +| JaxXSS.java:32:47:32:76 | entity(...) : ResponseBuilder | JaxXSS.java:33:18:33:25 | builder2 : ResponseBuilder | provenance | | +| JaxXSS.java:32:62:32:75 | userControlled : String | JaxXSS.java:32:47:32:76 | entity(...) : ResponseBuilder | provenance | MaD:17+MaD:18 | +| JaxXSS.java:33:18:33:25 | builder2 : ResponseBuilder | JaxXSS.java:33:18:33:51 | type(...) : ResponseBuilder | provenance | MaD:19 | +| JaxXSS.java:33:18:33:51 | type(...) : ResponseBuilder | JaxXSS.java:33:18:33:59 | build(...) | provenance | MaD:16 | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:108:48:108:61 | userControlled : String | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:112:56:112:69 | userControlled : String | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:116:61:116:74 | userControlled : String | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:120:98:120:111 | userControlled | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:124:89:124:102 | userControlled | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:128:110:128:123 | userControlled | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:132:108:132:121 | userControlled | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:136:37:136:50 | userControlled | provenance | | +| JaxXSS.java:59:95:59:115 | userControlled : String | JaxXSS.java:140:28:140:41 | userControlled : String | provenance | | +| JaxXSS.java:108:16:108:62 | entity(...) : ResponseBuilder | JaxXSS.java:108:16:108:70 | build(...) | provenance | MaD:16 | +| JaxXSS.java:108:48:108:61 | userControlled : String | JaxXSS.java:108:16:108:62 | entity(...) : ResponseBuilder | provenance | MaD:17+MaD:18 | +| JaxXSS.java:112:16:112:70 | entity(...) : ResponseBuilder | JaxXSS.java:112:16:112:78 | build(...) | provenance | MaD:16 | +| JaxXSS.java:112:56:112:69 | userControlled : String | JaxXSS.java:112:16:112:70 | entity(...) : ResponseBuilder | provenance | MaD:17+MaD:18 | +| JaxXSS.java:116:16:116:75 | entity(...) : ResponseBuilder | JaxXSS.java:116:16:116:83 | build(...) | provenance | MaD:16 | +| JaxXSS.java:116:61:116:74 | userControlled : String | JaxXSS.java:116:16:116:75 | entity(...) : ResponseBuilder | provenance | MaD:17+MaD:18 | +| JaxXSS.java:140:16:140:42 | ok(...) : ResponseBuilder | JaxXSS.java:140:16:140:73 | type(...) : ResponseBuilder | provenance | MaD:19 | +| JaxXSS.java:140:16:140:73 | type(...) : ResponseBuilder | JaxXSS.java:140:16:140:81 | build(...) | provenance | MaD:16 | +| JaxXSS.java:140:28:140:41 | userControlled : String | JaxXSS.java:140:16:140:42 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:164:50:164:70 | userControlled : String | JaxXSS.java:165:24:165:37 | userControlled : String | provenance | | +| JaxXSS.java:165:12:165:38 | ok(...) : ResponseBuilder | JaxXSS.java:165:12:165:46 | build(...) | provenance | MaD:16 | +| JaxXSS.java:165:24:165:37 | userControlled : String | JaxXSS.java:165:12:165:38 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:169:54:169:74 | userControlled : String | JaxXSS.java:170:24:170:37 | userControlled : String | provenance | | +| JaxXSS.java:170:12:170:38 | ok(...) : ResponseBuilder | JaxXSS.java:170:12:170:46 | build(...) | provenance | MaD:16 | +| JaxXSS.java:170:24:170:37 | userControlled : String | JaxXSS.java:170:12:170:38 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:174:63:174:83 | userControlled : String | JaxXSS.java:175:24:175:37 | userControlled : String | provenance | | +| JaxXSS.java:175:12:175:38 | ok(...) : ResponseBuilder | JaxXSS.java:175:12:175:46 | build(...) | provenance | MaD:16 | +| JaxXSS.java:175:24:175:37 | userControlled : String | JaxXSS.java:175:12:175:38 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:179:53:179:73 | userControlled : String | JaxXSS.java:180:24:180:37 | userControlled : String | provenance | | +| JaxXSS.java:180:12:180:38 | ok(...) : ResponseBuilder | JaxXSS.java:180:12:180:46 | build(...) | provenance | MaD:16 | +| JaxXSS.java:180:24:180:37 | userControlled : String | JaxXSS.java:180:12:180:38 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:184:68:184:88 | userControlled : String | JaxXSS.java:185:59:185:72 | userControlled | provenance | | +| JaxXSS.java:207:41:207:61 | userControlled : String | JaxXSS.java:208:26:208:39 | userControlled : String | provenance | | +| JaxXSS.java:208:14:208:40 | ok(...) : ResponseBuilder | JaxXSS.java:208:14:208:48 | build(...) | provenance | MaD:16 | +| JaxXSS.java:208:26:208:39 | userControlled : String | JaxXSS.java:208:14:208:40 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:212:42:212:62 | userControlled : String | JaxXSS.java:213:61:213:74 | userControlled | provenance | | +| JaxXSS.java:221:26:221:46 | userControlled : String | JaxXSS.java:222:26:222:39 | userControlled : String | provenance | | +| JaxXSS.java:222:14:222:40 | ok(...) : ResponseBuilder | JaxXSS.java:222:14:222:48 | build(...) | provenance | MaD:16 | +| JaxXSS.java:222:26:222:39 | userControlled : String | JaxXSS.java:222:14:222:40 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:226:36:226:56 | userControlled : String | JaxXSS.java:227:14:227:27 | userControlled | provenance | | +| JaxXSS.java:242:48:242:68 | userControlled : String | JaxXSS.java:243:24:243:37 | userControlled : String | provenance | | +| JaxXSS.java:243:12:243:38 | ok(...) : ResponseBuilder | JaxXSS.java:243:12:243:46 | build(...) | provenance | MaD:16 | +| JaxXSS.java:243:24:243:37 | userControlled : String | JaxXSS.java:243:12:243:38 | ok(...) : ResponseBuilder | provenance | MaD:20 | +| JaxXSS.java:247:46:247:66 | userControlled : String | JaxXSS.java:248:12:248:25 | userControlled | provenance | | +| JsfXSS.java:21:50:21:107 | getRequestParameterMap(...) : Map | JsfXSS.java:22:27:22:43 | requestParameters : Map | provenance | Src:MaD:5 | +| JsfXSS.java:22:27:22:43 | requestParameters : Map | JsfXSS.java:22:27:22:60 | get(...) : String | provenance | MaD:13 | +| JsfXSS.java:22:27:22:60 | get(...) : String | JsfXSS.java:27:22:29:27 | ... + ... | provenance | Sink:MaD:2 | +| JsfXSS.java:60:22:60:48 | getRequestParameterMap(...) : Map | JsfXSS.java:60:22:60:57 | keySet(...) : Set [] : Object | provenance | Src:MaD:5 MaD:14 | +| JsfXSS.java:60:22:60:57 | keySet(...) : Set [] : Object | JsfXSS.java:60:22:60:68 | iterator(...) : Iterator [] : Object | provenance | MaD:10 | +| JsfXSS.java:60:22:60:68 | iterator(...) : Iterator [] : Object | JsfXSS.java:60:22:60:75 | next(...) | provenance | MaD:12 Sink:MaD:2 | +| JsfXSS.java:61:22:61:50 | getRequestParameterNames(...) : Iterator | JsfXSS.java:61:22:61:57 | next(...) | provenance | Src:MaD:6 MaD:12 Sink:MaD:2 | +| JsfXSS.java:62:22:62:54 | getRequestParameterValuesMap(...) : Map | JsfXSS.java:62:22:62:69 | get(...) : String[] | provenance | Src:MaD:7 MaD:13 | +| JsfXSS.java:62:22:62:69 | get(...) : String[] | JsfXSS.java:62:22:62:72 | ...[...] | provenance | Sink:MaD:2 | +| JsfXSS.java:63:22:63:54 | getRequestParameterValuesMap(...) : Map | JsfXSS.java:63:22:63:63 | keySet(...) : Set [] : Object | provenance | Src:MaD:7 MaD:14 | +| JsfXSS.java:63:22:63:63 | keySet(...) : Set [] : Object | JsfXSS.java:63:22:63:74 | iterator(...) : Iterator [] : Object | provenance | MaD:10 | +| JsfXSS.java:63:22:63:74 | iterator(...) : Iterator [] : Object | JsfXSS.java:63:22:63:81 | next(...) | provenance | MaD:12 Sink:MaD:2 | +| JsfXSS.java:66:22:66:45 | getRequestHeaderMap(...) : Map | JsfXSS.java:66:22:66:60 | get(...) | provenance | Src:MaD:3 MaD:13 Sink:MaD:2 | +| JsfXSS.java:67:22:67:51 | getRequestHeaderValuesMap(...) : Map | JsfXSS.java:67:22:67:66 | get(...) : String[] | provenance | Src:MaD:4 MaD:13 | +| JsfXSS.java:67:22:67:66 | get(...) : String[] | JsfXSS.java:67:22:67:69 | ...[...] | provenance | Sink:MaD:2 | +| SpringXSS.java:16:108:16:128 | userControlled : String | SpringXSS.java:22:62:22:75 | userControlled | provenance | | +| SpringXSS.java:16:108:16:128 | userControlled : String | SpringXSS.java:26:30:26:43 | userControlled | provenance | | +| SpringXSS.java:62:64:62:84 | userControlled : String | SpringXSS.java:63:12:63:44 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:62:64:62:84 | userControlled : String | SpringXSS.java:63:30:63:43 | userControlled : String | provenance | | +| SpringXSS.java:63:30:63:43 | userControlled : String | SpringXSS.java:63:12:63:44 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:67:77:67:97 | userControlled : String | SpringXSS.java:68:12:68:44 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:67:77:67:97 | userControlled : String | SpringXSS.java:68:30:68:43 | userControlled : String | provenance | | +| SpringXSS.java:68:30:68:43 | userControlled : String | SpringXSS.java:68:12:68:44 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:72:67:72:87 | userControlled : String | SpringXSS.java:73:12:73:44 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:72:67:72:87 | userControlled : String | SpringXSS.java:73:30:73:43 | userControlled : String | provenance | | +| SpringXSS.java:73:30:73:43 | userControlled : String | SpringXSS.java:73:12:73:44 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:77:82:77:102 | userControlled : String | SpringXSS.java:78:70:78:83 | userControlled | provenance | | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:91:14:91:46 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:91:32:91:45 | userControlled : String | provenance | | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:93:44:93:57 | userControlled : String | provenance | | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:95:14:95:53 | body(...) | provenance | SpringResponseEntityBodyBuilder | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:95:39:95:52 | userControlled : String | provenance | | +| SpringXSS.java:87:81:87:101 | userControlled : String | SpringXSS.java:97:41:97:54 | userControlled : String | provenance | | +| SpringXSS.java:91:32:91:45 | userControlled : String | SpringXSS.java:91:14:91:46 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:93:32:93:58 | of(...) : Optional [] : String | SpringXSS.java:93:14:93:59 | of(...) | provenance | MaD:23 | +| SpringXSS.java:93:44:93:57 | userControlled : String | SpringXSS.java:93:32:93:58 | of(...) : Optional [] : String | provenance | MaD:15 | +| SpringXSS.java:95:39:95:52 | userControlled : String | SpringXSS.java:95:14:95:53 | body(...) | provenance | MaD:21 | +| SpringXSS.java:97:41:97:54 | userControlled : String | SpringXSS.java:97:14:97:70 | new ResponseEntity(...) | provenance | MaD:22 | +| SpringXSS.java:117:55:117:75 | userControlled : String | SpringXSS.java:118:14:118:46 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:117:55:117:75 | userControlled : String | SpringXSS.java:118:32:118:45 | userControlled : String | provenance | | +| SpringXSS.java:118:32:118:45 | userControlled : String | SpringXSS.java:118:14:118:46 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:122:56:122:76 | userControlled : String | SpringXSS.java:123:72:123:85 | userControlled | provenance | | +| SpringXSS.java:131:40:131:60 | userControlled : String | SpringXSS.java:132:14:132:46 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:131:40:131:60 | userControlled : String | SpringXSS.java:132:32:132:45 | userControlled : String | provenance | | +| SpringXSS.java:132:32:132:45 | userControlled : String | SpringXSS.java:132:14:132:46 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:136:36:136:56 | userControlled : String | SpringXSS.java:137:14:137:27 | userControlled | provenance | | +| SpringXSS.java:152:62:152:82 | userControlled : String | SpringXSS.java:153:12:153:44 | ok(...) | provenance | SpringResponseEntity | +| SpringXSS.java:152:62:152:82 | userControlled : String | SpringXSS.java:153:30:153:43 | userControlled : String | provenance | | +| SpringXSS.java:153:30:153:43 | userControlled : String | SpringXSS.java:153:12:153:44 | ok(...) | provenance | MaD:24 | +| SpringXSS.java:157:46:157:66 | userControlled : String | SpringXSS.java:158:12:158:25 | userControlled | provenance | | +| XSS.java:19:28:19:55 | getParameter(...) : String | XSS.java:19:12:19:77 | ... + ... | provenance | Src:MaD:9 Sink:MaD:1 | +| XSS.java:34:67:34:87 | getPathInfo(...) : String | XSS.java:34:30:34:87 | ... + ... | provenance | Src:MaD:8 Sink:MaD:1 | +| XSS.java:37:36:37:56 | getPathInfo(...) : String | XSS.java:37:36:37:67 | getBytes(...) | provenance | Src:MaD:8 MaD:11 | +| XSS.java:100:39:100:59 | getPathInfo(...) : String | XSS.java:100:39:100:70 | getBytes(...) | provenance | Src:MaD:8 MaD:11 | +| XSS.java:105:39:105:59 | getPathInfo(...) : String | XSS.java:105:39:105:70 | getBytes(...) | provenance | Src:MaD:8 MaD:11 | +| XSS.java:110:39:110:59 | getPathInfo(...) : String | XSS.java:110:39:110:70 | getBytes(...) | provenance | Src:MaD:8 MaD:11 | +models +| 1 | Sink: java.io; PrintWriter; false; print; ; ; Argument[0]; file-content-store; manual | +| 2 | Sink: java.io; Writer; true; write; ; ; Argument[0]; file-content-store; manual | +| 3 | Source: javax.faces.context; ExternalContext; true; getRequestHeaderMap; (); ; ReturnValue; remote; manual | +| 4 | Source: javax.faces.context; ExternalContext; true; getRequestHeaderValuesMap; (); ; ReturnValue; remote; manual | +| 5 | Source: javax.faces.context; ExternalContext; true; getRequestParameterMap; (); ; ReturnValue; remote; manual | +| 6 | Source: javax.faces.context; ExternalContext; true; getRequestParameterNames; (); ; ReturnValue; remote; manual | +| 7 | Source: javax.faces.context; ExternalContext; true; getRequestParameterValuesMap; (); ; ReturnValue; remote; manual | +| 8 | Source: javax.servlet.http; HttpServletRequest; false; getPathInfo; (); ; ReturnValue; remote; manual | +| 9 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 10 | Summary: java.lang; Iterable; true; iterator; (); ; Argument[this].Element; ReturnValue.Element; value; manual | +| 11 | Summary: java.lang; String; false; getBytes; ; ; Argument[this]; ReturnValue; taint; manual | +| 12 | Summary: java.util; Iterator; true; next; ; ; Argument[this].Element; ReturnValue; value; manual | +| 13 | Summary: java.util; Map; true; get; ; ; Argument[this].MapValue; ReturnValue; value; manual | +| 14 | Summary: java.util; Map; true; keySet; (); ; Argument[this].MapKey; ReturnValue.Element; value; manual | +| 15 | Summary: java.util; Optional; false; of; ; ; Argument[0]; ReturnValue.Element; value; manual | +| 16 | Summary: javax.ws.rs.core; Response$ResponseBuilder; true; build; ; ; Argument[this]; ReturnValue; taint; manual | +| 17 | Summary: javax.ws.rs.core; Response$ResponseBuilder; true; entity; ; ; Argument[0]; Argument[this]; taint; manual | +| 18 | Summary: javax.ws.rs.core; Response$ResponseBuilder; true; entity; ; ; Argument[this]; ReturnValue; value; manual | +| 19 | Summary: javax.ws.rs.core; Response$ResponseBuilder; true; type; ; ; Argument[this]; ReturnValue; value; manual | +| 20 | Summary: javax.ws.rs.core; Response; false; ok; ; ; Argument[0]; ReturnValue; taint; manual | +| 21 | Summary: org.springframework.http; ResponseEntity$BodyBuilder; true; body; (Object); ; Argument[0]; ReturnValue; taint; manual | +| 22 | Summary: org.springframework.http; ResponseEntity; true; ResponseEntity; (Object,HttpStatus); ; Argument[0]; Argument[this]; taint; manual | +| 23 | Summary: org.springframework.http; ResponseEntity; true; of; (Optional); ; Argument[0].Element; ReturnValue; taint; manual | +| 24 | Summary: org.springframework.http; ResponseEntity; true; ok; (Object); ; Argument[0]; ReturnValue; taint; manual | +nodes +| JaxXSS.java:15:120:15:140 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:22:59:22:72 | userControlled | semmle.label | userControlled | +| JaxXSS.java:24:33:24:46 | userControlled | semmle.label | userControlled | +| JaxXSS.java:29:34:29:47 | userControlled | semmle.label | userControlled | +| JaxXSS.java:32:47:32:76 | entity(...) : ResponseBuilder | semmle.label | entity(...) : ResponseBuilder | +| JaxXSS.java:32:62:32:75 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:33:18:33:25 | builder2 : ResponseBuilder | semmle.label | builder2 : ResponseBuilder | +| JaxXSS.java:33:18:33:51 | type(...) : ResponseBuilder | semmle.label | type(...) : ResponseBuilder | +| JaxXSS.java:33:18:33:59 | build(...) | semmle.label | build(...) | +| JaxXSS.java:59:95:59:115 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:108:16:108:62 | entity(...) : ResponseBuilder | semmle.label | entity(...) : ResponseBuilder | +| JaxXSS.java:108:16:108:70 | build(...) | semmle.label | build(...) | +| JaxXSS.java:108:48:108:61 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:112:16:112:70 | entity(...) : ResponseBuilder | semmle.label | entity(...) : ResponseBuilder | +| JaxXSS.java:112:16:112:78 | build(...) | semmle.label | build(...) | +| JaxXSS.java:112:56:112:69 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:116:16:116:75 | entity(...) : ResponseBuilder | semmle.label | entity(...) : ResponseBuilder | +| JaxXSS.java:116:16:116:83 | build(...) | semmle.label | build(...) | +| JaxXSS.java:116:61:116:74 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:120:98:120:111 | userControlled | semmle.label | userControlled | +| JaxXSS.java:124:89:124:102 | userControlled | semmle.label | userControlled | +| JaxXSS.java:128:110:128:123 | userControlled | semmle.label | userControlled | +| JaxXSS.java:132:108:132:121 | userControlled | semmle.label | userControlled | +| JaxXSS.java:136:37:136:50 | userControlled | semmle.label | userControlled | +| JaxXSS.java:140:16:140:42 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:140:16:140:73 | type(...) : ResponseBuilder | semmle.label | type(...) : ResponseBuilder | +| JaxXSS.java:140:16:140:81 | build(...) | semmle.label | build(...) | +| JaxXSS.java:140:28:140:41 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:164:50:164:70 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:165:12:165:38 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:165:12:165:46 | build(...) | semmle.label | build(...) | +| JaxXSS.java:165:24:165:37 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:169:54:169:74 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:170:12:170:38 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:170:12:170:46 | build(...) | semmle.label | build(...) | +| JaxXSS.java:170:24:170:37 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:174:63:174:83 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:175:12:175:38 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:175:12:175:46 | build(...) | semmle.label | build(...) | +| JaxXSS.java:175:24:175:37 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:179:53:179:73 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:180:12:180:38 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:180:12:180:46 | build(...) | semmle.label | build(...) | +| JaxXSS.java:180:24:180:37 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:184:68:184:88 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:185:59:185:72 | userControlled | semmle.label | userControlled | +| JaxXSS.java:207:41:207:61 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:208:14:208:40 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:208:14:208:48 | build(...) | semmle.label | build(...) | +| JaxXSS.java:208:26:208:39 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:212:42:212:62 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:213:61:213:74 | userControlled | semmle.label | userControlled | +| JaxXSS.java:221:26:221:46 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:222:14:222:40 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:222:14:222:48 | build(...) | semmle.label | build(...) | +| JaxXSS.java:222:26:222:39 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:226:36:226:56 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:227:14:227:27 | userControlled | semmle.label | userControlled | +| JaxXSS.java:242:48:242:68 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:243:12:243:38 | ok(...) : ResponseBuilder | semmle.label | ok(...) : ResponseBuilder | +| JaxXSS.java:243:12:243:46 | build(...) | semmle.label | build(...) | +| JaxXSS.java:243:24:243:37 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:247:46:247:66 | userControlled : String | semmle.label | userControlled : String | +| JaxXSS.java:248:12:248:25 | userControlled | semmle.label | userControlled | +| JsfXSS.java:21:50:21:107 | getRequestParameterMap(...) : Map | semmle.label | getRequestParameterMap(...) : Map | +| JsfXSS.java:22:27:22:43 | requestParameters : Map | semmle.label | requestParameters : Map | +| JsfXSS.java:22:27:22:60 | get(...) : String | semmle.label | get(...) : String | +| JsfXSS.java:27:22:29:27 | ... + ... | semmle.label | ... + ... | +| JsfXSS.java:60:22:60:48 | getRequestParameterMap(...) : Map | semmle.label | getRequestParameterMap(...) : Map | +| JsfXSS.java:60:22:60:57 | keySet(...) : Set [] : Object | semmle.label | keySet(...) : Set [] : Object | +| JsfXSS.java:60:22:60:68 | iterator(...) : Iterator [] : Object | semmle.label | iterator(...) : Iterator [] : Object | +| JsfXSS.java:60:22:60:75 | next(...) | semmle.label | next(...) | +| JsfXSS.java:61:22:61:50 | getRequestParameterNames(...) : Iterator | semmle.label | getRequestParameterNames(...) : Iterator | +| JsfXSS.java:61:22:61:57 | next(...) | semmle.label | next(...) | +| JsfXSS.java:62:22:62:54 | getRequestParameterValuesMap(...) : Map | semmle.label | getRequestParameterValuesMap(...) : Map | +| JsfXSS.java:62:22:62:69 | get(...) : String[] | semmle.label | get(...) : String[] | +| JsfXSS.java:62:22:62:72 | ...[...] | semmle.label | ...[...] | +| JsfXSS.java:63:22:63:54 | getRequestParameterValuesMap(...) : Map | semmle.label | getRequestParameterValuesMap(...) : Map | +| JsfXSS.java:63:22:63:63 | keySet(...) : Set [] : Object | semmle.label | keySet(...) : Set [] : Object | +| JsfXSS.java:63:22:63:74 | iterator(...) : Iterator [] : Object | semmle.label | iterator(...) : Iterator [] : Object | +| JsfXSS.java:63:22:63:81 | next(...) | semmle.label | next(...) | +| JsfXSS.java:64:22:64:44 | getRequestPathInfo(...) | semmle.label | getRequestPathInfo(...) | +| JsfXSS.java:65:22:65:80 | getName(...) | semmle.label | getName(...) | +| JsfXSS.java:66:22:66:45 | getRequestHeaderMap(...) : Map | semmle.label | getRequestHeaderMap(...) : Map | +| JsfXSS.java:66:22:66:60 | get(...) | semmle.label | get(...) | +| JsfXSS.java:67:22:67:51 | getRequestHeaderValuesMap(...) : Map | semmle.label | getRequestHeaderValuesMap(...) : Map | +| JsfXSS.java:67:22:67:66 | get(...) : String[] | semmle.label | get(...) : String[] | +| JsfXSS.java:67:22:67:69 | ...[...] | semmle.label | ...[...] | +| SpringXSS.java:16:108:16:128 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:22:62:22:75 | userControlled | semmle.label | userControlled | +| SpringXSS.java:26:30:26:43 | userControlled | semmle.label | userControlled | +| SpringXSS.java:62:64:62:84 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:63:12:63:44 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:63:30:63:43 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:67:77:67:97 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:68:12:68:44 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:68:30:68:43 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:72:67:72:87 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:73:12:73:44 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:73:30:73:43 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:77:82:77:102 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:78:70:78:83 | userControlled | semmle.label | userControlled | +| SpringXSS.java:87:81:87:101 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:91:14:91:46 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:91:32:91:45 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:93:14:93:59 | of(...) | semmle.label | of(...) | +| SpringXSS.java:93:32:93:58 | of(...) : Optional [] : String | semmle.label | of(...) : Optional [] : String | +| SpringXSS.java:93:44:93:57 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:95:14:95:53 | body(...) | semmle.label | body(...) | +| SpringXSS.java:95:39:95:52 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:97:14:97:70 | new ResponseEntity(...) | semmle.label | new ResponseEntity(...) | +| SpringXSS.java:97:41:97:54 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:117:55:117:75 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:118:14:118:46 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:118:32:118:45 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:122:56:122:76 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:123:72:123:85 | userControlled | semmle.label | userControlled | +| SpringXSS.java:131:40:131:60 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:132:14:132:46 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:132:32:132:45 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:136:36:136:56 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:137:14:137:27 | userControlled | semmle.label | userControlled | +| SpringXSS.java:152:62:152:82 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:153:12:153:44 | ok(...) | semmle.label | ok(...) | +| SpringXSS.java:153:30:153:43 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:157:46:157:66 | userControlled : String | semmle.label | userControlled : String | +| SpringXSS.java:158:12:158:25 | userControlled | semmle.label | userControlled | +| XSS.java:19:12:19:77 | ... + ... | semmle.label | ... + ... | +| XSS.java:19:28:19:55 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| XSS.java:34:30:34:87 | ... + ... | semmle.label | ... + ... | +| XSS.java:34:67:34:87 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | +| XSS.java:37:36:37:56 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | +| XSS.java:37:36:37:67 | getBytes(...) | semmle.label | getBytes(...) | +| XSS.java:83:33:83:53 | getPathInfo(...) | semmle.label | getPathInfo(...) | +| XSS.java:88:33:88:53 | getPathInfo(...) | semmle.label | getPathInfo(...) | +| XSS.java:93:33:93:53 | getPathInfo(...) | semmle.label | getPathInfo(...) | +| XSS.java:100:39:100:59 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | +| XSS.java:100:39:100:70 | getBytes(...) | semmle.label | getBytes(...) | +| XSS.java:105:39:105:59 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | +| XSS.java:105:39:105:70 | getBytes(...) | semmle.label | getBytes(...) | +| XSS.java:110:39:110:59 | getPathInfo(...) : String | semmle.label | getPathInfo(...) : String | +| XSS.java:110:39:110:70 | getBytes(...) | semmle.label | getBytes(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.java b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.java index 3584c45d8b2..13ae6b62e10 100644 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.java +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.java @@ -16,7 +16,7 @@ public class XSS extends HttpServlet { throws ServletException, IOException { // BAD: a request parameter is written directly to the Servlet response stream response.getWriter() - .print("The page \"" + request.getParameter("page") + "\" was not found."); // $ xss + .print("The page \"" + request.getParameter("page") + "\" was not found."); // $ Alert // GOOD: servlet API encodes the error message HTML for the HTML context response.sendError(HttpServletResponse.SC_NOT_FOUND, @@ -31,10 +31,10 @@ public class XSS extends HttpServlet { "The page \"" + capitalizeName(request.getParameter("page")) + "\" was not found."); // BAD: outputting the path of the resource - response.getWriter().print("The path section of the URL was " + request.getPathInfo()); // $ xss + response.getWriter().print("The path section of the URL was " + request.getPathInfo()); // $ Alert // BAD: typical XSS, this time written to an OutputStream instead of a Writer - response.getOutputStream().write(request.getPathInfo().getBytes()); // $ xss + response.getOutputStream().write(request.getPathInfo().getBytes()); // $ Alert // GOOD: sanitizer response.getOutputStream().write(hudson.Util.escape(request.getPathInfo()).getBytes()); // safe @@ -80,34 +80,34 @@ public class XSS extends HttpServlet { if(setContentMethod == 0) { // BAD: set content-type to something that is not safe response.setContentType("text/html"); - response.getWriter().print(request.getPathInfo()); // $ xss + response.getWriter().print(request.getPathInfo()); // $ Alert } else if(setContentMethod == 1) { // BAD: set content-type to something that is not safe response.setHeader("Content-Type", "text/html"); - response.getWriter().print(request.getPathInfo()); // $ xss + response.getWriter().print(request.getPathInfo()); // $ Alert } else { // BAD: set content-type to something that is not safe response.addHeader("Content-Type", "text/html"); - response.getWriter().print(request.getPathInfo()); // $ xss + response.getWriter().print(request.getPathInfo()); // $ Alert } } else { if(setContentMethod == 0) { // BAD: set content-type to something that is not safe response.setContentType("text/html"); - response.getOutputStream().write(request.getPathInfo().getBytes()); // $ xss + response.getOutputStream().write(request.getPathInfo().getBytes()); // $ Alert } else if(setContentMethod == 1) { // BAD: set content-type to something that is not safe response.setHeader("Content-Type", "text/html"); - response.getOutputStream().write(request.getPathInfo().getBytes()); // $ xss + response.getOutputStream().write(request.getPathInfo().getBytes()); // $ Alert } else { // BAD: set content-type to something that is not safe response.addHeader("Content-Type", "text/html"); - response.getOutputStream().write(request.getPathInfo().getBytes()); // $ xss + response.getOutputStream().write(request.getPathInfo().getBytes()); // $ Alert } } } diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.ql b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.ql deleted file mode 100644 index 271488ffb1f..00000000000 --- a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.XssQuery -import utils.test.InlineExpectationsTest - -module XssTest implements TestSig { - string getARelevantTag() { result = "xss" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "xss" and - exists(DataFlow::Node sink | XssFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.qlref b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.qlref new file mode 100644 index 00000000000..bff2f2538a2 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-079/semmle/tests/XSS.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-079/XSS.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 1cc91e964d44ae4b0815432a92ce855ab7b96157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 11:57:08 +0200 Subject: [PATCH 268/340] Java: convert GroovyInjection test to .qlref --- .../GroovyClassLoaderTest.java | 25 +- .../GroovyCompilationUnitTest.java | 36 +- .../{ => GroovyInjection}/GroovyEvalTest.java | 21 +- .../GroovyInjectionTest.expected | 327 ++++++++++++++++++ .../GroovyInjection/GroovyInjectionTest.qlref | 4 + .../GroovyShellTest.java | 81 +++-- .../TemplateEngineTest.java | 10 +- .../security/CWE-094/GroovyInjection/options | 1 + .../CWE-094/GroovyInjectionTest.expected | 0 .../security/CWE-094/GroovyInjectionTest.ql | 20 -- 10 files changed, 417 insertions(+), 108 deletions(-) rename java/ql/test/query-tests/security/CWE-094/{ => GroovyInjection}/GroovyClassLoaderTest.java (74%) rename java/ql/test/query-tests/security/CWE-094/{ => GroovyInjection}/GroovyCompilationUnitTest.java (84%) rename java/ql/test/query-tests/security/CWE-094/{ => GroovyInjection}/GroovyEvalTest.java (59%) create mode 100644 java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected create mode 100644 java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.qlref rename java/ql/test/query-tests/security/CWE-094/{ => GroovyInjection}/GroovyShellTest.java (66%) rename java/ql/test/query-tests/security/CWE-094/{ => GroovyInjection}/TemplateEngineTest.java (72%) create mode 100644 java/ql/test/query-tests/security/CWE-094/GroovyInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.ql diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyClassLoaderTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyClassLoaderTest.java similarity index 74% rename from java/ql/test/query-tests/security/CWE-094/GroovyClassLoaderTest.java rename to java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyClassLoaderTest.java index 2ded64caaf6..ff7d73f16bd 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyClassLoaderTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyClassLoaderTest.java @@ -14,42 +14,41 @@ public class GroovyClassLoaderTest extends HttpServlet { throws ServletException, IOException { // "groovy.lang;GroovyClassLoader;false;parseClass;(GroovyCodeSource);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); GroovyCodeSource gcs = new GroovyCodeSource(script, "test", "Test"); - classLoader.parseClass(gcs); // $hasGroovyInjection + classLoader.parseClass(gcs); // $ Alert } // "groovy.lang;GroovyClassLoader;false;parseClass;(GroovyCodeSource,boolean);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); GroovyCodeSource gcs = new GroovyCodeSource(script, "test", "Test"); - classLoader.parseClass(gcs, true); // $hasGroovyInjection + classLoader.parseClass(gcs, true); // $ Alert } // "groovy.lang;GroovyClassLoader;false;parseClass;(InputStream,String);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); - classLoader.parseClass(new ByteArrayInputStream(script.getBytes()), "test"); // $hasGroovyInjection + classLoader.parseClass(new ByteArrayInputStream(script.getBytes()), "test"); // $ Alert } // "groovy.lang;GroovyClassLoader;false;parseClass;(Reader,String);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); - classLoader.parseClass(new StringReader(script), "test"); // $hasGroovyInjection + classLoader.parseClass(new StringReader(script), "test"); // $ Alert } // "groovy.lang;GroovyClassLoader;false;parseClass;(String);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); - classLoader.parseClass(script); // $hasGroovyInjection + classLoader.parseClass(script); // $ Alert } // "groovy.lang;GroovyClassLoader;false;parseClass;(String,String);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source final GroovyClassLoader classLoader = new GroovyClassLoader(); - classLoader.parseClass(script, "test"); // $hasGroovyInjection + classLoader.parseClass(script, "test"); // $ Alert } } } - diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyCompilationUnitTest.java similarity index 84% rename from java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java rename to java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyCompilationUnitTest.java index f25e27e6893..a906d9fdc96 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyCompilationUnitTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyCompilationUnitTest.java @@ -18,8 +18,8 @@ public class GroovyCompilationUnitTest extends HttpServlet { // "org.codehaus.groovy.control;CompilationUnit;false;compile;;;Argument[this];groovy;manual" { CompilationUnit cu = new CompilationUnit(); - cu.addSource("test", request.getParameter("source")); - cu.compile(); // $hasGroovyInjection + cu.addSource("test", request.getParameter("source")); // $ Source + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); @@ -29,20 +29,20 @@ public class GroovyCompilationUnitTest extends HttpServlet { { CompilationUnit cu = new CompilationUnit(); cu.addSource("test", - new ByteArrayInputStream(request.getParameter("source").getBytes())); - cu.compile(); // $hasGroovyInjection + new ByteArrayInputStream(request.getParameter("source").getBytes())); // $ Source + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); - cu.addSource(new URL(request.getParameter("source"))); - cu.compile(); // $hasGroovyInjection + cu.addSource(new URL(request.getParameter("source"))); // $ Source + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); SourceUnit su = - new SourceUnit("test", request.getParameter("source"), null, null, null); + new SourceUnit("test", request.getParameter("source"), null, null, null); // $ Source cu.addSource(su); - cu.compile(); // $hasGroovyInjection + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); @@ -53,29 +53,29 @@ public class GroovyCompilationUnitTest extends HttpServlet { } { CompilationUnit cu = new CompilationUnit(); - StringReaderSource rs = new StringReaderSource(request.getParameter("source"), null); + StringReaderSource rs = new StringReaderSource(request.getParameter("source"), null); // $ Source SourceUnit su = new SourceUnit("test", rs, null, null, null); cu.addSource(su); - cu.compile(); // $hasGroovyInjection + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); SourceUnit su = - new SourceUnit(new URL(request.getParameter("source")), null, null, null); + new SourceUnit(new URL(request.getParameter("source")), null, null, null); // $ Source cu.addSource(su); - cu.compile(); // $hasGroovyInjection + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); - SourceUnit su = SourceUnit.create("test", request.getParameter("source")); + SourceUnit su = SourceUnit.create("test", request.getParameter("source")); // $ Source cu.addSource(su); - cu.compile(); // $hasGroovyInjection + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); - SourceUnit su = SourceUnit.create("test", request.getParameter("source"), 0); + SourceUnit su = SourceUnit.create("test", request.getParameter("source"), 0); // $ Source cu.addSource(su); - cu.compile(); // $hasGroovyInjection + cu.compile(); // $ Alert } { CompilationUnit cu = new CompilationUnit(); @@ -85,8 +85,8 @@ public class GroovyCompilationUnitTest extends HttpServlet { } { JavaAwareCompilationUnit cu = new JavaAwareCompilationUnit(); - cu.addSource("test", request.getParameter("source")); - cu.compile(); // $hasGroovyInjection + cu.addSource("test", request.getParameter("source")); // $ Source + cu.compile(); // $ Alert } { JavaStubCompilationUnit cu = new JavaStubCompilationUnit(null, null); diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyEvalTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyEvalTest.java similarity index 59% rename from java/ql/test/query-tests/security/CWE-094/GroovyEvalTest.java rename to java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyEvalTest.java index 3647a3346fa..3756cd10bfa 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyEvalTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyEvalTest.java @@ -11,30 +11,29 @@ public class GroovyEvalTest extends HttpServlet { throws ServletException, IOException { // "groovy.util;Eval;false;me;(String);;Argument[0];groovy;manual", { - String script = request.getParameter("script"); - Eval.me(script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + Eval.me(script); // $ Alert } // "groovy.util;Eval;false;me;(String,Object,String);;Argument[2];groovy;manual", { - String script = request.getParameter("script"); - Eval.me("test", "result", script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + Eval.me("test", "result", script); // $ Alert } // "groovy.util;Eval;false;x;(Object,String);;Argument[1];groovy;manual", { - String script = request.getParameter("script"); - Eval.x("result2", script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + Eval.x("result2", script); // $ Alert } // "groovy.util;Eval;false;xy;(Object,Object,String);;Argument[2];groovy;manual", { - String script = request.getParameter("script"); - Eval.xy("result3", "result4", script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + Eval.xy("result3", "result4", script); // $ Alert } // "groovy.util;Eval;false;xyz;(Object,Object,Object,String);;Argument[3];groovy;manual", { - String script = request.getParameter("script"); - Eval.xyz("result3", "result4", "aaa", script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + Eval.xyz("result3", "result4", "aaa", script); // $ Alert } } } - diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected new file mode 100644 index 00000000000..3a00c80a704 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.expected @@ -0,0 +1,327 @@ +#select +| GroovyClassLoaderTest.java:20:36:20:38 | gcs | GroovyClassLoaderTest.java:17:29:17:58 | getParameter(...) : String | GroovyClassLoaderTest.java:20:36:20:38 | gcs | Groovy script depends on a $@. | GroovyClassLoaderTest.java:17:29:17:58 | getParameter(...) | user-provided value | +| GroovyClassLoaderTest.java:27:36:27:38 | gcs | GroovyClassLoaderTest.java:24:29:24:58 | getParameter(...) : String | GroovyClassLoaderTest.java:27:36:27:38 | gcs | Groovy script depends on a $@. | GroovyClassLoaderTest.java:24:29:24:58 | getParameter(...) | user-provided value | +| GroovyClassLoaderTest.java:33:36:33:78 | new ByteArrayInputStream(...) | GroovyClassLoaderTest.java:31:29:31:58 | getParameter(...) : String | GroovyClassLoaderTest.java:33:36:33:78 | new ByteArrayInputStream(...) | Groovy script depends on a $@. | GroovyClassLoaderTest.java:31:29:31:58 | getParameter(...) | user-provided value | +| GroovyClassLoaderTest.java:39:36:39:59 | new StringReader(...) | GroovyClassLoaderTest.java:37:29:37:58 | getParameter(...) : String | GroovyClassLoaderTest.java:39:36:39:59 | new StringReader(...) | Groovy script depends on a $@. | GroovyClassLoaderTest.java:37:29:37:58 | getParameter(...) | user-provided value | +| GroovyClassLoaderTest.java:45:36:45:41 | script | GroovyClassLoaderTest.java:43:29:43:58 | getParameter(...) : String | GroovyClassLoaderTest.java:45:36:45:41 | script | Groovy script depends on a $@. | GroovyClassLoaderTest.java:43:29:43:58 | getParameter(...) | user-provided value | +| GroovyClassLoaderTest.java:51:36:51:41 | script | GroovyClassLoaderTest.java:49:29:49:58 | getParameter(...) : String | GroovyClassLoaderTest.java:51:36:51:41 | script | Groovy script depends on a $@. | GroovyClassLoaderTest.java:49:29:49:58 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:22:13:22:14 | cu | GroovyCompilationUnitTest.java:21:34:21:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:22:13:22:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:21:34:21:63 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:33:13:33:14 | cu | GroovyCompilationUnitTest.java:32:46:32:75 | getParameter(...) : String | GroovyCompilationUnitTest.java:33:13:33:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:32:46:32:75 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:38:13:38:14 | cu | GroovyCompilationUnitTest.java:37:34:37:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:38:13:38:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:37:34:37:63 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:45:13:45:14 | cu | GroovyCompilationUnitTest.java:43:44:43:73 | getParameter(...) : String | GroovyCompilationUnitTest.java:45:13:45:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:43:44:43:73 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:59:13:59:14 | cu | GroovyCompilationUnitTest.java:56:60:56:89 | getParameter(...) : String | GroovyCompilationUnitTest.java:59:13:59:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:56:60:56:89 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:66:13:66:14 | cu | GroovyCompilationUnitTest.java:64:44:64:73 | getParameter(...) : String | GroovyCompilationUnitTest.java:66:13:66:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:64:44:64:73 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:72:13:72:14 | cu | GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:72:13:72:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:78:13:78:14 | cu | GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:78:13:78:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) | user-provided value | +| GroovyCompilationUnitTest.java:89:13:89:14 | cu | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:89:13:89:14 | cu | Groovy script depends on a $@. | GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) | user-provided value | +| GroovyEvalTest.java:15:21:15:26 | script | GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | GroovyEvalTest.java:15:21:15:26 | script | Groovy script depends on a $@. | GroovyEvalTest.java:14:29:14:58 | getParameter(...) | user-provided value | +| GroovyEvalTest.java:20:39:20:44 | script | GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | GroovyEvalTest.java:20:39:20:44 | script | Groovy script depends on a $@. | GroovyEvalTest.java:19:29:19:58 | getParameter(...) | user-provided value | +| GroovyEvalTest.java:25:31:25:36 | script | GroovyEvalTest.java:24:29:24:58 | getParameter(...) : String | GroovyEvalTest.java:25:31:25:36 | script | Groovy script depends on a $@. | GroovyEvalTest.java:24:29:24:58 | getParameter(...) | user-provided value | +| GroovyEvalTest.java:31:43:31:48 | script | GroovyEvalTest.java:30:29:30:58 | getParameter(...) : String | GroovyEvalTest.java:31:43:31:48 | script | Groovy script depends on a $@. | GroovyEvalTest.java:30:29:30:58 | getParameter(...) | user-provided value | +| GroovyEvalTest.java:36:51:36:56 | script | GroovyEvalTest.java:35:29:35:58 | getParameter(...) : String | GroovyEvalTest.java:36:51:36:56 | script | Groovy script depends on a $@. | GroovyEvalTest.java:35:29:35:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:24:28:24:30 | gcs | GroovyShellTest.java:22:29:22:58 | getParameter(...) : String | GroovyShellTest.java:24:28:24:30 | gcs | Groovy script depends on a $@. | GroovyShellTest.java:22:29:22:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:31:28:31:33 | reader | GroovyShellTest.java:29:29:29:58 | getParameter(...) : String | GroovyShellTest.java:31:28:31:33 | reader | Groovy script depends on a $@. | GroovyShellTest.java:29:29:29:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:38:28:38:33 | reader | GroovyShellTest.java:36:29:36:58 | getParameter(...) : String | GroovyShellTest.java:38:28:38:33 | reader | Groovy script depends on a $@. | GroovyShellTest.java:36:29:36:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:44:28:44:33 | script | GroovyShellTest.java:43:29:43:58 | getParameter(...) : String | GroovyShellTest.java:44:28:44:33 | script | Groovy script depends on a $@. | GroovyShellTest.java:43:29:43:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:50:28:50:33 | script | GroovyShellTest.java:49:29:49:58 | getParameter(...) : String | GroovyShellTest.java:50:28:50:33 | script | Groovy script depends on a $@. | GroovyShellTest.java:49:29:49:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:56:28:56:33 | script | GroovyShellTest.java:55:29:55:58 | getParameter(...) : String | GroovyShellTest.java:56:28:56:33 | script | Groovy script depends on a $@. | GroovyShellTest.java:55:29:55:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:62:25:62:39 | new URI(...) | GroovyShellTest.java:61:29:61:58 | getParameter(...) : String | GroovyShellTest.java:62:25:62:39 | new URI(...) | Groovy script depends on a $@. | GroovyShellTest.java:61:29:61:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:70:25:70:30 | reader | GroovyShellTest.java:68:29:68:58 | getParameter(...) : String | GroovyShellTest.java:70:25:70:30 | reader | Groovy script depends on a $@. | GroovyShellTest.java:68:29:68:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:77:25:77:30 | reader | GroovyShellTest.java:75:29:75:58 | getParameter(...) : String | GroovyShellTest.java:77:25:77:30 | reader | Groovy script depends on a $@. | GroovyShellTest.java:75:29:75:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:83:25:83:30 | script | GroovyShellTest.java:82:29:82:58 | getParameter(...) : String | GroovyShellTest.java:83:25:83:30 | script | Groovy script depends on a $@. | GroovyShellTest.java:82:29:82:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:89:25:89:30 | script | GroovyShellTest.java:88:29:88:58 | getParameter(...) : String | GroovyShellTest.java:89:25:89:30 | script | Groovy script depends on a $@. | GroovyShellTest.java:88:29:88:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:95:25:95:39 | new URI(...) | GroovyShellTest.java:94:29:94:58 | getParameter(...) : String | GroovyShellTest.java:95:25:95:39 | new URI(...) | Groovy script depends on a $@. | GroovyShellTest.java:94:29:94:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:103:23:103:25 | gcs | GroovyShellTest.java:101:29:101:58 | getParameter(...) : String | GroovyShellTest.java:103:23:103:25 | gcs | Groovy script depends on a $@. | GroovyShellTest.java:101:29:101:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:110:23:110:25 | gcs | GroovyShellTest.java:108:29:108:58 | getParameter(...) : String | GroovyShellTest.java:110:23:110:25 | gcs | Groovy script depends on a $@. | GroovyShellTest.java:108:29:108:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:117:23:117:28 | reader | GroovyShellTest.java:115:29:115:58 | getParameter(...) : String | GroovyShellTest.java:117:23:117:28 | reader | Groovy script depends on a $@. | GroovyShellTest.java:115:29:115:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:124:23:124:28 | reader | GroovyShellTest.java:122:29:122:58 | getParameter(...) : String | GroovyShellTest.java:124:23:124:28 | reader | Groovy script depends on a $@. | GroovyShellTest.java:122:29:122:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:130:23:130:28 | script | GroovyShellTest.java:129:29:129:58 | getParameter(...) : String | GroovyShellTest.java:130:23:130:28 | script | Groovy script depends on a $@. | GroovyShellTest.java:129:29:129:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:136:23:136:28 | script | GroovyShellTest.java:135:29:135:58 | getParameter(...) : String | GroovyShellTest.java:136:23:136:28 | script | Groovy script depends on a $@. | GroovyShellTest.java:135:29:135:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:142:23:142:37 | new URI(...) | GroovyShellTest.java:141:29:141:58 | getParameter(...) : String | GroovyShellTest.java:142:23:142:37 | new URI(...) | Groovy script depends on a $@. | GroovyShellTest.java:141:29:141:58 | getParameter(...) | user-provided value | +| GroovyShellTest.java:149:23:149:37 | new URI(...) | GroovyShellTest.java:148:29:148:58 | getParameter(...) : String | GroovyShellTest.java:149:23:149:37 | new URI(...) | Groovy script depends on a $@. | GroovyShellTest.java:148:29:148:58 | getParameter(...) | user-provided value | +| TemplateEngineTest.java:22:35:22:64 | getParameter(...) | TemplateEngineTest.java:22:35:22:64 | getParameter(...) | TemplateEngineTest.java:22:35:22:64 | getParameter(...) | Groovy script depends on a $@. | TemplateEngineTest.java:22:35:22:64 | getParameter(...) | user-provided value | +| TemplateEngineTest.java:23:35:23:47 | (...)... | TemplateEngineTest.java:14:16:14:45 | getParameter(...) : String | TemplateEngineTest.java:23:35:23:47 | (...)... | Groovy script depends on a $@. | TemplateEngineTest.java:14:16:14:45 | getParameter(...) | user-provided value | +| TemplateEngineTest.java:24:35:24:49 | (...)... | TemplateEngineTest.java:14:16:14:45 | getParameter(...) : String | TemplateEngineTest.java:24:35:24:49 | (...)... | Groovy script depends on a $@. | TemplateEngineTest.java:14:16:14:45 | getParameter(...) | user-provided value | +| TemplateEngineTest.java:25:35:25:46 | (...)... | TemplateEngineTest.java:14:16:14:45 | getParameter(...) : String | TemplateEngineTest.java:25:35:25:46 | (...)... | Groovy script depends on a $@. | TemplateEngineTest.java:14:16:14:45 | getParameter(...) | user-provided value | +edges +| GroovyClassLoaderTest.java:17:29:17:58 | getParameter(...) : String | GroovyClassLoaderTest.java:19:57:19:62 | script : String | provenance | Src:MaD:33 | +| GroovyClassLoaderTest.java:19:36:19:79 | new GroovyCodeSource(...) : GroovyCodeSource | GroovyClassLoaderTest.java:20:36:20:38 | gcs | provenance | Sink:MaD:1 | +| GroovyClassLoaderTest.java:19:57:19:62 | script : String | GroovyClassLoaderTest.java:19:36:19:79 | new GroovyCodeSource(...) : GroovyCodeSource | provenance | Config | +| GroovyClassLoaderTest.java:24:29:24:58 | getParameter(...) : String | GroovyClassLoaderTest.java:26:57:26:62 | script : String | provenance | Src:MaD:33 | +| GroovyClassLoaderTest.java:26:36:26:79 | new GroovyCodeSource(...) : GroovyCodeSource | GroovyClassLoaderTest.java:27:36:27:38 | gcs | provenance | Sink:MaD:2 | +| GroovyClassLoaderTest.java:26:57:26:62 | script : String | GroovyClassLoaderTest.java:26:36:26:79 | new GroovyCodeSource(...) : GroovyCodeSource | provenance | Config | +| GroovyClassLoaderTest.java:31:29:31:58 | getParameter(...) : String | GroovyClassLoaderTest.java:33:61:33:66 | script : String | provenance | Src:MaD:33 | +| GroovyClassLoaderTest.java:33:61:33:66 | script : String | GroovyClassLoaderTest.java:33:61:33:77 | getBytes(...) : byte[] | provenance | MaD:36 | +| GroovyClassLoaderTest.java:33:61:33:77 | getBytes(...) : byte[] | GroovyClassLoaderTest.java:33:36:33:78 | new ByteArrayInputStream(...) | provenance | MaD:34 Sink:MaD:3 | +| GroovyClassLoaderTest.java:33:61:33:77 | getBytes(...) : byte[] | GroovyClassLoaderTest.java:33:36:33:78 | new ByteArrayInputStream(...) | provenance | inputStreamWrapper Sink:MaD:3 | +| GroovyClassLoaderTest.java:37:29:37:58 | getParameter(...) : String | GroovyClassLoaderTest.java:39:53:39:58 | script : String | provenance | Src:MaD:33 | +| GroovyClassLoaderTest.java:39:53:39:58 | script : String | GroovyClassLoaderTest.java:39:36:39:59 | new StringReader(...) | provenance | MaD:35 Sink:MaD:4 | +| GroovyClassLoaderTest.java:43:29:43:58 | getParameter(...) : String | GroovyClassLoaderTest.java:45:36:45:41 | script | provenance | Src:MaD:33 Sink:MaD:5 | +| GroovyClassLoaderTest.java:49:29:49:58 | getParameter(...) : String | GroovyClassLoaderTest.java:51:36:51:41 | script | provenance | Src:MaD:33 Sink:MaD:6 | +| GroovyCompilationUnitTest.java:21:13:21:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:22:13:22:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:21:34:21:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:21:13:21:14 | cu [post update] : CompilationUnit | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:31:13:31:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:33:13:33:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:32:21:32:87 | new ByteArrayInputStream(...) : ByteArrayInputStream | GroovyCompilationUnitTest.java:31:13:31:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:32:46:32:75 | getParameter(...) : String | GroovyCompilationUnitTest.java:32:46:32:86 | getBytes(...) : byte[] | provenance | Src:MaD:33 MaD:36 | +| GroovyCompilationUnitTest.java:32:46:32:86 | getBytes(...) : byte[] | GroovyCompilationUnitTest.java:32:21:32:87 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:34 | +| GroovyCompilationUnitTest.java:32:46:32:86 | getBytes(...) : byte[] | GroovyCompilationUnitTest.java:32:21:32:87 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | inputStreamWrapper | +| GroovyCompilationUnitTest.java:37:13:37:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:38:13:38:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:37:26:37:64 | new URL(...) : URL | GroovyCompilationUnitTest.java:37:13:37:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:37:34:37:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:37:26:37:64 | new URL(...) : URL | provenance | Src:MaD:33 MaD:38 | +| GroovyCompilationUnitTest.java:43:21:43:92 | new SourceUnit(...) : SourceUnit | GroovyCompilationUnitTest.java:44:26:44:27 | su : SourceUnit | provenance | | +| GroovyCompilationUnitTest.java:43:44:43:73 | getParameter(...) : String | GroovyCompilationUnitTest.java:43:21:43:92 | new SourceUnit(...) : SourceUnit | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:44:13:44:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:45:13:45:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:44:26:44:27 | su : SourceUnit | GroovyCompilationUnitTest.java:44:13:44:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:56:37:56:96 | new StringReaderSource(...) : StringReaderSource | GroovyCompilationUnitTest.java:57:52:57:53 | rs : StringReaderSource | provenance | | +| GroovyCompilationUnitTest.java:56:60:56:89 | getParameter(...) : String | GroovyCompilationUnitTest.java:56:37:56:96 | new StringReaderSource(...) : StringReaderSource | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:57:29:57:72 | new SourceUnit(...) : SourceUnit | GroovyCompilationUnitTest.java:58:26:58:27 | su : SourceUnit | provenance | | +| GroovyCompilationUnitTest.java:57:52:57:53 | rs : StringReaderSource | GroovyCompilationUnitTest.java:57:29:57:72 | new SourceUnit(...) : SourceUnit | provenance | Config | +| GroovyCompilationUnitTest.java:58:13:58:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:59:13:59:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:58:26:58:27 | su : SourceUnit | GroovyCompilationUnitTest.java:58:13:58:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:64:21:64:93 | new SourceUnit(...) : SourceUnit | GroovyCompilationUnitTest.java:65:26:65:27 | su : SourceUnit | provenance | | +| GroovyCompilationUnitTest.java:64:36:64:74 | new URL(...) : URL | GroovyCompilationUnitTest.java:64:21:64:93 | new SourceUnit(...) : SourceUnit | provenance | Config | +| GroovyCompilationUnitTest.java:64:44:64:73 | getParameter(...) : String | GroovyCompilationUnitTest.java:64:36:64:74 | new URL(...) : URL | provenance | Src:MaD:33 MaD:38 | +| GroovyCompilationUnitTest.java:65:13:65:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:66:13:66:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:65:26:65:27 | su : SourceUnit | GroovyCompilationUnitTest.java:65:13:65:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:70:29:70:85 | create(...) : SourceUnit | GroovyCompilationUnitTest.java:71:26:71:27 | su : SourceUnit | provenance | | +| GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:70:29:70:85 | create(...) : SourceUnit | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:71:13:71:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:72:13:72:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:71:26:71:27 | su : SourceUnit | GroovyCompilationUnitTest.java:71:13:71:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:76:29:76:88 | create(...) : SourceUnit | GroovyCompilationUnitTest.java:77:26:77:27 | su : SourceUnit | provenance | | +| GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) : String | GroovyCompilationUnitTest.java:76:29:76:88 | create(...) : SourceUnit | provenance | Src:MaD:33 Config | +| GroovyCompilationUnitTest.java:77:13:77:14 | cu [post update] : CompilationUnit | GroovyCompilationUnitTest.java:78:13:78:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:77:26:77:27 | su : SourceUnit | GroovyCompilationUnitTest.java:77:13:77:14 | cu [post update] : CompilationUnit | provenance | Config | +| GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | GroovyCompilationUnitTest.java:89:13:89:14 | cu | provenance | Sink:MaD:32 | +| GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | provenance | Src:MaD:33 Config | +| GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | GroovyEvalTest.java:15:21:15:26 | script | provenance | Src:MaD:33 Sink:MaD:27 | +| GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | GroovyEvalTest.java:20:39:20:44 | script | provenance | Src:MaD:33 Sink:MaD:28 | +| GroovyEvalTest.java:24:29:24:58 | getParameter(...) : String | GroovyEvalTest.java:25:31:25:36 | script | provenance | Src:MaD:33 Sink:MaD:29 | +| GroovyEvalTest.java:30:29:30:58 | getParameter(...) : String | GroovyEvalTest.java:31:43:31:48 | script | provenance | Src:MaD:33 Sink:MaD:30 | +| GroovyEvalTest.java:35:29:35:58 | getParameter(...) : String | GroovyEvalTest.java:36:51:36:56 | script | provenance | Src:MaD:33 Sink:MaD:31 | +| GroovyShellTest.java:22:29:22:58 | getParameter(...) : String | GroovyShellTest.java:23:57:23:62 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:23:36:23:79 | new GroovyCodeSource(...) : GroovyCodeSource | GroovyShellTest.java:24:28:24:30 | gcs | provenance | Sink:MaD:7 | +| GroovyShellTest.java:23:57:23:62 | script : String | GroovyShellTest.java:23:36:23:79 | new GroovyCodeSource(...) : GroovyCodeSource | provenance | Config | +| GroovyShellTest.java:29:29:29:58 | getParameter(...) : String | GroovyShellTest.java:30:46:30:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:30:29:30:52 | new StringReader(...) : StringReader | GroovyShellTest.java:31:28:31:33 | reader | provenance | Sink:MaD:8 | +| GroovyShellTest.java:30:46:30:51 | script : String | GroovyShellTest.java:30:29:30:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:36:29:36:58 | getParameter(...) : String | GroovyShellTest.java:37:46:37:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:37:29:37:52 | new StringReader(...) : StringReader | GroovyShellTest.java:38:28:38:33 | reader | provenance | Sink:MaD:9 | +| GroovyShellTest.java:37:46:37:51 | script : String | GroovyShellTest.java:37:29:37:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:43:29:43:58 | getParameter(...) : String | GroovyShellTest.java:44:28:44:33 | script | provenance | Src:MaD:33 Sink:MaD:10 | +| GroovyShellTest.java:49:29:49:58 | getParameter(...) : String | GroovyShellTest.java:50:28:50:33 | script | provenance | Src:MaD:33 Sink:MaD:11 | +| GroovyShellTest.java:55:29:55:58 | getParameter(...) : String | GroovyShellTest.java:56:28:56:33 | script | provenance | Src:MaD:33 Sink:MaD:12 | +| GroovyShellTest.java:61:29:61:58 | getParameter(...) : String | GroovyShellTest.java:62:33:62:38 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:62:33:62:38 | script : String | GroovyShellTest.java:62:25:62:39 | new URI(...) | provenance | MaD:37 Sink:MaD:17 | +| GroovyShellTest.java:68:29:68:58 | getParameter(...) : String | GroovyShellTest.java:69:46:69:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:69:29:69:52 | new StringReader(...) : StringReader | GroovyShellTest.java:70:25:70:30 | reader | provenance | Sink:MaD:13 | +| GroovyShellTest.java:69:46:69:51 | script : String | GroovyShellTest.java:69:29:69:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:75:29:75:58 | getParameter(...) : String | GroovyShellTest.java:76:46:76:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:76:29:76:52 | new StringReader(...) : StringReader | GroovyShellTest.java:77:25:77:30 | reader | provenance | Sink:MaD:14 | +| GroovyShellTest.java:76:46:76:51 | script : String | GroovyShellTest.java:76:29:76:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:82:29:82:58 | getParameter(...) : String | GroovyShellTest.java:83:25:83:30 | script | provenance | Src:MaD:33 Sink:MaD:15 | +| GroovyShellTest.java:88:29:88:58 | getParameter(...) : String | GroovyShellTest.java:89:25:89:30 | script | provenance | Src:MaD:33 Sink:MaD:16 | +| GroovyShellTest.java:94:29:94:58 | getParameter(...) : String | GroovyShellTest.java:95:33:95:38 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:95:33:95:38 | script : String | GroovyShellTest.java:95:25:95:39 | new URI(...) | provenance | MaD:37 Sink:MaD:17 | +| GroovyShellTest.java:101:29:101:58 | getParameter(...) : String | GroovyShellTest.java:102:57:102:62 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:102:36:102:79 | new GroovyCodeSource(...) : GroovyCodeSource | GroovyShellTest.java:103:23:103:25 | gcs | provenance | Sink:MaD:19 | +| GroovyShellTest.java:102:57:102:62 | script : String | GroovyShellTest.java:102:36:102:79 | new GroovyCodeSource(...) : GroovyCodeSource | provenance | Config | +| GroovyShellTest.java:108:29:108:58 | getParameter(...) : String | GroovyShellTest.java:109:57:109:62 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:109:36:109:79 | new GroovyCodeSource(...) : GroovyCodeSource | GroovyShellTest.java:110:23:110:25 | gcs | provenance | Sink:MaD:18 | +| GroovyShellTest.java:109:57:109:62 | script : String | GroovyShellTest.java:109:36:109:79 | new GroovyCodeSource(...) : GroovyCodeSource | provenance | Config | +| GroovyShellTest.java:115:29:115:58 | getParameter(...) : String | GroovyShellTest.java:116:46:116:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:116:29:116:52 | new StringReader(...) : StringReader | GroovyShellTest.java:117:23:117:28 | reader | provenance | Sink:MaD:21 | +| GroovyShellTest.java:116:46:116:51 | script : String | GroovyShellTest.java:116:29:116:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:122:29:122:58 | getParameter(...) : String | GroovyShellTest.java:123:46:123:51 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:123:29:123:52 | new StringReader(...) : StringReader | GroovyShellTest.java:124:23:124:28 | reader | provenance | Sink:MaD:20 | +| GroovyShellTest.java:123:46:123:51 | script : String | GroovyShellTest.java:123:29:123:52 | new StringReader(...) : StringReader | provenance | MaD:35 | +| GroovyShellTest.java:129:29:129:58 | getParameter(...) : String | GroovyShellTest.java:130:23:130:28 | script | provenance | Src:MaD:33 Sink:MaD:23 | +| GroovyShellTest.java:135:29:135:58 | getParameter(...) : String | GroovyShellTest.java:136:23:136:28 | script | provenance | Src:MaD:33 Sink:MaD:22 | +| GroovyShellTest.java:141:29:141:58 | getParameter(...) : String | GroovyShellTest.java:142:31:142:36 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:142:31:142:36 | script : String | GroovyShellTest.java:142:23:142:37 | new URI(...) | provenance | MaD:37 Sink:MaD:25 | +| GroovyShellTest.java:148:29:148:58 | getParameter(...) : String | GroovyShellTest.java:149:31:149:36 | script : String | provenance | Src:MaD:33 | +| GroovyShellTest.java:149:31:149:36 | script : String | GroovyShellTest.java:149:23:149:37 | new URI(...) | provenance | MaD:37 Sink:MaD:24 | +| TemplateEngineTest.java:14:16:14:45 | getParameter(...) : String | TemplateEngineTest.java:20:29:20:43 | source(...) : String | provenance | Src:MaD:33 | +| TemplateEngineTest.java:20:29:20:43 | source(...) : String | TemplateEngineTest.java:23:35:23:47 | (...)... | provenance | Sink:MaD:26 | +| TemplateEngineTest.java:20:29:20:43 | source(...) : String | TemplateEngineTest.java:24:35:24:49 | (...)... | provenance | Sink:MaD:26 | +| TemplateEngineTest.java:20:29:20:43 | source(...) : String | TemplateEngineTest.java:25:35:25:46 | (...)... | provenance | Sink:MaD:26 | +models +| 1 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (GroovyCodeSource); ; Argument[0]; groovy-injection; manual | +| 2 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (GroovyCodeSource,boolean); ; Argument[0]; groovy-injection; manual | +| 3 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (InputStream,String); ; Argument[0]; groovy-injection; manual | +| 4 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (Reader,String); ; Argument[0]; groovy-injection; manual | +| 5 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (String); ; Argument[0]; groovy-injection; manual | +| 6 | Sink: groovy.lang; GroovyClassLoader; false; parseClass; (String,String); ; Argument[0]; groovy-injection; manual | +| 7 | Sink: groovy.lang; GroovyShell; false; evaluate; (GroovyCodeSource); ; Argument[0]; groovy-injection; manual | +| 8 | Sink: groovy.lang; GroovyShell; false; evaluate; (Reader); ; Argument[0]; groovy-injection; manual | +| 9 | Sink: groovy.lang; GroovyShell; false; evaluate; (Reader,String); ; Argument[0]; groovy-injection; manual | +| 10 | Sink: groovy.lang; GroovyShell; false; evaluate; (String); ; Argument[0]; groovy-injection; manual | +| 11 | Sink: groovy.lang; GroovyShell; false; evaluate; (String,String); ; Argument[0]; groovy-injection; manual | +| 12 | Sink: groovy.lang; GroovyShell; false; evaluate; (String,String,String); ; Argument[0]; groovy-injection; manual | +| 13 | Sink: groovy.lang; GroovyShell; false; parse; (Reader); ; Argument[0]; groovy-injection; manual | +| 14 | Sink: groovy.lang; GroovyShell; false; parse; (Reader,String); ; Argument[0]; groovy-injection; manual | +| 15 | Sink: groovy.lang; GroovyShell; false; parse; (String); ; Argument[0]; groovy-injection; manual | +| 16 | Sink: groovy.lang; GroovyShell; false; parse; (String,String); ; Argument[0]; groovy-injection; manual | +| 17 | Sink: groovy.lang; GroovyShell; false; parse; (URI); ; Argument[0]; groovy-injection; manual | +| 18 | Sink: groovy.lang; GroovyShell; false; run; (GroovyCodeSource,List); ; Argument[0]; groovy-injection; manual | +| 19 | Sink: groovy.lang; GroovyShell; false; run; (GroovyCodeSource,String[]); ; Argument[0]; groovy-injection; manual | +| 20 | Sink: groovy.lang; GroovyShell; false; run; (Reader,String,List); ; Argument[0]; groovy-injection; manual | +| 21 | Sink: groovy.lang; GroovyShell; false; run; (Reader,String,String[]); ; Argument[0]; groovy-injection; manual | +| 22 | Sink: groovy.lang; GroovyShell; false; run; (String,String,List); ; Argument[0]; groovy-injection; manual | +| 23 | Sink: groovy.lang; GroovyShell; false; run; (String,String,String[]); ; Argument[0]; groovy-injection; manual | +| 24 | Sink: groovy.lang; GroovyShell; false; run; (URI,List); ; Argument[0]; groovy-injection; manual | +| 25 | Sink: groovy.lang; GroovyShell; false; run; (URI,String[]); ; Argument[0]; groovy-injection; manual | +| 26 | Sink: groovy.text; TemplateEngine; true; createTemplate; ; ; Argument[0]; groovy-injection; manual | +| 27 | Sink: groovy.util; Eval; false; me; (String); ; Argument[0]; groovy-injection; manual | +| 28 | Sink: groovy.util; Eval; false; me; (String,Object,String); ; Argument[2]; groovy-injection; manual | +| 29 | Sink: groovy.util; Eval; false; x; (Object,String); ; Argument[1]; groovy-injection; manual | +| 30 | Sink: groovy.util; Eval; false; xy; (Object,Object,String); ; Argument[2]; groovy-injection; manual | +| 31 | Sink: groovy.util; Eval; false; xyz; (Object,Object,Object,String); ; Argument[3]; groovy-injection; manual | +| 32 | Sink: org.codehaus.groovy.control; CompilationUnit; false; compile; ; ; Argument[this]; groovy-injection; manual | +| 33 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 34 | Summary: java.io; ByteArrayInputStream; false; ByteArrayInputStream; ; ; Argument[0]; Argument[this]; taint; manual | +| 35 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 36 | Summary: java.lang; String; false; getBytes; ; ; Argument[this]; ReturnValue; taint; manual | +| 37 | Summary: java.net; URI; false; URI; (String); ; Argument[0]; Argument[this]; taint; manual | +| 38 | Summary: java.net; URL; false; URL; (String); ; Argument[0]; Argument[this]; taint; manual | +nodes +| GroovyClassLoaderTest.java:17:29:17:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:19:36:19:79 | new GroovyCodeSource(...) : GroovyCodeSource | semmle.label | new GroovyCodeSource(...) : GroovyCodeSource | +| GroovyClassLoaderTest.java:19:57:19:62 | script : String | semmle.label | script : String | +| GroovyClassLoaderTest.java:20:36:20:38 | gcs | semmle.label | gcs | +| GroovyClassLoaderTest.java:24:29:24:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:26:36:26:79 | new GroovyCodeSource(...) : GroovyCodeSource | semmle.label | new GroovyCodeSource(...) : GroovyCodeSource | +| GroovyClassLoaderTest.java:26:57:26:62 | script : String | semmle.label | script : String | +| GroovyClassLoaderTest.java:27:36:27:38 | gcs | semmle.label | gcs | +| GroovyClassLoaderTest.java:31:29:31:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:33:36:33:78 | new ByteArrayInputStream(...) | semmle.label | new ByteArrayInputStream(...) | +| GroovyClassLoaderTest.java:33:61:33:66 | script : String | semmle.label | script : String | +| GroovyClassLoaderTest.java:33:61:33:77 | getBytes(...) : byte[] | semmle.label | getBytes(...) : byte[] | +| GroovyClassLoaderTest.java:37:29:37:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:39:36:39:59 | new StringReader(...) | semmle.label | new StringReader(...) | +| GroovyClassLoaderTest.java:39:53:39:58 | script : String | semmle.label | script : String | +| GroovyClassLoaderTest.java:43:29:43:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:45:36:45:41 | script | semmle.label | script | +| GroovyClassLoaderTest.java:49:29:49:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyClassLoaderTest.java:51:36:51:41 | script | semmle.label | script | +| GroovyCompilationUnitTest.java:21:13:21:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:21:34:21:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:22:13:22:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:31:13:31:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:32:21:32:87 | new ByteArrayInputStream(...) : ByteArrayInputStream | semmle.label | new ByteArrayInputStream(...) : ByteArrayInputStream | +| GroovyCompilationUnitTest.java:32:46:32:75 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:32:46:32:86 | getBytes(...) : byte[] | semmle.label | getBytes(...) : byte[] | +| GroovyCompilationUnitTest.java:33:13:33:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:37:13:37:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:37:26:37:64 | new URL(...) : URL | semmle.label | new URL(...) : URL | +| GroovyCompilationUnitTest.java:37:34:37:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:38:13:38:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:43:21:43:92 | new SourceUnit(...) : SourceUnit | semmle.label | new SourceUnit(...) : SourceUnit | +| GroovyCompilationUnitTest.java:43:44:43:73 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:44:13:44:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:44:26:44:27 | su : SourceUnit | semmle.label | su : SourceUnit | +| GroovyCompilationUnitTest.java:45:13:45:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:56:37:56:96 | new StringReaderSource(...) : StringReaderSource | semmle.label | new StringReaderSource(...) : StringReaderSource | +| GroovyCompilationUnitTest.java:56:60:56:89 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:57:29:57:72 | new SourceUnit(...) : SourceUnit | semmle.label | new SourceUnit(...) : SourceUnit | +| GroovyCompilationUnitTest.java:57:52:57:53 | rs : StringReaderSource | semmle.label | rs : StringReaderSource | +| GroovyCompilationUnitTest.java:58:13:58:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:58:26:58:27 | su : SourceUnit | semmle.label | su : SourceUnit | +| GroovyCompilationUnitTest.java:59:13:59:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:64:21:64:93 | new SourceUnit(...) : SourceUnit | semmle.label | new SourceUnit(...) : SourceUnit | +| GroovyCompilationUnitTest.java:64:36:64:74 | new URL(...) : URL | semmle.label | new URL(...) : URL | +| GroovyCompilationUnitTest.java:64:44:64:73 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:65:13:65:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:65:26:65:27 | su : SourceUnit | semmle.label | su : SourceUnit | +| GroovyCompilationUnitTest.java:66:13:66:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:70:29:70:85 | create(...) : SourceUnit | semmle.label | create(...) : SourceUnit | +| GroovyCompilationUnitTest.java:70:55:70:84 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:71:13:71:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:71:26:71:27 | su : SourceUnit | semmle.label | su : SourceUnit | +| GroovyCompilationUnitTest.java:72:13:72:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:76:29:76:88 | create(...) : SourceUnit | semmle.label | create(...) : SourceUnit | +| GroovyCompilationUnitTest.java:76:55:76:84 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:77:13:77:14 | cu [post update] : CompilationUnit | semmle.label | cu [post update] : CompilationUnit | +| GroovyCompilationUnitTest.java:77:26:77:27 | su : SourceUnit | semmle.label | su : SourceUnit | +| GroovyCompilationUnitTest.java:78:13:78:14 | cu | semmle.label | cu | +| GroovyCompilationUnitTest.java:88:13:88:14 | cu [post update] : JavaAwareCompilationUnit | semmle.label | cu [post update] : JavaAwareCompilationUnit | +| GroovyCompilationUnitTest.java:88:34:88:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyCompilationUnitTest.java:89:13:89:14 | cu | semmle.label | cu | +| GroovyEvalTest.java:14:29:14:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyEvalTest.java:15:21:15:26 | script | semmle.label | script | +| GroovyEvalTest.java:19:29:19:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyEvalTest.java:20:39:20:44 | script | semmle.label | script | +| GroovyEvalTest.java:24:29:24:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyEvalTest.java:25:31:25:36 | script | semmle.label | script | +| GroovyEvalTest.java:30:29:30:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyEvalTest.java:31:43:31:48 | script | semmle.label | script | +| GroovyEvalTest.java:35:29:35:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyEvalTest.java:36:51:36:56 | script | semmle.label | script | +| GroovyShellTest.java:22:29:22:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:23:36:23:79 | new GroovyCodeSource(...) : GroovyCodeSource | semmle.label | new GroovyCodeSource(...) : GroovyCodeSource | +| GroovyShellTest.java:23:57:23:62 | script : String | semmle.label | script : String | +| GroovyShellTest.java:24:28:24:30 | gcs | semmle.label | gcs | +| GroovyShellTest.java:29:29:29:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:30:29:30:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:30:46:30:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:31:28:31:33 | reader | semmle.label | reader | +| GroovyShellTest.java:36:29:36:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:37:29:37:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:37:46:37:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:38:28:38:33 | reader | semmle.label | reader | +| GroovyShellTest.java:43:29:43:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:44:28:44:33 | script | semmle.label | script | +| GroovyShellTest.java:49:29:49:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:50:28:50:33 | script | semmle.label | script | +| GroovyShellTest.java:55:29:55:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:56:28:56:33 | script | semmle.label | script | +| GroovyShellTest.java:61:29:61:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:62:25:62:39 | new URI(...) | semmle.label | new URI(...) | +| GroovyShellTest.java:62:33:62:38 | script : String | semmle.label | script : String | +| GroovyShellTest.java:68:29:68:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:69:29:69:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:69:46:69:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:70:25:70:30 | reader | semmle.label | reader | +| GroovyShellTest.java:75:29:75:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:76:29:76:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:76:46:76:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:77:25:77:30 | reader | semmle.label | reader | +| GroovyShellTest.java:82:29:82:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:83:25:83:30 | script | semmle.label | script | +| GroovyShellTest.java:88:29:88:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:89:25:89:30 | script | semmle.label | script | +| GroovyShellTest.java:94:29:94:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:95:25:95:39 | new URI(...) | semmle.label | new URI(...) | +| GroovyShellTest.java:95:33:95:38 | script : String | semmle.label | script : String | +| GroovyShellTest.java:101:29:101:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:102:36:102:79 | new GroovyCodeSource(...) : GroovyCodeSource | semmle.label | new GroovyCodeSource(...) : GroovyCodeSource | +| GroovyShellTest.java:102:57:102:62 | script : String | semmle.label | script : String | +| GroovyShellTest.java:103:23:103:25 | gcs | semmle.label | gcs | +| GroovyShellTest.java:108:29:108:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:109:36:109:79 | new GroovyCodeSource(...) : GroovyCodeSource | semmle.label | new GroovyCodeSource(...) : GroovyCodeSource | +| GroovyShellTest.java:109:57:109:62 | script : String | semmle.label | script : String | +| GroovyShellTest.java:110:23:110:25 | gcs | semmle.label | gcs | +| GroovyShellTest.java:115:29:115:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:116:29:116:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:116:46:116:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:117:23:117:28 | reader | semmle.label | reader | +| GroovyShellTest.java:122:29:122:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:123:29:123:52 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| GroovyShellTest.java:123:46:123:51 | script : String | semmle.label | script : String | +| GroovyShellTest.java:124:23:124:28 | reader | semmle.label | reader | +| GroovyShellTest.java:129:29:129:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:130:23:130:28 | script | semmle.label | script | +| GroovyShellTest.java:135:29:135:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:136:23:136:28 | script | semmle.label | script | +| GroovyShellTest.java:141:29:141:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:142:23:142:37 | new URI(...) | semmle.label | new URI(...) | +| GroovyShellTest.java:142:31:142:36 | script : String | semmle.label | script : String | +| GroovyShellTest.java:148:29:148:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GroovyShellTest.java:149:23:149:37 | new URI(...) | semmle.label | new URI(...) | +| GroovyShellTest.java:149:31:149:36 | script : String | semmle.label | script : String | +| TemplateEngineTest.java:14:16:14:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| TemplateEngineTest.java:20:29:20:43 | source(...) : String | semmle.label | source(...) : String | +| TemplateEngineTest.java:22:35:22:64 | getParameter(...) | semmle.label | getParameter(...) | +| TemplateEngineTest.java:23:35:23:47 | (...)... | semmle.label | (...)... | +| TemplateEngineTest.java:24:35:24:49 | (...)... | semmle.label | (...)... | +| TemplateEngineTest.java:25:35:25:46 | (...)... | semmle.label | (...)... | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.qlref new file mode 100644 index 00000000000..b19d5fce522 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-094/GroovyInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyShellTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyShellTest.java similarity index 66% rename from java/ql/test/query-tests/security/CWE-094/GroovyShellTest.java rename to java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyShellTest.java index 1e5b806f18e..6e2e773b03c 100644 --- a/java/ql/test/query-tests/security/CWE-094/GroovyShellTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/GroovyShellTest.java @@ -19,136 +19,135 @@ public class GroovyShellTest extends HttpServlet { // "groovy.lang;GroovyShell;false;evaluate;(GroovyCodeSource);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source GroovyCodeSource gcs = new GroovyCodeSource(script, "test", "Test"); - shell.evaluate(gcs); // $hasGroovyInjection + shell.evaluate(gcs); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(Reader);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.evaluate(reader); // $hasGroovyInjection + shell.evaluate(reader); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(Reader,String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.evaluate(reader, "_"); // $hasGroovyInjection + shell.evaluate(reader, "_"); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.evaluate(script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.evaluate(script); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(String,String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.evaluate(script, "test"); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.evaluate(script, "test"); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(String,String,String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.evaluate(script, "test", "test2"); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.evaluate(script, "test", "test2"); // $ Alert } // "groovy.lang;GroovyShell;false;evaluate;(URI);;Argument[0];groovy;manual", try { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.parse(new URI(script)); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.parse(new URI(script)); // $ Alert } catch (URISyntaxException e) { } // "groovy.lang;GroovyShell;false;parse;(Reader);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.parse(reader); // $hasGroovyInjection + shell.parse(reader); // $ Alert } // "groovy.lang;GroovyShell;false;parse;(Reader,String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.parse(reader, "_"); // $hasGroovyInjection + shell.parse(reader, "_"); // $ Alert } // "groovy.lang;GroovyShell;false;parse;(String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.parse(script); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.parse(script); // $ Alert } // "groovy.lang;GroovyShell;false;parse;(String,String);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.parse(script, "_"); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.parse(script, "_"); // $ Alert } // "groovy.lang;GroovyShell;false;parse;(URI);;Argument[0];groovy;manual", try { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.parse(new URI(script)); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.parse(new URI(script)); // $ Alert } catch (URISyntaxException e) { } // "groovy.lang;GroovyShell;false;run;(GroovyCodeSource,String[]);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source GroovyCodeSource gcs = new GroovyCodeSource(script, "test", "Test"); - shell.run(gcs, new String[] {}); // $hasGroovyInjection + shell.run(gcs, new String[] {}); // $ Alert } // "groovy.lang;GroovyShell;false;run;(GroovyCodeSource,List);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source GroovyCodeSource gcs = new GroovyCodeSource(script, "test", "Test"); - shell.run(gcs, new ArrayList()); // $hasGroovyInjection + shell.run(gcs, new ArrayList()); // $ Alert } // "groovy.lang;GroovyShell;false;run;(Reader,String,String[]);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.run(reader, "test", new String[] {}); // $hasGroovyInjection + shell.run(reader, "test", new String[] {}); // $ Alert } // "groovy.lang;GroovyShell;false;run;(Reader,String,List);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); + String script = request.getParameter("script"); // $ Source Reader reader = new StringReader(script); - shell.run(reader, "test", new ArrayList()); // $hasGroovyInjection + shell.run(reader, "test", new ArrayList()); // $ Alert } // "groovy.lang;GroovyShell;false;run;(String,String,String[]);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.run(script, "_", new String[] {}); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.run(script, "_", new String[] {}); // $ Alert } // "groovy.lang;GroovyShell;false;run;(String,String,List);;Argument[0];groovy;manual", { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.run(script, "_", new ArrayList()); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.run(script, "_", new ArrayList()); // $ Alert } // "groovy.lang;GroovyShell;false;run;(URI,String[]);;Argument[0];groovy;manual", try { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.run(new URI(script), new String[] {}); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.run(new URI(script), new String[] {}); // $ Alert } catch (URISyntaxException e) { } // "groovy.lang;GroovyShell;false;run;(URI,List);;Argument[0];groovy;manual", try { GroovyShell shell = new GroovyShell(); - String script = request.getParameter("script"); - shell.run(new URI(script), new ArrayList()); // $hasGroovyInjection + String script = request.getParameter("script"); // $ Source + shell.run(new URI(script), new ArrayList()); // $ Alert } catch (URISyntaxException e) { } } } - diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateEngineTest.java b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/TemplateEngineTest.java similarity index 72% rename from java/ql/test/query-tests/security/CWE-094/TemplateEngineTest.java rename to java/ql/test/query-tests/security/CWE-094/GroovyInjection/TemplateEngineTest.java index dbf32494e10..a046b9cd332 100644 --- a/java/ql/test/query-tests/security/CWE-094/TemplateEngineTest.java +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/TemplateEngineTest.java @@ -11,7 +11,7 @@ import groovy.text.TemplateEngine; public class TemplateEngineTest extends HttpServlet { private Object source(HttpServletRequest request) { - return request.getParameter("script"); + return request.getParameter("script"); // $ Source } protected void doGet(HttpServletRequest request, HttpServletResponse response) @@ -19,10 +19,10 @@ public class TemplateEngineTest extends HttpServlet { try { Object script = source(request); TemplateEngine engine = null; - engine.createTemplate(request.getParameter("script")); // $ hasGroovyInjection - engine.createTemplate((File) script); // $ hasGroovyInjection - engine.createTemplate((Reader) script); // $ hasGroovyInjection - engine.createTemplate((URL) script); // $ hasGroovyInjection + engine.createTemplate(request.getParameter("script")); // $ Alert + engine.createTemplate((File) script); // $ Alert + engine.createTemplate((Reader) script); // $ Alert + engine.createTemplate((URL) script); // $ Alert } catch (Exception e) { } diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjection/options b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/options new file mode 100644 index 00000000000..d7c8332682b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/GroovyInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../../stubs/apache-commons-logging-1.2:${testdir}/../../../../stubs/mvel2-2.4.7:${testdir}/../../../../stubs/groovy-all-3.0.7:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/scriptengine:${testdir}/../../../../stubs/jsr223-api:${testdir}/../../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../../stubs/jinjava-2.6.0:${testdir}/../../../../stubs/pebble-3.1.5:${testdir}/../../../../stubs/thymeleaf-3.0.14:${testdir}/../../../../stubs/apache-velocity-2.3:${testdir}/../../../..//stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.ql b/java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.ql deleted file mode 100644 index 26f32638d91..00000000000 --- a/java/ql/test/query-tests/security/CWE-094/GroovyInjectionTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import java -import semmle.code.java.dataflow.TaintTracking -import semmle.code.java.dataflow.FlowSources -import semmle.code.java.security.GroovyInjectionQuery -import utils.test.InlineExpectationsTest - -module HasGroovyInjectionTest implements TestSig { - string getARelevantTag() { result = "hasGroovyInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasGroovyInjection" and - exists(DataFlow::Node sink | GroovyInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From 1b61cb660a1ec73540f39ae0c1bfe1f0f5b32c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:10:08 +0200 Subject: [PATCH 269/340] Java: convert JexlInjection test to .qlref --- .../{ => JexlInjection}/Jexl2Injection.java | 20 +- .../{ => JexlInjection}/Jexl3Injection.java | 28 +- .../JexlInjection/JexlInjectionTest.expected | 303 ++++++++++++++++++ .../JexlInjection/JexlInjectionTest.qlref | 4 + .../{ => JexlInjection}/SandboxedJexl2.java | 0 .../{ => JexlInjection}/SandboxedJexl3.java | 0 .../security/CWE-094/JexlInjection/options | 1 + .../CWE-094/JexlInjectionTest.expected | 0 .../security/CWE-094/JexlInjectionTest.ql | 18 -- 9 files changed, 332 insertions(+), 42 deletions(-) rename java/ql/test/query-tests/security/CWE-094/{ => JexlInjection}/Jexl2Injection.java (90%) rename java/ql/test/query-tests/security/CWE-094/{ => JexlInjection}/Jexl3Injection.java (90%) create mode 100644 java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.expected create mode 100644 java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.qlref rename java/ql/test/query-tests/security/CWE-094/{ => JexlInjection}/SandboxedJexl2.java (100%) rename java/ql/test/query-tests/security/CWE-094/{ => JexlInjection}/SandboxedJexl3.java (100%) create mode 100644 java/ql/test/query-tests/security/CWE-094/JexlInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.ql diff --git a/java/ql/test/query-tests/security/CWE-094/Jexl2Injection.java b/java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl2Injection.java similarity index 90% rename from java/ql/test/query-tests/security/CWE-094/Jexl2Injection.java rename to java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl2Injection.java index d7ee659a4c8..b306cf4e535 100644 --- a/java/ql/test/query-tests/security/CWE-094/Jexl2Injection.java +++ b/java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl2Injection.java @@ -11,21 +11,21 @@ public class Jexl2Injection { JexlEngine jexl = new JexlEngine(); Expression e = jexl.createExpression(jexlExpr); JexlContext jc = new MapContext(); - e.evaluate(jc); // $hasJexlInjection + e.evaluate(jc); // $ Alert } private static void runJexlExpressionWithJexlInfo(String jexlExpr) { JexlEngine jexl = new JexlEngine(); Expression e = jexl.createExpression(jexlExpr, new DebugInfo("unknown", 0, 0)); JexlContext jc = new MapContext(); - e.evaluate(jc); // $hasJexlInjection + e.evaluate(jc); // $ Alert } private static void runJexlScript(String jexlExpr) { JexlEngine jexl = new JexlEngine(); Script script = jexl.createScript(jexlExpr); JexlContext jc = new MapContext(); - script.execute(jc); // $hasJexlInjection + script.execute(jc); // $ Alert } private static void runJexlScriptViaCallable(String jexlExpr) { @@ -34,7 +34,7 @@ public class Jexl2Injection { JexlContext jc = new MapContext(); try { - script.callable(jc).call(); // $hasJexlInjection + script.callable(jc).call(); // $ Alert } catch (Exception e) { throw new RuntimeException(e); } @@ -42,37 +42,37 @@ public class Jexl2Injection { private static void runJexlExpressionViaGetProperty(String jexlExpr) { JexlEngine jexl = new JexlEngine(); - jexl.getProperty(new Object(), jexlExpr); // $hasJexlInjection + jexl.getProperty(new Object(), jexlExpr); // $ Alert } private static void runJexlExpressionViaSetProperty(String jexlExpr) { JexlEngine jexl = new JexlEngine(); - jexl.setProperty(new Object(), jexlExpr, new Object()); // $hasJexlInjection + jexl.setProperty(new Object(), jexlExpr, new Object()); // $ Alert } private static void runJexlExpressionViaUnifiedJEXLParseAndEvaluate(String jexlExpr) { JexlEngine jexl = new JexlEngine(); UnifiedJEXL unifiedJEXL = new UnifiedJEXL(jexl); - unifiedJEXL.parse(jexlExpr).evaluate(new MapContext()); // $hasJexlInjection + unifiedJEXL.parse(jexlExpr).evaluate(new MapContext()); // $ Alert } private static void runJexlExpressionViaUnifiedJEXLParseAndPrepare(String jexlExpr) { JexlEngine jexl = new JexlEngine(); UnifiedJEXL unifiedJEXL = new UnifiedJEXL(jexl); - unifiedJEXL.parse(jexlExpr).prepare(new MapContext()); // $hasJexlInjection + unifiedJEXL.parse(jexlExpr).prepare(new MapContext()); // $ Alert } private static void runJexlExpressionViaUnifiedJEXLTemplateEvaluate(String jexlExpr) { JexlEngine jexl = new JexlEngine(); UnifiedJEXL unifiedJEXL = new UnifiedJEXL(jexl); - unifiedJEXL.createTemplate(jexlExpr).evaluate(new MapContext(), new StringWriter()); // $hasJexlInjection + unifiedJEXL.createTemplate(jexlExpr).evaluate(new MapContext(), new StringWriter()); // $ Alert } private static void testWithSocket(Consumer action) throws Exception { try (ServerSocket serverSocket = new ServerSocket(0)) { try (Socket socket = serverSocket.accept()) { byte[] bytes = new byte[1024]; - int n = socket.getInputStream().read(bytes); + int n = socket.getInputStream().read(bytes); // $ Source String jexlExpr = new String(bytes, 0, n); action.accept(jexlExpr); } diff --git a/java/ql/test/query-tests/security/CWE-094/Jexl3Injection.java b/java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl3Injection.java similarity index 90% rename from java/ql/test/query-tests/security/CWE-094/Jexl3Injection.java rename to java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl3Injection.java index 0300b8ffe3f..c047bb5b315 100644 --- a/java/ql/test/query-tests/security/CWE-094/Jexl3Injection.java +++ b/java/ql/test/query-tests/security/CWE-094/JexlInjection/Jexl3Injection.java @@ -18,21 +18,21 @@ public class Jexl3Injection { JexlEngine jexl = new JexlBuilder().create(); JexlExpression e = jexl.createExpression(jexlExpr); JexlContext jc = new MapContext(); - e.evaluate(jc); // $hasJexlInjection + e.evaluate(jc); // $ Alert } private static void runJexlExpressionWithJexlInfo(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); JexlExpression e = jexl.createExpression(new JexlInfo("unknown", 0, 0), jexlExpr); JexlContext jc = new MapContext(); - e.evaluate(jc); // $hasJexlInjection + e.evaluate(jc); // $ Alert } private static void runJexlScript(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); JexlScript script = jexl.createScript(jexlExpr); JexlContext jc = new MapContext(); - script.execute(jc); // $hasJexlInjection + script.execute(jc); // $ Alert } private static void runJexlScriptViaCallable(String jexlExpr) { @@ -41,7 +41,7 @@ public class Jexl3Injection { JexlContext jc = new MapContext(); try { - script.callable(jc).call(); // $hasJexlInjection + script.callable(jc).call(); // $ Alert } catch (Exception e) { throw new RuntimeException(e); } @@ -49,30 +49,30 @@ public class Jexl3Injection { private static void runJexlExpressionViaGetProperty(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); - jexl.getProperty(new Object(), jexlExpr); // $hasJexlInjection + jexl.getProperty(new Object(), jexlExpr); // $ Alert } private static void runJexlExpressionViaSetProperty(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); - jexl.setProperty(new Object(), jexlExpr, new Object()); // $hasJexlInjection + jexl.setProperty(new Object(), jexlExpr, new Object()); // $ Alert } private static void runJexlExpressionViaJxltEngineExpressionEvaluate(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); JxltEngine jxlt = jexl.createJxltEngine(); - jxlt.createExpression(jexlExpr).evaluate(new MapContext()); // $hasJexlInjection + jxlt.createExpression(jexlExpr).evaluate(new MapContext()); // $ Alert } private static void runJexlExpressionViaJxltEngineExpressionPrepare(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); JxltEngine jxlt = jexl.createJxltEngine(); - jxlt.createExpression(jexlExpr).prepare(new MapContext()); // $hasJexlInjection + jxlt.createExpression(jexlExpr).prepare(new MapContext()); // $ Alert } private static void runJexlExpressionViaJxltEngineTemplateEvaluate(String jexlExpr) { JexlEngine jexl = new JexlBuilder().create(); JxltEngine jxlt = jexl.createJxltEngine(); - jxlt.createTemplate(jexlExpr).evaluate(new MapContext(), new StringWriter()); // $hasJexlInjection + jxlt.createTemplate(jexlExpr).evaluate(new MapContext(), new StringWriter()); // $ Alert } private static void runJexlExpressionViaCallable(String jexlExpr) { @@ -81,7 +81,7 @@ public class Jexl3Injection { JexlContext jc = new MapContext(); try { - e.callable(jc).call(); // $hasJexlInjection + e.callable(jc).call(); // $ Alert } catch (Exception ex) { throw new RuntimeException(ex); } @@ -91,7 +91,7 @@ public class Jexl3Injection { try (ServerSocket serverSocket = new ServerSocket(0)) { try (Socket socket = serverSocket.accept()) { byte[] bytes = new byte[1024]; - int n = socket.getInputStream().read(bytes); + int n = socket.getInputStream().read(bytes); // $ Source String jexlExpr = new String(bytes, 0, n); action.accept(jexlExpr); } @@ -141,14 +141,14 @@ public class Jexl3Injection { } @PostMapping("/request") - public ResponseEntity testWithSpringControllerThatEvaluatesJexlFromPathVariable(@PathVariable String expr) { + public ResponseEntity testWithSpringControllerThatEvaluatesJexlFromPathVariable(@PathVariable String expr) { // $ Source runJexlExpression(expr); return ResponseEntity.ok(HttpStatus.OK); } @PostMapping("/request") - public ResponseEntity testWithSpringControllerThatEvaluatesJexlFromRequestBody(@RequestBody Data data) { + public ResponseEntity testWithSpringControllerThatEvaluatesJexlFromRequestBody(@RequestBody Data data) { // $ Source String expr = data.getExpr(); runJexlExpression(expr); @@ -158,7 +158,7 @@ public class Jexl3Injection { @PostMapping("/request") public ResponseEntity testWithSpringControllerThatEvaluatesJexlFromRequestBodyWithNestedObjects( - @RequestBody CustomRequest customRequest) { + @RequestBody CustomRequest customRequest) { // $ Source String expr = customRequest.getData().getExpr(); runJexlExpression(expr); diff --git a/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.expected new file mode 100644 index 00000000000..24e02a7ac01 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.expected @@ -0,0 +1,303 @@ +#select +| Jexl2Injection.java:14:9:14:9 | e | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:14:9:14:9 | e | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:21:9:21:9 | e | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:21:9:21:9 | e | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:28:9:28:14 | script | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:28:9:28:14 | script | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:37:13:37:18 | script | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:37:13:37:18 | script | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:45:40:45:47 | jexlExpr | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:45:40:45:47 | jexlExpr | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:50:40:50:47 | jexlExpr | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:50:40:50:47 | jexlExpr | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:56:9:56:35 | parse(...) | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:56:9:56:35 | parse(...) | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:62:9:62:35 | parse(...) | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:62:9:62:35 | parse(...) | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl2Injection.java:68:9:68:44 | createTemplate(...) | Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:68:9:68:44 | createTemplate(...) | JEXL expression depends on a $@. | Jexl2Injection.java:75:25:75:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:21:9:21:9 | e | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:21:9:21:9 | e | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:21:9:21:9 | e | Jexl3Injection.java:144:85:144:109 | expr : String | Jexl3Injection.java:21:9:21:9 | e | JEXL expression depends on a $@. | Jexl3Injection.java:144:85:144:109 | expr | user-provided value | +| Jexl3Injection.java:21:9:21:9 | e | Jexl3Injection.java:151:84:151:105 | data : Data | Jexl3Injection.java:21:9:21:9 | e | JEXL expression depends on a $@. | Jexl3Injection.java:151:84:151:105 | data | user-provided value | +| Jexl3Injection.java:21:9:21:9 | e | Jexl3Injection.java:161:13:161:52 | customRequest : CustomRequest | Jexl3Injection.java:21:9:21:9 | e | JEXL expression depends on a $@. | Jexl3Injection.java:161:13:161:52 | customRequest | user-provided value | +| Jexl3Injection.java:28:9:28:9 | e | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:28:9:28:9 | e | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:35:9:35:14 | script | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:35:9:35:14 | script | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:44:13:44:18 | script | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:44:13:44:18 | script | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:52:40:52:47 | jexlExpr | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:52:40:52:47 | jexlExpr | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:57:40:57:47 | jexlExpr | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:57:40:57:47 | jexlExpr | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:63:9:63:39 | createExpression(...) | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:63:9:63:39 | createExpression(...) | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:69:9:69:39 | createExpression(...) | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:69:9:69:39 | createExpression(...) | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:75:9:75:37 | createTemplate(...) | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:75:9:75:37 | createTemplate(...) | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +| Jexl3Injection.java:84:13:84:13 | e | Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:84:13:84:13 | e | JEXL expression depends on a $@. | Jexl3Injection.java:94:25:94:47 | getInputStream(...) | user-provided value | +edges +| Jexl2Injection.java:10:43:10:57 | jexlExpr : String | Jexl2Injection.java:12:46:12:53 | jexlExpr : String | provenance | | +| Jexl2Injection.java:12:24:12:54 | createExpression(...) : Expression | Jexl2Injection.java:14:9:14:9 | e | provenance | Sink:MaD:1 | +| Jexl2Injection.java:12:46:12:53 | jexlExpr : String | Jexl2Injection.java:12:24:12:54 | createExpression(...) : Expression | provenance | Config | +| Jexl2Injection.java:17:55:17:69 | jexlExpr : String | Jexl2Injection.java:19:46:19:53 | jexlExpr : String | provenance | | +| Jexl2Injection.java:19:24:19:86 | createExpression(...) : Expression | Jexl2Injection.java:21:9:21:9 | e | provenance | Sink:MaD:1 | +| Jexl2Injection.java:19:46:19:53 | jexlExpr : String | Jexl2Injection.java:19:24:19:86 | createExpression(...) : Expression | provenance | Config | +| Jexl2Injection.java:24:39:24:53 | jexlExpr : String | Jexl2Injection.java:26:43:26:50 | jexlExpr : String | provenance | | +| Jexl2Injection.java:26:25:26:51 | createScript(...) : Script | Jexl2Injection.java:28:9:28:14 | script | provenance | Sink:MaD:5 | +| Jexl2Injection.java:26:43:26:50 | jexlExpr : String | Jexl2Injection.java:26:25:26:51 | createScript(...) : Script | provenance | Config | +| Jexl2Injection.java:31:50:31:64 | jexlExpr : String | Jexl2Injection.java:33:43:33:50 | jexlExpr : String | provenance | | +| Jexl2Injection.java:33:25:33:51 | createScript(...) : Script | Jexl2Injection.java:37:13:37:18 | script | provenance | Sink:MaD:4 | +| Jexl2Injection.java:33:43:33:50 | jexlExpr : String | Jexl2Injection.java:33:25:33:51 | createScript(...) : Script | provenance | Config | +| Jexl2Injection.java:43:57:43:71 | jexlExpr : String | Jexl2Injection.java:45:40:45:47 | jexlExpr | provenance | Sink:MaD:2 | +| Jexl2Injection.java:48:57:48:71 | jexlExpr : String | Jexl2Injection.java:50:40:50:47 | jexlExpr | provenance | Sink:MaD:3 | +| Jexl2Injection.java:53:73:53:87 | jexlExpr : String | Jexl2Injection.java:56:27:56:34 | jexlExpr : String | provenance | | +| Jexl2Injection.java:56:27:56:34 | jexlExpr : String | Jexl2Injection.java:56:9:56:35 | parse(...) | provenance | Config Sink:MaD:6 | +| Jexl2Injection.java:59:72:59:86 | jexlExpr : String | Jexl2Injection.java:62:27:62:34 | jexlExpr : String | provenance | | +| Jexl2Injection.java:62:27:62:34 | jexlExpr : String | Jexl2Injection.java:62:9:62:35 | parse(...) | provenance | Config Sink:MaD:7 | +| Jexl2Injection.java:65:73:65:87 | jexlExpr : String | Jexl2Injection.java:68:36:68:43 | jexlExpr : String | provenance | | +| Jexl2Injection.java:68:36:68:43 | jexlExpr : String | Jexl2Injection.java:68:9:68:44 | createTemplate(...) | provenance | Config Sink:MaD:8 | +| Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | Jexl2Injection.java:75:54:75:58 | bytes [post update] : byte[] | provenance | Src:MaD:18 MaD:19 | +| Jexl2Injection.java:75:54:75:58 | bytes [post update] : byte[] | Jexl2Injection.java:76:46:76:50 | bytes : byte[] | provenance | | +| Jexl2Injection.java:76:35:76:57 | new String(...) : String | Jexl2Injection.java:77:31:77:38 | jexlExpr : String | provenance | | +| Jexl2Injection.java:76:46:76:50 | bytes : byte[] | Jexl2Injection.java:76:35:76:57 | new String(...) : String | provenance | MaD:20 | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:85:24:85:56 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:89:24:89:68 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:93:24:93:52 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:97:24:97:63 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:101:24:101:70 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:105:24:105:70 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:109:24:109:86 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:113:24:113:85 | jexlExpr : String | provenance | | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | Jexl2Injection.java:117:24:117:86 | jexlExpr : String | provenance | | +| Jexl2Injection.java:85:24:85:56 | jexlExpr : String | Jexl2Injection.java:10:43:10:57 | jexlExpr : String | provenance | | +| Jexl2Injection.java:85:24:85:56 | jexlExpr : String | Jexl2Injection.java:85:24:85:56 | jexlExpr : String | provenance | | +| Jexl2Injection.java:89:24:89:68 | jexlExpr : String | Jexl2Injection.java:17:55:17:69 | jexlExpr : String | provenance | | +| Jexl2Injection.java:89:24:89:68 | jexlExpr : String | Jexl2Injection.java:89:24:89:68 | jexlExpr : String | provenance | | +| Jexl2Injection.java:93:24:93:52 | jexlExpr : String | Jexl2Injection.java:24:39:24:53 | jexlExpr : String | provenance | | +| Jexl2Injection.java:93:24:93:52 | jexlExpr : String | Jexl2Injection.java:93:24:93:52 | jexlExpr : String | provenance | | +| Jexl2Injection.java:97:24:97:63 | jexlExpr : String | Jexl2Injection.java:31:50:31:64 | jexlExpr : String | provenance | | +| Jexl2Injection.java:97:24:97:63 | jexlExpr : String | Jexl2Injection.java:97:24:97:63 | jexlExpr : String | provenance | | +| Jexl2Injection.java:101:24:101:70 | jexlExpr : String | Jexl2Injection.java:43:57:43:71 | jexlExpr : String | provenance | | +| Jexl2Injection.java:101:24:101:70 | jexlExpr : String | Jexl2Injection.java:101:24:101:70 | jexlExpr : String | provenance | | +| Jexl2Injection.java:105:24:105:70 | jexlExpr : String | Jexl2Injection.java:48:57:48:71 | jexlExpr : String | provenance | | +| Jexl2Injection.java:105:24:105:70 | jexlExpr : String | Jexl2Injection.java:105:24:105:70 | jexlExpr : String | provenance | | +| Jexl2Injection.java:109:24:109:86 | jexlExpr : String | Jexl2Injection.java:53:73:53:87 | jexlExpr : String | provenance | | +| Jexl2Injection.java:109:24:109:86 | jexlExpr : String | Jexl2Injection.java:109:24:109:86 | jexlExpr : String | provenance | | +| Jexl2Injection.java:113:24:113:85 | jexlExpr : String | Jexl2Injection.java:59:72:59:86 | jexlExpr : String | provenance | | +| Jexl2Injection.java:113:24:113:85 | jexlExpr : String | Jexl2Injection.java:113:24:113:85 | jexlExpr : String | provenance | | +| Jexl2Injection.java:117:24:117:86 | jexlExpr : String | Jexl2Injection.java:65:73:65:87 | jexlExpr : String | provenance | | +| Jexl2Injection.java:117:24:117:86 | jexlExpr : String | Jexl2Injection.java:117:24:117:86 | jexlExpr : String | provenance | | +| Jexl3Injection.java:17:43:17:57 | jexlExpr : String | Jexl3Injection.java:19:50:19:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:19:28:19:58 | createExpression(...) : JexlExpression | Jexl3Injection.java:21:9:21:9 | e | provenance | Sink:MaD:12 | +| Jexl3Injection.java:19:50:19:57 | jexlExpr : String | Jexl3Injection.java:19:28:19:58 | createExpression(...) : JexlExpression | provenance | Config | +| Jexl3Injection.java:24:55:24:69 | jexlExpr : String | Jexl3Injection.java:26:81:26:88 | jexlExpr : String | provenance | | +| Jexl3Injection.java:26:28:26:89 | createExpression(...) : JexlExpression | Jexl3Injection.java:28:9:28:9 | e | provenance | Sink:MaD:12 | +| Jexl3Injection.java:26:81:26:88 | jexlExpr : String | Jexl3Injection.java:26:28:26:89 | createExpression(...) : JexlExpression | provenance | Config | +| Jexl3Injection.java:31:39:31:53 | jexlExpr : String | Jexl3Injection.java:33:47:33:54 | jexlExpr : String | provenance | | +| Jexl3Injection.java:33:29:33:55 | createScript(...) : JexlScript | Jexl3Injection.java:35:9:35:14 | script | provenance | Sink:MaD:14 | +| Jexl3Injection.java:33:47:33:54 | jexlExpr : String | Jexl3Injection.java:33:29:33:55 | createScript(...) : JexlScript | provenance | Config | +| Jexl3Injection.java:38:50:38:64 | jexlExpr : String | Jexl3Injection.java:40:47:40:54 | jexlExpr : String | provenance | | +| Jexl3Injection.java:40:29:40:55 | createScript(...) : JexlScript | Jexl3Injection.java:44:13:44:18 | script | provenance | Sink:MaD:13 | +| Jexl3Injection.java:40:47:40:54 | jexlExpr : String | Jexl3Injection.java:40:29:40:55 | createScript(...) : JexlScript | provenance | Config | +| Jexl3Injection.java:50:57:50:71 | jexlExpr : String | Jexl3Injection.java:52:40:52:47 | jexlExpr | provenance | Sink:MaD:9 | +| Jexl3Injection.java:55:57:55:71 | jexlExpr : String | Jexl3Injection.java:57:40:57:47 | jexlExpr | provenance | Sink:MaD:10 | +| Jexl3Injection.java:60:74:60:88 | jexlExpr : String | Jexl3Injection.java:63:31:63:38 | jexlExpr : String | provenance | | +| Jexl3Injection.java:63:31:63:38 | jexlExpr : String | Jexl3Injection.java:63:9:63:39 | createExpression(...) | provenance | Config Sink:MaD:15 | +| Jexl3Injection.java:66:73:66:87 | jexlExpr : String | Jexl3Injection.java:69:31:69:38 | jexlExpr : String | provenance | | +| Jexl3Injection.java:69:31:69:38 | jexlExpr : String | Jexl3Injection.java:69:9:69:39 | createExpression(...) | provenance | Config Sink:MaD:16 | +| Jexl3Injection.java:72:72:72:86 | jexlExpr : String | Jexl3Injection.java:75:29:75:36 | jexlExpr : String | provenance | | +| Jexl3Injection.java:75:29:75:36 | jexlExpr : String | Jexl3Injection.java:75:9:75:37 | createTemplate(...) | provenance | Config Sink:MaD:17 | +| Jexl3Injection.java:78:54:78:68 | jexlExpr : String | Jexl3Injection.java:80:50:80:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:80:28:80:58 | createExpression(...) : JexlExpression | Jexl3Injection.java:84:13:84:13 | e | provenance | Sink:MaD:11 | +| Jexl3Injection.java:80:50:80:57 | jexlExpr : String | Jexl3Injection.java:80:28:80:58 | createExpression(...) : JexlExpression | provenance | Config | +| Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | Jexl3Injection.java:94:54:94:58 | bytes [post update] : byte[] | provenance | Src:MaD:18 MaD:19 | +| Jexl3Injection.java:94:54:94:58 | bytes [post update] : byte[] | Jexl3Injection.java:95:46:95:50 | bytes : byte[] | provenance | | +| Jexl3Injection.java:95:35:95:57 | new String(...) : String | Jexl3Injection.java:96:31:96:38 | jexlExpr : String | provenance | | +| Jexl3Injection.java:95:46:95:50 | bytes : byte[] | Jexl3Injection.java:95:35:95:57 | new String(...) : String | provenance | MaD:20 | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:104:24:104:56 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:108:24:108:68 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:112:24:112:52 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:116:24:116:63 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:120:24:120:70 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:124:24:124:70 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:128:24:128:87 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:132:24:132:86 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:136:24:136:85 | jexlExpr : String | provenance | | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | Jexl3Injection.java:140:24:140:67 | jexlExpr : String | provenance | | +| Jexl3Injection.java:104:24:104:56 | jexlExpr : String | Jexl3Injection.java:17:43:17:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:104:24:104:56 | jexlExpr : String | Jexl3Injection.java:104:24:104:56 | jexlExpr : String | provenance | | +| Jexl3Injection.java:108:24:108:68 | jexlExpr : String | Jexl3Injection.java:24:55:24:69 | jexlExpr : String | provenance | | +| Jexl3Injection.java:108:24:108:68 | jexlExpr : String | Jexl3Injection.java:108:24:108:68 | jexlExpr : String | provenance | | +| Jexl3Injection.java:112:24:112:52 | jexlExpr : String | Jexl3Injection.java:31:39:31:53 | jexlExpr : String | provenance | | +| Jexl3Injection.java:112:24:112:52 | jexlExpr : String | Jexl3Injection.java:112:24:112:52 | jexlExpr : String | provenance | | +| Jexl3Injection.java:116:24:116:63 | jexlExpr : String | Jexl3Injection.java:38:50:38:64 | jexlExpr : String | provenance | | +| Jexl3Injection.java:116:24:116:63 | jexlExpr : String | Jexl3Injection.java:116:24:116:63 | jexlExpr : String | provenance | | +| Jexl3Injection.java:120:24:120:70 | jexlExpr : String | Jexl3Injection.java:50:57:50:71 | jexlExpr : String | provenance | | +| Jexl3Injection.java:120:24:120:70 | jexlExpr : String | Jexl3Injection.java:120:24:120:70 | jexlExpr : String | provenance | | +| Jexl3Injection.java:124:24:124:70 | jexlExpr : String | Jexl3Injection.java:55:57:55:71 | jexlExpr : String | provenance | | +| Jexl3Injection.java:124:24:124:70 | jexlExpr : String | Jexl3Injection.java:124:24:124:70 | jexlExpr : String | provenance | | +| Jexl3Injection.java:128:24:128:87 | jexlExpr : String | Jexl3Injection.java:60:74:60:88 | jexlExpr : String | provenance | | +| Jexl3Injection.java:128:24:128:87 | jexlExpr : String | Jexl3Injection.java:128:24:128:87 | jexlExpr : String | provenance | | +| Jexl3Injection.java:132:24:132:86 | jexlExpr : String | Jexl3Injection.java:66:73:66:87 | jexlExpr : String | provenance | | +| Jexl3Injection.java:132:24:132:86 | jexlExpr : String | Jexl3Injection.java:132:24:132:86 | jexlExpr : String | provenance | | +| Jexl3Injection.java:136:24:136:85 | jexlExpr : String | Jexl3Injection.java:72:72:72:86 | jexlExpr : String | provenance | | +| Jexl3Injection.java:136:24:136:85 | jexlExpr : String | Jexl3Injection.java:136:24:136:85 | jexlExpr : String | provenance | | +| Jexl3Injection.java:140:24:140:67 | jexlExpr : String | Jexl3Injection.java:78:54:78:68 | jexlExpr : String | provenance | | +| Jexl3Injection.java:140:24:140:67 | jexlExpr : String | Jexl3Injection.java:140:24:140:67 | jexlExpr : String | provenance | | +| Jexl3Injection.java:144:85:144:109 | expr : String | Jexl3Injection.java:146:27:146:30 | expr : String | provenance | | +| Jexl3Injection.java:146:27:146:30 | expr : String | Jexl3Injection.java:17:43:17:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:151:84:151:105 | data : Data | Jexl3Injection.java:153:23:153:26 | data : Data | provenance | | +| Jexl3Injection.java:151:84:151:105 | data : Data | Jexl3Injection.java:154:27:154:30 | expr : String | provenance | SpringUntrustedDataType.getter | +| Jexl3Injection.java:153:23:153:26 | data : Data | Jexl3Injection.java:153:23:153:36 | getExpr(...) : String | provenance | entrypointFieldStep | +| Jexl3Injection.java:153:23:153:26 | data : Data | Jexl3Injection.java:190:23:190:29 | parameter this : Data | provenance | | +| Jexl3Injection.java:153:23:153:36 | getExpr(...) : String | Jexl3Injection.java:154:27:154:30 | expr : String | provenance | | +| Jexl3Injection.java:154:27:154:30 | expr : String | Jexl3Injection.java:17:43:17:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:161:13:161:52 | customRequest : CustomRequest | Jexl3Injection.java:163:23:163:35 | customRequest : CustomRequest | provenance | | +| Jexl3Injection.java:161:13:161:52 | customRequest : CustomRequest | Jexl3Injection.java:163:23:163:45 | getData(...) : Data | provenance | SpringUntrustedDataType.getter | +| Jexl3Injection.java:161:13:161:52 | customRequest : CustomRequest | Jexl3Injection.java:164:27:164:30 | expr : String | provenance | SpringUntrustedDataType.getter | +| Jexl3Injection.java:163:23:163:35 | customRequest : CustomRequest | Jexl3Injection.java:163:23:163:45 | getData(...) : Data | provenance | entrypointFieldStep | +| Jexl3Injection.java:163:23:163:35 | customRequest : CustomRequest | Jexl3Injection.java:177:21:177:27 | parameter this : CustomRequest | provenance | | +| Jexl3Injection.java:163:23:163:45 | getData(...) : Data | Jexl3Injection.java:163:23:163:55 | getExpr(...) : String | provenance | entrypointFieldStep | +| Jexl3Injection.java:163:23:163:45 | getData(...) : Data | Jexl3Injection.java:164:27:164:30 | expr : String | provenance | SpringUntrustedDataType.getter | +| Jexl3Injection.java:163:23:163:45 | getData(...) : Data | Jexl3Injection.java:190:23:190:29 | parameter this : Data | provenance | | +| Jexl3Injection.java:163:23:163:55 | getExpr(...) : String | Jexl3Injection.java:164:27:164:30 | expr : String | provenance | | +| Jexl3Injection.java:164:27:164:30 | expr : String | Jexl3Injection.java:17:43:17:57 | jexlExpr : String | provenance | | +| Jexl3Injection.java:177:21:177:27 | parameter this : CustomRequest | Jexl3Injection.java:178:20:178:23 | data : Data | provenance | entrypointFieldStep | +| Jexl3Injection.java:190:23:190:29 | parameter this : Data | Jexl3Injection.java:191:20:191:23 | expr : String | provenance | entrypointFieldStep | +models +| 1 | Sink: org.apache.commons.jexl2; Expression; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 2 | Sink: org.apache.commons.jexl2; JexlEngine; false; getProperty; (Object,String); ; Argument[1]; jexl-injection; manual | +| 3 | Sink: org.apache.commons.jexl2; JexlEngine; false; setProperty; (Object,String,Object); ; Argument[1]; jexl-injection; manual | +| 4 | Sink: org.apache.commons.jexl2; Script; false; callable; ; ; Argument[this]; jexl-injection; manual | +| 5 | Sink: org.apache.commons.jexl2; Script; false; execute; ; ; Argument[this]; jexl-injection; manual | +| 6 | Sink: org.apache.commons.jexl2; UnifiedJEXL$Expression; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 7 | Sink: org.apache.commons.jexl2; UnifiedJEXL$Expression; false; prepare; ; ; Argument[this]; jexl-injection; manual | +| 8 | Sink: org.apache.commons.jexl2; UnifiedJEXL$Template; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 9 | Sink: org.apache.commons.jexl3; JexlEngine; false; getProperty; (Object,String); ; Argument[1]; jexl-injection; manual | +| 10 | Sink: org.apache.commons.jexl3; JexlEngine; false; setProperty; (Object,String,Object); ; Argument[1]; jexl-injection; manual | +| 11 | Sink: org.apache.commons.jexl3; JexlExpression; false; callable; ; ; Argument[this]; jexl-injection; manual | +| 12 | Sink: org.apache.commons.jexl3; JexlExpression; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 13 | Sink: org.apache.commons.jexl3; JexlScript; false; callable; ; ; Argument[this]; jexl-injection; manual | +| 14 | Sink: org.apache.commons.jexl3; JexlScript; false; execute; ; ; Argument[this]; jexl-injection; manual | +| 15 | Sink: org.apache.commons.jexl3; JxltEngine$Expression; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 16 | Sink: org.apache.commons.jexl3; JxltEngine$Expression; false; prepare; ; ; Argument[this]; jexl-injection; manual | +| 17 | Sink: org.apache.commons.jexl3; JxltEngine$Template; false; evaluate; ; ; Argument[this]; jexl-injection; manual | +| 18 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 19 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual | +| 20 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| Jexl2Injection.java:10:43:10:57 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:12:24:12:54 | createExpression(...) : Expression | semmle.label | createExpression(...) : Expression | +| Jexl2Injection.java:12:46:12:53 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:14:9:14:9 | e | semmle.label | e | +| Jexl2Injection.java:17:55:17:69 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:19:24:19:86 | createExpression(...) : Expression | semmle.label | createExpression(...) : Expression | +| Jexl2Injection.java:19:46:19:53 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:21:9:21:9 | e | semmle.label | e | +| Jexl2Injection.java:24:39:24:53 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:26:25:26:51 | createScript(...) : Script | semmle.label | createScript(...) : Script | +| Jexl2Injection.java:26:43:26:50 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:28:9:28:14 | script | semmle.label | script | +| Jexl2Injection.java:31:50:31:64 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:33:25:33:51 | createScript(...) : Script | semmle.label | createScript(...) : Script | +| Jexl2Injection.java:33:43:33:50 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:37:13:37:18 | script | semmle.label | script | +| Jexl2Injection.java:43:57:43:71 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:45:40:45:47 | jexlExpr | semmle.label | jexlExpr | +| Jexl2Injection.java:48:57:48:71 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:50:40:50:47 | jexlExpr | semmle.label | jexlExpr | +| Jexl2Injection.java:53:73:53:87 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:56:9:56:35 | parse(...) | semmle.label | parse(...) | +| Jexl2Injection.java:56:27:56:34 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:59:72:59:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:62:9:62:35 | parse(...) | semmle.label | parse(...) | +| Jexl2Injection.java:62:27:62:34 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:65:73:65:87 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:68:9:68:44 | createTemplate(...) | semmle.label | createTemplate(...) | +| Jexl2Injection.java:68:36:68:43 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:75:25:75:47 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Jexl2Injection.java:75:54:75:58 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| Jexl2Injection.java:76:35:76:57 | new String(...) : String | semmle.label | new String(...) : String | +| Jexl2Injection.java:76:46:76:50 | bytes : byte[] | semmle.label | bytes : byte[] | +| Jexl2Injection.java:77:31:77:38 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:85:24:85:56 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:85:24:85:56 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:89:24:89:68 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:89:24:89:68 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:93:24:93:52 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:93:24:93:52 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:97:24:97:63 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:97:24:97:63 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:101:24:101:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:101:24:101:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:105:24:105:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:105:24:105:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:109:24:109:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:109:24:109:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:113:24:113:85 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:113:24:113:85 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:117:24:117:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl2Injection.java:117:24:117:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:17:43:17:57 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:19:28:19:58 | createExpression(...) : JexlExpression | semmle.label | createExpression(...) : JexlExpression | +| Jexl3Injection.java:19:50:19:57 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:21:9:21:9 | e | semmle.label | e | +| Jexl3Injection.java:24:55:24:69 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:26:28:26:89 | createExpression(...) : JexlExpression | semmle.label | createExpression(...) : JexlExpression | +| Jexl3Injection.java:26:81:26:88 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:28:9:28:9 | e | semmle.label | e | +| Jexl3Injection.java:31:39:31:53 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:33:29:33:55 | createScript(...) : JexlScript | semmle.label | createScript(...) : JexlScript | +| Jexl3Injection.java:33:47:33:54 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:35:9:35:14 | script | semmle.label | script | +| Jexl3Injection.java:38:50:38:64 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:40:29:40:55 | createScript(...) : JexlScript | semmle.label | createScript(...) : JexlScript | +| Jexl3Injection.java:40:47:40:54 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:44:13:44:18 | script | semmle.label | script | +| Jexl3Injection.java:50:57:50:71 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:52:40:52:47 | jexlExpr | semmle.label | jexlExpr | +| Jexl3Injection.java:55:57:55:71 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:57:40:57:47 | jexlExpr | semmle.label | jexlExpr | +| Jexl3Injection.java:60:74:60:88 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:63:9:63:39 | createExpression(...) | semmle.label | createExpression(...) | +| Jexl3Injection.java:63:31:63:38 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:66:73:66:87 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:69:9:69:39 | createExpression(...) | semmle.label | createExpression(...) | +| Jexl3Injection.java:69:31:69:38 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:72:72:72:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:75:9:75:37 | createTemplate(...) | semmle.label | createTemplate(...) | +| Jexl3Injection.java:75:29:75:36 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:78:54:78:68 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:80:28:80:58 | createExpression(...) : JexlExpression | semmle.label | createExpression(...) : JexlExpression | +| Jexl3Injection.java:80:50:80:57 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:84:13:84:13 | e | semmle.label | e | +| Jexl3Injection.java:94:25:94:47 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| Jexl3Injection.java:94:54:94:58 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| Jexl3Injection.java:95:35:95:57 | new String(...) : String | semmle.label | new String(...) : String | +| Jexl3Injection.java:95:46:95:50 | bytes : byte[] | semmle.label | bytes : byte[] | +| Jexl3Injection.java:96:31:96:38 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:104:24:104:56 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:104:24:104:56 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:108:24:108:68 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:108:24:108:68 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:112:24:112:52 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:112:24:112:52 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:116:24:116:63 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:116:24:116:63 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:120:24:120:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:120:24:120:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:124:24:124:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:124:24:124:70 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:128:24:128:87 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:128:24:128:87 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:132:24:132:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:132:24:132:86 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:136:24:136:85 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:136:24:136:85 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:140:24:140:67 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:140:24:140:67 | jexlExpr : String | semmle.label | jexlExpr : String | +| Jexl3Injection.java:144:85:144:109 | expr : String | semmle.label | expr : String | +| Jexl3Injection.java:146:27:146:30 | expr : String | semmle.label | expr : String | +| Jexl3Injection.java:151:84:151:105 | data : Data | semmle.label | data : Data | +| Jexl3Injection.java:153:23:153:26 | data : Data | semmle.label | data : Data | +| Jexl3Injection.java:153:23:153:36 | getExpr(...) : String | semmle.label | getExpr(...) : String | +| Jexl3Injection.java:154:27:154:30 | expr : String | semmle.label | expr : String | +| Jexl3Injection.java:161:13:161:52 | customRequest : CustomRequest | semmle.label | customRequest : CustomRequest | +| Jexl3Injection.java:163:23:163:35 | customRequest : CustomRequest | semmle.label | customRequest : CustomRequest | +| Jexl3Injection.java:163:23:163:45 | getData(...) : Data | semmle.label | getData(...) : Data | +| Jexl3Injection.java:163:23:163:55 | getExpr(...) : String | semmle.label | getExpr(...) : String | +| Jexl3Injection.java:164:27:164:30 | expr : String | semmle.label | expr : String | +| Jexl3Injection.java:177:21:177:27 | parameter this : CustomRequest | semmle.label | parameter this : CustomRequest | +| Jexl3Injection.java:178:20:178:23 | data : Data | semmle.label | data : Data | +| Jexl3Injection.java:190:23:190:29 | parameter this : Data | semmle.label | parameter this : Data | +| Jexl3Injection.java:191:20:191:23 | expr : String | semmle.label | expr : String | +subpaths +| Jexl3Injection.java:153:23:153:26 | data : Data | Jexl3Injection.java:190:23:190:29 | parameter this : Data | Jexl3Injection.java:191:20:191:23 | expr : String | Jexl3Injection.java:153:23:153:36 | getExpr(...) : String | +| Jexl3Injection.java:163:23:163:35 | customRequest : CustomRequest | Jexl3Injection.java:177:21:177:27 | parameter this : CustomRequest | Jexl3Injection.java:178:20:178:23 | data : Data | Jexl3Injection.java:163:23:163:45 | getData(...) : Data | +| Jexl3Injection.java:163:23:163:45 | getData(...) : Data | Jexl3Injection.java:190:23:190:29 | parameter this : Data | Jexl3Injection.java:191:20:191:23 | expr : String | Jexl3Injection.java:163:23:163:55 | getExpr(...) : String | diff --git a/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.qlref new file mode 100644 index 00000000000..a33d55722f6 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/JexlInjection/JexlInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-094/JexlInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-094/SandboxedJexl2.java b/java/ql/test/query-tests/security/CWE-094/JexlInjection/SandboxedJexl2.java similarity index 100% rename from java/ql/test/query-tests/security/CWE-094/SandboxedJexl2.java rename to java/ql/test/query-tests/security/CWE-094/JexlInjection/SandboxedJexl2.java diff --git a/java/ql/test/query-tests/security/CWE-094/SandboxedJexl3.java b/java/ql/test/query-tests/security/CWE-094/JexlInjection/SandboxedJexl3.java similarity index 100% rename from java/ql/test/query-tests/security/CWE-094/SandboxedJexl3.java rename to java/ql/test/query-tests/security/CWE-094/JexlInjection/SandboxedJexl3.java diff --git a/java/ql/test/query-tests/security/CWE-094/JexlInjection/options b/java/ql/test/query-tests/security/CWE-094/JexlInjection/options new file mode 100644 index 00000000000..d7c8332682b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/JexlInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../../stubs/apache-commons-logging-1.2:${testdir}/../../../../stubs/mvel2-2.4.7:${testdir}/../../../../stubs/groovy-all-3.0.7:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/scriptengine:${testdir}/../../../../stubs/jsr223-api:${testdir}/../../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../../stubs/jinjava-2.6.0:${testdir}/../../../../stubs/pebble-3.1.5:${testdir}/../../../../stubs/thymeleaf-3.0.14:${testdir}/../../../../stubs/apache-velocity-2.3:${testdir}/../../../..//stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.ql b/java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.ql deleted file mode 100644 index 0515c0fc75d..00000000000 --- a/java/ql/test/query-tests/security/CWE-094/JexlInjectionTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.JexlInjectionQuery -import utils.test.InlineExpectationsTest - -module JexlInjectionTest implements TestSig { - string getARelevantTag() { result = "hasJexlInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasJexlInjection" and - exists(DataFlow::Node sink | JexlInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From 2a837b208bae835cfec1890ed385d611896177e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:14:06 +0200 Subject: [PATCH 270/340] Java: convert MvelInjection test to .qlref --- .../MvelInjection/MvelInjectionTest.expected | 133 ++++++++++++++++++ .../MvelInjectionTest.java | 28 ++-- .../MvelInjection/MvelInjectionTest.qlref | 4 + .../security/CWE-094/MvelInjection/options | 1 + .../CWE-094/MvelInjectionTest.expected | 0 .../security/CWE-094/MvelInjectionTest.ql | 20 --- 6 files changed, 152 insertions(+), 34 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected rename java/ql/test/query-tests/security/CWE-094/{ => MvelInjection}/MvelInjectionTest.java (84%) create mode 100644 java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-094/MvelInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.ql diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected new file mode 100644 index 00000000000..eb2034ab06d --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.expected @@ -0,0 +1,133 @@ +#select +| MvelInjectionTest.java:24:15:24:26 | read(...) | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:24:15:24:26 | read(...) | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:29:28:29:37 | expression | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:29:28:29:37 | expression | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:35:5:35:13 | statement | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:35:5:35:13 | statement | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:36:5:36:13 | statement | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:36:5:36:13 | statement | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:42:5:42:14 | expression | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:42:5:42:14 | expression | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:48:5:48:14 | expression | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:48:5:48:14 | expression | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:56:5:56:18 | compiledScript | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:56:5:56:18 | compiledScript | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:59:21:59:26 | script | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:59:21:59:26 | script | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:67:5:67:10 | script | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:67:5:67:10 | script | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:71:26:71:37 | read(...) | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:71:26:71:37 | read(...) | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:75:29:75:74 | compileTemplate(...) | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:75:29:75:74 | compileTemplate(...) | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:80:29:80:46 | compile(...) | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:80:29:80:46 | compile(...) | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +| MvelInjectionTest.java:86:32:86:41 | expression | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:86:32:86:41 | expression | MVEL expression depends on a $@. | MvelInjectionTest.java:90:27:90:49 | getInputStream(...) | user-provided value | +edges +| MvelInjectionTest.java:28:31:28:66 | compileExpression(...) : Serializable | MvelInjectionTest.java:29:28:29:37 | expression | provenance | Sink:MaD:11 | +| MvelInjectionTest.java:28:54:28:65 | read(...) : String | MvelInjectionTest.java:28:31:28:66 | compileExpression(...) : Serializable | provenance | Config | +| MvelInjectionTest.java:33:35:33:70 | new ExpressionCompiler(...) : ExpressionCompiler | MvelInjectionTest.java:34:37:34:44 | compiler : ExpressionCompiler | provenance | | +| MvelInjectionTest.java:33:58:33:69 | read(...) : String | MvelInjectionTest.java:33:35:33:70 | new ExpressionCompiler(...) : ExpressionCompiler | provenance | Config | +| MvelInjectionTest.java:34:37:34:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:34:37:34:54 | compile(...) : CompiledExpression | provenance | Config | +| MvelInjectionTest.java:34:37:34:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:35:5:35:13 | statement | provenance | Sink:MaD:5 | +| MvelInjectionTest.java:34:37:34:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:36:5:36:13 | statement | provenance | Sink:MaD:2 | +| MvelInjectionTest.java:40:35:40:70 | new ExpressionCompiler(...) : ExpressionCompiler | MvelInjectionTest.java:41:37:41:44 | compiler : ExpressionCompiler | provenance | | +| MvelInjectionTest.java:40:58:40:69 | read(...) : String | MvelInjectionTest.java:40:35:40:70 | new ExpressionCompiler(...) : ExpressionCompiler | provenance | Config | +| MvelInjectionTest.java:41:37:41:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:41:37:41:54 | compile(...) : CompiledExpression | provenance | Config | +| MvelInjectionTest.java:41:37:41:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:42:5:42:14 | expression | provenance | Sink:MaD:4 | +| MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | MvelInjectionTest.java:48:5:48:14 | expression | provenance | Sink:MaD:3 | +| MvelInjectionTest.java:47:35:47:46 | read(...) : String | MvelInjectionTest.java:47:35:47:60 | toCharArray(...) : char[] | provenance | MaD:16 | +| MvelInjectionTest.java:47:35:47:60 | toCharArray(...) : char[] | MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | provenance | Config | +| MvelInjectionTest.java:52:20:52:31 | read(...) : String | MvelInjectionTest.java:55:52:55:56 | input : String | provenance | | +| MvelInjectionTest.java:55:37:55:57 | compile(...) : CompiledScript | MvelInjectionTest.java:56:5:56:18 | compiledScript | provenance | Sink:MaD:1 | +| MvelInjectionTest.java:55:52:55:56 | input : String | MvelInjectionTest.java:55:37:55:57 | compile(...) : CompiledScript | provenance | Config | +| MvelInjectionTest.java:55:52:55:56 | input : String | MvelInjectionTest.java:58:49:58:53 | input : String | provenance | | +| MvelInjectionTest.java:58:27:58:54 | compiledScript(...) : Serializable | MvelInjectionTest.java:59:21:59:26 | script | provenance | Sink:MaD:7 | +| MvelInjectionTest.java:58:49:58:53 | input : String | MvelInjectionTest.java:58:27:58:54 | compiledScript(...) : Serializable | provenance | Config | +| MvelInjectionTest.java:64:35:64:70 | new ExpressionCompiler(...) : ExpressionCompiler | MvelInjectionTest.java:65:37:65:44 | compiler : ExpressionCompiler | provenance | | +| MvelInjectionTest.java:64:58:64:69 | read(...) : String | MvelInjectionTest.java:64:35:64:70 | new ExpressionCompiler(...) : ExpressionCompiler | provenance | Config | +| MvelInjectionTest.java:65:37:65:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:65:37:65:54 | compile(...) : CompiledExpression | provenance | Config | +| MvelInjectionTest.java:65:37:65:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:66:64:66:72 | statement : CompiledExpression | provenance | | +| MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | MvelInjectionTest.java:67:5:67:10 | script | provenance | Sink:MaD:6 | +| MvelInjectionTest.java:66:64:66:72 | statement : CompiledExpression | MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | provenance | Config | +| MvelInjectionTest.java:75:62:75:73 | read(...) : String | MvelInjectionTest.java:75:29:75:74 | compileTemplate(...) | provenance | Config Sink:MaD:9 | +| MvelInjectionTest.java:79:33:79:66 | new TemplateCompiler(...) : TemplateCompiler | MvelInjectionTest.java:80:29:80:36 | compiler : TemplateCompiler | provenance | | +| MvelInjectionTest.java:79:54:79:65 | read(...) : String | MvelInjectionTest.java:79:33:79:66 | new TemplateCompiler(...) : TemplateCompiler | provenance | Config | +| MvelInjectionTest.java:80:29:80:36 | compiler : TemplateCompiler | MvelInjectionTest.java:80:29:80:46 | compile(...) | provenance | Config Sink:MaD:9 | +| MvelInjectionTest.java:84:35:84:70 | new ExpressionCompiler(...) : ExpressionCompiler | MvelInjectionTest.java:85:37:85:44 | compiler : ExpressionCompiler | provenance | | +| MvelInjectionTest.java:84:58:84:69 | read(...) : String | MvelInjectionTest.java:84:35:84:70 | new ExpressionCompiler(...) : ExpressionCompiler | provenance | Config | +| MvelInjectionTest.java:85:37:85:44 | compiler : ExpressionCompiler | MvelInjectionTest.java:85:37:85:54 | compile(...) : CompiledExpression | provenance | Config | +| MvelInjectionTest.java:85:37:85:54 | compile(...) : CompiledExpression | MvelInjectionTest.java:86:32:86:41 | expression | provenance | Sink:MaD:12 | +| MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | MvelInjectionTest.java:92:15:92:16 | is : InputStream | provenance | Src:MaD:13 | +| MvelInjectionTest.java:92:15:92:16 | is : InputStream | MvelInjectionTest.java:92:23:92:27 | bytes [post update] : byte[] | provenance | MaD:14 | +| MvelInjectionTest.java:92:23:92:27 | bytes [post update] : byte[] | MvelInjectionTest.java:93:25:93:29 | bytes : byte[] | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:24:15:24:26 | read(...) | provenance | Sink:MaD:10 | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:28:54:28:65 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:33:58:33:69 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:40:58:40:69 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:47:35:47:46 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:52:20:52:31 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:64:58:64:69 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:71:26:71:37 | read(...) | provenance | Sink:MaD:8 | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:75:62:75:73 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:79:54:79:65 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | MvelInjectionTest.java:84:58:84:69 | read(...) : String | provenance | | +| MvelInjectionTest.java:93:25:93:29 | bytes : byte[] | MvelInjectionTest.java:93:14:93:36 | new String(...) : String | provenance | MaD:15 | +models +| 1 | Sink: javax.script; CompiledScript; false; eval; ; ; Argument[this]; mvel-injection; manual | +| 2 | Sink: org.mvel2.compiler; Accessor; false; getValue; ; ; Argument[this]; mvel-injection; manual | +| 3 | Sink: org.mvel2.compiler; CompiledAccExpression; false; getValue; ; ; Argument[this]; mvel-injection; manual | +| 4 | Sink: org.mvel2.compiler; CompiledExpression; false; getDirectValue; ; ; Argument[this]; mvel-injection; manual | +| 5 | Sink: org.mvel2.compiler; ExecutableStatement; false; getValue; ; ; Argument[this]; mvel-injection; manual | +| 6 | Sink: org.mvel2.jsr223; MvelCompiledScript; false; eval; ; ; Argument[this]; mvel-injection; manual | +| 7 | Sink: org.mvel2.jsr223; MvelScriptEngine; false; evaluate; ; ; Argument[0]; mvel-injection; manual | +| 8 | Sink: org.mvel2.templates; TemplateRuntime; false; eval; ; ; Argument[0]; mvel-injection; manual | +| 9 | Sink: org.mvel2.templates; TemplateRuntime; false; execute; ; ; Argument[0]; mvel-injection; manual | +| 10 | Sink: org.mvel2; MVEL; false; eval; ; ; Argument[0]; mvel-injection; manual | +| 11 | Sink: org.mvel2; MVEL; false; executeExpression; ; ; Argument[0]; mvel-injection; manual | +| 12 | Sink: org.mvel2; MVELRuntime; false; execute; ; ; Argument[1]; mvel-injection; manual | +| 13 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 14 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual | +| 15 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +| 16 | Summary: java.lang; String; false; toCharArray; ; ; Argument[this]; ReturnValue; taint; manual | +nodes +| MvelInjectionTest.java:24:15:24:26 | read(...) | semmle.label | read(...) | +| MvelInjectionTest.java:28:31:28:66 | compileExpression(...) : Serializable | semmle.label | compileExpression(...) : Serializable | +| MvelInjectionTest.java:28:54:28:65 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:29:28:29:37 | expression | semmle.label | expression | +| MvelInjectionTest.java:33:35:33:70 | new ExpressionCompiler(...) : ExpressionCompiler | semmle.label | new ExpressionCompiler(...) : ExpressionCompiler | +| MvelInjectionTest.java:33:58:33:69 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:34:37:34:44 | compiler : ExpressionCompiler | semmle.label | compiler : ExpressionCompiler | +| MvelInjectionTest.java:34:37:34:54 | compile(...) : CompiledExpression | semmle.label | compile(...) : CompiledExpression | +| MvelInjectionTest.java:35:5:35:13 | statement | semmle.label | statement | +| MvelInjectionTest.java:36:5:36:13 | statement | semmle.label | statement | +| MvelInjectionTest.java:40:35:40:70 | new ExpressionCompiler(...) : ExpressionCompiler | semmle.label | new ExpressionCompiler(...) : ExpressionCompiler | +| MvelInjectionTest.java:40:58:40:69 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:41:37:41:44 | compiler : ExpressionCompiler | semmle.label | compiler : ExpressionCompiler | +| MvelInjectionTest.java:41:37:41:54 | compile(...) : CompiledExpression | semmle.label | compile(...) : CompiledExpression | +| MvelInjectionTest.java:42:5:42:14 | expression | semmle.label | expression | +| MvelInjectionTest.java:47:9:47:96 | new CompiledAccExpression(...) : CompiledAccExpression | semmle.label | new CompiledAccExpression(...) : CompiledAccExpression | +| MvelInjectionTest.java:47:35:47:46 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:47:35:47:60 | toCharArray(...) : char[] | semmle.label | toCharArray(...) : char[] | +| MvelInjectionTest.java:48:5:48:14 | expression | semmle.label | expression | +| MvelInjectionTest.java:52:20:52:31 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:55:37:55:57 | compile(...) : CompiledScript | semmle.label | compile(...) : CompiledScript | +| MvelInjectionTest.java:55:52:55:56 | input : String | semmle.label | input : String | +| MvelInjectionTest.java:56:5:56:18 | compiledScript | semmle.label | compiledScript | +| MvelInjectionTest.java:58:27:58:54 | compiledScript(...) : Serializable | semmle.label | compiledScript(...) : Serializable | +| MvelInjectionTest.java:58:49:58:53 | input : String | semmle.label | input : String | +| MvelInjectionTest.java:59:21:59:26 | script | semmle.label | script | +| MvelInjectionTest.java:64:35:64:70 | new ExpressionCompiler(...) : ExpressionCompiler | semmle.label | new ExpressionCompiler(...) : ExpressionCompiler | +| MvelInjectionTest.java:64:58:64:69 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:65:37:65:44 | compiler : ExpressionCompiler | semmle.label | compiler : ExpressionCompiler | +| MvelInjectionTest.java:65:37:65:54 | compile(...) : CompiledExpression | semmle.label | compile(...) : CompiledExpression | +| MvelInjectionTest.java:66:33:66:73 | new MvelCompiledScript(...) : MvelCompiledScript | semmle.label | new MvelCompiledScript(...) : MvelCompiledScript | +| MvelInjectionTest.java:66:64:66:72 | statement : CompiledExpression | semmle.label | statement : CompiledExpression | +| MvelInjectionTest.java:67:5:67:10 | script | semmle.label | script | +| MvelInjectionTest.java:71:26:71:37 | read(...) | semmle.label | read(...) | +| MvelInjectionTest.java:75:29:75:74 | compileTemplate(...) | semmle.label | compileTemplate(...) | +| MvelInjectionTest.java:75:62:75:73 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:79:33:79:66 | new TemplateCompiler(...) : TemplateCompiler | semmle.label | new TemplateCompiler(...) : TemplateCompiler | +| MvelInjectionTest.java:79:54:79:65 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:80:29:80:36 | compiler : TemplateCompiler | semmle.label | compiler : TemplateCompiler | +| MvelInjectionTest.java:80:29:80:46 | compile(...) | semmle.label | compile(...) | +| MvelInjectionTest.java:84:35:84:70 | new ExpressionCompiler(...) : ExpressionCompiler | semmle.label | new ExpressionCompiler(...) : ExpressionCompiler | +| MvelInjectionTest.java:84:58:84:69 | read(...) : String | semmle.label | read(...) : String | +| MvelInjectionTest.java:85:37:85:44 | compiler : ExpressionCompiler | semmle.label | compiler : ExpressionCompiler | +| MvelInjectionTest.java:85:37:85:54 | compile(...) : CompiledExpression | semmle.label | compile(...) : CompiledExpression | +| MvelInjectionTest.java:86:32:86:41 | expression | semmle.label | expression | +| MvelInjectionTest.java:90:27:90:49 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| MvelInjectionTest.java:92:15:92:16 | is : InputStream | semmle.label | is : InputStream | +| MvelInjectionTest.java:92:23:92:27 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| MvelInjectionTest.java:93:14:93:36 | new String(...) : String | semmle.label | new String(...) : String | +| MvelInjectionTest.java:93:25:93:29 | bytes : byte[] | semmle.label | bytes : byte[] | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.java b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.java similarity index 84% rename from java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.java rename to java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.java index 4013246eecd..4e6738dbfd9 100644 --- a/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.java @@ -21,31 +21,31 @@ import org.mvel2.templates.TemplateRuntime; public class MvelInjectionTest { public static void testWithMvelEval(Socket socket) throws IOException { - MVEL.eval(read(socket)); // $hasMvelInjection + MVEL.eval(read(socket)); // $ Alert } public static void testWithMvelCompileAndExecute(Socket socket) throws IOException { Serializable expression = MVEL.compileExpression(read(socket)); - MVEL.executeExpression(expression); // $hasMvelInjection + MVEL.executeExpression(expression); // $ Alert } public static void testWithExpressionCompiler(Socket socket) throws IOException { ExpressionCompiler compiler = new ExpressionCompiler(read(socket)); ExecutableStatement statement = compiler.compile(); - statement.getValue(new Object(), new ImmutableDefaultFactory()); // $hasMvelInjection - statement.getValue(new Object(), new Object(), new ImmutableDefaultFactory()); // $hasMvelInjection + statement.getValue(new Object(), new ImmutableDefaultFactory()); // $ Alert + statement.getValue(new Object(), new Object(), new ImmutableDefaultFactory()); // $ Alert } public static void testWithCompiledExpressionGetDirectValue(Socket socket) throws IOException { ExpressionCompiler compiler = new ExpressionCompiler(read(socket)); CompiledExpression expression = compiler.compile(); - expression.getDirectValue(new Object(), new ImmutableDefaultFactory()); // $hasMvelInjection + expression.getDirectValue(new Object(), new ImmutableDefaultFactory()); // $ Alert } public static void testCompiledAccExpressionGetValue(Socket socket) throws IOException { CompiledAccExpression expression = new CompiledAccExpression(read(socket).toCharArray(), Object.class, new ParserContext()); - expression.getValue(new Object(), new ImmutableDefaultFactory()); // $hasMvelInjection + expression.getValue(new Object(), new ImmutableDefaultFactory()); // $ Alert } public static void testMvelScriptEngineCompileAndEvaluate(Socket socket) throws Exception { @@ -53,10 +53,10 @@ public class MvelInjectionTest { MvelScriptEngine engine = new MvelScriptEngine(); CompiledScript compiledScript = engine.compile(input); - compiledScript.eval(); // $hasMvelInjection + compiledScript.eval(); // $ Alert Serializable script = engine.compiledScript(input); - engine.evaluate(script, new SimpleScriptContext()); // $hasMvelInjection + engine.evaluate(script, new SimpleScriptContext()); // $ Alert } public static void testMvelCompiledScriptCompileAndEvaluate(Socket socket) throws Exception { @@ -64,30 +64,30 @@ public class MvelInjectionTest { ExpressionCompiler compiler = new ExpressionCompiler(read(socket)); ExecutableStatement statement = compiler.compile(); MvelCompiledScript script = new MvelCompiledScript(engine, statement); - script.eval(new SimpleScriptContext()); // $hasMvelInjection + script.eval(new SimpleScriptContext()); // $ Alert } public static void testTemplateRuntimeEval(Socket socket) throws Exception { - TemplateRuntime.eval(read(socket), new HashMap()); // $hasMvelInjection + TemplateRuntime.eval(read(socket), new HashMap()); // $ Alert } public static void testTemplateRuntimeCompileTemplateAndExecute(Socket socket) throws Exception { - TemplateRuntime.execute(TemplateCompiler.compileTemplate(read(socket)), new HashMap()); // $hasMvelInjection + TemplateRuntime.execute(TemplateCompiler.compileTemplate(read(socket)), new HashMap()); // $ Alert } public static void testTemplateRuntimeCompileAndExecute(Socket socket) throws Exception { TemplateCompiler compiler = new TemplateCompiler(read(socket)); - TemplateRuntime.execute(compiler.compile(), new HashMap()); // $hasMvelInjection + TemplateRuntime.execute(compiler.compile(), new HashMap()); // $ Alert } public static void testMvelRuntimeExecute(Socket socket) throws Exception { ExpressionCompiler compiler = new ExpressionCompiler(read(socket)); CompiledExpression expression = compiler.compile(); - MVELRuntime.execute(false, expression, new Object(), new ImmutableDefaultFactory()); // $hasMvelInjection + MVELRuntime.execute(false, expression, new Object(), new ImmutableDefaultFactory()); // $ Alert } public static String read(Socket socket) throws IOException { - try (InputStream is = socket.getInputStream()) { + try (InputStream is = socket.getInputStream()) { // $ Source byte[] bytes = new byte[1024]; int n = is.read(bytes); return new String(bytes, 0, n); diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.qlref new file mode 100644 index 00000000000..9236766fe8c --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/MvelInjection/MvelInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-094/MvelInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjection/options b/java/ql/test/query-tests/security/CWE-094/MvelInjection/options new file mode 100644 index 00000000000..d7c8332682b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/MvelInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../../stubs/apache-commons-logging-1.2:${testdir}/../../../../stubs/mvel2-2.4.7:${testdir}/../../../../stubs/groovy-all-3.0.7:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/scriptengine:${testdir}/../../../../stubs/jsr223-api:${testdir}/../../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../../stubs/jinjava-2.6.0:${testdir}/../../../../stubs/pebble-3.1.5:${testdir}/../../../../stubs/thymeleaf-3.0.14:${testdir}/../../../../stubs/apache-velocity-2.3:${testdir}/../../../..//stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.ql b/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.ql deleted file mode 100644 index 08dc091898c..00000000000 --- a/java/ql/test/query-tests/security/CWE-094/MvelInjectionTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import java -import semmle.code.java.dataflow.TaintTracking -import semmle.code.java.dataflow.FlowSources -import semmle.code.java.security.MvelInjectionQuery -import utils.test.InlineExpectationsTest - -module HasMvelInjectionTest implements TestSig { - string getARelevantTag() { result = "hasMvelInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasMvelInjection" and - exists(DataFlow::Node sink | MvelInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From b8c7bd29c3a1e4aa714700284c34cf8b8a75e572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:20:03 +0200 Subject: [PATCH 271/340] Java: convert SpelInjection test to .qlref --- .../SpelInjection/SpelInjectionTest.expected | 120 ++++++++++++++++++ .../SpelInjectionTest.java | 28 ++-- .../SpelInjection/SpelInjectionTest.qlref | 4 + .../security/CWE-094/SpelInjection/options | 1 + .../CWE-094/SpelInjectionTest.expected | 0 .../security/CWE-094/SpelInjectionTest.ql | 20 --- 6 files changed, 139 insertions(+), 34 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.expected rename java/ql/test/query-tests/security/CWE-094/{ => SpelInjection}/SpelInjectionTest.java (81%) create mode 100644 java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-094/SpelInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.ql diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.expected new file mode 100644 index 00000000000..37df514bac5 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.expected @@ -0,0 +1,120 @@ +#select +| SpelInjectionTest.java:24:5:24:14 | expression | SpelInjectionTest.java:16:22:16:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:24:5:24:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:16:22:16:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:35:5:35:14 | expression | SpelInjectionTest.java:28:22:28:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:35:5:35:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:28:22:28:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:46:5:46:14 | expression | SpelInjectionTest.java:39:22:39:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:46:5:46:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:39:22:39:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:60:5:60:14 | expression | SpelInjectionTest.java:50:22:50:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:60:5:60:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:50:22:50:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:71:5:71:14 | expression | SpelInjectionTest.java:64:22:64:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:71:5:71:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:64:22:64:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:82:5:82:14 | expression | SpelInjectionTest.java:75:22:75:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:82:5:82:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:75:22:75:44 | getInputStream(...) | user-provided value | +| SpelInjectionTest.java:95:5:95:14 | expression | SpelInjectionTest.java:86:22:86:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:95:5:95:14 | expression | SpEL expression depends on a $@. | SpelInjectionTest.java:86:22:86:44 | getInputStream(...) | user-provided value | +edges +| SpelInjectionTest.java:16:22:16:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:19:13:19:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:19:13:19:14 | in : InputStream | SpelInjectionTest.java:19:21:19:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:19:21:19:25 | bytes [post update] : byte[] | SpelInjectionTest.java:20:31:20:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:20:20:20:42 | new String(...) : String | SpelInjectionTest.java:23:52:23:56 | input : String | provenance | | +| SpelInjectionTest.java:20:31:20:35 | bytes : byte[] | SpelInjectionTest.java:20:20:20:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:23:29:23:57 | parseExpression(...) : Expression | SpelInjectionTest.java:24:5:24:14 | expression | provenance | | +| SpelInjectionTest.java:23:52:23:56 | input : String | SpelInjectionTest.java:23:29:23:57 | parseExpression(...) : Expression | provenance | Config | +| SpelInjectionTest.java:28:22:28:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:31:13:31:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:31:13:31:14 | in : InputStream | SpelInjectionTest.java:31:21:31:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:31:21:31:25 | bytes [post update] : byte[] | SpelInjectionTest.java:32:31:32:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:32:20:32:42 | new String(...) : String | SpelInjectionTest.java:34:49:34:53 | input : String | provenance | | +| SpelInjectionTest.java:32:31:32:35 | bytes : byte[] | SpelInjectionTest.java:32:20:32:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:34:33:34:54 | parseRaw(...) : SpelExpression | SpelInjectionTest.java:35:5:35:14 | expression | provenance | | +| SpelInjectionTest.java:34:49:34:53 | input : String | SpelInjectionTest.java:34:33:34:54 | parseRaw(...) : SpelExpression | provenance | Config | +| SpelInjectionTest.java:39:22:39:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:42:13:42:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:42:13:42:14 | in : InputStream | SpelInjectionTest.java:42:21:42:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:42:21:42:25 | bytes [post update] : byte[] | SpelInjectionTest.java:43:31:43:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:43:20:43:42 | new String(...) : String | SpelInjectionTest.java:45:72:45:76 | input : String | provenance | | +| SpelInjectionTest.java:43:31:43:35 | bytes : byte[] | SpelInjectionTest.java:43:20:43:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:45:29:45:77 | parseExpression(...) : Expression | SpelInjectionTest.java:46:5:46:14 | expression | provenance | | +| SpelInjectionTest.java:45:72:45:76 | input : String | SpelInjectionTest.java:45:29:45:77 | parseExpression(...) : Expression | provenance | Config | +| SpelInjectionTest.java:50:22:50:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:53:13:53:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:53:13:53:14 | in : InputStream | SpelInjectionTest.java:53:21:53:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:53:21:53:25 | bytes [post update] : byte[] | SpelInjectionTest.java:54:31:54:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:54:20:54:42 | new String(...) : String | SpelInjectionTest.java:56:72:56:76 | input : String | provenance | | +| SpelInjectionTest.java:54:31:54:35 | bytes : byte[] | SpelInjectionTest.java:54:20:54:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:56:29:56:77 | parseExpression(...) : Expression | SpelInjectionTest.java:60:5:60:14 | expression | provenance | | +| SpelInjectionTest.java:56:72:56:76 | input : String | SpelInjectionTest.java:56:29:56:77 | parseExpression(...) : Expression | provenance | Config | +| SpelInjectionTest.java:64:22:64:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:67:13:67:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:67:13:67:14 | in : InputStream | SpelInjectionTest.java:67:21:67:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:67:21:67:25 | bytes [post update] : byte[] | SpelInjectionTest.java:68:31:68:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:68:20:68:42 | new String(...) : String | SpelInjectionTest.java:70:52:70:56 | input : String | provenance | | +| SpelInjectionTest.java:68:31:68:35 | bytes : byte[] | SpelInjectionTest.java:68:20:68:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:70:29:70:57 | parseExpression(...) : Expression | SpelInjectionTest.java:71:5:71:14 | expression | provenance | | +| SpelInjectionTest.java:70:52:70:56 | input : String | SpelInjectionTest.java:70:29:70:57 | parseExpression(...) : Expression | provenance | Config | +| SpelInjectionTest.java:75:22:75:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:78:13:78:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:78:13:78:14 | in : InputStream | SpelInjectionTest.java:78:21:78:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:78:21:78:25 | bytes [post update] : byte[] | SpelInjectionTest.java:79:31:79:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:79:20:79:42 | new String(...) : String | SpelInjectionTest.java:81:52:81:56 | input : String | provenance | | +| SpelInjectionTest.java:79:31:79:35 | bytes : byte[] | SpelInjectionTest.java:79:20:79:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:81:29:81:57 | parseExpression(...) : Expression | SpelInjectionTest.java:82:5:82:14 | expression | provenance | | +| SpelInjectionTest.java:81:52:81:56 | input : String | SpelInjectionTest.java:81:29:81:57 | parseExpression(...) : Expression | provenance | Config | +| SpelInjectionTest.java:86:22:86:44 | getInputStream(...) : InputStream | SpelInjectionTest.java:89:13:89:14 | in : InputStream | provenance | Src:MaD:1 | +| SpelInjectionTest.java:89:13:89:14 | in : InputStream | SpelInjectionTest.java:89:21:89:25 | bytes [post update] : byte[] | provenance | MaD:2 | +| SpelInjectionTest.java:89:21:89:25 | bytes [post update] : byte[] | SpelInjectionTest.java:90:31:90:35 | bytes : byte[] | provenance | | +| SpelInjectionTest.java:90:20:90:42 | new String(...) : String | SpelInjectionTest.java:92:52:92:56 | input : String | provenance | | +| SpelInjectionTest.java:90:31:90:35 | bytes : byte[] | SpelInjectionTest.java:90:20:90:42 | new String(...) : String | provenance | MaD:3 | +| SpelInjectionTest.java:92:29:92:57 | parseExpression(...) : Expression | SpelInjectionTest.java:95:5:95:14 | expression | provenance | | +| SpelInjectionTest.java:92:52:92:56 | input : String | SpelInjectionTest.java:92:29:92:57 | parseExpression(...) : Expression | provenance | Config | +models +| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 2 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual | +| 3 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| SpelInjectionTest.java:16:22:16:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:19:13:19:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:19:21:19:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:20:20:20:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:20:31:20:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:23:29:23:57 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:23:52:23:56 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:24:5:24:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:28:22:28:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:31:13:31:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:31:21:31:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:32:20:32:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:32:31:32:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:34:33:34:54 | parseRaw(...) : SpelExpression | semmle.label | parseRaw(...) : SpelExpression | +| SpelInjectionTest.java:34:49:34:53 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:35:5:35:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:39:22:39:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:42:13:42:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:42:21:42:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:43:20:43:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:43:31:43:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:45:29:45:77 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:45:72:45:76 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:46:5:46:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:50:22:50:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:53:13:53:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:53:21:53:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:54:20:54:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:54:31:54:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:56:29:56:77 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:56:72:56:76 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:60:5:60:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:64:22:64:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:67:13:67:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:67:21:67:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:68:20:68:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:68:31:68:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:70:29:70:57 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:70:52:70:56 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:71:5:71:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:75:22:75:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:78:13:78:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:78:21:78:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:79:20:79:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:79:31:79:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:81:29:81:57 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:81:52:81:56 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:82:5:82:14 | expression | semmle.label | expression | +| SpelInjectionTest.java:86:22:86:44 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SpelInjectionTest.java:89:13:89:14 | in : InputStream | semmle.label | in : InputStream | +| SpelInjectionTest.java:89:21:89:25 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| SpelInjectionTest.java:90:20:90:42 | new String(...) : String | semmle.label | new String(...) : String | +| SpelInjectionTest.java:90:31:90:35 | bytes : byte[] | semmle.label | bytes : byte[] | +| SpelInjectionTest.java:92:29:92:57 | parseExpression(...) : Expression | semmle.label | parseExpression(...) : Expression | +| SpelInjectionTest.java:92:52:92:56 | input : String | semmle.label | input : String | +| SpelInjectionTest.java:95:5:95:14 | expression | semmle.label | expression | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.java b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.java similarity index 81% rename from java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.java rename to java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.java index d10bcfa6686..88c4e913d49 100644 --- a/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.java @@ -13,7 +13,7 @@ public class SpelInjectionTest { private static final ExpressionParser PARSER = new SpelExpressionParser(); public void testGetValue(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); @@ -21,33 +21,33 @@ public class SpelInjectionTest { ExpressionParser parser = new SpelExpressionParser(); Expression expression = parser.parseExpression(input); - expression.getValue(); // $hasSpelInjection + expression.getValue(); // $ Alert } public void testGetValueWithParseRaw(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); String input = new String(bytes, 0, n); SpelExpressionParser parser = new SpelExpressionParser(); SpelExpression expression = parser.parseRaw(input); - expression.getValue(); // $hasSpelInjection + expression.getValue(); // $ Alert } public void testGetValueWithChainedCalls(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); String input = new String(bytes, 0, n); Expression expression = new SpelExpressionParser().parseExpression(input); - expression.getValue(); // $hasSpelInjection + expression.getValue(); // $ Alert } public void testSetValueWithRootObject(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); @@ -57,33 +57,33 @@ public class SpelInjectionTest { Object root = new Object(); Object value = new Object(); - expression.setValue(root, value); // $hasSpelInjection + expression.setValue(root, value); // $ Alert } public void testGetValueWithStaticParser(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); String input = new String(bytes, 0, n); Expression expression = PARSER.parseExpression(input); - expression.getValue(); // $hasSpelInjection + expression.getValue(); // $ Alert } public void testGetValueType(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); String input = new String(bytes, 0, n); Expression expression = PARSER.parseExpression(input); - expression.getValueType(); // $hasSpelInjection + expression.getValueType(); // $ Alert } public void testWithStandardEvaluationContext(Socket socket) throws IOException { - InputStream in = socket.getInputStream(); + InputStream in = socket.getInputStream(); // $ Source byte[] bytes = new byte[1024]; int n = in.read(bytes); @@ -92,7 +92,7 @@ public class SpelInjectionTest { Expression expression = PARSER.parseExpression(input); StandardEvaluationContext context = new StandardEvaluationContext(); - expression.getValue(context); // $hasSpelInjection + expression.getValue(context); // $ Alert } public void testWithSimpleEvaluationContext(Socket socket) throws IOException { diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.qlref new file mode 100644 index 00000000000..5effbcb9829 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/SpelInjection/SpelInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-094/SpelInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjection/options b/java/ql/test/query-tests/security/CWE-094/SpelInjection/options new file mode 100644 index 00000000000..d7c8332682b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/SpelInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../../stubs/apache-commons-logging-1.2:${testdir}/../../../../stubs/mvel2-2.4.7:${testdir}/../../../../stubs/groovy-all-3.0.7:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/scriptengine:${testdir}/../../../../stubs/jsr223-api:${testdir}/../../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../../stubs/jinjava-2.6.0:${testdir}/../../../../stubs/pebble-3.1.5:${testdir}/../../../../stubs/thymeleaf-3.0.14:${testdir}/../../../../stubs/apache-velocity-2.3:${testdir}/../../../..//stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.ql b/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.ql deleted file mode 100644 index 727229e989d..00000000000 --- a/java/ql/test/query-tests/security/CWE-094/SpelInjectionTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import java -import semmle.code.java.dataflow.TaintTracking -import semmle.code.java.dataflow.FlowSources -import semmle.code.java.security.SpelInjectionQuery -import utils.test.InlineExpectationsTest - -module HasSpelInjectionTest implements TestSig { - string getARelevantTag() { result = "hasSpelInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasSpelInjection" and - exists(DataFlow::Node sink | SpelInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From c77875d83459bd3f0fa8e52656595f29ed1b09dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:34:18 +0200 Subject: [PATCH 272/340] Java: convert TemplateInjection test to .qlref --- .../FreemarkerSSTI.java | 36 ++-- .../{ => TemplateInjection}/JinJavaSSTI.java | 12 +- .../{ => TemplateInjection}/PebbleSSTI.java | 8 +- .../TemplateInjectionTest.expected | 171 ++++++++++++++++++ .../TemplateInjectionTest.qlref | 4 + .../ThymeleafSSTI.java | 20 +- .../{ => TemplateInjection}/VelocitySSTI.java | 22 +-- .../CWE-094/TemplateInjection/options | 1 + .../CWE-094/TemplateInjectionTest.expected | 0 .../security/CWE-094/TemplateInjectionTest.ql | 18 -- 10 files changed, 225 insertions(+), 67 deletions(-) rename java/ql/test/query-tests/security/CWE-094/{ => TemplateInjection}/FreemarkerSSTI.java (74%) rename java/ql/test/query-tests/security/CWE-094/{ => TemplateInjection}/JinJavaSSTI.java (81%) rename java/ql/test/query-tests/security/CWE-094/{ => TemplateInjection}/PebbleSSTI.java (80%) create mode 100644 java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.expected create mode 100644 java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.qlref rename java/ql/test/query-tests/security/CWE-094/{ => TemplateInjection}/ThymeleafSSTI.java (66%) rename java/ql/test/query-tests/security/CWE-094/{ => TemplateInjection}/VelocitySSTI.java (83%) create mode 100644 java/ql/test/query-tests/security/CWE-094/TemplateInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.ql diff --git a/java/ql/test/query-tests/security/CWE-094/FreemarkerSSTI.java b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/FreemarkerSSTI.java similarity index 74% rename from java/ql/test/query-tests/security/CWE-094/FreemarkerSSTI.java rename to java/ql/test/query-tests/security/CWE-094/TemplateInjection/FreemarkerSSTI.java index 31eb634a5fe..a39ed8c5a4e 100644 --- a/java/ql/test/query-tests/security/CWE-094/FreemarkerSSTI.java +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/FreemarkerSSTI.java @@ -20,88 +20,88 @@ public class FreemarkerSSTI { @GetMapping(value = "bad1") public void bad1(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Reader reader = new StringReader(code); - Template t = new Template(name, reader); // $hasTemplateInjection + Template t = new Template(name, reader); // $ Alert } @GetMapping(value = "bad2") public void bad2(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Reader reader = new StringReader(code); Configuration cfg = new Configuration(); - Template t = new Template(name, reader, cfg); // $hasTemplateInjection + Template t = new Template(name, reader, cfg); // $ Alert } @GetMapping(value = "bad3") public void bad3(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Reader reader = new StringReader(code); Configuration cfg = new Configuration(); - Template t = new Template(name, reader, cfg, "UTF-8"); // $hasTemplateInjection + Template t = new Template(name, reader, cfg, "UTF-8"); // $ Alert } @GetMapping(value = "bad4") public void bad4(HttpServletRequest request) { String name = "ttemplate"; - String sourceCode = request.getParameter("sourceCode"); + String sourceCode = request.getParameter("sourceCode"); // $ Source Configuration cfg = new Configuration(); - Template t = new Template(name, sourceCode, cfg); // $hasTemplateInjection + Template t = new Template(name, sourceCode, cfg); // $ Alert } @GetMapping(value = "bad5") public void bad5(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Configuration cfg = new Configuration(); Reader reader = new StringReader(code); - Template t = new Template(name, sourceName, reader, cfg); // $hasTemplateInjection + Template t = new Template(name, sourceName, reader, cfg); // $ Alert } @GetMapping(value = "bad6") public void bad6(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Configuration cfg = new Configuration(); ParserConfiguration customParserConfiguration = new Configuration(); Reader reader = new StringReader(code); Template t = - new Template(name, sourceName, reader, cfg, customParserConfiguration, "UTF-8"); // $hasTemplateInjection + new Template(name, sourceName, reader, cfg, customParserConfiguration, "UTF-8"); // $ Alert } @GetMapping(value = "bad7") public void bad7(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source Configuration cfg = new Configuration(); ParserConfiguration customParserConfiguration = new Configuration(); Reader reader = new StringReader(code); - Template t = new Template(name, sourceName, reader, cfg, "UTF-8"); // $hasTemplateInjection + Template t = new Template(name, sourceName, reader, cfg, "UTF-8"); // $ Alert } @GetMapping(value = "bad8") public void bad8(HttpServletRequest request) { - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source StringTemplateLoader stringLoader = new StringTemplateLoader(); - stringLoader.putTemplate("myTemplate", code); // $hasTemplateInjection + stringLoader.putTemplate("myTemplate", code); // $ Alert } @GetMapping(value = "bad9") public void bad9(HttpServletRequest request) { - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source StringTemplateLoader stringLoader = new StringTemplateLoader(); - stringLoader.putTemplate("myTemplate", code, 0); // $hasTemplateInjection + stringLoader.putTemplate("myTemplate", code, 0); // $ Alert } @GetMapping(value = "good1") diff --git a/java/ql/test/query-tests/security/CWE-094/JinJavaSSTI.java b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/JinJavaSSTI.java similarity index 81% rename from java/ql/test/query-tests/security/CWE-094/JinJavaSSTI.java rename to java/ql/test/query-tests/security/CWE-094/TemplateInjection/JinJavaSSTI.java index 4341a44f192..9bd9bad4ca8 100644 --- a/java/ql/test/query-tests/security/CWE-094/JinJavaSSTI.java +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/JinJavaSSTI.java @@ -18,27 +18,27 @@ public class JinJavaSSTI { @GetMapping(value = "bad1") public void bad1(HttpServletRequest request) { - String template = request.getParameter("template"); + String template = request.getParameter("template"); // $ Source Jinjava jinjava = new Jinjava(); Map context = new HashMap<>(); - String renderedTemplate = jinjava.render(template, context); // $hasTemplateInjection + String renderedTemplate = jinjava.render(template, context); // $ Alert } @GetMapping(value = "bad2") public void bad2(HttpServletRequest request) { - String template = request.getParameter("template"); + String template = request.getParameter("template"); // $ Source Jinjava jinjava = new Jinjava(); Map bindings = new HashMap<>(); - RenderResult renderResult = jinjava.renderForResult(template, bindings); // $hasTemplateInjection + RenderResult renderResult = jinjava.renderForResult(template, bindings); // $ Alert } @GetMapping(value = "bad3") public void bad3(HttpServletRequest request) { - String template = request.getParameter("template"); + String template = request.getParameter("template"); // $ Source Jinjava jinjava = new Jinjava(); Map bindings = new HashMap<>(); JinjavaConfig renderConfig = new JinjavaConfig(); - RenderResult renderResult = jinjava.renderForResult(template, bindings, renderConfig); // $hasTemplateInjection + RenderResult renderResult = jinjava.renderForResult(template, bindings, renderConfig); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-094/PebbleSSTI.java b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/PebbleSSTI.java similarity index 80% rename from java/ql/test/query-tests/security/CWE-094/PebbleSSTI.java rename to java/ql/test/query-tests/security/CWE-094/TemplateInjection/PebbleSSTI.java index c026f98645b..45beaf46fa1 100644 --- a/java/ql/test/query-tests/security/CWE-094/PebbleSSTI.java +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/PebbleSSTI.java @@ -15,15 +15,15 @@ public class PebbleSSTI { @GetMapping(value = "bad1") public void bad1(HttpServletRequest request) { - String templateName = request.getParameter("templateName"); + String templateName = request.getParameter("templateName"); // $ Source PebbleEngine engine = new PebbleEngine.Builder().build(); - PebbleTemplate compiledTemplate = engine.getTemplate(templateName); // $hasTemplateInjection + PebbleTemplate compiledTemplate = engine.getTemplate(templateName); // $ Alert } @GetMapping(value = "bad2") public void bad2(HttpServletRequest request) { - String templateName = request.getParameter("templateName"); + String templateName = request.getParameter("templateName"); // $ Source PebbleEngine engine = new PebbleEngine.Builder().build(); - PebbleTemplate compiledTemplate = engine.getLiteralTemplate(templateName); // $hasTemplateInjection + PebbleTemplate compiledTemplate = engine.getLiteralTemplate(templateName); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.expected new file mode 100644 index 00000000000..6727f69b538 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.expected @@ -0,0 +1,171 @@ +#select +| FreemarkerSSTI.java:26:35:26:40 | reader | FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | FreemarkerSSTI.java:26:35:26:40 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:23:17:23:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:36:35:36:40 | reader | FreemarkerSSTI.java:32:17:32:44 | getParameter(...) : String | FreemarkerSSTI.java:36:35:36:40 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:32:17:32:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:46:35:46:40 | reader | FreemarkerSSTI.java:42:17:42:44 | getParameter(...) : String | FreemarkerSSTI.java:46:35:46:40 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:42:17:42:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:55:35:55:44 | sourceCode | FreemarkerSSTI.java:52:23:52:56 | getParameter(...) : String | FreemarkerSSTI.java:55:35:55:44 | sourceCode | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:52:23:52:56 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:65:47:65:52 | reader | FreemarkerSSTI.java:61:17:61:44 | getParameter(...) : String | FreemarkerSSTI.java:65:47:65:52 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:61:17:61:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:77:36:77:41 | reader | FreemarkerSSTI.java:71:17:71:44 | getParameter(...) : String | FreemarkerSSTI.java:77:36:77:41 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:71:17:71:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:88:47:88:52 | reader | FreemarkerSSTI.java:83:17:83:44 | getParameter(...) : String | FreemarkerSSTI.java:88:47:88:52 | reader | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:83:17:83:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:96:42:96:45 | code | FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | FreemarkerSSTI.java:96:42:96:45 | code | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:93:17:93:44 | getParameter(...) | user-provided value | +| FreemarkerSSTI.java:104:42:104:45 | code | FreemarkerSSTI.java:101:17:101:44 | getParameter(...) : String | FreemarkerSSTI.java:104:42:104:45 | code | Template, which may contain code, depends on a $@. | FreemarkerSSTI.java:101:17:101:44 | getParameter(...) | user-provided value | +| JinJavaSSTI.java:24:44:24:51 | template | JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | JinJavaSSTI.java:24:44:24:51 | template | Template, which may contain code, depends on a $@. | JinJavaSSTI.java:21:21:21:52 | getParameter(...) | user-provided value | +| JinJavaSSTI.java:32:55:32:62 | template | JinJavaSSTI.java:29:21:29:52 | getParameter(...) : String | JinJavaSSTI.java:32:55:32:62 | template | Template, which may contain code, depends on a $@. | JinJavaSSTI.java:29:21:29:52 | getParameter(...) | user-provided value | +| JinJavaSSTI.java:42:55:42:62 | template | JinJavaSSTI.java:37:21:37:52 | getParameter(...) : String | JinJavaSSTI.java:42:55:42:62 | template | Template, which may contain code, depends on a $@. | JinJavaSSTI.java:37:21:37:52 | getParameter(...) | user-provided value | +| PebbleSSTI.java:20:56:20:67 | templateName | PebbleSSTI.java:18:25:18:60 | getParameter(...) : String | PebbleSSTI.java:20:56:20:67 | templateName | Template, which may contain code, depends on a $@. | PebbleSSTI.java:18:25:18:60 | getParameter(...) | user-provided value | +| PebbleSSTI.java:27:63:27:74 | templateName | PebbleSSTI.java:25:25:25:60 | getParameter(...) : String | PebbleSSTI.java:27:63:27:74 | templateName | Template, which may contain code, depends on a $@. | PebbleSSTI.java:25:25:25:60 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:24:27:24:30 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:24:27:24:30 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:25:27:25:30 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:25:27:25:30 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:26:27:26:30 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:26:27:26:30 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:27:27:27:30 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:27:27:27:30 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:28:36:28:39 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:28:36:28:39 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:29:36:29:39 | code | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:29:36:29:39 | code | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:32:27:32:30 | spec | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:32:27:32:30 | spec | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:33:27:33:30 | spec | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:33:27:33:30 | spec | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| ThymeleafSSTI.java:34:36:34:39 | spec | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:34:36:34:39 | spec | Template, which may contain code, depends on a $@. | ThymeleafSSTI.java:21:17:21:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:37:45:37:48 | code | VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | VelocitySSTI.java:37:45:37:48 | code | Template, which may contain code, depends on a $@. | VelocitySSTI.java:31:17:31:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:51:45:51:50 | reader | VelocitySSTI.java:43:17:43:44 | getParameter(...) : String | VelocitySSTI.java:51:45:51:50 | reader | Template, which may contain code, depends on a $@. | VelocitySSTI.java:43:17:43:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:61:25:61:30 | reader | VelocitySSTI.java:57:17:57:44 | getParameter(...) : String | VelocitySSTI.java:61:25:61:30 | reader | Template, which may contain code, depends on a $@. | VelocitySSTI.java:57:17:57:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:93:37:93:40 | code | VelocitySSTI.java:81:17:81:44 | getParameter(...) : String | VelocitySSTI.java:93:37:93:40 | code | Template, which may contain code, depends on a $@. | VelocitySSTI.java:81:17:81:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:94:37:94:58 | new StringReader(...) | VelocitySSTI.java:81:17:81:44 | getParameter(...) : String | VelocitySSTI.java:94:37:94:58 | new StringReader(...) | Template, which may contain code, depends on a $@. | VelocitySSTI.java:81:17:81:44 | getParameter(...) | user-provided value | +| VelocitySSTI.java:117:37:117:40 | code | VelocitySSTI.java:114:17:114:44 | getParameter(...) : String | VelocitySSTI.java:117:37:117:40 | code | Template, which may contain code, depends on a $@. | VelocitySSTI.java:114:17:114:44 | getParameter(...) | user-provided value | +edges +| FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | FreemarkerSSTI.java:24:36:24:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:26:35:26:40 | reader | provenance | Sink:MaD:6 | +| FreemarkerSSTI.java:24:36:24:39 | code : String | FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:32:17:32:44 | getParameter(...) : String | FreemarkerSSTI.java:33:36:33:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:33:19:33:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:36:35:36:40 | reader | provenance | Sink:MaD:7 | +| FreemarkerSSTI.java:33:36:33:39 | code : String | FreemarkerSSTI.java:33:19:33:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:42:17:42:44 | getParameter(...) : String | FreemarkerSSTI.java:43:36:43:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:43:19:43:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:46:35:46:40 | reader | provenance | Sink:MaD:8 | +| FreemarkerSSTI.java:43:36:43:39 | code : String | FreemarkerSSTI.java:43:19:43:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:52:23:52:56 | getParameter(...) : String | FreemarkerSSTI.java:55:35:55:44 | sourceCode | provenance | Src:MaD:19 Sink:MaD:9 | +| FreemarkerSSTI.java:61:17:61:44 | getParameter(...) : String | FreemarkerSSTI.java:63:36:63:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:63:19:63:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:65:47:65:52 | reader | provenance | Sink:MaD:10 | +| FreemarkerSSTI.java:63:36:63:39 | code : String | FreemarkerSSTI.java:63:19:63:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:71:17:71:44 | getParameter(...) : String | FreemarkerSSTI.java:74:36:74:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:74:19:74:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:77:36:77:41 | reader | provenance | Sink:MaD:11 | +| FreemarkerSSTI.java:74:36:74:39 | code : String | FreemarkerSSTI.java:74:19:74:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:83:17:83:44 | getParameter(...) : String | FreemarkerSSTI.java:86:36:86:39 | code : String | provenance | Src:MaD:19 | +| FreemarkerSSTI.java:86:19:86:40 | new StringReader(...) : StringReader | FreemarkerSSTI.java:88:47:88:52 | reader | provenance | Sink:MaD:12 | +| FreemarkerSSTI.java:86:36:86:39 | code : String | FreemarkerSSTI.java:86:19:86:40 | new StringReader(...) : StringReader | provenance | MaD:20 | +| FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | FreemarkerSSTI.java:96:42:96:45 | code | provenance | Src:MaD:19 Sink:MaD:5 | +| FreemarkerSSTI.java:101:17:101:44 | getParameter(...) : String | FreemarkerSSTI.java:104:42:104:45 | code | provenance | Src:MaD:19 Sink:MaD:5 | +| JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | JinJavaSSTI.java:24:44:24:51 | template | provenance | Src:MaD:19 Sink:MaD:1 | +| JinJavaSSTI.java:29:21:29:52 | getParameter(...) : String | JinJavaSSTI.java:32:55:32:62 | template | provenance | Src:MaD:19 Sink:MaD:2 | +| JinJavaSSTI.java:37:21:37:52 | getParameter(...) : String | JinJavaSSTI.java:42:55:42:62 | template | provenance | Src:MaD:19 Sink:MaD:2 | +| PebbleSSTI.java:18:25:18:60 | getParameter(...) : String | PebbleSSTI.java:20:56:20:67 | templateName | provenance | Src:MaD:19 Sink:MaD:4 | +| PebbleSSTI.java:25:25:25:60 | getParameter(...) : String | PebbleSSTI.java:27:63:27:74 | templateName | provenance | Src:MaD:19 Sink:MaD:3 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:24:27:24:30 | code | provenance | Src:MaD:19 Sink:MaD:17 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:25:27:25:30 | code | provenance | Src:MaD:19 Sink:MaD:17 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:26:27:26:30 | code | provenance | Src:MaD:19 Sink:MaD:17 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:27:27:27:30 | code | provenance | Src:MaD:19 Sink:MaD:17 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:28:36:28:39 | code | provenance | Src:MaD:19 Sink:MaD:18 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:29:36:29:39 | code | provenance | Src:MaD:19 Sink:MaD:18 | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | ThymeleafSSTI.java:31:41:31:44 | code : String | provenance | Src:MaD:19 | +| ThymeleafSSTI.java:31:24:31:49 | new TemplateSpec(...) : TemplateSpec | ThymeleafSSTI.java:32:27:32:30 | spec | provenance | Sink:MaD:17 | +| ThymeleafSSTI.java:31:24:31:49 | new TemplateSpec(...) : TemplateSpec | ThymeleafSSTI.java:33:27:33:30 | spec | provenance | Sink:MaD:17 | +| ThymeleafSSTI.java:31:24:31:49 | new TemplateSpec(...) : TemplateSpec | ThymeleafSSTI.java:34:36:34:39 | spec | provenance | Sink:MaD:18 | +| ThymeleafSSTI.java:31:41:31:44 | code : String | ThymeleafSSTI.java:31:24:31:49 | new TemplateSpec(...) : TemplateSpec | provenance | MaD:21 | +| VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | VelocitySSTI.java:37:45:37:48 | code | provenance | Src:MaD:19 Sink:MaD:13 | +| VelocitySSTI.java:43:17:43:44 | getParameter(...) : String | VelocitySSTI.java:49:42:49:45 | code : String | provenance | Src:MaD:19 | +| VelocitySSTI.java:49:25:49:46 | new StringReader(...) : StringReader | VelocitySSTI.java:51:45:51:50 | reader | provenance | Sink:MaD:13 | +| VelocitySSTI.java:49:42:49:45 | code : String | VelocitySSTI.java:49:25:49:46 | new StringReader(...) : StringReader | provenance | MaD:20 | +| VelocitySSTI.java:57:17:57:44 | getParameter(...) : String | VelocitySSTI.java:60:42:60:45 | code : String | provenance | Src:MaD:19 | +| VelocitySSTI.java:60:25:60:46 | new StringReader(...) : StringReader | VelocitySSTI.java:61:25:61:30 | reader | provenance | Sink:MaD:16 | +| VelocitySSTI.java:60:42:60:45 | code : String | VelocitySSTI.java:60:25:60:46 | new StringReader(...) : StringReader | provenance | MaD:20 | +| VelocitySSTI.java:81:17:81:44 | getParameter(...) : String | VelocitySSTI.java:93:37:93:40 | code | provenance | Src:MaD:19 Sink:MaD:14 | +| VelocitySSTI.java:81:17:81:44 | getParameter(...) : String | VelocitySSTI.java:94:54:94:57 | code : String | provenance | Src:MaD:19 | +| VelocitySSTI.java:94:54:94:57 | code : String | VelocitySSTI.java:94:37:94:58 | new StringReader(...) | provenance | MaD:20 Sink:MaD:14 | +| VelocitySSTI.java:114:17:114:44 | getParameter(...) : String | VelocitySSTI.java:117:37:117:40 | code | provenance | Src:MaD:19 Sink:MaD:15 | +models +| 1 | Sink: com.hubspot.jinjava; Jinjava; true; render; ; ; Argument[0]; template-injection; manual | +| 2 | Sink: com.hubspot.jinjava; Jinjava; true; renderForResult; ; ; Argument[0]; template-injection; manual | +| 3 | Sink: com.mitchellbosecke.pebble; PebbleEngine; true; getLiteralTemplate; ; ; Argument[0]; template-injection; manual | +| 4 | Sink: com.mitchellbosecke.pebble; PebbleEngine; true; getTemplate; ; ; Argument[0]; template-injection; manual | +| 5 | Sink: freemarker.cache; StringTemplateLoader; true; putTemplate; ; ; Argument[1]; template-injection; manual | +| 6 | Sink: freemarker.template; Template; true; Template; (String,Reader); ; Argument[1]; template-injection; manual | +| 7 | Sink: freemarker.template; Template; true; Template; (String,Reader,Configuration); ; Argument[1]; template-injection; manual | +| 8 | Sink: freemarker.template; Template; true; Template; (String,Reader,Configuration,String); ; Argument[1]; template-injection; manual | +| 9 | Sink: freemarker.template; Template; true; Template; (String,String,Configuration); ; Argument[1]; template-injection; manual | +| 10 | Sink: freemarker.template; Template; true; Template; (String,String,Reader,Configuration); ; Argument[2]; template-injection; manual | +| 11 | Sink: freemarker.template; Template; true; Template; (String,String,Reader,Configuration,ParserConfiguration,String); ; Argument[2]; template-injection; manual | +| 12 | Sink: freemarker.template; Template; true; Template; (String,String,Reader,Configuration,String); ; Argument[2]; template-injection; manual | +| 13 | Sink: org.apache.velocity.app; Velocity; true; evaluate; ; ; Argument[3]; template-injection; manual | +| 14 | Sink: org.apache.velocity.app; VelocityEngine; true; evaluate; ; ; Argument[3]; template-injection; manual | +| 15 | Sink: org.apache.velocity.runtime.resource.util; StringResourceRepository; true; putStringResource; ; ; Argument[1]; template-injection; manual | +| 16 | Sink: org.apache.velocity.runtime; RuntimeServices; true; parse; ; ; Argument[0]; template-injection; manual | +| 17 | Sink: org.thymeleaf; ITemplateEngine; true; process; ; ; Argument[0]; template-injection; manual | +| 18 | Sink: org.thymeleaf; ITemplateEngine; true; processThrottled; ; ; Argument[0]; template-injection; manual | +| 19 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 20 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 21 | Summary: org.thymeleaf; TemplateSpec; false; TemplateSpec; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| FreemarkerSSTI.java:23:17:23:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:24:19:24:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:24:36:24:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:26:35:26:40 | reader | semmle.label | reader | +| FreemarkerSSTI.java:32:17:32:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:33:19:33:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:33:36:33:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:36:35:36:40 | reader | semmle.label | reader | +| FreemarkerSSTI.java:42:17:42:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:43:19:43:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:43:36:43:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:46:35:46:40 | reader | semmle.label | reader | +| FreemarkerSSTI.java:52:23:52:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:55:35:55:44 | sourceCode | semmle.label | sourceCode | +| FreemarkerSSTI.java:61:17:61:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:63:19:63:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:63:36:63:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:65:47:65:52 | reader | semmle.label | reader | +| FreemarkerSSTI.java:71:17:71:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:74:19:74:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:74:36:74:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:77:36:77:41 | reader | semmle.label | reader | +| FreemarkerSSTI.java:83:17:83:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:86:19:86:40 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| FreemarkerSSTI.java:86:36:86:39 | code : String | semmle.label | code : String | +| FreemarkerSSTI.java:88:47:88:52 | reader | semmle.label | reader | +| FreemarkerSSTI.java:93:17:93:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:96:42:96:45 | code | semmle.label | code | +| FreemarkerSSTI.java:101:17:101:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FreemarkerSSTI.java:104:42:104:45 | code | semmle.label | code | +| JinJavaSSTI.java:21:21:21:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JinJavaSSTI.java:24:44:24:51 | template | semmle.label | template | +| JinJavaSSTI.java:29:21:29:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JinJavaSSTI.java:32:55:32:62 | template | semmle.label | template | +| JinJavaSSTI.java:37:21:37:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JinJavaSSTI.java:42:55:42:62 | template | semmle.label | template | +| PebbleSSTI.java:18:25:18:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PebbleSSTI.java:20:56:20:67 | templateName | semmle.label | templateName | +| PebbleSSTI.java:25:25:25:60 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PebbleSSTI.java:27:63:27:74 | templateName | semmle.label | templateName | +| ThymeleafSSTI.java:21:17:21:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ThymeleafSSTI.java:24:27:24:30 | code | semmle.label | code | +| ThymeleafSSTI.java:25:27:25:30 | code | semmle.label | code | +| ThymeleafSSTI.java:26:27:26:30 | code | semmle.label | code | +| ThymeleafSSTI.java:27:27:27:30 | code | semmle.label | code | +| ThymeleafSSTI.java:28:36:28:39 | code | semmle.label | code | +| ThymeleafSSTI.java:29:36:29:39 | code | semmle.label | code | +| ThymeleafSSTI.java:31:24:31:49 | new TemplateSpec(...) : TemplateSpec | semmle.label | new TemplateSpec(...) : TemplateSpec | +| ThymeleafSSTI.java:31:41:31:44 | code : String | semmle.label | code : String | +| ThymeleafSSTI.java:32:27:32:30 | spec | semmle.label | spec | +| ThymeleafSSTI.java:33:27:33:30 | spec | semmle.label | spec | +| ThymeleafSSTI.java:34:36:34:39 | spec | semmle.label | spec | +| VelocitySSTI.java:31:17:31:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| VelocitySSTI.java:37:45:37:48 | code | semmle.label | code | +| VelocitySSTI.java:43:17:43:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| VelocitySSTI.java:49:25:49:46 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| VelocitySSTI.java:49:42:49:45 | code : String | semmle.label | code : String | +| VelocitySSTI.java:51:45:51:50 | reader | semmle.label | reader | +| VelocitySSTI.java:57:17:57:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| VelocitySSTI.java:60:25:60:46 | new StringReader(...) : StringReader | semmle.label | new StringReader(...) : StringReader | +| VelocitySSTI.java:60:42:60:45 | code : String | semmle.label | code : String | +| VelocitySSTI.java:61:25:61:30 | reader | semmle.label | reader | +| VelocitySSTI.java:81:17:81:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| VelocitySSTI.java:93:37:93:40 | code | semmle.label | code | +| VelocitySSTI.java:94:37:94:58 | new StringReader(...) | semmle.label | new StringReader(...) | +| VelocitySSTI.java:94:54:94:57 | code : String | semmle.label | code : String | +| VelocitySSTI.java:114:17:114:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| VelocitySSTI.java:117:37:117:40 | code | semmle.label | code | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.qlref new file mode 100644 index 00000000000..e346322b6d4 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/TemplateInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-094/TemplateInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-094/ThymeleafSSTI.java b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/ThymeleafSSTI.java similarity index 66% rename from java/ql/test/query-tests/security/CWE-094/ThymeleafSSTI.java rename to java/ql/test/query-tests/security/CWE-094/TemplateInjection/ThymeleafSSTI.java index 4b390668948..669b287ea79 100644 --- a/java/ql/test/query-tests/security/CWE-094/ThymeleafSSTI.java +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/ThymeleafSSTI.java @@ -18,20 +18,20 @@ import org.thymeleaf.context.Context; public class ThymeleafSSTI { @GetMapping(value = "bad1") public void bad1(HttpServletRequest request) { - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source try { TemplateEngine templateEngine = new TemplateEngine(); - templateEngine.process(code, (Set) null, (Context) null); // $hasTemplateInjection - templateEngine.process(code, (Set) null, (Context) null, (Writer) null); // $hasTemplateInjection - templateEngine.process(code, (Context) null); // $hasTemplateInjection - templateEngine.process(code, (Context) null, (Writer) null); // $hasTemplateInjection - templateEngine.processThrottled(code, (Set) null, (Context) null); // $hasTemplateInjection - templateEngine.processThrottled(code, (Context) null); // $hasTemplateInjection + templateEngine.process(code, (Set) null, (Context) null); // $ Alert + templateEngine.process(code, (Set) null, (Context) null, (Writer) null); // $ Alert + templateEngine.process(code, (Context) null); // $ Alert + templateEngine.process(code, (Context) null, (Writer) null); // $ Alert + templateEngine.processThrottled(code, (Set) null, (Context) null); // $ Alert + templateEngine.processThrottled(code, (Context) null); // $ Alert TemplateSpec spec = new TemplateSpec(code, ""); - templateEngine.process(spec, (Context) null); // $hasTemplateInjection - templateEngine.process(spec, (Context) null, (Writer) null); // $hasTemplateInjection - templateEngine.processThrottled(spec, (Context) null); // $hasTemplateInjection + templateEngine.process(spec, (Context) null); // $ Alert + templateEngine.process(spec, (Context) null, (Writer) null); // $ Alert + templateEngine.processThrottled(spec, (Context) null); // $ Alert } catch (Exception e) { } } diff --git a/java/ql/test/query-tests/security/CWE-094/VelocitySSTI.java b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/VelocitySSTI.java similarity index 83% rename from java/ql/test/query-tests/security/CWE-094/VelocitySSTI.java rename to java/ql/test/query-tests/security/CWE-094/TemplateInjection/VelocitySSTI.java index 09c7a07058f..463a653525e 100644 --- a/java/ql/test/query-tests/security/CWE-094/VelocitySSTI.java +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/VelocitySSTI.java @@ -28,19 +28,19 @@ public class VelocitySSTI { @GetMapping(value = "bad1") public void bad1(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source VelocityContext context = null; String s = "We are using $project $name to render this."; StringWriter w = new StringWriter(); - Velocity.evaluate(context, w, "mystring", code); // $hasTemplateInjection + Velocity.evaluate(context, w, "mystring", code); // $ Alert } @GetMapping(value = "bad2") public void bad2(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source VelocityContext context = null; @@ -48,17 +48,17 @@ public class VelocitySSTI { StringWriter w = new StringWriter(); StringReader reader = new StringReader(code); - Velocity.evaluate(context, w, "mystring", reader); // $hasTemplateInjection + Velocity.evaluate(context, w, "mystring", reader); // $ Alert } @GetMapping(value = "bad3") public void bad3(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source RuntimeServices runtimeServices = null; StringReader reader = new StringReader(code); - runtimeServices.parse(reader, new Template()); // $hasTemplateInjection + runtimeServices.parse(reader, new Template()); // $ Alert } @GetMapping(value = "good1") @@ -78,7 +78,7 @@ public class VelocitySSTI { @GetMapping(value = "bad5") public void bad5(HttpServletRequest request) { String name = "ttemplate"; - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source VelocityContext context = new VelocityContext(); context.put("code", code); @@ -90,8 +90,8 @@ public class VelocitySSTI { ctx.put("key", code); engine.evaluate(ctx, null, null, (String) null); // Safe engine.evaluate(ctx, null, null, (Reader) null); // Safe - engine.evaluate(null, null, null, code); // $hasTemplateInjection - engine.evaluate(null, null, null, new StringReader(code)); // $hasTemplateInjection + engine.evaluate(null, null, null, code); // $ Alert + engine.evaluate(null, null, null, new StringReader(code)); // $ Alert } @GetMapping(value = "good2") @@ -111,10 +111,10 @@ public class VelocitySSTI { @GetMapping(value = "bad6") public void bad6(HttpServletRequest request) { - String code = request.getParameter("code"); + String code = request.getParameter("code"); // $ Source StringResourceRepository repo = new StringResourceRepositoryImpl(); - repo.putStringResource("woogie2", code); // $hasTemplateInjection + repo.putStringResource("woogie2", code); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateInjection/options b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/options new file mode 100644 index 00000000000..d7c8332682b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-094/TemplateInjection/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/validation-api-2.0.1.Final:${testdir}/../../../../stubs/springframework-5.8.x:${testdir}/../../../../stubs/apache-commons-jexl-2.1.1:${testdir}/../../../../stubs/apache-commons-jexl-3.1:${testdir}/../../../../stubs/apache-commons-logging-1.2:${testdir}/../../../../stubs/mvel2-2.4.7:${testdir}/../../../../stubs/groovy-all-3.0.7:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/scriptengine:${testdir}/../../../../stubs/jsr223-api:${testdir}/../../../../stubs/apache-freemarker-2.3.31:${testdir}/../../../../stubs/jinjava-2.6.0:${testdir}/../../../../stubs/pebble-3.1.5:${testdir}/../../../../stubs/thymeleaf-3.0.14:${testdir}/../../../../stubs/apache-velocity-2.3:${testdir}/../../../..//stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.expected b/java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.ql b/java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.ql deleted file mode 100644 index 809175bcd37..00000000000 --- a/java/ql/test/query-tests/security/CWE-094/TemplateInjectionTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.TemplateInjectionQuery -import utils.test.InlineExpectationsTest - -module TemplateInjectionTest implements TestSig { - string getARelevantTag() { result = "hasTemplateInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasTemplateInjection" and - exists(DataFlow::Node sink | TemplateInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From b736e3733c1fb379c8e7034fbb2d97657cdc3572 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:45:56 +0200 Subject: [PATCH 273/340] Java: convert IntentUriPermissionManipulation test to .qlref --- ...tentUriPermissionManipulationTest.expected | 43 +++++++++++++++++++ .../IntentUriPermissionManipulationTest.ql | 4 -- .../IntentUriPermissionManipulationTest.qlref | 4 ++ .../security/CWE-266/MainActivity.java | 34 +++++++-------- 4 files changed, 64 insertions(+), 21 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.expected b/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.expected index e69de29bb2d..d96abdbd6bc 100644 --- a/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.expected +++ b/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.expected @@ -0,0 +1,43 @@ +#select +| MainActivity.java:13:34:13:39 | intent | MainActivity.java:12:29:12:39 | getIntent(...) : Intent | MainActivity.java:13:34:13:39 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:12:29:12:39 | getIntent(...) | user-provided value | +| MainActivity.java:17:34:17:44 | extraIntent | MainActivity.java:16:43:16:53 | getIntent(...) : Intent | MainActivity.java:17:34:17:44 | extraIntent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:16:43:16:53 | getIntent(...) | user-provided value | +| MainActivity.java:33:34:33:39 | intent | MainActivity.java:30:29:30:39 | getIntent(...) : Intent | MainActivity.java:33:34:33:39 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:30:29:30:39 | getIntent(...) | user-provided value | +| MainActivity.java:46:34:46:39 | intent | MainActivity.java:42:29:42:39 | getIntent(...) : Intent | MainActivity.java:46:34:46:39 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:42:29:42:39 | getIntent(...) | user-provided value | +| MainActivity.java:52:34:52:39 | intent | MainActivity.java:49:29:49:39 | getIntent(...) : Intent | MainActivity.java:52:34:52:39 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:49:29:49:39 | getIntent(...) | user-provided value | +| MainActivity.java:60:38:60:43 | intent | MainActivity.java:55:29:55:39 | getIntent(...) : Intent | MainActivity.java:60:38:60:43 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:55:29:55:39 | getIntent(...) | user-provided value | +| MainActivity.java:71:38:71:43 | intent | MainActivity.java:64:29:64:39 | getIntent(...) : Intent | MainActivity.java:71:38:71:43 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:64:29:64:39 | getIntent(...) | user-provided value | +| MainActivity.java:81:38:81:43 | intent | MainActivity.java:75:29:75:39 | getIntent(...) : Intent | MainActivity.java:81:38:81:43 | intent | This Intent can be set with arbitrary flags from a $@, and used to give access to internal content providers. | MainActivity.java:75:29:75:39 | getIntent(...) | user-provided value | +edges +| MainActivity.java:12:29:12:39 | getIntent(...) : Intent | MainActivity.java:13:34:13:39 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:16:34:16:87 | (...)... : Intent | MainActivity.java:17:34:17:44 | extraIntent | provenance | Sink:MaD:1 | +| MainActivity.java:16:43:16:53 | getIntent(...) : Intent | MainActivity.java:16:43:16:87 | getParcelableExtra(...) : Parcelable | provenance | MaD:2 | +| MainActivity.java:16:43:16:87 | getParcelableExtra(...) : Parcelable | MainActivity.java:16:34:16:87 | (...)... : Intent | provenance | | +| MainActivity.java:30:29:30:39 | getIntent(...) : Intent | MainActivity.java:33:34:33:39 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:42:29:42:39 | getIntent(...) : Intent | MainActivity.java:46:34:46:39 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:49:29:49:39 | getIntent(...) : Intent | MainActivity.java:52:34:52:39 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:55:29:55:39 | getIntent(...) : Intent | MainActivity.java:60:38:60:43 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:64:29:64:39 | getIntent(...) : Intent | MainActivity.java:71:38:71:43 | intent | provenance | Sink:MaD:1 | +| MainActivity.java:75:29:75:39 | getIntent(...) : Intent | MainActivity.java:81:38:81:43 | intent | provenance | Sink:MaD:1 | +models +| 1 | Sink: android.app; Activity; true; setResult; (int,Intent); ; Argument[1]; pending-intents; manual | +| 2 | Summary: android.content; Intent; true; getParcelableExtra; (String); ; Argument[this].SyntheticField[android.content.Intent.extras].MapValue; ReturnValue; value; manual | +nodes +| MainActivity.java:12:29:12:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:13:34:13:39 | intent | semmle.label | intent | +| MainActivity.java:16:34:16:87 | (...)... : Intent | semmle.label | (...)... : Intent | +| MainActivity.java:16:43:16:53 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:16:43:16:87 | getParcelableExtra(...) : Parcelable | semmle.label | getParcelableExtra(...) : Parcelable | +| MainActivity.java:17:34:17:44 | extraIntent | semmle.label | extraIntent | +| MainActivity.java:30:29:30:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:33:34:33:39 | intent | semmle.label | intent | +| MainActivity.java:42:29:42:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:46:34:46:39 | intent | semmle.label | intent | +| MainActivity.java:49:29:49:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:52:34:52:39 | intent | semmle.label | intent | +| MainActivity.java:55:29:55:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:60:38:60:43 | intent | semmle.label | intent | +| MainActivity.java:64:29:64:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:71:38:71:43 | intent | semmle.label | intent | +| MainActivity.java:75:29:75:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:81:38:81:43 | intent | semmle.label | intent | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.ql b/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.ql deleted file mode 100644 index f2f820743d1..00000000000 --- a/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.IntentUriPermissionManipulationQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.qlref b/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.qlref new file mode 100644 index 00000000000..caac7a302e4 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-266/IntentUriPermissionManipulationTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-266/IntentUriPermissionManipulation.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-266/MainActivity.java b/java/ql/test/query-tests/security/CWE-266/MainActivity.java index 4af80cc2b18..3f146d20af0 100644 --- a/java/ql/test/query-tests/security/CWE-266/MainActivity.java +++ b/java/ql/test/query-tests/security/CWE-266/MainActivity.java @@ -9,12 +9,12 @@ public class MainActivity extends Activity { public void onCreate(Bundle savedInstance) { { - Intent intent = getIntent(); - setResult(RESULT_OK, intent); // $ hasTaintFlow + Intent intent = getIntent(); // $ Source + setResult(RESULT_OK, intent); // $ Alert } { - Intent extraIntent = (Intent) getIntent().getParcelableExtra("extraIntent"); - setResult(RESULT_OK, extraIntent); // $ hasTaintFlow + Intent extraIntent = (Intent) getIntent().getParcelableExtra("extraIntent"); // $ Source + setResult(RESULT_OK, extraIntent); // $ Alert } { Intent intent = getIntent(); @@ -27,10 +27,10 @@ public class MainActivity extends Activity { setResult(RESULT_OK, intent); // Safe } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source intent.setFlags( // Not properly sanitized Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_ACTIVITY_CLEAR_TOP); - setResult(RESULT_OK, intent); // $ hasTaintFlow + setResult(RESULT_OK, intent); // $ Alert } { Intent intent = getIntent(); @@ -39,46 +39,46 @@ public class MainActivity extends Activity { setResult(RESULT_OK, intent); // Safe } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source // Combined, the following two calls are a sanitizer intent.removeFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.removeFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); - setResult(RESULT_OK, intent); // $ SPURIOUS: $ hasTaintFlow + setResult(RESULT_OK, intent); // $ SPURIOUS: $ Alert } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source intent.removeFlags( // Not properly sanitized Intent.FLAG_GRANT_WRITE_URI_PERMISSION | Intent.FLAG_ACTIVITY_CLEAR_TOP); - setResult(RESULT_OK, intent); // $ hasTaintFlow + setResult(RESULT_OK, intent); // $ Alert } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source // Good check if (intent.getData().equals(Uri.parse("content://safe/uri"))) { setResult(RESULT_OK, intent); // Safe } else { - setResult(RESULT_OK, intent); // $ hasTaintFlow + setResult(RESULT_OK, intent); // $ Alert } } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source int flags = intent.getFlags(); // Good check if ((flags & Intent.FLAG_GRANT_READ_URI_PERMISSION) == 0 && (flags & Intent.FLAG_GRANT_WRITE_URI_PERMISSION) == 0) { setResult(RESULT_OK, intent); // Safe } else { - setResult(RESULT_OK, intent); // $ hasTaintFlow + setResult(RESULT_OK, intent); // $ Alert } } { - Intent intent = getIntent(); + Intent intent = getIntent(); // $ Source int flags = intent.getFlags(); // Insufficient check if ((flags & Intent.FLAG_GRANT_READ_URI_PERMISSION) == 0) { - setResult(RESULT_OK, intent); // $ MISSING: $ hasTaintFlow + setResult(RESULT_OK, intent); // $ MISSING: $ Alert } else { - setResult(RESULT_OK, intent); // $ hasTaintFlow + setResult(RESULT_OK, intent); // $ Alert } } } From 993b261b63bc0dfd4d6da6630a84d3287165a81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 12:51:59 +0200 Subject: [PATCH 274/340] Java: convert InsecureTrustManager test to .qlref --- .../InsecureTrustManagerTest.expected | 94 +++++++++++++++++++ .../InsecureTrustManagerTest.java | 60 ++++++------ .../InsecureTrustManagerTest.ql | 18 ---- .../InsecureTrustManagerTest.qlref | 4 + 4 files changed, 128 insertions(+), 48 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.expected b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.expected index e69de29bb2d..6d142f2b634 100644 --- a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.expected +++ b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.expected @@ -0,0 +1,94 @@ +#select +| InsecureTrustManagerTest.java:124:22:124:33 | trustManager | InsecureTrustManagerTest.java:123:53:123:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:124:22:124:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:123:53:123:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:148:23:148:34 | trustManager | InsecureTrustManagerTest.java:147:54:147:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:148:23:148:34 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:147:54:147:79 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:180:23:180:34 | trustManager | InsecureTrustManagerTest.java:179:54:179:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:180:23:180:34 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:179:54:179:79 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:212:23:212:34 | trustManager | InsecureTrustManagerTest.java:211:54:211:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:212:23:212:34 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:211:54:211:79 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:229:23:229:34 | trustManager | InsecureTrustManagerTest.java:228:54:228:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:229:23:229:34 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:228:54:228:79 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:247:23:247:34 | trustManager | InsecureTrustManagerTest.java:246:54:246:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:247:23:247:34 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:246:54:246:79 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:267:22:267:33 | trustManager | InsecureTrustManagerTest.java:266:53:266:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:267:22:267:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:266:53:266:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:279:22:279:33 | trustManager | InsecureTrustManagerTest.java:278:53:278:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:279:22:279:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:278:53:278:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:291:22:291:33 | trustManager | InsecureTrustManagerTest.java:290:53:290:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:291:22:291:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:290:53:290:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:303:22:303:33 | trustManager | InsecureTrustManagerTest.java:302:53:302:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:303:22:303:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:302:53:302:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:315:22:315:33 | trustManager | InsecureTrustManagerTest.java:314:53:314:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:315:22:315:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:314:53:314:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:327:22:327:33 | trustManager | InsecureTrustManagerTest.java:326:53:326:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:327:22:327:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:326:53:326:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:339:22:339:33 | trustManager | InsecureTrustManagerTest.java:338:53:338:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:339:22:339:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:338:53:338:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:352:22:352:33 | trustManager | InsecureTrustManagerTest.java:351:53:351:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:352:22:352:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:351:53:351:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +| InsecureTrustManagerTest.java:360:22:360:33 | trustManager | InsecureTrustManagerTest.java:359:53:359:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:360:22:360:33 | trustManager | This uses $@, which is defined in $@ and trusts any certificate. | InsecureTrustManagerTest.java:359:53:359:78 | new InsecureTrustManager(...) : InsecureTrustManager | TrustManager | InsecureTrustManagerTest.java:35:23:35:42 | InsecureTrustManager | InsecureTrustManagerTest$InsecureTrustManager | +edges +| InsecureTrustManagerTest.java:123:33:123:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:124:22:124:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:123:53:123:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:123:33:123:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:147:34:147:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:148:23:148:34 | trustManager | provenance | | +| InsecureTrustManagerTest.java:147:54:147:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:147:34:147:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:179:34:179:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:180:23:180:34 | trustManager | provenance | | +| InsecureTrustManagerTest.java:179:54:179:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:179:34:179:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:211:34:211:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:212:23:212:34 | trustManager | provenance | | +| InsecureTrustManagerTest.java:211:54:211:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:211:34:211:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:228:34:228:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:229:23:229:34 | trustManager | provenance | | +| InsecureTrustManagerTest.java:228:54:228:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:228:34:228:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:246:34:246:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:247:23:247:34 | trustManager | provenance | | +| InsecureTrustManagerTest.java:246:54:246:79 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:246:34:246:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:266:33:266:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:267:22:267:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:266:53:266:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:266:33:266:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:278:33:278:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:279:22:279:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:278:53:278:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:278:33:278:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:290:33:290:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:291:22:291:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:290:53:290:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:290:33:290:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:302:33:302:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:303:22:303:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:302:53:302:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:302:33:302:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:314:33:314:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:315:22:315:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:314:53:314:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:314:33:314:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:326:33:326:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:327:22:327:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:326:53:326:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:326:33:326:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:338:33:338:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:339:22:339:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:338:53:338:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:338:33:338:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:351:33:351:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:352:22:352:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:351:53:351:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:351:33:351:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +| InsecureTrustManagerTest.java:359:33:359:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | InsecureTrustManagerTest.java:360:22:360:33 | trustManager | provenance | | +| InsecureTrustManagerTest.java:359:53:359:78 | new InsecureTrustManager(...) : InsecureTrustManager | InsecureTrustManagerTest.java:359:33:359:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | provenance | | +nodes +| InsecureTrustManagerTest.java:123:33:123:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:123:53:123:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:124:22:124:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:147:34:147:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:147:54:147:79 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:148:23:148:34 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:179:34:179:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:179:54:179:79 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:180:23:180:34 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:211:34:211:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:211:54:211:79 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:212:23:212:34 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:228:34:228:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:228:54:228:79 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:229:23:229:34 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:246:34:246:80 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:246:54:246:79 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:247:23:247:34 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:266:33:266:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:266:53:266:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:267:22:267:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:278:33:278:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:278:53:278:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:279:22:279:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:290:33:290:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:290:53:290:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:291:22:291:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:302:33:302:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:302:53:302:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:303:22:303:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:314:33:314:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:314:53:314:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:315:22:315:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:326:33:326:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:326:53:326:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:327:22:327:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:338:33:338:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:338:53:338:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:339:22:339:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:351:33:351:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:351:53:351:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:352:22:352:33 | trustManager | semmle.label | trustManager | +| InsecureTrustManagerTest.java:359:33:359:79 | {...} : TrustManager[] [[]] : InsecureTrustManager | semmle.label | {...} : TrustManager[] [[]] : InsecureTrustManager | +| InsecureTrustManagerTest.java:359:53:359:78 | new InsecureTrustManager(...) : InsecureTrustManager | semmle.label | new InsecureTrustManager(...) : InsecureTrustManager | +| InsecureTrustManagerTest.java:360:22:360:33 | trustManager | semmle.label | trustManager | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.java b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.java index 17e8fc60afc..4e098fa2988 100644 --- a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.java +++ b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.java @@ -120,8 +120,8 @@ public class InsecureTrustManagerTest { private static void directInsecureTrustManagerCall() throws NoSuchAlgorithmException, KeyManagementException { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } private static void namedVariableFlagDirectInsecureTrustManagerCall() @@ -144,8 +144,8 @@ public class InsecureTrustManagerTest { throws NoSuchAlgorithmException, KeyManagementException { if (SOME_NAME_THAT_IS_NOT_A_FLAG_NAME) { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } @@ -176,8 +176,8 @@ public class InsecureTrustManagerTest { throws NoSuchAlgorithmException, KeyManagementException { if (Boolean.parseBoolean(System.getProperty("SOME_NAME_THAT_IS_NOT_A_FLAG_NAME"))) { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } @@ -208,8 +208,8 @@ public class InsecureTrustManagerTest { throws NoSuchAlgorithmException, KeyManagementException { if (is42TheAnswerForEverything()) { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } @@ -225,8 +225,8 @@ public class InsecureTrustManagerTest { String schemaFromHttpRequest = "HTTPS"; if (schemaFromHttpRequest.equalsIgnoreCase("https")) { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } @@ -243,8 +243,8 @@ public class InsecureTrustManagerTest { String schemaFromHttpRequest = "HTTPS"; if (!schemaFromHttpRequest.equalsIgnoreCase("https")) { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } @@ -263,8 +263,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -275,8 +275,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -287,8 +287,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -299,8 +299,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -311,8 +311,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -323,8 +323,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } private static void isEqualsIgnoreCaseNOTGuardingDirectInsecureTrustManagerCall() @@ -335,8 +335,8 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } @@ -348,15 +348,15 @@ public class InsecureTrustManagerTest { } SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } private static void disableTrustManager() throws NoSuchAlgorithmException, KeyManagementException { SSLContext context = SSLContext.getInstance("TLS"); - TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; - context.init(null, trustManager, null); // $ hasValueFlow + TrustManager[] trustManager = new TrustManager[] {new InsecureTrustManager()}; // $ Source + context.init(null, trustManager, null); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.ql b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.ql deleted file mode 100644 index 1c0ffc49eba..00000000000 --- a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.InsecureTrustManagerQuery -import utils.test.InlineExpectationsTest - -module InsecureTrustManagerTest implements TestSig { - string getARelevantTag() { result = "hasValueFlow" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasValueFlow" and - exists(DataFlow::Node sink | InsecureTrustManagerFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.qlref b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.qlref new file mode 100644 index 00000000000..f4c00b42347 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-295/InsecureTrustManager/InsecureTrustManagerTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-295/InsecureTrustManager.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 288a938814f2b879481b34ab02c12fbef35f57a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 15:59:14 +0200 Subject: [PATCH 275/340] Java: convert InsufficientKeySize test to .qlref --- .../CWE-326/InsufficientKeySizeTest.expected | 120 ++++++++++++++++++ .../CWE-326/InsufficientKeySizeTest.java | 96 +++++++------- .../CWE-326/InsufficientKeySizeTest.ql | 18 --- .../CWE-326/InsufficientKeySizeTest.qlref | 4 + 4 files changed, 172 insertions(+), 66 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.expected b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.expected index e69de29bb2d..25c0a616e86 100644 --- a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.expected +++ b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.expected @@ -0,0 +1,120 @@ +#select +| InsufficientKeySizeTest.java:17:26:17:27 | 64 | InsufficientKeySizeTest.java:17:26:17:27 | 64 | InsufficientKeySizeTest.java:17:26:17:27 | 64 | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:17:26:17:27 | 64 | key size | +| InsufficientKeySizeTest.java:27:26:27:30 | size1 | InsufficientKeySizeTest.java:23:31:23:32 | 64 : Number | InsufficientKeySizeTest.java:27:26:27:30 | size1 | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:23:31:23:32 | 64 | key size | +| InsufficientKeySizeTest.java:30:26:30:30 | size2 | InsufficientKeySizeTest.java:24:25:24:26 | 64 : Number | InsufficientKeySizeTest.java:30:26:30:30 | size2 | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:24:25:24:26 | 64 | key size | +| InsufficientKeySizeTest.java:40:26:40:27 | 64 | InsufficientKeySizeTest.java:40:26:40:27 | 64 | InsufficientKeySizeTest.java:40:26:40:27 | 64 | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:40:26:40:27 | 64 | key size | +| InsufficientKeySizeTest.java:51:36:51:39 | 1024 | InsufficientKeySizeTest.java:51:36:51:39 | 1024 | InsufficientKeySizeTest.java:51:36:51:39 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:51:36:51:39 | 1024 | key size | +| InsufficientKeySizeTest.java:58:73:58:76 | 1024 | InsufficientKeySizeTest.java:58:73:58:76 | 1024 | InsufficientKeySizeTest.java:58:73:58:76 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:58:73:58:76 | 1024 | key size | +| InsufficientKeySizeTest.java:62:63:62:66 | 1024 | InsufficientKeySizeTest.java:62:63:62:66 | 1024 | InsufficientKeySizeTest.java:62:63:62:66 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:62:63:62:66 | 1024 | key size | +| InsufficientKeySizeTest.java:69:36:69:40 | size1 | InsufficientKeySizeTest.java:65:31:65:34 | 1024 : Number | InsufficientKeySizeTest.java:69:36:69:40 | size1 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:65:31:65:34 | 1024 | key size | +| InsufficientKeySizeTest.java:72:36:72:40 | size2 | InsufficientKeySizeTest.java:66:25:66:28 | 1024 : Number | InsufficientKeySizeTest.java:72:36:72:40 | size2 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:66:25:66:28 | 1024 | key size | +| InsufficientKeySizeTest.java:81:36:81:50 | getRSAKeySize(...) | InsufficientKeySizeTest.java:255:40:255:43 | 1024 : Number | InsufficientKeySizeTest.java:81:36:81:50 | getRSAKeySize(...) | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:255:40:255:43 | 1024 | key size | +| InsufficientKeySizeTest.java:86:36:86:39 | 1024 | InsufficientKeySizeTest.java:86:36:86:39 | 1024 | InsufficientKeySizeTest.java:86:36:86:39 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:86:36:86:39 | 1024 | key size | +| InsufficientKeySizeTest.java:97:36:97:39 | 1024 | InsufficientKeySizeTest.java:97:36:97:39 | 1024 | InsufficientKeySizeTest.java:97:36:97:39 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:97:36:97:39 | 1024 | key size | +| InsufficientKeySizeTest.java:104:67:104:70 | 1024 | InsufficientKeySizeTest.java:104:67:104:70 | 1024 | InsufficientKeySizeTest.java:104:67:104:70 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:104:67:104:70 | 1024 | key size | +| InsufficientKeySizeTest.java:108:60:108:63 | 1024 | InsufficientKeySizeTest.java:108:60:108:63 | 1024 | InsufficientKeySizeTest.java:108:60:108:63 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:108:60:108:63 | 1024 | key size | +| InsufficientKeySizeTest.java:112:27:112:30 | 1024 | InsufficientKeySizeTest.java:112:27:112:30 | 1024 | InsufficientKeySizeTest.java:112:27:112:30 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:112:27:112:30 | 1024 | key size | +| InsufficientKeySizeTest.java:117:28:117:31 | 1024 | InsufficientKeySizeTest.java:117:28:117:31 | 1024 | InsufficientKeySizeTest.java:117:28:117:31 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:117:28:117:31 | 1024 | key size | +| InsufficientKeySizeTest.java:128:36:128:39 | 1024 | InsufficientKeySizeTest.java:128:36:128:39 | 1024 | InsufficientKeySizeTest.java:128:36:128:39 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:128:36:128:39 | 1024 | key size | +| InsufficientKeySizeTest.java:135:64:135:67 | 1024 | InsufficientKeySizeTest.java:135:64:135:67 | 1024 | InsufficientKeySizeTest.java:135:64:135:67 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:135:64:135:67 | 1024 | key size | +| InsufficientKeySizeTest.java:139:59:139:62 | 1024 | InsufficientKeySizeTest.java:139:59:139:62 | 1024 | InsufficientKeySizeTest.java:139:59:139:62 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:139:59:139:62 | 1024 | key size | +| InsufficientKeySizeTest.java:143:27:143:30 | 1024 | InsufficientKeySizeTest.java:143:27:143:30 | 1024 | InsufficientKeySizeTest.java:143:27:143:30 | 1024 | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:143:27:143:30 | 1024 | key size | +| InsufficientKeySizeTest.java:150:36:150:38 | 128 | InsufficientKeySizeTest.java:150:36:150:38 | 128 | InsufficientKeySizeTest.java:150:36:150:38 | 128 | This $@ is less than the recommended key size of 256 bits. | InsufficientKeySizeTest.java:150:36:150:38 | 128 | key size | +| InsufficientKeySizeTest.java:154:65:154:75 | "secp112r1" | InsufficientKeySizeTest.java:154:65:154:75 | "secp112r1" | InsufficientKeySizeTest.java:154:65:154:75 | "secp112r1" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:154:65:154:75 | "secp112r1" | key size | +| InsufficientKeySizeTest.java:158:59:158:69 | "secp112r1" | InsufficientKeySizeTest.java:158:59:158:69 | "secp112r1" | InsufficientKeySizeTest.java:158:59:158:69 | "secp112r1" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:158:59:158:69 | "secp112r1" | key size | +| InsufficientKeySizeTest.java:165:65:165:82 | "X9.62 prime192v2" | InsufficientKeySizeTest.java:165:65:165:82 | "X9.62 prime192v2" | InsufficientKeySizeTest.java:165:65:165:82 | "X9.62 prime192v2" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:165:65:165:82 | "X9.62 prime192v2" | key size | +| InsufficientKeySizeTest.java:169:65:169:82 | "X9.62 c2tnb191v3" | InsufficientKeySizeTest.java:169:65:169:82 | "X9.62 c2tnb191v3" | InsufficientKeySizeTest.java:169:65:169:82 | "X9.62 c2tnb191v3" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:169:65:169:82 | "X9.62 c2tnb191v3" | key size | +| InsufficientKeySizeTest.java:173:65:173:75 | "sect163k1" | InsufficientKeySizeTest.java:173:65:173:75 | "sect163k1" | InsufficientKeySizeTest.java:173:65:173:75 | "sect163k1" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:173:65:173:75 | "sect163k1" | key size | +| InsufficientKeySizeTest.java:181:65:181:76 | "prime192v2" | InsufficientKeySizeTest.java:181:65:181:76 | "prime192v2" | InsufficientKeySizeTest.java:181:65:181:76 | "prime192v2" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:181:65:181:76 | "prime192v2" | key size | +| InsufficientKeySizeTest.java:189:65:189:76 | "c2tnb191v1" | InsufficientKeySizeTest.java:189:65:189:76 | "c2tnb191v1" | InsufficientKeySizeTest.java:189:65:189:76 | "c2tnb191v1" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:189:65:189:76 | "c2tnb191v1" | key size | +| InsufficientKeySizeTest.java:197:64:197:74 | "secp112r1" | InsufficientKeySizeTest.java:197:64:197:74 | "secp112r1" | InsufficientKeySizeTest.java:197:64:197:74 | "secp112r1" | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:197:64:197:74 | "secp112r1" | key size | +| InsufficientKeySizeTest.java:207:66:207:75 | curveName1 | InsufficientKeySizeTest.java:205:39:205:49 | "secp112r1" : String | InsufficientKeySizeTest.java:207:66:207:75 | curveName1 | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:205:39:205:49 | "secp112r1" | key size | +| InsufficientKeySizeTest.java:212:66:212:75 | curveName2 | InsufficientKeySizeTest.java:210:33:210:43 | "secp112r1" : String | InsufficientKeySizeTest.java:212:66:212:75 | curveName2 | This $@ is less than the recommended key size of EC bits. | InsufficientKeySizeTest.java:210:33:210:43 | "secp112r1" | key size | +| InsufficientKeySizeTest.java:219:21:219:27 | keySize | InsufficientKeySizeTest.java:24:25:24:26 | 64 : Number | InsufficientKeySizeTest.java:219:21:219:27 | keySize | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:24:25:24:26 | 64 | key size | +| InsufficientKeySizeTest.java:225:21:225:27 | keySize | InsufficientKeySizeTest.java:35:30:35:31 | 64 : Number | InsufficientKeySizeTest.java:225:21:225:27 | keySize | This $@ is less than the recommended key size of 128 bits. | InsufficientKeySizeTest.java:35:30:35:31 | 64 | key size | +| InsufficientKeySizeTest.java:230:31:230:37 | keySize | InsufficientKeySizeTest.java:66:25:66:28 | 1024 : Number | InsufficientKeySizeTest.java:230:31:230:37 | keySize | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:66:25:66:28 | 1024 | key size | +| InsufficientKeySizeTest.java:236:31:236:37 | keySize | InsufficientKeySizeTest.java:77:36:77:39 | 1024 : Number | InsufficientKeySizeTest.java:236:31:236:37 | keySize | This $@ is less than the recommended key size of 2048 bits. | InsufficientKeySizeTest.java:77:36:77:39 | 1024 | key size | +| InsufficientKeySizeTest.java:246:31:246:37 | keySize | InsufficientKeySizeTest.java:199:24:199:26 | 128 : Number | InsufficientKeySizeTest.java:246:31:246:37 | keySize | This $@ is less than the recommended key size of 256 bits. | InsufficientKeySizeTest.java:199:24:199:26 | 128 | key size | +| InsufficientKeySizeTest.java:252:31:252:37 | keySize | InsufficientKeySizeTest.java:202:40:202:42 | 128 : Number | InsufficientKeySizeTest.java:252:31:252:37 | keySize | This $@ is less than the recommended key size of 256 bits. | InsufficientKeySizeTest.java:202:40:202:42 | 128 | key size | +edges +| InsufficientKeySizeTest.java:23:31:23:32 | 64 : Number | InsufficientKeySizeTest.java:27:26:27:30 | size1 | provenance | | +| InsufficientKeySizeTest.java:24:25:24:26 | 64 : Number | InsufficientKeySizeTest.java:30:26:30:30 | size2 | provenance | | +| InsufficientKeySizeTest.java:24:25:24:26 | 64 : Number | InsufficientKeySizeTest.java:34:35:34:39 | size2 : Number | provenance | | +| InsufficientKeySizeTest.java:34:35:34:39 | size2 : Number | InsufficientKeySizeTest.java:217:46:217:56 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:35:30:35:31 | 64 : Number | InsufficientKeySizeTest.java:223:41:223:51 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:65:31:65:34 | 1024 : Number | InsufficientKeySizeTest.java:69:36:69:40 | size1 | provenance | | +| InsufficientKeySizeTest.java:66:25:66:28 | 1024 : Number | InsufficientKeySizeTest.java:72:36:72:40 | size2 | provenance | | +| InsufficientKeySizeTest.java:66:25:66:28 | 1024 : Number | InsufficientKeySizeTest.java:76:41:76:45 | size2 : Number | provenance | | +| InsufficientKeySizeTest.java:76:41:76:45 | size2 : Number | InsufficientKeySizeTest.java:228:52:228:62 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:77:36:77:39 | 1024 : Number | InsufficientKeySizeTest.java:234:47:234:57 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:199:24:199:26 | 128 : Number | InsufficientKeySizeTest.java:201:41:201:44 | size : Number | provenance | | +| InsufficientKeySizeTest.java:201:41:201:44 | size : Number | InsufficientKeySizeTest.java:244:52:244:62 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:202:40:202:42 | 128 : Number | InsufficientKeySizeTest.java:250:51:250:61 | keySize : Number | provenance | | +| InsufficientKeySizeTest.java:205:39:205:49 | "secp112r1" : String | InsufficientKeySizeTest.java:207:66:207:75 | curveName1 | provenance | | +| InsufficientKeySizeTest.java:210:33:210:43 | "secp112r1" : String | InsufficientKeySizeTest.java:212:66:212:75 | curveName2 | provenance | | +| InsufficientKeySizeTest.java:217:46:217:56 | keySize : Number | InsufficientKeySizeTest.java:219:21:219:27 | keySize | provenance | | +| InsufficientKeySizeTest.java:223:41:223:51 | keySize : Number | InsufficientKeySizeTest.java:225:21:225:27 | keySize | provenance | | +| InsufficientKeySizeTest.java:228:52:228:62 | keySize : Number | InsufficientKeySizeTest.java:230:31:230:37 | keySize | provenance | | +| InsufficientKeySizeTest.java:234:47:234:57 | keySize : Number | InsufficientKeySizeTest.java:236:31:236:37 | keySize | provenance | | +| InsufficientKeySizeTest.java:244:52:244:62 | keySize : Number | InsufficientKeySizeTest.java:246:31:246:37 | keySize | provenance | | +| InsufficientKeySizeTest.java:250:51:250:61 | keySize : Number | InsufficientKeySizeTest.java:252:31:252:37 | keySize | provenance | | +| InsufficientKeySizeTest.java:255:40:255:43 | 1024 : Number | InsufficientKeySizeTest.java:81:36:81:50 | getRSAKeySize(...) | provenance | | +nodes +| InsufficientKeySizeTest.java:17:26:17:27 | 64 | semmle.label | 64 | +| InsufficientKeySizeTest.java:23:31:23:32 | 64 : Number | semmle.label | 64 : Number | +| InsufficientKeySizeTest.java:24:25:24:26 | 64 : Number | semmle.label | 64 : Number | +| InsufficientKeySizeTest.java:27:26:27:30 | size1 | semmle.label | size1 | +| InsufficientKeySizeTest.java:30:26:30:30 | size2 | semmle.label | size2 | +| InsufficientKeySizeTest.java:34:35:34:39 | size2 : Number | semmle.label | size2 : Number | +| InsufficientKeySizeTest.java:35:30:35:31 | 64 : Number | semmle.label | 64 : Number | +| InsufficientKeySizeTest.java:40:26:40:27 | 64 | semmle.label | 64 | +| InsufficientKeySizeTest.java:51:36:51:39 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:58:73:58:76 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:62:63:62:66 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:65:31:65:34 | 1024 : Number | semmle.label | 1024 : Number | +| InsufficientKeySizeTest.java:66:25:66:28 | 1024 : Number | semmle.label | 1024 : Number | +| InsufficientKeySizeTest.java:69:36:69:40 | size1 | semmle.label | size1 | +| InsufficientKeySizeTest.java:72:36:72:40 | size2 | semmle.label | size2 | +| InsufficientKeySizeTest.java:76:41:76:45 | size2 : Number | semmle.label | size2 : Number | +| InsufficientKeySizeTest.java:77:36:77:39 | 1024 : Number | semmle.label | 1024 : Number | +| InsufficientKeySizeTest.java:81:36:81:50 | getRSAKeySize(...) | semmle.label | getRSAKeySize(...) | +| InsufficientKeySizeTest.java:86:36:86:39 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:97:36:97:39 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:104:67:104:70 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:108:60:108:63 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:112:27:112:30 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:117:28:117:31 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:128:36:128:39 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:135:64:135:67 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:139:59:139:62 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:143:27:143:30 | 1024 | semmle.label | 1024 | +| InsufficientKeySizeTest.java:150:36:150:38 | 128 | semmle.label | 128 | +| InsufficientKeySizeTest.java:154:65:154:75 | "secp112r1" | semmle.label | "secp112r1" | +| InsufficientKeySizeTest.java:158:59:158:69 | "secp112r1" | semmle.label | "secp112r1" | +| InsufficientKeySizeTest.java:165:65:165:82 | "X9.62 prime192v2" | semmle.label | "X9.62 prime192v2" | +| InsufficientKeySizeTest.java:169:65:169:82 | "X9.62 c2tnb191v3" | semmle.label | "X9.62 c2tnb191v3" | +| InsufficientKeySizeTest.java:173:65:173:75 | "sect163k1" | semmle.label | "sect163k1" | +| InsufficientKeySizeTest.java:181:65:181:76 | "prime192v2" | semmle.label | "prime192v2" | +| InsufficientKeySizeTest.java:189:65:189:76 | "c2tnb191v1" | semmle.label | "c2tnb191v1" | +| InsufficientKeySizeTest.java:197:64:197:74 | "secp112r1" | semmle.label | "secp112r1" | +| InsufficientKeySizeTest.java:199:24:199:26 | 128 : Number | semmle.label | 128 : Number | +| InsufficientKeySizeTest.java:201:41:201:44 | size : Number | semmle.label | size : Number | +| InsufficientKeySizeTest.java:202:40:202:42 | 128 : Number | semmle.label | 128 : Number | +| InsufficientKeySizeTest.java:205:39:205:49 | "secp112r1" : String | semmle.label | "secp112r1" : String | +| InsufficientKeySizeTest.java:207:66:207:75 | curveName1 | semmle.label | curveName1 | +| InsufficientKeySizeTest.java:210:33:210:43 | "secp112r1" : String | semmle.label | "secp112r1" : String | +| InsufficientKeySizeTest.java:212:66:212:75 | curveName2 | semmle.label | curveName2 | +| InsufficientKeySizeTest.java:217:46:217:56 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:219:21:219:27 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:223:41:223:51 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:225:21:225:27 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:228:52:228:62 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:230:31:230:37 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:234:47:234:57 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:236:31:236:37 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:244:52:244:62 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:246:31:246:37 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:250:51:250:61 | keySize : Number | semmle.label | keySize : Number | +| InsufficientKeySizeTest.java:252:31:252:37 | keySize | semmle.label | keySize | +| InsufficientKeySizeTest.java:255:40:255:43 | 1024 : Number | semmle.label | 1024 : Number | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.java b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.java index 6f0d1f7115c..9f3728f9640 100644 --- a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.java +++ b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.java @@ -14,30 +14,30 @@ public class InsufficientKeySizeTest { { /* Test with keysize as int */ KeyGenerator keyGen1 = KeyGenerator.getInstance("AES"); - keyGen1.init(64); // $ hasInsufficientKeySize + keyGen1.init(64); // $ Alert KeyGenerator keyGen2 = KeyGenerator.getInstance("AES"); keyGen2.init(128); // Safe: Key size is no less than 128 /* Test with local variable as keysize */ - final int size1 = 64; // compile-time constant - int size2 = 64; // not a compile-time constant + final int size1 = 64; // $ Source// compile-time constant + int size2 = 64; // $ Source// not a compile-time constant KeyGenerator keyGen3 = KeyGenerator.getInstance("AES"); - keyGen3.init(size1); // $ hasInsufficientKeySize + keyGen3.init(size1); // $ Alert KeyGenerator keyGen4 = KeyGenerator.getInstance("AES"); - keyGen4.init(size2); // $ hasInsufficientKeySize + keyGen4.init(size2); // $ Alert /* Test variables passed to another method */ KeyGenerator keyGen5 = KeyGenerator.getInstance("AES"); // MISSING: test KeyGenerator variable as argument testSymmetricVariable(size2, keyGen5); // test with variable as key size - testSymmetricInt(64); // test with int literal as key size + testSymmetricInt(64); // $ Source // test with int literal as key size /* Test with variable as algo name argument in `getInstance` method. */ final String algoName1 = "AES"; // compile-time constant KeyGenerator keyGen6 = KeyGenerator.getInstance(algoName1); - keyGen6.init(64); // $ hasInsufficientKeySize + keyGen6.init(64); // $ Alert String algoName2 = "AES"; // not a compile-time constant KeyGenerator keyGen7 = KeyGenerator.getInstance(algoName2); @@ -48,42 +48,42 @@ public class InsufficientKeySizeTest { { /* Test with keysize as int */ KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance("RSA"); - keyPairGen1.initialize(1024); // $ hasInsufficientKeySize + keyPairGen1.initialize(1024); // $ Alert KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance("RSA"); keyPairGen2.initialize(2048); // Safe: Key size is no less than 2048 /* Test spec */ KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance("RSA"); - RSAKeyGenParameterSpec rsaSpec = new RSAKeyGenParameterSpec(1024, null); // $ hasInsufficientKeySize + RSAKeyGenParameterSpec rsaSpec = new RSAKeyGenParameterSpec(1024, null); // $ Alert keyPairGen3.initialize(rsaSpec); KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance("RSA"); - keyPairGen4.initialize(new RSAKeyGenParameterSpec(1024, null)); // $ hasInsufficientKeySize + keyPairGen4.initialize(new RSAKeyGenParameterSpec(1024, null)); // $ Alert /* Test with local variable as keysize */ - final int size1 = 1024; // compile-time constant - int size2 = 1024; // not a compile-time constant + final int size1 = 1024; // $ Source // compile-time constant + int size2 = 1024; // $ Source // not a compile-time constant KeyPairGenerator keyPairGen5 = KeyPairGenerator.getInstance("RSA"); - keyPairGen5.initialize(size1); // $ hasInsufficientKeySize + keyPairGen5.initialize(size1); // $ Alert KeyPairGenerator keyPairGen6 = KeyPairGenerator.getInstance("RSA"); - keyPairGen6.initialize(size2); // $ hasInsufficientKeySize + keyPairGen6.initialize(size2); // $ Alert /* Test variables passed to another method */ KeyPairGenerator keyPairGen7 = KeyPairGenerator.getInstance("RSA"); // MISSING: test KeyGenerator variable as argument testAsymmetricNonEcVariable(size2, keyPairGen7); // test with variable as key size - testAsymmetricNonEcInt(1024); // test with int literal as key size + testAsymmetricNonEcInt(1024); // $ Source // test with int literal as key size /* Test getting key size as return value of another method */ KeyPairGenerator keyPairGen8 = KeyPairGenerator.getInstance("RSA"); - keyPairGen8.initialize(getRSAKeySize()); // $ hasInsufficientKeySize + keyPairGen8.initialize(getRSAKeySize()); // $ Alert /* Test with variable as algo name argument in `getInstance` method. */ final String algoName1 = "RSA"; // compile-time constant KeyPairGenerator keyPairGen9 = KeyPairGenerator.getInstance(algoName1); - keyPairGen9.initialize(1024); // $ hasInsufficientKeySize + keyPairGen9.initialize(1024); // $ Alert String algoName2 = "RSA"; // not a compile-time constant KeyPairGenerator keyPairGen10 = KeyPairGenerator.getInstance(algoName2); @@ -94,27 +94,27 @@ public class InsufficientKeySizeTest { { /* Test with keysize as int */ KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance("DSA"); - keyPairGen1.initialize(1024); // $ hasInsufficientKeySize + keyPairGen1.initialize(1024); // $ Alert KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance("DSA"); keyPairGen2.initialize(2048); // Safe: Key size is no less than 2048 /* Test spec */ KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance("DSA"); - DSAGenParameterSpec dsaSpec = new DSAGenParameterSpec(1024, 0); // $ hasInsufficientKeySize + DSAGenParameterSpec dsaSpec = new DSAGenParameterSpec(1024, 0); // $ Alert keyPairGen3.initialize(dsaSpec); KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance("DSA"); - keyPairGen4.initialize(new DSAGenParameterSpec(1024, 0)); // $ hasInsufficientKeySize + keyPairGen4.initialize(new DSAGenParameterSpec(1024, 0)); // $ Alert /* Test `AlgorithmParameterGenerator` */ AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator.getInstance("DSA"); - paramGen.init(1024); // $ hasInsufficientKeySize + paramGen.init(1024); // $ Alert /* Test with variable as algo name argument in `getInstance` method. */ final String algoName1 = "DSA"; // compile-time constant AlgorithmParameterGenerator paramGen1 = AlgorithmParameterGenerator.getInstance(algoName1); - paramGen1.init(1024); // $ hasInsufficientKeySize + paramGen1.init(1024); // $ Alert String algoName2 = "DSA"; // not a compile-time constant AlgorithmParameterGenerator paramGen2 = AlgorithmParameterGenerator.getInstance(algoName2); @@ -125,52 +125,52 @@ public class InsufficientKeySizeTest { { /* Test with keysize as int */ KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance("dh"); - keyPairGen1.initialize(1024); // $ hasInsufficientKeySize + keyPairGen1.initialize(1024); // $ Alert KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance("DH"); keyPairGen2.initialize(2048); // Safe: Key size is no less than 2048 /* Test spec */ KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance("DH"); - DHGenParameterSpec dhSpec = new DHGenParameterSpec(1024, 0); // $ hasInsufficientKeySize + DHGenParameterSpec dhSpec = new DHGenParameterSpec(1024, 0); // $ Alert keyPairGen3.initialize(dhSpec); KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance("DH"); - keyPairGen4.initialize(new DHGenParameterSpec(1024, 0)); // $ hasInsufficientKeySize + keyPairGen4.initialize(new DHGenParameterSpec(1024, 0)); // $ Alert /* Test `AlgorithmParameterGenerator` */ AlgorithmParameterGenerator paramGen = AlgorithmParameterGenerator.getInstance("DH"); - paramGen.init(1024); // $ hasInsufficientKeySize + paramGen.init(1024); // $ Alert } // EC (Asymmetric): minimum recommended key size is 256 { /* Test with keysize as int */ KeyPairGenerator keyPairGen1 = KeyPairGenerator.getInstance("EC"); - keyPairGen1.initialize(128); // $ hasInsufficientKeySize + keyPairGen1.initialize(128); // $ Alert /* Test with keysize as curve name in spec */ KeyPairGenerator keyPairGen2 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec1 = new ECGenParameterSpec("secp112r1"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec1 = new ECGenParameterSpec("secp112r1"); // $ Alert keyPairGen2.initialize(ecSpec1); KeyPairGenerator keyPairGen3 = KeyPairGenerator.getInstance("EC"); - keyPairGen3.initialize(new ECGenParameterSpec("secp112r1")); // $ hasInsufficientKeySize + keyPairGen3.initialize(new ECGenParameterSpec("secp112r1")); // $ Alert KeyPairGenerator keyPairGen4 = KeyPairGenerator.getInstance("EC"); ECGenParameterSpec ecSpec2 = new ECGenParameterSpec("secp256r1"); // Safe: Key size is no less than 256 keyPairGen4.initialize(ecSpec2); KeyPairGenerator keyPairGen5 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec3 = new ECGenParameterSpec("X9.62 prime192v2"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec3 = new ECGenParameterSpec("X9.62 prime192v2"); // $ Alert keyPairGen5.initialize(ecSpec3); KeyPairGenerator keyPairGen6 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec4 = new ECGenParameterSpec("X9.62 c2tnb191v3"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec4 = new ECGenParameterSpec("X9.62 c2tnb191v3"); // $ Alert keyPairGen6.initialize(ecSpec4); KeyPairGenerator keyPairGen7 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec5 = new ECGenParameterSpec("sect163k1"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec5 = new ECGenParameterSpec("sect163k1"); // $ Alert keyPairGen7.initialize(ecSpec5); KeyPairGenerator keyPairGen8 = KeyPairGenerator.getInstance("EC"); @@ -178,7 +178,7 @@ public class InsufficientKeySizeTest { keyPairGen8.initialize(ecSpec6); KeyPairGenerator keyPairGen9 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec7 = new ECGenParameterSpec("prime192v2"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec7 = new ECGenParameterSpec("prime192v2"); // $ Alert keyPairGen9.initialize(ecSpec7); KeyPairGenerator keyPairGen10 = KeyPairGenerator.getInstance("EC"); @@ -186,7 +186,7 @@ public class InsufficientKeySizeTest { keyPairGen10.initialize(ecSpec8); KeyPairGenerator keyPairGen14 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec9 = new ECGenParameterSpec("c2tnb191v1"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec9 = new ECGenParameterSpec("c2tnb191v1"); // $ Alert keyPairGen14.initialize(ecSpec9); KeyPairGenerator keyPairGen15 = KeyPairGenerator.getInstance("EC"); @@ -194,46 +194,46 @@ public class InsufficientKeySizeTest { keyPairGen15.initialize(ecSpec10); // Safe: Key size is no less than 256 /* Test variables passed to another method */ - ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp112r1"); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec = new ECGenParameterSpec("secp112r1"); // $ Alert testAsymmetricEcSpecVariable(ecSpec); // test spec as an argument - int size = 128; + int size = 128; // $ Source KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("EC"); // MISSING: test KeyGenerator variable as argument testAsymmetricEcIntVariable(size, keyPairGen); // test with variable as key size - testAsymmetricEcIntLiteral(128); // test with int literal as key size + testAsymmetricEcIntLiteral(128); // $ Source // test with int literal as key size /* Test with variable as curve name argument in `ECGenParameterSpec` constructor. */ - final String curveName1 = "secp112r1"; // compile-time constant + final String curveName1 = "secp112r1"; // $ Source // compile-time constant KeyPairGenerator keyPairGen16 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec11 = new ECGenParameterSpec(curveName1); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec11 = new ECGenParameterSpec(curveName1); // $ Alert keyPairGen16.initialize(ecSpec11); - String curveName2 = "secp112r1"; // not a compile-time constant + String curveName2 = "secp112r1"; // $ Source // not a compile-time constant KeyPairGenerator keyPairGen17 = KeyPairGenerator.getInstance("EC"); - ECGenParameterSpec ecSpec12 = new ECGenParameterSpec(curveName2); // $ hasInsufficientKeySize + ECGenParameterSpec ecSpec12 = new ECGenParameterSpec(curveName2); // $ Alert keyPairGen17.initialize(ecSpec12); } } public static void testSymmetricVariable(int keySize, KeyGenerator kg) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyGenerator keyGen = KeyGenerator.getInstance("AES"); - keyGen.init(keySize); // $ hasInsufficientKeySize + keyGen.init(keySize); // $ Alert kg.init(64); // $ MISSING: hasInsufficientKeySize } public static void testSymmetricInt(int keySize) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyGenerator keyGen = KeyGenerator.getInstance("AES"); - keyGen.init(keySize); // $ hasInsufficientKeySize + keyGen.init(keySize); // $ Alert } public static void testAsymmetricNonEcVariable(int keySize, KeyPairGenerator kpg) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); - keyPairGen.initialize(keySize); // $ hasInsufficientKeySize + keyPairGen.initialize(keySize); // $ Alert kpg.initialize(1024); // $ MISSING: hasInsufficientKeySize } public static void testAsymmetricNonEcInt(int keySize) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); - keyPairGen.initialize(keySize); // $ hasInsufficientKeySize + keyPairGen.initialize(keySize); // $ Alert } public static void testAsymmetricEcSpecVariable(ECGenParameterSpec spec) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { @@ -243,14 +243,14 @@ public class InsufficientKeySizeTest { public static void testAsymmetricEcIntVariable(int keySize, KeyPairGenerator kpg) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("EC"); - keyPairGen.initialize(keySize); // $ hasInsufficientKeySize + keyPairGen.initialize(keySize); // $ Alert kpg.initialize(128); // $ MISSING: hasInsufficientKeySize } public static void testAsymmetricEcIntLiteral(int keySize) throws java.security.NoSuchAlgorithmException, java.security.InvalidAlgorithmParameterException { KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("EC"); - keyPairGen.initialize(keySize); // $ hasInsufficientKeySize + keyPairGen.initialize(keySize); // $ Alert } - public int getRSAKeySize(){ return 1024; } + public int getRSAKeySize(){ return 1024; } // $ Source } diff --git a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.ql b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.ql deleted file mode 100644 index 441faa888e3..00000000000 --- a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import utils.test.InlineExpectationsTest -import semmle.code.java.security.InsufficientKeySizeQuery - -module InsufficientKeySizeTest implements TestSig { - string getARelevantTag() { result = "hasInsufficientKeySize" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasInsufficientKeySize" and - exists(KeySizeFlow::PathNode sink | KeySizeFlow::flowPath(_, sink) | - sink.getNode().getLocation() = location and - element = sink.getNode().toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.qlref b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.qlref new file mode 100644 index 00000000000..6b3f44f4ca2 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-326/InsufficientKeySizeTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-326/InsufficientKeySize.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 85c2f72892c51487b8363adf6690ec8b5746789b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 16:36:43 +0200 Subject: [PATCH 276/340] Java: convert InsecureRandomness test to .qlref --- .../CWE-330/InsecureRandomCookies.java | 40 +++++------ .../CWE-330/InsecureRandomnessTest.expected | 69 +++++++++++++++++++ .../CWE-330/InsecureRandomnessTest.ql | 19 ----- .../CWE-330/InsecureRandomnessTest.qlref | 4 ++ 4 files changed, 93 insertions(+), 39 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-330/InsecureRandomCookies.java b/java/ql/test/query-tests/security/CWE-330/InsecureRandomCookies.java index d34a0283313..742c2cebcf9 100644 --- a/java/ql/test/query-tests/security/CWE-330/InsecureRandomCookies.java +++ b/java/ql/test/query-tests/security/CWE-330/InsecureRandomCookies.java @@ -16,28 +16,28 @@ public class InsecureRandomCookies extends HttpServlet { public void doGet() { Random r = new Random(); - int c = r.nextInt(); + int c = r.nextInt(); // $ Source // BAD: The cookie value may be predictable. - Cookie cookie = new Cookie("name", Integer.toString(c)); // $hasWeakRandomFlow - cookie.setValue(Integer.toString(c)); // $hasWeakRandomFlow + Cookie cookie = new Cookie("name", Integer.toString(c)); // $ Alert + cookie.setValue(Integer.toString(c)); // $ Alert io.netty.handler.codec.http.Cookie nettyCookie = - new io.netty.handler.codec.http.DefaultCookie("name", Integer.toString(c)); // $hasWeakRandomFlow - nettyCookie.setValue(Integer.toString(c)); // $hasWeakRandomFlow + new io.netty.handler.codec.http.DefaultCookie("name", Integer.toString(c)); // $ Alert + nettyCookie.setValue(Integer.toString(c)); // $ Alert io.netty.handler.codec.http.cookie.Cookie nettyCookie2 = - new io.netty.handler.codec.http.cookie.DefaultCookie("name", Integer.toString(c)); // $hasWeakRandomFlow - nettyCookie2.setValue(Integer.toString(c)); // $hasWeakRandomFlow + new io.netty.handler.codec.http.cookie.DefaultCookie("name", Integer.toString(c)); // $ Alert + nettyCookie2.setValue(Integer.toString(c)); // $ Alert Encoder enc = null; - int c2 = r.nextInt(); + int c2 = r.nextInt(); // $ Source String value = enc.encodeForHTML(Integer.toString(c2)); // BAD: The cookie value may be predictable. - Cookie cookie2 = new Cookie("name", value); // $hasWeakRandomFlow + Cookie cookie2 = new Cookie("name", value); // $ Alert byte[] bytes = new byte[16]; - r.nextBytes(bytes); + r.nextBytes(bytes); // $ Source // BAD: The cookie value may be predictable. - Cookie cookie3 = new Cookie("name", new String(bytes)); // $hasWeakRandomFlow + Cookie cookie3 = new Cookie("name", new String(bytes)); // $ Alert SecureRandom sr = new SecureRandom(); @@ -48,22 +48,22 @@ public class InsecureRandomCookies extends HttpServlet { ThreadLocalRandom tlr = ThreadLocalRandom.current(); - Cookie cookie5 = new Cookie("name", Integer.toString(tlr.nextInt())); // $hasWeakRandomFlow + Cookie cookie5 = new Cookie("name", Integer.toString(tlr.nextInt())); // $ Alert - Cookie cookie6 = new Cookie("name", RandomStringUtils.random(10)); // $hasWeakRandomFlow + Cookie cookie6 = new Cookie("name", RandomStringUtils.random(10)); // $ Alert - Cookie cookie7 = new Cookie("name", RandomStringUtils.randomAscii(10)); // $hasWeakRandomFlow + Cookie cookie7 = new Cookie("name", RandomStringUtils.randomAscii(10)); // $ Alert - long c3 = r.nextLong(); + long c3 = r.nextLong(); // $ Source // BAD: The cookie value may be predictable. - Cookie cookie8 = new Cookie("name", Long.toString(c3 * 5)); // $hasWeakRandomFlow + Cookie cookie8 = new Cookie("name", Long.toString(c3 * 5)); // $ Alert - double c4 = Math.random(); + double c4 = Math.random(); // $ Source // BAD: The cookie value may be predictable. - Cookie cookie9 = new Cookie("name", Double.toString(c4)); // $hasWeakRandomFlow + Cookie cookie9 = new Cookie("name", Double.toString(c4)); // $ Alert - double c5 = Math.random(); + double c5 = Math.random(); // $ Source // BAD: The cookie value may be predictable. - Cookie cookie10 = new Cookie("name", Double.toString(++c5)); // $hasWeakRandomFlow + Cookie cookie10 = new Cookie("name", Double.toString(++c5)); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.expected b/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.expected index e69de29bb2d..3b460aeec32 100644 --- a/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.expected +++ b/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.expected @@ -0,0 +1,69 @@ +#select +| InsecureRandomCookies.java:21:44:21:62 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:21:44:21:62 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:22:25:22:43 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:22:25:22:43 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:25:71:25:89 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:25:71:25:89 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:26:30:26:48 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:26:30:26:48 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:28:78:28:96 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:28:78:28:96 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:29:31:29:49 | toString(...) | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:29:31:29:49 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:19:17:19:27 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:35:45:35:49 | value | InsecureRandomCookies.java:32:18:32:28 | nextInt(...) : Number | InsecureRandomCookies.java:35:45:35:49 | value | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:32:18:32:28 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:40:45:40:61 | new String(...) | InsecureRandomCookies.java:38:21:38:25 | bytes : byte[] | InsecureRandomCookies.java:40:45:40:61 | new String(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:38:21:38:25 | bytes | Insecure randomness source. | +| InsecureRandomCookies.java:51:45:51:75 | toString(...) | InsecureRandomCookies.java:51:62:51:74 | nextInt(...) : Number | InsecureRandomCookies.java:51:45:51:75 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:51:62:51:74 | nextInt(...) | Insecure randomness source. | +| InsecureRandomCookies.java:53:45:53:72 | random(...) | InsecureRandomCookies.java:53:45:53:72 | random(...) | InsecureRandomCookies.java:53:45:53:72 | random(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:53:45:53:72 | random(...) | Insecure randomness source. | +| InsecureRandomCookies.java:55:45:55:77 | randomAscii(...) | InsecureRandomCookies.java:55:45:55:77 | randomAscii(...) | InsecureRandomCookies.java:55:45:55:77 | randomAscii(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:55:45:55:77 | randomAscii(...) | Insecure randomness source. | +| InsecureRandomCookies.java:59:45:59:65 | toString(...) | InsecureRandomCookies.java:57:19:57:30 | nextLong(...) : Number | InsecureRandomCookies.java:59:45:59:65 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:57:19:57:30 | nextLong(...) | Insecure randomness source. | +| InsecureRandomCookies.java:63:45:63:63 | toString(...) | InsecureRandomCookies.java:61:21:61:33 | random(...) : Number | InsecureRandomCookies.java:63:45:63:63 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:61:21:61:33 | random(...) | Insecure randomness source. | +| InsecureRandomCookies.java:67:46:67:66 | toString(...) | InsecureRandomCookies.java:65:21:65:33 | random(...) : Number | InsecureRandomCookies.java:67:46:67:66 | toString(...) | Potential Insecure randomness due to a $@. | InsecureRandomCookies.java:65:21:65:33 | random(...) | Insecure randomness source. | +edges +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:21:44:21:62 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:22:25:22:43 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:25:71:25:89 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:26:30:26:48 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:28:78:28:96 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | InsecureRandomCookies.java:29:31:29:49 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:32:18:32:28 | nextInt(...) : Number | InsecureRandomCookies.java:33:42:33:61 | toString(...) : String | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:33:24:33:62 | encodeForHTML(...) : String | InsecureRandomCookies.java:35:45:35:49 | value | provenance | | +| InsecureRandomCookies.java:33:42:33:61 | toString(...) : String | InsecureRandomCookies.java:33:24:33:62 | encodeForHTML(...) : String | provenance | Config | +| InsecureRandomCookies.java:33:42:33:61 | toString(...) : String | InsecureRandomCookies.java:33:24:33:62 | encodeForHTML(...) : String | provenance | MaD:2 | +| InsecureRandomCookies.java:38:21:38:25 | bytes : byte[] | InsecureRandomCookies.java:40:56:40:60 | bytes : byte[] | provenance | | +| InsecureRandomCookies.java:40:56:40:60 | bytes : byte[] | InsecureRandomCookies.java:40:45:40:61 | new String(...) | provenance | MaD:1 | +| InsecureRandomCookies.java:51:62:51:74 | nextInt(...) : Number | InsecureRandomCookies.java:51:45:51:75 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:57:19:57:30 | nextLong(...) : Number | InsecureRandomCookies.java:59:59:59:60 | c3 : Number | provenance | | +| InsecureRandomCookies.java:59:59:59:60 | c3 : Number | InsecureRandomCookies.java:59:59:59:64 | ... * ... : Number | provenance | Config | +| InsecureRandomCookies.java:59:59:59:64 | ... * ... : Number | InsecureRandomCookies.java:59:45:59:65 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:61:21:61:33 | random(...) : Number | InsecureRandomCookies.java:63:45:63:63 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:65:21:65:33 | random(...) : Number | InsecureRandomCookies.java:67:64:67:65 | c5 : Number | provenance | | +| InsecureRandomCookies.java:67:62:67:65 | ++... : Number | InsecureRandomCookies.java:67:46:67:66 | toString(...) | provenance | TaintPreservingCallable | +| InsecureRandomCookies.java:67:64:67:65 | c5 : Number | InsecureRandomCookies.java:67:62:67:65 | ++... : Number | provenance | Config | +models +| 1 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +| 2 | Summary: org.owasp.esapi; Encoder; true; encodeForHTML; (String); ; Argument[0]; ReturnValue; taint; manual | +nodes +| InsecureRandomCookies.java:19:17:19:27 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | +| InsecureRandomCookies.java:21:44:21:62 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:22:25:22:43 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:25:71:25:89 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:26:30:26:48 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:28:78:28:96 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:29:31:29:49 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:32:18:32:28 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | +| InsecureRandomCookies.java:33:24:33:62 | encodeForHTML(...) : String | semmle.label | encodeForHTML(...) : String | +| InsecureRandomCookies.java:33:42:33:61 | toString(...) : String | semmle.label | toString(...) : String | +| InsecureRandomCookies.java:35:45:35:49 | value | semmle.label | value | +| InsecureRandomCookies.java:38:21:38:25 | bytes : byte[] | semmle.label | bytes : byte[] | +| InsecureRandomCookies.java:40:45:40:61 | new String(...) | semmle.label | new String(...) | +| InsecureRandomCookies.java:40:56:40:60 | bytes : byte[] | semmle.label | bytes : byte[] | +| InsecureRandomCookies.java:51:45:51:75 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:51:62:51:74 | nextInt(...) : Number | semmle.label | nextInt(...) : Number | +| InsecureRandomCookies.java:53:45:53:72 | random(...) | semmle.label | random(...) | +| InsecureRandomCookies.java:55:45:55:77 | randomAscii(...) | semmle.label | randomAscii(...) | +| InsecureRandomCookies.java:57:19:57:30 | nextLong(...) : Number | semmle.label | nextLong(...) : Number | +| InsecureRandomCookies.java:59:45:59:65 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:59:59:59:60 | c3 : Number | semmle.label | c3 : Number | +| InsecureRandomCookies.java:59:59:59:64 | ... * ... : Number | semmle.label | ... * ... : Number | +| InsecureRandomCookies.java:61:21:61:33 | random(...) : Number | semmle.label | random(...) : Number | +| InsecureRandomCookies.java:63:45:63:63 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:65:21:65:33 | random(...) : Number | semmle.label | random(...) : Number | +| InsecureRandomCookies.java:67:46:67:66 | toString(...) | semmle.label | toString(...) | +| InsecureRandomCookies.java:67:62:67:65 | ++... : Number | semmle.label | ++... : Number | +| InsecureRandomCookies.java:67:64:67:65 | c5 : Number | semmle.label | c5 : Number | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.ql b/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.ql deleted file mode 100644 index a9e8cbb2dc4..00000000000 --- a/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.ql +++ /dev/null @@ -1,19 +0,0 @@ -import java -import semmle.code.java.dataflow.DataFlow -import semmle.code.java.security.InsecureRandomnessQuery -import utils.test.InlineExpectationsTest - -module WeakRandomTest implements TestSig { - string getARelevantTag() { result = "hasWeakRandomFlow" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasWeakRandomFlow" and - exists(DataFlow::Node sink | InsecureRandomnessFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.qlref b/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.qlref new file mode 100644 index 00000000000..2d02acfab9a --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-330/InsecureRandomnessTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-330/InsecureRandomness.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 28694276e26a443ef151827f4ae5b60f2cc5ff56 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 16:52:03 +0200 Subject: [PATCH 277/340] Java: convert MissingJWTSignatureCheck test to .qlref --- .../MissingJWTSignatureCheckTest.expected | 55 +++++++++++++++++++ .../CWE-347/MissingJWTSignatureCheckTest.java | 16 +++--- .../CWE-347/MissingJWTSignatureCheckTest.ql | 18 ------ .../MissingJWTSignatureCheckTest.qlref | 4 ++ 4 files changed, 67 insertions(+), 26 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.expected b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.expected index e69de29bb2d..ba513e95a2d 100644 --- a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.expected +++ b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.expected @@ -0,0 +1,55 @@ +#select +| MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:110:9:110:74 | build(...) | MissingJWTSignatureCheckTest.java:110:9:110:66 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:110:9:110:74 | build(...) | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:110:9:110:66 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:114:9:114:83 | build(...) | MissingJWTSignatureCheckTest.java:114:9:114:75 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:114:9:114:83 | build(...) | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:114:9:114:75 | setSigningKey(...) | JWT signing key | +| MissingJWTSignatureCheckTest.java:118:9:118:59 | setSigningKey(...) | MissingJWTSignatureCheckTest.java:118:9:118:59 | setSigningKey(...) | MissingJWTSignatureCheckTest.java:118:9:118:59 | setSigningKey(...) | This parser sets a $@, but the signature is not verified. | MissingJWTSignatureCheckTest.java:118:9:118:59 | setSigningKey(...) | JWT signing key | +edges +| MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:25:29:25:46 | getASignedParser(...) : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:17:16:17:81 | build(...) : JwtParser | provenance | Config | +| MissingJWTSignatureCheckTest.java:17:16:17:81 | build(...) : JwtParser | MissingJWTSignatureCheckTest.java:31:29:31:63 | getASignedParserFromParserBuilder(...) : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) : JwtParser | MissingJWTSignatureCheckTest.java:37:29:37:49 | getASignedNewParser(...) : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:25:29:25:46 | getASignedParser(...) : JwtParser | MissingJWTSignatureCheckTest.java:26:31:26:37 | parser1 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:25:29:25:46 | getASignedParser(...) : JwtParser | MissingJWTSignatureCheckTest.java:27:38:27:44 | parser1 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:26:31:26:37 | parser1 : JwtParser | MissingJWTSignatureCheckTest.java:82:40:82:55 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:27:38:27:44 | parser1 : JwtParser | MissingJWTSignatureCheckTest.java:86:47:86:62 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:31:29:31:63 | getASignedParserFromParserBuilder(...) : JwtParser | MissingJWTSignatureCheckTest.java:32:31:32:37 | parser2 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:31:29:31:63 | getASignedParserFromParserBuilder(...) : JwtParser | MissingJWTSignatureCheckTest.java:33:38:33:44 | parser2 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:32:31:32:37 | parser2 : JwtParser | MissingJWTSignatureCheckTest.java:82:40:82:55 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:33:38:33:44 | parser2 : JwtParser | MissingJWTSignatureCheckTest.java:86:47:86:62 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:37:29:37:49 | getASignedNewParser(...) : JwtParser | MissingJWTSignatureCheckTest.java:38:31:38:37 | parser3 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:37:29:37:49 | getASignedNewParser(...) : JwtParser | MissingJWTSignatureCheckTest.java:39:38:39:44 | parser3 : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:38:31:38:37 | parser3 : JwtParser | MissingJWTSignatureCheckTest.java:82:40:82:55 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:39:38:39:44 | parser3 : JwtParser | MissingJWTSignatureCheckTest.java:86:47:86:62 | parser : JwtParser | provenance | | +| MissingJWTSignatureCheckTest.java:82:40:82:55 | parser : JwtParser | MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | provenance | | +| MissingJWTSignatureCheckTest.java:86:47:86:62 | parser : JwtParser | MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | provenance | | +| MissingJWTSignatureCheckTest.java:110:9:110:66 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:110:9:110:74 | build(...) | provenance | Config | +| MissingJWTSignatureCheckTest.java:114:9:114:75 | setSigningKey(...) : DefaultJwtParserBuilder | MissingJWTSignatureCheckTest.java:114:9:114:83 | build(...) | provenance | Config | +nodes +| MissingJWTSignatureCheckTest.java:13:16:13:66 | setSigningKey(...) : JwtParser | semmle.label | setSigningKey(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:17:16:17:73 | setSigningKey(...) : DefaultJwtParserBuilder | semmle.label | setSigningKey(...) : DefaultJwtParserBuilder | +| MissingJWTSignatureCheckTest.java:17:16:17:81 | build(...) : JwtParser | semmle.label | build(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:21:16:21:75 | setSigningKey(...) : JwtParser | semmle.label | setSigningKey(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:25:29:25:46 | getASignedParser(...) : JwtParser | semmle.label | getASignedParser(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:26:31:26:37 | parser1 : JwtParser | semmle.label | parser1 : JwtParser | +| MissingJWTSignatureCheckTest.java:27:38:27:44 | parser1 : JwtParser | semmle.label | parser1 : JwtParser | +| MissingJWTSignatureCheckTest.java:31:29:31:63 | getASignedParserFromParserBuilder(...) : JwtParser | semmle.label | getASignedParserFromParserBuilder(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:32:31:32:37 | parser2 : JwtParser | semmle.label | parser2 : JwtParser | +| MissingJWTSignatureCheckTest.java:33:38:33:44 | parser2 : JwtParser | semmle.label | parser2 : JwtParser | +| MissingJWTSignatureCheckTest.java:37:29:37:49 | getASignedNewParser(...) : JwtParser | semmle.label | getASignedNewParser(...) : JwtParser | +| MissingJWTSignatureCheckTest.java:38:31:38:37 | parser3 : JwtParser | semmle.label | parser3 : JwtParser | +| MissingJWTSignatureCheckTest.java:39:38:39:44 | parser3 : JwtParser | semmle.label | parser3 : JwtParser | +| MissingJWTSignatureCheckTest.java:82:40:82:55 | parser : JwtParser | semmle.label | parser : JwtParser | +| MissingJWTSignatureCheckTest.java:83:9:83:14 | parser | semmle.label | parser | +| MissingJWTSignatureCheckTest.java:86:47:86:62 | parser : JwtParser | semmle.label | parser : JwtParser | +| MissingJWTSignatureCheckTest.java:87:9:87:14 | parser | semmle.label | parser | +| MissingJWTSignatureCheckTest.java:110:9:110:66 | setSigningKey(...) : DefaultJwtParserBuilder | semmle.label | setSigningKey(...) : DefaultJwtParserBuilder | +| MissingJWTSignatureCheckTest.java:110:9:110:74 | build(...) | semmle.label | build(...) | +| MissingJWTSignatureCheckTest.java:114:9:114:75 | setSigningKey(...) : DefaultJwtParserBuilder | semmle.label | setSigningKey(...) : DefaultJwtParserBuilder | +| MissingJWTSignatureCheckTest.java:114:9:114:83 | build(...) | semmle.label | build(...) | +| MissingJWTSignatureCheckTest.java:118:9:118:59 | setSigningKey(...) | semmle.label | setSigningKey(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.java b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.java index 93b54154ffc..c4ab09b27e6 100644 --- a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.java +++ b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.java @@ -10,15 +10,15 @@ import io.jsonwebtoken.impl.DefaultJwtParserBuilder; public class MissingJWTSignatureCheckTest { private JwtParser getASignedParser() { - return Jwts.parser().setSigningKey("someBase64EncodedKey"); + return Jwts.parser().setSigningKey("someBase64EncodedKey"); // $ Source } private JwtParser getASignedParserFromParserBuilder() { - return Jwts.parserBuilder().setSigningKey("someBase64EncodedKey").build(); + return Jwts.parserBuilder().setSigningKey("someBase64EncodedKey").build(); // $ Source } private JwtParser getASignedNewParser() { - return new DefaultJwtParser().setSigningKey("someBase64EncodedKey"); + return new DefaultJwtParser().setSigningKey("someBase64EncodedKey"); // $ Source } private void callSignedParsers() { @@ -80,11 +80,11 @@ public class MissingJWTSignatureCheckTest { } private void badJwtOnParserBuilder(JwtParser parser, String token) { - parser.parse(token); // $hasMissingJwtSignatureCheck + parser.parse(token); // $ Alert } private void badJwtHandlerOnParserBuilder(JwtParser parser, String token) { - parser.parse(token, new JwtHandlerAdapter>() { // $hasMissingJwtSignatureCheck + parser.parse(token, new JwtHandlerAdapter>() { // $ Alert @Override public Jwt onPlaintextJwt(Jwt jwt) { return jwt; @@ -107,15 +107,15 @@ public class MissingJWTSignatureCheckTest { } private void badJwtOnParserBuilder(String token) { - Jwts.parserBuilder().setSigningKey("someBase64EncodedKey").build().parse(token); // $hasMissingJwtSignatureCheck + Jwts.parserBuilder().setSigningKey("someBase64EncodedKey").build().parse(token); // $ Alert } private void badJwtOnDefaultParserBuilder(String token) { - new DefaultJwtParserBuilder().setSigningKey("someBase64EncodedKey").build().parse(token); // $hasMissingJwtSignatureCheck + new DefaultJwtParserBuilder().setSigningKey("someBase64EncodedKey").build().parse(token); // $ Alert } private void badJwtHandlerOnParser(String token) { - Jwts.parser().setSigningKey("someBase64EncodedKey").parse(token, // $hasMissingJwtSignatureCheck + Jwts.parser().setSigningKey("someBase64EncodedKey").parse(token, // $ Alert new JwtHandlerAdapter>() { @Override public Jwt onPlaintextJwt(Jwt jwt) { diff --git a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.ql b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.ql deleted file mode 100644 index 4ce6116e27f..00000000000 --- a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.MissingJWTSignatureCheckQuery -import utils.test.InlineExpectationsTest - -module HasMissingJwtSignatureCheckTest implements TestSig { - string getARelevantTag() { result = "hasMissingJwtSignatureCheck" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasMissingJwtSignatureCheck" and - exists(DataFlow::Node sink | MissingJwtSignatureCheckFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.qlref b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.qlref new file mode 100644 index 00000000000..79b63ee641f --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-347/MissingJWTSignatureCheckTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-347/MissingJWTSignatureCheck.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 2b19cbcd7e9f07784ba9f6ea7f9a8f64e1005e43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 16:58:35 +0200 Subject: [PATCH 278/340] Java: convert UnsafeContentUriResolution test to .qlref --- .../query-tests/security/CWE-441/Test.java | 30 +++++----- .../UnsafeContentUriResolutionTest.expected | 59 +++++++++++++++++++ .../CWE-441/UnsafeContentUriResolutionTest.ql | 4 -- .../UnsafeContentUriResolutionTest.qlref | 4 ++ 4 files changed, 78 insertions(+), 19 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-441/Test.java b/java/ql/test/query-tests/security/CWE-441/Test.java index 0bda0933115..be8bedeb7e7 100644 --- a/java/ql/test/query-tests/security/CWE-441/Test.java +++ b/java/ql/test/query-tests/security/CWE-441/Test.java @@ -29,23 +29,23 @@ public class Test extends Activity { public void onCreate() { { ContentResolver contentResolver = getContentResolver(); - Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); - contentResolver.openInputStream(uri); // $ hasTaintFlow - contentResolver.openOutputStream(uri); // $ hasTaintFlow - contentResolver.openAssetFile(uri, null, null); // $ hasTaintFlow - contentResolver.openAssetFileDescriptor(uri, null); // $ hasTaintFlow - contentResolver.openFile(uri, null, null); // $ hasTaintFlow - contentResolver.openFileDescriptor(uri, null); // $ hasTaintFlow - contentResolver.openTypedAssetFile(uri, null, null, null); // $ hasTaintFlow - contentResolver.openTypedAssetFileDescriptor(uri, null, null); // $ hasTaintFlow + Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); // $ Source + contentResolver.openInputStream(uri); // $ Alert + contentResolver.openOutputStream(uri); // $ Alert + contentResolver.openAssetFile(uri, null, null); // $ Alert + contentResolver.openAssetFileDescriptor(uri, null); // $ Alert + contentResolver.openFile(uri, null, null); // $ Alert + contentResolver.openFileDescriptor(uri, null); // $ Alert + contentResolver.openTypedAssetFile(uri, null, null, null); // $ Alert + contentResolver.openTypedAssetFileDescriptor(uri, null, null); // $ Alert } { ContentResolver contentResolver = getContentResolver(); - Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); + Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); // $ Source String path = uri.getPath(); if (path.startsWith("/data")) throw new SecurityException(); - contentResolver.openInputStream(uri); // $ hasTaintFlow + contentResolver.openInputStream(uri); // $ Alert } // Equals checks { @@ -64,11 +64,11 @@ public class Test extends Activity { // Allow list checks { ContentResolver contentResolver = getContentResolver(); - Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); + Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); // $ Source String path = uri.getPath(); if (!path.startsWith("/safe/path")) throw new SecurityException(); - contentResolver.openInputStream(uri); // $ hasTaintFlow + contentResolver.openInputStream(uri); // $ Alert } { ContentResolver contentResolver = getContentResolver(); @@ -89,11 +89,11 @@ public class Test extends Activity { // Block list checks { ContentResolver contentResolver = getContentResolver(); - Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); + Uri uri = (Uri) getIntent().getParcelableExtra("URI_EXTRA"); // $ Source String path = uri.getPath(); if (path.startsWith("/data")) throw new SecurityException(); - contentResolver.openInputStream(uri); // $ hasTaintFlow + contentResolver.openInputStream(uri); // $ Alert } { ContentResolver contentResolver = getContentResolver(); diff --git a/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.expected b/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.expected index e69de29bb2d..73fe6b44f3c 100644 --- a/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.expected +++ b/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.expected @@ -0,0 +1,59 @@ +#select +| Test.java:33:45:33:47 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:33:45:33:47 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:34:46:34:48 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:34:46:34:48 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:35:43:35:45 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:35:43:35:45 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:36:53:36:55 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:36:53:36:55 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:37:38:37:40 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:37:38:37:40 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:38:48:38:50 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:38:48:38:50 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:39:48:39:50 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:39:48:39:50 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:40:58:40:60 | uri | Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:40:58:40:60 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:32:29:32:39 | getIntent(...) | user-provided value | +| Test.java:48:45:48:47 | uri | Test.java:44:29:44:39 | getIntent(...) : Intent | Test.java:48:45:48:47 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:44:29:44:39 | getIntent(...) | user-provided value | +| Test.java:71:45:71:47 | uri | Test.java:67:29:67:39 | getIntent(...) : Intent | Test.java:71:45:71:47 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:67:29:67:39 | getIntent(...) | user-provided value | +| Test.java:96:45:96:47 | uri | Test.java:92:29:92:39 | getIntent(...) : Intent | Test.java:96:45:96:47 | uri | This ContentResolver method that resolves a URI depends on a $@. | Test.java:92:29:92:39 | getIntent(...) | user-provided value | +edges +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:33:45:33:47 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:34:46:34:48 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:35:43:35:45 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:36:53:36:55 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:37:38:37:40 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:38:48:38:50 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:39:48:39:50 | uri | provenance | | +| Test.java:32:23:32:71 | (...)... : Uri | Test.java:40:58:40:60 | uri | provenance | | +| Test.java:32:29:32:39 | getIntent(...) : Intent | Test.java:32:29:32:71 | getParcelableExtra(...) : Parcelable | provenance | MaD:1 | +| Test.java:32:29:32:71 | getParcelableExtra(...) : Parcelable | Test.java:32:23:32:71 | (...)... : Uri | provenance | | +| Test.java:44:23:44:71 | (...)... : Uri | Test.java:48:45:48:47 | uri | provenance | | +| Test.java:44:29:44:39 | getIntent(...) : Intent | Test.java:44:29:44:71 | getParcelableExtra(...) : Parcelable | provenance | MaD:1 | +| Test.java:44:29:44:71 | getParcelableExtra(...) : Parcelable | Test.java:44:23:44:71 | (...)... : Uri | provenance | | +| Test.java:67:23:67:71 | (...)... : Uri | Test.java:71:45:71:47 | uri | provenance | | +| Test.java:67:29:67:39 | getIntent(...) : Intent | Test.java:67:29:67:71 | getParcelableExtra(...) : Parcelable | provenance | MaD:1 | +| Test.java:67:29:67:71 | getParcelableExtra(...) : Parcelable | Test.java:67:23:67:71 | (...)... : Uri | provenance | | +| Test.java:92:23:92:71 | (...)... : Uri | Test.java:96:45:96:47 | uri | provenance | | +| Test.java:92:29:92:39 | getIntent(...) : Intent | Test.java:92:29:92:71 | getParcelableExtra(...) : Parcelable | provenance | MaD:1 | +| Test.java:92:29:92:71 | getParcelableExtra(...) : Parcelable | Test.java:92:23:92:71 | (...)... : Uri | provenance | | +models +| 1 | Summary: android.content; Intent; true; getParcelableExtra; (String); ; Argument[this].SyntheticField[android.content.Intent.extras].MapValue; ReturnValue; value; manual | +nodes +| Test.java:32:23:32:71 | (...)... : Uri | semmle.label | (...)... : Uri | +| Test.java:32:29:32:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| Test.java:32:29:32:71 | getParcelableExtra(...) : Parcelable | semmle.label | getParcelableExtra(...) : Parcelable | +| Test.java:33:45:33:47 | uri | semmle.label | uri | +| Test.java:34:46:34:48 | uri | semmle.label | uri | +| Test.java:35:43:35:45 | uri | semmle.label | uri | +| Test.java:36:53:36:55 | uri | semmle.label | uri | +| Test.java:37:38:37:40 | uri | semmle.label | uri | +| Test.java:38:48:38:50 | uri | semmle.label | uri | +| Test.java:39:48:39:50 | uri | semmle.label | uri | +| Test.java:40:58:40:60 | uri | semmle.label | uri | +| Test.java:44:23:44:71 | (...)... : Uri | semmle.label | (...)... : Uri | +| Test.java:44:29:44:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| Test.java:44:29:44:71 | getParcelableExtra(...) : Parcelable | semmle.label | getParcelableExtra(...) : Parcelable | +| Test.java:48:45:48:47 | uri | semmle.label | uri | +| Test.java:67:23:67:71 | (...)... : Uri | semmle.label | (...)... : Uri | +| Test.java:67:29:67:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| Test.java:67:29:67:71 | getParcelableExtra(...) : Parcelable | semmle.label | getParcelableExtra(...) : Parcelable | +| Test.java:71:45:71:47 | uri | semmle.label | uri | +| Test.java:92:23:92:71 | (...)... : Uri | semmle.label | (...)... : Uri | +| Test.java:92:29:92:39 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| Test.java:92:29:92:71 | getParcelableExtra(...) : Parcelable | semmle.label | getParcelableExtra(...) : Parcelable | +| Test.java:96:45:96:47 | uri | semmle.label | uri | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.ql b/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.ql deleted file mode 100644 index ded8a8d6979..00000000000 --- a/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.UnsafeContentUriResolutionQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.qlref b/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.qlref new file mode 100644 index 00000000000..abcbe555e28 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-441/UnsafeContentUriResolutionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-441/UnsafeContentUriResolution.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 192f45ed2baa155be84e2bc5220724f638b5a1ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:05:16 +0200 Subject: [PATCH 279/340] Java: convert FragmentInjection test to .qlref --- .../CWE-470/FragmentInjectionTest.expected | 68 +++++++++++++++++++ .../security/CWE-470/FragmentInjectionTest.ql | 4 -- .../CWE-470/FragmentInjectionTest.qlref | 4 ++ .../security/CWE-470/MainActivity.java | 22 +++--- 4 files changed, 83 insertions(+), 15 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.expected b/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.expected index e69de29bb2d..27281d07811 100644 --- a/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.expected @@ -0,0 +1,68 @@ +#select +| MainActivity.java:17:20:17:39 | newInstance(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:17:20:17:39 | newInstance(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:18:23:18:55 | instantiate(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:18:23:18:55 | instantiate(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:19:23:19:61 | instantiate(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:19:23:19:61 | instantiate(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:20:23:20:28 | fClass | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:20:23:20:28 | fClass | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:21:23:21:42 | newInstance(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:21:23:21:42 | newInstance(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:22:23:22:42 | newInstance(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:22:23:22:42 | newInstance(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:23:27:23:32 | fClass | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:23:27:23:32 | fClass | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:24:27:24:46 | newInstance(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:24:27:24:46 | newInstance(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:25:27:25:32 | fClass | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:25:27:25:32 | fClass | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +| MainActivity.java:26:27:26:46 | newInstance(...) | MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:26:27:26:46 | newInstance(...) | Fragment depends on a $@, which may allow a malicious application to bypass access controls. | MainActivity.java:14:34:14:44 | getIntent(...) | user-provided value | +edges +| MainActivity.java:14:34:14:44 | getIntent(...) : Intent | MainActivity.java:14:34:14:68 | getStringExtra(...) : String | provenance | MaD:10 | +| MainActivity.java:14:34:14:68 | getStringExtra(...) : String | MainActivity.java:16:70:16:74 | fname : String | provenance | | +| MainActivity.java:16:38:16:75 | (...)... : Class | MainActivity.java:17:20:17:25 | fClass : Class | provenance | | +| MainActivity.java:16:56:16:75 | forName(...) : Class | MainActivity.java:16:38:16:75 | (...)... : Class | provenance | | +| MainActivity.java:16:70:16:74 | fname : String | MainActivity.java:16:56:16:75 | forName(...) : Class | provenance | Config | +| MainActivity.java:16:70:16:74 | fname : String | MainActivity.java:18:50:18:54 | fname : String | provenance | | +| MainActivity.java:17:20:17:25 | fClass : Class | MainActivity.java:17:20:17:39 | newInstance(...) | provenance | Config Sink:MaD:1 | +| MainActivity.java:17:20:17:25 | fClass : Class | MainActivity.java:20:23:20:28 | fClass | provenance | Sink:MaD:2 | +| MainActivity.java:17:20:17:25 | fClass : Class | MainActivity.java:21:23:21:28 | fClass : Class | provenance | | +| MainActivity.java:18:50:18:54 | fname : String | MainActivity.java:18:23:18:55 | instantiate(...) | provenance | Config Sink:MaD:4 | +| MainActivity.java:18:50:18:54 | fname : String | MainActivity.java:19:50:19:54 | fname : String | provenance | | +| MainActivity.java:19:50:19:54 | fname : String | MainActivity.java:19:23:19:61 | instantiate(...) | provenance | Config Sink:MaD:3 | +| MainActivity.java:21:23:21:28 | fClass : Class | MainActivity.java:21:23:21:42 | newInstance(...) | provenance | Config Sink:MaD:4 | +| MainActivity.java:21:23:21:28 | fClass : Class | MainActivity.java:22:23:22:28 | fClass : Class | provenance | | +| MainActivity.java:22:23:22:28 | fClass : Class | MainActivity.java:22:23:22:42 | newInstance(...) | provenance | Config Sink:MaD:5 | +| MainActivity.java:22:23:22:28 | fClass : Class | MainActivity.java:23:27:23:32 | fClass | provenance | Sink:MaD:6 | +| MainActivity.java:22:23:22:28 | fClass : Class | MainActivity.java:24:27:24:32 | fClass : Class | provenance | | +| MainActivity.java:24:27:24:32 | fClass : Class | MainActivity.java:24:27:24:46 | newInstance(...) | provenance | Config Sink:MaD:8 | +| MainActivity.java:24:27:24:32 | fClass : Class | MainActivity.java:25:27:25:32 | fClass | provenance | Sink:MaD:7 | +| MainActivity.java:24:27:24:32 | fClass : Class | MainActivity.java:26:27:26:32 | fClass : Class | provenance | | +| MainActivity.java:26:27:26:32 | fClass : Class | MainActivity.java:26:27:26:46 | newInstance(...) | provenance | Config Sink:MaD:9 | +models +| 1 | Sink: androidx.fragment.app; FragmentTransaction; true; add; (Fragment,String); ; Argument[0]; fragment-injection; manual | +| 2 | Sink: androidx.fragment.app; FragmentTransaction; true; add; (int,Class,Bundle,String); ; Argument[1]; fragment-injection; manual | +| 3 | Sink: androidx.fragment.app; FragmentTransaction; true; add; (int,Fragment); ; Argument[1]; fragment-injection; manual | +| 4 | Sink: androidx.fragment.app; FragmentTransaction; true; add; (int,Fragment,String); ; Argument[1]; fragment-injection; manual | +| 5 | Sink: androidx.fragment.app; FragmentTransaction; true; attach; (Fragment); ; Argument[0]; fragment-injection; manual | +| 6 | Sink: androidx.fragment.app; FragmentTransaction; true; replace; (int,Class,Bundle); ; Argument[1]; fragment-injection; manual | +| 7 | Sink: androidx.fragment.app; FragmentTransaction; true; replace; (int,Class,Bundle,String); ; Argument[1]; fragment-injection; manual | +| 8 | Sink: androidx.fragment.app; FragmentTransaction; true; replace; (int,Fragment); ; Argument[1]; fragment-injection; manual | +| 9 | Sink: androidx.fragment.app; FragmentTransaction; true; replace; (int,Fragment,String); ; Argument[1]; fragment-injection; manual | +| 10 | Summary: android.content; Intent; true; getStringExtra; (String); ; Argument[this].SyntheticField[android.content.Intent.extras].MapValue; ReturnValue; value; manual | +nodes +| MainActivity.java:14:34:14:44 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| MainActivity.java:14:34:14:68 | getStringExtra(...) : String | semmle.label | getStringExtra(...) : String | +| MainActivity.java:16:38:16:75 | (...)... : Class | semmle.label | (...)... : Class | +| MainActivity.java:16:56:16:75 | forName(...) : Class | semmle.label | forName(...) : Class | +| MainActivity.java:16:70:16:74 | fname : String | semmle.label | fname : String | +| MainActivity.java:17:20:17:25 | fClass : Class | semmle.label | fClass : Class | +| MainActivity.java:17:20:17:39 | newInstance(...) | semmle.label | newInstance(...) | +| MainActivity.java:18:23:18:55 | instantiate(...) | semmle.label | instantiate(...) | +| MainActivity.java:18:50:18:54 | fname : String | semmle.label | fname : String | +| MainActivity.java:19:23:19:61 | instantiate(...) | semmle.label | instantiate(...) | +| MainActivity.java:19:50:19:54 | fname : String | semmle.label | fname : String | +| MainActivity.java:20:23:20:28 | fClass | semmle.label | fClass | +| MainActivity.java:21:23:21:28 | fClass : Class | semmle.label | fClass : Class | +| MainActivity.java:21:23:21:42 | newInstance(...) | semmle.label | newInstance(...) | +| MainActivity.java:22:23:22:28 | fClass : Class | semmle.label | fClass : Class | +| MainActivity.java:22:23:22:42 | newInstance(...) | semmle.label | newInstance(...) | +| MainActivity.java:23:27:23:32 | fClass | semmle.label | fClass | +| MainActivity.java:24:27:24:32 | fClass : Class | semmle.label | fClass : Class | +| MainActivity.java:24:27:24:46 | newInstance(...) | semmle.label | newInstance(...) | +| MainActivity.java:25:27:25:32 | fClass | semmle.label | fClass | +| MainActivity.java:26:27:26:32 | fClass : Class | semmle.label | fClass : Class | +| MainActivity.java:26:27:26:46 | newInstance(...) | semmle.label | newInstance(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.ql b/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.ql deleted file mode 100644 index 665d750ee20..00000000000 --- a/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import semmle.code.java.security.FragmentInjectionQuery -import utils.test.InlineFlowTest -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.qlref new file mode 100644 index 00000000000..f6d0df1bfcd --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-470/FragmentInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-470/FragmentInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-470/MainActivity.java b/java/ql/test/query-tests/security/CWE-470/MainActivity.java index 3773a9dbe37..fccc2d21ff6 100644 --- a/java/ql/test/query-tests/security/CWE-470/MainActivity.java +++ b/java/ql/test/query-tests/security/CWE-470/MainActivity.java @@ -11,19 +11,19 @@ public class MainActivity extends FragmentActivity { public void onCreate(Bundle savedInstance) { try { super.onCreate(savedInstance); - final String fname = getIntent().getStringExtra("fname"); + final String fname = getIntent().getStringExtra("fname"); // $ Source FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); Class fClass = (Class) Class.forName(fname); - ft.add(fClass.newInstance(), ""); // $ hasTaintFlow - ft.add(0, Fragment.instantiate(this, fname), null); // $ hasTaintFlow - ft.add(0, Fragment.instantiate(this, fname, null)); // $ hasTaintFlow - ft.add(0, fClass, null, ""); // $ hasTaintFlow - ft.add(0, fClass.newInstance(), ""); // $ hasTaintFlow - ft.attach(fClass.newInstance()); // $ hasTaintFlow - ft.replace(0, fClass, null); // $ hasTaintFlow - ft.replace(0, fClass.newInstance()); // $ hasTaintFlow - ft.replace(0, fClass, null, ""); // $ hasTaintFlow - ft.replace(0, fClass.newInstance(), ""); // $ hasTaintFlow + ft.add(fClass.newInstance(), ""); // $ Alert + ft.add(0, Fragment.instantiate(this, fname), null); // $ Alert + ft.add(0, Fragment.instantiate(this, fname, null)); // $ Alert + ft.add(0, fClass, null, ""); // $ Alert + ft.add(0, fClass.newInstance(), ""); // $ Alert + ft.attach(fClass.newInstance()); // $ Alert + ft.replace(0, fClass, null); // $ Alert + ft.replace(0, fClass.newInstance()); // $ Alert + ft.replace(0, fClass, null, ""); // $ Alert + ft.replace(0, fClass.newInstance(), ""); // $ Alert ft.add(Fragment.class.newInstance(), ""); // Safe ft.attach(Fragment.class.newInstance()); // Safe From c4b0955045f45906533c43b6298621727d1410ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:09:58 +0200 Subject: [PATCH 280/340] Java: convert WebviewDebuggingEnabled test to .qlref --- .../security/CWE-489/webview-debugging/Test.java | 10 +++++----- .../WebviewDebuggingEnabled.expected | 12 ++++++++++++ .../webview-debugging/WebviewDebuggingEnabled.ql | 4 ---- .../webview-debugging/WebviewDebuggingEnabled.qlref | 4 ++++ 4 files changed, 21 insertions(+), 9 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.ql create mode 100644 java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.qlref diff --git a/java/ql/test/query-tests/security/CWE-489/webview-debugging/Test.java b/java/ql/test/query-tests/security/CWE-489/webview-debugging/Test.java index 3fe75e89388..378d5920cdd 100644 --- a/java/ql/test/query-tests/security/CWE-489/webview-debugging/Test.java +++ b/java/ql/test/query-tests/security/CWE-489/webview-debugging/Test.java @@ -4,20 +4,20 @@ class Test { boolean DEBUG_BUILD; void test1() { - WebView.setWebContentsDebuggingEnabled(true); // $hasValueFlow + WebView.setWebContentsDebuggingEnabled(true); // $ Alert } void test2(){ if (DEBUG_BUILD) { - WebView.setWebContentsDebuggingEnabled(true); + WebView.setWebContentsDebuggingEnabled(true); } } void test3(boolean enabled){ - WebView.setWebContentsDebuggingEnabled(enabled); // $hasValueFlow + WebView.setWebContentsDebuggingEnabled(enabled); // $ Alert } void test4(){ - test3(true); + test3(true); // $ Source } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.expected b/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.expected index e69de29bb2d..040ae7e3f3f 100644 --- a/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.expected +++ b/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.expected @@ -0,0 +1,12 @@ +#select +| Test.java:7:48:7:51 | true | Test.java:7:48:7:51 | true | Test.java:7:48:7:51 | true | Webview debugging is enabled. | +| Test.java:17:48:17:54 | enabled | Test.java:21:15:21:18 | true : Boolean | Test.java:17:48:17:54 | enabled | Webview debugging is enabled. | +edges +| Test.java:16:16:16:30 | enabled : Boolean | Test.java:17:48:17:54 | enabled | provenance | | +| Test.java:21:15:21:18 | true : Boolean | Test.java:16:16:16:30 | enabled : Boolean | provenance | | +nodes +| Test.java:7:48:7:51 | true | semmle.label | true | +| Test.java:16:16:16:30 | enabled : Boolean | semmle.label | enabled : Boolean | +| Test.java:17:48:17:54 | enabled | semmle.label | enabled | +| Test.java:21:15:21:18 | true : Boolean | semmle.label | true : Boolean | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.ql b/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.ql deleted file mode 100644 index f0b9cf08f82..00000000000 --- a/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.WebviewDebuggingEnabledQuery -import ValueFlowTest diff --git a/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.qlref b/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.qlref new file mode 100644 index 00000000000..596b3c6d005 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-489/webview-debugging/WebviewDebuggingEnabled.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-489/WebviewDebuggingEnabled.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 44123352234e0ba64b0f2553b0e6ee5f201d192b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:21:16 +0200 Subject: [PATCH 281/340] Java: convert UnsafeDeserialization test to .qlref --- .../test/query-tests/security/CWE-502/A.java | 60 +-- .../test/query-tests/security/CWE-502/B.java | 16 +- .../test/query-tests/security/CWE-502/C.java | 52 +-- .../security/CWE-502/FlexjsonServlet.java | 18 +- .../security/CWE-502/GsonActivity.java | 4 +- .../security/CWE-502/GsonServlet.java | 10 +- .../security/CWE-502/JabsorbServlet.java | 10 +- .../security/CWE-502/JacksonTest.java | 28 +- .../security/CWE-502/JoddJsonServlet.java | 16 +- .../security/CWE-502/ObjectMessageTest.java | 4 +- .../security/CWE-502/ParcelableEntity.java | 2 +- .../CWE-502/TestMessageBodyReader.java | 6 +- .../CWE-502/UnsafeDeserialization.expected | 411 ++++++++++++++++++ .../security/CWE-502/UnsafeDeserialization.ql | 18 - .../CWE-502/UnsafeDeserialization.qlref | 4 + 15 files changed, 528 insertions(+), 131 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.ql create mode 100644 java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref diff --git a/java/ql/test/query-tests/security/CWE-502/A.java b/java/ql/test/query-tests/security/CWE-502/A.java index f3bd633f880..81974edf283 100644 --- a/java/ql/test/query-tests/security/CWE-502/A.java +++ b/java/ql/test/query-tests/security/CWE-502/A.java @@ -11,15 +11,15 @@ import org.nibblesec.tools.SerialKiller; public class A { public Object deserialize1(Socket sock) throws java.io.IOException, ClassNotFoundException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source ObjectInputStream in = new ObjectInputStream(inputStream); - return in.readObject(); // $unsafeDeserialization + return in.readObject(); // $ Alert } public Object deserialize2(Socket sock) throws java.io.IOException, ClassNotFoundException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source ObjectInputStream in = new ObjectInputStream(inputStream); - return in.readUnshared(); // $unsafeDeserialization + return in.readUnshared(); // $ Alert } public Object deserializeWithSerialKiller(Socket sock) throws java.io.IOException, ClassNotFoundException { @@ -29,24 +29,24 @@ public class A { } public Object deserialize3(Socket sock) throws java.io.IOException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source XMLDecoder d = new XMLDecoder(inputStream); - return d.readObject(); // $unsafeDeserialization + return d.readObject(); // $ Alert } public Object deserialize4(Socket sock) throws java.io.IOException { XStream xs = new XStream(); - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source Reader reader = new InputStreamReader(inputStream); - return xs.fromXML(reader); // $unsafeDeserialization + return xs.fromXML(reader); // $ Alert } public void deserialize5(Socket sock) throws java.io.IOException { Kryo kryo = new Kryo(); - Input input = new Input(sock.getInputStream()); - A a1 = kryo.readObject(input, A.class); // $unsafeDeserialization - A a2 = kryo.readObjectOrNull(input, A.class); // $unsafeDeserialization - Object o = kryo.readClassAndObject(input); // $unsafeDeserialization + Input input = new Input(sock.getInputStream()); // $ Source + A a1 = kryo.readObject(input, A.class); // $ Alert + A a2 = kryo.readObjectOrNull(input, A.class); // $ Alert + Object o = kryo.readClassAndObject(input); // $ Alert } private Kryo getSafeKryo() throws java.io.IOException { @@ -64,22 +64,22 @@ public class A { public void deserializeSnakeYaml(Socket sock) throws java.io.IOException { Yaml yaml = new Yaml(); - InputStream input = sock.getInputStream(); - Object o = yaml.load(input); // $unsafeDeserialization - Object o2 = yaml.loadAll(input); // $unsafeDeserialization - Object o3 = yaml.parse(new InputStreamReader(input)); // $unsafeDeserialization - A o4 = yaml.loadAs(input, A.class); // $unsafeDeserialization - A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $unsafeDeserialization + InputStream input = sock.getInputStream(); // $ Source + Object o = yaml.load(input); // $ Alert + Object o2 = yaml.loadAll(input); // $ Alert + Object o3 = yaml.parse(new InputStreamReader(input)); // $ Alert + A o4 = yaml.loadAs(input, A.class); // $ Alert + A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $ Alert } public void deserializeSnakeYaml2(Socket sock) throws java.io.IOException { Yaml yaml = new Yaml(new Constructor()); - InputStream input = sock.getInputStream(); - Object o = yaml.load(input); // $unsafeDeserialization - Object o2 = yaml.loadAll(input); // $unsafeDeserialization - Object o3 = yaml.parse(new InputStreamReader(input)); // $unsafeDeserialization - A o4 = yaml.loadAs(input, A.class); // $unsafeDeserialization - A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $unsafeDeserialization + InputStream input = sock.getInputStream(); // $ Source + Object o = yaml.load(input); // $ Alert + Object o2 = yaml.loadAll(input); // $ Alert + Object o3 = yaml.parse(new InputStreamReader(input)); // $ Alert + A o4 = yaml.loadAs(input, A.class); // $ Alert + A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $ Alert } public void deserializeSnakeYaml3(Socket sock) throws java.io.IOException { @@ -94,11 +94,11 @@ public class A { public void deserializeSnakeYaml4(Socket sock) throws java.io.IOException { Yaml yaml = new Yaml(new Constructor(A.class)); - InputStream input = sock.getInputStream(); - Object o = yaml.load(input); // $unsafeDeserialization - Object o2 = yaml.loadAll(input); // $unsafeDeserialization - Object o3 = yaml.parse(new InputStreamReader(input)); // $unsafeDeserialization - A o4 = yaml.loadAs(input, A.class); // $unsafeDeserialization - A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $unsafeDeserialization + InputStream input = sock.getInputStream(); // $ Source + Object o = yaml.load(input); // $ Alert + Object o2 = yaml.loadAll(input); // $ Alert + Object o3 = yaml.parse(new InputStreamReader(input)); // $ Alert + A o4 = yaml.loadAs(input, A.class); // $ Alert + A o5 = yaml.loadAs(new InputStreamReader(input), A.class); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-502/B.java b/java/ql/test/query-tests/security/CWE-502/B.java index d97a44cfd58..803982081ad 100644 --- a/java/ql/test/query-tests/security/CWE-502/B.java +++ b/java/ql/test/query-tests/security/CWE-502/B.java @@ -4,30 +4,30 @@ import com.alibaba.fastjson.JSON; public class B { public Object deserializeJson1(Socket sock) throws java.io.IOException { - InputStream inputStream = sock.getInputStream(); - return JSON.parseObject(inputStream, null); // $unsafeDeserialization + InputStream inputStream = sock.getInputStream(); // $ Source + return JSON.parseObject(inputStream, null); // $ Alert } public Object deserializeJson2(Socket sock) throws java.io.IOException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source byte[] bytes = new byte[100]; inputStream.read(bytes); - return JSON.parse(bytes); // $unsafeDeserialization + return JSON.parse(bytes); // $ Alert } public Object deserializeJson3(Socket sock) throws java.io.IOException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source byte[] bytes = new byte[100]; inputStream.read(bytes); String s = new String(bytes); - return JSON.parseObject(s); // $unsafeDeserialization + return JSON.parseObject(s); // $ Alert } public Object deserializeJson4(Socket sock) throws java.io.IOException { - InputStream inputStream = sock.getInputStream(); + InputStream inputStream = sock.getInputStream(); // $ Source byte[] bytes = new byte[100]; inputStream.read(bytes); String s = new String(bytes); - return JSON.parse(s); // $unsafeDeserialization + return JSON.parse(s); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-502/C.java b/java/ql/test/query-tests/security/CWE-502/C.java index e13ae98ead5..e63515b85bd 100644 --- a/java/ql/test/query-tests/security/CWE-502/C.java +++ b/java/ql/test/query-tests/security/CWE-502/C.java @@ -20,75 +20,75 @@ public class C { @GetMapping(value = "jyaml") public void bad1(HttpServletRequest request) throws Exception { - String data = request.getParameter("data"); - Yaml.load(data); // $unsafeDeserialization - Yaml.loadStream(data); // $unsafeDeserialization - Yaml.loadStreamOfType(data, Object.class); // $unsafeDeserialization - Yaml.loadType(data, Object.class); // $unsafeDeserialization + String data = request.getParameter("data"); // $ Source + Yaml.load(data); // $ Alert + Yaml.loadStream(data); // $ Alert + Yaml.loadStreamOfType(data, Object.class); // $ Alert + Yaml.loadType(data, Object.class); // $ Alert org.ho.yaml.YamlConfig yamlConfig = new YamlConfig(); - yamlConfig.load(data); // $unsafeDeserialization - yamlConfig.loadStream(data); // $unsafeDeserialization - yamlConfig.loadStreamOfType(data, Object.class); // $unsafeDeserialization - yamlConfig.loadType(data, Object.class); // $unsafeDeserialization + yamlConfig.load(data); // $ Alert + yamlConfig.loadStream(data); // $ Alert + yamlConfig.loadStreamOfType(data, Object.class); // $ Alert + yamlConfig.loadType(data, Object.class); // $ Alert } @GetMapping(value = "jsonio") public void bad2(HttpServletRequest request) { - String data = request.getParameter("data"); + String data = request.getParameter("data"); // $ Source HashMap hashMap = new HashMap(); hashMap.put("USE_MAPS", true); - JsonReader.jsonToJava(data); // $unsafeDeserialization + JsonReader.jsonToJava(data); // $ Alert JsonReader jr = new JsonReader(data, null); - jr.readObject(); // $unsafeDeserialization + jr.readObject(); // $ Alert } @GetMapping(value = "yamlbeans") public void bad3(HttpServletRequest request) throws Exception { - String data = request.getParameter("data"); + String data = request.getParameter("data"); // $ Source YamlReader r = new YamlReader(data); - r.read(); // $unsafeDeserialization - r.read(Object.class); // $unsafeDeserialization - r.read(Object.class, Object.class); // $unsafeDeserialization + r.read(); // $ Alert + r.read(Object.class); // $ Alert + r.read(Object.class, Object.class); // $ Alert } @GetMapping(value = "hessian") public void bad4(HttpServletRequest request) throws Exception { - byte[] bytes = request.getParameter("data").getBytes(); + byte[] bytes = request.getParameter("data").getBytes(); // $ Source ByteArrayInputStream bis = new ByteArrayInputStream(bytes); HessianInput hessianInput = new HessianInput(bis); - hessianInput.readObject(); // $unsafeDeserialization - hessianInput.readObject(Object.class); // $unsafeDeserialization + hessianInput.readObject(); // $ Alert + hessianInput.readObject(Object.class); // $ Alert } @GetMapping(value = "hessian2") public void bad5(HttpServletRequest request) throws Exception { - byte[] bytes = request.getParameter("data").getBytes(); + byte[] bytes = request.getParameter("data").getBytes(); // $ Source ByteArrayInputStream bis = new ByteArrayInputStream(bytes); Hessian2Input hessianInput = new Hessian2Input(bis); - hessianInput.readObject(); // $unsafeDeserialization - hessianInput.readObject(Object.class); // $unsafeDeserialization + hessianInput.readObject(); // $ Alert + hessianInput.readObject(Object.class); // $ Alert } @GetMapping(value = "castor") public void bad6(HttpServletRequest request) throws Exception { Unmarshaller unmarshaller = new Unmarshaller(); - unmarshaller.unmarshal(new StringReader(request.getParameter("data"))); // $unsafeDeserialization + unmarshaller.unmarshal(new StringReader(request.getParameter("data"))); // $ Alert } @GetMapping(value = "burlap") public void bad7(HttpServletRequest request) throws Exception { - byte[] serializedData = request.getParameter("data").getBytes(); + byte[] serializedData = request.getParameter("data").getBytes(); // $ Source ByteArrayInputStream is = new ByteArrayInputStream(serializedData); BurlapInput burlapInput = new BurlapInput(is); - burlapInput.readObject(); // $unsafeDeserialization + burlapInput.readObject(); // $ Alert BurlapInput burlapInput1 = new BurlapInput(); burlapInput1.init(is); - burlapInput1.readObject(); // $unsafeDeserialization + burlapInput1.readObject(); // $ Alert } @GetMapping(value = "jsonio1") diff --git a/java/ql/test/query-tests/security/CWE-502/FlexjsonServlet.java b/java/ql/test/query-tests/security/CWE-502/FlexjsonServlet.java index c7e5c1ce587..1d47bd2b7fd 100644 --- a/java/ql/test/query-tests/security/CWE-502/FlexjsonServlet.java +++ b/java/ql/test/query-tests/security/CWE-502/FlexjsonServlet.java @@ -33,7 +33,7 @@ public class FlexjsonServlet extends HttpServlet { // BAD: allow class name to be controlled by remote source public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { JSONDeserializer deserializer = new JSONDeserializer<>(); - User user = (User) deserializer.deserialize(req.getReader()); // $unsafeDeserialization + User user = (User) deserializer.deserialize(req.getReader()); // $ Alert } @@ -41,7 +41,7 @@ public class FlexjsonServlet extends HttpServlet { // BAD: allow class name to be controlled by remote source public void doTrace(HttpServletRequest req, HttpServletResponse resp) throws IOException { JSONDeserializer deserializer = new JSONDeserializer<>(); - User user = (User) deserializer.deserialize(req.getReader()); // $unsafeDeserialization + User user = (User) deserializer.deserialize(req.getReader()); // $ Alert } @@ -49,7 +49,7 @@ public class FlexjsonServlet extends HttpServlet { // BAD: specify overly generic class type public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException { JSONDeserializer deserializer = new JSONDeserializer(); - User user = (User) deserializer.deserialize(req.getReader(), Object.class); // $unsafeDeserialization + User user = (User) deserializer.deserialize(req.getReader(), Object.class); // $ Alert } private Person fromJsonToPerson(String json) { @@ -64,8 +64,8 @@ public class FlexjsonServlet extends HttpServlet { // BAD: Specify a concrete class type to `use` with `ObjectFactory` public void doPut3(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); - Person person = new JSONDeserializer().use(Person.class, new ExistingObjectFactory(new Person())).deserialize(json); // $unsafeDeserialization + String json = req.getParameter("json"); // $ Source + Person person = new JSONDeserializer().use(Person.class, new ExistingObjectFactory(new Person())).deserialize(json); // $ Alert } // GOOD: Specify a null path to `use` with a concrete class type @@ -76,8 +76,8 @@ public class FlexjsonServlet extends HttpServlet { // BAD: Specify a non-null json path to `use` with a concrete class type public void doPut5(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); - Person person = new JSONDeserializer().use("abc", Person.class).deserialize(json); // $unsafeDeserialization + String json = req.getParameter("json"); // $ Source + Person person = new JSONDeserializer().use("abc", Person.class).deserialize(json); // $ Alert } // GOOD: Specify a null json path to `use` with `ObjectFactory` @@ -116,11 +116,11 @@ public class FlexjsonServlet extends HttpServlet { // BAD: Specify a non-null json path to `use` with a concrete class type, interwoven with irrelevant use directives, without using fluent method chaining public void doPut11(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source JSONDeserializer deserializer = new JSONDeserializer(); deserializer.use(Person.class, null); deserializer.use("someKey", Person.class); deserializer.use(String.class, null); - Person person = deserializer.deserialize(json); // $unsafeDeserialization + Person person = deserializer.deserialize(json); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-502/GsonActivity.java b/java/ql/test/query-tests/security/CWE-502/GsonActivity.java index a080924c6cd..93e94411834 100644 --- a/java/ql/test/query-tests/security/CWE-502/GsonActivity.java +++ b/java/ql/test/query-tests/security/CWE-502/GsonActivity.java @@ -5,13 +5,13 @@ import android.os.Bundle; import android.os.Parcel; import android.os.Parcelable; -import com.google.gson.Gson; +import com.google.gson.Gson; public class GsonActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(-1); - ParcelableEntity entity = (ParcelableEntity) getIntent().getParcelableExtra("jsonEntity"); + ParcelableEntity entity = (ParcelableEntity) getIntent().getParcelableExtra("jsonEntity"); // $ Source } } diff --git a/java/ql/test/query-tests/security/CWE-502/GsonServlet.java b/java/ql/test/query-tests/security/CWE-502/GsonServlet.java index 47534d2d7a0..0ee62249031 100644 --- a/java/ql/test/query-tests/security/CWE-502/GsonServlet.java +++ b/java/ql/test/query-tests/security/CWE-502/GsonServlet.java @@ -36,12 +36,12 @@ public class GsonServlet extends HttpServlet { @Override // BAD: allow class name to be controlled by remote source public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source String clazz = req.getParameter("class"); try { Gson gson = new Gson(); - Object obj = gson.fromJson(json, Class.forName(clazz)); // $unsafeDeserialization + Object obj = gson.fromJson(json, Class.forName(clazz)); // $ Alert } catch (ClassNotFoundException cne) { throw new IOException(cne.getMessage()); } @@ -50,14 +50,14 @@ public class GsonServlet extends HttpServlet { @Override // BAD: allow class name to be controlled by remote source even with a type adapter factory public void doHead(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source String clazz = req.getParameter("class"); try { RuntimeTypeAdapterFactory runtimeTypeAdapterFactory = RuntimeTypeAdapterFactory .of(User.class, "type"); Gson gson = new GsonBuilder().registerTypeAdapterFactory(runtimeTypeAdapterFactory).create(); - Object obj = gson.fromJson(json, Class.forName(clazz)); // $unsafeDeserialization + Object obj = gson.fromJson(json, Class.forName(clazz)); // $ Alert } catch (ClassNotFoundException cne) { throw new IOException(cne.getMessage()); } @@ -74,4 +74,4 @@ public class GsonServlet extends HttpServlet { Gson gson = new GsonBuilder().registerTypeAdapterFactory(runtimeTypeAdapterFactory).create(); Person obj = gson.fromJson(json, Person.class); } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-502/JabsorbServlet.java b/java/ql/test/query-tests/security/CWE-502/JabsorbServlet.java index 14e8d1819c6..c5a072e65f1 100644 --- a/java/ql/test/query-tests/security/CWE-502/JabsorbServlet.java +++ b/java/ql/test/query-tests/security/CWE-502/JabsorbServlet.java @@ -86,7 +86,7 @@ public class JabsorbServlet extends HttpServlet { @Override // BAD: allow class name to be controlled by remote source public void doPut(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source String clazz = req.getParameter("class"); try { @@ -99,7 +99,7 @@ public class JabsorbServlet extends HttpServlet { serializer.setMarshallNullAttributes(true); SerializerState state = new SerializerState(); - User user = (User) serializer.unmarshall(state, Class.forName(clazz), jsonObject); // $unsafeDeserialization + User user = (User) serializer.unmarshall(state, Class.forName(clazz), jsonObject); // $ Alert } catch (Exception e) { throw new IOException(e.getMessage()); } @@ -107,15 +107,15 @@ public class JabsorbServlet extends HttpServlet { // BAD: allow explicit class type controlled by remote source in the format of "json={\"javaClass\":\"com.thirdparty.Attacker\", ...}" public void doPut2(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source try { JSONSerializer serializer = new JSONSerializer(); serializer.registerDefaultSerializers(); - User user = (User) serializer.fromJSON(json); // $unsafeDeserialization + User user = (User) serializer.fromJSON(json); // $ Alert } catch (Exception e) { throw new IOException(e.getMessage()); } } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-502/JacksonTest.java b/java/ql/test/query-tests/security/CWE-502/JacksonTest.java index 3520e4eaa11..71be753b89a 100644 --- a/java/ql/test/query-tests/security/CWE-502/JacksonTest.java +++ b/java/ql/test/query-tests/security/CWE-502/JacksonTest.java @@ -17,7 +17,7 @@ public class JacksonTest { try (ServerSocket serverSocket = new ServerSocket(0)) { try (Socket socket = serverSocket.accept()) { byte[] bytes = new byte[1024]; - int n = socket.getInputStream().read(bytes); + int n = socket.getInputStream().read(bytes); // $ Source String jexlExpr = new String(bytes, 0, n); action.run(jexlExpr); } @@ -73,7 +73,7 @@ class UnsafePersonDeserialization { private static void testUnsafeDeserialization() throws Exception { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); - mapper.readValue(string, Person.class); // $unsafeDeserialization + mapper.readValue(string, Person.class); // $ Alert }); } @@ -82,7 +82,7 @@ class UnsafePersonDeserialization { private static void testUnsafeDeserializationWithExtendedClass() throws Exception { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); - mapper.readValue(string, Employee.class); // $unsafeDeserialization + mapper.readValue(string, Employee.class); // $ Alert }); } @@ -91,7 +91,7 @@ class UnsafePersonDeserialization { private static void testUnsafeDeserializationWithWrapper() throws Exception { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); - mapper.readValue(string, Task.class); // $unsafeDeserialization + mapper.readValue(string, Task.class); // $ Alert }); } } @@ -102,7 +102,7 @@ class SaferPersonDeserialization { // has a validator private static void testSafeDeserializationWithValidator() throws Exception { JacksonTest.withSocket(string -> { - PolymorphicTypeValidator ptv = + PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder() .allowIfSubType("only.allowed.package") .build(); @@ -118,7 +118,7 @@ class SaferPersonDeserialization { // has a validator private static void testSafeDeserializationWithValidatorAndBuilder() throws Exception { JacksonTest.withSocket(string -> { - PolymorphicTypeValidator ptv = + PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder() .allowIfSubType("only.allowed.package") .build(); @@ -139,7 +139,7 @@ class UnsafeCatDeserialization { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); // this enables polymorphic type handling - mapper.readValue(string, Cat.class); // $unsafeDeserialization + mapper.readValue(string, Cat.class); // $ Alert }); } @@ -148,7 +148,7 @@ class UnsafeCatDeserialization { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); - mapper.readValues(new JsonFactory().createParser(string), Cat.class).readAll(); // $unsafeDeserialization + mapper.readValues(new JsonFactory().createParser(string), Cat.class).readAll(); // $ Alert }); } @@ -157,7 +157,7 @@ class UnsafeCatDeserialization { JacksonTest.withSocket(string -> { ObjectMapper mapper = new ObjectMapper(); mapper.enableDefaultTyping(); - mapper.treeToValue(mapper.readTree(string), Cat.class); // $unsafeDeserialization + mapper.treeToValue(mapper.readTree(string), Cat.class); // $ Alert }); } @@ -169,7 +169,7 @@ class UnsafeCatDeserialization { String type = parts[1]; Class clazz = Class.forName(type); ObjectMapper mapper = new ObjectMapper(); - mapper.readValue(data, clazz); // $unsafeDeserialization + mapper.readValue(data, clazz); // $ Alert }); } @@ -180,7 +180,7 @@ class UnsafeCatDeserialization { String data = parts[0]; String type = parts[1]; ObjectMapper mapper = new ObjectMapper(); - mapper.readValue(data, resolveImpl(type, mapper)); // $unsafeDeserialization + mapper.readValue(data, resolveImpl(type, mapper)); // $ Alert }); } @@ -195,15 +195,15 @@ class SaferCatDeserialization { // has a validator private static void testUnsafeDeserialization() throws Exception { JacksonTest.withSocket(string -> { - PolymorphicTypeValidator ptv = + PolymorphicTypeValidator ptv = BasicPolymorphicTypeValidator.builder() .allowIfSubType("only.allowed.pachage") .build(); - + ObjectMapper mapper = JsonMapper.builder().polymorphicTypeValidator(ptv).build(); mapper.enableDefaultTyping(); // this enables polymorphic type handling mapper.readValue(string, Cat.class); }); } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-502/JoddJsonServlet.java b/java/ql/test/query-tests/security/CWE-502/JoddJsonServlet.java index c10bfbc46b9..caeff0028f2 100644 --- a/java/ql/test/query-tests/security/CWE-502/JoddJsonServlet.java +++ b/java/ql/test/query-tests/security/CWE-502/JoddJsonServlet.java @@ -29,7 +29,7 @@ public class JoddJsonServlet extends HttpServlet { // BAD: dangerously configured parser with no class restriction passed to `parse`, // using a few different possible call sequences. public void doHead(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source String clazz = req.getParameter("class"); int callOrder; try { @@ -42,25 +42,25 @@ public class JoddJsonServlet extends HttpServlet { JsonParser parser = new JsonParser(); if(callOrder == 0) { parser.setClassMetadataName("class"); - User obj = parser.parse(json, null); // $unsafeDeserialization + User obj = parser.parse(json, null); // $ Alert } else if(callOrder == 1) { - parser.setClassMetadataName("class").parse(json, null); // $unsafeDeserialization + parser.setClassMetadataName("class").parse(json, null); // $ Alert } else if(callOrder == 2) { - parser.setClassMetadataName("class").lazy(true).parse(json, null); // $unsafeDeserialization + parser.setClassMetadataName("class").lazy(true).parse(json, null); // $ Alert } else if(callOrder == 3) { - parser.withClassMetadata(true).lazy(true).parse(json, null); // $unsafeDeserialization + parser.withClassMetadata(true).lazy(true).parse(json, null); // $ Alert } } @Override // BAD: allow class name to be controlled by remote source public void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException { - String json = req.getParameter("json"); + String json = req.getParameter("json"); // $ Source String clazz = req.getParameter("class"); try { JsonParser parser = new JsonParser(); - Object obj = parser.parse(json, Class.forName(clazz)); // $unsafeDeserialization + Object obj = parser.parse(json, Class.forName(clazz)); // $ Alert } catch (ClassNotFoundException cne) { throw new IOException(cne.getMessage()); } @@ -99,4 +99,4 @@ public class JoddJsonServlet extends HttpServlet { parser.withClassMetadata(true).setClassMetadataName(null).parse(json, null); } } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-502/ObjectMessageTest.java b/java/ql/test/query-tests/security/CWE-502/ObjectMessageTest.java index 15da41b93c8..2ccf7c282c2 100644 --- a/java/ql/test/query-tests/security/CWE-502/ObjectMessageTest.java +++ b/java/ql/test/query-tests/security/CWE-502/ObjectMessageTest.java @@ -3,7 +3,7 @@ import javax.jms.MessageListener; import javax.jms.ObjectMessage; public class ObjectMessageTest implements MessageListener { - public void onMessage(Message message) { - ((ObjectMessage) message).getObject(); // $ unsafeDeserialization + public void onMessage(Message message) { // $ Source + ((ObjectMessage) message).getObject(); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-502/ParcelableEntity.java b/java/ql/test/query-tests/security/CWE-502/ParcelableEntity.java index a9cbcabd9d3..33b43ce8d6d 100644 --- a/java/ql/test/query-tests/security/CWE-502/ParcelableEntity.java +++ b/java/ql/test/query-tests/security/CWE-502/ParcelableEntity.java @@ -29,7 +29,7 @@ public class ParcelableEntity implements Parcelable { public ParcelableEntity createFromParcel(Parcel parcel) { try { Class clazz = Class.forName(parcel.readString()); - Object obj = GSON.fromJson(parcel.readString(), clazz); // $unsafeDeserialization + Object obj = GSON.fromJson(parcel.readString(), clazz); // $ Alert return new ParcelableEntity(obj); } catch (ClassNotFoundException e) { diff --git a/java/ql/test/query-tests/security/CWE-502/TestMessageBodyReader.java b/java/ql/test/query-tests/security/CWE-502/TestMessageBodyReader.java index 2132041254d..54cc4f5d614 100644 --- a/java/ql/test/query-tests/security/CWE-502/TestMessageBodyReader.java +++ b/java/ql/test/query-tests/security/CWE-502/TestMessageBodyReader.java @@ -17,12 +17,12 @@ public class TestMessageBodyReader implements MessageBodyReader { @Override public Object readFrom(Class type, Type genericType, Annotation[] annotations, MediaType mediaType, - MultivaluedMap httpHeaders, InputStream entityStream) throws IOException { + MultivaluedMap httpHeaders, InputStream entityStream) throws IOException { // $ Source try { - return new ObjectInputStream(entityStream).readObject(); // $unsafeDeserialization + return new ObjectInputStream(entityStream).readObject(); // $ Alert } catch (ClassNotFoundException e) { e.printStackTrace(); } return null; } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected b/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected index e69de29bb2d..b4064231bec 100644 --- a/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected +++ b/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.expected @@ -0,0 +1,411 @@ +#select +| A.java:16:12:16:26 | readObject(...) | A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:16:12:16:13 | in | Unsafe deserialization depends on a $@. | A.java:14:31:14:51 | getInputStream(...) | user-provided value | +| A.java:22:12:22:28 | readUnshared(...) | A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:22:12:22:13 | in | Unsafe deserialization depends on a $@. | A.java:20:31:20:51 | getInputStream(...) | user-provided value | +| A.java:34:12:34:25 | readObject(...) | A.java:32:31:32:51 | getInputStream(...) : InputStream | A.java:34:12:34:12 | d | Unsafe deserialization depends on a $@. | A.java:32:31:32:51 | getInputStream(...) | user-provided value | +| A.java:41:12:41:29 | fromXML(...) | A.java:39:31:39:51 | getInputStream(...) : InputStream | A.java:41:23:41:28 | reader | Unsafe deserialization depends on a $@. | A.java:39:31:39:51 | getInputStream(...) | user-provided value | +| A.java:47:12:47:42 | readObject(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:47:28:47:32 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value | +| A.java:48:12:48:48 | readObjectOrNull(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:48:34:48:38 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value | +| A.java:49:16:49:45 | readClassAndObject(...) | A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:49:40:49:44 | input | Unsafe deserialization depends on a $@. | A.java:46:29:46:49 | getInputStream(...) | user-provided value | +| A.java:68:16:68:31 | load(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:68:26:68:30 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value | +| A.java:69:17:69:35 | loadAll(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:69:30:69:34 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value | +| A.java:70:17:70:56 | parse(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:70:28:70:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value | +| A.java:71:12:71:38 | loadAs(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:71:24:71:28 | input | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value | +| A.java:72:12:72:61 | loadAs(...) | A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:72:24:72:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:67:25:67:45 | getInputStream(...) | user-provided value | +| A.java:78:16:78:31 | load(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:78:26:78:30 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value | +| A.java:79:17:79:35 | loadAll(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:79:30:79:34 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value | +| A.java:80:17:80:56 | parse(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:80:28:80:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value | +| A.java:81:12:81:38 | loadAs(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:81:24:81:28 | input | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value | +| A.java:82:12:82:61 | loadAs(...) | A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:82:24:82:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:77:25:77:45 | getInputStream(...) | user-provided value | +| A.java:98:16:98:31 | load(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:98:26:98:30 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value | +| A.java:99:17:99:35 | loadAll(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:99:30:99:34 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value | +| A.java:100:17:100:56 | parse(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:100:28:100:55 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value | +| A.java:101:12:101:38 | loadAs(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:101:24:101:28 | input | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value | +| A.java:102:12:102:61 | loadAs(...) | A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:102:24:102:51 | new InputStreamReader(...) | Unsafe deserialization depends on a $@. | A.java:97:25:97:45 | getInputStream(...) | user-provided value | +| B.java:8:12:8:46 | parseObject(...) | B.java:7:31:7:51 | getInputStream(...) : InputStream | B.java:8:29:8:39 | inputStream | Unsafe deserialization depends on a $@. | B.java:7:31:7:51 | getInputStream(...) | user-provided value | +| B.java:15:12:15:28 | parse(...) | B.java:12:31:12:51 | getInputStream(...) : InputStream | B.java:15:23:15:27 | bytes | Unsafe deserialization depends on a $@. | B.java:12:31:12:51 | getInputStream(...) | user-provided value | +| B.java:23:12:23:30 | parseObject(...) | B.java:19:31:19:51 | getInputStream(...) : InputStream | B.java:23:29:23:29 | s | Unsafe deserialization depends on a $@. | B.java:19:31:19:51 | getInputStream(...) | user-provided value | +| B.java:31:12:31:24 | parse(...) | B.java:27:31:27:51 | getInputStream(...) : InputStream | B.java:31:23:31:23 | s | Unsafe deserialization depends on a $@. | B.java:27:31:27:51 | getInputStream(...) | user-provided value | +| C.java:24:3:24:17 | load(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:24:13:24:16 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:25:3:25:23 | loadStream(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:25:19:25:22 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:26:3:26:43 | loadStreamOfType(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:26:25:26:28 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:27:3:27:35 | loadType(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:27:17:27:20 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:30:3:30:23 | load(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:30:19:30:22 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:31:3:31:29 | loadStream(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:31:25:31:28 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:32:3:32:49 | loadStreamOfType(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:32:31:32:34 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:33:3:33:41 | loadType(...) | C.java:23:17:23:44 | getParameter(...) : String | C.java:33:23:33:26 | data | Unsafe deserialization depends on a $@. | C.java:23:17:23:44 | getParameter(...) | user-provided value | +| C.java:43:3:43:29 | jsonToJava(...) | C.java:38:17:38:44 | getParameter(...) : String | C.java:43:25:43:28 | data | Unsafe deserialization depends on a $@. | C.java:38:17:38:44 | getParameter(...) | user-provided value | +| C.java:46:3:46:17 | readObject(...) | C.java:38:17:38:44 | getParameter(...) : String | C.java:46:3:46:4 | jr | Unsafe deserialization depends on a $@. | C.java:38:17:38:44 | getParameter(...) | user-provided value | +| C.java:53:3:53:10 | read(...) | C.java:51:17:51:44 | getParameter(...) : String | C.java:53:3:53:3 | r | Unsafe deserialization depends on a $@. | C.java:51:17:51:44 | getParameter(...) | user-provided value | +| C.java:54:3:54:22 | read(...) | C.java:51:17:51:44 | getParameter(...) : String | C.java:54:3:54:3 | r | Unsafe deserialization depends on a $@. | C.java:51:17:51:44 | getParameter(...) | user-provided value | +| C.java:55:3:55:36 | read(...) | C.java:51:17:51:44 | getParameter(...) : String | C.java:55:3:55:3 | r | Unsafe deserialization depends on a $@. | C.java:51:17:51:44 | getParameter(...) | user-provided value | +| C.java:63:3:63:27 | readObject(...) | C.java:60:18:60:45 | getParameter(...) : String | C.java:63:3:63:14 | hessianInput | Unsafe deserialization depends on a $@. | C.java:60:18:60:45 | getParameter(...) | user-provided value | +| C.java:64:3:64:39 | readObject(...) | C.java:60:18:60:45 | getParameter(...) : String | C.java:64:3:64:14 | hessianInput | Unsafe deserialization depends on a $@. | C.java:60:18:60:45 | getParameter(...) | user-provided value | +| C.java:72:3:72:27 | readObject(...) | C.java:69:18:69:45 | getParameter(...) : String | C.java:72:3:72:14 | hessianInput | Unsafe deserialization depends on a $@. | C.java:69:18:69:45 | getParameter(...) | user-provided value | +| C.java:73:3:73:39 | readObject(...) | C.java:69:18:69:45 | getParameter(...) : String | C.java:73:3:73:14 | hessianInput | Unsafe deserialization depends on a $@. | C.java:69:18:69:45 | getParameter(...) | user-provided value | +| C.java:79:3:79:72 | unmarshal(...) | C.java:79:43:79:70 | getParameter(...) : String | C.java:79:26:79:71 | new StringReader(...) | Unsafe deserialization depends on a $@. | C.java:79:43:79:70 | getParameter(...) | user-provided value | +| C.java:87:3:87:26 | readObject(...) | C.java:84:27:84:54 | getParameter(...) : String | C.java:87:3:87:13 | burlapInput | Unsafe deserialization depends on a $@. | C.java:84:27:84:54 | getParameter(...) | user-provided value | +| C.java:91:3:91:27 | readObject(...) | C.java:84:27:84:54 | getParameter(...) : String | C.java:91:3:91:14 | burlapInput1 | Unsafe deserialization depends on a $@. | C.java:84:27:84:54 | getParameter(...) | user-provided value | +| FlexjsonServlet.java:36:28:36:68 | deserialize(...) | FlexjsonServlet.java:36:53:36:67 | getReader(...) | FlexjsonServlet.java:36:53:36:67 | getReader(...) | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:36:53:36:67 | getReader(...) | user-provided value | +| FlexjsonServlet.java:44:28:44:68 | deserialize(...) | FlexjsonServlet.java:44:53:44:67 | getReader(...) | FlexjsonServlet.java:44:53:44:67 | getReader(...) | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:44:53:44:67 | getReader(...) | user-provided value | +| FlexjsonServlet.java:52:28:52:82 | deserialize(...) | FlexjsonServlet.java:52:53:52:67 | getReader(...) | FlexjsonServlet.java:52:53:52:67 | getReader(...) | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:52:53:52:67 | getReader(...) | user-provided value | +| FlexjsonServlet.java:68:25:68:131 | deserialize(...) | FlexjsonServlet.java:67:23:67:46 | getParameter(...) : String | FlexjsonServlet.java:68:127:68:130 | json | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:67:23:67:46 | getParameter(...) | user-provided value | +| FlexjsonServlet.java:80:25:80:97 | deserialize(...) | FlexjsonServlet.java:79:23:79:46 | getParameter(...) : String | FlexjsonServlet.java:80:93:80:96 | json | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:79:23:79:46 | getParameter(...) | user-provided value | +| FlexjsonServlet.java:124:25:124:54 | deserialize(...) | FlexjsonServlet.java:119:23:119:46 | getParameter(...) : String | FlexjsonServlet.java:124:50:124:53 | json | Unsafe deserialization depends on a $@. | FlexjsonServlet.java:119:23:119:46 | getParameter(...) | user-provided value | +| GsonServlet.java:44:26:44:66 | fromJson(...) | GsonServlet.java:39:23:39:46 | getParameter(...) : String | GsonServlet.java:44:40:44:43 | json | Unsafe deserialization depends on a $@. | GsonServlet.java:39:23:39:46 | getParameter(...) | user-provided value | +| GsonServlet.java:60:26:60:66 | fromJson(...) | GsonServlet.java:53:23:53:46 | getParameter(...) : String | GsonServlet.java:60:40:60:43 | json | Unsafe deserialization depends on a $@. | GsonServlet.java:53:23:53:46 | getParameter(...) | user-provided value | +| JabsorbServlet.java:102:32:102:93 | unmarshall(...) | JabsorbServlet.java:89:23:89:46 | getParameter(...) : String | JabsorbServlet.java:102:83:102:92 | jsonObject | Unsafe deserialization depends on a $@. | JabsorbServlet.java:89:23:89:46 | getParameter(...) | user-provided value | +| JabsorbServlet.java:116:32:116:56 | fromJSON(...) | JabsorbServlet.java:110:23:110:46 | getParameter(...) : String | JabsorbServlet.java:116:52:116:55 | json | Unsafe deserialization depends on a $@. | JabsorbServlet.java:110:23:110:46 | getParameter(...) | user-provided value | +| JacksonTest.java:76:13:76:50 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:76:30:76:35 | string | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:85:13:85:52 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:85:30:85:35 | string | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:94:13:94:48 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:94:30:94:35 | string | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:142:13:142:47 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:142:30:142:35 | string | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:151:13:151:80 | readValues(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:151:31:151:68 | createParser(...) | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:160:13:160:66 | treeToValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:160:32:160:54 | readTree(...) | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:172:13:172:41 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:172:30:172:33 | data | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JacksonTest.java:183:13:183:61 | readValue(...) | JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:183:30:183:33 | data | Unsafe deserialization depends on a $@. | JacksonTest.java:20:25:20:47 | getInputStream(...) | user-provided value | +| JoddJsonServlet.java:45:24:45:47 | parse(...) | JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:45:37:45:40 | json | Unsafe deserialization depends on a $@. | JoddJsonServlet.java:32:23:32:46 | getParameter(...) | user-provided value | +| JoddJsonServlet.java:47:13:47:66 | parse(...) | JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:47:56:47:59 | json | Unsafe deserialization depends on a $@. | JoddJsonServlet.java:32:23:32:46 | getParameter(...) | user-provided value | +| JoddJsonServlet.java:49:13:49:77 | parse(...) | JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:49:67:49:70 | json | Unsafe deserialization depends on a $@. | JoddJsonServlet.java:32:23:32:46 | getParameter(...) | user-provided value | +| JoddJsonServlet.java:51:13:51:71 | parse(...) | JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:51:61:51:64 | json | Unsafe deserialization depends on a $@. | JoddJsonServlet.java:32:23:32:46 | getParameter(...) | user-provided value | +| JoddJsonServlet.java:63:26:63:65 | parse(...) | JoddJsonServlet.java:58:23:58:46 | getParameter(...) : String | JoddJsonServlet.java:63:39:63:42 | json | Unsafe deserialization depends on a $@. | JoddJsonServlet.java:58:23:58:46 | getParameter(...) | user-provided value | +| ObjectMessageTest.java:7:9:7:45 | getObject(...) | ObjectMessageTest.java:6:27:6:41 | message : Message | ObjectMessageTest.java:7:26:7:32 | message | Unsafe deserialization depends on a $@. | ObjectMessageTest.java:6:27:6:41 | message | user-provided value | +| ParcelableEntity.java:32:30:32:70 | fromJson(...) | GsonActivity.java:15:54:15:64 | getIntent(...) : Intent | ParcelableEntity.java:32:44:32:62 | readString(...) | Unsafe deserialization depends on a $@. | GsonActivity.java:15:54:15:64 | getIntent(...) | user-provided value | +| TestMessageBodyReader.java:22:18:22:65 | readObject(...) | TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | Unsafe deserialization depends on a $@. | TestMessageBodyReader.java:20:55:20:78 | entityStream | user-provided value | +edges +| A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:15:50:15:60 | inputStream : InputStream | provenance | Src:MaD:1 | +| A.java:14:31:14:51 | getInputStream(...) : InputStream | A.java:16:12:16:13 | in | provenance | Src:MaD:1 inputStreamWrapper | +| A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:16:12:16:13 | in | provenance | | +| A.java:15:50:15:60 | inputStream : InputStream | A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:11 | +| A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:21:50:21:60 | inputStream : InputStream | provenance | Src:MaD:1 | +| A.java:20:31:20:51 | getInputStream(...) : InputStream | A.java:22:12:22:13 | in | provenance | Src:MaD:1 inputStreamWrapper | +| A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | A.java:22:12:22:13 | in | provenance | | +| A.java:21:50:21:60 | inputStream : InputStream | A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | provenance | MaD:11 | +| A.java:32:31:32:51 | getInputStream(...) : InputStream | A.java:33:35:33:45 | inputStream : InputStream | provenance | Src:MaD:1 | +| A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | A.java:34:12:34:12 | d | provenance | | +| A.java:33:35:33:45 | inputStream : InputStream | A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:7 | +| A.java:39:31:39:51 | getInputStream(...) : InputStream | A.java:40:43:40:53 | inputStream : InputStream | provenance | Src:MaD:1 | +| A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | A.java:41:23:41:28 | reader | provenance | | +| A.java:40:43:40:53 | inputStream : InputStream | A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:10 | +| A.java:46:19:46:50 | new Input(...) : Input | A.java:47:28:47:32 | input | provenance | | +| A.java:46:19:46:50 | new Input(...) : Input | A.java:48:34:48:38 | input | provenance | | +| A.java:46:19:46:50 | new Input(...) : Input | A.java:49:40:49:44 | input | provenance | | +| A.java:46:29:46:49 | getInputStream(...) : InputStream | A.java:46:19:46:50 | new Input(...) : Input | provenance | Src:MaD:1 MaD:5 | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:68:26:68:30 | input | provenance | Src:MaD:1 | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:69:30:69:34 | input | provenance | Src:MaD:1 | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:70:50:70:54 | input : InputStream | provenance | Src:MaD:1 | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:71:24:71:28 | input | provenance | Src:MaD:1 | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | A.java:72:46:72:50 | input : InputStream | provenance | Src:MaD:1 | +| A.java:70:50:70:54 | input : InputStream | A.java:70:28:70:55 | new InputStreamReader(...) | provenance | MaD:10 | +| A.java:72:46:72:50 | input : InputStream | A.java:72:24:72:51 | new InputStreamReader(...) | provenance | MaD:10 | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:78:26:78:30 | input | provenance | Src:MaD:1 | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:79:30:79:34 | input | provenance | Src:MaD:1 | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:80:50:80:54 | input : InputStream | provenance | Src:MaD:1 | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:81:24:81:28 | input | provenance | Src:MaD:1 | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | A.java:82:46:82:50 | input : InputStream | provenance | Src:MaD:1 | +| A.java:80:50:80:54 | input : InputStream | A.java:80:28:80:55 | new InputStreamReader(...) | provenance | MaD:10 | +| A.java:82:46:82:50 | input : InputStream | A.java:82:24:82:51 | new InputStreamReader(...) | provenance | MaD:10 | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:98:26:98:30 | input | provenance | Src:MaD:1 | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:99:30:99:34 | input | provenance | Src:MaD:1 | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:100:50:100:54 | input : InputStream | provenance | Src:MaD:1 | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:101:24:101:28 | input | provenance | Src:MaD:1 | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | A.java:102:46:102:50 | input : InputStream | provenance | Src:MaD:1 | +| A.java:100:50:100:54 | input : InputStream | A.java:100:28:100:55 | new InputStreamReader(...) | provenance | MaD:10 | +| A.java:102:46:102:50 | input : InputStream | A.java:102:24:102:51 | new InputStreamReader(...) | provenance | MaD:10 | +| B.java:7:31:7:51 | getInputStream(...) : InputStream | B.java:8:29:8:39 | inputStream | provenance | Src:MaD:1 | +| B.java:12:31:12:51 | getInputStream(...) : InputStream | B.java:14:5:14:15 | inputStream : InputStream | provenance | Src:MaD:1 | +| B.java:14:5:14:15 | inputStream : InputStream | B.java:14:22:14:26 | bytes [post update] : byte[] | provenance | MaD:9 | +| B.java:14:22:14:26 | bytes [post update] : byte[] | B.java:15:23:15:27 | bytes | provenance | | +| B.java:19:31:19:51 | getInputStream(...) : InputStream | B.java:21:5:21:15 | inputStream : InputStream | provenance | Src:MaD:1 | +| B.java:21:5:21:15 | inputStream : InputStream | B.java:21:22:21:26 | bytes [post update] : byte[] | provenance | MaD:9 | +| B.java:21:22:21:26 | bytes [post update] : byte[] | B.java:22:27:22:31 | bytes : byte[] | provenance | | +| B.java:22:16:22:32 | new String(...) : String | B.java:23:29:23:29 | s | provenance | | +| B.java:22:27:22:31 | bytes : byte[] | B.java:22:16:22:32 | new String(...) : String | provenance | MaD:13 | +| B.java:27:31:27:51 | getInputStream(...) : InputStream | B.java:29:5:29:15 | inputStream : InputStream | provenance | Src:MaD:1 | +| B.java:29:5:29:15 | inputStream : InputStream | B.java:29:22:29:26 | bytes [post update] : byte[] | provenance | MaD:9 | +| B.java:29:22:29:26 | bytes [post update] : byte[] | B.java:30:27:30:31 | bytes : byte[] | provenance | | +| B.java:30:16:30:32 | new String(...) : String | B.java:31:23:31:23 | s | provenance | | +| B.java:30:27:30:31 | bytes : byte[] | B.java:30:16:30:32 | new String(...) : String | provenance | MaD:13 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:24:13:24:16 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:25:19:25:22 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:26:25:26:28 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:27:17:27:20 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:30:19:30:22 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:31:25:31:28 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:32:31:32:34 | data | provenance | Src:MaD:3 | +| C.java:23:17:23:44 | getParameter(...) : String | C.java:33:23:33:26 | data | provenance | Src:MaD:3 | +| C.java:38:17:38:44 | getParameter(...) : String | C.java:43:25:43:28 | data | provenance | Src:MaD:3 | +| C.java:38:17:38:44 | getParameter(...) : String | C.java:45:34:45:37 | data : String | provenance | Src:MaD:3 | +| C.java:45:19:45:44 | new JsonReader(...) : JsonReader | C.java:46:3:46:4 | jr | provenance | | +| C.java:45:34:45:37 | data : String | C.java:45:19:45:44 | new JsonReader(...) : JsonReader | provenance | Config | +| C.java:51:17:51:44 | getParameter(...) : String | C.java:52:33:52:36 | data : String | provenance | Src:MaD:3 | +| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:53:3:53:3 | r | provenance | | +| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:54:3:54:3 | r | provenance | | +| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | C.java:55:3:55:3 | r | provenance | | +| C.java:52:33:52:36 | data : String | C.java:52:18:52:37 | new YamlReader(...) : YamlReader | provenance | Config | +| C.java:60:18:60:45 | getParameter(...) : String | C.java:60:18:60:56 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 | +| C.java:60:18:60:56 | getBytes(...) : byte[] | C.java:61:55:61:59 | bytes : byte[] | provenance | | +| C.java:60:18:60:56 | getBytes(...) : byte[] | C.java:62:48:62:50 | bis : ByteArrayInputStream | provenance | inputStreamWrapper | +| C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:62:48:62:50 | bis : ByteArrayInputStream | provenance | | +| C.java:61:55:61:59 | bytes : byte[] | C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 | +| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:63:3:63:14 | hessianInput | provenance | | +| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | C.java:64:3:64:14 | hessianInput | provenance | | +| C.java:62:48:62:50 | bis : ByteArrayInputStream | C.java:62:31:62:51 | new HessianInput(...) : HessianInput | provenance | Config | +| C.java:69:18:69:45 | getParameter(...) : String | C.java:69:18:69:56 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 | +| C.java:69:18:69:56 | getBytes(...) : byte[] | C.java:70:55:70:59 | bytes : byte[] | provenance | | +| C.java:69:18:69:56 | getBytes(...) : byte[] | C.java:71:50:71:52 | bis : ByteArrayInputStream | provenance | inputStreamWrapper | +| C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:71:50:71:52 | bis : ByteArrayInputStream | provenance | | +| C.java:70:55:70:59 | bytes : byte[] | C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 | +| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:72:3:72:14 | hessianInput | provenance | | +| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | C.java:73:3:73:14 | hessianInput | provenance | | +| C.java:71:50:71:52 | bis : ByteArrayInputStream | C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | provenance | Config | +| C.java:79:43:79:70 | getParameter(...) : String | C.java:79:26:79:71 | new StringReader(...) | provenance | Src:MaD:3 MaD:12 | +| C.java:84:27:84:54 | getParameter(...) : String | C.java:84:27:84:65 | getBytes(...) : byte[] | provenance | Src:MaD:3 MaD:14 | +| C.java:84:27:84:65 | getBytes(...) : byte[] | C.java:85:54:85:67 | serializedData : byte[] | provenance | | +| C.java:84:27:84:65 | getBytes(...) : byte[] | C.java:86:45:86:46 | is : ByteArrayInputStream | provenance | inputStreamWrapper | +| C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | C.java:86:45:86:46 | is : ByteArrayInputStream | provenance | | +| C.java:85:54:85:67 | serializedData : byte[] | C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | provenance | MaD:8 | +| C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | C.java:87:3:87:13 | burlapInput | provenance | | +| C.java:86:45:86:46 | is : ByteArrayInputStream | C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | provenance | Config | +| C.java:86:45:86:46 | is : ByteArrayInputStream | C.java:90:21:90:22 | is : ByteArrayInputStream | provenance | | +| C.java:90:3:90:14 | burlapInput1 : BurlapInput | C.java:91:3:91:14 | burlapInput1 | provenance | | +| C.java:90:21:90:22 | is : ByteArrayInputStream | C.java:90:3:90:14 | burlapInput1 : BurlapInput | provenance | Config | +| FlexjsonServlet.java:67:23:67:46 | getParameter(...) : String | FlexjsonServlet.java:68:127:68:130 | json | provenance | Src:MaD:3 | +| FlexjsonServlet.java:79:23:79:46 | getParameter(...) : String | FlexjsonServlet.java:80:93:80:96 | json | provenance | Src:MaD:3 | +| FlexjsonServlet.java:119:23:119:46 | getParameter(...) : String | FlexjsonServlet.java:124:50:124:53 | json | provenance | Src:MaD:3 | +| GsonActivity.java:15:54:15:64 | getIntent(...) : Intent | ParcelableEntity.java:29:50:29:62 | parcel : Parcel | provenance | Config | +| GsonServlet.java:39:23:39:46 | getParameter(...) : String | GsonServlet.java:44:40:44:43 | json | provenance | Src:MaD:3 | +| GsonServlet.java:53:23:53:46 | getParameter(...) : String | GsonServlet.java:60:40:60:43 | json | provenance | Src:MaD:3 | +| JabsorbServlet.java:89:23:89:46 | getParameter(...) : String | JabsorbServlet.java:93:48:93:51 | json : String | provenance | Src:MaD:3 | +| JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | JabsorbServlet.java:102:83:102:92 | jsonObject | provenance | | +| JabsorbServlet.java:93:48:93:51 | json : String | JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | provenance | MaD:16 | +| JabsorbServlet.java:110:23:110:46 | getParameter(...) : String | JabsorbServlet.java:116:52:116:55 | json | provenance | Src:MaD:3 | +| JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | provenance | Src:MaD:1 MaD:9 | +| JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | JacksonTest.java:21:46:21:50 | bytes : byte[] | provenance | | +| JacksonTest.java:21:35:21:57 | new String(...) : String | JacksonTest.java:22:28:22:35 | jexlExpr : String | provenance | | +| JacksonTest.java:21:46:21:50 | bytes : byte[] | JacksonTest.java:21:35:21:57 | new String(...) : String | provenance | MaD:13 | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:74:32:74:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:83:32:83:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:92:32:92:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:139:32:139:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:148:32:148:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:157:32:157:37 | string : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:166:32:166:36 | input : String | provenance | | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | JacksonTest.java:178:32:178:36 | input : String | provenance | | +| JacksonTest.java:74:32:74:37 | string : String | JacksonTest.java:76:30:76:35 | string | provenance | | +| JacksonTest.java:83:32:83:37 | string : String | JacksonTest.java:85:30:85:35 | string | provenance | | +| JacksonTest.java:92:32:92:37 | string : String | JacksonTest.java:94:30:94:35 | string | provenance | | +| JacksonTest.java:139:32:139:37 | string : String | JacksonTest.java:142:30:142:35 | string | provenance | | +| JacksonTest.java:148:32:148:37 | string : String | JacksonTest.java:151:62:151:67 | string : String | provenance | | +| JacksonTest.java:151:62:151:67 | string : String | JacksonTest.java:151:31:151:68 | createParser(...) | provenance | Config | +| JacksonTest.java:151:62:151:67 | string : String | JacksonTest.java:151:31:151:68 | createParser(...) | provenance | MaD:6 | +| JacksonTest.java:157:32:157:37 | string : String | JacksonTest.java:160:48:160:53 | string : String | provenance | | +| JacksonTest.java:160:48:160:53 | string : String | JacksonTest.java:160:32:160:54 | readTree(...) | provenance | Config | +| JacksonTest.java:166:32:166:36 | input : String | JacksonTest.java:167:30:167:34 | input : String | provenance | | +| JacksonTest.java:167:30:167:34 | input : String | JacksonTest.java:167:30:167:45 | split(...) : String[] | provenance | MaD:15 | +| JacksonTest.java:167:30:167:45 | split(...) : String[] | JacksonTest.java:172:30:172:33 | data | provenance | | +| JacksonTest.java:178:32:178:36 | input : String | JacksonTest.java:179:30:179:34 | input : String | provenance | | +| JacksonTest.java:179:30:179:34 | input : String | JacksonTest.java:179:30:179:45 | split(...) : String[] | provenance | MaD:15 | +| JacksonTest.java:179:30:179:45 | split(...) : String[] | JacksonTest.java:183:30:183:33 | data | provenance | | +| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:45:37:45:40 | json | provenance | Src:MaD:3 | +| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:47:56:47:59 | json | provenance | Src:MaD:3 | +| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:49:67:49:70 | json | provenance | Src:MaD:3 | +| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | JoddJsonServlet.java:51:61:51:64 | json | provenance | Src:MaD:3 | +| JoddJsonServlet.java:58:23:58:46 | getParameter(...) : String | JoddJsonServlet.java:63:39:63:42 | json | provenance | Src:MaD:3 | +| ObjectMessageTest.java:6:27:6:41 | message : Message | ObjectMessageTest.java:7:26:7:32 | message | provenance | Src:MaD:2 | +| ParcelableEntity.java:29:50:29:62 | parcel : Parcel | ParcelableEntity.java:32:44:32:49 | parcel : Parcel | provenance | | +| ParcelableEntity.java:32:44:32:49 | parcel : Parcel | ParcelableEntity.java:32:44:32:62 | readString(...) | provenance | MaD:4 | +| TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | provenance | inputStreamWrapper | +| TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | provenance | | +| TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | provenance | MaD:11 | +models +| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 2 | Source: javax.jms; MessageListener; true; onMessage; (Message); ; Parameter[0]; remote; manual | +| 3 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 4 | Summary: android.os; Parcel; false; readString; ; ; Argument[this]; ReturnValue; taint; manual | +| 5 | Summary: com.esotericsoftware.kryo.io; Input; false; Input; ; ; Argument[0]; Argument[this]; taint; manual | +| 6 | Summary: com.fasterxml.jackson.core; JsonFactory; false; createParser; ; ; Argument[0]; ReturnValue; taint; manual | +| 7 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual | +| 8 | Summary: java.io; ByteArrayInputStream; false; ByteArrayInputStream; ; ; Argument[0]; Argument[this]; taint; manual | +| 9 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual | +| 10 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 11 | Summary: java.io; ObjectInputStream; false; ObjectInputStream; ; ; Argument[0]; Argument[this]; taint; manual | +| 12 | Summary: java.io; StringReader; false; StringReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 13 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +| 14 | Summary: java.lang; String; false; getBytes; ; ; Argument[this]; ReturnValue; taint; manual | +| 15 | Summary: java.lang; String; false; split; ; ; Argument[this]; ReturnValue; taint; manual | +| 16 | Summary: org.json; JSONObject; false; JSONObject; (String); ; Argument[0]; Argument[this]; taint; manual | +nodes +| A.java:14:31:14:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:15:28:15:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream | +| A.java:15:50:15:60 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| A.java:16:12:16:13 | in | semmle.label | in | +| A.java:20:31:20:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:21:28:21:61 | new ObjectInputStream(...) : ObjectInputStream | semmle.label | new ObjectInputStream(...) : ObjectInputStream | +| A.java:21:50:21:60 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| A.java:22:12:22:13 | in | semmle.label | in | +| A.java:32:31:32:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:33:20:33:46 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder | +| A.java:33:35:33:45 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| A.java:34:12:34:12 | d | semmle.label | d | +| A.java:39:31:39:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:40:21:40:54 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| A.java:40:43:40:53 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| A.java:41:23:41:28 | reader | semmle.label | reader | +| A.java:46:19:46:50 | new Input(...) : Input | semmle.label | new Input(...) : Input | +| A.java:46:29:46:49 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:47:28:47:32 | input | semmle.label | input | +| A.java:48:34:48:38 | input | semmle.label | input | +| A.java:49:40:49:44 | input | semmle.label | input | +| A.java:67:25:67:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:68:26:68:30 | input | semmle.label | input | +| A.java:69:30:69:34 | input | semmle.label | input | +| A.java:70:28:70:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:70:50:70:54 | input : InputStream | semmle.label | input : InputStream | +| A.java:71:24:71:28 | input | semmle.label | input | +| A.java:72:24:72:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:72:46:72:50 | input : InputStream | semmle.label | input : InputStream | +| A.java:77:25:77:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:78:26:78:30 | input | semmle.label | input | +| A.java:79:30:79:34 | input | semmle.label | input | +| A.java:80:28:80:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:80:50:80:54 | input : InputStream | semmle.label | input : InputStream | +| A.java:81:24:81:28 | input | semmle.label | input | +| A.java:82:24:82:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:82:46:82:50 | input : InputStream | semmle.label | input : InputStream | +| A.java:97:25:97:45 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| A.java:98:26:98:30 | input | semmle.label | input | +| A.java:99:30:99:34 | input | semmle.label | input | +| A.java:100:28:100:55 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:100:50:100:54 | input : InputStream | semmle.label | input : InputStream | +| A.java:101:24:101:28 | input | semmle.label | input | +| A.java:102:24:102:51 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| A.java:102:46:102:50 | input : InputStream | semmle.label | input : InputStream | +| B.java:7:31:7:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| B.java:8:29:8:39 | inputStream | semmle.label | inputStream | +| B.java:12:31:12:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| B.java:14:5:14:15 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| B.java:14:22:14:26 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| B.java:15:23:15:27 | bytes | semmle.label | bytes | +| B.java:19:31:19:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| B.java:21:5:21:15 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| B.java:21:22:21:26 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| B.java:22:16:22:32 | new String(...) : String | semmle.label | new String(...) : String | +| B.java:22:27:22:31 | bytes : byte[] | semmle.label | bytes : byte[] | +| B.java:23:29:23:29 | s | semmle.label | s | +| B.java:27:31:27:51 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| B.java:29:5:29:15 | inputStream : InputStream | semmle.label | inputStream : InputStream | +| B.java:29:22:29:26 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| B.java:30:16:30:32 | new String(...) : String | semmle.label | new String(...) : String | +| B.java:30:27:30:31 | bytes : byte[] | semmle.label | bytes : byte[] | +| B.java:31:23:31:23 | s | semmle.label | s | +| C.java:23:17:23:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:24:13:24:16 | data | semmle.label | data | +| C.java:25:19:25:22 | data | semmle.label | data | +| C.java:26:25:26:28 | data | semmle.label | data | +| C.java:27:17:27:20 | data | semmle.label | data | +| C.java:30:19:30:22 | data | semmle.label | data | +| C.java:31:25:31:28 | data | semmle.label | data | +| C.java:32:31:32:34 | data | semmle.label | data | +| C.java:33:23:33:26 | data | semmle.label | data | +| C.java:38:17:38:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:43:25:43:28 | data | semmle.label | data | +| C.java:45:19:45:44 | new JsonReader(...) : JsonReader | semmle.label | new JsonReader(...) : JsonReader | +| C.java:45:34:45:37 | data : String | semmle.label | data : String | +| C.java:46:3:46:4 | jr | semmle.label | jr | +| C.java:51:17:51:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:52:18:52:37 | new YamlReader(...) : YamlReader | semmle.label | new YamlReader(...) : YamlReader | +| C.java:52:33:52:36 | data : String | semmle.label | data : String | +| C.java:53:3:53:3 | r | semmle.label | r | +| C.java:54:3:54:3 | r | semmle.label | r | +| C.java:55:3:55:3 | r | semmle.label | r | +| C.java:60:18:60:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:60:18:60:56 | getBytes(...) : byte[] | semmle.label | getBytes(...) : byte[] | +| C.java:61:30:61:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | semmle.label | new ByteArrayInputStream(...) : ByteArrayInputStream | +| C.java:61:55:61:59 | bytes : byte[] | semmle.label | bytes : byte[] | +| C.java:62:31:62:51 | new HessianInput(...) : HessianInput | semmle.label | new HessianInput(...) : HessianInput | +| C.java:62:48:62:50 | bis : ByteArrayInputStream | semmle.label | bis : ByteArrayInputStream | +| C.java:63:3:63:14 | hessianInput | semmle.label | hessianInput | +| C.java:64:3:64:14 | hessianInput | semmle.label | hessianInput | +| C.java:69:18:69:45 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:69:18:69:56 | getBytes(...) : byte[] | semmle.label | getBytes(...) : byte[] | +| C.java:70:30:70:60 | new ByteArrayInputStream(...) : ByteArrayInputStream | semmle.label | new ByteArrayInputStream(...) : ByteArrayInputStream | +| C.java:70:55:70:59 | bytes : byte[] | semmle.label | bytes : byte[] | +| C.java:71:32:71:53 | new Hessian2Input(...) : Hessian2Input | semmle.label | new Hessian2Input(...) : Hessian2Input | +| C.java:71:50:71:52 | bis : ByteArrayInputStream | semmle.label | bis : ByteArrayInputStream | +| C.java:72:3:72:14 | hessianInput | semmle.label | hessianInput | +| C.java:73:3:73:14 | hessianInput | semmle.label | hessianInput | +| C.java:79:26:79:71 | new StringReader(...) | semmle.label | new StringReader(...) | +| C.java:79:43:79:70 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:84:27:84:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| C.java:84:27:84:65 | getBytes(...) : byte[] | semmle.label | getBytes(...) : byte[] | +| C.java:85:29:85:68 | new ByteArrayInputStream(...) : ByteArrayInputStream | semmle.label | new ByteArrayInputStream(...) : ByteArrayInputStream | +| C.java:85:54:85:67 | serializedData : byte[] | semmle.label | serializedData : byte[] | +| C.java:86:29:86:47 | new BurlapInput(...) : BurlapInput | semmle.label | new BurlapInput(...) : BurlapInput | +| C.java:86:45:86:46 | is : ByteArrayInputStream | semmle.label | is : ByteArrayInputStream | +| C.java:87:3:87:13 | burlapInput | semmle.label | burlapInput | +| C.java:90:3:90:14 | burlapInput1 : BurlapInput | semmle.label | burlapInput1 : BurlapInput | +| C.java:90:21:90:22 | is : ByteArrayInputStream | semmle.label | is : ByteArrayInputStream | +| C.java:91:3:91:14 | burlapInput1 | semmle.label | burlapInput1 | +| FlexjsonServlet.java:36:53:36:67 | getReader(...) | semmle.label | getReader(...) | +| FlexjsonServlet.java:44:53:44:67 | getReader(...) | semmle.label | getReader(...) | +| FlexjsonServlet.java:52:53:52:67 | getReader(...) | semmle.label | getReader(...) | +| FlexjsonServlet.java:67:23:67:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FlexjsonServlet.java:68:127:68:130 | json | semmle.label | json | +| FlexjsonServlet.java:79:23:79:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FlexjsonServlet.java:80:93:80:96 | json | semmle.label | json | +| FlexjsonServlet.java:119:23:119:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| FlexjsonServlet.java:124:50:124:53 | json | semmle.label | json | +| GsonActivity.java:15:54:15:64 | getIntent(...) : Intent | semmle.label | getIntent(...) : Intent | +| GsonServlet.java:39:23:39:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GsonServlet.java:44:40:44:43 | json | semmle.label | json | +| GsonServlet.java:53:23:53:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| GsonServlet.java:60:40:60:43 | json | semmle.label | json | +| JabsorbServlet.java:89:23:89:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JabsorbServlet.java:93:33:93:52 | new JSONObject(...) : JSONObject | semmle.label | new JSONObject(...) : JSONObject | +| JabsorbServlet.java:93:48:93:51 | json : String | semmle.label | json : String | +| JabsorbServlet.java:102:83:102:92 | jsonObject | semmle.label | jsonObject | +| JabsorbServlet.java:110:23:110:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JabsorbServlet.java:116:52:116:55 | json | semmle.label | json | +| JacksonTest.java:20:25:20:47 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| JacksonTest.java:20:54:20:58 | bytes [post update] : byte[] | semmle.label | bytes [post update] : byte[] | +| JacksonTest.java:21:35:21:57 | new String(...) : String | semmle.label | new String(...) : String | +| JacksonTest.java:21:46:21:50 | bytes : byte[] | semmle.label | bytes : byte[] | +| JacksonTest.java:22:28:22:35 | jexlExpr : String | semmle.label | jexlExpr : String | +| JacksonTest.java:74:32:74:37 | string : String | semmle.label | string : String | +| JacksonTest.java:76:30:76:35 | string | semmle.label | string | +| JacksonTest.java:83:32:83:37 | string : String | semmle.label | string : String | +| JacksonTest.java:85:30:85:35 | string | semmle.label | string | +| JacksonTest.java:92:32:92:37 | string : String | semmle.label | string : String | +| JacksonTest.java:94:30:94:35 | string | semmle.label | string | +| JacksonTest.java:139:32:139:37 | string : String | semmle.label | string : String | +| JacksonTest.java:142:30:142:35 | string | semmle.label | string | +| JacksonTest.java:148:32:148:37 | string : String | semmle.label | string : String | +| JacksonTest.java:151:31:151:68 | createParser(...) | semmle.label | createParser(...) | +| JacksonTest.java:151:62:151:67 | string : String | semmle.label | string : String | +| JacksonTest.java:157:32:157:37 | string : String | semmle.label | string : String | +| JacksonTest.java:160:32:160:54 | readTree(...) | semmle.label | readTree(...) | +| JacksonTest.java:160:48:160:53 | string : String | semmle.label | string : String | +| JacksonTest.java:166:32:166:36 | input : String | semmle.label | input : String | +| JacksonTest.java:167:30:167:34 | input : String | semmle.label | input : String | +| JacksonTest.java:167:30:167:45 | split(...) : String[] | semmle.label | split(...) : String[] | +| JacksonTest.java:172:30:172:33 | data | semmle.label | data | +| JacksonTest.java:178:32:178:36 | input : String | semmle.label | input : String | +| JacksonTest.java:179:30:179:34 | input : String | semmle.label | input : String | +| JacksonTest.java:179:30:179:45 | split(...) : String[] | semmle.label | split(...) : String[] | +| JacksonTest.java:183:30:183:33 | data | semmle.label | data | +| JoddJsonServlet.java:32:23:32:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JoddJsonServlet.java:45:37:45:40 | json | semmle.label | json | +| JoddJsonServlet.java:47:56:47:59 | json | semmle.label | json | +| JoddJsonServlet.java:49:67:49:70 | json | semmle.label | json | +| JoddJsonServlet.java:51:61:51:64 | json | semmle.label | json | +| JoddJsonServlet.java:58:23:58:46 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JoddJsonServlet.java:63:39:63:42 | json | semmle.label | json | +| ObjectMessageTest.java:6:27:6:41 | message : Message | semmle.label | message : Message | +| ObjectMessageTest.java:7:26:7:32 | message | semmle.label | message | +| ParcelableEntity.java:29:50:29:62 | parcel : Parcel | semmle.label | parcel : Parcel | +| ParcelableEntity.java:32:44:32:49 | parcel : Parcel | semmle.label | parcel : Parcel | +| ParcelableEntity.java:32:44:32:62 | readString(...) | semmle.label | readString(...) | +| TestMessageBodyReader.java:20:55:20:78 | entityStream : InputStream | semmle.label | entityStream : InputStream | +| TestMessageBodyReader.java:22:18:22:52 | new ObjectInputStream(...) | semmle.label | new ObjectInputStream(...) | +| TestMessageBodyReader.java:22:40:22:51 | entityStream : InputStream | semmle.label | entityStream : InputStream | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.ql b/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.ql deleted file mode 100644 index f4570b64ef8..00000000000 --- a/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.UnsafeDeserializationQuery -import utils.test.InlineExpectationsTest - -module UnsafeDeserializationTest implements TestSig { - string getARelevantTag() { result = "unsafeDeserialization" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "unsafeDeserialization" and - exists(DataFlow::Node sink | UnsafeDeserializationFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref b/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref new file mode 100644 index 00000000000..c0d27696834 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-502/UnsafeDeserialization.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-502/UnsafeDeserialization.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From bf1a699982ce0c52f17cf1697b72c546cd3e7e7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:42:45 +0200 Subject: [PATCH 282/340] Java: convert CWE-522 tests to .qlref --- .../InsecureBasicAuthTest.expected | 105 ++++++++++++++++++ .../InsecureBasicAuthTest.java | 36 +++--- .../InsecureBasicAuthTest.qlref | 4 + .../CWE-522/{ => InsecureBasicAuth}/options | 2 +- .../CWE-522/InsecureBasicAuthTest.expected | 0 .../security/CWE-522/InsecureBasicAuthTest.ql | 18 --- .../InsecureLdapAuth.java | 20 ++-- .../InsecureLdapAuthTest.expected | 100 +++++++++++++++++ .../InsecureLdapAuthTest.qlref | 4 + .../security/CWE-522/InsecureLdapAuth/options | 1 + .../CWE-522/InsecureLdapAuthTest.expected | 0 .../security/CWE-522/InsecureLdapAuthTest.ql | 20 ---- 12 files changed, 243 insertions(+), 67 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.expected rename java/ql/test/query-tests/security/CWE-522/{ => InsecureBasicAuth}/InsecureBasicAuthTest.java (96%) create mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.qlref rename java/ql/test/query-tests/security/CWE-522/{ => InsecureBasicAuth}/options (68%) delete mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.ql rename java/ql/test/query-tests/security/CWE-522/{ => InsecureLdapAuth}/InsecureLdapAuth.java (94%) create mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.expected create mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/options delete mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.ql diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.expected b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.expected new file mode 100644 index 00000000000..228de5b637a --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.expected @@ -0,0 +1,105 @@ +#select +| InsecureBasicAuthTest.java:28:4:28:7 | post | InsecureBasicAuthTest.java:25:40:25:48 | "http://" : String | InsecureBasicAuthTest.java:28:4:28:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:25:40:25:48 | "http://" | HTTP URL | +| InsecureBasicAuthTest.java:46:4:46:6 | get | InsecureBasicAuthTest.java:43:20:43:65 | "http://www.example.com:8000/payment/retrieve" : String | InsecureBasicAuthTest.java:46:4:46:6 | get | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:43:20:43:65 | "http://www.example.com:8000/payment/retrieve" | HTTP URL | +| InsecureBasicAuthTest.java:70:4:70:7 | post | InsecureBasicAuthTest.java:66:20:66:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:70:4:70:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:66:20:66:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" | HTTP URL | +| InsecureBasicAuthTest.java:95:4:95:7 | post | InsecureBasicAuthTest.java:90:20:90:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:95:4:95:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:90:20:90:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" | HTTP URL | +| InsecureBasicAuthTest.java:120:4:120:7 | post | InsecureBasicAuthTest.java:117:27:117:32 | "http" : String | InsecureBasicAuthTest.java:120:4:120:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:117:27:117:32 | "http" | HTTP URL | +| InsecureBasicAuthTest.java:143:4:143:7 | post | InsecureBasicAuthTest.java:139:20:139:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:143:4:143:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:139:20:139:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" | HTTP URL | +| InsecureBasicAuthTest.java:167:4:167:7 | post | InsecureBasicAuthTest.java:162:20:162:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:167:4:167:7 | post | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:162:20:162:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" | HTTP URL | +| InsecureBasicAuthTest.java:192:4:192:7 | conn | InsecureBasicAuthTest.java:187:20:187:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:192:4:192:7 | conn | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:187:20:187:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" | HTTP URL | +| InsecureBasicAuthTest.java:219:4:219:7 | conn | InsecureBasicAuthTest.java:214:22:214:27 | "http" : String | InsecureBasicAuthTest.java:219:4:219:7 | conn | Insecure basic authentication from a $@. | InsecureBasicAuthTest.java:214:22:214:27 | "http" | HTTP URL | +edges +| InsecureBasicAuthTest.java:25:27:25:87 | new HttpPost(...) : HttpPost | InsecureBasicAuthTest.java:28:4:28:7 | post | provenance | | +| InsecureBasicAuthTest.java:25:40:25:48 | "http://" : String | InsecureBasicAuthTest.java:25:40:25:86 | ... + ... : String | provenance | | +| InsecureBasicAuthTest.java:25:40:25:86 | ... + ... : String | InsecureBasicAuthTest.java:25:27:25:87 | new HttpPost(...) : HttpPost | provenance | Config | +| InsecureBasicAuthTest.java:43:20:43:65 | "http://www.example.com:8000/payment/retrieve" : String | InsecureBasicAuthTest.java:44:30:44:35 | urlStr : String | provenance | | +| InsecureBasicAuthTest.java:44:18:44:36 | new HttpGet(...) : HttpGet | InsecureBasicAuthTest.java:46:4:46:6 | get | provenance | | +| InsecureBasicAuthTest.java:44:30:44:35 | urlStr : String | InsecureBasicAuthTest.java:44:18:44:36 | new HttpGet(...) : HttpGet | provenance | Config | +| InsecureBasicAuthTest.java:66:20:66:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:67:51:67:56 | uriStr : String | provenance | | +| InsecureBasicAuthTest.java:67:27:67:58 | new HttpPost(...) : HttpPost | InsecureBasicAuthTest.java:70:4:70:7 | post | provenance | | +| InsecureBasicAuthTest.java:67:40:67:57 | create(...) : URI | InsecureBasicAuthTest.java:67:27:67:58 | new HttpPost(...) : HttpPost | provenance | Config | +| InsecureBasicAuthTest.java:67:51:67:56 | uriStr : String | InsecureBasicAuthTest.java:67:40:67:57 | create(...) : URI | provenance | MaD:2 | +| InsecureBasicAuthTest.java:90:20:90:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:91:22:91:27 | uriStr : String | provenance | | +| InsecureBasicAuthTest.java:91:14:91:28 | new URI(...) : URI | InsecureBasicAuthTest.java:92:40:92:42 | uri : URI | provenance | | +| InsecureBasicAuthTest.java:91:22:91:27 | uriStr : String | InsecureBasicAuthTest.java:91:14:91:28 | new URI(...) : URI | provenance | Config | +| InsecureBasicAuthTest.java:91:22:91:27 | uriStr : String | InsecureBasicAuthTest.java:91:14:91:28 | new URI(...) : URI | provenance | MaD:1 | +| InsecureBasicAuthTest.java:92:27:92:43 | new HttpPost(...) : HttpPost | InsecureBasicAuthTest.java:95:4:95:7 | post | provenance | | +| InsecureBasicAuthTest.java:92:40:92:42 | uri : URI | InsecureBasicAuthTest.java:92:27:92:43 | new HttpPost(...) : HttpPost | provenance | Config | +| InsecureBasicAuthTest.java:117:6:117:79 | new HttpPost(...) : HttpPost | InsecureBasicAuthTest.java:120:4:120:7 | post | provenance | | +| InsecureBasicAuthTest.java:117:19:117:78 | new URI(...) : URI | InsecureBasicAuthTest.java:117:6:117:79 | new HttpPost(...) : HttpPost | provenance | Config | +| InsecureBasicAuthTest.java:117:27:117:32 | "http" : String | InsecureBasicAuthTest.java:117:19:117:78 | new URI(...) : URI | provenance | Config | +| InsecureBasicAuthTest.java:139:20:139:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:140:57:140:62 | uriStr : String | provenance | | +| InsecureBasicAuthTest.java:140:28:140:63 | new BasicHttpRequest(...) : BasicHttpRequest | InsecureBasicAuthTest.java:143:4:143:7 | post | provenance | | +| InsecureBasicAuthTest.java:140:57:140:62 | uriStr : String | InsecureBasicAuthTest.java:140:28:140:63 | new BasicHttpRequest(...) : BasicHttpRequest | provenance | Config | +| InsecureBasicAuthTest.java:162:20:162:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:163:59:163:64 | uriStr : String | provenance | | +| InsecureBasicAuthTest.java:163:30:163:71 | new BasicRequestLine(...) : BasicRequestLine | InsecureBasicAuthTest.java:164:49:164:59 | requestLine : BasicRequestLine | provenance | | +| InsecureBasicAuthTest.java:163:59:163:64 | uriStr : String | InsecureBasicAuthTest.java:163:30:163:71 | new BasicRequestLine(...) : BasicRequestLine | provenance | MaD:4 | +| InsecureBasicAuthTest.java:164:28:164:60 | new BasicHttpRequest(...) : BasicHttpRequest | InsecureBasicAuthTest.java:167:4:167:7 | post | provenance | | +| InsecureBasicAuthTest.java:164:49:164:59 | requestLine : BasicRequestLine | InsecureBasicAuthTest.java:164:28:164:60 | new BasicHttpRequest(...) : BasicHttpRequest | provenance | Config | +| InsecureBasicAuthTest.java:187:20:187:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | InsecureBasicAuthTest.java:188:22:188:27 | urlStr : String | provenance | | +| InsecureBasicAuthTest.java:188:14:188:28 | new URL(...) : URL | InsecureBasicAuthTest.java:189:49:189:51 | url : URL | provenance | | +| InsecureBasicAuthTest.java:188:22:188:27 | urlStr : String | InsecureBasicAuthTest.java:188:14:188:28 | new URL(...) : URL | provenance | Config | +| InsecureBasicAuthTest.java:188:22:188:27 | urlStr : String | InsecureBasicAuthTest.java:188:14:188:28 | new URL(...) : URL | provenance | MaD:3 | +| InsecureBasicAuthTest.java:189:29:189:68 | (...)... : HttpURLConnection | InsecureBasicAuthTest.java:192:4:192:7 | conn | provenance | | +| InsecureBasicAuthTest.java:189:49:189:51 | url : URL | InsecureBasicAuthTest.java:189:49:189:68 | openConnection(...) : URLConnection | provenance | Config | +| InsecureBasicAuthTest.java:189:49:189:68 | openConnection(...) : URLConnection | InsecureBasicAuthTest.java:189:29:189:68 | (...)... : HttpURLConnection | provenance | | +| InsecureBasicAuthTest.java:214:22:214:27 | "http" : String | InsecureBasicAuthTest.java:215:22:215:29 | protocol : String | provenance | | +| InsecureBasicAuthTest.java:215:14:215:42 | new URL(...) : URL | InsecureBasicAuthTest.java:216:49:216:51 | url : URL | provenance | | +| InsecureBasicAuthTest.java:215:22:215:29 | protocol : String | InsecureBasicAuthTest.java:215:14:215:42 | new URL(...) : URL | provenance | Config | +| InsecureBasicAuthTest.java:216:29:216:68 | (...)... : HttpURLConnection | InsecureBasicAuthTest.java:219:4:219:7 | conn | provenance | | +| InsecureBasicAuthTest.java:216:49:216:51 | url : URL | InsecureBasicAuthTest.java:216:49:216:68 | openConnection(...) : URLConnection | provenance | Config | +| InsecureBasicAuthTest.java:216:49:216:68 | openConnection(...) : URLConnection | InsecureBasicAuthTest.java:216:29:216:68 | (...)... : HttpURLConnection | provenance | | +models +| 1 | Summary: java.net; URI; false; URI; (String); ; Argument[0]; Argument[this]; taint; manual | +| 2 | Summary: java.net; URI; false; create; ; ; Argument[0]; ReturnValue; taint; manual | +| 3 | Summary: java.net; URL; false; URL; (String); ; Argument[0]; Argument[this]; taint; manual | +| 4 | Summary: org.apache.http.message; BasicRequestLine; false; BasicRequestLine; ; ; Argument[1]; Argument[this]; taint; manual | +nodes +| InsecureBasicAuthTest.java:25:27:25:87 | new HttpPost(...) : HttpPost | semmle.label | new HttpPost(...) : HttpPost | +| InsecureBasicAuthTest.java:25:40:25:48 | "http://" : String | semmle.label | "http://" : String | +| InsecureBasicAuthTest.java:25:40:25:86 | ... + ... : String | semmle.label | ... + ... : String | +| InsecureBasicAuthTest.java:28:4:28:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:43:20:43:65 | "http://www.example.com:8000/payment/retrieve" : String | semmle.label | "http://www.example.com:8000/payment/retrieve" : String | +| InsecureBasicAuthTest.java:44:18:44:36 | new HttpGet(...) : HttpGet | semmle.label | new HttpGet(...) : HttpGet | +| InsecureBasicAuthTest.java:44:30:44:35 | urlStr : String | semmle.label | urlStr : String | +| InsecureBasicAuthTest.java:46:4:46:6 | get | semmle.label | get | +| InsecureBasicAuthTest.java:66:20:66:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | semmle.label | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | +| InsecureBasicAuthTest.java:67:27:67:58 | new HttpPost(...) : HttpPost | semmle.label | new HttpPost(...) : HttpPost | +| InsecureBasicAuthTest.java:67:40:67:57 | create(...) : URI | semmle.label | create(...) : URI | +| InsecureBasicAuthTest.java:67:51:67:56 | uriStr : String | semmle.label | uriStr : String | +| InsecureBasicAuthTest.java:70:4:70:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:90:20:90:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | semmle.label | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | +| InsecureBasicAuthTest.java:91:14:91:28 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| InsecureBasicAuthTest.java:91:22:91:27 | uriStr : String | semmle.label | uriStr : String | +| InsecureBasicAuthTest.java:92:27:92:43 | new HttpPost(...) : HttpPost | semmle.label | new HttpPost(...) : HttpPost | +| InsecureBasicAuthTest.java:92:40:92:42 | uri : URI | semmle.label | uri : URI | +| InsecureBasicAuthTest.java:95:4:95:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:117:6:117:79 | new HttpPost(...) : HttpPost | semmle.label | new HttpPost(...) : HttpPost | +| InsecureBasicAuthTest.java:117:19:117:78 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| InsecureBasicAuthTest.java:117:27:117:32 | "http" : String | semmle.label | "http" : String | +| InsecureBasicAuthTest.java:120:4:120:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:139:20:139:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | semmle.label | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | +| InsecureBasicAuthTest.java:140:28:140:63 | new BasicHttpRequest(...) : BasicHttpRequest | semmle.label | new BasicHttpRequest(...) : BasicHttpRequest | +| InsecureBasicAuthTest.java:140:57:140:62 | uriStr : String | semmle.label | uriStr : String | +| InsecureBasicAuthTest.java:143:4:143:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:162:20:162:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | semmle.label | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | +| InsecureBasicAuthTest.java:163:30:163:71 | new BasicRequestLine(...) : BasicRequestLine | semmle.label | new BasicRequestLine(...) : BasicRequestLine | +| InsecureBasicAuthTest.java:163:59:163:64 | uriStr : String | semmle.label | uriStr : String | +| InsecureBasicAuthTest.java:164:28:164:60 | new BasicHttpRequest(...) : BasicHttpRequest | semmle.label | new BasicHttpRequest(...) : BasicHttpRequest | +| InsecureBasicAuthTest.java:164:49:164:59 | requestLine : BasicRequestLine | semmle.label | requestLine : BasicRequestLine | +| InsecureBasicAuthTest.java:167:4:167:7 | post | semmle.label | post | +| InsecureBasicAuthTest.java:187:20:187:69 | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | semmle.label | "http://www.example.com/rest/getuser.do?uid=abcdx" : String | +| InsecureBasicAuthTest.java:188:14:188:28 | new URL(...) : URL | semmle.label | new URL(...) : URL | +| InsecureBasicAuthTest.java:188:22:188:27 | urlStr : String | semmle.label | urlStr : String | +| InsecureBasicAuthTest.java:189:29:189:68 | (...)... : HttpURLConnection | semmle.label | (...)... : HttpURLConnection | +| InsecureBasicAuthTest.java:189:49:189:51 | url : URL | semmle.label | url : URL | +| InsecureBasicAuthTest.java:189:49:189:68 | openConnection(...) : URLConnection | semmle.label | openConnection(...) : URLConnection | +| InsecureBasicAuthTest.java:192:4:192:7 | conn | semmle.label | conn | +| InsecureBasicAuthTest.java:214:22:214:27 | "http" : String | semmle.label | "http" : String | +| InsecureBasicAuthTest.java:215:14:215:42 | new URL(...) : URL | semmle.label | new URL(...) : URL | +| InsecureBasicAuthTest.java:215:22:215:29 | protocol : String | semmle.label | protocol : String | +| InsecureBasicAuthTest.java:216:29:216:68 | (...)... : HttpURLConnection | semmle.label | (...)... : HttpURLConnection | +| InsecureBasicAuthTest.java:216:49:216:51 | url : URL | semmle.label | url : URL | +| InsecureBasicAuthTest.java:216:49:216:68 | openConnection(...) : URLConnection | semmle.label | openConnection(...) : URLConnection | +| InsecureBasicAuthTest.java:219:4:219:7 | conn | semmle.label | conn | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.java b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.java similarity index 96% rename from java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.java rename to java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.java index 2098dd4139c..c174c9643de 100644 --- a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.java +++ b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.java @@ -22,10 +22,10 @@ public class InsecureBasicAuthTest { byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); String authStringEnc = new String(authEncBytes); { - HttpRequestBase post = new HttpPost("http://" + host + "/rest/getuser.do?uid=abcdx"); + HttpRequestBase post = new HttpPost("http://" + host + "/rest/getuser.do?uid=abcdx"); // $ Source post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { HttpRequestBase post = new HttpPost("https://" + host + "/rest/getuser.do?uid=abcdx"); @@ -40,10 +40,10 @@ public class InsecureBasicAuthTest { */ public void testApacheHttpRequest2(String url) throws java.io.IOException { { - String urlStr = "http://www.example.com:8000/payment/retrieve"; + String urlStr = "http://www.example.com:8000/payment/retrieve"; // $ Source HttpGet get = new HttpGet(urlStr); get.setHeader("Accept", "application/json"); - get.setHeader("Authorization", // $hasInsecureBasicAuth + get.setHeader("Authorization", // $ Alert "Basic " + new String(Base64.getEncoder().encode("admin:test".getBytes()))); } { @@ -63,11 +63,11 @@ public class InsecureBasicAuthTest { byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); String authStringEnc = new String(authEncBytes); { - String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; + String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; // $ Source HttpRequestBase post = new HttpPost(URI.create(uriStr)); post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { String uriStr = "https://www.example.com/rest/getuser.do?uid=abcdx"; @@ -87,12 +87,12 @@ public class InsecureBasicAuthTest { byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); String authStringEnc = new String(authEncBytes); { - String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; + String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; // $ Source URI uri = new URI(uriStr); HttpRequestBase post = new HttpPost(uri); post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { String uriStr = "https://www.example.com/rest/getuser.do?uid=abcdx"; @@ -114,10 +114,10 @@ public class InsecureBasicAuthTest { String authStringEnc = new String(authEncBytes); { HttpRequestBase post = - new HttpPost(new URI("http", "www.example.com", "/test", "abc=123", null)); + new HttpPost(new URI("http", "www.example.com", "/test", "abc=123", null)); // $ Source post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { HttpRequestBase post = @@ -136,11 +136,11 @@ public class InsecureBasicAuthTest { byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); String authStringEnc = new String(authEncBytes); { - String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; + String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; // $ Source BasicHttpRequest post = new BasicHttpRequest("POST", uriStr); post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { String uriStr = "https://www.example.com/rest/getuser.do?uid=abcdx"; @@ -159,12 +159,12 @@ public class InsecureBasicAuthTest { byte[] authEncBytes = Base64.getEncoder().encode(authString.getBytes()); String authStringEnc = new String(authEncBytes); { - String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; + String uriStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; // $ Source RequestLine requestLine = new BasicRequestLine("POST", uriStr, null); BasicHttpRequest post = new BasicHttpRequest(requestLine); post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json"); - post.addHeader("Authorization", "Basic " + authStringEnc); // $hasInsecureBasicAuth + post.addHeader("Authorization", "Basic " + authStringEnc); // $ Alert } { String uriStr = "https://www.example.com/rest/getuser.do?uid=abcdx"; @@ -184,12 +184,12 @@ public class InsecureBasicAuthTest { String authString = username + ":" + password; String encoding = Base64.getEncoder().encodeToString(authString.getBytes("UTF-8")); { - String urlStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; + String urlStr = "http://www.example.com/rest/getuser.do?uid=abcdx"; // $ Source URL url = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); - conn.setRequestProperty("Authorization", "Basic " + encoding); // $hasInsecureBasicAuth + conn.setRequestProperty("Authorization", "Basic " + encoding); // $ Alert } { String urlStr = "https://www.example.com/rest/getuser.do?uid=abcdx"; @@ -211,12 +211,12 @@ public class InsecureBasicAuthTest { String host = "www.example.com"; String path = "/rest/getuser.do?uid=abcdx"; { - String protocol = "http"; + String protocol = "http"; // $ Source URL url = new URL(protocol, host, path); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("POST"); conn.setDoOutput(true); - conn.setRequestProperty("Authorization", "Basic " + encoding); // $hasInsecureBasicAuth + conn.setRequestProperty("Authorization", "Basic " + encoding); // $ Alert } { String protocol = "https"; diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.qlref b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.qlref new file mode 100644 index 00000000000..053e0f22a26 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/InsecureBasicAuthTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-522/InsecureBasicAuth.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-522/options b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/options similarity index 68% rename from java/ql/test/query-tests/security/CWE-522/options rename to java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/options index 2e6054aac45..7eaf4cb235f 100644 --- a/java/ql/test/query-tests/security/CWE-522/options +++ b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuth/options @@ -1 +1 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/apache-http-4.4.13 +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/apache-http-4.4.13 diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.expected b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.ql b/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.ql deleted file mode 100644 index d3e99009eee..00000000000 --- a/java/ql/test/query-tests/security/CWE-522/InsecureBasicAuthTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.InsecureBasicAuthQuery -import utils.test.InlineExpectationsTest - -module HasInsecureBasicAuthTest implements TestSig { - string getARelevantTag() { result = "hasInsecureBasicAuth" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasInsecureBasicAuth" and - exists(DataFlow::Node sink | InsecureBasicAuthFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth.java b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuth.java similarity index 94% rename from java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth.java rename to java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuth.java index d769258a611..1ed8a7f3589 100644 --- a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth.java +++ b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuth.java @@ -8,7 +8,7 @@ import javax.naming.ldap.InitialLdapContext; public class InsecureLdapAuth { // BAD - Test LDAP authentication in cleartext using `DirContext`. public void testCleartextLdapAuth(String ldapUserName, String password) throws Exception { - String ldapUrl = "ldap://ad.your-server.com:389"; + String ldapUrl = "ldap://ad.your-server.com:389"; // $ Source Hashtable environment = new Hashtable(); environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); @@ -17,12 +17,12 @@ public class InsecureLdapAuth { environment.put(Context.SECURITY_AUTHENTICATION, "simple"); environment.put(Context.SECURITY_PRINCIPAL, ldapUserName); environment.put(Context.SECURITY_CREDENTIALS, password); - DirContext dirContext = new InitialDirContext(environment); // $ hasInsecureLdapAuth + DirContext dirContext = new InitialDirContext(environment); // $ Alert } // BAD - Test LDAP authentication in cleartext using `DirContext`. public void testCleartextLdapAuth(String ldapUserName, String password, String serverName) throws Exception { - String ldapUrl = "ldap://"+serverName+":389"; + String ldapUrl = "ldap://"+serverName+":389"; // $ Source Hashtable environment = new Hashtable(); environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); @@ -31,7 +31,7 @@ public class InsecureLdapAuth { environment.put(Context.SECURITY_AUTHENTICATION, "simple"); environment.put(Context.SECURITY_PRINCIPAL, ldapUserName); environment.put(Context.SECURITY_CREDENTIALS, password); - DirContext dirContext = new InitialDirContext(environment); // $ hasInsecureLdapAuth + DirContext dirContext = new InitialDirContext(environment); // $ Alert } // GOOD - Test LDAP authentication over SSL. @@ -93,7 +93,7 @@ public class InsecureLdapAuth { // BAD - Test LDAP authentication in cleartext using `InitialLdapContext`. public void testCleartextLdapAuth3(String ldapUserName, String password) throws Exception { - String ldapUrl = "ldap://ad.your-server.com:389"; + String ldapUrl = "ldap://ad.your-server.com:389"; // $ Source Hashtable environment = new Hashtable(); environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); @@ -102,13 +102,13 @@ public class InsecureLdapAuth { environment.put(Context.SECURITY_AUTHENTICATION, "simple"); environment.put(Context.SECURITY_PRINCIPAL, ldapUserName); environment.put(Context.SECURITY_CREDENTIALS, password); - InitialLdapContext ldapContext = new InitialLdapContext(environment, null); // $ hasInsecureLdapAuth + InitialLdapContext ldapContext = new InitialLdapContext(environment, null); // $ Alert } // BAD - Test LDAP authentication in cleartext using `DirContext` and string literals. public void testCleartextLdapAuth4(String ldapUserName, String password) throws Exception { - String ldapUrl = "ldap://ad.your-server.com:389"; + String ldapUrl = "ldap://ad.your-server.com:389"; // $ Source Hashtable environment = new Hashtable(); environment.put("java.naming.factory.initial", "com.sun.jndi.ldap.LdapCtxFactory"); @@ -117,7 +117,7 @@ public class InsecureLdapAuth { environment.put("java.naming.security.authentication", "simple"); environment.put("java.naming.security.principal", ldapUserName); environment.put("java.naming.security.credentials", password); - DirContext dirContext = new InitialDirContext(environment); // $ hasInsecureLdapAuth + DirContext dirContext = new InitialDirContext(environment); // $ Alert } private void setSSL(Hashtable env) { @@ -144,12 +144,12 @@ public class InsecureLdapAuth { // BAD - Test LDAP authentication with basic authentication. public void testCleartextLdapAuth6(String ldapUserName, String password, String serverName) throws Exception { - String ldapUrl = "ldap://"+serverName+":389"; + String ldapUrl = "ldap://"+serverName+":389"; // $ Source Hashtable environment = new Hashtable(); environment.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); environment.put(Context.PROVIDER_URL, ldapUrl); setBasicAuth(environment, ldapUserName, password); - DirContext dirContext = new InitialLdapContext(environment, null); // $ hasInsecureLdapAuth + DirContext dirContext = new InitialLdapContext(environment, null); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.expected b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.expected new file mode 100644 index 00000000000..5df9a4f5c95 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.expected @@ -0,0 +1,100 @@ +#select +| InsecureLdapAuth.java:20:49:20:59 | environment | InsecureLdapAuth.java:11:20:11:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:20:49:20:59 | environment | Insecure LDAP authentication from $@. | InsecureLdapAuth.java:11:20:11:50 | "ldap://ad.your-server.com:389" | LDAP connection string | +| InsecureLdapAuth.java:34:49:34:59 | environment | InsecureLdapAuth.java:25:20:25:39 | ... + ... : String | InsecureLdapAuth.java:34:49:34:59 | environment | Insecure LDAP authentication from $@. | InsecureLdapAuth.java:25:20:25:39 | ... + ... | LDAP connection string | +| InsecureLdapAuth.java:105:59:105:69 | environment | InsecureLdapAuth.java:96:20:96:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:105:59:105:69 | environment | Insecure LDAP authentication from $@. | InsecureLdapAuth.java:96:20:96:50 | "ldap://ad.your-server.com:389" | LDAP connection string | +| InsecureLdapAuth.java:120:49:120:59 | environment | InsecureLdapAuth.java:111:20:111:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:120:49:120:59 | environment | Insecure LDAP authentication from $@. | InsecureLdapAuth.java:111:20:111:50 | "ldap://ad.your-server.com:389" | LDAP connection string | +| InsecureLdapAuth.java:153:50:153:60 | environment | InsecureLdapAuth.java:147:20:147:39 | ... + ... : String | InsecureLdapAuth.java:153:50:153:60 | environment | Insecure LDAP authentication from $@. | InsecureLdapAuth.java:147:20:147:39 | ... + ... | LDAP connection string | +edges +| InsecureLdapAuth.java:11:20:11:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:15:41:15:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:15:3:15:13 | environment : Hashtable | InsecureLdapAuth.java:20:49:20:59 | environment | provenance | | +| InsecureLdapAuth.java:15:3:15:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:20:49:20:59 | environment | provenance | | +| InsecureLdapAuth.java:15:41:15:47 | ldapUrl : String | InsecureLdapAuth.java:15:3:15:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:15:41:15:47 | ldapUrl : String | InsecureLdapAuth.java:15:3:15:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:15:41:15:47 | ldapUrl : String | InsecureLdapAuth.java:15:3:15:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:25:20:25:39 | ... + ... : String | InsecureLdapAuth.java:29:41:29:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:29:3:29:13 | environment : Hashtable | InsecureLdapAuth.java:34:49:34:59 | environment | provenance | | +| InsecureLdapAuth.java:29:3:29:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:34:49:34:59 | environment | provenance | | +| InsecureLdapAuth.java:29:41:29:47 | ldapUrl : String | InsecureLdapAuth.java:29:3:29:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:29:41:29:47 | ldapUrl : String | InsecureLdapAuth.java:29:3:29:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:29:41:29:47 | ldapUrl : String | InsecureLdapAuth.java:29:3:29:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:53:20:53:50 | "ldap://ad.your-server.com:636" : String | InsecureLdapAuth.java:57:41:57:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:57:3:57:13 | environment : Hashtable | InsecureLdapAuth.java:63:49:63:59 | environment | provenance | | +| InsecureLdapAuth.java:57:3:57:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:63:49:63:59 | environment | provenance | | +| InsecureLdapAuth.java:57:41:57:47 | ldapUrl : String | InsecureLdapAuth.java:57:3:57:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:57:41:57:47 | ldapUrl : String | InsecureLdapAuth.java:57:3:57:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:57:41:57:47 | ldapUrl : String | InsecureLdapAuth.java:57:3:57:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:68:20:68:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:72:41:72:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:72:3:72:13 | environment : Hashtable | InsecureLdapAuth.java:77:49:77:59 | environment | provenance | | +| InsecureLdapAuth.java:72:3:72:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:77:49:77:59 | environment | provenance | | +| InsecureLdapAuth.java:72:41:72:47 | ldapUrl : String | InsecureLdapAuth.java:72:3:72:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:72:41:72:47 | ldapUrl : String | InsecureLdapAuth.java:72:3:72:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:72:41:72:47 | ldapUrl : String | InsecureLdapAuth.java:72:3:72:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:96:20:96:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:100:41:100:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:100:3:100:13 | environment : Hashtable | InsecureLdapAuth.java:105:59:105:69 | environment | provenance | | +| InsecureLdapAuth.java:100:3:100:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:105:59:105:69 | environment | provenance | | +| InsecureLdapAuth.java:100:41:100:47 | ldapUrl : String | InsecureLdapAuth.java:100:3:100:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:100:41:100:47 | ldapUrl : String | InsecureLdapAuth.java:100:3:100:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:100:41:100:47 | ldapUrl : String | InsecureLdapAuth.java:100:3:100:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:111:20:111:50 | "ldap://ad.your-server.com:389" : String | InsecureLdapAuth.java:115:47:115:53 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:115:3:115:13 | environment : Hashtable | InsecureLdapAuth.java:120:49:120:59 | environment | provenance | | +| InsecureLdapAuth.java:115:3:115:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:120:49:120:59 | environment | provenance | | +| InsecureLdapAuth.java:115:47:115:53 | ldapUrl : String | InsecureLdapAuth.java:115:3:115:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:115:47:115:53 | ldapUrl : String | InsecureLdapAuth.java:115:3:115:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:115:47:115:53 | ldapUrl : String | InsecureLdapAuth.java:115:3:115:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:135:20:135:39 | ... + ... : String | InsecureLdapAuth.java:140:41:140:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:140:3:140:13 | environment : Hashtable | InsecureLdapAuth.java:142:50:142:60 | environment | provenance | | +| InsecureLdapAuth.java:140:3:140:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:142:50:142:60 | environment | provenance | | +| InsecureLdapAuth.java:140:41:140:47 | ldapUrl : String | InsecureLdapAuth.java:140:3:140:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:140:41:140:47 | ldapUrl : String | InsecureLdapAuth.java:140:3:140:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:140:41:140:47 | ldapUrl : String | InsecureLdapAuth.java:140:3:140:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +| InsecureLdapAuth.java:147:20:147:39 | ... + ... : String | InsecureLdapAuth.java:151:41:151:47 | ldapUrl : String | provenance | | +| InsecureLdapAuth.java:151:3:151:13 | environment : Hashtable | InsecureLdapAuth.java:153:50:153:60 | environment | provenance | | +| InsecureLdapAuth.java:151:3:151:13 | environment [post update] : Hashtable [] : String | InsecureLdapAuth.java:153:50:153:60 | environment | provenance | | +| InsecureLdapAuth.java:151:41:151:47 | ldapUrl : String | InsecureLdapAuth.java:151:3:151:13 | environment : Hashtable | provenance | Config | +| InsecureLdapAuth.java:151:41:151:47 | ldapUrl : String | InsecureLdapAuth.java:151:3:151:13 | environment [post update] : Hashtable [] : String | provenance | MaD:1 | +| InsecureLdapAuth.java:151:41:151:47 | ldapUrl : String | InsecureLdapAuth.java:151:3:151:13 | environment [post update] : Hashtable [] : String | provenance | MaD:2 | +models +| 1 | Summary: java.util; Dictionary; true; put; (Object,Object); ; Argument[1]; Argument[this].MapValue; value; manual | +| 2 | Summary: java.util; Map; true; put; (Object,Object); ; Argument[1]; Argument[this].MapValue; value; manual | +nodes +| InsecureLdapAuth.java:11:20:11:50 | "ldap://ad.your-server.com:389" : String | semmle.label | "ldap://ad.your-server.com:389" : String | +| InsecureLdapAuth.java:15:3:15:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:15:3:15:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:15:41:15:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:20:49:20:59 | environment | semmle.label | environment | +| InsecureLdapAuth.java:25:20:25:39 | ... + ... : String | semmle.label | ... + ... : String | +| InsecureLdapAuth.java:29:3:29:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:29:3:29:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:29:41:29:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:34:49:34:59 | environment | semmle.label | environment | +| InsecureLdapAuth.java:53:20:53:50 | "ldap://ad.your-server.com:636" : String | semmle.label | "ldap://ad.your-server.com:636" : String | +| InsecureLdapAuth.java:57:3:57:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:57:3:57:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:57:41:57:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:63:49:63:59 | environment | semmle.label | environment | +| InsecureLdapAuth.java:68:20:68:50 | "ldap://ad.your-server.com:389" : String | semmle.label | "ldap://ad.your-server.com:389" : String | +| InsecureLdapAuth.java:72:3:72:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:72:3:72:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:72:41:72:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:77:49:77:59 | environment | semmle.label | environment | +| InsecureLdapAuth.java:96:20:96:50 | "ldap://ad.your-server.com:389" : String | semmle.label | "ldap://ad.your-server.com:389" : String | +| InsecureLdapAuth.java:100:3:100:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:100:3:100:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:100:41:100:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:105:59:105:69 | environment | semmle.label | environment | +| InsecureLdapAuth.java:111:20:111:50 | "ldap://ad.your-server.com:389" : String | semmle.label | "ldap://ad.your-server.com:389" : String | +| InsecureLdapAuth.java:115:3:115:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:115:3:115:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:115:47:115:53 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:120:49:120:59 | environment | semmle.label | environment | +| InsecureLdapAuth.java:135:20:135:39 | ... + ... : String | semmle.label | ... + ... : String | +| InsecureLdapAuth.java:140:3:140:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:140:3:140:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:140:41:140:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:142:50:142:60 | environment | semmle.label | environment | +| InsecureLdapAuth.java:147:20:147:39 | ... + ... : String | semmle.label | ... + ... : String | +| InsecureLdapAuth.java:151:3:151:13 | environment : Hashtable | semmle.label | environment : Hashtable | +| InsecureLdapAuth.java:151:3:151:13 | environment [post update] : Hashtable [] : String | semmle.label | environment [post update] : Hashtable [] : String | +| InsecureLdapAuth.java:151:41:151:47 | ldapUrl : String | semmle.label | ldapUrl : String | +| InsecureLdapAuth.java:153:50:153:60 | environment | semmle.label | environment | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.qlref b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.qlref new file mode 100644 index 00000000000..0ef38324337 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/InsecureLdapAuthTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-522/InsecureLdapAuth.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/options b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/options new file mode 100644 index 00000000000..7eaf4cb235f --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuth/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/apache-http-4.4.13 diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.expected b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.ql b/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.ql deleted file mode 100644 index 7c75f5192ed..00000000000 --- a/java/ql/test/query-tests/security/CWE-522/InsecureLdapAuthTest.ql +++ /dev/null @@ -1,20 +0,0 @@ -import java -import semmle.code.java.security.InsecureLdapAuthQuery -import utils.test.InlineExpectationsTest - -module InsecureLdapAuthenticationTest implements TestSig { - string getARelevantTag() { result = "hasInsecureLdapAuth" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasInsecureLdapAuth" and - exists(DataFlow::Node sink | InsecureLdapUrlFlow::flowTo(sink) | - BasicAuthFlow::flowTo(sink) and - not RequiresSslFlow::flowTo(sink) and - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From 7f33f57c9baa396459d95e5ef47e1f984ae6bbfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:48:49 +0200 Subject: [PATCH 283/340] Java: convert UrlForward test to .qlref --- .../security/CWE-552/UrlForwardTest.expected | 127 ++++++++++++++++++ .../security/CWE-552/UrlForwardTest.java | 82 +++++------ .../security/CWE-552/UrlForwardTest.ql | 4 - .../security/CWE-552/UrlForwardTest.qlref | 4 + 4 files changed, 172 insertions(+), 45 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-552/UrlForwardTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-552/UrlForwardTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.expected b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.expected index e69de29bb2d..8beed804aca 100644 --- a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.expected +++ b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.expected @@ -0,0 +1,127 @@ +#select +| UrlForwardTest.java:29:27:29:29 | url | UrlForwardTest.java:28:27:28:36 | url : String | UrlForwardTest.java:29:27:29:29 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:28:27:28:36 | url | user-provided value | +| UrlForwardTest.java:35:28:35:30 | url | UrlForwardTest.java:33:27:33:36 | url : String | UrlForwardTest.java:35:28:35:30 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:33:27:33:36 | url | user-provided value | +| UrlForwardTest.java:42:23:42:25 | url | UrlForwardTest.java:41:21:41:30 | url : String | UrlForwardTest.java:42:23:42:25 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:41:21:41:30 | url | user-provided value | +| UrlForwardTest.java:47:48:47:63 | ... + ... | UrlForwardTest.java:46:27:46:36 | url : String | UrlForwardTest.java:47:48:47:63 | ... + ... | Untrusted URL forward depends on a $@. | UrlForwardTest.java:46:27:46:36 | url | user-provided value | +| UrlForwardTest.java:47:61:47:63 | url | UrlForwardTest.java:46:27:46:36 | url : String | UrlForwardTest.java:47:61:47:63 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:46:27:46:36 | url | user-provided value | +| UrlForwardTest.java:63:33:63:35 | url | UrlForwardTest.java:61:19:61:28 | url : String | UrlForwardTest.java:63:33:63:35 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:61:19:61:28 | url | user-provided value | +| UrlForwardTest.java:74:33:74:62 | ... + ... | UrlForwardTest.java:72:19:72:28 | url : String | UrlForwardTest.java:74:33:74:62 | ... + ... | Untrusted URL forward depends on a $@. | UrlForwardTest.java:72:19:72:28 | url | user-provided value | +| UrlForwardTest.java:85:33:85:62 | ... + ... | UrlForwardTest.java:83:19:83:28 | url : String | UrlForwardTest.java:85:33:85:62 | ... + ... | Untrusted URL forward depends on a $@. | UrlForwardTest.java:83:19:83:28 | url | user-provided value | +| UrlForwardTest.java:109:33:109:35 | url | UrlForwardTest.java:106:19:106:32 | urlPath : String | UrlForwardTest.java:109:33:109:35 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:106:19:106:32 | urlPath | user-provided value | +| UrlForwardTest.java:148:33:148:36 | path | UrlForwardTest.java:145:17:145:63 | getServletPath(...) : String | UrlForwardTest.java:148:33:148:36 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:145:17:145:63 | getServletPath(...) | user-provided value | +| UrlForwardTest.java:161:33:161:36 | path | UrlForwardTest.java:158:17:158:63 | getServletPath(...) : String | UrlForwardTest.java:161:33:161:36 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:158:17:158:63 | getServletPath(...) | user-provided value | +| UrlForwardTest.java:193:51:193:59 | returnURL | UrlForwardTest.java:184:22:184:54 | getParameter(...) : String | UrlForwardTest.java:193:51:193:59 | returnURL | Untrusted URL forward depends on a $@. | UrlForwardTest.java:184:22:184:54 | getParameter(...) | user-provided value | +| UrlForwardTest.java:209:56:209:64 | returnURL | UrlForwardTest.java:203:22:203:54 | getParameter(...) : String | UrlForwardTest.java:209:56:209:64 | returnURL | Untrusted URL forward depends on a $@. | UrlForwardTest.java:203:22:203:54 | getParameter(...) | user-provided value | +| UrlForwardTest.java:236:53:236:56 | path | UrlForwardTest.java:232:17:232:44 | getParameter(...) : String | UrlForwardTest.java:236:53:236:56 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:232:17:232:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:247:53:247:56 | path | UrlForwardTest.java:244:17:244:44 | getParameter(...) : String | UrlForwardTest.java:247:53:247:56 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:244:17:244:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:261:53:261:76 | toString(...) | UrlForwardTest.java:255:17:255:44 | getParameter(...) : String | UrlForwardTest.java:261:53:261:76 | toString(...) | Untrusted URL forward depends on a $@. | UrlForwardTest.java:255:17:255:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:273:53:273:76 | toString(...) | UrlForwardTest.java:268:17:268:44 | getParameter(...) : String | UrlForwardTest.java:273:53:273:76 | toString(...) | Untrusted URL forward depends on a $@. | UrlForwardTest.java:268:17:268:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:284:53:284:56 | path | UrlForwardTest.java:280:17:280:44 | getParameter(...) : String | UrlForwardTest.java:284:53:284:56 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:280:17:280:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:322:54:322:57 | path | UrlForwardTest.java:319:17:319:44 | getParameter(...) : String | UrlForwardTest.java:322:54:322:57 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:319:17:319:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:365:53:365:56 | path | UrlForwardTest.java:355:17:355:44 | getParameter(...) : String | UrlForwardTest.java:365:53:365:56 | path | Untrusted URL forward depends on a $@. | UrlForwardTest.java:355:17:355:44 | getParameter(...) | user-provided value | +| UrlForwardTest.java:372:20:372:22 | url | UrlForwardTest.java:371:16:371:41 | getParameter(...) : String | UrlForwardTest.java:372:20:372:22 | url | Untrusted URL forward depends on a $@. | UrlForwardTest.java:371:16:371:41 | getParameter(...) | user-provided value | +| UrlForwardTest.java:384:27:384:56 | getParameter(...) | UrlForwardTest.java:384:27:384:56 | getParameter(...) | UrlForwardTest.java:384:27:384:56 | getParameter(...) | Untrusted URL forward depends on a $@. | UrlForwardTest.java:384:27:384:56 | getParameter(...) | user-provided value | +edges +| UrlForwardTest.java:28:27:28:36 | url : String | UrlForwardTest.java:29:27:29:29 | url | provenance | Sink:MaD:4 | +| UrlForwardTest.java:33:27:33:36 | url : String | UrlForwardTest.java:35:28:35:30 | url | provenance | Sink:MaD:5 | +| UrlForwardTest.java:41:21:41:30 | url : String | UrlForwardTest.java:42:23:42:25 | url | provenance | | +| UrlForwardTest.java:46:27:46:36 | url : String | UrlForwardTest.java:47:48:47:63 | ... + ... | provenance | Sink:MaD:4 | +| UrlForwardTest.java:46:27:46:36 | url : String | UrlForwardTest.java:47:61:47:63 | url | provenance | | +| UrlForwardTest.java:61:19:61:28 | url : String | UrlForwardTest.java:63:33:63:35 | url | provenance | Sink:MaD:2 | +| UrlForwardTest.java:72:19:72:28 | url : String | UrlForwardTest.java:74:33:74:62 | ... + ... | provenance | Sink:MaD:2 | +| UrlForwardTest.java:83:19:83:28 | url : String | UrlForwardTest.java:85:33:85:62 | ... + ... | provenance | Sink:MaD:2 | +| UrlForwardTest.java:106:19:106:32 | urlPath : String | UrlForwardTest.java:109:33:109:35 | url | provenance | Sink:MaD:2 | +| UrlForwardTest.java:145:17:145:63 | getServletPath(...) : String | UrlForwardTest.java:148:33:148:36 | path | provenance | Src:MaD:6 Sink:MaD:2 | +| UrlForwardTest.java:158:17:158:63 | getServletPath(...) : String | UrlForwardTest.java:161:33:161:36 | path | provenance | Src:MaD:6 Sink:MaD:2 | +| UrlForwardTest.java:184:22:184:54 | getParameter(...) : String | UrlForwardTest.java:193:51:193:59 | returnURL | provenance | Src:MaD:7 Sink:MaD:1 | +| UrlForwardTest.java:203:22:203:54 | getParameter(...) : String | UrlForwardTest.java:209:56:209:64 | returnURL | provenance | Src:MaD:7 Sink:MaD:2 | +| UrlForwardTest.java:232:17:232:44 | getParameter(...) : String | UrlForwardTest.java:236:53:236:56 | path | provenance | Src:MaD:7 Sink:MaD:1 | +| UrlForwardTest.java:244:17:244:44 | getParameter(...) : String | UrlForwardTest.java:247:53:247:56 | path | provenance | Src:MaD:7 Sink:MaD:1 | +| UrlForwardTest.java:255:17:255:44 | getParameter(...) : String | UrlForwardTest.java:258:53:258:56 | path : String | provenance | Src:MaD:7 | +| UrlForwardTest.java:258:24:258:57 | resolve(...) : Path | UrlForwardTest.java:258:24:258:69 | normalize(...) : Path | provenance | MaD:9 | +| UrlForwardTest.java:258:24:258:69 | normalize(...) : Path | UrlForwardTest.java:261:53:261:65 | requestedPath : Path | provenance | | +| UrlForwardTest.java:258:53:258:56 | path : String | UrlForwardTest.java:258:24:258:57 | resolve(...) : Path | provenance | MaD:10 | +| UrlForwardTest.java:261:53:261:65 | requestedPath : Path | UrlForwardTest.java:261:53:261:76 | toString(...) | provenance | MaD:11 Sink:MaD:1 | +| UrlForwardTest.java:268:17:268:44 | getParameter(...) : String | UrlForwardTest.java:270:53:270:56 | path : String | provenance | Src:MaD:7 | +| UrlForwardTest.java:270:24:270:57 | resolve(...) : Path | UrlForwardTest.java:270:24:270:69 | normalize(...) : Path | provenance | MaD:9 | +| UrlForwardTest.java:270:24:270:69 | normalize(...) : Path | UrlForwardTest.java:273:53:273:65 | requestedPath : Path | provenance | | +| UrlForwardTest.java:270:53:270:56 | path : String | UrlForwardTest.java:270:24:270:57 | resolve(...) : Path | provenance | MaD:10 | +| UrlForwardTest.java:273:53:273:65 | requestedPath : Path | UrlForwardTest.java:273:53:273:76 | toString(...) | provenance | MaD:11 Sink:MaD:1 | +| UrlForwardTest.java:280:17:280:44 | getParameter(...) : String | UrlForwardTest.java:281:28:281:31 | path : String | provenance | Src:MaD:7 | +| UrlForwardTest.java:281:10:281:41 | decode(...) : String | UrlForwardTest.java:284:53:284:56 | path | provenance | Sink:MaD:1 | +| UrlForwardTest.java:281:28:281:31 | path : String | UrlForwardTest.java:281:10:281:41 | decode(...) : String | provenance | MaD:8 | +| UrlForwardTest.java:319:17:319:44 | getParameter(...) : String | UrlForwardTest.java:322:54:322:57 | path | provenance | Src:MaD:7 Sink:MaD:1 | +| UrlForwardTest.java:355:17:355:44 | getParameter(...) : String | UrlForwardTest.java:360:29:360:32 | path : String | provenance | Src:MaD:7 | +| UrlForwardTest.java:355:17:355:44 | getParameter(...) : String | UrlForwardTest.java:365:53:365:56 | path | provenance | Src:MaD:7 Sink:MaD:1 | +| UrlForwardTest.java:360:11:360:42 | decode(...) : String | UrlForwardTest.java:360:29:360:32 | path : String | provenance | | +| UrlForwardTest.java:360:11:360:42 | decode(...) : String | UrlForwardTest.java:365:53:365:56 | path | provenance | Sink:MaD:1 | +| UrlForwardTest.java:360:29:360:32 | path : String | UrlForwardTest.java:360:11:360:42 | decode(...) : String | provenance | MaD:8 | +| UrlForwardTest.java:371:16:371:41 | getParameter(...) : String | UrlForwardTest.java:372:20:372:22 | url | provenance | Src:MaD:7 Sink:MaD:3 | +models +| 1 | Sink: javax.servlet; ServletContext; true; getRequestDispatcher; (String); ; Argument[0]; url-forward; manual | +| 2 | Sink: javax.servlet; ServletRequest; true; getRequestDispatcher; (String); ; Argument[0]; url-forward; manual | +| 3 | Sink: org.kohsuke.stapler; StaplerResponse; true; forward; (Object,String,StaplerRequest); ; Argument[1]; url-forward; manual | +| 4 | Sink: org.springframework.web.servlet; ModelAndView; false; ModelAndView; ; ; Argument[0]; url-forward; manual | +| 5 | Sink: org.springframework.web.servlet; ModelAndView; false; setViewName; ; ; Argument[0]; url-forward; manual | +| 6 | Source: javax.servlet.http; HttpServletRequest; false; getServletPath; (); ; ReturnValue; remote; manual | +| 7 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 8 | Summary: java.net; URLDecoder; false; decode; ; ; Argument[0]; ReturnValue; taint; manual | +| 9 | Summary: java.nio.file; Path; true; normalize; ; ; Argument[this]; ReturnValue; taint; manual | +| 10 | Summary: java.nio.file; Path; true; resolve; ; ; Argument[0]; ReturnValue; taint; manual | +| 11 | Summary: java.nio.file; Path; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +nodes +| UrlForwardTest.java:28:27:28:36 | url : String | semmle.label | url : String | +| UrlForwardTest.java:29:27:29:29 | url | semmle.label | url | +| UrlForwardTest.java:33:27:33:36 | url : String | semmle.label | url : String | +| UrlForwardTest.java:35:28:35:30 | url | semmle.label | url | +| UrlForwardTest.java:41:21:41:30 | url : String | semmle.label | url : String | +| UrlForwardTest.java:42:23:42:25 | url | semmle.label | url | +| UrlForwardTest.java:46:27:46:36 | url : String | semmle.label | url : String | +| UrlForwardTest.java:47:48:47:63 | ... + ... | semmle.label | ... + ... | +| UrlForwardTest.java:47:61:47:63 | url | semmle.label | url | +| UrlForwardTest.java:61:19:61:28 | url : String | semmle.label | url : String | +| UrlForwardTest.java:63:33:63:35 | url | semmle.label | url | +| UrlForwardTest.java:72:19:72:28 | url : String | semmle.label | url : String | +| UrlForwardTest.java:74:33:74:62 | ... + ... | semmle.label | ... + ... | +| UrlForwardTest.java:83:19:83:28 | url : String | semmle.label | url : String | +| UrlForwardTest.java:85:33:85:62 | ... + ... | semmle.label | ... + ... | +| UrlForwardTest.java:106:19:106:32 | urlPath : String | semmle.label | urlPath : String | +| UrlForwardTest.java:109:33:109:35 | url | semmle.label | url | +| UrlForwardTest.java:145:17:145:63 | getServletPath(...) : String | semmle.label | getServletPath(...) : String | +| UrlForwardTest.java:148:33:148:36 | path | semmle.label | path | +| UrlForwardTest.java:158:17:158:63 | getServletPath(...) : String | semmle.label | getServletPath(...) : String | +| UrlForwardTest.java:161:33:161:36 | path | semmle.label | path | +| UrlForwardTest.java:184:22:184:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:193:51:193:59 | returnURL | semmle.label | returnURL | +| UrlForwardTest.java:203:22:203:54 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:209:56:209:64 | returnURL | semmle.label | returnURL | +| UrlForwardTest.java:232:17:232:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:236:53:236:56 | path | semmle.label | path | +| UrlForwardTest.java:244:17:244:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:247:53:247:56 | path | semmle.label | path | +| UrlForwardTest.java:255:17:255:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:258:24:258:57 | resolve(...) : Path | semmle.label | resolve(...) : Path | +| UrlForwardTest.java:258:24:258:69 | normalize(...) : Path | semmle.label | normalize(...) : Path | +| UrlForwardTest.java:258:53:258:56 | path : String | semmle.label | path : String | +| UrlForwardTest.java:261:53:261:65 | requestedPath : Path | semmle.label | requestedPath : Path | +| UrlForwardTest.java:261:53:261:76 | toString(...) | semmle.label | toString(...) | +| UrlForwardTest.java:268:17:268:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:270:24:270:57 | resolve(...) : Path | semmle.label | resolve(...) : Path | +| UrlForwardTest.java:270:24:270:69 | normalize(...) : Path | semmle.label | normalize(...) : Path | +| UrlForwardTest.java:270:53:270:56 | path : String | semmle.label | path : String | +| UrlForwardTest.java:273:53:273:65 | requestedPath : Path | semmle.label | requestedPath : Path | +| UrlForwardTest.java:273:53:273:76 | toString(...) | semmle.label | toString(...) | +| UrlForwardTest.java:280:17:280:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:281:10:281:41 | decode(...) : String | semmle.label | decode(...) : String | +| UrlForwardTest.java:281:28:281:31 | path : String | semmle.label | path : String | +| UrlForwardTest.java:284:53:284:56 | path | semmle.label | path | +| UrlForwardTest.java:319:17:319:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:322:54:322:57 | path | semmle.label | path | +| UrlForwardTest.java:355:17:355:44 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:360:11:360:42 | decode(...) : String | semmle.label | decode(...) : String | +| UrlForwardTest.java:360:29:360:32 | path : String | semmle.label | path : String | +| UrlForwardTest.java:365:53:365:56 | path | semmle.label | path | +| UrlForwardTest.java:371:16:371:41 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| UrlForwardTest.java:372:20:372:22 | url | semmle.label | url | +| UrlForwardTest.java:384:27:384:56 | getParameter(...) | semmle.label | getParameter(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.java b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.java index a1437a692a2..72ccf2c3b54 100644 --- a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.java +++ b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.java @@ -25,26 +25,26 @@ public class UrlForwardTest extends HttpServlet implements Filter { // Spring `ModelAndView` test cases @GetMapping("/bad1") - public ModelAndView bad1(String url) { - return new ModelAndView(url); // $ hasTaintFlow + public ModelAndView bad1(String url) { // $ Source + return new ModelAndView(url); // $ Alert } @GetMapping("/bad2") - public ModelAndView bad2(String url) { + public ModelAndView bad2(String url) { // $ Source ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName(url); // $ hasTaintFlow + modelAndView.setViewName(url); // $ Alert return modelAndView; } // Spring `"forward:"` prefix test cases @GetMapping("/bad3") - public String bad3(String url) { - return "forward:" + url + "/swagger-ui/index.html"; // $ hasTaintFlow + public String bad3(String url) { // $ Source + return "forward:" + url + "/swagger-ui/index.html"; // $ Alert } @GetMapping("/bad4") - public ModelAndView bad4(String url) { - ModelAndView modelAndView = new ModelAndView("forward:" + url); // $ hasTaintFlow + public ModelAndView bad4(String url) { // $ Source + ModelAndView modelAndView = new ModelAndView("forward:" + url); // $ Alert return modelAndView; } @@ -58,9 +58,9 @@ public class UrlForwardTest extends HttpServlet implements Filter { // `RequestDispatcher` test cases from a Spring `GetMapping` entry point @GetMapping("/bad5") - public void bad5(String url, HttpServletRequest request, HttpServletResponse response) { + public void bad5(String url, HttpServletRequest request, HttpServletResponse response) { // $ Source try { - request.getRequestDispatcher(url).include(request, response); // $ hasTaintFlow + request.getRequestDispatcher(url).include(request, response); // $ Alert } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { @@ -69,9 +69,9 @@ public class UrlForwardTest extends HttpServlet implements Filter { } @GetMapping("/bad6") - public void bad6(String url, HttpServletRequest request, HttpServletResponse response) { + public void bad6(String url, HttpServletRequest request, HttpServletResponse response) { // $ Source try { - request.getRequestDispatcher("/WEB-INF/jsp/" + url + ".jsp").include(request, response); // $ hasTaintFlow + request.getRequestDispatcher("/WEB-INF/jsp/" + url + ".jsp").include(request, response); // $ Alert } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { @@ -80,9 +80,9 @@ public class UrlForwardTest extends HttpServlet implements Filter { } @GetMapping("/bad7") - public void bad7(String url, HttpServletRequest request, HttpServletResponse response) { + public void bad7(String url, HttpServletRequest request, HttpServletResponse response) { // $ Source try { - request.getRequestDispatcher("/WEB-INF/jsp/" + url + ".jsp").forward(request, response); // $ hasTaintFlow + request.getRequestDispatcher("/WEB-INF/jsp/" + url + ".jsp").forward(request, response); // $ Alert } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { @@ -103,10 +103,10 @@ public class UrlForwardTest extends HttpServlet implements Filter { // BAD: appended to a prefix without path sanitization @GetMapping("/bad8") - public void bad8(String urlPath, HttpServletRequest request, HttpServletResponse response) { + public void bad8(String urlPath, HttpServletRequest request, HttpServletResponse response) { // $ Source try { String url = "/pages" + urlPath; - request.getRequestDispatcher(url).forward(request, response); // $ hasTaintFlow + request.getRequestDispatcher(url).forward(request, response); // $ Alert } catch (ServletException e) { e.printStackTrace(); } catch (IOException e) { @@ -142,10 +142,10 @@ public class UrlForwardTest extends HttpServlet implements Filter { // BAD: Request dispatcher from servlet path without check public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - String path = ((HttpServletRequest) request).getServletPath(); + String path = ((HttpServletRequest) request).getServletPath(); // $ Source // A sample payload "/%57EB-INF/web.xml" can bypass this `startsWith` check if (path != null && !path.startsWith("/WEB-INF")) { - request.getRequestDispatcher(path).forward(request, response); // $ hasTaintFlow + request.getRequestDispatcher(path).forward(request, response); // $ Alert } else { chain.doFilter(request, response); } @@ -155,10 +155,10 @@ public class UrlForwardTest extends HttpServlet implements Filter { // the user-supplied path; could bypass check with ".." encoded as "%2e%2e". public void doFilter2(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { - String path = ((HttpServletRequest) request).getServletPath(); + String path = ((HttpServletRequest) request).getServletPath(); // $ Source if (path.startsWith(BASE_PATH) && !path.contains("..")) { - request.getRequestDispatcher(path).forward(request, response); // $ hasTaintFlow + request.getRequestDispatcher(path).forward(request, response); // $ Alert } else { chain.doFilter(request, response); } @@ -181,7 +181,7 @@ public class UrlForwardTest extends HttpServlet implements Filter { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); - String returnURL = request.getParameter("returnURL"); + String returnURL = request.getParameter("returnURL"); // $ Source ServletConfig cfg = getServletConfig(); if (action.equals("Login")) { @@ -190,7 +190,7 @@ public class UrlForwardTest extends HttpServlet implements Filter { rd.forward(request, response); } else { ServletContext sc = cfg.getServletContext(); - RequestDispatcher rd = sc.getRequestDispatcher(returnURL); // $ hasTaintFlow + RequestDispatcher rd = sc.getRequestDispatcher(returnURL); // $ Alert rd.forward(request, response); } } @@ -200,13 +200,13 @@ public class UrlForwardTest extends HttpServlet implements Filter { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String action = request.getParameter("action"); - String returnURL = request.getParameter("returnURL"); + String returnURL = request.getParameter("returnURL"); // $ Source if (action.equals("Login")) { RequestDispatcher rd = request.getRequestDispatcher("/Login.jsp"); rd.forward(request, response); } else { - RequestDispatcher rd = request.getRequestDispatcher(returnURL); // $ hasTaintFlow + RequestDispatcher rd = request.getRequestDispatcher(returnURL); // $ Alert rd.forward(request, response); } } @@ -229,11 +229,11 @@ public class UrlForwardTest extends HttpServlet implements Filter { // BAD: Request dispatcher without path traversal check protected void doHead1(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source // A sample payload "/pages/welcome.jsp/../WEB-INF/web.xml" can bypass the `startsWith` check if (path.startsWith(BASE_PATH)) { - request.getServletContext().getRequestDispatcher(path).include(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(path).include(request, response); // $ Alert } } @@ -241,10 +241,10 @@ public class UrlForwardTest extends HttpServlet implements Filter { // the user-supplied path; could bypass check with ".." encoded as "%2e%2e". protected void doHead2(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source if (path.startsWith(BASE_PATH) && !path.contains("..")) { - request.getServletContext().getRequestDispatcher(path).include(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(path).include(request, response); // $ Alert } } @@ -252,36 +252,36 @@ public class UrlForwardTest extends HttpServlet implements Filter { // does not decode before normalization. protected void doHead3(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source // Since not decoded before normalization, "%2e%2e" can remain in the path Path requestedPath = Paths.get(BASE_PATH).resolve(path).normalize(); if (requestedPath.startsWith(BASE_PATH)) { - request.getServletContext().getRequestDispatcher(requestedPath.toString()).forward(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(requestedPath.toString()).forward(request, response); // $ Alert } } // BAD: Request dispatcher with negation check and path normalization, but without URL decoding. protected void doHead4(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source // Since not decoded before normalization, "/%57EB-INF" can remain in the path and pass the `startsWith` check. Path requestedPath = Paths.get(BASE_PATH).resolve(path).normalize(); if (!requestedPath.startsWith("/WEB-INF") && !requestedPath.startsWith("/META-INF")) { - request.getServletContext().getRequestDispatcher(requestedPath.toString()).forward(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(requestedPath.toString()).forward(request, response); // $ Alert } } // BAD: Request dispatcher with path traversal check and single URL decoding; may be vulnerable to double-encoding protected void doHead5(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source path = URLDecoder.decode(path, "UTF-8"); if (!path.startsWith("/WEB-INF/") && !path.contains("..")) { - request.getServletContext().getRequestDispatcher(path).include(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(path).include(request, response); // $ Alert } } @@ -316,10 +316,10 @@ public class UrlForwardTest extends HttpServlet implements Filter { // BAD: Request dispatcher without URL decoding before WEB-INF and path traversal checks protected void doHead8(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source if (path.contains("%")){ // incorrect check if (!path.startsWith("/WEB-INF/") && !path.contains("..")) { - request.getServletContext().getRequestDispatcher(path).include(request, response); // $ hasTaintFlow + request.getServletContext().getRequestDispatcher(path).include(request, response); // $ Alert } } } @@ -352,7 +352,7 @@ public class UrlForwardTest extends HttpServlet implements Filter { // GOOD: Request dispatcher with path traversal check and URL decoding in a loop to avoid double-encoding bypass protected void doHead11(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String path = request.getParameter("path"); + String path = request.getParameter("path"); // $ Source // FP: we don't currently handle the scenario where the // `path.contains("%")` check is stored in a variable. boolean hasEncoding = path.contains("%"); @@ -362,14 +362,14 @@ public class UrlForwardTest extends HttpServlet implements Filter { } if (!path.startsWith("/WEB-INF/") && !path.contains("..")) { - request.getServletContext().getRequestDispatcher(path).include(request, response); // $ SPURIOUS: hasTaintFlow + request.getServletContext().getRequestDispatcher(path).include(request, response); // $ SPURIOUS: Alert } } // BAD: `StaplerResponse.forward` without any checks public void generateResponse(StaplerRequest req, StaplerResponse rsp, Object obj) throws IOException, ServletException { - String url = req.getParameter("target"); - rsp.forward(obj, url, req); // $ hasTaintFlow + String url = req.getParameter("target"); // $ Source + rsp.forward(obj, url, req); // $ Alert } // QHelp example @@ -381,7 +381,7 @@ public class UrlForwardTest extends HttpServlet implements Filter { ServletContext sc = cfg.getServletContext(); // BAD: a request parameter is incorporated without validation into a URL forward - sc.getRequestDispatcher(request.getParameter("target")).forward(request, response); // $ hasTaintFlow + sc.getRequestDispatcher(request.getParameter("target")).forward(request, response); // $ Alert // GOOD: the request parameter is validated against a known fixed string if (VALID_FORWARD.equals(request.getParameter("target"))) { diff --git a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.ql b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.ql deleted file mode 100644 index f7240bf0c30..00000000000 --- a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.UrlForwardQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.qlref b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.qlref new file mode 100644 index 00000000000..1e8912766b2 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-552/UrlForwardTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-552/UrlForward.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 162b1c51a9db15fa7d4c1a2ae792bb0eb1feb14e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 17:59:18 +0200 Subject: [PATCH 284/340] Java: convert XXE test to .qlref --- .../security/CWE-611/CdaUtilTests.java | 22 +- .../security/CWE-611/DigesterTests.java | 4 +- .../CWE-611/DocumentBuilderTests.java | 28 +- .../security/CWE-611/ParserHelperTests.java | 2 +- .../security/CWE-611/SAXBuilderTests.java | 4 +- .../security/CWE-611/SAXParserTests.java | 14 +- .../security/CWE-611/SAXReaderTests.java | 14 +- .../security/CWE-611/SAXSourceTests.java | 4 +- .../security/CWE-611/SchemaTests.java | 10 +- .../security/CWE-611/SimpleXMLTests.java | 68 +-- .../security/CWE-611/TransformerTests.java | 32 +- .../security/CWE-611/UnmarshallerTests.java | 2 +- .../security/CWE-611/ValidatorTests.java | 4 +- .../security/CWE-611/XMLDecoderTests.java | 4 +- .../security/CWE-611/XMLReaderTests.java | 16 +- .../CWE-611/XPathExpressionTests.java | 4 +- .../query-tests/security/CWE-611/XXE.expected | 428 ++++++++++++++++++ .../test/query-tests/security/CWE-611/XXE.ql | 4 - .../query-tests/security/CWE-611/XXE.qlref | 4 + .../CWE-611/XmlInputFactoryTests.java | 24 +- 20 files changed, 560 insertions(+), 132 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-611/XXE.ql create mode 100644 java/ql/test/query-tests/security/CWE-611/XXE.qlref diff --git a/java/ql/test/query-tests/security/CWE-611/CdaUtilTests.java b/java/ql/test/query-tests/security/CWE-611/CdaUtilTests.java index 6c19a842472..ca74ae93521 100644 --- a/java/ql/test/query-tests/security/CWE-611/CdaUtilTests.java +++ b/java/ql/test/query-tests/security/CWE-611/CdaUtilTests.java @@ -7,17 +7,17 @@ import org.xml.sax.InputSource; public class CdaUtilTests { public void test(Socket sock) throws Exception { - InputStream is = sock.getInputStream(); + InputStream is = sock.getInputStream(); // $ Source InputSource iSrc = new InputSource(new InputStreamReader(is)); - CDAUtil.load(is); // $ hasTaintFlow - CDAUtil.load(iSrc); // $ hasTaintFlow - CDAUtil.load(is, (CDAUtil.ValidationHandler) null); // $ hasTaintFlow - CDAUtil.load(is, (CDAUtil.LoadHandler) null); // $ hasTaintFlow - CDAUtil.load(null, null, is, null); // $ hasTaintFlow - CDAUtil.load(iSrc, (CDAUtil.ValidationHandler) null); // $ hasTaintFlow - CDAUtil.load(iSrc, (CDAUtil.LoadHandler) null); // $ hasTaintFlow - CDAUtil.load(null, null, iSrc, null); // $ hasTaintFlow - CDAUtil.loadAs(is, null); // $ hasTaintFlow - CDAUtil.loadAs(is, null, null); // $ hasTaintFlow + CDAUtil.load(is); // $ Alert + CDAUtil.load(iSrc); // $ Alert + CDAUtil.load(is, (CDAUtil.ValidationHandler) null); // $ Alert + CDAUtil.load(is, (CDAUtil.LoadHandler) null); // $ Alert + CDAUtil.load(null, null, is, null); // $ Alert + CDAUtil.load(iSrc, (CDAUtil.ValidationHandler) null); // $ Alert + CDAUtil.load(iSrc, (CDAUtil.LoadHandler) null); // $ Alert + CDAUtil.load(null, null, iSrc, null); // $ Alert + CDAUtil.loadAs(is, null); // $ Alert + CDAUtil.loadAs(is, null, null); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/DigesterTests.java b/java/ql/test/query-tests/security/CWE-611/DigesterTests.java index bace07a9b30..fbb3afbdd04 100644 --- a/java/ql/test/query-tests/security/CWE-611/DigesterTests.java +++ b/java/ql/test/query-tests/security/CWE-611/DigesterTests.java @@ -11,9 +11,9 @@ public class DigesterTests { @PostMapping(value = "bad") public void bad1(HttpServletRequest request, HttpServletResponse response) throws Exception { - ServletInputStream servletInputStream = request.getInputStream(); + ServletInputStream servletInputStream = request.getInputStream(); // $ Source Digester digester = new Digester(); - digester.parse(servletInputStream); // $ hasTaintFlow + digester.parse(servletInputStream); // $ Alert } @PostMapping(value = "good") diff --git a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java index 98d95686301..f6a8f94cbb0 100644 --- a/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/DocumentBuilderTests.java @@ -11,7 +11,7 @@ class DocumentBuilderTests { public void unconfiguredParse(Socket sock) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void disableDTD(Socket sock) throws Exception { @@ -25,7 +25,7 @@ class DocumentBuilderTests { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, true); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow -- secure-processing by itself is + builder.parse(sock.getInputStream()); // $ Alert -- secure-processing by itself is // insufficient } @@ -33,7 +33,7 @@ class DocumentBuilderTests { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", true); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow -- secure-processing by itself is + builder.parse(sock.getInputStream()); // $ Alert -- secure-processing by itself is // insufficient } @@ -41,14 +41,14 @@ class DocumentBuilderTests { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void disableSecurityFeature(Socket sock) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://javax.xml.XMLConstants/feature/secure-processing", false); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void disableExternalEntities(Socket sock) throws Exception { @@ -63,14 +63,14 @@ class DocumentBuilderTests { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void partialDisableExternalEntities2(Socket sock) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setFeature("http://xml.org/sax/features/external-general-entities", false); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void misConfigureExternalEntities1(Socket sock) throws Exception { @@ -78,7 +78,7 @@ class DocumentBuilderTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", true); factory.setFeature("http://xml.org/sax/features/external-general-entities", false); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void misConfigureExternalEntities2(Socket sock) throws Exception { @@ -86,22 +86,22 @@ class DocumentBuilderTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setFeature("http://xml.org/sax/features/external-general-entities", true); DocumentBuilder builder = factory.newDocumentBuilder(); - builder.parse(sock.getInputStream()); // $ hasTaintFlow + builder.parse(sock.getInputStream()); // $ Alert } public void taintedSAXInputSource1(Socket sock) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); - SAXSource source = new SAXSource(new InputSource(sock.getInputStream())); - builder.parse(source.getInputSource()); // $ hasTaintFlow + SAXSource source = new SAXSource(new InputSource(sock.getInputStream())); // $ Source + builder.parse(source.getInputSource()); // $ Alert } public void taintedSAXInputSource2(Socket sock) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); - StreamSource source = new StreamSource(sock.getInputStream()); - builder.parse(SAXSource.sourceToInputSource(source)); // $ hasTaintFlow - builder.parse(source.getInputStream()); // $ hasTaintFlow + StreamSource source = new StreamSource(sock.getInputStream()); // $ Source + builder.parse(SAXSource.sourceToInputSource(source)); // $ Alert + builder.parse(source.getInputStream()); // $ Alert } private static DocumentBuilderFactory getDocumentBuilderFactory() throws Exception { diff --git a/java/ql/test/query-tests/security/CWE-611/ParserHelperTests.java b/java/ql/test/query-tests/security/CWE-611/ParserHelperTests.java index 6b43c224d94..94aef644106 100644 --- a/java/ql/test/query-tests/security/CWE-611/ParserHelperTests.java +++ b/java/ql/test/query-tests/security/CWE-611/ParserHelperTests.java @@ -9,6 +9,6 @@ public class ParserHelperTests { @PostMapping(value = "bad4") public void bad4(HttpServletRequest request) throws Exception { - Document document = ParserHelper.loadDocument(request.getInputStream()); // $ hasTaintFlow + Document document = ParserHelper.loadDocument(request.getInputStream()); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/SAXBuilderTests.java b/java/ql/test/query-tests/security/CWE-611/SAXBuilderTests.java index 2b25540b85b..8458d7a5bc2 100644 --- a/java/ql/test/query-tests/security/CWE-611/SAXBuilderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SAXBuilderTests.java @@ -5,7 +5,7 @@ public class SAXBuilderTests { public void unconfiguredSAXBuilder(Socket sock) throws Exception { SAXBuilder builder = new SAXBuilder(); - builder.build(sock.getInputStream()); // $ hasTaintFlow + builder.build(sock.getInputStream()); // $ Alert } public void safeBuilder(Socket sock) throws Exception { @@ -17,6 +17,6 @@ public class SAXBuilderTests { public void misConfiguredBuilder(Socket sock) throws Exception { SAXBuilder builder = new SAXBuilder(); builder.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); - builder.build(sock.getInputStream()); // $ hasTaintFlow + builder.build(sock.getInputStream()); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/SAXParserTests.java b/java/ql/test/query-tests/security/CWE-611/SAXParserTests.java index a6de7709aed..f726fa36701 100644 --- a/java/ql/test/query-tests/security/CWE-611/SAXParserTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SAXParserTests.java @@ -10,7 +10,7 @@ public class SAXParserTests { public void unconfiguredParser(Socket sock) throws Exception { SAXParserFactory factory = SAXParserFactory.newInstance(); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void safeParser(Socket sock) throws Exception { @@ -27,7 +27,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-general-entities", false); factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void partialConfiguredParser2(Socket sock) throws Exception { @@ -35,7 +35,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void partialConfiguredParser3(Socket sock) throws Exception { @@ -43,7 +43,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-general-entities", false); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void misConfiguredParser1(Socket sock) throws Exception { @@ -52,7 +52,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void misConfiguredParser2(Socket sock) throws Exception { @@ -61,7 +61,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", true); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void misConfiguredParser3(Socket sock) throws Exception { @@ -70,7 +70,7 @@ public class SAXParserTests { factory.setFeature("http://xml.org/sax/features/external-parameter-entities", false); factory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", true); SAXParser parser = factory.newSAXParser(); - parser.parse(sock.getInputStream(), new DefaultHandler()); // $ hasTaintFlow + parser.parse(sock.getInputStream(), new DefaultHandler()); // $ Alert } public void safeParser2(Socket sock) throws Exception { diff --git a/java/ql/test/query-tests/security/CWE-611/SAXReaderTests.java b/java/ql/test/query-tests/security/CWE-611/SAXReaderTests.java index f436074f65f..c30a68c896e 100644 --- a/java/ql/test/query-tests/security/CWE-611/SAXReaderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SAXReaderTests.java @@ -5,7 +5,7 @@ public class SAXReaderTests { public void unconfiguredReader(Socket sock) throws Exception { SAXReader reader = new SAXReader(); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void safeReader(Socket sock) throws Exception { @@ -20,21 +20,21 @@ public class SAXReaderTests { SAXReader reader = new SAXReader(); reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void partialConfiguredReader2(Socket sock) throws Exception { SAXReader reader = new SAXReader(); reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void partialConfiguredReader3(Socket sock) throws Exception { SAXReader reader = new SAXReader(); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void misConfiguredReader1(Socket sock) throws Exception { @@ -42,7 +42,7 @@ public class SAXReaderTests { reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); reader.setFeature("http://xml.org/sax/features/external-general-entities", true); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void misConfiguredReader2(Socket sock) throws Exception { @@ -50,7 +50,7 @@ public class SAXReaderTests { reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } public void misConfiguredReader3(Socket sock) throws Exception { @@ -58,6 +58,6 @@ public class SAXReaderTests { reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", true); - reader.read(sock.getInputStream()); // $ hasTaintFlow + reader.read(sock.getInputStream()); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/SAXSourceTests.java b/java/ql/test/query-tests/security/CWE-611/SAXSourceTests.java index 721f596457d..1bb67b310c7 100644 --- a/java/ql/test/query-tests/security/CWE-611/SAXSourceTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SAXSourceTests.java @@ -14,10 +14,10 @@ public class SAXSourceTests { public void unsafeSource(Socket sock) throws Exception { XMLReader reader = XMLReaderFactory.createXMLReader(); - SAXSource source = new SAXSource(reader, new InputSource(sock.getInputStream())); + SAXSource source = new SAXSource(reader, new InputSource(sock.getInputStream())); // $ Source JAXBContext jc = JAXBContext.newInstance(Object.class); Unmarshaller um = jc.createUnmarshaller(); - um.unmarshal(source); // $ hasTaintFlow + um.unmarshal(source); // $ Alert } public void explicitlySafeSource1(Socket sock) throws Exception { diff --git a/java/ql/test/query-tests/security/CWE-611/SchemaTests.java b/java/ql/test/query-tests/security/CWE-611/SchemaTests.java index d98aeb4a3ba..9ed25136393 100644 --- a/java/ql/test/query-tests/security/CWE-611/SchemaTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SchemaTests.java @@ -9,7 +9,7 @@ public class SchemaTests { public void unconfiguredSchemaFactory(Socket sock) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); - Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ Alert } public void safeSchemaFactory(Socket sock) throws Exception { @@ -22,26 +22,26 @@ public class SchemaTests { public void partialConfiguredSchemaFactory1(Socket sock) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ Alert } public void partialConfiguredSchemaFactory2(Socket sock) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); - Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredSchemaFactory1(Socket sock) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, ""); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, "ab"); - Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredSchemaFactory2(Socket sock) throws Exception { SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_DTD, "cd"); factory.setProperty(XMLConstants.ACCESS_EXTERNAL_SCHEMA, ""); - Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + Schema schema = factory.newSchema(new StreamSource(sock.getInputStream())); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/SimpleXMLTests.java b/java/ql/test/query-tests/security/CWE-611/SimpleXMLTests.java index 65c759acbf4..d28ec2ca66d 100644 --- a/java/ql/test/query-tests/security/CWE-611/SimpleXMLTests.java +++ b/java/ql/test/query-tests/security/CWE-611/SimpleXMLTests.java @@ -11,145 +11,145 @@ public class SimpleXMLTests { public void persisterValidate1(Socket sock) throws Exception { Persister persister = new Persister(); - persister.validate(this.getClass(), sock.getInputStream()); // $ hasTaintFlow + persister.validate(this.getClass(), sock.getInputStream()); // $ Alert } public void persisterValidate2(Socket sock) throws Exception { Persister persister = new Persister(); - persister.validate(this.getClass(), sock.getInputStream(), true); // $ hasTaintFlow + persister.validate(this.getClass(), sock.getInputStream(), true); // $ Alert } public void persisterValidate3(Socket sock) throws Exception { Persister persister = new Persister(); - persister.validate(this.getClass(), new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + persister.validate(this.getClass(), new InputStreamReader(sock.getInputStream())); // $ Alert } public void persisterValidate4(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.validate(this.getClass(), new String(b)); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.validate(this.getClass(), new String(b)); // $ Alert } public void persisterValidate5(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.validate(this.getClass(), new String(b), true); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.validate(this.getClass(), new String(b), true); // $ Alert } public void persisterValidate6(Socket sock) throws Exception { Persister persister = new Persister(); - persister.validate(this.getClass(), new InputStreamReader(sock.getInputStream()), true); // $ hasTaintFlow + persister.validate(this.getClass(), new InputStreamReader(sock.getInputStream()), true); // $ Alert } public void persisterRead1(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this.getClass(), sock.getInputStream()); // $ hasTaintFlow + persister.read(this.getClass(), sock.getInputStream()); // $ Alert } public void persisterRead2(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this.getClass(), sock.getInputStream(), true); // $ hasTaintFlow + persister.read(this.getClass(), sock.getInputStream(), true); // $ Alert } public void persisterRead3(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this, sock.getInputStream()); // $ hasTaintFlow + persister.read(this, sock.getInputStream()); // $ Alert } public void persisterRead4(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this, sock.getInputStream(), true); // $ hasTaintFlow + persister.read(this, sock.getInputStream(), true); // $ Alert } public void persisterRead5(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this.getClass(), new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + persister.read(this.getClass(), new InputStreamReader(sock.getInputStream())); // $ Alert } public void persisterRead6(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this.getClass(), new InputStreamReader(sock.getInputStream()), true); // $ hasTaintFlow + persister.read(this.getClass(), new InputStreamReader(sock.getInputStream()), true); // $ Alert } public void persisterRead7(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this, new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + persister.read(this, new InputStreamReader(sock.getInputStream())); // $ Alert } public void persisterRead8(Socket sock) throws Exception { Persister persister = new Persister(); - persister.read(this, new InputStreamReader(sock.getInputStream()), true); // $ hasTaintFlow + persister.read(this, new InputStreamReader(sock.getInputStream()), true); // $ Alert } public void persisterRead9(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.read(this.getClass(), new String(b)); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.read(this.getClass(), new String(b)); // $ Alert } public void persisterRead10(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.read(this.getClass(), new String(b), true); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.read(this.getClass(), new String(b), true); // $ Alert } public void persisterRead11(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.read(this, new String(b)); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.read(this, new String(b)); // $ Alert } public void persisterRead12(Socket sock) throws Exception { Persister persister = new Persister(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - persister.read(this, new String(b), true); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + persister.read(this, new String(b), true); // $ Alert } public void nodeBuilderRead1(Socket sock) throws Exception { - NodeBuilder.read(sock.getInputStream()); // $ hasTaintFlow + NodeBuilder.read(sock.getInputStream()); // $ Alert } public void nodeBuilderRead2(Socket sock) throws Exception { - NodeBuilder.read(new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + NodeBuilder.read(new InputStreamReader(sock.getInputStream())); // $ Alert } public void documentProviderProvide1(Socket sock) throws Exception { DocumentProvider provider = new DocumentProvider(); - provider.provide(sock.getInputStream()); // $ hasTaintFlow + provider.provide(sock.getInputStream()); // $ Alert } public void documentProviderProvide2(Socket sock) throws Exception { DocumentProvider provider = new DocumentProvider(); - provider.provide(new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + provider.provide(new InputStreamReader(sock.getInputStream())); // $ Alert } public void streamProviderProvide1(Socket sock) throws Exception { StreamProvider provider = new StreamProvider(); - provider.provide(sock.getInputStream()); // $ hasTaintFlow + provider.provide(sock.getInputStream()); // $ Alert } public void streamProviderProvide2(Socket sock) throws Exception { StreamProvider provider = new StreamProvider(); - provider.provide(new InputStreamReader(sock.getInputStream())); // $ hasTaintFlow + provider.provide(new InputStreamReader(sock.getInputStream())); // $ Alert } public void formatterFormat1(Socket sock) throws Exception { Formatter formatter = new Formatter(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - formatter.format(new String(b), null); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + formatter.format(new String(b), null); // $ Alert } public void formatterFormat2(Socket sock) throws Exception { Formatter formatter = new Formatter(); byte[] b = new byte[] {}; - sock.getInputStream().read(b); - formatter.format(new String(b)); // $ hasTaintFlow + sock.getInputStream().read(b); // $ Source + formatter.format(new String(b)); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/TransformerTests.java b/java/ql/test/query-tests/security/CWE-611/TransformerTests.java index afba1790f0c..2ad0a29b358 100644 --- a/java/ql/test/query-tests/security/CWE-611/TransformerTests.java +++ b/java/ql/test/query-tests/security/CWE-611/TransformerTests.java @@ -17,8 +17,8 @@ public class TransformerTests { public void unconfiguredTransformerFactory(Socket sock) throws Exception { TransformerFactory tf = TransformerFactory.newInstance(); Transformer transformer = tf.newTransformer(); - transformer.transform(new StreamSource(sock.getInputStream()), null); // $ hasTaintFlow - tf.newTransformer(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + transformer.transform(new StreamSource(sock.getInputStream()), null); // $ Alert + tf.newTransformer(new StreamSource(sock.getInputStream())); // $ Alert } public void safeTransformerFactory1(Socket sock) throws Exception { @@ -68,16 +68,16 @@ public class TransformerTests { TransformerFactory tf = TransformerFactory.newInstance(); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); Transformer transformer = tf.newTransformer(); - transformer.transform(new StreamSource(sock.getInputStream()), null); // $ hasTaintFlow - tf.newTransformer(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + transformer.transform(new StreamSource(sock.getInputStream()), null); // $ Alert + tf.newTransformer(new StreamSource(sock.getInputStream())); // $ Alert } public void partialConfiguredTransformerFactory2(Socket sock) throws Exception { TransformerFactory tf = TransformerFactory.newInstance(); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); Transformer transformer = tf.newTransformer(); - transformer.transform(new StreamSource(sock.getInputStream()), null); // $ hasTaintFlow - tf.newTransformer(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + transformer.transform(new StreamSource(sock.getInputStream()), null); // $ Alert + tf.newTransformer(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredTransformerFactory1(Socket sock) throws Exception { @@ -85,8 +85,8 @@ public class TransformerTests { Transformer transformer = tf.newTransformer(); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "ab"); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); - transformer.transform(new StreamSource(sock.getInputStream()), null); // $ hasTaintFlow - tf.newTransformer(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + transformer.transform(new StreamSource(sock.getInputStream()), null); // $ Alert + tf.newTransformer(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredTransformerFactory2(Socket sock) throws Exception { @@ -94,13 +94,13 @@ public class TransformerTests { Transformer transformer = tf.newTransformer(); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); tf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "cd"); - transformer.transform(new StreamSource(sock.getInputStream()), null); // $ hasTaintFlow - tf.newTransformer(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + transformer.transform(new StreamSource(sock.getInputStream()), null); // $ Alert + tf.newTransformer(new StreamSource(sock.getInputStream())); // $ Alert } public void unconfiguredSAXTransformerFactory(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ Alert } public void safeSAXTransformerFactory(Socket sock) throws Exception { @@ -113,31 +113,31 @@ public class TransformerTests { public void partialConfiguredSAXTransformerFactory1(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); - sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ Alert } public void partialConfiguredSAXTransformerFactory2(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); - sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredSAXTransformerFactory1(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, "ab"); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, ""); - sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ Alert } public void misConfiguredSAXTransformerFactory2(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_DTD, ""); sf.setAttribute(XMLConstants.ACCESS_EXTERNAL_STYLESHEET, "cd"); - sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ hasTaintFlow + sf.newXMLFilter(new StreamSource(sock.getInputStream())); // $ Alert } public void taintedSAXSource(Socket sock) throws Exception { SAXTransformerFactory sf = (SAXTransformerFactory) SAXTransformerFactory.newInstance(); - sf.newXMLFilter(new SAXSource(new InputSource(sock.getInputStream()))); // $ hasTaintFlow + sf.newXMLFilter(new SAXSource(new InputSource(sock.getInputStream()))); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/UnmarshallerTests.java b/java/ql/test/query-tests/security/CWE-611/UnmarshallerTests.java index 54efa567aa3..7516c08c7d3 100644 --- a/java/ql/test/query-tests/security/CWE-611/UnmarshallerTests.java +++ b/java/ql/test/query-tests/security/CWE-611/UnmarshallerTests.java @@ -26,6 +26,6 @@ public class UnmarshallerTests { SAXParserFactory spf = SAXParserFactory.newInstance(); JAXBContext jc = JAXBContext.newInstance(Object.class); Unmarshaller um = jc.createUnmarshaller(); - um.unmarshal(sock.getInputStream()); // $ hasTaintFlow + um.unmarshal(sock.getInputStream()); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/ValidatorTests.java b/java/ql/test/query-tests/security/CWE-611/ValidatorTests.java index 091be21676a..1464b9c5fc6 100644 --- a/java/ql/test/query-tests/security/CWE-611/ValidatorTests.java +++ b/java/ql/test/query-tests/security/CWE-611/ValidatorTests.java @@ -14,12 +14,12 @@ public class ValidatorTests { @PostMapping(value = "bad") public void bad2(HttpServletRequest request) throws Exception { - ServletInputStream servletInputStream = request.getInputStream(); + ServletInputStream servletInputStream = request.getInputStream(); // $ Source SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema"); Schema schema = factory.newSchema(); Validator validator = schema.newValidator(); StreamSource source = new StreamSource(servletInputStream); - validator.validate(source); // $ hasTaintFlow + validator.validate(source); // $ Alert } @PostMapping(value = "good") diff --git a/java/ql/test/query-tests/security/CWE-611/XMLDecoderTests.java b/java/ql/test/query-tests/security/CWE-611/XMLDecoderTests.java index 8e75ebc1401..a9ced49512e 100644 --- a/java/ql/test/query-tests/security/CWE-611/XMLDecoderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/XMLDecoderTests.java @@ -13,9 +13,9 @@ public class XMLDecoderTests { @PostMapping(value = "bad") public void bad3(HttpServletRequest request) throws Exception { - ServletInputStream servletInputStream = request.getInputStream(); + ServletInputStream servletInputStream = request.getInputStream(); // $ Source XMLDecoder xmlDecoder = new XMLDecoder(servletInputStream); - xmlDecoder.readObject(); // $ hasTaintFlow + xmlDecoder.readObject(); // $ Alert } @PostMapping(value = "good") diff --git a/java/ql/test/query-tests/security/CWE-611/XMLReaderTests.java b/java/ql/test/query-tests/security/CWE-611/XMLReaderTests.java index 15536b766b7..7cc09df7763 100644 --- a/java/ql/test/query-tests/security/CWE-611/XMLReaderTests.java +++ b/java/ql/test/query-tests/security/CWE-611/XMLReaderTests.java @@ -13,7 +13,7 @@ public class XMLReaderTests { public void unconfiguredReader(Socket sock) throws Exception { XMLReader reader = XMLReaderFactory.createXMLReader(); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void safeReaderFromConfig1(Socket sock) throws Exception { @@ -53,21 +53,21 @@ public class XMLReaderTests { XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void partialConfiguredXMLReader2(Socket sock) throws Exception { XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void partilaConfiguredXMLReader3(Socket sock) throws Exception { XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void misConfiguredXMLReader1(Socket sock) throws Exception { @@ -75,7 +75,7 @@ public class XMLReaderTests { reader.setFeature("http://xml.org/sax/features/external-general-entities", true); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void misConfiguredXMLReader2(Socket sock) throws Exception { @@ -83,7 +83,7 @@ public class XMLReaderTests { reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", true); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void misConfiguredXMLReader3(Socket sock) throws Exception { @@ -91,12 +91,12 @@ public class XMLReaderTests { reader.setFeature("http://xml.org/sax/features/external-general-entities", false); reader.setFeature("http://xml.org/sax/features/external-parameter-entities", false); reader.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", true); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } public void misConfiguredXMLReader4(Socket sock) throws Exception { XMLReader reader = XMLReaderFactory.createXMLReader(); reader.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false); - reader.parse(new InputSource(sock.getInputStream())); // $ hasTaintFlow + reader.parse(new InputSource(sock.getInputStream())); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/XPathExpressionTests.java b/java/ql/test/query-tests/security/CWE-611/XPathExpressionTests.java index 088fdb9afd6..646222545d7 100644 --- a/java/ql/test/query-tests/security/CWE-611/XPathExpressionTests.java +++ b/java/ql/test/query-tests/security/CWE-611/XPathExpressionTests.java @@ -24,7 +24,7 @@ public class XPathExpressionTests { XPathFactory xFactory = XPathFactory.newInstance(); XPath path = xFactory.newXPath(); XPathExpression expr = path.compile(""); - expr.evaluate(new InputSource(sock.getInputStream())); // $ hasTaintFlow + expr.evaluate(new InputSource(sock.getInputStream())); // $ Alert } public void safeXPathEvaluateTest(Socket sock) throws Exception { @@ -39,6 +39,6 @@ public class XPathExpressionTests { public void unsafeXPathEvaluateTest(Socket sock) throws Exception { XPathFactory xFactory = XPathFactory.newInstance(); XPath path = xFactory.newXPath(); - path.evaluate("", new InputSource(sock.getInputStream())); // $ hasTaintFlow + path.evaluate("", new InputSource(sock.getInputStream())); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-611/XXE.expected b/java/ql/test/query-tests/security/CWE-611/XXE.expected index e69de29bb2d..463ea4ec872 100644 --- a/java/ql/test/query-tests/security/CWE-611/XXE.expected +++ b/java/ql/test/query-tests/security/CWE-611/XXE.expected @@ -0,0 +1,428 @@ +#select +| CdaUtilTests.java:12:22:12:23 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:12:22:12:23 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:13:22:13:25 | iSrc | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:13:22:13:25 | iSrc | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:14:22:14:23 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:14:22:14:23 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:15:22:15:23 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:15:22:15:23 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:16:34:16:35 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:16:34:16:35 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:17:22:17:25 | iSrc | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:17:22:17:25 | iSrc | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:18:22:18:25 | iSrc | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:18:22:18:25 | iSrc | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:19:34:19:37 | iSrc | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:19:34:19:37 | iSrc | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:20:24:20:25 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:20:24:20:25 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| CdaUtilTests.java:21:24:21:25 | is | CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:21:24:21:25 | is | XML parsing depends on a $@ without guarding against external entity expansion. | CdaUtilTests.java:10:26:10:46 | getInputStream(...) | user-provided value | +| DigesterTests.java:16:24:16:41 | servletInputStream | DigesterTests.java:14:49:14:72 | getInputStream(...) : ServletInputStream | DigesterTests.java:16:24:16:41 | servletInputStream | XML parsing depends on a $@ without guarding against external entity expansion. | DigesterTests.java:14:49:14:72 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:14:19:14:39 | getInputStream(...) | DocumentBuilderTests.java:14:19:14:39 | getInputStream(...) | DocumentBuilderTests.java:14:19:14:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:14:19:14:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:28:19:28:39 | getInputStream(...) | DocumentBuilderTests.java:28:19:28:39 | getInputStream(...) | DocumentBuilderTests.java:28:19:28:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:28:19:28:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:36:19:36:39 | getInputStream(...) | DocumentBuilderTests.java:36:19:36:39 | getInputStream(...) | DocumentBuilderTests.java:36:19:36:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:36:19:36:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:44:19:44:39 | getInputStream(...) | DocumentBuilderTests.java:44:19:44:39 | getInputStream(...) | DocumentBuilderTests.java:44:19:44:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:44:19:44:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:51:19:51:39 | getInputStream(...) | DocumentBuilderTests.java:51:19:51:39 | getInputStream(...) | DocumentBuilderTests.java:51:19:51:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:51:19:51:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:66:19:66:39 | getInputStream(...) | DocumentBuilderTests.java:66:19:66:39 | getInputStream(...) | DocumentBuilderTests.java:66:19:66:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:66:19:66:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:73:19:73:39 | getInputStream(...) | DocumentBuilderTests.java:73:19:73:39 | getInputStream(...) | DocumentBuilderTests.java:73:19:73:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:73:19:73:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:81:19:81:39 | getInputStream(...) | DocumentBuilderTests.java:81:19:81:39 | getInputStream(...) | DocumentBuilderTests.java:81:19:81:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:81:19:81:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:89:19:89:39 | getInputStream(...) | DocumentBuilderTests.java:89:19:89:39 | getInputStream(...) | DocumentBuilderTests.java:89:19:89:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:89:19:89:39 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) : InputStream | DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) | user-provided value | +| DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) | user-provided value | +| ParserHelperTests.java:12:55:12:78 | getInputStream(...) | ParserHelperTests.java:12:55:12:78 | getInputStream(...) | ParserHelperTests.java:12:55:12:78 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | ParserHelperTests.java:12:55:12:78 | getInputStream(...) | user-provided value | +| SAXBuilderTests.java:8:19:8:39 | getInputStream(...) | SAXBuilderTests.java:8:19:8:39 | getInputStream(...) | SAXBuilderTests.java:8:19:8:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXBuilderTests.java:8:19:8:39 | getInputStream(...) | user-provided value | +| SAXBuilderTests.java:20:19:20:39 | getInputStream(...) | SAXBuilderTests.java:20:19:20:39 | getInputStream(...) | SAXBuilderTests.java:20:19:20:39 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXBuilderTests.java:20:19:20:39 | getInputStream(...) | user-provided value | +| SAXParserTests.java:13:18:13:38 | getInputStream(...) | SAXParserTests.java:13:18:13:38 | getInputStream(...) | SAXParserTests.java:13:18:13:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:13:18:13:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:30:18:30:38 | getInputStream(...) | SAXParserTests.java:30:18:30:38 | getInputStream(...) | SAXParserTests.java:30:18:30:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:30:18:30:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:38:18:38:38 | getInputStream(...) | SAXParserTests.java:38:18:38:38 | getInputStream(...) | SAXParserTests.java:38:18:38:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:38:18:38:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:46:18:46:38 | getInputStream(...) | SAXParserTests.java:46:18:46:38 | getInputStream(...) | SAXParserTests.java:46:18:46:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:46:18:46:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:55:18:55:38 | getInputStream(...) | SAXParserTests.java:55:18:55:38 | getInputStream(...) | SAXParserTests.java:55:18:55:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:55:18:55:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:64:18:64:38 | getInputStream(...) | SAXParserTests.java:64:18:64:38 | getInputStream(...) | SAXParserTests.java:64:18:64:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:64:18:64:38 | getInputStream(...) | user-provided value | +| SAXParserTests.java:73:18:73:38 | getInputStream(...) | SAXParserTests.java:73:18:73:38 | getInputStream(...) | SAXParserTests.java:73:18:73:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXParserTests.java:73:18:73:38 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:8:17:8:37 | getInputStream(...) | SAXReaderTests.java:8:17:8:37 | getInputStream(...) | SAXReaderTests.java:8:17:8:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:8:17:8:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:23:17:23:37 | getInputStream(...) | SAXReaderTests.java:23:17:23:37 | getInputStream(...) | SAXReaderTests.java:23:17:23:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:23:17:23:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:30:17:30:37 | getInputStream(...) | SAXReaderTests.java:30:17:30:37 | getInputStream(...) | SAXReaderTests.java:30:17:30:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:30:17:30:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:37:17:37:37 | getInputStream(...) | SAXReaderTests.java:37:17:37:37 | getInputStream(...) | SAXReaderTests.java:37:17:37:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:37:17:37:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:45:17:45:37 | getInputStream(...) | SAXReaderTests.java:45:17:45:37 | getInputStream(...) | SAXReaderTests.java:45:17:45:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:45:17:45:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:53:17:53:37 | getInputStream(...) | SAXReaderTests.java:53:17:53:37 | getInputStream(...) | SAXReaderTests.java:53:17:53:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:53:17:53:37 | getInputStream(...) | user-provided value | +| SAXReaderTests.java:61:17:61:37 | getInputStream(...) | SAXReaderTests.java:61:17:61:37 | getInputStream(...) | SAXReaderTests.java:61:17:61:37 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SAXReaderTests.java:61:17:61:37 | getInputStream(...) | user-provided value | +| SAXSourceTests.java:20:18:20:23 | source | SAXSourceTests.java:17:62:17:82 | getInputStream(...) : InputStream | SAXSourceTests.java:20:18:20:23 | source | XML parsing depends on a $@ without guarding against external entity expansion. | SAXSourceTests.java:17:62:17:82 | getInputStream(...) | user-provided value | +| SchemaTests.java:12:39:12:77 | new StreamSource(...) | SchemaTests.java:12:56:12:76 | getInputStream(...) : InputStream | SchemaTests.java:12:39:12:77 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SchemaTests.java:12:56:12:76 | getInputStream(...) | user-provided value | +| SchemaTests.java:25:39:25:77 | new StreamSource(...) | SchemaTests.java:25:56:25:76 | getInputStream(...) : InputStream | SchemaTests.java:25:39:25:77 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SchemaTests.java:25:56:25:76 | getInputStream(...) | user-provided value | +| SchemaTests.java:31:39:31:77 | new StreamSource(...) | SchemaTests.java:31:56:31:76 | getInputStream(...) : InputStream | SchemaTests.java:31:39:31:77 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SchemaTests.java:31:56:31:76 | getInputStream(...) | user-provided value | +| SchemaTests.java:38:39:38:77 | new StreamSource(...) | SchemaTests.java:38:56:38:76 | getInputStream(...) : InputStream | SchemaTests.java:38:39:38:77 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SchemaTests.java:38:56:38:76 | getInputStream(...) | user-provided value | +| SchemaTests.java:45:39:45:77 | new StreamSource(...) | SchemaTests.java:45:56:45:76 | getInputStream(...) : InputStream | SchemaTests.java:45:39:45:77 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SchemaTests.java:45:56:45:76 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:14:41:14:61 | getInputStream(...) | SimpleXMLTests.java:14:41:14:61 | getInputStream(...) | SimpleXMLTests.java:14:41:14:61 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:14:41:14:61 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:19:41:19:61 | getInputStream(...) | SimpleXMLTests.java:19:41:19:61 | getInputStream(...) | SimpleXMLTests.java:19:41:19:61 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:19:41:19:61 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | SimpleXMLTests.java:24:63:24:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:24:63:24:83 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:31:41:31:53 | new String(...) | SimpleXMLTests.java:30:5:30:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:31:41:31:53 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:30:5:30:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:38:41:38:53 | new String(...) | SimpleXMLTests.java:37:5:37:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:38:41:38:53 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:37:5:37:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | SimpleXMLTests.java:43:63:43:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:43:63:43:83 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:48:37:48:57 | getInputStream(...) | SimpleXMLTests.java:48:37:48:57 | getInputStream(...) | SimpleXMLTests.java:48:37:48:57 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:48:37:48:57 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:53:37:53:57 | getInputStream(...) | SimpleXMLTests.java:53:37:53:57 | getInputStream(...) | SimpleXMLTests.java:53:37:53:57 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:53:37:53:57 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:58:26:58:46 | getInputStream(...) | SimpleXMLTests.java:58:26:58:46 | getInputStream(...) | SimpleXMLTests.java:58:26:58:46 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:58:26:58:46 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:63:26:63:46 | getInputStream(...) | SimpleXMLTests.java:63:26:63:46 | getInputStream(...) | SimpleXMLTests.java:63:26:63:46 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:63:26:63:46 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | SimpleXMLTests.java:68:59:68:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:68:59:68:79 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | SimpleXMLTests.java:73:59:73:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:73:59:73:79 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | SimpleXMLTests.java:78:48:78:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:78:48:78:68 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | SimpleXMLTests.java:83:48:83:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:83:48:83:68 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:90:37:90:49 | new String(...) | SimpleXMLTests.java:89:5:89:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:90:37:90:49 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:89:5:89:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:97:37:97:49 | new String(...) | SimpleXMLTests.java:96:5:96:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:97:37:97:49 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:96:5:96:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:104:26:104:38 | new String(...) | SimpleXMLTests.java:103:5:103:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:104:26:104:38 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:103:5:103:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:111:26:111:38 | new String(...) | SimpleXMLTests.java:110:5:110:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:111:26:111:38 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:110:5:110:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:115:22:115:42 | getInputStream(...) | SimpleXMLTests.java:115:22:115:42 | getInputStream(...) | SimpleXMLTests.java:115:22:115:42 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:115:22:115:42 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | SimpleXMLTests.java:119:44:119:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:119:44:119:64 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:124:22:124:42 | getInputStream(...) | SimpleXMLTests.java:124:22:124:42 | getInputStream(...) | SimpleXMLTests.java:124:22:124:42 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:124:22:124:42 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | SimpleXMLTests.java:129:44:129:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:129:44:129:64 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:134:22:134:42 | getInputStream(...) | SimpleXMLTests.java:134:22:134:42 | getInputStream(...) | SimpleXMLTests.java:134:22:134:42 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:134:22:134:42 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | SimpleXMLTests.java:139:44:139:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:139:44:139:64 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:146:22:146:34 | new String(...) | SimpleXMLTests.java:145:5:145:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:146:22:146:34 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:145:5:145:25 | getInputStream(...) | user-provided value | +| SimpleXMLTests.java:153:22:153:34 | new String(...) | SimpleXMLTests.java:152:5:152:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:153:22:153:34 | new String(...) | XML parsing depends on a $@ without guarding against external entity expansion. | SimpleXMLTests.java:152:5:152:25 | getInputStream(...) | user-provided value | +| TransformerTests.java:20:27:20:65 | new StreamSource(...) | TransformerTests.java:20:44:20:64 | getInputStream(...) : InputStream | TransformerTests.java:20:27:20:65 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:20:44:20:64 | getInputStream(...) | user-provided value | +| TransformerTests.java:21:23:21:61 | new StreamSource(...) | TransformerTests.java:21:40:21:60 | getInputStream(...) : InputStream | TransformerTests.java:21:23:21:61 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:21:40:21:60 | getInputStream(...) | user-provided value | +| TransformerTests.java:71:27:71:65 | new StreamSource(...) | TransformerTests.java:71:44:71:64 | getInputStream(...) : InputStream | TransformerTests.java:71:27:71:65 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:71:44:71:64 | getInputStream(...) | user-provided value | +| TransformerTests.java:72:23:72:61 | new StreamSource(...) | TransformerTests.java:72:40:72:60 | getInputStream(...) : InputStream | TransformerTests.java:72:23:72:61 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:72:40:72:60 | getInputStream(...) | user-provided value | +| TransformerTests.java:79:27:79:65 | new StreamSource(...) | TransformerTests.java:79:44:79:64 | getInputStream(...) : InputStream | TransformerTests.java:79:27:79:65 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:79:44:79:64 | getInputStream(...) | user-provided value | +| TransformerTests.java:80:23:80:61 | new StreamSource(...) | TransformerTests.java:80:40:80:60 | getInputStream(...) : InputStream | TransformerTests.java:80:23:80:61 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:80:40:80:60 | getInputStream(...) | user-provided value | +| TransformerTests.java:88:27:88:65 | new StreamSource(...) | TransformerTests.java:88:44:88:64 | getInputStream(...) : InputStream | TransformerTests.java:88:27:88:65 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:88:44:88:64 | getInputStream(...) | user-provided value | +| TransformerTests.java:89:23:89:61 | new StreamSource(...) | TransformerTests.java:89:40:89:60 | getInputStream(...) : InputStream | TransformerTests.java:89:23:89:61 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:89:40:89:60 | getInputStream(...) | user-provided value | +| TransformerTests.java:97:27:97:65 | new StreamSource(...) | TransformerTests.java:97:44:97:64 | getInputStream(...) : InputStream | TransformerTests.java:97:27:97:65 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:97:44:97:64 | getInputStream(...) | user-provided value | +| TransformerTests.java:98:23:98:61 | new StreamSource(...) | TransformerTests.java:98:40:98:60 | getInputStream(...) : InputStream | TransformerTests.java:98:23:98:61 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:98:40:98:60 | getInputStream(...) | user-provided value | +| TransformerTests.java:103:21:103:59 | new StreamSource(...) | TransformerTests.java:103:38:103:58 | getInputStream(...) : InputStream | TransformerTests.java:103:21:103:59 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:103:38:103:58 | getInputStream(...) | user-provided value | +| TransformerTests.java:116:21:116:59 | new StreamSource(...) | TransformerTests.java:116:38:116:58 | getInputStream(...) : InputStream | TransformerTests.java:116:21:116:59 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:116:38:116:58 | getInputStream(...) | user-provided value | +| TransformerTests.java:122:21:122:59 | new StreamSource(...) | TransformerTests.java:122:38:122:58 | getInputStream(...) : InputStream | TransformerTests.java:122:21:122:59 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:122:38:122:58 | getInputStream(...) | user-provided value | +| TransformerTests.java:129:21:129:59 | new StreamSource(...) | TransformerTests.java:129:38:129:58 | getInputStream(...) : InputStream | TransformerTests.java:129:21:129:59 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:129:38:129:58 | getInputStream(...) | user-provided value | +| TransformerTests.java:136:21:136:59 | new StreamSource(...) | TransformerTests.java:136:38:136:58 | getInputStream(...) : InputStream | TransformerTests.java:136:21:136:59 | new StreamSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:136:38:136:58 | getInputStream(...) | user-provided value | +| TransformerTests.java:141:21:141:73 | new SAXSource(...) | TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:21:141:73 | new SAXSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | TransformerTests.java:141:51:141:71 | getInputStream(...) | user-provided value | +| UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | user-provided value | +| ValidatorTests.java:22:28:22:33 | source | ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:22:28:22:33 | source | XML parsing depends on a $@ without guarding against external entity expansion. | ValidatorTests.java:17:49:17:72 | getInputStream(...) | user-provided value | +| XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | XML parsing depends on a $@ without guarding against external entity expansion. | XMLDecoderTests.java:16:49:16:72 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:16:34:16:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:56:34:56:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:63:18:63:55 | new InputSource(...) | XMLReaderTests.java:63:34:63:54 | getInputStream(...) : InputStream | XMLReaderTests.java:63:18:63:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:63:34:63:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:70:18:70:55 | new InputSource(...) | XMLReaderTests.java:70:34:70:54 | getInputStream(...) : InputStream | XMLReaderTests.java:70:18:70:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:70:34:70:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:78:18:78:55 | new InputSource(...) | XMLReaderTests.java:78:34:78:54 | getInputStream(...) : InputStream | XMLReaderTests.java:78:18:78:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:78:34:78:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:86:18:86:55 | new InputSource(...) | XMLReaderTests.java:86:34:86:54 | getInputStream(...) : InputStream | XMLReaderTests.java:86:18:86:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:86:34:86:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:94:18:94:55 | new InputSource(...) | XMLReaderTests.java:94:34:94:54 | getInputStream(...) : InputStream | XMLReaderTests.java:94:18:94:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:94:34:94:54 | getInputStream(...) | user-provided value | +| XMLReaderTests.java:100:18:100:55 | new InputSource(...) | XMLReaderTests.java:100:34:100:54 | getInputStream(...) : InputStream | XMLReaderTests.java:100:18:100:55 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XMLReaderTests.java:100:34:100:54 | getInputStream(...) | user-provided value | +| XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | XPathExpressionTests.java:27:35:27:55 | getInputStream(...) : InputStream | XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XPathExpressionTests.java:27:35:27:55 | getInputStream(...) | user-provided value | +| XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | XPathExpressionTests.java:42:39:42:59 | getInputStream(...) : InputStream | XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XPathExpressionTests.java:42:39:42:59 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:9:35:9:55 | getInputStream(...) | XmlInputFactoryTests.java:9:35:9:55 | getInputStream(...) | XmlInputFactoryTests.java:9:35:9:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:9:35:9:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:10:34:10:54 | getInputStream(...) | XmlInputFactoryTests.java:10:34:10:54 | getInputStream(...) | XmlInputFactoryTests.java:10:34:10:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:10:34:10:54 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:24:35:24:55 | getInputStream(...) | XmlInputFactoryTests.java:24:35:24:55 | getInputStream(...) | XmlInputFactoryTests.java:24:35:24:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:24:35:24:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:25:34:25:54 | getInputStream(...) | XmlInputFactoryTests.java:25:34:25:54 | getInputStream(...) | XmlInputFactoryTests.java:25:34:25:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:25:34:25:54 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:31:35:31:55 | getInputStream(...) | XmlInputFactoryTests.java:31:35:31:55 | getInputStream(...) | XmlInputFactoryTests.java:31:35:31:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:31:35:31:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:32:34:32:54 | getInputStream(...) | XmlInputFactoryTests.java:32:34:32:54 | getInputStream(...) | XmlInputFactoryTests.java:32:34:32:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:32:34:32:54 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:39:35:39:55 | getInputStream(...) | XmlInputFactoryTests.java:39:35:39:55 | getInputStream(...) | XmlInputFactoryTests.java:39:35:39:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:39:35:39:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:40:34:40:54 | getInputStream(...) | XmlInputFactoryTests.java:40:34:40:54 | getInputStream(...) | XmlInputFactoryTests.java:40:34:40:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:40:34:40:54 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:47:35:47:55 | getInputStream(...) | XmlInputFactoryTests.java:47:35:47:55 | getInputStream(...) | XmlInputFactoryTests.java:47:35:47:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:47:35:47:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:48:34:48:54 | getInputStream(...) | XmlInputFactoryTests.java:48:34:48:54 | getInputStream(...) | XmlInputFactoryTests.java:48:34:48:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:48:34:48:54 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | user-provided value | +| XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | XML parsing depends on a $@ without guarding against external entity expansion. | XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | user-provided value | +edges +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:11:66:11:67 | is : InputStream | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:12:22:12:23 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:14:22:14:23 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:15:22:15:23 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:16:34:16:35 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:20:24:20:25 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | CdaUtilTests.java:21:24:21:25 | is | provenance | Src:MaD:1 | +| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:13:22:13:25 | iSrc | provenance | | +| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:17:22:17:25 | iSrc | provenance | | +| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:18:22:18:25 | iSrc | provenance | | +| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | CdaUtilTests.java:19:34:19:37 | iSrc | provenance | | +| CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | provenance | MaD:13 | +| CdaUtilTests.java:11:66:11:67 | is : InputStream | CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | provenance | MaD:5 | +| DigesterTests.java:14:49:14:72 | getInputStream(...) : ServletInputStream | DigesterTests.java:16:24:16:41 | servletInputStream | provenance | Src:MaD:2 | +| DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | provenance | | +| DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | provenance | MaD:7 | +| DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) : InputStream | DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 | +| DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | provenance | MaD:9 | +| DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | provenance | | +| DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | provenance | | +| DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | provenance | Src:MaD:1 MaD:11 | +| DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | provenance | MaD:10 | +| DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | provenance | MaD:12 | +| SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | SAXSourceTests.java:20:18:20:23 | source | provenance | | +| SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | provenance | MaD:8 | +| SAXSourceTests.java:17:62:17:82 | getInputStream(...) : InputStream | SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 | +| SchemaTests.java:12:56:12:76 | getInputStream(...) : InputStream | SchemaTests.java:12:39:12:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| SchemaTests.java:25:56:25:76 | getInputStream(...) : InputStream | SchemaTests.java:25:39:25:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| SchemaTests.java:31:56:31:76 | getInputStream(...) : InputStream | SchemaTests.java:31:39:31:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| SchemaTests.java:38:56:38:76 | getInputStream(...) : InputStream | SchemaTests.java:38:39:38:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| SchemaTests.java:45:56:45:76 | getInputStream(...) : InputStream | SchemaTests.java:45:39:45:77 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| SimpleXMLTests.java:24:63:24:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:30:5:30:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | SimpleXMLTests.java:31:52:31:52 | b : byte[] | provenance | | +| SimpleXMLTests.java:31:52:31:52 | b : byte[] | SimpleXMLTests.java:31:41:31:53 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:37:5:37:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | SimpleXMLTests.java:38:52:38:52 | b : byte[] | provenance | | +| SimpleXMLTests.java:38:52:38:52 | b : byte[] | SimpleXMLTests.java:38:41:38:53 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:43:63:43:83 | getInputStream(...) : InputStream | SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:68:59:68:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:73:59:73:79 | getInputStream(...) : InputStream | SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:78:48:78:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:83:48:83:68 | getInputStream(...) : InputStream | SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:89:5:89:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | SimpleXMLTests.java:90:48:90:48 | b : byte[] | provenance | | +| SimpleXMLTests.java:90:48:90:48 | b : byte[] | SimpleXMLTests.java:90:37:90:49 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:96:5:96:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | SimpleXMLTests.java:97:48:97:48 | b : byte[] | provenance | | +| SimpleXMLTests.java:97:48:97:48 | b : byte[] | SimpleXMLTests.java:97:37:97:49 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:103:5:103:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | SimpleXMLTests.java:104:37:104:37 | b : byte[] | provenance | | +| SimpleXMLTests.java:104:37:104:37 | b : byte[] | SimpleXMLTests.java:104:26:104:38 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:110:5:110:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | SimpleXMLTests.java:111:37:111:37 | b : byte[] | provenance | | +| SimpleXMLTests.java:111:37:111:37 | b : byte[] | SimpleXMLTests.java:111:26:111:38 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:119:44:119:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:129:44:129:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:139:44:139:64 | getInputStream(...) : InputStream | SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | provenance | Src:MaD:1 MaD:5 | +| SimpleXMLTests.java:145:5:145:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | SimpleXMLTests.java:146:33:146:33 | b : byte[] | provenance | | +| SimpleXMLTests.java:146:33:146:33 | b : byte[] | SimpleXMLTests.java:146:22:146:34 | new String(...) | provenance | MaD:6 | +| SimpleXMLTests.java:152:5:152:25 | getInputStream(...) : InputStream | SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | provenance | Src:MaD:1 MaD:4 | +| SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | SimpleXMLTests.java:153:33:153:33 | b : byte[] | provenance | | +| SimpleXMLTests.java:153:33:153:33 | b : byte[] | SimpleXMLTests.java:153:22:153:34 | new String(...) | provenance | MaD:6 | +| TransformerTests.java:20:44:20:64 | getInputStream(...) : InputStream | TransformerTests.java:20:27:20:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:21:40:21:60 | getInputStream(...) : InputStream | TransformerTests.java:21:23:21:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:71:44:71:64 | getInputStream(...) : InputStream | TransformerTests.java:71:27:71:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:72:40:72:60 | getInputStream(...) : InputStream | TransformerTests.java:72:23:72:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:79:44:79:64 | getInputStream(...) : InputStream | TransformerTests.java:79:27:79:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:80:40:80:60 | getInputStream(...) : InputStream | TransformerTests.java:80:23:80:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:88:44:88:64 | getInputStream(...) : InputStream | TransformerTests.java:88:27:88:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:89:40:89:60 | getInputStream(...) : InputStream | TransformerTests.java:89:23:89:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:97:44:97:64 | getInputStream(...) : InputStream | TransformerTests.java:97:27:97:65 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:98:40:98:60 | getInputStream(...) : InputStream | TransformerTests.java:98:23:98:61 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:103:38:103:58 | getInputStream(...) : InputStream | TransformerTests.java:103:21:103:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:116:38:116:58 | getInputStream(...) : InputStream | TransformerTests.java:116:21:116:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:122:38:122:58 | getInputStream(...) : InputStream | TransformerTests.java:122:21:122:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:129:38:129:58 | getInputStream(...) : InputStream | TransformerTests.java:129:21:129:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:136:38:136:58 | getInputStream(...) : InputStream | TransformerTests.java:136:21:136:59 | new StreamSource(...) | provenance | Src:MaD:1 MaD:11 | +| TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | TransformerTests.java:141:21:141:73 | new SAXSource(...) | provenance | MaD:7 | +| TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | provenance | Src:MaD:1 MaD:13 | +| ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:2 | +| ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | ValidatorTests.java:22:28:22:33 | source | provenance | | +| ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | provenance | MaD:11 | +| XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | provenance | Src:MaD:2 | +| XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | XMLDecoderTests.java:18:9:18:18 | xmlDecoder | provenance | | +| XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | provenance | MaD:3 | +| XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | XMLReaderTests.java:16:18:16:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | XMLReaderTests.java:56:18:56:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:63:34:63:54 | getInputStream(...) : InputStream | XMLReaderTests.java:63:18:63:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:70:34:70:54 | getInputStream(...) : InputStream | XMLReaderTests.java:70:18:70:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:78:34:78:54 | getInputStream(...) : InputStream | XMLReaderTests.java:78:18:78:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:86:34:86:54 | getInputStream(...) : InputStream | XMLReaderTests.java:86:18:86:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:94:34:94:54 | getInputStream(...) : InputStream | XMLReaderTests.java:94:18:94:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XMLReaderTests.java:100:34:100:54 | getInputStream(...) : InputStream | XMLReaderTests.java:100:18:100:55 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XPathExpressionTests.java:27:35:27:55 | getInputStream(...) : InputStream | XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +| XPathExpressionTests.java:42:39:42:59 | getInputStream(...) : InputStream | XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | provenance | Src:MaD:1 MaD:13 | +models +| 1 | Source: java.net; Socket; false; getInputStream; (); ; ReturnValue; remote; manual | +| 2 | Source: javax.servlet; ServletRequest; false; getInputStream; (); ; ReturnValue; remote; manual | +| 3 | Summary: java.beans; XMLDecoder; false; XMLDecoder; ; ; Argument[0]; Argument[this]; taint; manual | +| 4 | Summary: java.io; InputStream; true; read; (byte[]); ; Argument[this]; Argument[0]; taint; manual | +| 5 | Summary: java.io; InputStreamReader; false; InputStreamReader; ; ; Argument[0]; Argument[this]; taint; manual | +| 6 | Summary: java.lang; String; false; String; ; ; Argument[0]; Argument[this]; taint; manual | +| 7 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (InputSource); ; Argument[0]; Argument[this]; taint; manual | +| 8 | Summary: javax.xml.transform.sax; SAXSource; false; SAXSource; (XMLReader,InputSource); ; Argument[1]; Argument[this]; taint; manual | +| 9 | Summary: javax.xml.transform.sax; SAXSource; false; getInputSource; ; ; Argument[this]; ReturnValue; taint; manual | +| 10 | Summary: javax.xml.transform.sax; SAXSource; false; sourceToInputSource; ; ; Argument[0]; ReturnValue; taint; manual | +| 11 | Summary: javax.xml.transform.stream; StreamSource; false; StreamSource; ; ; Argument[0]; Argument[this]; taint; manual | +| 12 | Summary: javax.xml.transform.stream; StreamSource; false; getInputStream; ; ; Argument[this]; ReturnValue; taint; manual | +| 13 | Summary: org.xml.sax; InputSource; false; InputSource; ; ; Argument[0]; Argument[this]; taint; manual | +nodes +| CdaUtilTests.java:10:26:10:46 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| CdaUtilTests.java:11:28:11:69 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| CdaUtilTests.java:11:44:11:68 | new InputStreamReader(...) : InputStreamReader | semmle.label | new InputStreamReader(...) : InputStreamReader | +| CdaUtilTests.java:11:66:11:67 | is : InputStream | semmle.label | is : InputStream | +| CdaUtilTests.java:12:22:12:23 | is | semmle.label | is | +| CdaUtilTests.java:13:22:13:25 | iSrc | semmle.label | iSrc | +| CdaUtilTests.java:14:22:14:23 | is | semmle.label | is | +| CdaUtilTests.java:15:22:15:23 | is | semmle.label | is | +| CdaUtilTests.java:16:34:16:35 | is | semmle.label | is | +| CdaUtilTests.java:17:22:17:25 | iSrc | semmle.label | iSrc | +| CdaUtilTests.java:18:22:18:25 | iSrc | semmle.label | iSrc | +| CdaUtilTests.java:19:34:19:37 | iSrc | semmle.label | iSrc | +| CdaUtilTests.java:20:24:20:25 | is | semmle.label | is | +| CdaUtilTests.java:21:24:21:25 | is | semmle.label | is | +| DigesterTests.java:14:49:14:72 | getInputStream(...) : ServletInputStream | semmle.label | getInputStream(...) : ServletInputStream | +| DigesterTests.java:16:24:16:41 | servletInputStream | semmle.label | servletInputStream | +| DocumentBuilderTests.java:14:19:14:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:28:19:28:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:36:19:36:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:44:19:44:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:51:19:51:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:66:19:66:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:73:19:73:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:81:19:81:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:89:19:89:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| DocumentBuilderTests.java:95:24:95:76 | new SAXSource(...) : SAXSource | semmle.label | new SAXSource(...) : SAXSource | +| DocumentBuilderTests.java:95:38:95:75 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| DocumentBuilderTests.java:95:54:95:74 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| DocumentBuilderTests.java:96:19:96:24 | source : SAXSource | semmle.label | source : SAXSource | +| DocumentBuilderTests.java:96:19:96:41 | getInputSource(...) | semmle.label | getInputSource(...) | +| DocumentBuilderTests.java:102:27:102:65 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| DocumentBuilderTests.java:102:44:102:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| DocumentBuilderTests.java:103:19:103:55 | sourceToInputSource(...) | semmle.label | sourceToInputSource(...) | +| DocumentBuilderTests.java:103:49:103:54 | source : StreamSource | semmle.label | source : StreamSource | +| DocumentBuilderTests.java:104:19:104:24 | source : StreamSource | semmle.label | source : StreamSource | +| DocumentBuilderTests.java:104:19:104:41 | getInputStream(...) | semmle.label | getInputStream(...) | +| ParserHelperTests.java:12:55:12:78 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXBuilderTests.java:8:19:8:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXBuilderTests.java:20:19:20:39 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:13:18:13:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:30:18:30:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:38:18:38:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:46:18:46:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:55:18:55:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:64:18:64:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXParserTests.java:73:18:73:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:8:17:8:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:23:17:23:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:30:17:30:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:37:17:37:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:45:17:45:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:53:17:53:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXReaderTests.java:61:17:61:37 | getInputStream(...) | semmle.label | getInputStream(...) | +| SAXSourceTests.java:17:24:17:84 | new SAXSource(...) : SAXSource | semmle.label | new SAXSource(...) : SAXSource | +| SAXSourceTests.java:17:46:17:83 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| SAXSourceTests.java:17:62:17:82 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SAXSourceTests.java:20:18:20:23 | source | semmle.label | source | +| SchemaTests.java:12:39:12:77 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| SchemaTests.java:12:56:12:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SchemaTests.java:25:39:25:77 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| SchemaTests.java:25:56:25:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SchemaTests.java:31:39:31:77 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| SchemaTests.java:31:56:31:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SchemaTests.java:38:39:38:77 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| SchemaTests.java:38:56:38:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SchemaTests.java:45:39:45:77 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| SchemaTests.java:45:56:45:76 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:14:41:14:61 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:19:41:19:61 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:24:41:24:84 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:24:63:24:83 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:30:5:30:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:30:32:30:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:31:41:31:53 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:31:52:31:52 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:37:5:37:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:37:32:37:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:38:41:38:53 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:38:52:38:52 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:43:41:43:84 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:43:63:43:83 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:48:37:48:57 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:53:37:53:57 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:58:26:58:46 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:63:26:63:46 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:68:37:68:80 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:68:59:68:79 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:73:37:73:80 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:73:59:73:79 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:78:26:78:69 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:78:48:78:68 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:83:26:83:69 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:83:48:83:68 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:89:5:89:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:89:32:89:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:90:37:90:49 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:90:48:90:48 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:96:5:96:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:96:32:96:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:97:37:97:49 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:97:48:97:48 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:103:5:103:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:103:32:103:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:104:26:104:38 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:104:37:104:37 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:110:5:110:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:110:32:110:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:111:26:111:38 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:111:37:111:37 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:115:22:115:42 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:119:22:119:65 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:119:44:119:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:124:22:124:42 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:129:22:129:65 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:129:44:129:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:134:22:134:42 | getInputStream(...) | semmle.label | getInputStream(...) | +| SimpleXMLTests.java:139:22:139:65 | new InputStreamReader(...) | semmle.label | new InputStreamReader(...) | +| SimpleXMLTests.java:139:44:139:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:145:5:145:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:145:32:145:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:146:22:146:34 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:146:33:146:33 | b : byte[] | semmle.label | b : byte[] | +| SimpleXMLTests.java:152:5:152:25 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| SimpleXMLTests.java:152:32:152:32 | b [post update] : byte[] | semmle.label | b [post update] : byte[] | +| SimpleXMLTests.java:153:22:153:34 | new String(...) | semmle.label | new String(...) | +| SimpleXMLTests.java:153:33:153:33 | b : byte[] | semmle.label | b : byte[] | +| TransformerTests.java:20:27:20:65 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:20:44:20:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:21:23:21:61 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:21:40:21:60 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:71:27:71:65 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:71:44:71:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:72:23:72:61 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:72:40:72:60 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:79:27:79:65 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:79:44:79:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:80:23:80:61 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:80:40:80:60 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:88:27:88:65 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:88:44:88:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:89:23:89:61 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:89:40:89:60 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:97:27:97:65 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:97:44:97:64 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:98:23:98:61 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:98:40:98:60 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:103:21:103:59 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:103:38:103:58 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:116:21:116:59 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:116:38:116:58 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:122:21:122:59 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:122:38:122:58 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:129:21:129:59 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:129:38:129:58 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:136:21:136:59 | new StreamSource(...) | semmle.label | new StreamSource(...) | +| TransformerTests.java:136:38:136:58 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| TransformerTests.java:141:21:141:73 | new SAXSource(...) | semmle.label | new SAXSource(...) | +| TransformerTests.java:141:35:141:72 | new InputSource(...) : InputSource | semmle.label | new InputSource(...) : InputSource | +| TransformerTests.java:141:51:141:71 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| UnmarshallerTests.java:29:18:29:38 | getInputStream(...) | semmle.label | getInputStream(...) | +| ValidatorTests.java:17:49:17:72 | getInputStream(...) : ServletInputStream | semmle.label | getInputStream(...) : ServletInputStream | +| ValidatorTests.java:21:31:21:66 | new StreamSource(...) : StreamSource | semmle.label | new StreamSource(...) : StreamSource | +| ValidatorTests.java:21:48:21:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | +| ValidatorTests.java:22:28:22:33 | source | semmle.label | source | +| XMLDecoderTests.java:16:49:16:72 | getInputStream(...) : ServletInputStream | semmle.label | getInputStream(...) : ServletInputStream | +| XMLDecoderTests.java:17:33:17:66 | new XMLDecoder(...) : XMLDecoder | semmle.label | new XMLDecoder(...) : XMLDecoder | +| XMLDecoderTests.java:17:48:17:65 | servletInputStream : ServletInputStream | semmle.label | servletInputStream : ServletInputStream | +| XMLDecoderTests.java:18:9:18:18 | xmlDecoder | semmle.label | xmlDecoder | +| XMLReaderTests.java:16:18:16:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:16:34:16:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:56:18:56:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:56:34:56:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:63:18:63:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:63:34:63:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:70:18:70:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:70:34:70:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:78:18:78:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:78:34:78:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:86:18:86:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:86:34:86:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:94:18:94:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:94:34:94:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XMLReaderTests.java:100:18:100:55 | new InputSource(...) | semmle.label | new InputSource(...) | +| XMLReaderTests.java:100:34:100:54 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XPathExpressionTests.java:27:19:27:56 | new InputSource(...) | semmle.label | new InputSource(...) | +| XPathExpressionTests.java:27:35:27:55 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XPathExpressionTests.java:42:23:42:60 | new InputSource(...) | semmle.label | new InputSource(...) | +| XPathExpressionTests.java:42:39:42:59 | getInputStream(...) : InputStream | semmle.label | getInputStream(...) : InputStream | +| XmlInputFactoryTests.java:9:35:9:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:10:34:10:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:24:35:24:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:25:34:25:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:31:35:31:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:32:34:32:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:39:35:39:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:40:34:40:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:47:35:47:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:48:34:48:54 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:55:35:55:55 | getInputStream(...) | semmle.label | getInputStream(...) | +| XmlInputFactoryTests.java:56:34:56:54 | getInputStream(...) | semmle.label | getInputStream(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-611/XXE.ql b/java/ql/test/query-tests/security/CWE-611/XXE.ql deleted file mode 100644 index 21483d8f658..00000000000 --- a/java/ql/test/query-tests/security/CWE-611/XXE.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.XxeRemoteQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-611/XXE.qlref b/java/ql/test/query-tests/security/CWE-611/XXE.qlref new file mode 100644 index 00000000000..29f544d9a45 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-611/XXE.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-611/XXE.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-611/XmlInputFactoryTests.java b/java/ql/test/query-tests/security/CWE-611/XmlInputFactoryTests.java index a75bcde8c1f..343b8ec3df0 100644 --- a/java/ql/test/query-tests/security/CWE-611/XmlInputFactoryTests.java +++ b/java/ql/test/query-tests/security/CWE-611/XmlInputFactoryTests.java @@ -6,8 +6,8 @@ public class XmlInputFactoryTests { public void unconfigureFactory(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } public void safeFactory(Socket sock) throws Exception { @@ -21,38 +21,38 @@ public class XmlInputFactoryTests { public void misConfiguredFactory(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } public void misConfiguredFactory2(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } public void misConfiguredFactory3(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); factory.setProperty("javax.xml.stream.isSupportingExternalEntities", true); factory.setProperty(XMLInputFactory.SUPPORT_DTD, true); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } public void misConfiguredFactory4(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); factory.setProperty("javax.xml.stream.isSupportingExternalEntities", false); factory.setProperty(XMLInputFactory.SUPPORT_DTD, true); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } public void misConfiguredFactory5(Socket sock) throws Exception { XMLInputFactory factory = XMLInputFactory.newFactory(); factory.setProperty("javax.xml.stream.isSupportingExternalEntities", true); factory.setProperty(XMLInputFactory.SUPPORT_DTD, false); - factory.createXMLStreamReader(sock.getInputStream()); // $ hasTaintFlow - factory.createXMLEventReader(sock.getInputStream()); // $ hasTaintFlow + factory.createXMLStreamReader(sock.getInputStream()); // $ Alert + factory.createXMLEventReader(sock.getInputStream()); // $ Alert } } From f5c7ef6ab47affe02a5e9124b067a0d99ce0917f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 18:03:39 +0200 Subject: [PATCH 285/340] Java: convert XPathInjection test to .qlref --- .../CWE-643/XPathInjectionTest.expected | 197 ++++++++++++++++++ .../security/CWE-643/XPathInjectionTest.java | 66 +++--- .../security/CWE-643/XPathInjectionTest.ql | 19 -- .../security/CWE-643/XPathInjectionTest.qlref | 4 + 4 files changed, 234 insertions(+), 52 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.expected b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.expected index e69de29bb2d..5a460dbde52 100644 --- a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.expected @@ -0,0 +1,197 @@ +#select +| XPathInjectionTest.java:91:24:91:33 | expression | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:91:24:91:33 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:91:24:91:33 | expression | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:91:24:91:33 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:92:34:92:43 | expression | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:92:34:92:43 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:92:34:92:43 | expression | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:92:34:92:43 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:93:23:93:82 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:93:23:93:82 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:93:23:93:82 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:93:23:93:82 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:96:28:96:37 | expression | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:96:28:96:37 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:96:28:96:37 | expression | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:96:28:96:37 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:97:38:97:47 | expression | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:97:38:97:47 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:97:38:97:47 | expression | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:97:38:97:47 | expression | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:98:27:98:86 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:98:27:98:86 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:98:27:98:86 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:98:27:98:86 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:107:23:107:27 | query | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:107:23:107:27 | query | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:107:23:107:27 | query | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:107:23:107:27 | query | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:108:27:108:31 | query | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:108:27:108:31 | query | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:108:27:108:31 | query | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:108:27:108:31 | query | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:125:31:125:90 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:125:31:125:90 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:125:31:125:90 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:125:31:125:90 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:126:30:126:89 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:126:30:126:89 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:126:30:126:89 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:126:30:126:89 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:127:59:127:93 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:127:59:127:93 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:128:35:128:94 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:128:35:128:94 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:128:35:128:94 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:128:35:128:94 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:129:26:129:85 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:129:26:129:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:129:26:129:85 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:129:26:129:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:130:32:130:91 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:130:32:130:91 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:130:32:130:91 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:130:32:130:91 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:131:26:131:85 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:131:26:131:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:131:26:131:85 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:131:26:131:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:132:30:132:89 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:132:30:132:89 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:132:30:132:89 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:132:30:132:89 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:134:26:134:85 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:134:26:134:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:134:26:134:85 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:134:26:134:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:135:26:135:85 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:135:26:135:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:135:26:135:85 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:135:26:135:85 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:139:34:139:93 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:139:34:139:93 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:139:34:139:93 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:139:34:139:93 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:140:32:140:91 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:140:32:140:91 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:140:32:140:91 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:140:32:140:91 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:141:38:141:97 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:141:38:141:97 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:141:38:141:97 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:141:38:141:97 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:143:38:143:97 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:143:38:143:97 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:143:38:143:97 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:143:38:143:97 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:144:36:144:95 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:144:36:144:95 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:144:36:144:95 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:144:36:144:95 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:145:42:145:101 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:145:42:145:101 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:145:42:145:101 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:145:42:145:101 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:146:36:146:95 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:146:36:146:95 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:146:36:146:95 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:146:36:146:95 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:147:52:147:111 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:147:52:147:111 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:147:52:147:111 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:147:52:147:111 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:150:39:150:98 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:150:39:150:98 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:150:39:150:98 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:150:39:150:98 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:151:37:151:96 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:151:37:151:96 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:151:37:151:96 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:151:37:151:96 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:152:43:152:102 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:152:43:152:102 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:152:43:152:102 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:152:43:152:102 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:155:33:155:92 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:155:33:155:92 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:155:33:155:92 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:155:33:155:92 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:156:37:156:96 | ... + ... | XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:156:37:156:96 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:77:23:77:50 | getParameter(...) | user-provided value | +| XPathInjectionTest.java:156:37:156:96 | ... + ... | XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:156:37:156:96 | ... + ... | XPath expression depends on a $@. | XPathInjectionTest.java:78:23:78:50 | getParameter(...) | user-provided value | +edges +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:91:24:91:33 | expression | provenance | Src:MaD:24 Sink:MaD:2 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:92:34:92:43 | expression | provenance | Src:MaD:24 Sink:MaD:3 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:93:23:93:82 | ... + ... | provenance | Src:MaD:24 Sink:MaD:1 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:96:28:96:37 | expression | provenance | Src:MaD:24 Sink:MaD:2 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:97:38:97:47 | expression | provenance | Src:MaD:24 Sink:MaD:3 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:98:27:98:86 | ... + ... | provenance | Src:MaD:24 Sink:MaD:1 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:101:19:101:22 | user : String | provenance | Src:MaD:24 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:125:31:125:90 | ... + ... | provenance | Src:MaD:24 Sink:MaD:21 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:126:30:126:89 | ... + ... | provenance | Src:MaD:24 Sink:MaD:20 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:128:35:128:94 | ... + ... | provenance | Src:MaD:24 Sink:MaD:22 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:129:26:129:85 | ... + ... | provenance | Src:MaD:24 Sink:MaD:23 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:130:32:130:91 | ... + ... | provenance | Src:MaD:24 Sink:MaD:19 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:131:26:131:85 | ... + ... | provenance | Src:MaD:24 Sink:MaD:18 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:132:30:132:89 | ... + ... | provenance | Src:MaD:24 Sink:MaD:17 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:134:26:134:85 | ... + ... | provenance | Src:MaD:24 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:135:26:135:85 | ... + ... | provenance | Src:MaD:24 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:139:34:139:93 | ... + ... | provenance | Src:MaD:24 Sink:MaD:9 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:140:32:140:91 | ... + ... | provenance | Src:MaD:24 Sink:MaD:10 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:141:38:141:97 | ... + ... | provenance | Src:MaD:24 Sink:MaD:11 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:143:38:143:97 | ... + ... | provenance | Src:MaD:24 Sink:MaD:12 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:144:36:144:95 | ... + ... | provenance | Src:MaD:24 Sink:MaD:13 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:145:42:145:101 | ... + ... | provenance | Src:MaD:24 Sink:MaD:14 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:146:36:146:95 | ... + ... | provenance | Src:MaD:24 Sink:MaD:15 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:147:52:147:111 | ... + ... | provenance | Src:MaD:24 Sink:MaD:16 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:150:39:150:98 | ... + ... | provenance | Src:MaD:24 Sink:MaD:6 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:151:37:151:96 | ... + ... | provenance | Src:MaD:24 Sink:MaD:7 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:152:43:152:102 | ... + ... | provenance | Src:MaD:24 Sink:MaD:8 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:155:33:155:92 | ... + ... | provenance | Src:MaD:24 Sink:MaD:4 | +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | XPathInjectionTest.java:156:37:156:96 | ... + ... | provenance | Src:MaD:24 Sink:MaD:5 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:91:24:91:33 | expression | provenance | Src:MaD:24 Sink:MaD:2 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:92:34:92:43 | expression | provenance | Src:MaD:24 Sink:MaD:3 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:93:23:93:82 | ... + ... | provenance | Src:MaD:24 Sink:MaD:1 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:96:28:96:37 | expression | provenance | Src:MaD:24 Sink:MaD:2 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:97:38:97:47 | expression | provenance | Src:MaD:24 Sink:MaD:3 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:98:27:98:86 | ... + ... | provenance | Src:MaD:24 Sink:MaD:1 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:103:19:103:22 | pass : String | provenance | Src:MaD:24 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:125:31:125:90 | ... + ... | provenance | Src:MaD:24 Sink:MaD:21 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:126:30:126:89 | ... + ... | provenance | Src:MaD:24 Sink:MaD:20 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:127:59:127:93 | ... + ... | provenance | Src:MaD:24 Sink:MaD:20 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:128:35:128:94 | ... + ... | provenance | Src:MaD:24 Sink:MaD:22 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:129:26:129:85 | ... + ... | provenance | Src:MaD:24 Sink:MaD:23 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:130:32:130:91 | ... + ... | provenance | Src:MaD:24 Sink:MaD:19 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:131:26:131:85 | ... + ... | provenance | Src:MaD:24 Sink:MaD:18 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:132:30:132:89 | ... + ... | provenance | Src:MaD:24 Sink:MaD:17 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:134:26:134:85 | ... + ... | provenance | Src:MaD:24 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:135:26:135:85 | ... + ... | provenance | Src:MaD:24 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:139:34:139:93 | ... + ... | provenance | Src:MaD:24 Sink:MaD:9 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:140:32:140:91 | ... + ... | provenance | Src:MaD:24 Sink:MaD:10 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:141:38:141:97 | ... + ... | provenance | Src:MaD:24 Sink:MaD:11 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:143:38:143:97 | ... + ... | provenance | Src:MaD:24 Sink:MaD:12 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:144:36:144:95 | ... + ... | provenance | Src:MaD:24 Sink:MaD:13 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:145:42:145:101 | ... + ... | provenance | Src:MaD:24 Sink:MaD:14 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:146:36:146:95 | ... + ... | provenance | Src:MaD:24 Sink:MaD:15 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:147:52:147:111 | ... + ... | provenance | Src:MaD:24 Sink:MaD:16 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:150:39:150:98 | ... + ... | provenance | Src:MaD:24 Sink:MaD:6 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:151:37:151:96 | ... + ... | provenance | Src:MaD:24 Sink:MaD:7 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:152:43:152:102 | ... + ... | provenance | Src:MaD:24 Sink:MaD:8 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:155:33:155:92 | ... + ... | provenance | Src:MaD:24 Sink:MaD:4 | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | XPathInjectionTest.java:156:37:156:96 | ... + ... | provenance | Src:MaD:24 Sink:MaD:5 | +| XPathInjectionTest.java:101:9:101:10 | sb [post update] : StringBuffer | XPathInjectionTest.java:105:24:105:25 | sb : StringBuffer | provenance | | +| XPathInjectionTest.java:101:19:101:22 | user : String | XPathInjectionTest.java:101:9:101:10 | sb [post update] : StringBuffer | provenance | MaD:25 | +| XPathInjectionTest.java:103:9:103:10 | sb [post update] : StringBuffer | XPathInjectionTest.java:105:24:105:25 | sb : StringBuffer | provenance | | +| XPathInjectionTest.java:103:19:103:22 | pass : String | XPathInjectionTest.java:103:9:103:10 | sb [post update] : StringBuffer | provenance | MaD:25 | +| XPathInjectionTest.java:105:24:105:25 | sb : StringBuffer | XPathInjectionTest.java:105:24:105:36 | toString(...) : String | provenance | MaD:26 | +| XPathInjectionTest.java:105:24:105:36 | toString(...) : String | XPathInjectionTest.java:107:23:107:27 | query | provenance | Sink:MaD:1 | +| XPathInjectionTest.java:105:24:105:36 | toString(...) : String | XPathInjectionTest.java:108:27:108:31 | query | provenance | Sink:MaD:1 | +models +| 1 | Sink: javax.xml.xpath; XPath; true; compile; ; ; Argument[0]; xpath-injection; manual | +| 2 | Sink: javax.xml.xpath; XPath; true; evaluate; ; ; Argument[0]; xpath-injection; manual | +| 3 | Sink: javax.xml.xpath; XPath; true; evaluateExpression; ; ; Argument[0]; xpath-injection; manual | +| 4 | Sink: org.dom4j.tree; AbstractNode; true; createPattern; ; ; Argument[0]; xpath-injection; manual | +| 5 | Sink: org.dom4j.tree; AbstractNode; true; createXPathFilter; ; ; Argument[0]; xpath-injection; manual | +| 6 | Sink: org.dom4j.util; ProxyDocumentFactory; true; createPattern; ; ; Argument[0]; xpath-injection; manual | +| 7 | Sink: org.dom4j.util; ProxyDocumentFactory; true; createXPath; ; ; Argument[0]; xpath-injection; manual | +| 8 | Sink: org.dom4j.util; ProxyDocumentFactory; true; createXPathFilter; ; ; Argument[0]; xpath-injection; manual | +| 9 | Sink: org.dom4j; DocumentFactory; true; createPattern; ; ; Argument[0]; xpath-injection; manual | +| 10 | Sink: org.dom4j; DocumentFactory; true; createXPath; ; ; Argument[0]; xpath-injection; manual | +| 11 | Sink: org.dom4j; DocumentFactory; true; createXPathFilter; ; ; Argument[0]; xpath-injection; manual | +| 12 | Sink: org.dom4j; DocumentHelper; false; createPattern; ; ; Argument[0]; xpath-injection; manual | +| 13 | Sink: org.dom4j; DocumentHelper; false; createXPath; ; ; Argument[0]; xpath-injection; manual | +| 14 | Sink: org.dom4j; DocumentHelper; false; createXPathFilter; ; ; Argument[0]; xpath-injection; manual | +| 15 | Sink: org.dom4j; DocumentHelper; false; selectNodes; ; ; Argument[0]; xpath-injection; manual | +| 16 | Sink: org.dom4j; DocumentHelper; false; sort; ; ; Argument[1]; xpath-injection; manual | +| 17 | Sink: org.dom4j; Node; true; createXPath; ; ; Argument[0]; xpath-injection; manual | +| 18 | Sink: org.dom4j; Node; true; matches; ; ; Argument[0]; xpath-injection; manual | +| 19 | Sink: org.dom4j; Node; true; numberValueOf; ; ; Argument[0]; xpath-injection; manual | +| 20 | Sink: org.dom4j; Node; true; selectNodes; ; ; Argument[0..1]; xpath-injection; manual | +| 21 | Sink: org.dom4j; Node; true; selectObject; ; ; Argument[0]; xpath-injection; manual | +| 22 | Sink: org.dom4j; Node; true; selectSingleNode; ; ; Argument[0]; xpath-injection; manual | +| 23 | Sink: org.dom4j; Node; true; valueOf; ; ; Argument[0]; xpath-injection; manual | +| 24 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 25 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 26 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +nodes +| XPathInjectionTest.java:77:23:77:50 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| XPathInjectionTest.java:78:23:78:50 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| XPathInjectionTest.java:91:24:91:33 | expression | semmle.label | expression | +| XPathInjectionTest.java:92:34:92:43 | expression | semmle.label | expression | +| XPathInjectionTest.java:93:23:93:82 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:96:28:96:37 | expression | semmle.label | expression | +| XPathInjectionTest.java:97:38:97:47 | expression | semmle.label | expression | +| XPathInjectionTest.java:98:27:98:86 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:101:9:101:10 | sb [post update] : StringBuffer | semmle.label | sb [post update] : StringBuffer | +| XPathInjectionTest.java:101:19:101:22 | user : String | semmle.label | user : String | +| XPathInjectionTest.java:103:9:103:10 | sb [post update] : StringBuffer | semmle.label | sb [post update] : StringBuffer | +| XPathInjectionTest.java:103:19:103:22 | pass : String | semmle.label | pass : String | +| XPathInjectionTest.java:105:24:105:25 | sb : StringBuffer | semmle.label | sb : StringBuffer | +| XPathInjectionTest.java:105:24:105:36 | toString(...) : String | semmle.label | toString(...) : String | +| XPathInjectionTest.java:107:23:107:27 | query | semmle.label | query | +| XPathInjectionTest.java:108:27:108:31 | query | semmle.label | query | +| XPathInjectionTest.java:125:31:125:90 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:126:30:126:89 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:127:59:127:93 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:128:35:128:94 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:129:26:129:85 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:130:32:130:91 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:131:26:131:85 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:132:30:132:89 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:134:26:134:85 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:135:26:135:85 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:139:34:139:93 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:140:32:140:91 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:141:38:141:97 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:143:38:143:97 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:144:36:144:95 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:145:42:145:101 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:146:36:146:95 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:147:52:147:111 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:150:39:150:98 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:151:37:151:96 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:152:43:152:102 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:155:33:155:92 | ... + ... | semmle.label | ... + ... | +| XPathInjectionTest.java:156:37:156:96 | ... + ... | semmle.label | ... + ... | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.java b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.java index 5631f3a4ae9..af5d2c11e5f 100644 --- a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.java @@ -74,8 +74,8 @@ public class XPathInjectionTest { } public void handle(HttpServletRequest request) throws Exception { - String user = request.getParameter("user"); - String pass = request.getParameter("pass"); + String user = request.getParameter("user"); // $ Source + String pass = request.getParameter("pass"); // $ Source String expression = "/users/user[@name='" + user + "' and @pass='" + pass + "']"; final String xmlStr = "" + " " @@ -88,14 +88,14 @@ public class XPathInjectionTest { XPathFactory factory = XPathFactory.newInstance(); XPath xpath = factory.newXPath(); - xpath.evaluate(expression, doc, XPathConstants.BOOLEAN); // $hasXPathInjection - xpath.evaluateExpression(expression, xmlSource); // $hasXPathInjection - xpath.compile("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + xpath.evaluate(expression, doc, XPathConstants.BOOLEAN); // $ Alert + xpath.evaluateExpression(expression, xmlSource); // $ Alert + xpath.compile("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert XPathImplStub xpathStub = XPathImplStub.getInstance(); - xpathStub.evaluate(expression, doc, XPathConstants.BOOLEAN); // $hasXPathInjection - xpathStub.evaluateExpression(expression, xmlSource); // $hasXPathInjection - xpathStub.compile("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + xpathStub.evaluate(expression, doc, XPathConstants.BOOLEAN); // $ Alert + xpathStub.evaluateExpression(expression, xmlSource); // $ Alert + xpathStub.compile("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert StringBuffer sb = new StringBuffer("/users/user[@name="); sb.append(user); @@ -104,8 +104,8 @@ public class XPathInjectionTest { sb.append("']"); String query = sb.toString(); - xpath.compile(query); // $hasXPathInjection - xpathStub.compile(query); // $hasXPathInjection + xpath.compile(query); // $ Alert + xpathStub.compile(query); // $ Alert String expression4 = "/users/user[@name=$user and @pass=$pass]"; xpath.setXPathVariableResolver(v -> { @@ -122,38 +122,38 @@ public class XPathInjectionTest { SAXReader reader = new SAXReader(); org.dom4j.Document document = reader.read(new ByteArrayInputStream(xmlStr.getBytes())); - document.selectObject("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.selectNodes("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.selectNodes("/users/user[@name='test']", "/users/user[@pass='" + pass + "']"); // $hasXPathInjection - document.selectSingleNode("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.valueOf("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.numberValueOf("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.matches("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - document.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + document.selectObject("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.selectNodes("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.selectNodes("/users/user[@name='test']", "/users/user[@pass='" + pass + "']"); // $ Alert + document.selectSingleNode("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.valueOf("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.numberValueOf("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.matches("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + document.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert - new DefaultXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - new XPathPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + new DefaultXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + new XPathPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert new XPathPattern(new PatternStub(user)); // $ MISSING: hasXPathInjection // Jaxen is not modeled yet DocumentFactory docFactory = DocumentFactory.getInstance(); - docFactory.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - docFactory.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - docFactory.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + docFactory.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + docFactory.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + docFactory.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert - DocumentHelper.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - DocumentHelper.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - DocumentHelper.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - DocumentHelper.selectNodes("/users/user[@name='" + user + "' and @pass='" + pass + "']", new ArrayList()); // $hasXPathInjection - DocumentHelper.sort(new ArrayList(), "/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + DocumentHelper.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + DocumentHelper.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + DocumentHelper.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + DocumentHelper.selectNodes("/users/user[@name='" + user + "' and @pass='" + pass + "']", new ArrayList()); // $ Alert + DocumentHelper.sort(new ArrayList(), "/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert ProxyDocumentFactoryStub proxyDocFactory = new ProxyDocumentFactoryStub(); - proxyDocFactory.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - proxyDocFactory.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - proxyDocFactory.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + proxyDocFactory.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + proxyDocFactory.createXPath("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + proxyDocFactory.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert Namespace namespace = new Namespace("prefix", "http://some.uri.io"); - namespace.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection - namespace.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $hasXPathInjection + namespace.createPattern("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert + namespace.createXPathFilter("/users/user[@name='" + user + "' and @pass='" + pass + "']"); // $ Alert org.jaxen.SimpleVariableContext svc = new org.jaxen.SimpleVariableContext(); svc.setVariableValue("user", user); diff --git a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.ql b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.ql deleted file mode 100644 index 3c7110d8011..00000000000 --- a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.ql +++ /dev/null @@ -1,19 +0,0 @@ -import java -import semmle.code.java.dataflow.DataFlow -import semmle.code.java.security.XPathInjectionQuery -import utils.test.InlineExpectationsTest - -module HasXPathInjectionTest implements TestSig { - string getARelevantTag() { result = "hasXPathInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasXPathInjection" and - exists(DataFlow::Node sink | XPathInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.qlref new file mode 100644 index 00000000000..0ea1a794f4c --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-643/XPathInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-643/XPathInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From b7e47e2cf3422516f487dc34c495cbd671b76dec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Mon, 23 Jun 2025 18:21:52 +0200 Subject: [PATCH 286/340] Java: convert PolynomialReDoS and RegexInjection tests to .qlref Leaves ReDoS.ql unmodified since it's not a dataflow query; just moves it to its own directory. --- .../CWE-730/{ => ExpRedos}/ExpRedosTest.java | 0 .../CWE-730/{ => ExpRedos}/ReDoS.expected | 0 .../security/CWE-730/{ => ExpRedos}/ReDoS.ql | 0 .../security/CWE-730/ExpRedos/options | 1 + .../CWE-730/PolyRedos/PolyRedosTest.java | 84 +++++++++++++++ .../PolyRedos/PolynomialReDoS.expected | 85 +++++++++++++++ .../CWE-730/PolyRedos/PolynomialReDoS.qlref | 4 + .../security/CWE-730/PolyRedos/options | 1 + .../security/CWE-730/PolyRedosTest.java | 84 --------------- .../security/CWE-730/PolynomialReDoS.expected | 0 .../security/CWE-730/PolynomialReDoS.ql | 18 ---- .../RegexInjectionTest.expected | 102 ++++++++++++++++++ .../RegexInjectionTest.java | 72 ++++++------- .../RegexInjection/RegexInjectionTest.qlref | 4 + .../security/CWE-730/RegexInjection/options | 1 + .../CWE-730/RegexInjectionTest.expected | 0 .../security/CWE-730/RegexInjectionTest.ql | 18 ---- .../test/query-tests/security/CWE-730/options | 1 - 18 files changed, 318 insertions(+), 157 deletions(-) rename java/ql/test/query-tests/security/CWE-730/{ => ExpRedos}/ExpRedosTest.java (100%) rename java/ql/test/query-tests/security/CWE-730/{ => ExpRedos}/ReDoS.expected (100%) rename java/ql/test/query-tests/security/CWE-730/{ => ExpRedos}/ReDoS.ql (100%) create mode 100644 java/ql/test/query-tests/security/CWE-730/ExpRedos/options create mode 100644 java/ql/test/query-tests/security/CWE-730/PolyRedos/PolyRedosTest.java create mode 100644 java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.expected create mode 100644 java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.qlref create mode 100644 java/ql/test/query-tests/security/CWE-730/PolyRedos/options delete mode 100644 java/ql/test/query-tests/security/CWE-730/PolyRedosTest.java delete mode 100644 java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.expected delete mode 100644 java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.ql create mode 100644 java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.expected rename java/ql/test/query-tests/security/CWE-730/{ => RegexInjection}/RegexInjectionTest.java (68%) create mode 100644 java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-730/RegexInjection/options delete mode 100644 java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.ql delete mode 100644 java/ql/test/query-tests/security/CWE-730/options diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java b/java/ql/test/query-tests/security/CWE-730/ExpRedos/ExpRedosTest.java similarity index 100% rename from java/ql/test/query-tests/security/CWE-730/ExpRedosTest.java rename to java/ql/test/query-tests/security/CWE-730/ExpRedos/ExpRedosTest.java diff --git a/java/ql/test/query-tests/security/CWE-730/ReDoS.expected b/java/ql/test/query-tests/security/CWE-730/ExpRedos/ReDoS.expected similarity index 100% rename from java/ql/test/query-tests/security/CWE-730/ReDoS.expected rename to java/ql/test/query-tests/security/CWE-730/ExpRedos/ReDoS.expected diff --git a/java/ql/test/query-tests/security/CWE-730/ReDoS.ql b/java/ql/test/query-tests/security/CWE-730/ExpRedos/ReDoS.ql similarity index 100% rename from java/ql/test/query-tests/security/CWE-730/ReDoS.ql rename to java/ql/test/query-tests/security/CWE-730/ExpRedos/ReDoS.ql diff --git a/java/ql/test/query-tests/security/CWE-730/ExpRedos/options b/java/ql/test/query-tests/security/CWE-730/ExpRedos/options new file mode 100644 index 00000000000..591d7fd827b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/ExpRedos/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/guava-30.0:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/apache-commons-lang3-3.7 diff --git a/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolyRedosTest.java b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolyRedosTest.java new file mode 100644 index 00000000000..34e527456c5 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolyRedosTest.java @@ -0,0 +1,84 @@ +import java.util.regex.Pattern; +import java.util.function.Predicate; +import javax.servlet.http.HttpServletRequest; +import com.google.common.base.Splitter; + +class PolyRedosTest { + void test(HttpServletRequest request) { + String tainted = request.getParameter("inp"); // $ Source + String reg = "0\\.\\d+E?\\d+!"; + Predicate dummyPred = (s -> s.length() % 7 == 0); + + tainted.matches(reg); // $ Alert + tainted.split(reg); // $ Alert + tainted.split(reg, 7); // $ Alert + tainted.replaceAll(reg, "a"); // $ Alert + tainted.replaceFirst(reg, "a"); // $ Alert + Pattern.matches(reg, tainted); // $ Alert + Pattern.compile(reg).matcher(tainted).matches(); // $ Alert + Pattern.compile(reg).split(tainted); // $ Alert + Pattern.compile(reg, Pattern.DOTALL).split(tainted); // $ Alert + Pattern.compile(reg).split(tainted, 7); // $ Alert + Pattern.compile(reg).splitAsStream(tainted); // $ Alert + Pattern.compile(reg).asPredicate().test(tainted); // $ Alert + Pattern.compile(reg).asMatchPredicate().negate().and(dummyPred).or(dummyPred).test(tainted); // $ Alert + Predicate.not(dummyPred.and(dummyPred.or(Pattern.compile(reg).asPredicate()))).test(tainted); // $ Alert + + Splitter.on(Pattern.compile(reg)).split(tainted); // $ Alert + Splitter.on(reg).split(tainted); + Splitter.onPattern(reg).split(tainted); // $ Alert + Splitter.onPattern(reg).splitToList(tainted); // $ Alert + Splitter.onPattern(reg).limit(7).omitEmptyStrings().trimResults().split(tainted); // $ Alert + Splitter.onPattern(reg).withKeyValueSeparator(" => ").split(tainted); // $ Alert + Splitter.on(";").withKeyValueSeparator(reg).split(tainted); + Splitter.on(";").withKeyValueSeparator(Splitter.onPattern(reg)).split(tainted); // $ Alert + + } + + void test2(HttpServletRequest request) { + String tainted = request.getParameter("inp"); // $ Source + + Pattern p1 = Pattern.compile(".*a"); + Pattern p2 = Pattern.compile(".*b"); + + p1.matcher(tainted).matches(); + p2.matcher(tainted).find(); // $ Alert + } + + void test3(HttpServletRequest request) { + String tainted = request.getParameter("inp"); // $ Source + + Pattern p1 = Pattern.compile("ab*b*"); + Pattern p2 = Pattern.compile("cd*d*"); + + p1.matcher(tainted).matches(); // $ Alert + p2.matcher(tainted).find(); + } + + void test4(HttpServletRequest request) { + String tainted = request.getParameter("inp"); // $ Source + + tainted.matches(".*a"); + tainted.replaceAll(".*b", "c"); // $ Alert + } + + static Pattern p3 = Pattern.compile(".*a"); + static Pattern p4 = Pattern.compile(".*b"); + + + void test5(HttpServletRequest request) { + String tainted = request.getParameter("inp"); // $ Source + + p3.asMatchPredicate().test(tainted); + p4.asPredicate().test(tainted); // $ Alert + } + + void test6(HttpServletRequest request) { + Pattern p = Pattern.compile("^a*a*$"); + + p.matcher(request.getParameter("inp")).matches(); // $ Alert + p.matcher(request.getHeader("If-None-Match")).matches(); + p.matcher(request.getRequestURI()).matches(); + p.matcher(request.getCookies()[0].getName()).matches(); + } +} diff --git a/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.expected b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.expected new file mode 100644 index 00000000000..baac0e0596a --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.expected @@ -0,0 +1,85 @@ +#select +| PolyRedosTest.java:12:9:12:15 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:12:9:12:15 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:13:9:13:15 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:13:9:13:15 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:14:9:14:15 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:14:9:14:15 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:15:9:15:15 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:15:9:15:15 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:16:9:16:15 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:16:9:16:15 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:17:30:17:36 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:17:30:17:36 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:18:38:18:44 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:18:38:18:44 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:19:36:19:42 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:19:36:19:42 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:20:52:20:58 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:20:52:20:58 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:21:36:21:42 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:21:36:21:42 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:22:44:22:50 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:22:44:22:50 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:23:49:23:55 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:23:49:23:55 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:24:92:24:98 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:24:92:24:98 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:25:93:25:99 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:25:93:25:99 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:27:49:27:55 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:27:49:27:55 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:29:39:29:45 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:29:39:29:45 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:30:45:30:51 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:30:45:30:51 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:31:81:31:87 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:31:81:31:87 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:32:69:32:75 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:32:69:32:75 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:34:79:34:85 | tainted | PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:34:79:34:85 | tainted | This $@ that depends on a $@ may run slow on strings starting with '0.9' and with many repetitions of '99'. | PolyRedosTest.java:9:33:9:36 | \\d+ | regular expression | PolyRedosTest.java:8:26:8:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:45:20:45:26 | tainted | PolyRedosTest.java:39:26:39:52 | getParameter(...) : String | PolyRedosTest.java:45:20:45:26 | tainted | This $@ that depends on a $@ may run slow on strings with many repetitions of 'a'. | PolyRedosTest.java:42:39:42:40 | .* | regular expression | PolyRedosTest.java:39:26:39:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:54:20:54:26 | tainted | PolyRedosTest.java:49:26:49:52 | getParameter(...) : String | PolyRedosTest.java:54:20:54:26 | tainted | This $@ that depends on a $@ may run slow on strings starting with 'a' and with many repetitions of 'b'. | PolyRedosTest.java:51:42:51:43 | b* | regular expression | PolyRedosTest.java:49:26:49:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:62:9:62:15 | tainted | PolyRedosTest.java:59:26:59:52 | getParameter(...) : String | PolyRedosTest.java:62:9:62:15 | tainted | This $@ that depends on a $@ may run slow on strings with many repetitions of 'a'. | PolyRedosTest.java:62:29:62:30 | .* | regular expression | PolyRedosTest.java:59:26:59:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:73:31:73:37 | tainted | PolyRedosTest.java:70:26:70:52 | getParameter(...) : String | PolyRedosTest.java:73:31:73:37 | tainted | This $@ that depends on a $@ may run slow on strings with many repetitions of 'a'. | PolyRedosTest.java:66:42:66:43 | .* | regular expression | PolyRedosTest.java:70:26:70:52 | getParameter(...) | user-provided value | +| PolyRedosTest.java:79:19:79:45 | getParameter(...) | PolyRedosTest.java:79:19:79:45 | getParameter(...) | PolyRedosTest.java:79:19:79:45 | getParameter(...) | This $@ that depends on a $@ may run slow on strings with many repetitions of 'a'. | PolyRedosTest.java:77:41:77:42 | a* | regular expression | PolyRedosTest.java:79:19:79:45 | getParameter(...) | user-provided value | +edges +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:12:9:12:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:13:9:13:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:14:9:14:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:15:9:15:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:16:9:16:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:17:30:17:36 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:18:38:18:44 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:19:36:19:42 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:20:52:20:58 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:21:36:21:42 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:22:44:22:50 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:23:49:23:55 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:24:92:24:98 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:25:93:25:99 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:27:49:27:55 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:29:39:29:45 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:30:45:30:51 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:31:81:31:87 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:32:69:32:75 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | PolyRedosTest.java:34:79:34:85 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:39:26:39:52 | getParameter(...) : String | PolyRedosTest.java:45:20:45:26 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:49:26:49:52 | getParameter(...) : String | PolyRedosTest.java:54:20:54:26 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:59:26:59:52 | getParameter(...) : String | PolyRedosTest.java:62:9:62:15 | tainted | provenance | Src:MaD:1 | +| PolyRedosTest.java:70:26:70:52 | getParameter(...) : String | PolyRedosTest.java:73:31:73:37 | tainted | provenance | Src:MaD:1 | +models +| 1 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +nodes +| PolyRedosTest.java:8:26:8:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PolyRedosTest.java:12:9:12:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:13:9:13:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:14:9:14:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:15:9:15:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:16:9:16:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:17:30:17:36 | tainted | semmle.label | tainted | +| PolyRedosTest.java:18:38:18:44 | tainted | semmle.label | tainted | +| PolyRedosTest.java:19:36:19:42 | tainted | semmle.label | tainted | +| PolyRedosTest.java:20:52:20:58 | tainted | semmle.label | tainted | +| PolyRedosTest.java:21:36:21:42 | tainted | semmle.label | tainted | +| PolyRedosTest.java:22:44:22:50 | tainted | semmle.label | tainted | +| PolyRedosTest.java:23:49:23:55 | tainted | semmle.label | tainted | +| PolyRedosTest.java:24:92:24:98 | tainted | semmle.label | tainted | +| PolyRedosTest.java:25:93:25:99 | tainted | semmle.label | tainted | +| PolyRedosTest.java:27:49:27:55 | tainted | semmle.label | tainted | +| PolyRedosTest.java:29:39:29:45 | tainted | semmle.label | tainted | +| PolyRedosTest.java:30:45:30:51 | tainted | semmle.label | tainted | +| PolyRedosTest.java:31:81:31:87 | tainted | semmle.label | tainted | +| PolyRedosTest.java:32:69:32:75 | tainted | semmle.label | tainted | +| PolyRedosTest.java:34:79:34:85 | tainted | semmle.label | tainted | +| PolyRedosTest.java:39:26:39:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PolyRedosTest.java:45:20:45:26 | tainted | semmle.label | tainted | +| PolyRedosTest.java:49:26:49:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PolyRedosTest.java:54:20:54:26 | tainted | semmle.label | tainted | +| PolyRedosTest.java:59:26:59:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PolyRedosTest.java:62:9:62:15 | tainted | semmle.label | tainted | +| PolyRedosTest.java:70:26:70:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| PolyRedosTest.java:73:31:73:37 | tainted | semmle.label | tainted | +| PolyRedosTest.java:79:19:79:45 | getParameter(...) | semmle.label | getParameter(...) | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.qlref b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.qlref new file mode 100644 index 00000000000..f5dd1d5ca3a --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/PolyRedos/PolynomialReDoS.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-730/PolynomialReDoS.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-730/PolyRedos/options b/java/ql/test/query-tests/security/CWE-730/PolyRedos/options new file mode 100644 index 00000000000..591d7fd827b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/PolyRedos/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/guava-30.0:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/apache-commons-lang3-3.7 diff --git a/java/ql/test/query-tests/security/CWE-730/PolyRedosTest.java b/java/ql/test/query-tests/security/CWE-730/PolyRedosTest.java deleted file mode 100644 index 44931190460..00000000000 --- a/java/ql/test/query-tests/security/CWE-730/PolyRedosTest.java +++ /dev/null @@ -1,84 +0,0 @@ -import java.util.regex.Pattern; -import java.util.function.Predicate; -import javax.servlet.http.HttpServletRequest; -import com.google.common.base.Splitter; - -class PolyRedosTest { - void test(HttpServletRequest request) { - String tainted = request.getParameter("inp"); - String reg = "0\\.\\d+E?\\d+!"; - Predicate dummyPred = (s -> s.length() % 7 == 0); - - tainted.matches(reg); // $ hasPolyRedos - tainted.split(reg); // $ hasPolyRedos - tainted.split(reg, 7); // $ hasPolyRedos - tainted.replaceAll(reg, "a"); // $ hasPolyRedos - tainted.replaceFirst(reg, "a"); // $ hasPolyRedos - Pattern.matches(reg, tainted); // $ hasPolyRedos - Pattern.compile(reg).matcher(tainted).matches(); // $ hasPolyRedos - Pattern.compile(reg).split(tainted); // $ hasPolyRedos - Pattern.compile(reg, Pattern.DOTALL).split(tainted); // $ hasPolyRedos - Pattern.compile(reg).split(tainted, 7); // $ hasPolyRedos - Pattern.compile(reg).splitAsStream(tainted); // $ hasPolyRedos - Pattern.compile(reg).asPredicate().test(tainted); // $ hasPolyRedos - Pattern.compile(reg).asMatchPredicate().negate().and(dummyPred).or(dummyPred).test(tainted); // $ hasPolyRedos - Predicate.not(dummyPred.and(dummyPred.or(Pattern.compile(reg).asPredicate()))).test(tainted); // $ hasPolyRedos - - Splitter.on(Pattern.compile(reg)).split(tainted); // $ hasPolyRedos - Splitter.on(reg).split(tainted); - Splitter.onPattern(reg).split(tainted); // $ hasPolyRedos - Splitter.onPattern(reg).splitToList(tainted); // $ hasPolyRedos - Splitter.onPattern(reg).limit(7).omitEmptyStrings().trimResults().split(tainted); // $ hasPolyRedos - Splitter.onPattern(reg).withKeyValueSeparator(" => ").split(tainted); // $ hasPolyRedos - Splitter.on(";").withKeyValueSeparator(reg).split(tainted); - Splitter.on(";").withKeyValueSeparator(Splitter.onPattern(reg)).split(tainted); // $ hasPolyRedos - - } - - void test2(HttpServletRequest request) { - String tainted = request.getParameter("inp"); - - Pattern p1 = Pattern.compile(".*a"); - Pattern p2 = Pattern.compile(".*b"); - - p1.matcher(tainted).matches(); - p2.matcher(tainted).find(); // $ hasPolyRedos - } - - void test3(HttpServletRequest request) { - String tainted = request.getParameter("inp"); - - Pattern p1 = Pattern.compile("ab*b*"); - Pattern p2 = Pattern.compile("cd*d*"); - - p1.matcher(tainted).matches(); // $ hasPolyRedos - p2.matcher(tainted).find(); - } - - void test4(HttpServletRequest request) { - String tainted = request.getParameter("inp"); - - tainted.matches(".*a"); - tainted.replaceAll(".*b", "c"); // $ hasPolyRedos - } - - static Pattern p3 = Pattern.compile(".*a"); - static Pattern p4 = Pattern.compile(".*b"); - - - void test5(HttpServletRequest request) { - String tainted = request.getParameter("inp"); - - p3.asMatchPredicate().test(tainted); - p4.asPredicate().test(tainted); // $ hasPolyRedos - } - - void test6(HttpServletRequest request) { - Pattern p = Pattern.compile("^a*a*$"); - - p.matcher(request.getParameter("inp")).matches(); // $ hasPolyRedos - p.matcher(request.getHeader("If-None-Match")).matches(); - p.matcher(request.getRequestURI()).matches(); - p.matcher(request.getCookies()[0].getName()).matches(); - } -} \ No newline at end of file diff --git a/java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.expected b/java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.ql b/java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.ql deleted file mode 100644 index d8c1a790e70..00000000000 --- a/java/ql/test/query-tests/security/CWE-730/PolynomialReDoS.ql +++ /dev/null @@ -1,18 +0,0 @@ -import utils.test.InlineExpectationsTest -import semmle.code.java.security.regexp.PolynomialReDoSQuery - -module HasPolyRedos implements TestSig { - string getARelevantTag() { result = "hasPolyRedos" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasPolyRedos" and - exists(DataFlow::Node sink | - PolynomialRedosFlow::flowTo(sink) and - location = sink.getLocation() and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.expected b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.expected new file mode 100644 index 00000000000..9d0c7ec5c8b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.expected @@ -0,0 +1,102 @@ +#select +| RegexInjectionTest.java:17:26:17:47 | ... + ... | RegexInjectionTest.java:14:22:14:52 | getParameter(...) : String | RegexInjectionTest.java:17:26:17:47 | ... + ... | This regular expression is constructed from a $@. | RegexInjectionTest.java:14:22:14:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:24:24:24:30 | pattern | RegexInjectionTest.java:21:22:21:52 | getParameter(...) : String | RegexInjectionTest.java:24:24:24:30 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:21:22:21:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:31:24:31:30 | pattern | RegexInjectionTest.java:28:22:28:52 | getParameter(...) : String | RegexInjectionTest.java:31:24:31:30 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:28:22:28:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:38:31:38:37 | pattern | RegexInjectionTest.java:35:22:35:52 | getParameter(...) : String | RegexInjectionTest.java:38:31:38:37 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:35:22:35:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:45:29:45:35 | pattern | RegexInjectionTest.java:42:22:42:52 | getParameter(...) : String | RegexInjectionTest.java:45:29:45:35 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:42:22:42:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:52:34:52:40 | pattern | RegexInjectionTest.java:49:22:49:52 | getParameter(...) : String | RegexInjectionTest.java:52:34:52:40 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:49:22:49:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:62:28:62:34 | pattern | RegexInjectionTest.java:59:22:59:52 | getParameter(...) : String | RegexInjectionTest.java:62:28:62:34 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:59:22:59:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:69:28:69:34 | pattern | RegexInjectionTest.java:66:22:66:52 | getParameter(...) : String | RegexInjectionTest.java:69:28:69:34 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:66:22:66:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:76:28:76:34 | pattern | RegexInjectionTest.java:73:22:73:52 | getParameter(...) : String | RegexInjectionTest.java:76:28:76:34 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:73:22:73:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:83:26:83:52 | ... + ... | RegexInjectionTest.java:80:22:80:52 | getParameter(...) : String | RegexInjectionTest.java:83:26:83:52 | ... + ... | This regular expression is constructed from a $@. | RegexInjectionTest.java:80:22:80:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:94:40:94:46 | pattern | RegexInjectionTest.java:91:22:91:52 | getParameter(...) : String | RegexInjectionTest.java:94:40:94:46 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:91:22:91:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:101:42:101:48 | pattern | RegexInjectionTest.java:98:22:98:52 | getParameter(...) : String | RegexInjectionTest.java:101:42:101:48 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:98:22:98:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:108:44:108:50 | pattern | RegexInjectionTest.java:105:22:105:52 | getParameter(...) : String | RegexInjectionTest.java:108:44:108:50 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:105:22:105:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:115:41:115:47 | pattern | RegexInjectionTest.java:112:22:112:52 | getParameter(...) : String | RegexInjectionTest.java:115:41:115:47 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:112:22:112:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:122:43:122:49 | pattern | RegexInjectionTest.java:119:22:119:52 | getParameter(...) : String | RegexInjectionTest.java:122:43:122:49 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:119:22:119:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:137:45:137:51 | pattern | RegexInjectionTest.java:134:22:134:52 | getParameter(...) : String | RegexInjectionTest.java:137:45:137:51 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:134:22:134:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:158:31:158:37 | pattern | RegexInjectionTest.java:157:22:157:52 | getParameter(...) : String | RegexInjectionTest.java:158:31:158:37 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:157:22:157:52 | getParameter(...) | user-provided value | +| RegexInjectionTest.java:164:41:164:47 | pattern | RegexInjectionTest.java:162:22:162:52 | getParameter(...) : String | RegexInjectionTest.java:164:41:164:47 | pattern | This regular expression is constructed from a $@. | RegexInjectionTest.java:162:22:162:52 | getParameter(...) | user-provided value | +edges +| RegexInjectionTest.java:14:22:14:52 | getParameter(...) : String | RegexInjectionTest.java:17:26:17:47 | ... + ... | provenance | Src:MaD:16 Sink:MaD:2 | +| RegexInjectionTest.java:21:22:21:52 | getParameter(...) : String | RegexInjectionTest.java:24:24:24:30 | pattern | provenance | Src:MaD:16 Sink:MaD:5 | +| RegexInjectionTest.java:28:22:28:52 | getParameter(...) : String | RegexInjectionTest.java:31:24:31:30 | pattern | provenance | Src:MaD:16 Sink:MaD:6 | +| RegexInjectionTest.java:35:22:35:52 | getParameter(...) : String | RegexInjectionTest.java:38:31:38:37 | pattern | provenance | Src:MaD:16 Sink:MaD:4 | +| RegexInjectionTest.java:42:22:42:52 | getParameter(...) : String | RegexInjectionTest.java:45:29:45:35 | pattern | provenance | Src:MaD:16 Sink:MaD:3 | +| RegexInjectionTest.java:49:22:49:52 | getParameter(...) : String | RegexInjectionTest.java:52:34:52:40 | pattern | provenance | Src:MaD:16 Sink:MaD:7 | +| RegexInjectionTest.java:59:22:59:52 | getParameter(...) : String | RegexInjectionTest.java:62:28:62:34 | pattern | provenance | Src:MaD:16 Sink:MaD:7 | +| RegexInjectionTest.java:66:22:66:52 | getParameter(...) : String | RegexInjectionTest.java:69:28:69:34 | pattern | provenance | Src:MaD:16 Sink:MaD:8 | +| RegexInjectionTest.java:73:22:73:52 | getParameter(...) : String | RegexInjectionTest.java:76:28:76:34 | pattern | provenance | Src:MaD:16 Sink:MaD:9 | +| RegexInjectionTest.java:80:22:80:52 | getParameter(...) : String | RegexInjectionTest.java:83:36:83:42 | pattern : String | provenance | Src:MaD:16 | +| RegexInjectionTest.java:83:32:83:43 | foo(...) : String | RegexInjectionTest.java:83:26:83:52 | ... + ... | provenance | Sink:MaD:2 | +| RegexInjectionTest.java:83:36:83:42 | pattern : String | RegexInjectionTest.java:83:32:83:43 | foo(...) : String | provenance | | +| RegexInjectionTest.java:83:36:83:42 | pattern : String | RegexInjectionTest.java:86:14:86:23 | str : String | provenance | | +| RegexInjectionTest.java:86:14:86:23 | str : String | RegexInjectionTest.java:87:12:87:14 | str : String | provenance | | +| RegexInjectionTest.java:91:22:91:52 | getParameter(...) : String | RegexInjectionTest.java:94:40:94:46 | pattern | provenance | Src:MaD:16 Sink:MaD:10 | +| RegexInjectionTest.java:98:22:98:52 | getParameter(...) : String | RegexInjectionTest.java:101:42:101:48 | pattern | provenance | Src:MaD:16 Sink:MaD:11 | +| RegexInjectionTest.java:105:22:105:52 | getParameter(...) : String | RegexInjectionTest.java:108:44:108:50 | pattern | provenance | Src:MaD:16 Sink:MaD:12 | +| RegexInjectionTest.java:112:22:112:52 | getParameter(...) : String | RegexInjectionTest.java:115:41:115:47 | pattern | provenance | Src:MaD:16 Sink:MaD:13 | +| RegexInjectionTest.java:119:22:119:52 | getParameter(...) : String | RegexInjectionTest.java:122:43:122:49 | pattern | provenance | Src:MaD:16 Sink:MaD:14 | +| RegexInjectionTest.java:134:22:134:52 | getParameter(...) : String | RegexInjectionTest.java:137:45:137:51 | pattern | provenance | Src:MaD:16 Sink:MaD:15 | +| RegexInjectionTest.java:157:22:157:52 | getParameter(...) : String | RegexInjectionTest.java:158:31:158:37 | pattern | provenance | Src:MaD:16 Sink:MaD:1 | +| RegexInjectionTest.java:162:22:162:52 | getParameter(...) : String | RegexInjectionTest.java:164:41:164:47 | pattern | provenance | Src:MaD:16 Sink:MaD:7 | +models +| 1 | Sink: com.google.common.base; Splitter; false; onPattern; (String); ; Argument[0]; regex-use[]; manual | +| 2 | Sink: java.lang; String; false; matches; (String); ; Argument[0]; regex-use[f-1]; manual | +| 3 | Sink: java.lang; String; false; replaceAll; (String,String); ; Argument[0]; regex-use[-1]; manual | +| 4 | Sink: java.lang; String; false; replaceFirst; (String,String); ; Argument[0]; regex-use[-1]; manual | +| 5 | Sink: java.lang; String; false; split; (String); ; Argument[0]; regex-use[-1]; manual | +| 6 | Sink: java.lang; String; false; split; (String,int); ; Argument[0]; regex-use[-1]; manual | +| 7 | Sink: java.util.regex; Pattern; false; compile; (String); ; Argument[0]; regex-use[]; manual | +| 8 | Sink: java.util.regex; Pattern; false; compile; (String,int); ; Argument[0]; regex-use[]; manual | +| 9 | Sink: java.util.regex; Pattern; false; matches; (String,CharSequence); ; Argument[0]; regex-use[f1]; manual | +| 10 | Sink: org.apache.commons.lang3; RegExUtils; false; removeAll; (String,String); ; Argument[1]; regex-use; manual | +| 11 | Sink: org.apache.commons.lang3; RegExUtils; false; removeFirst; (String,String); ; Argument[1]; regex-use; manual | +| 12 | Sink: org.apache.commons.lang3; RegExUtils; false; removePattern; (String,String); ; Argument[1]; regex-use; manual | +| 13 | Sink: org.apache.commons.lang3; RegExUtils; false; replaceAll; (String,String,String); ; Argument[1]; regex-use; manual | +| 14 | Sink: org.apache.commons.lang3; RegExUtils; false; replaceFirst; (String,String,String); ; Argument[1]; regex-use; manual | +| 15 | Sink: org.apache.commons.lang3; RegExUtils; false; replacePattern; (String,String,String); ; Argument[1]; regex-use; manual | +| 16 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +nodes +| RegexInjectionTest.java:14:22:14:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:17:26:17:47 | ... + ... | semmle.label | ... + ... | +| RegexInjectionTest.java:21:22:21:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:24:24:24:30 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:28:22:28:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:31:24:31:30 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:35:22:35:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:38:31:38:37 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:42:22:42:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:45:29:45:35 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:49:22:49:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:52:34:52:40 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:59:22:59:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:62:28:62:34 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:66:22:66:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:69:28:69:34 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:73:22:73:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:76:28:76:34 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:80:22:80:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:83:26:83:52 | ... + ... | semmle.label | ... + ... | +| RegexInjectionTest.java:83:32:83:43 | foo(...) : String | semmle.label | foo(...) : String | +| RegexInjectionTest.java:83:36:83:42 | pattern : String | semmle.label | pattern : String | +| RegexInjectionTest.java:86:14:86:23 | str : String | semmle.label | str : String | +| RegexInjectionTest.java:87:12:87:14 | str : String | semmle.label | str : String | +| RegexInjectionTest.java:91:22:91:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:94:40:94:46 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:98:22:98:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:101:42:101:48 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:105:22:105:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:108:44:108:50 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:112:22:112:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:115:41:115:47 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:119:22:119:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:122:43:122:49 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:134:22:134:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:137:45:137:51 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:157:22:157:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:158:31:158:37 | pattern | semmle.label | pattern | +| RegexInjectionTest.java:162:22:162:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| RegexInjectionTest.java:164:41:164:47 | pattern | semmle.label | pattern | +subpaths +| RegexInjectionTest.java:83:36:83:42 | pattern : String | RegexInjectionTest.java:86:14:86:23 | str : String | RegexInjectionTest.java:87:12:87:14 | str : String | RegexInjectionTest.java:83:32:83:43 | foo(...) : String | diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.java b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.java similarity index 68% rename from java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.java rename to java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.java index 5c7a3ca0574..c4643de9a77 100644 --- a/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.java +++ b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.java @@ -11,76 +11,76 @@ import com.google.common.base.Splitter; public class RegexInjectionTest extends HttpServlet { public boolean string1(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.matches("^" + pattern + "=.*$"); // $ hasRegexInjection + return input.matches("^" + pattern + "=.*$"); // $ Alert } public boolean string2(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.split(pattern).length > 0; // $ hasRegexInjection + return input.split(pattern).length > 0; // $ Alert } public boolean string3(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.split(pattern, 0).length > 0; // $ hasRegexInjection + return input.split(pattern, 0).length > 0; // $ Alert } public boolean string4(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.replaceFirst(pattern, "").length() > 0; // $ hasRegexInjection + return input.replaceFirst(pattern, "").length() > 0; // $ Alert } public boolean string5(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.replaceAll(pattern, "").length() > 0; // $ hasRegexInjection + return input.replaceAll(pattern, "").length() > 0; // $ Alert } public boolean pattern1(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - Pattern pt = Pattern.compile(pattern); // $ hasRegexInjection + Pattern pt = Pattern.compile(pattern); // $ Alert Matcher matcher = pt.matcher(input); return matcher.find(); } public boolean pattern2(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return Pattern.compile(pattern).matcher(input).matches(); // $ hasRegexInjection + return Pattern.compile(pattern).matcher(input).matches(); // $ Alert } public boolean pattern3(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return Pattern.compile(pattern, 0).matcher(input).matches(); // $ hasRegexInjection + return Pattern.compile(pattern, 0).matcher(input).matches(); // $ Alert } public boolean pattern4(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return Pattern.matches(pattern, input); // $ hasRegexInjection + return Pattern.matches(pattern, input); // $ Alert } public boolean pattern5(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return input.matches("^" + foo(pattern) + "=.*$"); // $ hasRegexInjection + return input.matches("^" + foo(pattern) + "=.*$"); // $ Alert } String foo(String str) { @@ -88,38 +88,38 @@ public class RegexInjectionTest extends HttpServlet { } public boolean apache1(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.removeAll(input, pattern).length() > 0; // $ hasRegexInjection + return RegExUtils.removeAll(input, pattern).length() > 0; // $ Alert } public boolean apache2(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.removeFirst(input, pattern).length() > 0; // $ hasRegexInjection + return RegExUtils.removeFirst(input, pattern).length() > 0; // $ Alert } public boolean apache3(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.removePattern(input, pattern).length() > 0; // $ hasRegexInjection + return RegExUtils.removePattern(input, pattern).length() > 0; // $ Alert } public boolean apache4(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.replaceAll(input, pattern, "").length() > 0; // $ hasRegexInjection + return RegExUtils.replaceAll(input, pattern, "").length() > 0; // $ Alert } public boolean apache5(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.replaceFirst(input, pattern, "").length() > 0; // $ hasRegexInjection + return RegExUtils.replaceFirst(input, pattern, "").length() > 0; // $ Alert } public boolean apache6(javax.servlet.http.HttpServletRequest request) { @@ -131,10 +131,10 @@ public class RegexInjectionTest extends HttpServlet { } public boolean apache7(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source String input = request.getParameter("input"); - return RegExUtils.replacePattern(input, pattern, "").length() > 0; // $ hasRegexInjection + return RegExUtils.replacePattern(input, pattern, "").length() > 0; // $ Alert } // test `Pattern.quote` sanitizer @@ -154,13 +154,13 @@ public class RegexInjectionTest extends HttpServlet { } public Splitter guava1(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); - return Splitter.onPattern(pattern); // $ hasRegexInjection + String pattern = request.getParameter("pattern"); // $ Source + return Splitter.onPattern(pattern); // $ Alert } public Splitter guava2(javax.servlet.http.HttpServletRequest request) { - String pattern = request.getParameter("pattern"); + String pattern = request.getParameter("pattern"); // $ Source // sink is `Pattern.compile` - return Splitter.on(Pattern.compile(pattern)); // $ hasRegexInjection + return Splitter.on(Pattern.compile(pattern)); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.qlref new file mode 100644 index 00000000000..613229f956b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/RegexInjection/RegexInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-730/RegexInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjection/options b/java/ql/test/query-tests/security/CWE-730/RegexInjection/options new file mode 100644 index 00000000000..591d7fd827b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-730/RegexInjection/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/guava-30.0:${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/apache-commons-lang3-3.7 diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.expected b/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.ql b/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.ql deleted file mode 100644 index cba14c212e9..00000000000 --- a/java/ql/test/query-tests/security/CWE-730/RegexInjectionTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import utils.test.InlineExpectationsTest -import semmle.code.java.security.regexp.RegexInjectionQuery - -module RegexInjectionTest implements TestSig { - string getARelevantTag() { result = "hasRegexInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasRegexInjection" and - exists(RegexInjectionFlow::PathNode sink | RegexInjectionFlow::flowPath(_, sink) | - location = sink.getNode().getLocation() and - element = sink.getNode().toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-730/options b/java/ql/test/query-tests/security/CWE-730/options deleted file mode 100644 index 884cb21114c..00000000000 --- a/java/ql/test/query-tests/security/CWE-730/options +++ /dev/null @@ -1 +0,0 @@ -// semmle-extractor-options: --javac-args -cp ${testdir}/../../../stubs/servlet-api-2.4:${testdir}/../../../stubs/guava-30.0:${testdir}/../../../stubs/servlet-api-2.4:${testdir}/../../../stubs/apache-commons-lang3-3.7 From cadfd0dcaa68486c5a346700004a61bfa455f824 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 11:13:17 +0200 Subject: [PATCH 287/340] Java: convert RsaWithoutOaep test to .qlref --- .../security/CWE-780/RsaWithoutOaepTest.expected | 12 ++++++++++++ .../security/CWE-780/RsaWithoutOaepTest.java | 10 +++++----- .../security/CWE-780/RsaWithoutOaepTest.ql | 4 ---- .../security/CWE-780/RsaWithoutOaepTest.qlref | 4 ++++ 4 files changed, 21 insertions(+), 9 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.expected b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.expected index e69de29bb2d..3509f576dfa 100644 --- a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.expected +++ b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.expected @@ -0,0 +1,12 @@ +#select +| RsaWithoutOaepTest.java:5:44:5:62 | "RSA/ECB/NoPadding" | RsaWithoutOaepTest.java:5:44:5:62 | "RSA/ECB/NoPadding" | RsaWithoutOaepTest.java:5:44:5:62 | "RSA/ECB/NoPadding" | This specification is used to $@ without OAEP padding. | RsaWithoutOaepTest.java:5:44:5:62 | "RSA/ECB/NoPadding" | initialize an RSA cipher | +| RsaWithoutOaepTest.java:15:32:15:50 | "RSA/ECB/NoPadding" : String | RsaWithoutOaepTest.java:15:32:15:50 | "RSA/ECB/NoPadding" : String | RsaWithoutOaepTest.java:11:35:11:38 | spec | This specification is used to $@ without OAEP padding. | RsaWithoutOaepTest.java:11:35:11:38 | spec | initialize an RSA cipher | +edges +| RsaWithoutOaepTest.java:10:29:10:39 | spec : String | RsaWithoutOaepTest.java:11:35:11:38 | spec | provenance | | +| RsaWithoutOaepTest.java:15:32:15:50 | "RSA/ECB/NoPadding" : String | RsaWithoutOaepTest.java:10:29:10:39 | spec : String | provenance | | +nodes +| RsaWithoutOaepTest.java:5:44:5:62 | "RSA/ECB/NoPadding" | semmle.label | "RSA/ECB/NoPadding" | +| RsaWithoutOaepTest.java:10:29:10:39 | spec : String | semmle.label | spec : String | +| RsaWithoutOaepTest.java:11:35:11:38 | spec | semmle.label | spec | +| RsaWithoutOaepTest.java:15:32:15:50 | "RSA/ECB/NoPadding" : String | semmle.label | "RSA/ECB/NoPadding" : String | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.java b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.java index b8a1c73110c..d953522d76b 100644 --- a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.java +++ b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.java @@ -2,16 +2,16 @@ import javax.crypto.Cipher; class RsaWithoutOaep { public void test() throws Exception { - Cipher rsaBad = Cipher.getInstance("RSA/ECB/NoPadding"); // $hasTaintFlow + Cipher rsaBad = Cipher.getInstance("RSA/ECB/NoPadding"); // $ Alert - Cipher rsaGood = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding"); + Cipher rsaGood = Cipher.getInstance("RSA/ECB/OAEPWithSHA-1AndMGF1Padding"); } public Cipher getCipher(String spec) throws Exception { - return Cipher.getInstance(spec); // $hasTaintFlow + return Cipher.getInstance(spec); // $ Sink } public void test2() throws Exception { - Cipher rsa = getCipher("RSA/ECB/NoPadding"); + Cipher rsa = getCipher("RSA/ECB/NoPadding"); // $ Alert } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.ql b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.ql deleted file mode 100644 index b91765e6b7c..00000000000 --- a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.ql +++ /dev/null @@ -1,4 +0,0 @@ -import java -import utils.test.InlineFlowTest -import semmle.code.java.security.RsaWithoutOaepQuery -import TaintFlowTest diff --git a/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.qlref b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.qlref new file mode 100644 index 00000000000..72ada3ecfc2 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-780/RsaWithoutOaepTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-780/RsaWithoutOaep.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From 7f05b72e108b5384d89c6a88e80379b520154495 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 11:17:39 +0200 Subject: [PATCH 288/340] Java: convert OgnlInjection test to .qlref --- .../security/CWE-917/OgnlInjection.java | 54 ++++----- .../CWE-917/OgnlInjectionTest.expected | 109 ++++++++++++++++++ .../security/CWE-917/OgnlInjectionTest.ql | 18 --- .../security/CWE-917/OgnlInjectionTest.qlref | 4 + 4 files changed, 140 insertions(+), 45 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.ql create mode 100644 java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.qlref diff --git a/java/ql/test/query-tests/security/CWE-917/OgnlInjection.java b/java/ql/test/query-tests/security/CWE-917/OgnlInjection.java index 777bbcb06aa..99f641f11d4 100644 --- a/java/ql/test/query-tests/security/CWE-917/OgnlInjection.java +++ b/java/ql/test/query-tests/security/CWE-917/OgnlInjection.java @@ -13,61 +13,61 @@ import org.springframework.web.bind.annotation.RequestMapping; @Controller public class OgnlInjection { @RequestMapping - public void testOgnlParseExpression(@RequestParam String expr) throws Exception { + public void testOgnlParseExpression(@RequestParam String expr) throws Exception { // $ Source Object tree = Ognl.parseExpression(expr); - Ognl.getValue(tree, new HashMap<>(), new Object()); // $hasOgnlInjection - Ognl.setValue(tree, new HashMap<>(), new Object()); // $hasOgnlInjection + Ognl.getValue(tree, new HashMap<>(), new Object()); // $ Alert + Ognl.setValue(tree, new HashMap<>(), new Object()); // $ Alert Node node = (Node) tree; - node.getValue(null, new Object()); // $hasOgnlInjection - node.setValue(null, new Object(), new Object()); // $hasOgnlInjection + node.getValue(null, new Object()); // $ Alert + node.setValue(null, new Object(), new Object()); // $ Alert } @RequestMapping - public void testOgnlCompileExpression(@RequestParam String expr) throws Exception { + public void testOgnlCompileExpression(@RequestParam String expr) throws Exception { // $ Source Node tree = Ognl.compileExpression(null, new Object(), expr); - Ognl.getValue(tree, new HashMap<>(), new Object()); // $hasOgnlInjection - Ognl.setValue(tree, new HashMap<>(), new Object()); // $hasOgnlInjection + Ognl.getValue(tree, new HashMap<>(), new Object()); // $ Alert + Ognl.setValue(tree, new HashMap<>(), new Object()); // $ Alert - tree.getValue(null, new Object()); // $hasOgnlInjection - tree.setValue(null, new Object(), new Object()); // $hasOgnlInjection + tree.getValue(null, new Object()); // $ Alert + tree.setValue(null, new Object(), new Object()); // $ Alert } @RequestMapping - public void testOgnlDirectlyToGetSet(@RequestParam String expr) throws Exception { - Ognl.getValue(expr, new Object()); // $hasOgnlInjection - Ognl.setValue(expr, new Object(), new Object()); // $hasOgnlInjection + public void testOgnlDirectlyToGetSet(@RequestParam String expr) throws Exception { // $ Source + Ognl.getValue(expr, new Object()); // $ Alert + Ognl.setValue(expr, new Object(), new Object()); // $ Alert } @RequestMapping - public void testStruts(@RequestParam String expr) throws Exception { + public void testStruts(@RequestParam String expr) throws Exception { // $ Source OgnlUtil ognl = new OgnlUtil(); - ognl.getValue(expr, new HashMap<>(), new Object()); // $hasOgnlInjection - ognl.setValue(expr, new HashMap<>(), new Object(), new Object()); // $hasOgnlInjection - new OgnlUtil().callMethod(expr, new HashMap<>(), new Object()); // $hasOgnlInjection + ognl.getValue(expr, new HashMap<>(), new Object()); // $ Alert + ognl.setValue(expr, new HashMap<>(), new Object(), new Object()); // $ Alert + new OgnlUtil().callMethod(expr, new HashMap<>(), new Object()); // $ Alert } @RequestMapping - public void testExpressionAccessor(@RequestParam String expr) throws Exception { + public void testExpressionAccessor(@RequestParam String expr) throws Exception { // $ Source Node tree = Ognl.compileExpression(null, new Object(), expr); ExpressionAccessor accessor = tree.getAccessor(); - accessor.get(null, new Object()); // $hasOgnlInjection - accessor.set(null, new Object(), new Object()); // $hasOgnlInjection + accessor.get(null, new Object()); // $ Alert + accessor.set(null, new Object(), new Object()); // $ Alert - Ognl.getValue(accessor, null, new Object()); // $hasOgnlInjection - Ognl.setValue(accessor, null, new Object()); // $hasOgnlInjection + Ognl.getValue(accessor, null, new Object()); // $ Alert + Ognl.setValue(accessor, null, new Object()); // $ Alert } @RequestMapping - public void testExpressionAccessorSetExpression(@RequestParam String expr) throws Exception { + public void testExpressionAccessorSetExpression(@RequestParam String expr) throws Exception { // $ Source Node tree = Ognl.compileExpression(null, new Object(), "\"some safe expression\".toString()"); ExpressionAccessor accessor = tree.getAccessor(); Node taintedTree = Ognl.compileExpression(null, new Object(), expr); accessor.setExpression(taintedTree); - accessor.get(null, new Object()); // $hasOgnlInjection - accessor.set(null, new Object(), new Object()); // $hasOgnlInjection + accessor.get(null, new Object()); // $ Alert + accessor.set(null, new Object(), new Object()); // $ Alert - Ognl.getValue(accessor, null, new Object()); // $hasOgnlInjection - Ognl.setValue(accessor, null, new Object()); // $hasOgnlInjection + Ognl.getValue(accessor, null, new Object()); // $ Alert + Ognl.setValue(accessor, null, new Object()); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.expected b/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.expected index e69de29bb2d..bcdf14e0c2b 100644 --- a/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.expected +++ b/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.expected @@ -0,0 +1,109 @@ +#select +| OgnlInjection.java:18:19:18:22 | tree | OgnlInjection.java:16:39:16:63 | expr : String | OgnlInjection.java:18:19:18:22 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:16:39:16:63 | expr | user-provided value | +| OgnlInjection.java:19:19:19:22 | tree | OgnlInjection.java:16:39:16:63 | expr : String | OgnlInjection.java:19:19:19:22 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:16:39:16:63 | expr | user-provided value | +| OgnlInjection.java:22:5:22:8 | node | OgnlInjection.java:16:39:16:63 | expr : String | OgnlInjection.java:22:5:22:8 | node | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:16:39:16:63 | expr | user-provided value | +| OgnlInjection.java:23:5:23:8 | node | OgnlInjection.java:16:39:16:63 | expr : String | OgnlInjection.java:23:5:23:8 | node | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:16:39:16:63 | expr | user-provided value | +| OgnlInjection.java:29:19:29:22 | tree | OgnlInjection.java:27:41:27:65 | expr : String | OgnlInjection.java:29:19:29:22 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:27:41:27:65 | expr | user-provided value | +| OgnlInjection.java:30:19:30:22 | tree | OgnlInjection.java:27:41:27:65 | expr : String | OgnlInjection.java:30:19:30:22 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:27:41:27:65 | expr | user-provided value | +| OgnlInjection.java:32:5:32:8 | tree | OgnlInjection.java:27:41:27:65 | expr : String | OgnlInjection.java:32:5:32:8 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:27:41:27:65 | expr | user-provided value | +| OgnlInjection.java:33:5:33:8 | tree | OgnlInjection.java:27:41:27:65 | expr : String | OgnlInjection.java:33:5:33:8 | tree | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:27:41:27:65 | expr | user-provided value | +| OgnlInjection.java:38:19:38:22 | expr | OgnlInjection.java:37:40:37:64 | expr : String | OgnlInjection.java:38:19:38:22 | expr | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:37:40:37:64 | expr | user-provided value | +| OgnlInjection.java:39:19:39:22 | expr | OgnlInjection.java:37:40:37:64 | expr : String | OgnlInjection.java:39:19:39:22 | expr | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:37:40:37:64 | expr | user-provided value | +| OgnlInjection.java:45:19:45:22 | expr | OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:45:19:45:22 | expr | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:43:26:43:50 | expr | user-provided value | +| OgnlInjection.java:46:19:46:22 | expr | OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:46:19:46:22 | expr | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:43:26:43:50 | expr | user-provided value | +| OgnlInjection.java:47:31:47:34 | expr | OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:47:31:47:34 | expr | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:43:26:43:50 | expr | user-provided value | +| OgnlInjection.java:54:5:54:12 | accessor | OgnlInjection.java:51:38:51:62 | expr : String | OgnlInjection.java:54:5:54:12 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:51:38:51:62 | expr | user-provided value | +| OgnlInjection.java:55:5:55:12 | accessor | OgnlInjection.java:51:38:51:62 | expr : String | OgnlInjection.java:55:5:55:12 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:51:38:51:62 | expr | user-provided value | +| OgnlInjection.java:57:19:57:26 | accessor | OgnlInjection.java:51:38:51:62 | expr : String | OgnlInjection.java:57:19:57:26 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:51:38:51:62 | expr | user-provided value | +| OgnlInjection.java:58:19:58:26 | accessor | OgnlInjection.java:51:38:51:62 | expr : String | OgnlInjection.java:58:19:58:26 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:51:38:51:62 | expr | user-provided value | +| OgnlInjection.java:67:5:67:12 | accessor | OgnlInjection.java:62:51:62:75 | expr : String | OgnlInjection.java:67:5:67:12 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:62:51:62:75 | expr | user-provided value | +| OgnlInjection.java:68:5:68:12 | accessor | OgnlInjection.java:62:51:62:75 | expr : String | OgnlInjection.java:68:5:68:12 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:62:51:62:75 | expr | user-provided value | +| OgnlInjection.java:70:19:70:26 | accessor | OgnlInjection.java:62:51:62:75 | expr : String | OgnlInjection.java:70:19:70:26 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:62:51:62:75 | expr | user-provided value | +| OgnlInjection.java:71:19:71:26 | accessor | OgnlInjection.java:62:51:62:75 | expr : String | OgnlInjection.java:71:19:71:26 | accessor | OGNL Expression Language statement depends on a $@. | OgnlInjection.java:62:51:62:75 | expr | user-provided value | +edges +| OgnlInjection.java:16:39:16:63 | expr : String | OgnlInjection.java:17:40:17:43 | expr : String | provenance | | +| OgnlInjection.java:17:19:17:44 | parseExpression(...) : Object | OgnlInjection.java:18:19:18:22 | tree | provenance | Sink:MaD:8 | +| OgnlInjection.java:17:19:17:44 | parseExpression(...) : Object | OgnlInjection.java:19:19:19:22 | tree | provenance | Sink:MaD:9 | +| OgnlInjection.java:17:19:17:44 | parseExpression(...) : Object | OgnlInjection.java:21:17:21:27 | (...)... : Object | provenance | | +| OgnlInjection.java:17:40:17:43 | expr : String | OgnlInjection.java:17:19:17:44 | parseExpression(...) : Object | provenance | Config | +| OgnlInjection.java:21:17:21:27 | (...)... : Object | OgnlInjection.java:22:5:22:8 | node | provenance | Sink:MaD:6 | +| OgnlInjection.java:21:17:21:27 | (...)... : Object | OgnlInjection.java:23:5:23:8 | node | provenance | Sink:MaD:7 | +| OgnlInjection.java:27:41:27:65 | expr : String | OgnlInjection.java:28:60:28:63 | expr : String | provenance | | +| OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | OgnlInjection.java:29:19:29:22 | tree | provenance | Sink:MaD:8 | +| OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | OgnlInjection.java:30:19:30:22 | tree | provenance | Sink:MaD:9 | +| OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | OgnlInjection.java:32:5:32:8 | tree | provenance | Sink:MaD:6 | +| OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | OgnlInjection.java:33:5:33:8 | tree | provenance | Sink:MaD:7 | +| OgnlInjection.java:28:60:28:63 | expr : String | OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | provenance | Config | +| OgnlInjection.java:37:40:37:64 | expr : String | OgnlInjection.java:38:19:38:22 | expr | provenance | Sink:MaD:8 | +| OgnlInjection.java:37:40:37:64 | expr : String | OgnlInjection.java:39:19:39:22 | expr | provenance | Sink:MaD:9 | +| OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:45:19:45:22 | expr | provenance | Sink:MaD:2 | +| OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:46:19:46:22 | expr | provenance | Sink:MaD:3 | +| OgnlInjection.java:43:26:43:50 | expr : String | OgnlInjection.java:47:31:47:34 | expr | provenance | Sink:MaD:1 | +| OgnlInjection.java:51:38:51:62 | expr : String | OgnlInjection.java:52:60:52:63 | expr : String | provenance | | +| OgnlInjection.java:52:17:52:64 | compileExpression(...) : Node | OgnlInjection.java:53:35:53:38 | tree : Node | provenance | | +| OgnlInjection.java:52:60:52:63 | expr : String | OgnlInjection.java:52:17:52:64 | compileExpression(...) : Node | provenance | Config | +| OgnlInjection.java:53:35:53:38 | tree : Node | OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | provenance | Config | +| OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | OgnlInjection.java:54:5:54:12 | accessor | provenance | Sink:MaD:4 | +| OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | OgnlInjection.java:55:5:55:12 | accessor | provenance | Sink:MaD:5 | +| OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | OgnlInjection.java:57:19:57:26 | accessor | provenance | Sink:MaD:8 | +| OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | OgnlInjection.java:58:19:58:26 | accessor | provenance | Sink:MaD:9 | +| OgnlInjection.java:62:51:62:75 | expr : String | OgnlInjection.java:65:67:65:70 | expr : String | provenance | | +| OgnlInjection.java:65:24:65:71 | compileExpression(...) : Node | OgnlInjection.java:66:28:66:38 | taintedTree : Node | provenance | | +| OgnlInjection.java:65:67:65:70 | expr : String | OgnlInjection.java:65:24:65:71 | compileExpression(...) : Node | provenance | Config | +| OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | OgnlInjection.java:67:5:67:12 | accessor | provenance | Sink:MaD:4 | +| OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | OgnlInjection.java:68:5:68:12 | accessor | provenance | Sink:MaD:5 | +| OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | OgnlInjection.java:70:19:70:26 | accessor | provenance | Sink:MaD:8 | +| OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | OgnlInjection.java:71:19:71:26 | accessor | provenance | Sink:MaD:9 | +| OgnlInjection.java:66:28:66:38 | taintedTree : Node | OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | provenance | Config | +models +| 1 | Sink: com.opensymphony.xwork2.ognl; OgnlUtil; false; callMethod; ; ; Argument[0]; ognl-injection; manual | +| 2 | Sink: com.opensymphony.xwork2.ognl; OgnlUtil; false; getValue; ; ; Argument[0]; ognl-injection; manual | +| 3 | Sink: com.opensymphony.xwork2.ognl; OgnlUtil; false; setValue; ; ; Argument[0]; ognl-injection; manual | +| 4 | Sink: ognl.enhance; ExpressionAccessor; true; get; ; ; Argument[this]; ognl-injection; manual | +| 5 | Sink: ognl.enhance; ExpressionAccessor; true; set; ; ; Argument[this]; ognl-injection; manual | +| 6 | Sink: ognl; Node; false; getValue; ; ; Argument[this]; ognl-injection; manual | +| 7 | Sink: ognl; Node; false; setValue; ; ; Argument[this]; ognl-injection; manual | +| 8 | Sink: ognl; Ognl; false; getValue; ; ; Argument[0]; ognl-injection; manual | +| 9 | Sink: ognl; Ognl; false; setValue; ; ; Argument[0]; ognl-injection; manual | +nodes +| OgnlInjection.java:16:39:16:63 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:17:19:17:44 | parseExpression(...) : Object | semmle.label | parseExpression(...) : Object | +| OgnlInjection.java:17:40:17:43 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:18:19:18:22 | tree | semmle.label | tree | +| OgnlInjection.java:19:19:19:22 | tree | semmle.label | tree | +| OgnlInjection.java:21:17:21:27 | (...)... : Object | semmle.label | (...)... : Object | +| OgnlInjection.java:22:5:22:8 | node | semmle.label | node | +| OgnlInjection.java:23:5:23:8 | node | semmle.label | node | +| OgnlInjection.java:27:41:27:65 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:28:17:28:64 | compileExpression(...) : Node | semmle.label | compileExpression(...) : Node | +| OgnlInjection.java:28:60:28:63 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:29:19:29:22 | tree | semmle.label | tree | +| OgnlInjection.java:30:19:30:22 | tree | semmle.label | tree | +| OgnlInjection.java:32:5:32:8 | tree | semmle.label | tree | +| OgnlInjection.java:33:5:33:8 | tree | semmle.label | tree | +| OgnlInjection.java:37:40:37:64 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:38:19:38:22 | expr | semmle.label | expr | +| OgnlInjection.java:39:19:39:22 | expr | semmle.label | expr | +| OgnlInjection.java:43:26:43:50 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:45:19:45:22 | expr | semmle.label | expr | +| OgnlInjection.java:46:19:46:22 | expr | semmle.label | expr | +| OgnlInjection.java:47:31:47:34 | expr | semmle.label | expr | +| OgnlInjection.java:51:38:51:62 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:52:17:52:64 | compileExpression(...) : Node | semmle.label | compileExpression(...) : Node | +| OgnlInjection.java:52:60:52:63 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:53:35:53:38 | tree : Node | semmle.label | tree : Node | +| OgnlInjection.java:53:35:53:52 | getAccessor(...) : ExpressionAccessor | semmle.label | getAccessor(...) : ExpressionAccessor | +| OgnlInjection.java:54:5:54:12 | accessor | semmle.label | accessor | +| OgnlInjection.java:55:5:55:12 | accessor | semmle.label | accessor | +| OgnlInjection.java:57:19:57:26 | accessor | semmle.label | accessor | +| OgnlInjection.java:58:19:58:26 | accessor | semmle.label | accessor | +| OgnlInjection.java:62:51:62:75 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:65:24:65:71 | compileExpression(...) : Node | semmle.label | compileExpression(...) : Node | +| OgnlInjection.java:65:67:65:70 | expr : String | semmle.label | expr : String | +| OgnlInjection.java:66:5:66:12 | accessor [post update] : ExpressionAccessor | semmle.label | accessor [post update] : ExpressionAccessor | +| OgnlInjection.java:66:28:66:38 | taintedTree : Node | semmle.label | taintedTree : Node | +| OgnlInjection.java:67:5:67:12 | accessor | semmle.label | accessor | +| OgnlInjection.java:68:5:68:12 | accessor | semmle.label | accessor | +| OgnlInjection.java:70:19:70:26 | accessor | semmle.label | accessor | +| OgnlInjection.java:71:19:71:26 | accessor | semmle.label | accessor | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.ql b/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.ql deleted file mode 100644 index 5957bdf5fa2..00000000000 --- a/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.OgnlInjectionQuery -import utils.test.InlineExpectationsTest - -module OgnlInjectionTest implements TestSig { - string getARelevantTag() { result = "hasOgnlInjection" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasOgnlInjection" and - exists(DataFlow::Node sink | OgnlInjectionFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.qlref b/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.qlref new file mode 100644 index 00000000000..f27fdc29657 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-917/OgnlInjectionTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-917/OgnlInjection.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From aac4f63e9ab6148268901bdf98012e626c64f37b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 11:28:40 +0200 Subject: [PATCH 289/340] Java: convert RequestForgery test to .qlref --- .../security/CWE-918/ApacheHttpSSRF.java | 50 +- .../CWE-918/ApacheHttpSSRFVersion5.java | 376 ++-- .../security/CWE-918/JakartaWsSSRF.java | 4 +- .../security/CWE-918/JavaNetHttpSSRF.java | 12 +- .../security/CWE-918/JaxWsSSRF.java | 4 +- .../security/CWE-918/JdbcUrlSSRF.java | 62 +- .../CWE-918/ReactiveWebClientSSRF.java | 10 +- .../security/CWE-918/RequestForgery.expected | 1825 +++++++++++++++++ .../security/CWE-918/RequestForgery.ql | 19 - .../security/CWE-918/RequestForgery.qlref | 4 + .../security/CWE-918/SanitizationTests.java | 74 +- .../security/CWE-918/SpringSSRF.java | 62 +- .../security/CWE-918/URLClassLoaderSSRF.java | 26 +- .../security/CWE-918/mad/Test.java | 62 +- 14 files changed, 2200 insertions(+), 390 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-918/RequestForgery.ql create mode 100644 java/ql/test/query-tests/security/CWE-918/RequestForgery.qlref diff --git a/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRF.java b/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRF.java index a3f476ccfec..0fcb3c12975 100644 --- a/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRF.java @@ -24,38 +24,38 @@ public class ApacheHttpSSRF extends HttpServlet { throws ServletException, IOException { try { - String sink = request.getParameter("uri"); + String sink = request.getParameter("uri"); // $ Source URI uri = new URI(sink); - HttpGet httpGet = new HttpGet(uri); // $ SSRF + HttpGet httpGet = new HttpGet(uri); // $ Alert HttpGet httpGet2 = new HttpGet(); - httpGet2.setURI(uri); // $ SSRF + httpGet2.setURI(uri); // $ Alert - new HttpHead(uri); // $ SSRF - new HttpPost(uri); // $ SSRF - new HttpPut(uri); // $ SSRF - new HttpDelete(uri); // $ SSRF - new HttpOptions(uri); // $ SSRF - new HttpTrace(uri); // $ SSRF - new HttpPatch(uri); // $ SSRF + new HttpHead(uri); // $ Alert + new HttpPost(uri); // $ Alert + new HttpPut(uri); // $ Alert + new HttpDelete(uri); // $ Alert + new HttpOptions(uri); // $ Alert + new HttpTrace(uri); // $ Alert + new HttpPatch(uri); // $ Alert - new BasicHttpRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ SSRF - new BasicHttpRequest("GET", uri.toString()); // $ SSRF - new BasicHttpRequest("GET", uri.toString(), null); // $ SSRF + new BasicHttpRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ Alert + new BasicHttpRequest("GET", uri.toString()); // $ Alert + new BasicHttpRequest("GET", uri.toString(), null); // $ Alert - new BasicHttpEntityEnclosingRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ SSRF - new BasicHttpEntityEnclosingRequest("GET", uri.toString()); // $ SSRF - new BasicHttpEntityEnclosingRequest("GET", uri.toString(), null); // $ SSRF + new BasicHttpEntityEnclosingRequest(new BasicRequestLine("GET", uri.toString(), null)); // $ Alert + new BasicHttpEntityEnclosingRequest("GET", uri.toString()); // $ Alert + new BasicHttpEntityEnclosingRequest("GET", uri.toString(), null); // $ Alert - RequestBuilder.get(uri); // $ SSRF - RequestBuilder.post(uri); // $ SSRF - RequestBuilder.put(uri); // $ SSRF - RequestBuilder.delete(uri); // $ SSRF - RequestBuilder.options(uri); // $ SSRF - RequestBuilder.head(uri); // $ SSRF - RequestBuilder.trace(uri); // $ SSRF - RequestBuilder.patch(uri); // $ SSRF - RequestBuilder.get("").setUri(uri); // $ SSRF + RequestBuilder.get(uri); // $ Alert + RequestBuilder.post(uri); // $ Alert + RequestBuilder.put(uri); // $ Alert + RequestBuilder.delete(uri); // $ Alert + RequestBuilder.options(uri); // $ Alert + RequestBuilder.head(uri); // $ Alert + RequestBuilder.trace(uri); // $ Alert + RequestBuilder.patch(uri); // $ Alert + RequestBuilder.get("").setUri(uri); // $ Alert } catch (Exception e) { // TODO: handle exception diff --git a/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRFVersion5.java b/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRFVersion5.java index de22dd02fac..ad9bf4546a9 100644 --- a/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRFVersion5.java +++ b/java/ql/test/query-tests/security/CWE-918/ApacheHttpSSRFVersion5.java @@ -38,134 +38,134 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); - String hostSink = request.getParameter("host"); + String hostSink = request.getParameter("host"); // $ Source HttpHost host = new HttpHost(hostSink); // org.apache.hc.client5.http.async.methods.BasicHttpRequests - BasicHttpRequests.create(Method.CONNECT, host, "path"); // $ SSRF - BasicHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF - BasicHttpRequests.create(Method.CONNECT, uri); // $ SSRF - BasicHttpRequests.create("method", uri.toString()); // $ SSRF - BasicHttpRequests.create("method", uri); // $ SSRF + BasicHttpRequests.create(Method.CONNECT, host, "path"); // $ Alert + BasicHttpRequests.create(Method.CONNECT, uri.toString()); // $ Alert + BasicHttpRequests.create(Method.CONNECT, uri); // $ Alert + BasicHttpRequests.create("method", uri.toString()); // $ Alert + BasicHttpRequests.create("method", uri); // $ Alert - BasicHttpRequests.delete(host, "path"); // $ SSRF - BasicHttpRequests.delete(uri.toString()); // $ SSRF - BasicHttpRequests.delete(uri); // $ SSRF + BasicHttpRequests.delete(host, "path"); // $ Alert + BasicHttpRequests.delete(uri.toString()); // $ Alert + BasicHttpRequests.delete(uri); // $ Alert - BasicHttpRequests.get(host, "path"); // $ SSRF - BasicHttpRequests.get(uri.toString()); // $ SSRF - BasicHttpRequests.get(uri); // $ SSRF + BasicHttpRequests.get(host, "path"); // $ Alert + BasicHttpRequests.get(uri.toString()); // $ Alert + BasicHttpRequests.get(uri); // $ Alert - BasicHttpRequests.head(host, "path"); // $ SSRF - BasicHttpRequests.head(uri.toString()); // $ SSRF - BasicHttpRequests.head(uri); // $ SSRF + BasicHttpRequests.head(host, "path"); // $ Alert + BasicHttpRequests.head(uri.toString()); // $ Alert + BasicHttpRequests.head(uri); // $ Alert - BasicHttpRequests.options(host, "path"); // $ SSRF - BasicHttpRequests.options(uri.toString()); // $ SSRF - BasicHttpRequests.options(uri); // $ SSRF + BasicHttpRequests.options(host, "path"); // $ Alert + BasicHttpRequests.options(uri.toString()); // $ Alert + BasicHttpRequests.options(uri); // $ Alert - BasicHttpRequests.patch(host, "path"); // $ SSRF - BasicHttpRequests.patch(uri.toString()); // $ SSRF - BasicHttpRequests.patch(uri); // $ SSRF + BasicHttpRequests.patch(host, "path"); // $ Alert + BasicHttpRequests.patch(uri.toString()); // $ Alert + BasicHttpRequests.patch(uri); // $ Alert - BasicHttpRequests.post(host, "path"); // $ SSRF - BasicHttpRequests.post(uri.toString()); // $ SSRF - BasicHttpRequests.post(uri); // $ SSRF + BasicHttpRequests.post(host, "path"); // $ Alert + BasicHttpRequests.post(uri.toString()); // $ Alert + BasicHttpRequests.post(uri); // $ Alert - BasicHttpRequests.put(host, "path"); // $ SSRF - BasicHttpRequests.put(uri.toString()); // $ SSRF - BasicHttpRequests.put(uri); // $ SSRF + BasicHttpRequests.put(host, "path"); // $ Alert + BasicHttpRequests.put(uri.toString()); // $ Alert + BasicHttpRequests.put(uri); // $ Alert - BasicHttpRequests.trace(host, "path"); // $ SSRF - BasicHttpRequests.trace(uri.toString()); // $ SSRF - BasicHttpRequests.trace(uri); // $ SSRF + BasicHttpRequests.trace(host, "path"); // $ Alert + BasicHttpRequests.trace(uri.toString()); // $ Alert + BasicHttpRequests.trace(uri); // $ Alert // org.apache.hc.client5.http.async.methods.ConfigurableHttpRequest - new ConfigurableHttpRequest("method", host, "path"); // $ SSRF - new ConfigurableHttpRequest("method", uri); // $ SSRF + new ConfigurableHttpRequest("method", host, "path"); // $ Alert + new ConfigurableHttpRequest("method", uri); // $ Alert // org.apache.hc.client5.http.async.methods.SimpleHttpRequest - new SimpleHttpRequest(Method.CONNECT, host, "path"); // $ SSRF - new SimpleHttpRequest(Method.CONNECT, uri); // $ SSRF - new SimpleHttpRequest("method", host, "path"); // $ SSRF - new SimpleHttpRequest("method", uri); // $ SSRF + new SimpleHttpRequest(Method.CONNECT, host, "path"); // $ Alert + new SimpleHttpRequest(Method.CONNECT, uri); // $ Alert + new SimpleHttpRequest("method", host, "path"); // $ Alert + new SimpleHttpRequest("method", uri); // $ Alert - SimpleHttpRequest.create(Method.CONNECT, host, "path"); // $ SSRF - SimpleHttpRequest.create(Method.CONNECT, uri); // $ SSRF - SimpleHttpRequest.create("method", uri.toString()); // $ SSRF - SimpleHttpRequest.create("method", uri); // $ SSRF + SimpleHttpRequest.create(Method.CONNECT, host, "path"); // $ Alert + SimpleHttpRequest.create(Method.CONNECT, uri); // $ Alert + SimpleHttpRequest.create("method", uri.toString()); // $ Alert + SimpleHttpRequest.create("method", uri); // $ Alert // org.apache.hc.client5.http.async.methods.SimpleHttpRequests - SimpleHttpRequests.create(Method.CONNECT, host, "path"); // $ SSRF - SimpleHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF - SimpleHttpRequests.create(Method.CONNECT, uri); // $ SSRF - SimpleHttpRequests.create("method", uri.toString()); // $ SSRF - SimpleHttpRequests.create("method", uri); // $ SSRF + SimpleHttpRequests.create(Method.CONNECT, host, "path"); // $ Alert + SimpleHttpRequests.create(Method.CONNECT, uri.toString()); // $ Alert + SimpleHttpRequests.create(Method.CONNECT, uri); // $ Alert + SimpleHttpRequests.create("method", uri.toString()); // $ Alert + SimpleHttpRequests.create("method", uri); // $ Alert - SimpleHttpRequests.delete(host, "path"); // $ SSRF - SimpleHttpRequests.delete(uri.toString()); // $ SSRF - SimpleHttpRequests.delete(uri); // $ SSRF + SimpleHttpRequests.delete(host, "path"); // $ Alert + SimpleHttpRequests.delete(uri.toString()); // $ Alert + SimpleHttpRequests.delete(uri); // $ Alert - SimpleHttpRequests.get(host, "path"); // $ SSRF - SimpleHttpRequests.get(uri.toString()); // $ SSRF - SimpleHttpRequests.get(uri); // $ SSRF + SimpleHttpRequests.get(host, "path"); // $ Alert + SimpleHttpRequests.get(uri.toString()); // $ Alert + SimpleHttpRequests.get(uri); // $ Alert - SimpleHttpRequests.head(host, "path"); // $ SSRF - SimpleHttpRequests.head(uri.toString()); // $ SSRF - SimpleHttpRequests.head(uri); // $ SSRF + SimpleHttpRequests.head(host, "path"); // $ Alert + SimpleHttpRequests.head(uri.toString()); // $ Alert + SimpleHttpRequests.head(uri); // $ Alert - SimpleHttpRequests.options(host, "path"); // $ SSRF - SimpleHttpRequests.options(uri.toString()); // $ SSRF - SimpleHttpRequests.options(uri); // $ SSRF + SimpleHttpRequests.options(host, "path"); // $ Alert + SimpleHttpRequests.options(uri.toString()); // $ Alert + SimpleHttpRequests.options(uri); // $ Alert - SimpleHttpRequests.patch(host, "path"); // $ SSRF - SimpleHttpRequests.patch(uri.toString()); // $ SSRF - SimpleHttpRequests.patch(uri); // $ SSRF + SimpleHttpRequests.patch(host, "path"); // $ Alert + SimpleHttpRequests.patch(uri.toString()); // $ Alert + SimpleHttpRequests.patch(uri); // $ Alert - SimpleHttpRequests.post(host, "path"); // $ SSRF - SimpleHttpRequests.post(uri.toString()); // $ SSRF - SimpleHttpRequests.post(uri); // $ SSRF + SimpleHttpRequests.post(host, "path"); // $ Alert + SimpleHttpRequests.post(uri.toString()); // $ Alert + SimpleHttpRequests.post(uri); // $ Alert - SimpleHttpRequests.put(host, "path"); // $ SSRF - SimpleHttpRequests.put(uri.toString()); // $ SSRF - SimpleHttpRequests.put(uri); // $ SSRF + SimpleHttpRequests.put(host, "path"); // $ Alert + SimpleHttpRequests.put(uri.toString()); // $ Alert + SimpleHttpRequests.put(uri); // $ Alert - SimpleHttpRequests.trace(host, "path"); // $ SSRF - SimpleHttpRequests.trace(uri.toString()); // $ SSRF - SimpleHttpRequests.trace(uri); // $ SSRF + SimpleHttpRequests.trace(host, "path"); // $ Alert + SimpleHttpRequests.trace(uri.toString()); // $ Alert + SimpleHttpRequests.trace(uri); // $ Alert // org.apache.hc.client5.http.async.methods.SimpleRequestBuilder - SimpleRequestBuilder.delete(uri.toString()); // $ SSRF - SimpleRequestBuilder.delete(uri); // $ SSRF + SimpleRequestBuilder.delete(uri.toString()); // $ Alert + SimpleRequestBuilder.delete(uri); // $ Alert - SimpleRequestBuilder.get(uri.toString()); // $ SSRF - SimpleRequestBuilder.get(uri); // $ SSRF + SimpleRequestBuilder.get(uri.toString()); // $ Alert + SimpleRequestBuilder.get(uri); // $ Alert - SimpleRequestBuilder.head(uri.toString()); // $ SSRF - SimpleRequestBuilder.head(uri); // $ SSRF + SimpleRequestBuilder.head(uri.toString()); // $ Alert + SimpleRequestBuilder.head(uri); // $ Alert - SimpleRequestBuilder.options(uri.toString()); // $ SSRF - SimpleRequestBuilder.options(uri); // $ SSRF + SimpleRequestBuilder.options(uri.toString()); // $ Alert + SimpleRequestBuilder.options(uri); // $ Alert - SimpleRequestBuilder.patch(uri.toString()); // $ SSRF - SimpleRequestBuilder.patch(uri); // $ SSRF + SimpleRequestBuilder.patch(uri.toString()); // $ Alert + SimpleRequestBuilder.patch(uri); // $ Alert - SimpleRequestBuilder.post(uri.toString()); // $ SSRF - SimpleRequestBuilder.post(uri); // $ SSRF + SimpleRequestBuilder.post(uri.toString()); // $ Alert + SimpleRequestBuilder.post(uri); // $ Alert - SimpleRequestBuilder.put(uri.toString()); // $ SSRF - SimpleRequestBuilder.put(uri); // $ SSRF + SimpleRequestBuilder.put(uri.toString()); // $ Alert + SimpleRequestBuilder.put(uri); // $ Alert - SimpleRequestBuilder.get().setHttpHost(host); // $ SSRF + SimpleRequestBuilder.get().setHttpHost(host); // $ Alert - SimpleRequestBuilder.get().setUri(uri.toString()); // $ SSRF - SimpleRequestBuilder.get().setUri(uri); // $ SSRF + SimpleRequestBuilder.get().setUri(uri.toString()); // $ Alert + SimpleRequestBuilder.get().setUri(uri); // $ Alert - SimpleRequestBuilder.trace(uri.toString()); // $ SSRF - SimpleRequestBuilder.trace(uri); // $ SSRF + SimpleRequestBuilder.trace(uri.toString()); // $ Alert + SimpleRequestBuilder.trace(uri); // $ Alert } catch (Exception e) { // TODO: handle exception @@ -177,66 +177,66 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); // org.apache.hc.client5.http.classic.methods.ClassicHttpRequests - ClassicHttpRequests.create(Method.CONNECT, uri.toString()); // $ SSRF - ClassicHttpRequests.create(Method.CONNECT, uri); // $ SSRF - ClassicHttpRequests.create("method", uri.toString()); // $ SSRF - ClassicHttpRequests.create("method", uri); // $ SSRF + ClassicHttpRequests.create(Method.CONNECT, uri.toString()); // $ Alert + ClassicHttpRequests.create(Method.CONNECT, uri); // $ Alert + ClassicHttpRequests.create("method", uri.toString()); // $ Alert + ClassicHttpRequests.create("method", uri); // $ Alert - ClassicHttpRequests.delete(uri.toString()); // $ SSRF - ClassicHttpRequests.delete(uri); // $ SSRF + ClassicHttpRequests.delete(uri.toString()); // $ Alert + ClassicHttpRequests.delete(uri); // $ Alert - ClassicHttpRequests.get(uri.toString()); // $ SSRF - ClassicHttpRequests.get(uri); // $ SSRF + ClassicHttpRequests.get(uri.toString()); // $ Alert + ClassicHttpRequests.get(uri); // $ Alert - ClassicHttpRequests.head(uri.toString()); // $ SSRF - ClassicHttpRequests.head(uri); // $ SSRF + ClassicHttpRequests.head(uri.toString()); // $ Alert + ClassicHttpRequests.head(uri); // $ Alert - ClassicHttpRequests.options(uri.toString()); // $ SSRF - ClassicHttpRequests.options(uri); // $ SSRF + ClassicHttpRequests.options(uri.toString()); // $ Alert + ClassicHttpRequests.options(uri); // $ Alert - ClassicHttpRequests.patch(uri.toString()); // $ SSRF - ClassicHttpRequests.patch(uri); // $ SSRF + ClassicHttpRequests.patch(uri.toString()); // $ Alert + ClassicHttpRequests.patch(uri); // $ Alert - ClassicHttpRequests.post(uri.toString()); // $ SSRF - ClassicHttpRequests.post(uri); // $ SSRF + ClassicHttpRequests.post(uri.toString()); // $ Alert + ClassicHttpRequests.post(uri); // $ Alert - ClassicHttpRequests.put(uri.toString()); // $ SSRF - ClassicHttpRequests.put(uri); // $ SSRF + ClassicHttpRequests.put(uri.toString()); // $ Alert + ClassicHttpRequests.put(uri); // $ Alert - ClassicHttpRequests.trace(uri.toString()); // $ SSRF - ClassicHttpRequests.trace(uri); // $ SSRF + ClassicHttpRequests.trace(uri.toString()); // $ Alert + ClassicHttpRequests.trace(uri); // $ Alert // org.apache.hc.client5.http.classic.methods.HttpDelete through HttpTrace - new HttpDelete(uri.toString()); // $ SSRF - new HttpDelete(uri); // $ SSRF + new HttpDelete(uri.toString()); // $ Alert + new HttpDelete(uri); // $ Alert - new HttpGet(uri.toString()); // $ SSRF - new HttpGet(uri); // $ SSRF + new HttpGet(uri.toString()); // $ Alert + new HttpGet(uri); // $ Alert - new HttpHead(uri.toString()); // $ SSRF - new HttpHead(uri); // $ SSRF + new HttpHead(uri.toString()); // $ Alert + new HttpHead(uri); // $ Alert - new HttpOptions(uri.toString()); // $ SSRF - new HttpOptions(uri); // $ SSRF + new HttpOptions(uri.toString()); // $ Alert + new HttpOptions(uri); // $ Alert - new HttpPatch(uri.toString()); // $ SSRF - new HttpPatch(uri); // $ SSRF + new HttpPatch(uri.toString()); // $ Alert + new HttpPatch(uri); // $ Alert - new HttpPost(uri.toString()); // $ SSRF - new HttpPost(uri); // $ SSRF + new HttpPost(uri.toString()); // $ Alert + new HttpPost(uri); // $ Alert - new HttpPut(uri.toString()); // $ SSRF - new HttpPut(uri); // $ SSRF + new HttpPut(uri.toString()); // $ Alert + new HttpPut(uri); // $ Alert - new HttpTrace(uri.toString()); // $ SSRF - new HttpTrace(uri); // $ SSRF + new HttpTrace(uri.toString()); // $ Alert + new HttpTrace(uri); // $ Alert // org.apache.hc.client5.http.classic.methods.HttpUriRequestBase - new HttpUriRequestBase("method", uri); // $ SSRF + new HttpUriRequestBase("method", uri); // $ Alert } catch (Exception e) { // TODO: handle exception @@ -248,37 +248,37 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); // org.apache.hc.client5.http.fluent.Request - Request.create(Method.CONNECT, uri); // $ SSRF - Request.create("method", uri.toString()); // $ SSRF - Request.create("method", uri); // $ SSRF + Request.create(Method.CONNECT, uri); // $ Alert + Request.create("method", uri.toString()); // $ Alert + Request.create("method", uri); // $ Alert - Request.delete(uri.toString()); // $ SSRF - Request.delete(uri); // $ SSRF + Request.delete(uri.toString()); // $ Alert + Request.delete(uri); // $ Alert - Request.get(uri.toString()); // $ SSRF - Request.get(uri); // $ SSRF + Request.get(uri.toString()); // $ Alert + Request.get(uri); // $ Alert - Request.head(uri.toString()); // $ SSRF - Request.head(uri); // $ SSRF + Request.head(uri.toString()); // $ Alert + Request.head(uri); // $ Alert - Request.options(uri.toString()); // $ SSRF - Request.options(uri); // $ SSRF + Request.options(uri.toString()); // $ Alert + Request.options(uri); // $ Alert - Request.patch(uri.toString()); // $ SSRF - Request.patch(uri); // $ SSRF + Request.patch(uri.toString()); // $ Alert + Request.patch(uri); // $ Alert - Request.post(uri.toString()); // $ SSRF - Request.post(uri); // $ SSRF + Request.post(uri.toString()); // $ Alert + Request.post(uri); // $ Alert - Request.put(uri.toString()); // $ SSRF - Request.put(uri); // $ SSRF + Request.put(uri.toString()); // $ Alert + Request.put(uri); // $ Alert - Request.trace(uri.toString()); // $ SSRF - Request.trace(uri); // $ SSRF + Request.trace(uri.toString()); // $ Alert + Request.trace(uri); // $ Alert } catch (Exception e) { // TODO: handle exception @@ -292,26 +292,26 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); - String hostSink = request.getParameter("host"); + String hostSink = request.getParameter("host"); // $ Source HttpHost host = new HttpHost(hostSink); // org.apache.hc.core5.http.impl.bootstrap HttpAsyncRequester httpAsyncReq = new HttpAsyncRequester(null, null, null, null, null, null); - httpAsyncReq.connect(host, null); // $ SSRF - httpAsyncReq.connect(host, null, null, null); // $ SSRF + httpAsyncReq.connect(host, null); // $ Alert + httpAsyncReq.connect(host, null, null, null); // $ Alert // org.apache.hc.core5.http.impl.io DefaultClassicHttpRequestFactory defClassicHttpReqFact = new DefaultClassicHttpRequestFactory(); - defClassicHttpReqFact.newHttpRequest("method", uri.toString()); // $ SSRF - defClassicHttpReqFact.newHttpRequest("method", uri); // $ SSRF + defClassicHttpReqFact.newHttpRequest("method", uri.toString()); // $ Alert + defClassicHttpReqFact.newHttpRequest("method", uri); // $ Alert // org.apache.hc.core5.http.impl.nio DefaultHttpRequestFactory defHttpReqFact = new DefaultHttpRequestFactory(); - defHttpReqFact.newHttpRequest("method", uri.toString()); // $ SSRF - defHttpReqFact.newHttpRequest("method", uri); // $ SSRF + defHttpReqFact.newHttpRequest("method", uri.toString()); // $ Alert + defHttpReqFact.newHttpRequest("method", uri); // $ Alert } catch (Exception e) { // TODO: handle exception @@ -323,41 +323,41 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); - String hostSink = request.getParameter("host"); + String hostSink = request.getParameter("host"); // $ Source HttpHost host = new HttpHost(hostSink); // org.apache.hc.core5.http.io.support.ClassicRequestBuilder - ClassicRequestBuilder.delete(uri.toString()); // $ SSRF - ClassicRequestBuilder.delete(uri); // $ SSRF + ClassicRequestBuilder.delete(uri.toString()); // $ Alert + ClassicRequestBuilder.delete(uri); // $ Alert - ClassicRequestBuilder.get(uri.toString()); // $ SSRF - ClassicRequestBuilder.get(uri); // $ SSRF + ClassicRequestBuilder.get(uri.toString()); // $ Alert + ClassicRequestBuilder.get(uri); // $ Alert - ClassicRequestBuilder.head(uri.toString()); // $ SSRF - ClassicRequestBuilder.head(uri); // $ SSRF + ClassicRequestBuilder.head(uri.toString()); // $ Alert + ClassicRequestBuilder.head(uri); // $ Alert - ClassicRequestBuilder.options(uri.toString()); // $ SSRF - ClassicRequestBuilder.options(uri); // $ SSRF + ClassicRequestBuilder.options(uri.toString()); // $ Alert + ClassicRequestBuilder.options(uri); // $ Alert - ClassicRequestBuilder.patch(uri.toString()); // $ SSRF - ClassicRequestBuilder.patch(uri); // $ SSRF + ClassicRequestBuilder.patch(uri.toString()); // $ Alert + ClassicRequestBuilder.patch(uri); // $ Alert - ClassicRequestBuilder.post(uri.toString()); // $ SSRF - ClassicRequestBuilder.post(uri); // $ SSRF + ClassicRequestBuilder.post(uri.toString()); // $ Alert + ClassicRequestBuilder.post(uri); // $ Alert - ClassicRequestBuilder.put(uri.toString()); // $ SSRF - ClassicRequestBuilder.put(uri); // $ SSRF + ClassicRequestBuilder.put(uri.toString()); // $ Alert + ClassicRequestBuilder.put(uri); // $ Alert - ClassicRequestBuilder.get().setHttpHost(host); // $ SSRF + ClassicRequestBuilder.get().setHttpHost(host); // $ Alert - ClassicRequestBuilder.get().setUri(uri.toString()); // $ SSRF - ClassicRequestBuilder.get().setUri(uri); // $ SSRF + ClassicRequestBuilder.get().setUri(uri.toString()); // $ Alert + ClassicRequestBuilder.get().setUri(uri); // $ Alert - ClassicRequestBuilder.trace(uri.toString()); // $ SSRF - ClassicRequestBuilder.trace(uri); // $ SSRF + ClassicRequestBuilder.trace(uri.toString()); // $ Alert + ClassicRequestBuilder.trace(uri); // $ Alert } catch (Exception e) { // TODO: handle exception @@ -369,29 +369,29 @@ public class ApacheHttpSSRFVersion5 extends HttpServlet { throws ServletException, IOException { try { - String uriSink = request.getParameter("uri"); + String uriSink = request.getParameter("uri"); // $ Source URI uri = new URI(uriSink); - String hostSink = request.getParameter("host"); + String hostSink = request.getParameter("host"); // $ Source HttpHost host = new HttpHost(hostSink); // BasicClassicHttpRequest - new BasicClassicHttpRequest(Method.CONNECT, host, "path"); // $ SSRF - new BasicClassicHttpRequest(Method.CONNECT, uri); // $ SSRF - new BasicClassicHttpRequest("method", host, "path"); // $ SSRF - new BasicClassicHttpRequest("method", uri); // $ SSRF + new BasicClassicHttpRequest(Method.CONNECT, host, "path"); // $ Alert + new BasicClassicHttpRequest(Method.CONNECT, uri); // $ Alert + new BasicClassicHttpRequest("method", host, "path"); // $ Alert + new BasicClassicHttpRequest("method", uri); // $ Alert // BasicHttpRequest - new BasicHttpRequest(Method.CONNECT, host, "path"); // $ SSRF - new BasicHttpRequest(Method.CONNECT, uri); // $ SSRF - new BasicHttpRequest("method", host, "path"); // $ SSRF - new BasicHttpRequest("method", uri); // $ SSRF + new BasicHttpRequest(Method.CONNECT, host, "path"); // $ Alert + new BasicHttpRequest(Method.CONNECT, uri); // $ Alert + new BasicHttpRequest("method", host, "path"); // $ Alert + new BasicHttpRequest("method", uri); // $ Alert BasicHttpRequest bhr = new BasicHttpRequest("method", "path"); - bhr.setUri(uri); // $ SSRF + bhr.setUri(uri); // $ Alert // HttpRequestWrapper HttpRequestWrapper hrw = new HttpRequestWrapper(null); - hrw.setUri(uri); // $ SSRF + hrw.setUri(uri); // $ Alert } catch (Exception e) { // TODO: handle exception diff --git a/java/ql/test/query-tests/security/CWE-918/JakartaWsSSRF.java b/java/ql/test/query-tests/security/CWE-918/JakartaWsSSRF.java index ced25365211..37bf91d81fd 100644 --- a/java/ql/test/query-tests/security/CWE-918/JakartaWsSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/JakartaWsSSRF.java @@ -11,8 +11,8 @@ public class JakartaWsSSRF extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Client client = ClientBuilder.newClient(); - String url = request.getParameter("url"); - client.target(url); // $ SSRF + String url = request.getParameter("url"); // $ Source + client.target(url); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-918/JavaNetHttpSSRF.java b/java/ql/test/query-tests/security/CWE-918/JavaNetHttpSSRF.java index 7cc5578ebf3..7181d426ffb 100644 --- a/java/ql/test/query-tests/security/CWE-918/JavaNetHttpSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/JavaNetHttpSSRF.java @@ -22,21 +22,21 @@ public class JavaNetHttpSSRF extends HttpServlet { throws ServletException, IOException { try { - String sink = request.getParameter("uri"); + String sink = request.getParameter("uri"); // $ Source URI uri = new URI(sink); URI uri2 = new URI("http", sink, "fragement"); URL url1 = new URL(sink); - URLConnection c1 = url1.openConnection(); // $ SSRF + URLConnection c1 = url1.openConnection(); // $ Alert SocketAddress sa = new SocketAddress() { }; - URLConnection c2 = url1.openConnection(new Proxy(Type.HTTP, sa)); // $ SSRF - InputStream c3 = url1.openStream(); // $ SSRF + URLConnection c2 = url1.openConnection(new Proxy(Type.HTTP, sa)); // $ Alert + InputStream c3 = url1.openStream(); // $ Alert // java.net.http HttpClient client = HttpClient.newHttpClient(); - HttpRequest request2 = HttpRequest.newBuilder().uri(uri2).build(); // $ SSRF - HttpRequest request3 = HttpRequest.newBuilder(uri).build(); // $ SSRF + HttpRequest request2 = HttpRequest.newBuilder().uri(uri2).build(); // $ Alert + HttpRequest request3 = HttpRequest.newBuilder(uri).build(); // $ Alert } catch (Exception e) { // TODO: handle exception diff --git a/java/ql/test/query-tests/security/CWE-918/JaxWsSSRF.java b/java/ql/test/query-tests/security/CWE-918/JaxWsSSRF.java index da650e2de6c..97602b29b55 100644 --- a/java/ql/test/query-tests/security/CWE-918/JaxWsSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/JaxWsSSRF.java @@ -11,8 +11,8 @@ public class JaxWsSSRF extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Client client = ClientBuilder.newClient(); - String url = request.getParameter("url"); - client.target(url); // $ SSRF + String url = request.getParameter("url"); // $ Source + client.target(url); // $ Alert } } diff --git a/java/ql/test/query-tests/security/CWE-918/JdbcUrlSSRF.java b/java/ql/test/query-tests/security/CWE-918/JdbcUrlSSRF.java index 94704c3d862..859b998c9ea 100644 --- a/java/ql/test/query-tests/security/CWE-918/JdbcUrlSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/JdbcUrlSSRF.java @@ -17,75 +17,75 @@ public class JdbcUrlSSRF extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - String jdbcUrl = request.getParameter("jdbcUrl"); + + String jdbcUrl = request.getParameter("jdbcUrl"); // $ Source Driver driver = new org.postgresql.Driver(); DataSourceBuilder dsBuilder = DataSourceBuilder.create(); - + try { - driver.connect(jdbcUrl, null); // $ SSRF + driver.connect(jdbcUrl, null); // $ Alert - DriverManager.getConnection(jdbcUrl); // $ SSRF - DriverManager.getConnection(jdbcUrl, "user", "password"); // $ SSRF - DriverManager.getConnection(jdbcUrl, null); // $ SSRF + DriverManager.getConnection(jdbcUrl); // $ Alert + DriverManager.getConnection(jdbcUrl, "user", "password"); // $ Alert + DriverManager.getConnection(jdbcUrl, null); // $ Alert - dsBuilder.url(jdbcUrl); // $ SSRF + dsBuilder.url(jdbcUrl); // $ Alert } catch(SQLException e) {} } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - - String jdbcUrl = request.getParameter("jdbcUrl"); + + String jdbcUrl = request.getParameter("jdbcUrl"); // $ Source HikariConfig config = new HikariConfig(); - config.setJdbcUrl(jdbcUrl); // $ SSRF + config.setJdbcUrl(jdbcUrl); // $ Alert config.setUsername("database_username"); config.setPassword("database_password"); HikariDataSource ds = new HikariDataSource(); - ds.setJdbcUrl(jdbcUrl); // $ SSRF + ds.setJdbcUrl(jdbcUrl); // $ Alert Properties props = new Properties(); props.setProperty("driverClassName", "org.postgresql.Driver"); props.setProperty("jdbcUrl", jdbcUrl); - HikariConfig config2 = new HikariConfig(props); // $ SSRF + HikariConfig config2 = new HikariConfig(props); // $ Alert } protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String jdbcUrl = request.getParameter("jdbcUrl"); - - DriverManagerDataSource dataSource = new DriverManagerDataSource(); - - dataSource.setDriverClassName("org.postgresql.Driver"); - dataSource.setUrl(jdbcUrl); // $ SSRF + String jdbcUrl = request.getParameter("jdbcUrl"); // $ Source - DriverManagerDataSource dataSource2 = new DriverManagerDataSource(jdbcUrl); // $ SSRF + DriverManagerDataSource dataSource = new DriverManagerDataSource(); + + dataSource.setDriverClassName("org.postgresql.Driver"); + dataSource.setUrl(jdbcUrl); // $ Alert + + DriverManagerDataSource dataSource2 = new DriverManagerDataSource(jdbcUrl); // $ Alert dataSource2.setDriverClassName("org.postgresql.Driver"); - DriverManagerDataSource dataSource3 = new DriverManagerDataSource(jdbcUrl, "user", "pass"); // $ SSRF + DriverManagerDataSource dataSource3 = new DriverManagerDataSource(jdbcUrl, "user", "pass"); // $ Alert dataSource3.setDriverClassName("org.postgresql.Driver"); - DriverManagerDataSource dataSource4 = new DriverManagerDataSource(jdbcUrl, null); // $ SSRF + DriverManagerDataSource dataSource4 = new DriverManagerDataSource(jdbcUrl, null); // $ Alert dataSource4.setDriverClassName("org.postgresql.Driver"); } protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { - String jdbcUrl = request.getParameter("jdbcUrl"); + String jdbcUrl = request.getParameter("jdbcUrl"); // $ Source - Jdbi.create(jdbcUrl); // $ SSRF - Jdbi.create(jdbcUrl, null); // $ SSRF - Jdbi.create(jdbcUrl, "user", "pass"); // $ SSRF + Jdbi.create(jdbcUrl); // $ Alert + Jdbi.create(jdbcUrl, null); // $ Alert + Jdbi.create(jdbcUrl, "user", "pass"); // $ Alert - Jdbi.open(jdbcUrl); // $ SSRF - Jdbi.open(jdbcUrl, null); // $ SSRF - Jdbi.open(jdbcUrl, "user", "pass"); // $ SSRF + Jdbi.open(jdbcUrl); // $ Alert + Jdbi.open(jdbcUrl, null); // $ Alert + Jdbi.open(jdbcUrl, "user", "pass"); // $ Alert } - -} \ No newline at end of file + +} diff --git a/java/ql/test/query-tests/security/CWE-918/ReactiveWebClientSSRF.java b/java/ql/test/query-tests/security/CWE-918/ReactiveWebClientSSRF.java index 00d707f71e4..e7e350b054a 100644 --- a/java/ql/test/query-tests/security/CWE-918/ReactiveWebClientSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/ReactiveWebClientSSRF.java @@ -12,8 +12,8 @@ public class ReactiveWebClientSSRF extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); - WebClient webClient = WebClient.create(url); // $ SSRF + String url = request.getParameter("uri"); // $ Source + WebClient webClient = WebClient.create(url); // $ Alert Mono result = webClient.get() .uri("/") @@ -29,10 +29,10 @@ public class ReactiveWebClientSSRF extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source WebClient webClient = WebClient.builder() .defaultHeader("User-Agent", "Java") - .baseUrl(url) // $ SSRF + .baseUrl(url) // $ Alert .build(); @@ -46,4 +46,4 @@ public class ReactiveWebClientSSRF extends HttpServlet { // Ignore } } -} \ No newline at end of file +} 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 e69de29bb2d..b08273da0ca 100644 --- a/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected +++ b/java/ql/test/query-tests/security/CWE-918/RequestForgery.expected @@ -0,0 +1,1825 @@ +#select +| ApacheHttpSSRF.java:30:43:30:45 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:30:43:30:45 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:32:29:32:31 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:32:29:32:31 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:34:26:34:28 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:34:26:34:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:35:26:35:28 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:35:26:35:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:36:25:36:27 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:36:25:36:27 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:37:28:37:30 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:37:28:37:30 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:38:29:38:31 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:38:29:38:31 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:39:27:39:29 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:39:27:39:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:40:27:40:29 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:40:27:40:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:42:34:42:82 | new BasicRequestLine(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:42:34:42:82 | new BasicRequestLine(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:43:41:43:54 | toString(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:43:41:43:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:44:41:44:54 | toString(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:44:41:44:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:46:49:46:97 | new BasicRequestLine(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:46:49:46:97 | new BasicRequestLine(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:47:56:47:69 | toString(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:47:56:47:69 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:48:56:48:69 | toString(...) | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:48:56:48:69 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:50:32:50:34 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:50:32:50:34 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:51:33:51:35 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:51:33:51:35 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:52:32:52:34 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:52:32:52:34 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:53:35:53:37 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:53:35:53:37 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:54:36:54:38 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:54:36:54:38 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:55:33:55:35 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:55:33:55:35 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:56:34:56:36 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:56:34:56:36 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:57:34:57:36 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:57:34:57:36 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRF.java:58:43:58:45 | uri | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:58:43:58:45 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:48:54:48:57 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:48:54:48:57 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:49:54:49:67 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:49:54:49:67 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:50:54:50:56 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:50:54:50:56 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:51:48:51:61 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:51:48:51:61 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:52:48:52:50 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:52:48:52:50 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:54:38:54:41 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:54:38:54:41 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:55:38:55:51 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:55:38:55:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:56:38:56:40 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:56:38:56:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:58:35:58:38 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:58:35:58:38 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:59:35:59:48 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:59:35:59:48 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:60:35:60:37 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:60:35:60:37 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:62:36:62:39 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:62:36:62:39 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:63:36:63:49 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:63:36:63:49 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:64:36:64:38 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:64:36:64:38 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:66:39:66:42 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:66:39:66:42 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:67:39:67:52 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:67:39:67:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:68:39:68:41 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:68:39:68:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:70:37:70:40 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:70:37:70:40 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:71:37:71:50 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:71:37:71:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:72:37:72:39 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:72:37:72:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:74:36:74:39 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:74:36:74:39 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:75:36:75:49 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:75:36:75:49 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:76:36:76:38 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:76:36:76:38 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:78:35:78:38 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:78:35:78:38 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:79:35:79:48 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:79:35:79:48 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:80:35:80:37 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:80:35:80:37 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:82:37:82:40 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:82:37:82:40 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:83:37:83:50 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:83:37:83:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:84:37:84:39 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:84:37:84:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:87:51:87:54 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:87:51:87:54 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:88:51:88:53 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:88:51:88:53 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:91:51:91:54 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:91:51:91:54 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:92:51:92:53 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:92:51:92:53 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:93:45:93:48 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:93:45:93:48 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:94:45:94:47 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:94:45:94:47 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:96:54:96:57 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:96:54:96:57 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:97:54:97:56 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:97:54:97:56 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:98:48:98:61 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:98:48:98:61 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:99:48:99:50 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:99:48:99:50 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:102:55:102:58 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:102:55:102:58 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:103:55:103:68 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:103:55:103:68 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:104:55:104:57 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:104:55:104:57 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:105:49:105:62 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:105:49:105:62 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:106:49:106:51 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:106:49:106:51 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:108:39:108:42 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:108:39:108:42 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:109:39:109:52 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:109:39:109:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:110:39:110:41 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:110:39:110:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:112:36:112:39 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:112:36:112:39 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:113:36:113:49 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:113:36:113:49 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:114:36:114:38 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:114:36:114:38 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:116:37:116:40 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:116:37:116:40 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:117:37:117:50 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:117:37:117:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:118:37:118:39 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:118:37:118:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:120:40:120:43 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:120:40:120:43 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:121:40:121:53 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:121:40:121:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:122:40:122:42 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:122:40:122:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:124:38:124:41 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:124:38:124:41 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:125:38:125:51 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:125:38:125:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:126:38:126:40 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:126:38:126:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:128:37:128:40 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:128:37:128:40 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:129:37:129:50 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:129:37:129:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:130:37:130:39 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:130:37:130:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:132:36:132:39 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:132:36:132:39 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:133:36:133:49 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:133:36:133:49 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:134:36:134:38 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:134:36:134:38 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:136:38:136:41 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:136:38:136:41 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:137:38:137:51 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:137:38:137:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:138:38:138:40 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:138:38:138:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:141:41:141:54 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:141:41:141:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:142:41:142:43 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:142:41:142:43 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:144:38:144:51 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:144:38:144:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:145:38:145:40 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:145:38:145:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:147:39:147:52 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:147:39:147:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:148:39:148:41 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:148:39:148:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:150:42:150:55 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:150:42:150:55 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:151:42:151:44 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:151:42:151:44 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:153:40:153:53 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:153:40:153:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:154:40:154:42 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:154:40:154:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:156:39:156:52 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:156:39:156:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:157:39:157:41 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:157:39:157:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:159:38:159:51 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:159:38:159:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:160:38:160:40 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:160:38:160:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:162:52:162:55 | host | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:162:52:162:55 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:164:47:164:60 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:164:47:164:60 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:165:47:165:49 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:165:47:165:49 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:167:40:167:53 | toString(...) | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:167:40:167:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:168:40:168:42 | uri | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:168:40:168:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:184:56:184:69 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:184:56:184:69 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:185:56:185:58 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:185:56:185:58 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:186:50:186:63 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:186:50:186:63 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:187:50:187:52 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:187:50:187:52 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:189:40:189:53 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:189:40:189:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:190:40:190:42 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:190:40:190:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:192:37:192:50 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:192:37:192:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:193:37:193:39 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:193:37:193:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:195:38:195:51 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:195:38:195:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:196:38:196:40 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:196:38:196:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:198:41:198:54 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:198:41:198:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:199:41:199:43 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:199:41:199:43 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:201:39:201:52 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:201:39:201:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:202:39:202:41 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:202:39:202:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:204:38:204:51 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:204:38:204:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:205:38:205:40 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:205:38:205:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:207:37:207:50 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:207:37:207:50 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:208:37:208:39 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:208:37:208:39 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:210:39:210:52 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:210:39:210:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:211:39:211:41 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:211:39:211:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:214:28:214:41 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:214:28:214:41 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:215:28:215:30 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:215:28:215:30 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:217:25:217:38 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:217:25:217:38 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:218:25:218:27 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:218:25:218:27 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:220:26:220:39 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:220:26:220:39 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:221:26:221:28 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:221:26:221:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:223:29:223:42 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:223:29:223:42 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:224:29:224:31 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:224:29:224:31 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:226:27:226:40 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:226:27:226:40 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:227:27:227:29 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:227:27:227:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:229:26:229:39 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:229:26:229:39 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:230:26:230:28 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:230:26:230:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:232:25:232:38 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:232:25:232:38 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:233:25:233:27 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:233:25:233:27 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:235:27:235:40 | toString(...) | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:235:27:235:40 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:236:27:236:29 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:236:27:236:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:239:46:239:48 | uri | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:239:46:239:48 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:255:44:255:46 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:255:44:255:46 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:256:38:256:51 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:256:38:256:51 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:257:38:257:40 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:257:38:257:40 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:259:28:259:41 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:259:28:259:41 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:260:28:260:30 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:260:28:260:30 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:262:25:262:38 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:262:25:262:38 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:263:25:263:27 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:263:25:263:27 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:265:26:265:39 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:265:26:265:39 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:266:26:266:28 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:266:26:266:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:268:29:268:42 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:268:29:268:42 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:269:29:269:31 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:269:29:269:31 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:271:27:271:40 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:271:27:271:40 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:272:27:272:29 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:272:27:272:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:274:26:274:39 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:274:26:274:39 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:275:26:275:28 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:275:26:275:28 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:277:25:277:38 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:277:25:277:38 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:278:25:278:27 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:278:25:278:27 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:280:27:280:40 | toString(...) | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:280:27:280:40 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:281:27:281:29 | uri | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:281:27:281:29 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:303:34:303:37 | host | ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:303:34:303:37 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:304:34:304:37 | host | ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:304:34:304:37 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:308:60:308:73 | toString(...) | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:308:60:308:73 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:309:60:309:62 | uri | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:309:60:309:62 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:313:53:313:66 | toString(...) | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:313:53:313:66 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:314:53:314:55 | uri | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:314:53:314:55 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:333:42:333:55 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:333:42:333:55 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:334:42:334:44 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:334:42:334:44 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:336:39:336:52 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:336:39:336:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:337:39:337:41 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:337:39:337:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:339:40:339:53 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:339:40:339:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:340:40:340:42 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:340:40:340:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:342:43:342:56 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:342:43:342:56 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:343:43:343:45 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:343:43:343:45 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:345:41:345:54 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:345:41:345:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:346:41:346:43 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:346:41:346:43 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:348:40:348:53 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:348:40:348:53 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:349:40:349:42 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:349:40:349:42 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:351:39:351:52 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:351:39:351:52 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:352:39:352:41 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:352:39:352:41 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:354:53:354:56 | host | ApacheHttpSSRFVersion5.java:329:31:329:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:354:53:354:56 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:329:31:329:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:356:48:356:61 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:356:48:356:61 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:357:48:357:50 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:357:48:357:50 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:359:41:359:54 | toString(...) | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:359:41:359:54 | toString(...) | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:360:41:360:43 | uri | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:360:41:360:43 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:379:57:379:60 | host | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:379:57:379:60 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:380:57:380:59 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:380:57:380:59 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:381:51:381:54 | host | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:381:51:381:54 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:382:51:382:53 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:382:51:382:53 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:385:50:385:53 | host | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:385:50:385:53 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:386:50:386:52 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:386:50:386:52 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:387:44:387:47 | host | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:387:44:387:47 | host | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | Potential server-side request forgery due to a $@. | ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) | user-provided value | +| JakartaWsSSRF.java:15:23:15:25 | url | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | JakartaWsSSRF.java:15:23:15:25 | url | Potential server-side request forgery due to a $@. | JakartaWsSSRF.java:14:22:14:48 | getParameter(...) | user-provided value | +| JavaNetHttpSSRF.java:30:32:30:35 | url1 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:30:32:30:35 | url1 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | +| JavaNetHttpSSRF.java:33:32:33:35 | url1 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:33:32:33:35 | url1 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | +| JavaNetHttpSSRF.java:34:30:34:33 | url1 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:34:30:34:33 | url1 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | +| JavaNetHttpSSRF.java:38:65:38:68 | uri2 | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:38:65:38:68 | uri2 | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | +| JavaNetHttpSSRF.java:39:59:39:61 | uri | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:39:59:39:61 | uri | Potential server-side request forgery due to a $@. | JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) | user-provided value | +| JaxWsSSRF.java:15:23:15:25 | url | JaxWsSSRF.java:14:22:14:48 | getParameter(...) : String | JaxWsSSRF.java:15:23:15:25 | url | Potential server-side request forgery due to a $@. | JaxWsSSRF.java:14:22:14:48 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:26:28:26:34 | jdbcUrl | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:26:28:26:34 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:28:41:28:47 | jdbcUrl | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:28:41:28:47 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:29:41:29:47 | jdbcUrl | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:29:41:29:47 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:30:41:30:47 | jdbcUrl | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:30:41:30:47 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:32:27:32:33 | jdbcUrl | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:32:27:32:33 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:43:27:43:33 | jdbcUrl | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:43:27:43:33 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:48:23:48:29 | jdbcUrl | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:48:23:48:29 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:54:49:54:53 | props | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:54:49:54:53 | props | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:65:27:65:33 | jdbcUrl | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:65:27:65:33 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:67:75:67:81 | jdbcUrl | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:67:75:67:81 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:70:75:70:81 | jdbcUrl | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:70:75:70:81 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:73:75:73:81 | jdbcUrl | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:73:75:73:81 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:82:21:82:27 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:82:21:82:27 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:83:21:83:27 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:83:21:83:27 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:84:21:84:27 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:84:21:84:27 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:86:19:86:25 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:86:19:86:25 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:87:19:87:25 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:87:19:87:25 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| JdbcUrlSSRF.java:88:19:88:25 | jdbcUrl | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:88:19:88:25 | jdbcUrl | Potential server-side request forgery due to a $@. | JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) | user-provided value | +| ReactiveWebClientSSRF.java:16:52:16:54 | url | ReactiveWebClientSSRF.java:15:26:15:52 | getParameter(...) : String | ReactiveWebClientSSRF.java:16:52:16:54 | url | Potential server-side request forgery due to a $@. | ReactiveWebClientSSRF.java:15:26:15:52 | getParameter(...) | user-provided value | +| ReactiveWebClientSSRF.java:35:30:35:32 | url | ReactiveWebClientSSRF.java:32:26:32:52 | getParameter(...) : String | ReactiveWebClientSSRF.java:35:30:35:32 | url | Potential server-side request forgery due to a $@. | ReactiveWebClientSSRF.java:32:26:32:52 | getParameter(...) | user-provided value | +| SanitizationTests.java:22:52:22:54 | uri | SanitizationTests.java:19:31:19:57 | getParameter(...) : String | SanitizationTests.java:22:52:22:54 | uri | Potential server-side request forgery due to a $@. | SanitizationTests.java:19:31:19:57 | getParameter(...) | user-provided value | +| SanitizationTests.java:23:25:23:25 | r | SanitizationTests.java:19:31:19:57 | getParameter(...) : String | SanitizationTests.java:23:25:23:25 | r | Potential server-side request forgery due to a $@. | SanitizationTests.java:19:31:19:57 | getParameter(...) | user-provided value | +| SanitizationTests.java:76:59:76:77 | new URI(...) | SanitizationTests.java:75:33:75:63 | getParameter(...) : String | SanitizationTests.java:76:59:76:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:75:33:75:63 | getParameter(...) | user-provided value | +| SanitizationTests.java:77:25:77:32 | unsafer3 | SanitizationTests.java:75:33:75:63 | getParameter(...) : String | SanitizationTests.java:77:25:77:32 | unsafer3 | Potential server-side request forgery due to a $@. | SanitizationTests.java:75:33:75:63 | getParameter(...) | user-provided value | +| SanitizationTests.java:80:59:80:77 | new URI(...) | SanitizationTests.java:79:49:79:79 | getParameter(...) : String | SanitizationTests.java:80:59:80:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:79:49:79:79 | getParameter(...) | user-provided value | +| SanitizationTests.java:81:25:81:32 | unsafer4 | SanitizationTests.java:79:49:79:79 | getParameter(...) : String | SanitizationTests.java:81:25:81:32 | unsafer4 | Potential server-side request forgery due to a $@. | SanitizationTests.java:79:49:79:79 | getParameter(...) | user-provided value | +| SanitizationTests.java:85:59:85:88 | new URI(...) | SanitizationTests.java:84:31:84:61 | getParameter(...) : String | SanitizationTests.java:85:59:85:88 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:84:31:84:61 | getParameter(...) | user-provided value | +| SanitizationTests.java:86:25:86:32 | unsafer5 | SanitizationTests.java:84:31:84:61 | getParameter(...) : String | SanitizationTests.java:86:25:86:32 | unsafer5 | Potential server-side request forgery due to a $@. | SanitizationTests.java:84:31:84:61 | getParameter(...) | user-provided value | +| SanitizationTests.java:90:60:90:89 | new URI(...) | SanitizationTests.java:88:58:88:86 | getParameter(...) : String | SanitizationTests.java:90:60:90:89 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:88:58:88:86 | getParameter(...) | user-provided value | +| SanitizationTests.java:91:25:91:33 | unsafer5a | SanitizationTests.java:88:58:88:86 | getParameter(...) : String | SanitizationTests.java:91:25:91:33 | unsafer5a | Potential server-side request forgery due to a $@. | SanitizationTests.java:88:58:88:86 | getParameter(...) | user-provided value | +| SanitizationTests.java:95:60:95:90 | new URI(...) | SanitizationTests.java:93:60:93:88 | getParameter(...) : String | SanitizationTests.java:95:60:95:90 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:93:60:93:88 | getParameter(...) | user-provided value | +| SanitizationTests.java:96:25:96:33 | unsafer5b | SanitizationTests.java:93:60:93:88 | getParameter(...) : String | SanitizationTests.java:96:25:96:33 | unsafer5b | Potential server-side request forgery due to a $@. | SanitizationTests.java:93:60:93:88 | getParameter(...) | user-provided value | +| SanitizationTests.java:100:60:100:90 | new URI(...) | SanitizationTests.java:98:77:98:105 | getParameter(...) : String | SanitizationTests.java:100:60:100:90 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:98:77:98:105 | getParameter(...) | user-provided value | +| SanitizationTests.java:101:25:101:33 | unsafer5c | SanitizationTests.java:98:77:98:105 | getParameter(...) : String | SanitizationTests.java:101:25:101:33 | unsafer5c | Potential server-side request forgery due to a $@. | SanitizationTests.java:98:77:98:105 | getParameter(...) | user-provided value | +| SanitizationTests.java:104:59:104:77 | new URI(...) | SanitizationTests.java:103:73:103:103 | getParameter(...) : String | SanitizationTests.java:104:59:104:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:103:73:103:103 | getParameter(...) | user-provided value | +| SanitizationTests.java:105:25:105:32 | unsafer6 | SanitizationTests.java:103:73:103:103 | getParameter(...) : String | SanitizationTests.java:105:25:105:32 | unsafer6 | Potential server-side request forgery due to a $@. | SanitizationTests.java:103:73:103:103 | getParameter(...) | user-provided value | +| SanitizationTests.java:108:59:108:77 | new URI(...) | SanitizationTests.java:107:56:107:86 | getParameter(...) : String | SanitizationTests.java:108:59:108:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:107:56:107:86 | getParameter(...) | user-provided value | +| SanitizationTests.java:109:25:109:32 | unsafer7 | SanitizationTests.java:107:56:107:86 | getParameter(...) : String | SanitizationTests.java:109:25:109:32 | unsafer7 | Potential server-side request forgery due to a $@. | SanitizationTests.java:107:56:107:86 | getParameter(...) | user-provided value | +| SanitizationTests.java:112:59:112:77 | new URI(...) | SanitizationTests.java:111:55:111:85 | getParameter(...) : String | SanitizationTests.java:112:59:112:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:111:55:111:85 | getParameter(...) | user-provided value | +| SanitizationTests.java:113:25:113:32 | unsafer8 | SanitizationTests.java:111:55:111:85 | getParameter(...) : String | SanitizationTests.java:113:25:113:32 | unsafer8 | Potential server-side request forgery due to a $@. | SanitizationTests.java:111:55:111:85 | getParameter(...) | user-provided value | +| SanitizationTests.java:116:59:116:77 | new URI(...) | SanitizationTests.java:115:33:115:63 | getParameter(...) : String | SanitizationTests.java:116:59:116:77 | new URI(...) | Potential server-side request forgery due to a $@. | SanitizationTests.java:115:33:115:63 | getParameter(...) | user-provided value | +| SanitizationTests.java:117:25:117:32 | unsafer9 | SanitizationTests.java:115:33:115:63 | getParameter(...) : String | SanitizationTests.java:117:25:117:32 | unsafer9 | Potential server-side request forgery due to a $@. | SanitizationTests.java:115:33:115:63 | getParameter(...) | user-provided value | +| 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 | +| 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 | +| URLClassLoaderSSRF.java:56:72:56:93 | new URL[] | URLClassLoaderSSRF.java:54:26:54:52 | getParameter(...) : String | URLClassLoaderSSRF.java:56:72:56:93 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:54:26:54:52 | getParameter(...) | user-provided value | +| URLClassLoaderSSRF.java:70:21:70:42 | new URL[] | URLClassLoaderSSRF.java:66:26:66:52 | getParameter(...) : String | URLClassLoaderSSRF.java:70:21:70:42 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:66:26:66:52 | getParameter(...) | user-provided value | +| URLClassLoaderSSRF.java:89:21:89:42 | new URL[] | URLClassLoaderSSRF.java:83:26:83:52 | getParameter(...) : String | URLClassLoaderSSRF.java:89:21:89:42 | new URL[] | Potential server-side request forgery due to a $@. | URLClassLoaderSSRF.java:83:26:83:52 | getParameter(...) | user-provided value | +| mad/Test.java:31:24:31:47 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:31:24:31:47 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:36:10:36:23 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:36:10:36:23 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:38:28:38:43 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:38:28:38:43 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:40:10:40:23 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:40:10:40:23 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:45:32:45:47 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:45:32:45:47 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:47:32:47:47 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:47:32:47:47 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:49:28:49:43 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:49:28:49:43 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:51:28:51:43 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:51:28:51:43 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:53:28:53:43 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:53:28:53:43 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:55:36:55:51 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:55:36:55:51 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:57:32:57:45 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:57:32:57:45 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:59:38:59:51 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:59:38:59:51 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:61:47:61:60 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:61:47:61:60 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:63:26:63:39 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:63:26:63:39 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:65:38:65:51 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:65:38:65:51 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:67:26:67:39 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:67:26:67:39 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:69:27:69:40 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:69:27:69:40 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:71:47:71:60 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:71:47:71:60 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:74:50:74:65 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:74:50:74:65 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:76:50:76:69 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:76:50:76:69 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:78:43:78:59 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:78:43:78:59 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:80:25:80:41 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:80:25:80:41 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:82:31:82:47 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:82:31:82:47 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:84:31:84:47 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:84:31:84:47 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:86:41:86:57 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:86:41:86:57 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:92:24:92:40 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:92:24:92:40 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:97:29:97:42 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:97:29:97:42 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:102:26:102:39 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:102:26:102:39 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:107:15:107:31 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:107:15:107:31 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +| mad/Test.java:112:15:112:31 | (...)... | mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:112:15:112:31 | (...)... | Potential server-side request forgery due to a $@. | mad/Test.java:26:16:26:41 | getParameter(...) | user-provided value | +edges +| ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | ApacheHttpSSRF.java:28:31:28:34 | sink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:30:43:30:45 | uri | provenance | Sink:MaD:211 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:32:29:32:31 | uri | provenance | Sink:MaD:217 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:34:26:34:28 | uri | provenance | Sink:MaD:212 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:35:26:35:28 | uri | provenance | Sink:MaD:215 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:36:25:36:27 | uri | provenance | Sink:MaD:216 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:37:28:37:30 | uri | provenance | Sink:MaD:210 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:38:29:38:31 | uri | provenance | Sink:MaD:213 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:39:27:39:29 | uri | provenance | Sink:MaD:218 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:40:27:40:29 | uri | provenance | Sink:MaD:214 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:42:62:42:64 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:43:41:43:43 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:44:41:44:43 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:46:77:46:79 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:47:56:47:58 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:48:56:48:58 | uri : URI | provenance | | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:50:32:50:34 | uri | provenance | Sink:MaD:220 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:51:33:51:35 | uri | provenance | Sink:MaD:224 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:52:32:52:34 | uri | provenance | Sink:MaD:225 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:53:35:53:37 | uri | provenance | Sink:MaD:219 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:54:36:54:38 | uri | provenance | Sink:MaD:222 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:55:33:55:35 | uri | provenance | Sink:MaD:221 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:56:34:56:36 | uri | provenance | Sink:MaD:227 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:57:34:57:36 | uri | provenance | Sink:MaD:223 | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | ApacheHttpSSRF.java:58:43:58:45 | uri | provenance | Sink:MaD:226 | +| ApacheHttpSSRF.java:28:31:28:34 | sink : String | ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRF.java:28:31:28:34 | sink : String | ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRF.java:42:62:42:64 | uri : URI | ApacheHttpSSRF.java:42:62:42:75 | toString(...) : String | provenance | MaD:286 | +| ApacheHttpSSRF.java:42:62:42:75 | toString(...) : String | ApacheHttpSSRF.java:42:34:42:82 | new BasicRequestLine(...) | provenance | MaD:293 Sink:MaD:231 | +| ApacheHttpSSRF.java:43:41:43:43 | uri : URI | ApacheHttpSSRF.java:43:41:43:54 | toString(...) | provenance | MaD:286 Sink:MaD:232 | +| ApacheHttpSSRF.java:44:41:44:43 | uri : URI | ApacheHttpSSRF.java:44:41:44:54 | toString(...) | provenance | MaD:286 Sink:MaD:233 | +| ApacheHttpSSRF.java:46:77:46:79 | uri : URI | ApacheHttpSSRF.java:46:77:46:90 | toString(...) : String | provenance | MaD:286 | +| ApacheHttpSSRF.java:46:77:46:90 | toString(...) : String | ApacheHttpSSRF.java:46:49:46:97 | new BasicRequestLine(...) | provenance | MaD:293 Sink:MaD:228 | +| ApacheHttpSSRF.java:47:56:47:58 | uri : URI | ApacheHttpSSRF.java:47:56:47:69 | toString(...) | provenance | MaD:286 Sink:MaD:229 | +| ApacheHttpSSRF.java:48:56:48:58 | uri : URI | ApacheHttpSSRF.java:48:56:48:69 | toString(...) | provenance | MaD:286 Sink:MaD:230 | +| ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:42:31:42:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:49:54:49:56 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:50:54:50:56 | uri | provenance | Sink:MaD:40 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:51:48:51:50 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:52:48:52:50 | uri | provenance | Sink:MaD:42 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:55:38:55:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:56:38:56:40 | uri | provenance | Sink:MaD:45 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:59:35:59:37 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:60:35:60:37 | uri | provenance | Sink:MaD:48 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:63:36:63:38 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:64:36:64:38 | uri | provenance | Sink:MaD:51 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:67:39:67:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:68:39:68:41 | uri | provenance | Sink:MaD:54 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:71:37:71:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:72:37:72:39 | uri | provenance | Sink:MaD:57 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:75:36:75:38 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:76:36:76:38 | uri | provenance | Sink:MaD:60 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:79:35:79:37 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:80:35:80:37 | uri | provenance | Sink:MaD:63 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:83:37:83:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:84:37:84:39 | uri | provenance | Sink:MaD:66 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:88:51:88:53 | uri | provenance | Sink:MaD:68 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:92:51:92:53 | uri | provenance | Sink:MaD:70 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:94:45:94:47 | uri | provenance | Sink:MaD:72 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:97:54:97:56 | uri | provenance | Sink:MaD:74 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:98:48:98:50 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:99:48:99:50 | uri | provenance | Sink:MaD:76 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:103:55:103:57 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:104:55:104:57 | uri | provenance | Sink:MaD:79 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:105:49:105:51 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:106:49:106:51 | uri | provenance | Sink:MaD:81 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:109:39:109:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:110:39:110:41 | uri | provenance | Sink:MaD:84 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:113:36:113:38 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:114:36:114:38 | uri | provenance | Sink:MaD:87 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:117:37:117:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:118:37:118:39 | uri | provenance | Sink:MaD:90 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:121:40:121:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:122:40:122:42 | uri | provenance | Sink:MaD:93 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:125:38:125:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:126:38:126:40 | uri | provenance | Sink:MaD:96 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:129:37:129:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:130:37:130:39 | uri | provenance | Sink:MaD:99 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:133:36:133:38 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:134:36:134:38 | uri | provenance | Sink:MaD:102 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:137:38:137:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:138:38:138:40 | uri | provenance | Sink:MaD:105 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:141:41:141:43 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:142:41:142:43 | uri | provenance | Sink:MaD:107 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:144:38:144:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:145:38:145:40 | uri | provenance | Sink:MaD:109 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:147:39:147:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:148:39:148:41 | uri | provenance | Sink:MaD:111 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:150:42:150:44 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:151:42:151:44 | uri | provenance | Sink:MaD:113 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:153:40:153:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:154:40:154:42 | uri | provenance | Sink:MaD:115 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:156:39:156:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:157:39:157:41 | uri | provenance | Sink:MaD:117 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:159:38:159:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:160:38:160:40 | uri | provenance | Sink:MaD:119 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:164:47:164:49 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:165:47:165:49 | uri | provenance | Sink:MaD:206 | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:167:40:167:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:168:40:168:42 | uri | provenance | Sink:MaD:121 | +| ApacheHttpSSRFVersion5.java:42:31:42:37 | uriSink : String | ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:42:31:42:37 | uriSink : String | ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:45:42:45:49 | hostSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:48:54:48:57 | host | provenance | Sink:MaD:38 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:54:38:54:41 | host | provenance | Sink:MaD:43 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:58:35:58:38 | host | provenance | Sink:MaD:46 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:62:36:62:39 | host | provenance | Sink:MaD:49 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:66:39:66:42 | host | provenance | Sink:MaD:52 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:70:37:70:40 | host | provenance | Sink:MaD:55 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:74:36:74:39 | host | provenance | Sink:MaD:58 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:78:35:78:38 | host | provenance | Sink:MaD:61 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:82:37:82:40 | host | provenance | Sink:MaD:64 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:87:51:87:54 | host | provenance | Sink:MaD:67 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:91:51:91:54 | host | provenance | Sink:MaD:69 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:93:45:93:48 | host | provenance | Sink:MaD:71 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:96:54:96:57 | host | provenance | Sink:MaD:73 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:102:55:102:58 | host | provenance | Sink:MaD:77 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:108:39:108:42 | host | provenance | Sink:MaD:82 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:112:36:112:39 | host | provenance | Sink:MaD:85 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:116:37:116:40 | host | provenance | Sink:MaD:88 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:120:40:120:43 | host | provenance | Sink:MaD:91 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:124:38:124:41 | host | provenance | Sink:MaD:94 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:128:37:128:40 | host | provenance | Sink:MaD:97 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:132:36:132:39 | host | provenance | Sink:MaD:100 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:136:38:136:41 | host | provenance | Sink:MaD:103 | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:162:52:162:55 | host | provenance | Sink:MaD:204 | +| ApacheHttpSSRFVersion5.java:45:42:45:49 | hostSink : String | ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | provenance | MaD:292 | +| ApacheHttpSSRFVersion5.java:49:54:49:56 | uri : URI | ApacheHttpSSRFVersion5.java:49:54:49:67 | toString(...) | provenance | MaD:286 Sink:MaD:39 | +| ApacheHttpSSRFVersion5.java:51:48:51:50 | uri : URI | ApacheHttpSSRFVersion5.java:51:48:51:61 | toString(...) | provenance | MaD:286 Sink:MaD:41 | +| ApacheHttpSSRFVersion5.java:55:38:55:40 | uri : URI | ApacheHttpSSRFVersion5.java:55:38:55:51 | toString(...) | provenance | MaD:286 Sink:MaD:44 | +| ApacheHttpSSRFVersion5.java:59:35:59:37 | uri : URI | ApacheHttpSSRFVersion5.java:59:35:59:48 | toString(...) | provenance | MaD:286 Sink:MaD:47 | +| ApacheHttpSSRFVersion5.java:63:36:63:38 | uri : URI | ApacheHttpSSRFVersion5.java:63:36:63:49 | toString(...) | provenance | MaD:286 Sink:MaD:50 | +| ApacheHttpSSRFVersion5.java:67:39:67:41 | uri : URI | ApacheHttpSSRFVersion5.java:67:39:67:52 | toString(...) | provenance | MaD:286 Sink:MaD:53 | +| ApacheHttpSSRFVersion5.java:71:37:71:39 | uri : URI | ApacheHttpSSRFVersion5.java:71:37:71:50 | toString(...) | provenance | MaD:286 Sink:MaD:56 | +| ApacheHttpSSRFVersion5.java:75:36:75:38 | uri : URI | ApacheHttpSSRFVersion5.java:75:36:75:49 | toString(...) | provenance | MaD:286 Sink:MaD:59 | +| ApacheHttpSSRFVersion5.java:79:35:79:37 | uri : URI | ApacheHttpSSRFVersion5.java:79:35:79:48 | toString(...) | provenance | MaD:286 Sink:MaD:62 | +| ApacheHttpSSRFVersion5.java:83:37:83:39 | uri : URI | ApacheHttpSSRFVersion5.java:83:37:83:50 | toString(...) | provenance | MaD:286 Sink:MaD:65 | +| ApacheHttpSSRFVersion5.java:98:48:98:50 | uri : URI | ApacheHttpSSRFVersion5.java:98:48:98:61 | toString(...) | provenance | MaD:286 Sink:MaD:75 | +| ApacheHttpSSRFVersion5.java:103:55:103:57 | uri : URI | ApacheHttpSSRFVersion5.java:103:55:103:68 | toString(...) | provenance | MaD:286 Sink:MaD:78 | +| ApacheHttpSSRFVersion5.java:105:49:105:51 | uri : URI | ApacheHttpSSRFVersion5.java:105:49:105:62 | toString(...) | provenance | MaD:286 Sink:MaD:80 | +| ApacheHttpSSRFVersion5.java:109:39:109:41 | uri : URI | ApacheHttpSSRFVersion5.java:109:39:109:52 | toString(...) | provenance | MaD:286 Sink:MaD:83 | +| ApacheHttpSSRFVersion5.java:113:36:113:38 | uri : URI | ApacheHttpSSRFVersion5.java:113:36:113:49 | toString(...) | provenance | MaD:286 Sink:MaD:86 | +| ApacheHttpSSRFVersion5.java:117:37:117:39 | uri : URI | ApacheHttpSSRFVersion5.java:117:37:117:50 | toString(...) | provenance | MaD:286 Sink:MaD:89 | +| ApacheHttpSSRFVersion5.java:121:40:121:42 | uri : URI | ApacheHttpSSRFVersion5.java:121:40:121:53 | toString(...) | provenance | MaD:286 Sink:MaD:92 | +| ApacheHttpSSRFVersion5.java:125:38:125:40 | uri : URI | ApacheHttpSSRFVersion5.java:125:38:125:51 | toString(...) | provenance | MaD:286 Sink:MaD:95 | +| ApacheHttpSSRFVersion5.java:129:37:129:39 | uri : URI | ApacheHttpSSRFVersion5.java:129:37:129:50 | toString(...) | provenance | MaD:286 Sink:MaD:98 | +| ApacheHttpSSRFVersion5.java:133:36:133:38 | uri : URI | ApacheHttpSSRFVersion5.java:133:36:133:49 | toString(...) | provenance | MaD:286 Sink:MaD:101 | +| ApacheHttpSSRFVersion5.java:137:38:137:40 | uri : URI | ApacheHttpSSRFVersion5.java:137:38:137:51 | toString(...) | provenance | MaD:286 Sink:MaD:104 | +| ApacheHttpSSRFVersion5.java:141:41:141:43 | uri : URI | ApacheHttpSSRFVersion5.java:141:41:141:54 | toString(...) | provenance | MaD:286 Sink:MaD:106 | +| ApacheHttpSSRFVersion5.java:144:38:144:40 | uri : URI | ApacheHttpSSRFVersion5.java:144:38:144:51 | toString(...) | provenance | MaD:286 Sink:MaD:108 | +| ApacheHttpSSRFVersion5.java:147:39:147:41 | uri : URI | ApacheHttpSSRFVersion5.java:147:39:147:52 | toString(...) | provenance | MaD:286 Sink:MaD:110 | +| ApacheHttpSSRFVersion5.java:150:42:150:44 | uri : URI | ApacheHttpSSRFVersion5.java:150:42:150:55 | toString(...) | provenance | MaD:286 Sink:MaD:112 | +| ApacheHttpSSRFVersion5.java:153:40:153:42 | uri : URI | ApacheHttpSSRFVersion5.java:153:40:153:53 | toString(...) | provenance | MaD:286 Sink:MaD:114 | +| ApacheHttpSSRFVersion5.java:156:39:156:41 | uri : URI | ApacheHttpSSRFVersion5.java:156:39:156:52 | toString(...) | provenance | MaD:286 Sink:MaD:116 | +| ApacheHttpSSRFVersion5.java:159:38:159:40 | uri : URI | ApacheHttpSSRFVersion5.java:159:38:159:51 | toString(...) | provenance | MaD:286 Sink:MaD:118 | +| ApacheHttpSSRFVersion5.java:164:47:164:49 | uri : URI | ApacheHttpSSRFVersion5.java:164:47:164:60 | toString(...) | provenance | MaD:286 Sink:MaD:205 | +| ApacheHttpSSRFVersion5.java:167:40:167:42 | uri : URI | ApacheHttpSSRFVersion5.java:167:40:167:53 | toString(...) | provenance | MaD:286 Sink:MaD:120 | +| ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:181:31:181:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:184:56:184:58 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:185:56:185:58 | uri | provenance | Sink:MaD:123 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:186:50:186:52 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:187:50:187:52 | uri | provenance | Sink:MaD:125 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:189:40:189:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:190:40:190:42 | uri | provenance | Sink:MaD:127 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:192:37:192:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:193:37:193:39 | uri | provenance | Sink:MaD:129 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:195:38:195:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:196:38:196:40 | uri | provenance | Sink:MaD:131 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:198:41:198:43 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:199:41:199:43 | uri | provenance | Sink:MaD:133 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:201:39:201:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:202:39:202:41 | uri | provenance | Sink:MaD:135 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:204:38:204:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:205:38:205:40 | uri | provenance | Sink:MaD:137 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:207:37:207:39 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:208:37:208:39 | uri | provenance | Sink:MaD:139 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:210:39:210:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:211:39:211:41 | uri | provenance | Sink:MaD:141 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:214:28:214:30 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:215:28:215:30 | uri | provenance | Sink:MaD:143 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:217:25:217:27 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:218:25:218:27 | uri | provenance | Sink:MaD:145 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:220:26:220:28 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:221:26:221:28 | uri | provenance | Sink:MaD:147 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:223:29:223:31 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:224:29:224:31 | uri | provenance | Sink:MaD:149 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:226:27:226:29 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:227:27:227:29 | uri | provenance | Sink:MaD:151 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:229:26:229:28 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:230:26:230:28 | uri | provenance | Sink:MaD:153 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:232:25:232:27 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:233:25:233:27 | uri | provenance | Sink:MaD:155 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:235:27:235:29 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:236:27:236:29 | uri | provenance | Sink:MaD:157 | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:239:46:239:48 | uri | provenance | Sink:MaD:158 | +| ApacheHttpSSRFVersion5.java:181:31:181:37 | uriSink : String | ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:181:31:181:37 | uriSink : String | ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:184:56:184:58 | uri : URI | ApacheHttpSSRFVersion5.java:184:56:184:69 | toString(...) | provenance | MaD:286 Sink:MaD:122 | +| ApacheHttpSSRFVersion5.java:186:50:186:52 | uri : URI | ApacheHttpSSRFVersion5.java:186:50:186:63 | toString(...) | provenance | MaD:286 Sink:MaD:124 | +| ApacheHttpSSRFVersion5.java:189:40:189:42 | uri : URI | ApacheHttpSSRFVersion5.java:189:40:189:53 | toString(...) | provenance | MaD:286 Sink:MaD:126 | +| ApacheHttpSSRFVersion5.java:192:37:192:39 | uri : URI | ApacheHttpSSRFVersion5.java:192:37:192:50 | toString(...) | provenance | MaD:286 Sink:MaD:128 | +| ApacheHttpSSRFVersion5.java:195:38:195:40 | uri : URI | ApacheHttpSSRFVersion5.java:195:38:195:51 | toString(...) | provenance | MaD:286 Sink:MaD:130 | +| ApacheHttpSSRFVersion5.java:198:41:198:43 | uri : URI | ApacheHttpSSRFVersion5.java:198:41:198:54 | toString(...) | provenance | MaD:286 Sink:MaD:132 | +| ApacheHttpSSRFVersion5.java:201:39:201:41 | uri : URI | ApacheHttpSSRFVersion5.java:201:39:201:52 | toString(...) | provenance | MaD:286 Sink:MaD:134 | +| ApacheHttpSSRFVersion5.java:204:38:204:40 | uri : URI | ApacheHttpSSRFVersion5.java:204:38:204:51 | toString(...) | provenance | MaD:286 Sink:MaD:136 | +| ApacheHttpSSRFVersion5.java:207:37:207:39 | uri : URI | ApacheHttpSSRFVersion5.java:207:37:207:50 | toString(...) | provenance | MaD:286 Sink:MaD:138 | +| ApacheHttpSSRFVersion5.java:210:39:210:41 | uri : URI | ApacheHttpSSRFVersion5.java:210:39:210:52 | toString(...) | provenance | MaD:286 Sink:MaD:140 | +| ApacheHttpSSRFVersion5.java:214:28:214:30 | uri : URI | ApacheHttpSSRFVersion5.java:214:28:214:41 | toString(...) | provenance | MaD:286 Sink:MaD:142 | +| ApacheHttpSSRFVersion5.java:217:25:217:27 | uri : URI | ApacheHttpSSRFVersion5.java:217:25:217:38 | toString(...) | provenance | MaD:286 Sink:MaD:144 | +| ApacheHttpSSRFVersion5.java:220:26:220:28 | uri : URI | ApacheHttpSSRFVersion5.java:220:26:220:39 | toString(...) | provenance | MaD:286 Sink:MaD:146 | +| ApacheHttpSSRFVersion5.java:223:29:223:31 | uri : URI | ApacheHttpSSRFVersion5.java:223:29:223:42 | toString(...) | provenance | MaD:286 Sink:MaD:148 | +| ApacheHttpSSRFVersion5.java:226:27:226:29 | uri : URI | ApacheHttpSSRFVersion5.java:226:27:226:40 | toString(...) | provenance | MaD:286 Sink:MaD:150 | +| ApacheHttpSSRFVersion5.java:229:26:229:28 | uri : URI | ApacheHttpSSRFVersion5.java:229:26:229:39 | toString(...) | provenance | MaD:286 Sink:MaD:152 | +| ApacheHttpSSRFVersion5.java:232:25:232:27 | uri : URI | ApacheHttpSSRFVersion5.java:232:25:232:38 | toString(...) | provenance | MaD:286 Sink:MaD:154 | +| ApacheHttpSSRFVersion5.java:235:27:235:29 | uri : URI | ApacheHttpSSRFVersion5.java:235:27:235:40 | toString(...) | provenance | MaD:286 Sink:MaD:156 | +| ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:252:31:252:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:255:44:255:46 | uri | provenance | Sink:MaD:159 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:256:38:256:40 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:257:38:257:40 | uri | provenance | Sink:MaD:161 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:259:28:259:30 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:260:28:260:30 | uri | provenance | Sink:MaD:163 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:262:25:262:27 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:263:25:263:27 | uri | provenance | Sink:MaD:165 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:265:26:265:28 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:266:26:266:28 | uri | provenance | Sink:MaD:167 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:268:29:268:31 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:269:29:269:31 | uri | provenance | Sink:MaD:169 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:271:27:271:29 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:272:27:272:29 | uri | provenance | Sink:MaD:171 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:274:26:274:28 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:275:26:275:28 | uri | provenance | Sink:MaD:173 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:277:25:277:27 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:278:25:278:27 | uri | provenance | Sink:MaD:175 | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:280:27:280:29 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:281:27:281:29 | uri | provenance | Sink:MaD:177 | +| ApacheHttpSSRFVersion5.java:252:31:252:37 | uriSink : String | ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:252:31:252:37 | uriSink : String | ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:256:38:256:40 | uri : URI | ApacheHttpSSRFVersion5.java:256:38:256:51 | toString(...) | provenance | MaD:286 Sink:MaD:160 | +| ApacheHttpSSRFVersion5.java:259:28:259:30 | uri : URI | ApacheHttpSSRFVersion5.java:259:28:259:41 | toString(...) | provenance | MaD:286 Sink:MaD:162 | +| ApacheHttpSSRFVersion5.java:262:25:262:27 | uri : URI | ApacheHttpSSRFVersion5.java:262:25:262:38 | toString(...) | provenance | MaD:286 Sink:MaD:164 | +| ApacheHttpSSRFVersion5.java:265:26:265:28 | uri : URI | ApacheHttpSSRFVersion5.java:265:26:265:39 | toString(...) | provenance | MaD:286 Sink:MaD:166 | +| ApacheHttpSSRFVersion5.java:268:29:268:31 | uri : URI | ApacheHttpSSRFVersion5.java:268:29:268:42 | toString(...) | provenance | MaD:286 Sink:MaD:168 | +| ApacheHttpSSRFVersion5.java:271:27:271:29 | uri : URI | ApacheHttpSSRFVersion5.java:271:27:271:40 | toString(...) | provenance | MaD:286 Sink:MaD:170 | +| ApacheHttpSSRFVersion5.java:274:26:274:28 | uri : URI | ApacheHttpSSRFVersion5.java:274:26:274:39 | toString(...) | provenance | MaD:286 Sink:MaD:172 | +| ApacheHttpSSRFVersion5.java:277:25:277:27 | uri : URI | ApacheHttpSSRFVersion5.java:277:25:277:38 | toString(...) | provenance | MaD:286 Sink:MaD:174 | +| ApacheHttpSSRFVersion5.java:280:27:280:29 | uri : URI | ApacheHttpSSRFVersion5.java:280:27:280:40 | toString(...) | provenance | MaD:286 Sink:MaD:176 | +| ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:296:31:296:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:308:60:308:62 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:309:60:309:62 | uri | provenance | Sink:MaD:209 | +| ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:313:53:313:55 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:314:53:314:55 | uri | provenance | Sink:MaD:209 | +| ApacheHttpSSRFVersion5.java:296:31:296:37 | uriSink : String | ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:296:31:296:37 | uriSink : String | ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:299:42:299:49 | hostSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:299:29:299:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:303:34:303:37 | host | provenance | Sink:MaD:178 | +| ApacheHttpSSRFVersion5.java:299:29:299:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:304:34:304:37 | host | provenance | Sink:MaD:179 | +| ApacheHttpSSRFVersion5.java:299:42:299:49 | hostSink : String | ApacheHttpSSRFVersion5.java:299:29:299:50 | new HttpHost(...) : HttpHost | provenance | MaD:292 | +| ApacheHttpSSRFVersion5.java:308:60:308:62 | uri : URI | ApacheHttpSSRFVersion5.java:308:60:308:73 | toString(...) | provenance | MaD:286 Sink:MaD:208 | +| ApacheHttpSSRFVersion5.java:313:53:313:55 | uri : URI | ApacheHttpSSRFVersion5.java:313:53:313:66 | toString(...) | provenance | MaD:286 Sink:MaD:208 | +| ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:327:31:327:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:333:42:333:44 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:334:42:334:44 | uri | provenance | Sink:MaD:181 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:336:39:336:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:337:39:337:41 | uri | provenance | Sink:MaD:183 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:339:40:339:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:340:40:340:42 | uri | provenance | Sink:MaD:185 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:342:43:342:45 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:343:43:343:45 | uri | provenance | Sink:MaD:187 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:345:41:345:43 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:346:41:346:43 | uri | provenance | Sink:MaD:189 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:348:40:348:42 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:349:40:349:42 | uri | provenance | Sink:MaD:191 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:351:39:351:41 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:352:39:352:41 | uri | provenance | Sink:MaD:193 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:356:48:356:50 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:357:48:357:50 | uri | provenance | Sink:MaD:206 | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:359:41:359:43 | uri : URI | provenance | | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:360:41:360:43 | uri | provenance | Sink:MaD:195 | +| ApacheHttpSSRFVersion5.java:327:31:327:37 | uriSink : String | ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:327:31:327:37 | uriSink : String | ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:329:31:329:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:330:42:330:49 | hostSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:330:29:330:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:354:53:354:56 | host | provenance | Sink:MaD:204 | +| ApacheHttpSSRFVersion5.java:330:42:330:49 | hostSink : String | ApacheHttpSSRFVersion5.java:330:29:330:50 | new HttpHost(...) : HttpHost | provenance | MaD:292 | +| ApacheHttpSSRFVersion5.java:333:42:333:44 | uri : URI | ApacheHttpSSRFVersion5.java:333:42:333:55 | toString(...) | provenance | MaD:286 Sink:MaD:180 | +| ApacheHttpSSRFVersion5.java:336:39:336:41 | uri : URI | ApacheHttpSSRFVersion5.java:336:39:336:52 | toString(...) | provenance | MaD:286 Sink:MaD:182 | +| ApacheHttpSSRFVersion5.java:339:40:339:42 | uri : URI | ApacheHttpSSRFVersion5.java:339:40:339:53 | toString(...) | provenance | MaD:286 Sink:MaD:184 | +| ApacheHttpSSRFVersion5.java:342:43:342:45 | uri : URI | ApacheHttpSSRFVersion5.java:342:43:342:56 | toString(...) | provenance | MaD:286 Sink:MaD:186 | +| ApacheHttpSSRFVersion5.java:345:41:345:43 | uri : URI | ApacheHttpSSRFVersion5.java:345:41:345:54 | toString(...) | provenance | MaD:286 Sink:MaD:188 | +| ApacheHttpSSRFVersion5.java:348:40:348:42 | uri : URI | ApacheHttpSSRFVersion5.java:348:40:348:53 | toString(...) | provenance | MaD:286 Sink:MaD:190 | +| ApacheHttpSSRFVersion5.java:351:39:351:41 | uri : URI | ApacheHttpSSRFVersion5.java:351:39:351:52 | toString(...) | provenance | MaD:286 Sink:MaD:192 | +| ApacheHttpSSRFVersion5.java:356:48:356:50 | uri : URI | ApacheHttpSSRFVersion5.java:356:48:356:61 | toString(...) | provenance | MaD:286 Sink:MaD:205 | +| ApacheHttpSSRFVersion5.java:359:41:359:43 | uri : URI | ApacheHttpSSRFVersion5.java:359:41:359:54 | toString(...) | provenance | MaD:286 Sink:MaD:194 | +| ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:373:31:373:37 | uriSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:380:57:380:59 | uri | provenance | Sink:MaD:197 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:382:51:382:53 | uri | provenance | Sink:MaD:199 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:386:50:386:52 | uri | provenance | Sink:MaD:201 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | provenance | Sink:MaD:203 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | provenance | Sink:MaD:207 | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | provenance | Sink:MaD:207 | +| ApacheHttpSSRFVersion5.java:373:31:373:37 | uriSink : String | ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | provenance | Config | +| ApacheHttpSSRFVersion5.java:373:31:373:37 | uriSink : String | ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | provenance | MaD:285 | +| ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | ApacheHttpSSRFVersion5.java:376:42:376:49 | hostSink : String | provenance | Src:MaD:277 | +| ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:379:57:379:60 | host | provenance | Sink:MaD:196 | +| ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:381:51:381:54 | host | provenance | Sink:MaD:198 | +| ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:385:50:385:53 | host | provenance | Sink:MaD:200 | +| ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | ApacheHttpSSRFVersion5.java:387:44:387:47 | host | provenance | Sink:MaD:202 | +| ApacheHttpSSRFVersion5.java:376:42:376:49 | hostSink : String | ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | provenance | MaD:292 | +| JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | JakartaWsSSRF.java:15:23:15:25 | url | provenance | Src:MaD:277 Sink:MaD:3 | +| JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | JavaNetHttpSSRF.java:26:31:26:34 | sink : String | provenance | Src:MaD:277 | +| JavaNetHttpSSRF.java:26:23:26:35 | new URI(...) : URI | JavaNetHttpSSRF.java:39:59:39:61 | uri | provenance | Sink:MaD:6 | +| JavaNetHttpSSRF.java:26:31:26:34 | sink : String | JavaNetHttpSSRF.java:26:23:26:35 | new URI(...) : URI | provenance | Config | +| JavaNetHttpSSRF.java:26:31:26:34 | sink : String | JavaNetHttpSSRF.java:26:23:26:35 | new URI(...) : URI | provenance | MaD:285 | +| JavaNetHttpSSRF.java:26:31:26:34 | sink : String | JavaNetHttpSSRF.java:27:40:27:43 | sink : String | provenance | | +| JavaNetHttpSSRF.java:27:24:27:57 | new URI(...) : URI | JavaNetHttpSSRF.java:38:65:38:68 | uri2 | provenance | Sink:MaD:5 | +| JavaNetHttpSSRF.java:27:40:27:43 | sink : String | JavaNetHttpSSRF.java:27:24:27:57 | new URI(...) : URI | provenance | Config | +| JavaNetHttpSSRF.java:27:40:27:43 | sink : String | JavaNetHttpSSRF.java:28:32:28:35 | sink : String | provenance | | +| JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | JavaNetHttpSSRF.java:30:32:30:35 | url1 | provenance | Sink:MaD:9 | +| JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | JavaNetHttpSSRF.java:33:32:33:35 | url1 | provenance | Sink:MaD:9 | +| JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | JavaNetHttpSSRF.java:34:30:34:33 | url1 | provenance | Sink:MaD:10 | +| JavaNetHttpSSRF.java:28:32:28:35 | sink : String | JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | provenance | Config | +| JavaNetHttpSSRF.java:28:32:28:35 | sink : String | JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | provenance | MaD:288 | +| JaxWsSSRF.java:14:22:14:48 | getParameter(...) : String | JaxWsSSRF.java:15:23:15:25 | url | provenance | Src:MaD:277 Sink:MaD:23 | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:26:28:26:34 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:17 | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:28:41:28:47 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:18 | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:29:41:29:47 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:20 | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:30:41:30:47 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:19 | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | JdbcUrlSSRF.java:32:27:32:33 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:242 | +| JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:43:27:43:33 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:2 | +| JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:48:23:48:29 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:2 | +| JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | JdbcUrlSSRF.java:52:38:52:44 | jdbcUrl : String | provenance | Src:MaD:277 | +| JdbcUrlSSRF.java:52:9:52:13 | props : Properties | JdbcUrlSSRF.java:54:49:54:53 | props | provenance | Sink:MaD:1 | +| JdbcUrlSSRF.java:52:9:52:13 | props [post update] : Properties [] : String | JdbcUrlSSRF.java:54:49:54:53 | props | provenance | Sink:MaD:1 | +| JdbcUrlSSRF.java:52:38:52:44 | jdbcUrl : String | JdbcUrlSSRF.java:52:9:52:13 | props : Properties | provenance | Config | +| JdbcUrlSSRF.java:52:38:52:44 | jdbcUrl : String | JdbcUrlSSRF.java:52:9:52:13 | props [post update] : Properties [] : String | provenance | MaD:291 | +| JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:65:27:65:33 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:257 | +| JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:67:75:67:81 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:258 | +| JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:70:75:70:81 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:260 | +| JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | JdbcUrlSSRF.java:73:75:73:81 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:259 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:82:21:82:27 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:235 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:83:21:83:27 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:236 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:84:21:84:27 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:237 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:86:19:86:25 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:238 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:87:19:87:25 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:239 | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | JdbcUrlSSRF.java:88:19:88:25 | jdbcUrl | provenance | Src:MaD:277 Sink:MaD:240 | +| ReactiveWebClientSSRF.java:15:26:15:52 | getParameter(...) : String | ReactiveWebClientSSRF.java:16:52:16:54 | url | provenance | Src:MaD:277 Sink:MaD:274 | +| ReactiveWebClientSSRF.java:32:26:32:52 | getParameter(...) : String | ReactiveWebClientSSRF.java:35:30:35:32 | url | provenance | Src:MaD:277 Sink:MaD:273 | +| SanitizationTests.java:19:23:19:58 | new URI(...) : URI | SanitizationTests.java:22:52:22:54 | uri | provenance | Sink:MaD:6 | +| SanitizationTests.java:19:23:19:58 | new URI(...) : URI | SanitizationTests.java:22:52:22:54 | uri : URI | provenance | | +| SanitizationTests.java:19:31:19:57 | getParameter(...) : String | SanitizationTests.java:19:23:19:58 | new URI(...) : URI | provenance | Src:MaD:277 Config | +| SanitizationTests.java:19:31:19:57 | getParameter(...) : String | SanitizationTests.java:19:23:19:58 | new URI(...) : URI | provenance | Src:MaD:277 MaD:285 | +| SanitizationTests.java:22:29:22:55 | newBuilder(...) : Builder | SanitizationTests.java:22:29:22:63 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:22:29:22:63 | build(...) : HttpRequest | SanitizationTests.java:23:25:23:25 | r | provenance | Sink:MaD:4 | +| SanitizationTests.java:22:52:22:54 | uri : URI | SanitizationTests.java:22:29:22:55 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:75:33:75:63 | getParameter(...) : String | SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | provenance | Src:MaD:277 | +| SanitizationTests.java:76:36:76:78 | newBuilder(...) : Builder | SanitizationTests.java:76:36:76:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:76:36:76:86 | build(...) : HttpRequest | SanitizationTests.java:77:25:77:32 | unsafer3 | provenance | Sink:MaD:4 | +| SanitizationTests.java:76:59:76:77 | new URI(...) : URI | SanitizationTests.java:76:36:76:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | SanitizationTests.java:76:59:76:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | SanitizationTests.java:76:59:76:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | SanitizationTests.java:76:59:76:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | SanitizationTests.java:76:59:76:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:79:49:79:79 | getParameter(...) : String | SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | provenance | Src:MaD:277 | +| SanitizationTests.java:80:36:80:78 | newBuilder(...) : Builder | SanitizationTests.java:80:36:80:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:80:36:80:86 | build(...) : HttpRequest | SanitizationTests.java:81:25:81:32 | unsafer4 | provenance | Sink:MaD:4 | +| SanitizationTests.java:80:59:80:77 | new URI(...) : URI | SanitizationTests.java:80:36:80:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | SanitizationTests.java:80:59:80:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | SanitizationTests.java:80:59:80:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | SanitizationTests.java:80:59:80:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | SanitizationTests.java:80:59:80:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:84:13:84:22 | unsafeUri5 [post update] : StringBuilder | SanitizationTests.java:85:67:85:76 | unsafeUri5 : StringBuilder | provenance | | +| SanitizationTests.java:84:31:84:61 | getParameter(...) : String | SanitizationTests.java:84:13:84:22 | unsafeUri5 [post update] : StringBuilder | provenance | Src:MaD:277 MaD:278 | +| SanitizationTests.java:85:36:85:89 | newBuilder(...) : Builder | SanitizationTests.java:85:36:85:97 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:85:36:85:97 | build(...) : HttpRequest | SanitizationTests.java:86:25:86:32 | unsafer5 | provenance | Sink:MaD:4 | +| SanitizationTests.java:85:59:85:88 | new URI(...) : URI | SanitizationTests.java:85:36:85:89 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:85:67:85:76 | unsafeUri5 : StringBuilder | SanitizationTests.java:85:67:85:87 | toString(...) : String | provenance | MaD:280 | +| SanitizationTests.java:85:67:85:87 | toString(...) : String | SanitizationTests.java:85:59:85:88 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:85:67:85:87 | toString(...) : String | SanitizationTests.java:85:59:85:88 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:85:67:85:87 | toString(...) : String | SanitizationTests.java:85:59:85:88 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:85:67:85:87 | toString(...) : String | SanitizationTests.java:85:59:85:88 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:88:40:88:87 | new StringBuilder(...) : StringBuilder | SanitizationTests.java:90:68:90:77 | unafeUri5a : StringBuilder | provenance | | +| SanitizationTests.java:88:58:88:86 | getParameter(...) : String | SanitizationTests.java:88:40:88:87 | new StringBuilder(...) : StringBuilder | provenance | Src:MaD:277 MaD:282 | +| SanitizationTests.java:90:37:90:90 | newBuilder(...) : Builder | SanitizationTests.java:90:37:90:98 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:90:37:90:98 | build(...) : HttpRequest | SanitizationTests.java:91:25:91:33 | unsafer5a | provenance | Sink:MaD:4 | +| SanitizationTests.java:90:60:90:89 | new URI(...) : URI | SanitizationTests.java:90:37:90:90 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:90:68:90:77 | unafeUri5a : StringBuilder | SanitizationTests.java:90:68:90:88 | toString(...) : String | provenance | MaD:280 | +| SanitizationTests.java:90:68:90:88 | toString(...) : String | SanitizationTests.java:90:60:90:89 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:90:68:90:88 | toString(...) : String | SanitizationTests.java:90:60:90:89 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:90:68:90:88 | toString(...) : String | SanitizationTests.java:90:60:90:89 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:90:68:90:88 | toString(...) : String | SanitizationTests.java:90:60:90:89 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:93:41:93:105 | append(...) : StringBuilder | SanitizationTests.java:95:68:95:78 | unsafeUri5b : StringBuilder | provenance | | +| SanitizationTests.java:93:42:93:89 | new StringBuilder(...) : StringBuilder | SanitizationTests.java:93:41:93:105 | append(...) : StringBuilder | provenance | MaD:279 | +| SanitizationTests.java:93:60:93:88 | getParameter(...) : String | SanitizationTests.java:93:42:93:89 | new StringBuilder(...) : StringBuilder | provenance | Src:MaD:277 MaD:282 | +| SanitizationTests.java:95:37:95:91 | newBuilder(...) : Builder | SanitizationTests.java:95:37:95:99 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:95:37:95:99 | build(...) : HttpRequest | SanitizationTests.java:96:25:96:33 | unsafer5b | provenance | Sink:MaD:4 | +| SanitizationTests.java:95:60:95:90 | new URI(...) : URI | SanitizationTests.java:95:37:95:91 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:95:68:95:78 | unsafeUri5b : StringBuilder | SanitizationTests.java:95:68:95:89 | toString(...) : String | provenance | MaD:280 | +| SanitizationTests.java:95:68:95:89 | toString(...) : String | SanitizationTests.java:95:60:95:90 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:95:68:95:89 | toString(...) : String | SanitizationTests.java:95:60:95:90 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:95:68:95:89 | toString(...) : String | SanitizationTests.java:95:60:95:90 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:95:68:95:89 | toString(...) : String | SanitizationTests.java:95:60:95:90 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:98:41:98:106 | append(...) : StringBuilder | SanitizationTests.java:100:68:100:78 | unsafeUri5c : StringBuilder | provenance | | +| SanitizationTests.java:98:77:98:105 | getParameter(...) : String | SanitizationTests.java:98:41:98:106 | append(...) : StringBuilder | provenance | Src:MaD:277 MaD:278+MaD:279 | +| SanitizationTests.java:100:37:100:91 | newBuilder(...) : Builder | SanitizationTests.java:100:37:100:99 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:100:37:100:99 | build(...) : HttpRequest | SanitizationTests.java:101:25:101:33 | unsafer5c | provenance | Sink:MaD:4 | +| SanitizationTests.java:100:60:100:90 | new URI(...) : URI | SanitizationTests.java:100:37:100:91 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:100:68:100:78 | unsafeUri5c : StringBuilder | SanitizationTests.java:100:68:100:89 | toString(...) : String | provenance | MaD:280 | +| SanitizationTests.java:100:68:100:89 | toString(...) : String | SanitizationTests.java:100:60:100:90 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:100:68:100:89 | toString(...) : String | SanitizationTests.java:100:60:100:90 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:100:68:100:89 | toString(...) : String | SanitizationTests.java:100:60:100:90 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:100:68:100:89 | toString(...) : String | SanitizationTests.java:100:60:100:90 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:103:33:103:104 | format(...) : String | SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | provenance | | +| SanitizationTests.java:103:33:103:104 | new ..[] { .. } : Object[] [[]] : String | SanitizationTests.java:103:33:103:104 | format(...) : String | provenance | MaD:281 | +| SanitizationTests.java:103:73:103:103 | getParameter(...) : String | SanitizationTests.java:103:33:103:104 | new ..[] { .. } : Object[] [[]] : String | provenance | Src:MaD:277 | +| SanitizationTests.java:104:36:104:78 | newBuilder(...) : Builder | SanitizationTests.java:104:36:104:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:104:36:104:86 | build(...) : HttpRequest | SanitizationTests.java:105:25:105:32 | unsafer6 | provenance | Sink:MaD:4 | +| SanitizationTests.java:104:59:104:77 | new URI(...) : URI | SanitizationTests.java:104:36:104:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | SanitizationTests.java:104:59:104:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | SanitizationTests.java:104:59:104:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | SanitizationTests.java:104:59:104:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | SanitizationTests.java:104:59:104:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:107:33:107:110 | format(...) : String | SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | provenance | | +| SanitizationTests.java:107:33:107:110 | new ..[] { .. } : Object[] [[]] : String | SanitizationTests.java:107:33:107:110 | format(...) : String | provenance | MaD:281 | +| SanitizationTests.java:107:56:107:86 | getParameter(...) : String | SanitizationTests.java:107:33:107:110 | new ..[] { .. } : Object[] [[]] : String | provenance | Src:MaD:277 | +| SanitizationTests.java:108:36:108:78 | newBuilder(...) : Builder | SanitizationTests.java:108:36:108:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:108:36:108:86 | build(...) : HttpRequest | SanitizationTests.java:109:25:109:32 | unsafer7 | provenance | Sink:MaD:4 | +| SanitizationTests.java:108:59:108:77 | new URI(...) : URI | SanitizationTests.java:108:36:108:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | SanitizationTests.java:108:59:108:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | SanitizationTests.java:108:59:108:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | SanitizationTests.java:108:59:108:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | SanitizationTests.java:108:59:108:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:111:33:111:110 | format(...) : String | SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | provenance | | +| SanitizationTests.java:111:33:111:110 | new ..[] { .. } : Object[] [[]] : String | SanitizationTests.java:111:33:111:110 | format(...) : String | provenance | MaD:281 | +| SanitizationTests.java:111:55:111:85 | getParameter(...) : String | SanitizationTests.java:111:33:111:110 | new ..[] { .. } : Object[] [[]] : String | provenance | Src:MaD:277 | +| SanitizationTests.java:112:36:112:78 | newBuilder(...) : Builder | SanitizationTests.java:112:36:112:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:112:36:112:86 | build(...) : HttpRequest | SanitizationTests.java:113:25:113:32 | unsafer8 | provenance | Sink:MaD:4 | +| SanitizationTests.java:112:59:112:77 | new URI(...) : URI | SanitizationTests.java:112:36:112:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | SanitizationTests.java:112:59:112:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | SanitizationTests.java:112:59:112:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | SanitizationTests.java:112:59:112:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | SanitizationTests.java:112:59:112:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:115:33:115:63 | getParameter(...) : String | SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | provenance | Src:MaD:277 | +| SanitizationTests.java:116:36:116:78 | newBuilder(...) : Builder | SanitizationTests.java:116:36:116:86 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:116:36:116:86 | build(...) : HttpRequest | SanitizationTests.java:117:25:117:32 | unsafer9 | provenance | Sink:MaD:4 | +| SanitizationTests.java:116:59:116:77 | new URI(...) : URI | SanitizationTests.java:116:36:116:78 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | SanitizationTests.java:116:59:116:77 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | SanitizationTests.java:116:59:116:77 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | SanitizationTests.java:116:59:116:77 | new URI(...) : URI | provenance | Config | +| SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | SanitizationTests.java:116:59:116:77 | new URI(...) : URI | provenance | MaD:285 | +| SanitizationTests.java:119:34:119:126 | format(...) : String | SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | provenance | | +| SanitizationTests.java:119:34:119:126 | new ..[] { .. } : Object[] [[]] : String | SanitizationTests.java:119:34:119:126 | format(...) : String | provenance | MaD:281 | +| SanitizationTests.java:119:94:119:125 | getParameter(...) : String | SanitizationTests.java:119:34:119:126 | new ..[] { .. } : Object[] [[]] : String | provenance | Src:MaD:277 | +| SanitizationTests.java:120:37:120:80 | newBuilder(...) : Builder | SanitizationTests.java:120:37:120:88 | build(...) : HttpRequest | provenance | MaD:283 | +| SanitizationTests.java:120:37:120:88 | build(...) : HttpRequest | SanitizationTests.java:121:25:121:33 | unsafer10 | provenance | Sink:MaD:4 | +| SanitizationTests.java:120:60:120:79 | new URI(...) : URI | SanitizationTests.java:120:37:120:80 | newBuilder(...) : Builder | provenance | MaD:284 | +| SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) | provenance | Config Sink:MaD:6 | +| SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | SanitizationTests.java:120:60:120:79 | new URI(...) | provenance | MaD:285 Sink:MaD:6 | +| 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 | +| 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 | +| URLClassLoaderSSRF.java:17:31:17:33 | url : String | URLClassLoaderSSRF.java:17:23:17:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:18:64:18:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | provenance | Sink:MaD:13 | +| URLClassLoaderSSRF.java:18:64:18:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | provenance | Sink:MaD:13 | +| URLClassLoaderSSRF.java:18:74:18:76 | uri : URI | URLClassLoaderSSRF.java:18:74:18:84 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:18:74:18:84 | toURL(...) : URL | URLClassLoaderSSRF.java:18:64:18:85 | {...} : URL[] [[]] : URL | provenance | | +| URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) : String | URLClassLoaderSSRF.java:29:31:29:33 | url : String | provenance | Src:MaD:277 | +| URLClassLoaderSSRF.java:29:23:29:34 | new URI(...) : URI | URLClassLoaderSSRF.java:30:74:30:76 | uri : URI | provenance | | +| URLClassLoaderSSRF.java:29:31:29:33 | url : String | URLClassLoaderSSRF.java:29:23:29:34 | new URI(...) : URI | provenance | Config | +| URLClassLoaderSSRF.java:29:31:29:33 | url : String | URLClassLoaderSSRF.java:29:23:29:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:30:64:30:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | provenance | Sink:MaD:14 | +| URLClassLoaderSSRF.java:30:64:30:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | provenance | Sink:MaD:14 | +| URLClassLoaderSSRF.java:30:74:30:76 | uri : URI | URLClassLoaderSSRF.java:30:74:30:84 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:30:74:30:84 | toURL(...) : URL | URLClassLoaderSSRF.java:30:64:30:85 | {...} : URL[] [[]] : URL | provenance | | +| URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) : String | URLClassLoaderSSRF.java:41:31:41:33 | url : String | provenance | Src:MaD:277 | +| URLClassLoaderSSRF.java:41:23:41:34 | new URI(...) : URI | URLClassLoaderSSRF.java:44:74:44:76 | uri : URI | provenance | | +| URLClassLoaderSSRF.java:41:31:41:33 | url : String | URLClassLoaderSSRF.java:41:23:41:34 | new URI(...) : URI | provenance | Config | +| URLClassLoaderSSRF.java:41:31:41:33 | url : String | URLClassLoaderSSRF.java:41:23:41:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:44:64:44:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | provenance | Sink:MaD:15 | +| URLClassLoaderSSRF.java:44:64:44:85 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | provenance | Sink:MaD:15 | +| URLClassLoaderSSRF.java:44:74:44:76 | uri : URI | URLClassLoaderSSRF.java:44:74:44:84 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:44:74:44:84 | toURL(...) : URL | URLClassLoaderSSRF.java:44:64:44:85 | {...} : URL[] [[]] : URL | provenance | | +| URLClassLoaderSSRF.java:54:26:54:52 | getParameter(...) : String | URLClassLoaderSSRF.java:55:31:55:33 | url : String | provenance | Src:MaD:277 | +| URLClassLoaderSSRF.java:55:23:55:34 | new URI(...) : URI | URLClassLoaderSSRF.java:56:82:56:84 | uri : URI | provenance | | +| URLClassLoaderSSRF.java:55:31:55:33 | url : String | URLClassLoaderSSRF.java:55:23:55:34 | new URI(...) : URI | provenance | Config | +| URLClassLoaderSSRF.java:55:31:55:33 | url : String | URLClassLoaderSSRF.java:55:23:55:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:56:72:56:93 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:56:72:56:93 | new URL[] | provenance | Sink:MaD:16 | +| URLClassLoaderSSRF.java:56:82:56:84 | uri : URI | URLClassLoaderSSRF.java:56:82:56:92 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:56:82:56:92 | toURL(...) : URL | URLClassLoaderSSRF.java:56:72:56:93 | {...} : URL[] [[]] : URL | provenance | | +| URLClassLoaderSSRF.java:66:26:66:52 | getParameter(...) : String | URLClassLoaderSSRF.java:67:31:67:33 | url : String | provenance | Src:MaD:277 | +| URLClassLoaderSSRF.java:67:23:67:34 | new URI(...) : URI | URLClassLoaderSSRF.java:70:31:70:33 | uri : URI | provenance | | +| URLClassLoaderSSRF.java:67:31:67:33 | url : String | URLClassLoaderSSRF.java:67:23:67:34 | new URI(...) : URI | provenance | Config | +| URLClassLoaderSSRF.java:67:31:67:33 | url : String | URLClassLoaderSSRF.java:67:23:67:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:70:21:70:42 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:70:21:70:42 | new URL[] | provenance | Sink:MaD:11 | +| URLClassLoaderSSRF.java:70:21:70:42 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:70:21:70:42 | new URL[] | provenance | Sink:MaD:11 | +| URLClassLoaderSSRF.java:70:31:70:33 | uri : URI | URLClassLoaderSSRF.java:70:31:70:41 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:70:31:70:41 | toURL(...) : URL | URLClassLoaderSSRF.java:70:21:70:42 | {...} : URL[] [[]] : URL | provenance | | +| URLClassLoaderSSRF.java:83:26:83:52 | getParameter(...) : String | URLClassLoaderSSRF.java:84:31:84:33 | url : String | provenance | Src:MaD:277 | +| URLClassLoaderSSRF.java:84:23:84:34 | new URI(...) : URI | URLClassLoaderSSRF.java:89:31:89:33 | uri : URI | provenance | | +| URLClassLoaderSSRF.java:84:31:84:33 | url : String | URLClassLoaderSSRF.java:84:23:84:34 | new URI(...) : URI | provenance | Config | +| URLClassLoaderSSRF.java:84:31:84:33 | url : String | URLClassLoaderSSRF.java:84:23:84:34 | new URI(...) : URI | provenance | MaD:285 | +| URLClassLoaderSSRF.java:89:21:89:42 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:89:21:89:42 | new URL[] | provenance | Sink:MaD:12 | +| URLClassLoaderSSRF.java:89:21:89:42 | {...} : URL[] [[]] : URL | URLClassLoaderSSRF.java:89:21:89:42 | new URL[] | provenance | Sink:MaD:12 | +| URLClassLoaderSSRF.java:89:31:89:33 | uri : URI | URLClassLoaderSSRF.java:89:31:89:41 | toURL(...) : URL | provenance | MaD:287 | +| URLClassLoaderSSRF.java:89:31:89:41 | toURL(...) : URL | URLClassLoaderSSRF.java:89:21:89:42 | {...} : URL[] [[]] : URL | provenance | | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:31:40:31:47 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:36:16:36:23 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:38:36:38:43 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:40:16:40:23 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:45:40:45:47 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:47:40:47:47 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:49:36:49:43 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:51:36:51:43 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:53:36:53:43 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:55:44:55:51 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:57:38:57:45 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:59:44:59:51 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:61:53:61:60 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:63:32:63:39 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:65:44:65:51 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:67:32:67:39 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:69:33:69:40 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:71:53:71:60 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:74:58:74:65 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:76:62:76:69 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:78:52:78:59 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:80:34:80:41 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:82:40:82:47 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:84:40:84:47 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:86:50:86:57 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:92:33:92:40 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:97:35:97:42 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:102:32:102:39 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:107:24:107:31 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | mad/Test.java:112:24:112:31 | source(...) : String | provenance | Src:MaD:277 | +| mad/Test.java:31:40:31:47 | source(...) : String | mad/Test.java:31:24:31:47 | (...)... | provenance | Sink:MaD:7 | +| mad/Test.java:36:16:36:23 | source(...) : String | mad/Test.java:36:10:36:23 | (...)... | provenance | Sink:MaD:9 | +| mad/Test.java:38:36:38:43 | source(...) : String | mad/Test.java:38:28:38:43 | (...)... | provenance | Sink:MaD:8 | +| mad/Test.java:40:16:40:23 | source(...) : String | mad/Test.java:40:10:40:23 | (...)... | provenance | Sink:MaD:10 | +| mad/Test.java:45:40:45:47 | source(...) : String | mad/Test.java:45:32:45:47 | (...)... | provenance | Sink:MaD:11 | +| mad/Test.java:45:40:45:47 | source(...) : String | mad/Test.java:45:32:45:47 | (...)... | provenance | Sink:MaD:11 | +| mad/Test.java:47:40:47:47 | source(...) : String | mad/Test.java:47:32:47:47 | (...)... | provenance | Sink:MaD:12 | +| mad/Test.java:47:40:47:47 | source(...) : String | mad/Test.java:47:32:47:47 | (...)... | provenance | Sink:MaD:12 | +| mad/Test.java:49:36:49:43 | source(...) : String | mad/Test.java:49:28:49:43 | (...)... | provenance | Sink:MaD:13 | +| mad/Test.java:49:36:49:43 | source(...) : String | mad/Test.java:49:28:49:43 | (...)... | provenance | Sink:MaD:13 | +| mad/Test.java:51:36:51:43 | source(...) : String | mad/Test.java:51:28:51:43 | (...)... | provenance | Sink:MaD:14 | +| mad/Test.java:51:36:51:43 | source(...) : String | mad/Test.java:51:28:51:43 | (...)... | provenance | Sink:MaD:14 | +| mad/Test.java:53:36:53:43 | source(...) : String | mad/Test.java:53:28:53:43 | (...)... | provenance | Sink:MaD:15 | +| mad/Test.java:53:36:53:43 | source(...) : String | mad/Test.java:53:28:53:43 | (...)... | provenance | Sink:MaD:15 | +| mad/Test.java:55:44:55:51 | source(...) : String | mad/Test.java:55:36:55:51 | (...)... | provenance | Sink:MaD:16 | +| mad/Test.java:57:38:57:45 | source(...) : String | mad/Test.java:57:32:57:45 | (...)... | provenance | Sink:MaD:25 | +| mad/Test.java:59:44:59:51 | source(...) : String | mad/Test.java:59:38:59:51 | (...)... | provenance | Sink:MaD:26 | +| mad/Test.java:61:53:61:60 | source(...) : String | mad/Test.java:61:47:61:60 | (...)... | provenance | Sink:MaD:24 | +| mad/Test.java:63:32:63:39 | source(...) : String | mad/Test.java:63:26:63:39 | (...)... | provenance | Sink:MaD:28 | +| mad/Test.java:65:44:65:51 | source(...) : String | mad/Test.java:65:38:65:51 | (...)... | provenance | Sink:MaD:29 | +| mad/Test.java:67:32:67:39 | source(...) : String | mad/Test.java:67:26:67:39 | (...)... | provenance | Sink:MaD:27 | +| mad/Test.java:69:33:69:40 | source(...) : String | mad/Test.java:69:27:69:40 | (...)... | provenance | Sink:MaD:22 | +| mad/Test.java:71:53:71:60 | source(...) : String | mad/Test.java:71:47:71:60 | (...)... | provenance | Sink:MaD:30 | +| mad/Test.java:74:58:74:65 | source(...) : String | mad/Test.java:74:50:74:65 | (...)... | provenance | Sink:MaD:32 | +| mad/Test.java:76:62:76:69 | source(...) : String | mad/Test.java:76:50:76:69 | (...)... | provenance | Sink:MaD:31 | +| mad/Test.java:78:52:78:59 | source(...) : String | mad/Test.java:78:43:78:59 | (...)... | provenance | Sink:MaD:33 | +| mad/Test.java:80:34:80:41 | source(...) : String | mad/Test.java:80:25:80:41 | (...)... | provenance | Sink:MaD:34 | +| mad/Test.java:82:40:82:47 | source(...) : String | mad/Test.java:82:31:82:47 | (...)... | provenance | Sink:MaD:35 | +| mad/Test.java:84:40:84:47 | source(...) : String | mad/Test.java:84:31:84:47 | (...)... | provenance | Sink:MaD:36 | +| mad/Test.java:86:50:86:57 | source(...) : String | mad/Test.java:86:41:86:57 | (...)... | provenance | Sink:MaD:37 | +| mad/Test.java:92:33:92:40 | source(...) : String | mad/Test.java:92:24:92:40 | (...)... | provenance | Sink:MaD:21 | +| mad/Test.java:97:35:97:42 | source(...) : String | mad/Test.java:97:29:97:42 | (...)... | provenance | Sink:MaD:234 | +| mad/Test.java:102:32:102:39 | source(...) : String | mad/Test.java:102:26:102:39 | (...)... | provenance | Sink:MaD:241 | +| mad/Test.java:107:24:107:31 | source(...) : String | mad/Test.java:107:15:107:31 | (...)... | provenance | Sink:MaD:276 | +| mad/Test.java:112:24:112:31 | source(...) : String | mad/Test.java:112:15:112:31 | (...)... | provenance | Sink:MaD:275 | +models +| 1 | Sink: com.zaxxer.hikari; HikariConfig; false; HikariConfig; (Properties); ; Argument[0]; request-forgery; manual | +| 2 | Sink: com.zaxxer.hikari; HikariConfig; false; setJdbcUrl; (String); ; Argument[0]; request-forgery; manual | +| 3 | Sink: jakarta.ws.rs.client; Client; true; target; ; ; Argument[0]; request-forgery; manual | +| 4 | Sink: java.net.http; HttpClient; true; send; (HttpRequest,HttpResponse$BodyHandler); ; Argument[0]; request-forgery; ai-manual | +| 5 | Sink: java.net.http; HttpRequest$Builder; false; uri; ; ; Argument[0]; request-forgery; manual | +| 6 | Sink: java.net.http; HttpRequest; false; newBuilder; ; ; Argument[0]; request-forgery; manual | +| 7 | Sink: java.net; DatagramSocket; true; connect; (SocketAddress); ; Argument[0]; request-forgery; ai-manual | +| 8 | Sink: java.net; URL; false; openConnection; (Proxy); ; Argument[0]; request-forgery; ai-manual | +| 9 | Sink: java.net; URL; false; openConnection; ; ; Argument[this]; request-forgery; manual | +| 10 | Sink: java.net; URL; false; openStream; ; ; Argument[this]; request-forgery; manual | +| 11 | Sink: java.net; URLClassLoader; false; URLClassLoader; (String,URL[],ClassLoader); ; Argument[1]; request-forgery; manual | +| 12 | Sink: java.net; URLClassLoader; false; URLClassLoader; (String,URL[],ClassLoader,URLStreamHandlerFactory); ; Argument[1]; request-forgery; manual | +| 13 | Sink: java.net; URLClassLoader; false; URLClassLoader; (URL[]); ; Argument[0]; request-forgery; manual | +| 14 | Sink: java.net; URLClassLoader; false; URLClassLoader; (URL[],ClassLoader); ; Argument[0]; request-forgery; manual | +| 15 | Sink: java.net; URLClassLoader; false; URLClassLoader; (URL[],ClassLoader,URLStreamHandlerFactory); ; Argument[0]; request-forgery; manual | +| 16 | Sink: java.net; URLClassLoader; false; newInstance; ; ; Argument[0]; request-forgery; manual | +| 17 | Sink: java.sql; Driver; false; connect; (String,Properties); ; Argument[0]; request-forgery; manual | +| 18 | Sink: java.sql; DriverManager; false; getConnection; (String); ; Argument[0]; request-forgery; manual | +| 19 | Sink: java.sql; DriverManager; false; getConnection; (String,Properties); ; Argument[0]; request-forgery; manual | +| 20 | Sink: java.sql; DriverManager; false; getConnection; (String,String,String); ; Argument[0]; request-forgery; manual | +| 21 | Sink: javafx.scene.web; WebEngine; false; load; (String); ; Argument[0]; request-forgery; ai-manual | +| 22 | Sink: javax.activation; URLDataSource; true; URLDataSource; ; ; Argument[0]; request-forgery; manual | +| 23 | Sink: javax.ws.rs.client; Client; true; target; ; ; Argument[0]; request-forgery; manual | +| 24 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (JellyContext,URL); ; Argument[1]; request-forgery; ai-manual | +| 25 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (JellyContext,URL,URL); ; Argument[1]; request-forgery; ai-manual | +| 26 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (JellyContext,URL,URL); ; Argument[2]; request-forgery; ai-manual | +| 27 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (URL); ; Argument[0]; request-forgery; ai-manual | +| 28 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (URL,URL); ; Argument[0]; request-forgery; ai-manual | +| 29 | Sink: org.apache.commons.jelly; JellyContext; true; JellyContext; (URL,URL); ; Argument[1]; request-forgery; ai-manual | +| 30 | Sink: org.apache.cxf.catalog; OASISCatalogManager; true; loadCatalog; (URL); ; Argument[0]; request-forgery; manual | +| 31 | Sink: org.apache.cxf.common.classloader; ClassLoaderUtils; true; getURLClassLoader; (List,ClassLoader); ; Argument[0]; request-forgery; manual | +| 32 | Sink: org.apache.cxf.common.classloader; ClassLoaderUtils; true; getURLClassLoader; (URL[],ClassLoader); ; Argument[0]; request-forgery; manual | +| 33 | Sink: org.apache.cxf.resource; ExtendedURIResolver; true; resolve; (String,String); ; Argument[0]; request-forgery; manual | +| 34 | Sink: org.apache.cxf.resource; URIResolver; true; URIResolver; (String); ; Argument[0]; request-forgery; manual | +| 35 | Sink: org.apache.cxf.resource; URIResolver; true; URIResolver; (String,String); ; Argument[1]; request-forgery; manual | +| 36 | Sink: org.apache.cxf.resource; URIResolver; true; URIResolver; (String,String,Class); ; Argument[1]; request-forgery; manual | +| 37 | Sink: org.apache.cxf.resource; URIResolver; true; resolve; (String,String,Class); ; Argument[1]; request-forgery; manual | +| 38 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; create; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 39 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; create; (Method,String); ; Argument[1]; request-forgery; hq-manual | +| 40 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; create; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 41 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; create; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 42 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; create; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 43 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; delete; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 44 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 45 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 46 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; get; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 47 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 48 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 49 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; head; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 50 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 51 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 52 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; options; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 53 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 54 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 55 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; patch; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 56 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 57 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 58 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; post; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 59 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 60 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 61 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; put; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 62 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 63 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 64 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; trace; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 65 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 66 | Sink: org.apache.hc.client5.http.async.methods; BasicHttpRequests; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 67 | Sink: org.apache.hc.client5.http.async.methods; ConfigurableHttpRequest; true; ConfigurableHttpRequest; (String,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 68 | Sink: org.apache.hc.client5.http.async.methods; ConfigurableHttpRequest; true; ConfigurableHttpRequest; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 69 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; SimpleHttpRequest; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 70 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; SimpleHttpRequest; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 71 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; SimpleHttpRequest; (String,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 72 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; SimpleHttpRequest; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 73 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; create; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 74 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; create; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 75 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; create; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 76 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequest; true; create; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 77 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; create; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 78 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; create; (Method,String); ; Argument[1]; request-forgery; hq-manual | +| 79 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; create; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 80 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; create; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 81 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; create; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 82 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; delete; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 83 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 84 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 85 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; get; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 86 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 87 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 88 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; head; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 89 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 90 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 91 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; options; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 92 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 93 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 94 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; patch; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 95 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 96 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 97 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; post; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 98 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 99 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 100 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; put; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 101 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 102 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 103 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; trace; (HttpHost,String); ; Argument[0]; request-forgery; hq-manual | +| 104 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 105 | Sink: org.apache.hc.client5.http.async.methods; SimpleHttpRequests; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 106 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 107 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 108 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 109 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 110 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 111 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 112 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 113 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 114 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 115 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 116 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 117 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 118 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 119 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 120 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 121 | Sink: org.apache.hc.client5.http.async.methods; SimpleRequestBuilder; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 122 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; create; (Method,String); ; Argument[1]; request-forgery; hq-manual | +| 123 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; create; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 124 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; create; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 125 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; create; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 126 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 127 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 128 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 129 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 130 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 131 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 132 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 133 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 134 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 135 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 136 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 137 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 138 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 139 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 140 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 141 | Sink: org.apache.hc.client5.http.classic.methods; ClassicHttpRequests; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 142 | Sink: org.apache.hc.client5.http.classic.methods; HttpDelete; true; HttpDelete; (String); ; Argument[0]; request-forgery; hq-manual | +| 143 | Sink: org.apache.hc.client5.http.classic.methods; HttpDelete; true; HttpDelete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 144 | Sink: org.apache.hc.client5.http.classic.methods; HttpGet; true; HttpGet; (String); ; Argument[0]; request-forgery; hq-manual | +| 145 | Sink: org.apache.hc.client5.http.classic.methods; HttpGet; true; HttpGet; (URI); ; Argument[0]; request-forgery; hq-manual | +| 146 | Sink: org.apache.hc.client5.http.classic.methods; HttpHead; true; HttpHead; (String); ; Argument[0]; request-forgery; hq-manual | +| 147 | Sink: org.apache.hc.client5.http.classic.methods; HttpHead; true; HttpHead; (URI); ; Argument[0]; request-forgery; hq-manual | +| 148 | Sink: org.apache.hc.client5.http.classic.methods; HttpOptions; true; HttpOptions; (String); ; Argument[0]; request-forgery; hq-manual | +| 149 | Sink: org.apache.hc.client5.http.classic.methods; HttpOptions; true; HttpOptions; (URI); ; Argument[0]; request-forgery; hq-manual | +| 150 | Sink: org.apache.hc.client5.http.classic.methods; HttpPatch; true; HttpPatch; (String); ; Argument[0]; request-forgery; hq-manual | +| 151 | Sink: org.apache.hc.client5.http.classic.methods; HttpPatch; true; HttpPatch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 152 | Sink: org.apache.hc.client5.http.classic.methods; HttpPost; true; HttpPost; (String); ; Argument[0]; request-forgery; hq-manual | +| 153 | Sink: org.apache.hc.client5.http.classic.methods; HttpPost; true; HttpPost; (URI); ; Argument[0]; request-forgery; hq-manual | +| 154 | Sink: org.apache.hc.client5.http.classic.methods; HttpPut; true; HttpPut; (String); ; Argument[0]; request-forgery; hq-manual | +| 155 | Sink: org.apache.hc.client5.http.classic.methods; HttpPut; true; HttpPut; (URI); ; Argument[0]; request-forgery; hq-manual | +| 156 | Sink: org.apache.hc.client5.http.classic.methods; HttpTrace; true; HttpTrace; (String); ; Argument[0]; request-forgery; hq-manual | +| 157 | Sink: org.apache.hc.client5.http.classic.methods; HttpTrace; true; HttpTrace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 158 | Sink: org.apache.hc.client5.http.classic.methods; HttpUriRequestBase; true; HttpUriRequestBase; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 159 | Sink: org.apache.hc.client5.http.fluent; Request; true; create; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 160 | Sink: org.apache.hc.client5.http.fluent; Request; true; create; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 161 | Sink: org.apache.hc.client5.http.fluent; Request; true; create; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 162 | Sink: org.apache.hc.client5.http.fluent; Request; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 163 | Sink: org.apache.hc.client5.http.fluent; Request; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 164 | Sink: org.apache.hc.client5.http.fluent; Request; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 165 | Sink: org.apache.hc.client5.http.fluent; Request; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 166 | Sink: org.apache.hc.client5.http.fluent; Request; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 167 | Sink: org.apache.hc.client5.http.fluent; Request; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 168 | Sink: org.apache.hc.client5.http.fluent; Request; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 169 | Sink: org.apache.hc.client5.http.fluent; Request; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 170 | Sink: org.apache.hc.client5.http.fluent; Request; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 171 | Sink: org.apache.hc.client5.http.fluent; Request; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 172 | Sink: org.apache.hc.client5.http.fluent; Request; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 173 | Sink: org.apache.hc.client5.http.fluent; Request; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 174 | Sink: org.apache.hc.client5.http.fluent; Request; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 175 | Sink: org.apache.hc.client5.http.fluent; Request; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 176 | Sink: org.apache.hc.client5.http.fluent; Request; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 177 | Sink: org.apache.hc.client5.http.fluent; Request; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 178 | Sink: org.apache.hc.core5.http.impl.bootstrap; HttpAsyncRequester; true; connect; (HttpHost,Timeout); ; Argument[0]; request-forgery; hq-manual | +| 179 | Sink: org.apache.hc.core5.http.impl.bootstrap; HttpAsyncRequester; true; connect; (HttpHost,Timeout,Object,FutureCallback); ; Argument[0]; request-forgery; hq-manual | +| 180 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; delete; (String); ; Argument[0]; request-forgery; hq-manual | +| 181 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; delete; (URI); ; Argument[0]; request-forgery; hq-manual | +| 182 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; get; (String); ; Argument[0]; request-forgery; hq-manual | +| 183 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; get; (URI); ; Argument[0]; request-forgery; hq-manual | +| 184 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; head; (String); ; Argument[0]; request-forgery; hq-manual | +| 185 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; head; (URI); ; Argument[0]; request-forgery; hq-manual | +| 186 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; options; (String); ; Argument[0]; request-forgery; hq-manual | +| 187 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; options; (URI); ; Argument[0]; request-forgery; hq-manual | +| 188 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; patch; (String); ; Argument[0]; request-forgery; hq-manual | +| 189 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; patch; (URI); ; Argument[0]; request-forgery; hq-manual | +| 190 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; post; (String); ; Argument[0]; request-forgery; hq-manual | +| 191 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; post; (URI); ; Argument[0]; request-forgery; hq-manual | +| 192 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; put; (String); ; Argument[0]; request-forgery; hq-manual | +| 193 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; put; (URI); ; Argument[0]; request-forgery; hq-manual | +| 194 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; trace; (String); ; Argument[0]; request-forgery; hq-manual | +| 195 | Sink: org.apache.hc.core5.http.io.support; ClassicRequestBuilder; true; trace; (URI); ; Argument[0]; request-forgery; hq-manual | +| 196 | Sink: org.apache.hc.core5.http.message; BasicClassicHttpRequest; true; BasicClassicHttpRequest; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 197 | Sink: org.apache.hc.core5.http.message; BasicClassicHttpRequest; true; BasicClassicHttpRequest; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 198 | Sink: org.apache.hc.core5.http.message; BasicClassicHttpRequest; true; BasicClassicHttpRequest; (String,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 199 | Sink: org.apache.hc.core5.http.message; BasicClassicHttpRequest; true; BasicClassicHttpRequest; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 200 | Sink: org.apache.hc.core5.http.message; BasicHttpRequest; true; BasicHttpRequest; (Method,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 201 | Sink: org.apache.hc.core5.http.message; BasicHttpRequest; true; BasicHttpRequest; (Method,URI); ; Argument[1]; request-forgery; hq-manual | +| 202 | Sink: org.apache.hc.core5.http.message; BasicHttpRequest; true; BasicHttpRequest; (String,HttpHost,String); ; Argument[1]; request-forgery; hq-manual | +| 203 | Sink: org.apache.hc.core5.http.message; BasicHttpRequest; true; BasicHttpRequest; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 204 | Sink: org.apache.hc.core5.http.support; AbstractRequestBuilder; true; setHttpHost; (HttpHost); ; Argument[0]; request-forgery; hq-manual | +| 205 | Sink: org.apache.hc.core5.http.support; AbstractRequestBuilder; true; setUri; (String); ; Argument[0]; request-forgery; hq-manual | +| 206 | Sink: org.apache.hc.core5.http.support; AbstractRequestBuilder; true; setUri; (URI); ; Argument[0]; request-forgery; hq-manual | +| 207 | Sink: org.apache.hc.core5.http; HttpRequest; true; setUri; (URI); ; Argument[0]; request-forgery; hq-manual | +| 208 | Sink: org.apache.hc.core5.http; HttpRequestFactory; true; newHttpRequest; (String,String); ; Argument[1]; request-forgery; hq-manual | +| 209 | Sink: org.apache.hc.core5.http; HttpRequestFactory; true; newHttpRequest; (String,URI); ; Argument[1]; request-forgery; hq-manual | +| 210 | Sink: org.apache.http.client.methods; HttpDelete; false; HttpDelete; ; ; Argument[0]; request-forgery; manual | +| 211 | Sink: org.apache.http.client.methods; HttpGet; false; HttpGet; ; ; Argument[0]; request-forgery; manual | +| 212 | Sink: org.apache.http.client.methods; HttpHead; false; HttpHead; ; ; Argument[0]; request-forgery; manual | +| 213 | Sink: org.apache.http.client.methods; HttpOptions; false; HttpOptions; ; ; Argument[0]; request-forgery; manual | +| 214 | Sink: org.apache.http.client.methods; HttpPatch; false; HttpPatch; ; ; Argument[0]; request-forgery; manual | +| 215 | Sink: org.apache.http.client.methods; HttpPost; false; HttpPost; ; ; Argument[0]; request-forgery; manual | +| 216 | Sink: org.apache.http.client.methods; HttpPut; false; HttpPut; ; ; Argument[0]; request-forgery; manual | +| 217 | Sink: org.apache.http.client.methods; HttpRequestBase; true; setURI; ; ; Argument[0]; request-forgery; manual | +| 218 | Sink: org.apache.http.client.methods; HttpTrace; false; HttpTrace; ; ; Argument[0]; request-forgery; manual | +| 219 | Sink: org.apache.http.client.methods; RequestBuilder; false; delete; ; ; Argument[0]; request-forgery; manual | +| 220 | Sink: org.apache.http.client.methods; RequestBuilder; false; get; ; ; Argument[0]; request-forgery; manual | +| 221 | Sink: org.apache.http.client.methods; RequestBuilder; false; head; ; ; Argument[0]; request-forgery; manual | +| 222 | Sink: org.apache.http.client.methods; RequestBuilder; false; options; ; ; Argument[0]; request-forgery; manual | +| 223 | Sink: org.apache.http.client.methods; RequestBuilder; false; patch; ; ; Argument[0]; request-forgery; manual | +| 224 | Sink: org.apache.http.client.methods; RequestBuilder; false; post; ; ; Argument[0]; request-forgery; manual | +| 225 | Sink: org.apache.http.client.methods; RequestBuilder; false; put; ; ; Argument[0]; request-forgery; manual | +| 226 | Sink: org.apache.http.client.methods; RequestBuilder; false; setUri; ; ; Argument[0]; request-forgery; manual | +| 227 | Sink: org.apache.http.client.methods; RequestBuilder; false; trace; ; ; Argument[0]; request-forgery; manual | +| 228 | Sink: org.apache.http.message; BasicHttpEntityEnclosingRequest; false; BasicHttpEntityEnclosingRequest; (RequestLine); ; Argument[0]; request-forgery; manual | +| 229 | Sink: org.apache.http.message; BasicHttpEntityEnclosingRequest; false; BasicHttpEntityEnclosingRequest; (String,String); ; Argument[1]; request-forgery; manual | +| 230 | Sink: org.apache.http.message; BasicHttpEntityEnclosingRequest; false; BasicHttpEntityEnclosingRequest; (String,String,ProtocolVersion); ; Argument[1]; request-forgery; manual | +| 231 | Sink: org.apache.http.message; BasicHttpRequest; false; BasicHttpRequest; (RequestLine); ; Argument[0]; request-forgery; manual | +| 232 | Sink: org.apache.http.message; BasicHttpRequest; false; BasicHttpRequest; (String,String); ; Argument[1]; request-forgery; manual | +| 233 | Sink: org.apache.http.message; BasicHttpRequest; false; BasicHttpRequest; (String,String,ProtocolVersion); ; Argument[1]; request-forgery; manual | +| 234 | Sink: org.codehaus.cargo.container.installer; ZipURLInstaller; true; ZipURLInstaller; (URL,String,String); ; Argument[0]; request-forgery; ai-manual | +| 235 | Sink: org.jdbi.v3.core; Jdbi; false; create; (String); ; Argument[0]; request-forgery; manual | +| 236 | Sink: org.jdbi.v3.core; Jdbi; false; create; (String,Properties); ; Argument[0]; request-forgery; manual | +| 237 | Sink: org.jdbi.v3.core; Jdbi; false; create; (String,String,String); ; Argument[0]; request-forgery; manual | +| 238 | Sink: org.jdbi.v3.core; Jdbi; false; open; (String); ; Argument[0]; request-forgery; manual | +| 239 | Sink: org.jdbi.v3.core; Jdbi; false; open; (String,Properties); ; Argument[0]; request-forgery; manual | +| 240 | Sink: org.jdbi.v3.core; Jdbi; false; open; (String,String,String); ; Argument[0]; request-forgery; manual | +| 241 | Sink: org.kohsuke.stapler; HttpResponses; true; staticResource; (URL); ; Argument[0]; request-forgery; ai-manual | +| 242 | Sink: org.springframework.boot.jdbc; DataSourceBuilder; false; url; (String); ; Argument[0]; request-forgery; manual | +| 243 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (HttpMethod,URI); ; Argument[1]; request-forgery; manual | +| 244 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (MultiValueMap,HttpMethod,URI); ; Argument[2]; request-forgery; manual | +| 245 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (Object,HttpMethod,URI); ; Argument[2]; request-forgery; manual | +| 246 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (Object,HttpMethod,URI,Type); ; Argument[2]; request-forgery; manual | +| 247 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (Object,MultiValueMap,HttpMethod,URI); ; Argument[3]; request-forgery; manual | +| 248 | Sink: org.springframework.http; RequestEntity; false; RequestEntity; (Object,MultiValueMap,HttpMethod,URI,Type); ; Argument[3]; request-forgery; manual | +| 249 | Sink: org.springframework.http; RequestEntity; false; delete; ; ; Argument[0]; request-forgery; manual | +| 250 | Sink: org.springframework.http; RequestEntity; false; get; ; ; Argument[0]; request-forgery; manual | +| 251 | Sink: org.springframework.http; RequestEntity; false; head; ; ; Argument[0]; request-forgery; manual | +| 252 | Sink: org.springframework.http; RequestEntity; false; method; ; ; Argument[1]; request-forgery; manual | +| 253 | Sink: org.springframework.http; RequestEntity; false; options; ; ; Argument[0]; request-forgery; manual | +| 254 | Sink: org.springframework.http; RequestEntity; false; patch; ; ; Argument[0]; request-forgery; manual | +| 255 | Sink: org.springframework.http; RequestEntity; false; post; ; ; Argument[0]; request-forgery; manual | +| 256 | Sink: org.springframework.http; RequestEntity; false; put; ; ; Argument[0]; request-forgery; manual | +| 257 | Sink: org.springframework.jdbc.datasource; AbstractDriverBasedDataSource; false; setUrl; (String); ; Argument[0]; request-forgery; manual | +| 258 | Sink: org.springframework.jdbc.datasource; DriverManagerDataSource; false; DriverManagerDataSource; (String); ; Argument[0]; request-forgery; manual | +| 259 | Sink: org.springframework.jdbc.datasource; DriverManagerDataSource; false; DriverManagerDataSource; (String,Properties); ; Argument[0]; request-forgery; manual | +| 260 | Sink: org.springframework.jdbc.datasource; DriverManagerDataSource; false; DriverManagerDataSource; (String,String,String); ; Argument[0]; request-forgery; manual | +| 261 | Sink: org.springframework.web.client; RestTemplate; false; delete; ; ; Argument[0]; request-forgery; manual | +| 262 | Sink: org.springframework.web.client; RestTemplate; false; exchange; ; ; Argument[0]; request-forgery; manual | +| 263 | Sink: org.springframework.web.client; RestTemplate; false; execute; ; ; Argument[0]; request-forgery; manual | +| 264 | Sink: org.springframework.web.client; RestTemplate; false; getForEntity; ; ; Argument[0]; request-forgery; manual | +| 265 | Sink: org.springframework.web.client; RestTemplate; false; getForObject; ; ; Argument[0]; request-forgery; manual | +| 266 | Sink: org.springframework.web.client; RestTemplate; false; headForHeaders; ; ; Argument[0]; request-forgery; manual | +| 267 | Sink: org.springframework.web.client; RestTemplate; false; optionsForAllow; ; ; Argument[0]; request-forgery; manual | +| 268 | Sink: org.springframework.web.client; RestTemplate; false; patchForObject; ; ; Argument[0]; request-forgery; manual | +| 269 | Sink: org.springframework.web.client; RestTemplate; false; postForEntity; ; ; Argument[0]; request-forgery; manual | +| 270 | Sink: org.springframework.web.client; RestTemplate; false; postForLocation; ; ; Argument[0]; request-forgery; manual | +| 271 | Sink: org.springframework.web.client; RestTemplate; false; postForObject; ; ; Argument[0]; request-forgery; manual | +| 272 | Sink: org.springframework.web.client; RestTemplate; false; put; ; ; Argument[0]; request-forgery; manual | +| 273 | Sink: org.springframework.web.reactive.function.client; WebClient$Builder; false; baseUrl; ; ; Argument[0]; request-forgery; manual | +| 274 | Sink: org.springframework.web.reactive.function.client; WebClient; false; create; ; ; Argument[0]; request-forgery; manual | +| 275 | Sink: play.libs.ws; StandaloneWSClient; true; url; ; ; Argument[0]; request-forgery; manual | +| 276 | Sink: play.libs.ws; WSClient; true; url; ; ; Argument[0]; request-forgery; manual | +| 277 | Source: javax.servlet; ServletRequest; false; getParameter; (String); ; ReturnValue; remote; manual | +| 278 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[0]; Argument[this]; taint; manual | +| 279 | Summary: java.lang; AbstractStringBuilder; true; append; ; ; Argument[this]; ReturnValue; value; manual | +| 280 | Summary: java.lang; CharSequence; true; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 281 | Summary: java.lang; String; false; format; (String,Object[]); ; Argument[1].ArrayElement; ReturnValue; taint; manual | +| 282 | Summary: java.lang; StringBuilder; true; StringBuilder; ; ; Argument[0]; Argument[this]; taint; manual | +| 283 | Summary: java.net.http; HttpRequest$Builder; true; build; (); ; Argument[this]; ReturnValue; taint; df-generated | +| 284 | Summary: java.net.http; HttpRequest; true; newBuilder; (URI); ; Argument[0]; ReturnValue; taint; df-generated | +| 285 | Summary: java.net; URI; false; URI; (String); ; Argument[0]; Argument[this]; taint; manual | +| 286 | Summary: java.net; URI; false; toString; ; ; Argument[this]; ReturnValue; taint; manual | +| 287 | Summary: java.net; URI; false; toURL; ; ; Argument[this]; ReturnValue; taint; manual | +| 288 | Summary: java.net; URL; false; URL; (String); ; Argument[0]; Argument[this]; taint; manual | +| 289 | Summary: java.util; Map; false; of; ; ; Argument[1]; ReturnValue.MapValue; value; manual | +| 290 | Summary: java.util; Map; false; of; ; ; Argument[3]; ReturnValue.MapValue; value; manual | +| 291 | Summary: java.util; Properties; true; setProperty; (String,String); ; Argument[1]; Argument[this].MapValue; value; manual | +| 292 | Summary: org.apache.hc.core5.http; HttpHost; true; HttpHost; (String); ; Argument[0]; Argument[this]; taint; hq-manual | +| 293 | Summary: org.apache.http.message; BasicRequestLine; false; BasicRequestLine; ; ; Argument[1]; Argument[this]; taint; manual | +nodes +| ApacheHttpSSRF.java:27:27:27:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRF.java:28:23:28:35 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRF.java:28:31:28:34 | sink : String | semmle.label | sink : String | +| ApacheHttpSSRF.java:30:43:30:45 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:32:29:32:31 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:34:26:34:28 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:35:26:35:28 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:36:25:36:27 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:37:28:37:30 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:38:29:38:31 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:39:27:39:29 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:40:27:40:29 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:42:34:42:82 | new BasicRequestLine(...) | semmle.label | new BasicRequestLine(...) | +| ApacheHttpSSRF.java:42:62:42:64 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:42:62:42:75 | toString(...) : String | semmle.label | toString(...) : String | +| ApacheHttpSSRF.java:43:41:43:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:43:41:43:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRF.java:44:41:44:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:44:41:44:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRF.java:46:49:46:97 | new BasicRequestLine(...) | semmle.label | new BasicRequestLine(...) | +| ApacheHttpSSRF.java:46:77:46:79 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:46:77:46:90 | toString(...) : String | semmle.label | toString(...) : String | +| ApacheHttpSSRF.java:47:56:47:58 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:47:56:47:69 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRF.java:48:56:48:58 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRF.java:48:56:48:69 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRF.java:50:32:50:34 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:51:33:51:35 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:52:32:52:34 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:53:35:53:37 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:54:36:54:38 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:55:33:55:35 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:56:34:56:36 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:57:34:57:36 | uri | semmle.label | uri | +| ApacheHttpSSRF.java:58:43:58:45 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:41:30:41:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:42:23:42:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:42:31:42:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:44:31:44:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:45:29:45:50 | new HttpHost(...) : HttpHost | semmle.label | new HttpHost(...) : HttpHost | +| ApacheHttpSSRFVersion5.java:45:42:45:49 | hostSink : String | semmle.label | hostSink : String | +| ApacheHttpSSRFVersion5.java:48:54:48:57 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:49:54:49:56 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:49:54:49:67 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:50:54:50:56 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:51:48:51:50 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:51:48:51:61 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:52:48:52:50 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:54:38:54:41 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:55:38:55:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:55:38:55:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:56:38:56:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:58:35:58:38 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:59:35:59:37 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:59:35:59:48 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:60:35:60:37 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:62:36:62:39 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:63:36:63:38 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:63:36:63:49 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:64:36:64:38 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:66:39:66:42 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:67:39:67:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:67:39:67:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:68:39:68:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:70:37:70:40 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:71:37:71:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:71:37:71:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:72:37:72:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:74:36:74:39 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:75:36:75:38 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:75:36:75:49 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:76:36:76:38 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:78:35:78:38 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:79:35:79:37 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:79:35:79:48 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:80:35:80:37 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:82:37:82:40 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:83:37:83:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:83:37:83:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:84:37:84:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:87:51:87:54 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:88:51:88:53 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:91:51:91:54 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:92:51:92:53 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:93:45:93:48 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:94:45:94:47 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:96:54:96:57 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:97:54:97:56 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:98:48:98:50 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:98:48:98:61 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:99:48:99:50 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:102:55:102:58 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:103:55:103:57 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:103:55:103:68 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:104:55:104:57 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:105:49:105:51 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:105:49:105:62 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:106:49:106:51 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:108:39:108:42 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:109:39:109:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:109:39:109:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:110:39:110:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:112:36:112:39 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:113:36:113:38 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:113:36:113:49 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:114:36:114:38 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:116:37:116:40 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:117:37:117:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:117:37:117:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:118:37:118:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:120:40:120:43 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:121:40:121:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:121:40:121:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:122:40:122:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:124:38:124:41 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:125:38:125:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:125:38:125:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:126:38:126:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:128:37:128:40 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:129:37:129:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:129:37:129:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:130:37:130:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:132:36:132:39 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:133:36:133:38 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:133:36:133:49 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:134:36:134:38 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:136:38:136:41 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:137:38:137:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:137:38:137:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:138:38:138:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:141:41:141:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:141:41:141:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:142:41:142:43 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:144:38:144:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:144:38:144:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:145:38:145:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:147:39:147:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:147:39:147:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:148:39:148:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:150:42:150:44 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:150:42:150:55 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:151:42:151:44 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:153:40:153:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:153:40:153:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:154:40:154:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:156:39:156:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:156:39:156:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:157:39:157:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:159:38:159:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:159:38:159:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:160:38:160:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:162:52:162:55 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:164:47:164:49 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:164:47:164:60 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:165:47:165:49 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:167:40:167:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:167:40:167:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:168:40:168:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:180:30:180:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:181:23:181:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:181:31:181:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:184:56:184:58 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:184:56:184:69 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:185:56:185:58 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:186:50:186:52 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:186:50:186:63 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:187:50:187:52 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:189:40:189:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:189:40:189:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:190:40:190:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:192:37:192:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:192:37:192:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:193:37:193:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:195:38:195:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:195:38:195:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:196:38:196:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:198:41:198:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:198:41:198:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:199:41:199:43 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:201:39:201:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:201:39:201:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:202:39:202:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:204:38:204:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:204:38:204:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:205:38:205:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:207:37:207:39 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:207:37:207:50 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:208:37:208:39 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:210:39:210:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:210:39:210:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:211:39:211:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:214:28:214:30 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:214:28:214:41 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:215:28:215:30 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:217:25:217:27 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:217:25:217:38 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:218:25:218:27 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:220:26:220:28 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:220:26:220:39 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:221:26:221:28 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:223:29:223:31 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:223:29:223:42 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:224:29:224:31 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:226:27:226:29 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:226:27:226:40 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:227:27:227:29 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:229:26:229:28 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:229:26:229:39 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:230:26:230:28 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:232:25:232:27 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:232:25:232:38 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:233:25:233:27 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:235:27:235:29 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:235:27:235:40 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:236:27:236:29 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:239:46:239:48 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:251:30:251:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:252:23:252:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:252:31:252:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:255:44:255:46 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:256:38:256:40 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:256:38:256:51 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:257:38:257:40 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:259:28:259:30 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:259:28:259:41 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:260:28:260:30 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:262:25:262:27 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:262:25:262:38 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:263:25:263:27 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:265:26:265:28 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:265:26:265:39 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:266:26:266:28 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:268:29:268:31 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:268:29:268:42 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:269:29:269:31 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:271:27:271:29 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:271:27:271:40 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:272:27:272:29 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:274:26:274:28 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:274:26:274:39 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:275:26:275:28 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:277:25:277:27 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:277:25:277:38 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:278:25:278:27 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:280:27:280:29 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:280:27:280:40 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:281:27:281:29 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:295:30:295:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:296:23:296:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:296:31:296:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:298:31:298:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:299:29:299:50 | new HttpHost(...) : HttpHost | semmle.label | new HttpHost(...) : HttpHost | +| ApacheHttpSSRFVersion5.java:299:42:299:49 | hostSink : String | semmle.label | hostSink : String | +| ApacheHttpSSRFVersion5.java:303:34:303:37 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:304:34:304:37 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:308:60:308:62 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:308:60:308:73 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:309:60:309:62 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:313:53:313:55 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:313:53:313:66 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:314:53:314:55 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:326:30:326:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:327:23:327:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:327:31:327:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:329:31:329:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:330:29:330:50 | new HttpHost(...) : HttpHost | semmle.label | new HttpHost(...) : HttpHost | +| ApacheHttpSSRFVersion5.java:330:42:330:49 | hostSink : String | semmle.label | hostSink : String | +| ApacheHttpSSRFVersion5.java:333:42:333:44 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:333:42:333:55 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:334:42:334:44 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:336:39:336:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:336:39:336:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:337:39:337:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:339:40:339:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:339:40:339:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:340:40:340:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:342:43:342:45 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:342:43:342:56 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:343:43:343:45 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:345:41:345:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:345:41:345:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:346:41:346:43 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:348:40:348:42 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:348:40:348:53 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:349:40:349:42 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:351:39:351:41 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:351:39:351:52 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:352:39:352:41 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:354:53:354:56 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:356:48:356:50 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:356:48:356:61 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:357:48:357:50 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:359:41:359:43 | uri : URI | semmle.label | uri : URI | +| ApacheHttpSSRFVersion5.java:359:41:359:54 | toString(...) | semmle.label | toString(...) | +| ApacheHttpSSRFVersion5.java:360:41:360:43 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:372:30:372:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:373:23:373:38 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| ApacheHttpSSRFVersion5.java:373:31:373:37 | uriSink : String | semmle.label | uriSink : String | +| ApacheHttpSSRFVersion5.java:375:31:375:58 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ApacheHttpSSRFVersion5.java:376:29:376:50 | new HttpHost(...) : HttpHost | semmle.label | new HttpHost(...) : HttpHost | +| ApacheHttpSSRFVersion5.java:376:42:376:49 | hostSink : String | semmle.label | hostSink : String | +| ApacheHttpSSRFVersion5.java:379:57:379:60 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:380:57:380:59 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:381:51:381:54 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:382:51:382:53 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:385:50:385:53 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:386:50:386:52 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:387:44:387:47 | host | semmle.label | host | +| ApacheHttpSSRFVersion5.java:388:44:388:46 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:390:24:390:26 | uri | semmle.label | uri | +| ApacheHttpSSRFVersion5.java:394:24:394:26 | uri | semmle.label | uri | +| JakartaWsSSRF.java:14:22:14:48 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JakartaWsSSRF.java:15:23:15:25 | url | semmle.label | url | +| JavaNetHttpSSRF.java:25:27:25:53 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JavaNetHttpSSRF.java:26:23:26:35 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| JavaNetHttpSSRF.java:26:31:26:34 | sink : String | semmle.label | sink : String | +| JavaNetHttpSSRF.java:27:24:27:57 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| JavaNetHttpSSRF.java:27:40:27:43 | sink : String | semmle.label | sink : String | +| JavaNetHttpSSRF.java:28:24:28:36 | new URL(...) : URL | semmle.label | new URL(...) : URL | +| JavaNetHttpSSRF.java:28:32:28:35 | sink : String | semmle.label | sink : String | +| JavaNetHttpSSRF.java:30:32:30:35 | url1 | semmle.label | url1 | +| JavaNetHttpSSRF.java:33:32:33:35 | url1 | semmle.label | url1 | +| JavaNetHttpSSRF.java:34:30:34:33 | url1 | semmle.label | url1 | +| JavaNetHttpSSRF.java:38:65:38:68 | uri2 | semmle.label | uri2 | +| JavaNetHttpSSRF.java:39:59:39:61 | uri | semmle.label | uri | +| JaxWsSSRF.java:14:22:14:48 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JaxWsSSRF.java:15:23:15:25 | url | semmle.label | url | +| JdbcUrlSSRF.java:21:26:21:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JdbcUrlSSRF.java:26:28:26:34 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:28:41:28:47 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:29:41:29:47 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:30:41:30:47 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:32:27:32:33 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:40:26:40:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JdbcUrlSSRF.java:43:27:43:33 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:48:23:48:29 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:52:9:52:13 | props : Properties | semmle.label | props : Properties | +| JdbcUrlSSRF.java:52:9:52:13 | props [post update] : Properties [] : String | semmle.label | props [post update] : Properties [] : String | +| JdbcUrlSSRF.java:52:38:52:44 | jdbcUrl : String | semmle.label | jdbcUrl : String | +| JdbcUrlSSRF.java:54:49:54:53 | props | semmle.label | props | +| JdbcUrlSSRF.java:60:26:60:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JdbcUrlSSRF.java:65:27:65:33 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:67:75:67:81 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:70:75:70:81 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:73:75:73:81 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:80:26:80:56 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| JdbcUrlSSRF.java:82:21:82:27 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:83:21:83:27 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:84:21:84:27 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:86:19:86:25 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:87:19:87:25 | jdbcUrl | semmle.label | jdbcUrl | +| JdbcUrlSSRF.java:88:19:88:25 | jdbcUrl | semmle.label | jdbcUrl | +| ReactiveWebClientSSRF.java:15:26:15:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ReactiveWebClientSSRF.java:16:52:16:54 | url | semmle.label | url | +| ReactiveWebClientSSRF.java:32:26:32:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| ReactiveWebClientSSRF.java:35:30:35:32 | url | semmle.label | url | +| SanitizationTests.java:19:23:19:58 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:19:31:19:57 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:22:29:22:55 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:22:29:22:63 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:22:52:22:54 | uri | semmle.label | uri | +| SanitizationTests.java:22:52:22:54 | uri : URI | semmle.label | uri : URI | +| SanitizationTests.java:23:25:23:25 | r | semmle.label | r | +| SanitizationTests.java:75:33:75:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:76:36:76:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:76:36:76:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:76:59:76:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:76:59:76:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:76:67:76:76 | unsafeUri3 : String | semmle.label | unsafeUri3 : String | +| SanitizationTests.java:77:25:77:32 | unsafer3 | semmle.label | unsafer3 | +| SanitizationTests.java:79:49:79:79 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:80:36:80:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:80:36:80:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:80:59:80:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:80:59:80:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:80:67:80:76 | unsafeUri4 : String | semmle.label | unsafeUri4 : String | +| SanitizationTests.java:81:25:81:32 | unsafer4 | semmle.label | unsafer4 | +| SanitizationTests.java:84:13:84:22 | unsafeUri5 [post update] : StringBuilder | semmle.label | unsafeUri5 [post update] : StringBuilder | +| SanitizationTests.java:84:31:84:61 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:85:36:85:89 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:85:36:85:97 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:85:59:85:88 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:85:59:85:88 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:85:67:85:76 | unsafeUri5 : StringBuilder | semmle.label | unsafeUri5 : StringBuilder | +| SanitizationTests.java:85:67:85:87 | toString(...) : String | semmle.label | toString(...) : String | +| SanitizationTests.java:86:25:86:32 | unsafer5 | semmle.label | unsafer5 | +| SanitizationTests.java:88:40:88:87 | new StringBuilder(...) : StringBuilder | semmle.label | new StringBuilder(...) : StringBuilder | +| SanitizationTests.java:88:58:88:86 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:90:37:90:90 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:90:37:90:98 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:90:60:90:89 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:90:60:90:89 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:90:68:90:77 | unafeUri5a : StringBuilder | semmle.label | unafeUri5a : StringBuilder | +| SanitizationTests.java:90:68:90:88 | toString(...) : String | semmle.label | toString(...) : String | +| SanitizationTests.java:91:25:91:33 | unsafer5a | semmle.label | unsafer5a | +| SanitizationTests.java:93:41:93:105 | append(...) : StringBuilder | semmle.label | append(...) : StringBuilder | +| SanitizationTests.java:93:42:93:89 | new StringBuilder(...) : StringBuilder | semmle.label | new StringBuilder(...) : StringBuilder | +| SanitizationTests.java:93:60:93:88 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:95:37:95:91 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:95:37:95:99 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:95:60:95:90 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:95:60:95:90 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:95:68:95:78 | unsafeUri5b : StringBuilder | semmle.label | unsafeUri5b : StringBuilder | +| SanitizationTests.java:95:68:95:89 | toString(...) : String | semmle.label | toString(...) : String | +| SanitizationTests.java:96:25:96:33 | unsafer5b | semmle.label | unsafer5b | +| SanitizationTests.java:98:41:98:106 | append(...) : StringBuilder | semmle.label | append(...) : StringBuilder | +| SanitizationTests.java:98:77:98:105 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:100:37:100:91 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:100:37:100:99 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:100:60:100:90 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:100:60:100:90 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:100:68:100:78 | unsafeUri5c : StringBuilder | semmle.label | unsafeUri5c : StringBuilder | +| SanitizationTests.java:100:68:100:89 | toString(...) : String | semmle.label | toString(...) : String | +| SanitizationTests.java:101:25:101:33 | unsafer5c | semmle.label | unsafer5c | +| SanitizationTests.java:103:33:103:104 | format(...) : String | semmle.label | format(...) : String | +| SanitizationTests.java:103:33:103:104 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String | +| SanitizationTests.java:103:73:103:103 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:104:36:104:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:104:36:104:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:104:59:104:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:104:59:104:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:104:67:104:76 | unsafeUri6 : String | semmle.label | unsafeUri6 : String | +| SanitizationTests.java:105:25:105:32 | unsafer6 | semmle.label | unsafer6 | +| SanitizationTests.java:107:33:107:110 | format(...) : String | semmle.label | format(...) : String | +| SanitizationTests.java:107:33:107:110 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String | +| SanitizationTests.java:107:56:107:86 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:108:36:108:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:108:36:108:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:108:59:108:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:108:59:108:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:108:67:108:76 | unsafeUri7 : String | semmle.label | unsafeUri7 : String | +| SanitizationTests.java:109:25:109:32 | unsafer7 | semmle.label | unsafer7 | +| SanitizationTests.java:111:33:111:110 | format(...) : String | semmle.label | format(...) : String | +| SanitizationTests.java:111:33:111:110 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String | +| SanitizationTests.java:111:55:111:85 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:112:36:112:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:112:36:112:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:112:59:112:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:112:59:112:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:112:67:112:76 | unsafeUri8 : String | semmle.label | unsafeUri8 : String | +| SanitizationTests.java:113:25:113:32 | unsafer8 | semmle.label | unsafer8 | +| SanitizationTests.java:115:33:115:63 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:116:36:116:78 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:116:36:116:86 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:116:59:116:77 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:116:59:116:77 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:116:67:116:76 | unsafeUri9 : String | semmle.label | unsafeUri9 : String | +| SanitizationTests.java:117:25:117:32 | unsafer9 | semmle.label | unsafer9 | +| SanitizationTests.java:119:34:119:126 | format(...) : String | semmle.label | format(...) : String | +| SanitizationTests.java:119:34:119:126 | new ..[] { .. } : Object[] [[]] : String | semmle.label | new ..[] { .. } : Object[] [[]] : String | +| SanitizationTests.java:119:94:119:125 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| SanitizationTests.java:120:37:120:80 | newBuilder(...) : Builder | semmle.label | newBuilder(...) : Builder | +| SanitizationTests.java:120:37:120:88 | build(...) : HttpRequest | semmle.label | build(...) : HttpRequest | +| SanitizationTests.java:120:60:120:79 | new URI(...) | semmle.label | new URI(...) | +| SanitizationTests.java:120:60:120:79 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| SanitizationTests.java:120:68:120:78 | unsafeUri10 : String | semmle.label | unsafeUri10 : String | +| 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 | +| 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 | +| URLClassLoaderSSRF.java:18:64:18:85 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:18:64:18:85 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:18:74:18:76 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:18:74:18:84 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| URLClassLoaderSSRF.java:28:26:28:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| URLClassLoaderSSRF.java:29:23:29:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| URLClassLoaderSSRF.java:29:31:29:33 | url : String | semmle.label | url : String | +| URLClassLoaderSSRF.java:30:64:30:85 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:30:64:30:85 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:30:74:30:76 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:30:74:30:84 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| URLClassLoaderSSRF.java:40:26:40:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| URLClassLoaderSSRF.java:41:23:41:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| URLClassLoaderSSRF.java:41:31:41:33 | url : String | semmle.label | url : String | +| URLClassLoaderSSRF.java:44:64:44:85 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:44:64:44:85 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:44:74:44:76 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:44:74:44:84 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| URLClassLoaderSSRF.java:54:26:54:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| URLClassLoaderSSRF.java:55:23:55:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| URLClassLoaderSSRF.java:55:31:55:33 | url : String | semmle.label | url : String | +| URLClassLoaderSSRF.java:56:72:56:93 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:56:72:56:93 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:56:82:56:84 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:56:82:56:92 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| URLClassLoaderSSRF.java:66:26:66:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| URLClassLoaderSSRF.java:67:23:67:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| URLClassLoaderSSRF.java:67:31:67:33 | url : String | semmle.label | url : String | +| URLClassLoaderSSRF.java:70:21:70:42 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:70:21:70:42 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:70:31:70:33 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:70:31:70:41 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| URLClassLoaderSSRF.java:83:26:83:52 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| URLClassLoaderSSRF.java:84:23:84:34 | new URI(...) : URI | semmle.label | new URI(...) : URI | +| URLClassLoaderSSRF.java:84:31:84:33 | url : String | semmle.label | url : String | +| URLClassLoaderSSRF.java:89:21:89:42 | new URL[] | semmle.label | new URL[] | +| URLClassLoaderSSRF.java:89:21:89:42 | {...} : URL[] [[]] : URL | semmle.label | {...} : URL[] [[]] : URL | +| URLClassLoaderSSRF.java:89:31:89:33 | uri : URI | semmle.label | uri : URI | +| URLClassLoaderSSRF.java:89:31:89:41 | toURL(...) : URL | semmle.label | toURL(...) : URL | +| mad/Test.java:26:16:26:41 | getParameter(...) : String | semmle.label | getParameter(...) : String | +| mad/Test.java:31:24:31:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:31:40:31:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:36:10:36:23 | (...)... | semmle.label | (...)... | +| mad/Test.java:36:16:36:23 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:38:28:38:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:38:36:38:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:40:10:40:23 | (...)... | semmle.label | (...)... | +| mad/Test.java:40:16:40:23 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:45:32:45:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:45:40:45:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:47:32:47:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:47:40:47:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:49:28:49:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:49:36:49:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:51:28:51:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:51:36:51:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:53:28:53:43 | (...)... | semmle.label | (...)... | +| mad/Test.java:53:36:53:43 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:55:36:55:51 | (...)... | semmle.label | (...)... | +| mad/Test.java:55:44:55:51 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:57:32:57:45 | (...)... | semmle.label | (...)... | +| mad/Test.java:57:38:57:45 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:59:38:59:51 | (...)... | semmle.label | (...)... | +| mad/Test.java:59:44:59:51 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:61:47:61:60 | (...)... | semmle.label | (...)... | +| mad/Test.java:61:53:61:60 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:63:26:63:39 | (...)... | semmle.label | (...)... | +| mad/Test.java:63:32:63:39 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:65:38:65:51 | (...)... | semmle.label | (...)... | +| mad/Test.java:65:44:65:51 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:67:26:67:39 | (...)... | semmle.label | (...)... | +| mad/Test.java:67:32:67:39 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:69:27:69:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:69:33:69:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:71:47:71:60 | (...)... | semmle.label | (...)... | +| mad/Test.java:71:53:71:60 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:74:50:74:65 | (...)... | semmle.label | (...)... | +| mad/Test.java:74:58:74:65 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:76:50:76:69 | (...)... | semmle.label | (...)... | +| mad/Test.java:76:62:76:69 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:78:43:78:59 | (...)... | semmle.label | (...)... | +| mad/Test.java:78:52:78:59 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:80:25:80:41 | (...)... | semmle.label | (...)... | +| mad/Test.java:80:34:80:41 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:82:31:82:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:82:40:82:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:84:31:84:47 | (...)... | semmle.label | (...)... | +| mad/Test.java:84:40:84:47 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:86:41:86:57 | (...)... | semmle.label | (...)... | +| mad/Test.java:86:50:86:57 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:92:24:92:40 | (...)... | semmle.label | (...)... | +| mad/Test.java:92:33:92:40 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:97:29:97:42 | (...)... | semmle.label | (...)... | +| mad/Test.java:97:35:97:42 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:102:26:102:39 | (...)... | semmle.label | (...)... | +| mad/Test.java:102:32:102:39 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:107:15:107:31 | (...)... | semmle.label | (...)... | +| mad/Test.java:107:24:107:31 | source(...) : String | semmle.label | source(...) : String | +| mad/Test.java:112:15:112:31 | (...)... | semmle.label | (...)... | +| mad/Test.java:112:24:112:31 | source(...) : String | semmle.label | source(...) : String | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-918/RequestForgery.ql b/java/ql/test/query-tests/security/CWE-918/RequestForgery.ql deleted file mode 100644 index 971a9532bd6..00000000000 --- a/java/ql/test/query-tests/security/CWE-918/RequestForgery.ql +++ /dev/null @@ -1,19 +0,0 @@ -import java -import semmle.code.java.security.RequestForgeryConfig -import utils.test.InlineExpectationsTest - -module HasFlowTest implements TestSig { - string getARelevantTag() { result = "SSRF" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "SSRF" and - exists(DataFlow::Node sink | - RequestForgeryFlow::flowTo(sink) and - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-918/RequestForgery.qlref b/java/ql/test/query-tests/security/CWE-918/RequestForgery.qlref new file mode 100644 index 00000000000..be2312049e7 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-918/RequestForgery.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-918/RequestForgery.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java b/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java index 33df1a58630..03a61cfcf97 100644 --- a/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java +++ b/java/ql/test/query-tests/security/CWE-918/SanitizationTests.java @@ -16,11 +16,11 @@ public class SanitizationTests extends HttpServlet { throws ServletException, IOException { try { - URI uri = new URI(request.getParameter("uri")); + URI uri = new URI(request.getParameter("uri")); // $ Source // BAD: a request parameter is incorporated without validation into a Http // request - HttpRequest r = HttpRequest.newBuilder(uri).build(); // $ SSRF - client.send(r, null); // $ SSRF + HttpRequest r = HttpRequest.newBuilder(uri).build(); // $ Alert + client.send(r, null); // $ Alert // GOOD: sanitisation by concatenation with a prefix that prevents targeting an arbitrary host. // We test a few different ways of sanitisation: via string conctentation (perhaps nested), @@ -72,55 +72,55 @@ public class SanitizationTests extends HttpServlet { // BAD: cases where a string that would sanitise is used, but occurs in the wrong // place to sanitise user input: - String unsafeUri3 = request.getParameter("baduri3") + "https://example.com/"; - HttpRequest unsafer3 = HttpRequest.newBuilder(new URI(unsafeUri3)).build(); // $ SSRF - client.send(unsafer3, null); // $ SSRF + String unsafeUri3 = request.getParameter("baduri3") + "https://example.com/"; // $ Source + HttpRequest unsafer3 = HttpRequest.newBuilder(new URI(unsafeUri3)).build(); // $ Alert + client.send(unsafer3, null); // $ Alert - String unsafeUri4 = ("someprefix" + request.getParameter("baduri4")) + "https://example.com/"; - HttpRequest unsafer4 = HttpRequest.newBuilder(new URI(unsafeUri4)).build(); // $ SSRF - client.send(unsafer4, null); // $ SSRF + String unsafeUri4 = ("someprefix" + request.getParameter("baduri4")) + "https://example.com/"; // $ Source + HttpRequest unsafer4 = HttpRequest.newBuilder(new URI(unsafeUri4)).build(); // $ Alert + client.send(unsafer4, null); // $ Alert StringBuilder unsafeUri5 = new StringBuilder(); - unsafeUri5.append(request.getParameter("baduri5")).append("https://example.com/"); - HttpRequest unsafer5 = HttpRequest.newBuilder(new URI(unsafeUri5.toString())).build(); // $ SSRF - client.send(unsafer5, null); // $ SSRF + unsafeUri5.append(request.getParameter("baduri5")).append("https://example.com/"); // $ Source + HttpRequest unsafer5 = HttpRequest.newBuilder(new URI(unsafeUri5.toString())).build(); // $ Alert + client.send(unsafer5, null); // $ Alert - StringBuilder unafeUri5a = new StringBuilder(request.getParameter("uri5a")); + StringBuilder unafeUri5a = new StringBuilder(request.getParameter("uri5a")); // $ Source unafeUri5a.append("https://example.com/"); - HttpRequest unsafer5a = HttpRequest.newBuilder(new URI(unafeUri5a.toString())).build(); // $ SSRF - client.send(unsafer5a, null); // $ SSRF + HttpRequest unsafer5a = HttpRequest.newBuilder(new URI(unafeUri5a.toString())).build(); // $ Alert + client.send(unsafer5a, null); // $ Alert - StringBuilder unsafeUri5b = (new StringBuilder(request.getParameter("uri5b"))).append("dir/"); + StringBuilder unsafeUri5b = (new StringBuilder(request.getParameter("uri5b"))).append("dir/"); // $ Source unsafeUri5b.append("https://example.com/"); - HttpRequest unsafer5b = HttpRequest.newBuilder(new URI(unsafeUri5b.toString())).build(); // $ SSRF - client.send(unsafer5b, null); // $ SSRF + HttpRequest unsafer5b = HttpRequest.newBuilder(new URI(unsafeUri5b.toString())).build(); // $ Alert + client.send(unsafer5b, null); // $ Alert - StringBuilder unsafeUri5c = (new StringBuilder("https")).append(request.getParameter("uri5c")); + StringBuilder unsafeUri5c = (new StringBuilder("https")).append(request.getParameter("uri5c")); // $ Source unsafeUri5c.append("://example.com/dir/"); - HttpRequest unsafer5c = HttpRequest.newBuilder(new URI(unsafeUri5c.toString())).build(); // $ SSRF - client.send(unsafer5c, null); // $ SSRF + HttpRequest unsafer5c = HttpRequest.newBuilder(new URI(unsafeUri5c.toString())).build(); // $ Alert + client.send(unsafer5c, null); // $ Alert - String unsafeUri6 = String.format("%shttps://example.com/", request.getParameter("baduri6")); - HttpRequest unsafer6 = HttpRequest.newBuilder(new URI(unsafeUri6)).build(); // $ SSRF - client.send(unsafer6, null); // $ SSRF + String unsafeUri6 = String.format("%shttps://example.com/", request.getParameter("baduri6")); // $ Source + HttpRequest unsafer6 = HttpRequest.newBuilder(new URI(unsafeUri6)).build(); // $ Alert + client.send(unsafer6, null); // $ Alert - String unsafeUri7 = String.format("%s/%s", request.getParameter("baduri7"), "https://example.com"); - HttpRequest unsafer7 = HttpRequest.newBuilder(new URI(unsafeUri7)).build(); // $ SSRF - client.send(unsafer7, null); // $ SSRF + String unsafeUri7 = String.format("%s/%s", request.getParameter("baduri7"), "https://example.com"); // $ Source + HttpRequest unsafer7 = HttpRequest.newBuilder(new URI(unsafeUri7)).build(); // $ Alert + client.send(unsafer7, null); // $ Alert - String unsafeUri8 = String.format("%s%s", request.getParameter("baduri8"), "https://example.com/"); - HttpRequest unsafer8 = HttpRequest.newBuilder(new URI(unsafeUri8)).build(); // $ SSRF - client.send(unsafer8, null); // $ SSRF + String unsafeUri8 = String.format("%s%s", request.getParameter("baduri8"), "https://example.com/"); // $ Source + HttpRequest unsafer8 = HttpRequest.newBuilder(new URI(unsafeUri8)).build(); // $ Alert + client.send(unsafer8, null); // $ Alert - String unsafeUri9 = request.getParameter("baduri9") + "/" + String.format("http://%s", "myserver.com"); - HttpRequest unsafer9 = HttpRequest.newBuilder(new URI(unsafeUri9)).build(); // $ SSRF - client.send(unsafer9, null); // $ SSRF + String unsafeUri9 = request.getParameter("baduri9") + "/" + String.format("http://%s", "myserver.com"); // $ Source + HttpRequest unsafer9 = HttpRequest.newBuilder(new URI(unsafeUri9)).build(); // $ Alert + client.send(unsafer9, null); // $ Alert - String unsafeUri10 = String.format("%s://%s:%s%s", "http", "myserver.com", "80", request.getParameter("baduri10")); - HttpRequest unsafer10 = HttpRequest.newBuilder(new URI(unsafeUri10)).build(); // $ SSRF - client.send(unsafer10, null); // $ SSRF + String unsafeUri10 = String.format("%s://%s:%s%s", "http", "myserver.com", "80", request.getParameter("baduri10")); // $ Source + HttpRequest unsafer10 = HttpRequest.newBuilder(new URI(unsafeUri10)).build(); // $ Alert + client.send(unsafer10, null); // $ Alert } catch (Exception e) { // TODO: handle exception } } -} \ No newline at end of file +} 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 895c68eda69..446e774214d 100644 --- a/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/SpringSSRF.java @@ -25,54 +25,54 @@ public class SpringSSRF extends HttpServlet { protected void doGet(HttpServletRequest request2, HttpServletResponse response2) throws ServletException, IOException { - String fooResourceUrl = request2.getParameter("uri");; + String fooResourceUrl = request2.getParameter("uri"); // $ Source RestTemplate restTemplate = new RestTemplate(); HttpEntity request = new HttpEntity<>(new String("bar")); try { - restTemplate.getForEntity(fooResourceUrl + "/1", String.class); // $ SSRF - restTemplate.exchange(fooResourceUrl, HttpMethod.POST, request, String.class); // $ SSRF - restTemplate.execute(fooResourceUrl, HttpMethod.POST, null, null, "test"); // $ SSRF - restTemplate.getForObject(fooResourceUrl, String.class, "test"); // $ SSRF - restTemplate.getForObject("http://{foo}", String.class, fooResourceUrl); // $ SSRF - restTemplate.getForObject("http://{foo}/a/b", String.class, fooResourceUrl); // $ SSRF + restTemplate.getForEntity(fooResourceUrl + "/1", String.class); // $ Alert + restTemplate.exchange(fooResourceUrl, HttpMethod.POST, request, String.class); // $ Alert + restTemplate.execute(fooResourceUrl, HttpMethod.POST, null, null, "test"); // $ Alert + 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("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)); // $ SSRF + 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: SSRF // not bad - the key for the tainted value is unused + 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"); // $ SSRF - restTemplate.postForEntity(new URI(fooResourceUrl), new String("object"), String.class); // $ SSRF - restTemplate.postForLocation(fooResourceUrl, new String("object")); // $ SSRF - restTemplate.postForObject(fooResourceUrl, new String("object"), String.class); // $ SSRF - restTemplate.put(fooResourceUrl, new String("object")); // $ SSRF - restTemplate.delete(fooResourceUrl); // $ SSRF - restTemplate.headForHeaders(fooResourceUrl); // $ SSRF - restTemplate.optionsForAllow(fooResourceUrl); // $ SSRF + restTemplate.patchForObject(fooResourceUrl, new String("object"), String.class, "hi"); // $ Alert + restTemplate.postForEntity(new URI(fooResourceUrl), new String("object"), String.class); // $ Alert + restTemplate.postForLocation(fooResourceUrl, new String("object")); // $ Alert + restTemplate.postForObject(fooResourceUrl, new String("object"), String.class); // $ Alert + restTemplate.put(fooResourceUrl, new String("object")); // $ Alert + restTemplate.delete(fooResourceUrl); // $ Alert + restTemplate.headForHeaders(fooResourceUrl); // $ Alert + restTemplate.optionsForAllow(fooResourceUrl); // $ Alert { String body = new String("body"); URI uri = new URI(fooResourceUrl); RequestEntity requestEntity = - RequestEntity.post(uri).body(body); // $ SSRF + RequestEntity.post(uri).body(body); // $ Alert ResponseEntity response = restTemplate.exchange(requestEntity, String.class); - RequestEntity.get(uri); // $ SSRF - RequestEntity.put(uri); // $ SSRF - RequestEntity.delete(uri); // $ SSRF - RequestEntity.options(uri); // $ SSRF - RequestEntity.patch(uri); // $ SSRF - RequestEntity.head(uri); // $ SSRF - RequestEntity.method(null, uri); // $ SSRF + RequestEntity.get(uri); // $ Alert + RequestEntity.put(uri); // $ Alert + RequestEntity.delete(uri); // $ Alert + RequestEntity.options(uri); // $ Alert + RequestEntity.patch(uri); // $ Alert + RequestEntity.head(uri); // $ Alert + RequestEntity.method(null, uri); // $ Alert } { URI uri = new URI(fooResourceUrl); MultiValueMap headers = null; java.lang.reflect.Type type = null; - new RequestEntity(null, uri); // $ SSRF - new RequestEntity(headers, null, uri); // $ SSRF - new RequestEntity("body", null, uri); // $ SSRF - new RequestEntity("body", headers, null, uri); // $ SSRF - new RequestEntity("body", null, uri, type); // $ SSRF - new RequestEntity("body", headers, null, uri, type); // $ SSRF + new RequestEntity(null, uri); // $ Alert + new RequestEntity(headers, null, uri); // $ Alert + new RequestEntity("body", null, uri); // $ Alert + new RequestEntity("body", headers, null, uri); // $ Alert + new RequestEntity("body", null, uri, type); // $ Alert + new RequestEntity("body", headers, null, uri, type); // $ Alert } } catch (org.springframework.web.client.RestClientException | java.net.URISyntaxException e) {} } diff --git a/java/ql/test/query-tests/security/CWE-918/URLClassLoaderSSRF.java b/java/ql/test/query-tests/security/CWE-918/URLClassLoaderSSRF.java index 84d53f797be..64070c76598 100644 --- a/java/ql/test/query-tests/security/CWE-918/URLClassLoaderSSRF.java +++ b/java/ql/test/query-tests/security/CWE-918/URLClassLoaderSSRF.java @@ -13,9 +13,9 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); - URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}); // $ SSRF + URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}); // $ Alert Class test = urlClassLoader.loadClass("test"); } catch (Exception e) { // Ignore @@ -25,9 +25,9 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); - URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}, URLClassLoaderSSRF.class.getClassLoader()); // $ SSRF + URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}, URLClassLoaderSSRF.class.getClassLoader()); // $ Alert Class test = urlClassLoader.loadClass("test"); } catch (Exception e) { // Ignore @@ -37,11 +37,11 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); URLStreamHandlerFactory urlStreamHandlerFactory = null; - URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}, URLClassLoaderSSRF.class.getClassLoader(), urlStreamHandlerFactory); // $ SSRF + URLClassLoader urlClassLoader = new URLClassLoader(new URL[]{uri.toURL()}, URLClassLoaderSSRF.class.getClassLoader(), urlStreamHandlerFactory); // $ Alert urlClassLoader.findResource("test"); } catch (Exception e) { // Ignore @@ -51,9 +51,9 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); - URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[]{uri.toURL()}); // $ SSRF + URLClassLoader urlClassLoader = URLClassLoader.newInstance(new URL[]{uri.toURL()}); // $ Alert urlClassLoader.getResourceAsStream("test"); } catch (Exception e) { // Ignore @@ -63,11 +63,11 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doOptions(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); URLClassLoader urlClassLoader = new URLClassLoader("testClassLoader", - new URL[]{uri.toURL()}, // $ SSRF + new URL[]{uri.toURL()}, // $ Alert URLClassLoaderSSRF.class.getClassLoader() ); @@ -80,13 +80,13 @@ public class URLClassLoaderSSRF extends HttpServlet { protected void doTrace(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { - String url = request.getParameter("uri"); + String url = request.getParameter("uri"); // $ Source URI uri = new URI(url); URLStreamHandlerFactory urlStreamHandlerFactory = null; URLClassLoader urlClassLoader = new URLClassLoader("testClassLoader", - new URL[]{uri.toURL()}, // $ SSRF + new URL[]{uri.toURL()}, // $ Alert URLClassLoaderSSRF.class.getClassLoader(), urlStreamHandlerFactory ); @@ -96,4 +96,4 @@ public class URLClassLoaderSSRF extends HttpServlet { // Ignore } } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-918/mad/Test.java b/java/ql/test/query-tests/security/CWE-918/mad/Test.java index 5bf070bbe50..c1bc4e12e08 100644 --- a/java/ql/test/query-tests/security/CWE-918/mad/Test.java +++ b/java/ql/test/query-tests/security/CWE-918/mad/Test.java @@ -23,93 +23,93 @@ public class Test { private static HttpServletRequest request; public static Object source() { - return request.getParameter(null); + return request.getParameter(null); // $ Source } public void test(DatagramSocket socket) throws Exception { // "java.net;DatagramSocket;true;connect;(SocketAddress);;Argument[0];open-url;ai-generated" - socket.connect((SocketAddress) source()); // $ SSRF + socket.connect((SocketAddress) source()); // $ Alert } public void test(URL url) throws Exception { // "java.net;URL;false;openConnection;(Proxy);:Argument[this]:open-url;manual" - ((URL) source()).openConnection(); // $ SSRF + ((URL) source()).openConnection(); // $ Alert // "java.net;URL;false;openConnection;(Proxy);:Argument[0]:open-url;ai-generated" - url.openConnection((Proxy) source()); // $ SSRF + url.openConnection((Proxy) source()); // $ Alert // "java.net;URL;false;openStream;;:Argument[this]:open-url;manual" - ((URL) source()).openStream(); // $ SSRF + ((URL) source()).openStream(); // $ Alert } public void test() throws Exception { // "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader);;Argument[1];open-url;manual" - new URLClassLoader("", (URL[]) source(), null); // $ SSRF + new URLClassLoader("", (URL[]) source(), null); // $ Alert // "java.net;URLClassLoader;false;URLClassLoader;(String,URL[],ClassLoader,URLStreamHandlerFactory);;Argument[1];open-url;manual" - new URLClassLoader("", (URL[]) source(), null, null); // $ SSRF + new URLClassLoader("", (URL[]) source(), null, null); // $ Alert // "java.net;URLClassLoader;false;URLClassLoader;(URL[]);;Argument[0];open-url;manual" - new URLClassLoader((URL[]) source()); // $ SSRF + new URLClassLoader((URL[]) source()); // $ Alert // "java.net;URLClassLoader;false;URLClassLoader;(URL[],ClassLoader);;Argument[0];open-url;manual" - new URLClassLoader((URL[]) source(), null); // $ SSRF + new URLClassLoader((URL[]) source(), null); // $ Alert // "java.net;URLClassLoader;false;URLClassLoader;(URL[],ClassLoader,URLStreamHandlerFactory);;Argument[0];open-url;manual" - new URLClassLoader((URL[]) source(), null, null); // $ SSRF + new URLClassLoader((URL[]) source(), null, null); // $ Alert // "java.net;URLClassLoader;false;newInstance;;;Argument[0];open-url;manual" - URLClassLoader.newInstance((URL[]) source()); // $ SSRF + URLClassLoader.newInstance((URL[]) source()); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL,URL);;Argument[1];open-url;ai-generated" - new JellyContext(null, (URL) source(), null); // $ SSRF + new JellyContext(null, (URL) source(), null); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL,URL);;Argument[2];open-url;ai-generated" - new JellyContext(null, null, (URL) source()); // $ SSRF + new JellyContext(null, null, (URL) source()); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(JellyContext,URL);;Argument[1];open-url;ai-generated" - new JellyContext((JellyContext) null, (URL) source()); // $ SSRF + new JellyContext((JellyContext) null, (URL) source()); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL,URL);;Argument[0];open-url;ai-generated" - new JellyContext((URL) source(), null); // $ SSRF + new JellyContext((URL) source(), null); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL,URL);;Argument[1];open-url;ai-generated" - new JellyContext((URL) null, (URL) source()); // $ SSRF + new JellyContext((URL) null, (URL) source()); // $ Alert // "org.apache.commons.jelly;JellyContext;true;JellyContext;(URL);;Argument[0];open-url;ai-generated" - new JellyContext((URL) source()); // $ SSRF + new JellyContext((URL) source()); // $ Alert // "javax.activation;URLDataSource;true;URLDataSource;(URL);;Argument[0];request-forgery;manual" - new URLDataSource((URL) source()); // $ SSRF + new URLDataSource((URL) source()); // $ Alert // "org.apache.cxf.catalog;OASISCatalogManager;true;loadCatalog;(URL);;Argument[0];request-forgery;manual" - new OASISCatalogManager().loadCatalog((URL) source()); // $ SSRF + new OASISCatalogManager().loadCatalog((URL) source()); // $ Alert // @formatter:off // "org.apache.cxf.common.classloader;ClassLoaderUtils;true;getURLClassLoader;(URL[],ClassLoader);;Argument[0];request-forgery;manual" - new ClassLoaderUtils().getURLClassLoader((URL[]) source(), null); // $ SSRF + new ClassLoaderUtils().getURLClassLoader((URL[]) source(), null); // $ Alert // "org.apache.cxf.common.classloader;ClassLoaderUtils;true;getURLClassLoader;(List,ClassLoader);;Argument[0];request-forgery;manual" - new ClassLoaderUtils().getURLClassLoader((List) source(), null); // $ SSRF + new ClassLoaderUtils().getURLClassLoader((List) source(), null); // $ Alert // "org.apache.cxf.resource;ExtendedURIResolver;true;resolve;(String,String);;Argument[0];request-forgery;manual"] - new ExtendedURIResolver().resolve((String) source(), null); // $ SSRF + new ExtendedURIResolver().resolve((String) source(), null); // $ Alert // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String);;Argument[0];request-forgery;manual"] - new URIResolver((String) source()); // $ SSRF + new URIResolver((String) source()); // $ Alert // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String);;Argument[1];request-forgery;manual"] - new URIResolver(null, (String) source()); // $ SSRF + new URIResolver(null, (String) source()); // $ Alert // "org.apache.cxf.resource;URIResolver;true;URIResolver;(String,String,Class);;Argument[1];request-forgery;manual"] - new URIResolver(null, (String) source(), null); // $ SSRF + new URIResolver(null, (String) source(), null); // $ Alert // "org.apache.cxf.resource;URIResolver;true;resolve;(String,String,Class);;Argument[1];request-forgery;manual" - new URIResolver().resolve(null, (String) source(), null); // $ SSRF + new URIResolver().resolve(null, (String) source(), null); // $ Alert // @formatter:on } public void test(WebEngine webEngine) { // "javafx.scene.web;WebEngine;false;load;(String);;Argument[0];open-url;ai-generated" - webEngine.load((String) source()); // $ SSRF + webEngine.load((String) source()); // $ Alert } public void test(ZipURLInstaller zui) { // "org.codehaus.cargo.container.installer;ZipURLInstaller;true;ZipURLInstaller;(URL,String,String);;Argument[0];open-url:ai-generated" - new ZipURLInstaller((URL) source(), "", ""); // $ SSRF + new ZipURLInstaller((URL) source(), "", ""); // $ Alert } public void test(HttpResponses r) { // "org.kohsuke.stapler;HttpResponses;true;staticResource;(URL);;Argument[0];open-url;ai-generated" - r.staticResource((URL) source()); // $ SSRF + r.staticResource((URL) source()); // $ Alert } public void test(WSClient c) { // "play.libs.ws;WSClient;true;url;;;Argument[0];open-url;manual" - c.url((String) source()); // $ SSRF + c.url((String) source()); // $ Alert } public void test(StandaloneWSClient c) { // "play.libs.ws;StandaloneWSClient;true;url;;;Argument[0];open-url;manual" - c.url((String) source()); // $ SSRF + c.url((String) source()); // $ Alert } } From e0311e26c6ab99670a5aa3bdcdb910c82a0ca29b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 11:38:11 +0200 Subject: [PATCH 290/340] Java: convert ImproperIntentVerification test to .qlref It's a non-path query, so the InlineExpectationsTest postprocessor doesn't do anything. --- .../security/CWE-925/BootReceiverXml.java | 6 +++--- .../ImproperIntentVerification.expected | 1 + .../CWE-925/ImproperIntentVerification.ql | 18 ------------------ .../CWE-925/ImproperIntentVerification.qlref | 4 ++++ 4 files changed, 8 insertions(+), 21 deletions(-) delete mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql create mode 100644 java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.qlref diff --git a/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java b/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java index 3a9f8498396..af9ca5926d7 100644 --- a/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java +++ b/java/ql/test/query-tests/security/CWE-925/BootReceiverXml.java @@ -6,8 +6,8 @@ import android.content.BroadcastReceiver; class BootReceiverXml extends BroadcastReceiver { void doStuff(Intent intent) {} - @Override - public void onReceive(Context ctx, Intent intent) { // $hasResult + @Override + public void onReceive(Context ctx, Intent intent) { // $ Alert doStuff(intent); } -} \ No newline at end of file +} diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected index e69de29bb2d..862b9a73692 100644 --- a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected +++ b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.expected @@ -0,0 +1 @@ +| BootReceiverXml.java:10:17:10:25 | onReceive | This reciever doesn't verify intents it receives, and $@ to receive $@. | AndroidManifest.xml:3:9:7:20 | receiver | it is registered | AndroidManifest.xml:5:17:5:79 | action | the system action action | diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql deleted file mode 100644 index 67da4ee9b29..00000000000 --- a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.ImproperIntentVerificationQuery -import utils.test.InlineExpectationsTest - -module HasFlowTest implements TestSig { - string getARelevantTag() { result = "hasResult" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasResult" and - exists(Method orm | unverifiedSystemReceiver(_, orm, _) | - orm.getLocation() = location and - element = orm.toString() and - value = "" - ) - } -} - -import MakeTest diff --git a/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.qlref b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.qlref new file mode 100644 index 00000000000..1402eeee2a1 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-925/ImproperIntentVerification.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-925/ImproperIntentVerification.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql From e213e3fc37aada01e1cc7be590fe078632b020e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 11:46:34 +0200 Subject: [PATCH 291/340] Java: convert ImplicitPendingIntents test to .qlref --- .../ImplicitPendingIntentsTest.expected | 341 ++++++++++++++++++ .../ImplicitPendingIntentsTest.java | 108 +++--- .../ImplicitPendingIntentsTest.qlref | 4 + .../CWE-927/ImplicitPendingIntents/options | 1 + .../ImplicitPendingIntentsTest.expected | 0 .../CWE-927/ImplicitPendingIntentsTest.ql | 18 - 6 files changed, 400 insertions(+), 72 deletions(-) create mode 100644 java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.expected rename java/ql/test/query-tests/security/CWE-927/{ => ImplicitPendingIntents}/ImplicitPendingIntentsTest.java (80%) create mode 100644 java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/options delete mode 100644 java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.expected delete mode 100644 java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.ql diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.expected b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.expected new file mode 100644 index 00000000000..c1c694c5fbd --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.expected @@ -0,0 +1,341 @@ +#select +| ImplicitPendingIntentsTest.java:36:31:36:39 | fwdIntent | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:36:31:36:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:38:31:38:39 | fwdIntent | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:38:31:38:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:41:31:41:39 | fwdIntent | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:41:31:41:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:52:31:52:39 | fwdIntent | ImplicitPendingIntentsTest.java:48:33:48:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:52:31:52:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:48:33:48:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:60:31:60:39 | fwdIntent | ImplicitPendingIntentsTest.java:56:33:56:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:60:31:60:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:56:33:56:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:69:31:69:39 | fwdIntent | ImplicitPendingIntentsTest.java:64:33:64:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:69:31:69:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:64:33:64:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:77:31:77:39 | fwdIntent | ImplicitPendingIntentsTest.java:73:33:73:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:77:31:77:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:73:33:73:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:85:31:85:39 | fwdIntent | ImplicitPendingIntentsTest.java:81:33:81:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:85:31:85:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:81:33:81:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:93:31:93:39 | fwdIntent | ImplicitPendingIntentsTest.java:89:33:89:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:93:31:93:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:89:33:89:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:101:31:101:39 | fwdIntent | ImplicitPendingIntentsTest.java:97:33:97:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:101:31:101:39 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:97:33:97:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:170:32:170:40 | fwdIntent | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:170:32:170:40 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:171:32:171:40 | fwdIntent | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:171:32:171:40 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:172:32:172:40 | fwdIntent | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:172:32:172:40 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:173:32:173:40 | fwdIntent | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:173:32:173:40 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:188:65:188:76 | notification | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:188:65:188:76 | notification | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:189:32:189:43 | notification | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:189:32:189:43 | notification | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:190:42:190:53 | notification | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:190:42:190:53 | notification | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:229:32:229:43 | notification | ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:229:32:229:43 | notification | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:230:36:230:47 | notification | ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:230:36:230:47 | notification | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:239:32:239:33 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:239:32:239:33 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:240:42:240:43 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:240:42:240:43 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:241:49:241:50 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:241:49:241:50 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:242:37:242:38 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:242:37:242:38 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:243:54:243:55 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:243:54:243:55 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:244:51:244:52 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:244:51:244:52 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:245:44:245:45 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:245:44:245:45 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:246:41:246:42 | pi | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:246:41:246:42 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:258:59:258:60 | pi | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:258:59:258:60 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:259:65:259:66 | pi | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:259:65:259:66 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:260:69:260:70 | pi | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:260:69:260:70 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:261:57:261:58 | pi | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:261:57:261:58 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:262:74:262:75 | pi | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:262:74:262:75 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:273:26:273:34 | fwdIntent | ImplicitPendingIntentsTest.java:269:33:269:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:273:26:273:34 | fwdIntent | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:269:33:269:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:290:24:290:42 | build(...) | ImplicitPendingIntentsTest.java:284:37:284:48 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:290:24:290:42 | build(...) | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:284:37:284:48 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:317:24:317:42 | build(...) | ImplicitPendingIntentsTest.java:339:33:339:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:317:24:317:42 | build(...) | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:339:33:339:44 | new Intent(...) | An implicit Intent is created | +| ImplicitPendingIntentsTest.java:326:24:326:25 | pi | ImplicitPendingIntentsTest.java:324:37:324:48 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:326:24:326:25 | pi | $@ and sent to an unspecified third party through a PendingIntent. | ImplicitPendingIntentsTest.java:324:37:324:48 | new Intent(...) | An implicit Intent is created | +edges +| ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:32:66:32:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:32:32:32:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:34:45:34:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:32:66:32:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:32:32:32:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:34:13:34:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:36:31:36:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:34:13:34:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:38:31:38:39 | fwdIntent | provenance | Sink:MaD:17 Sink:MaD:17 | +| ImplicitPendingIntentsTest.java:34:13:34:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:41:31:41:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:34:45:34:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:34:13:34:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:48:33:48:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:49:72:49:81 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:49:32:49:97 | getActivityAsUser(...) : PendingIntent | ImplicitPendingIntentsTest.java:51:45:51:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:49:72:49:81 | baseIntent : Intent | ImplicitPendingIntentsTest.java:49:32:49:97 | getActivityAsUser(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:51:13:51:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:52:31:52:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:51:45:51:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:51:13:51:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:56:33:56:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:57:82:57:91 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:57:32:57:96 | getActivities(...) : PendingIntent | ImplicitPendingIntentsTest.java:59:45:59:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:57:68:57:92 | new Intent[] : Intent[] [[]] : Intent | ImplicitPendingIntentsTest.java:57:32:57:96 | getActivities(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:57:68:57:92 | {...} : Intent[] [[]] : Intent | ImplicitPendingIntentsTest.java:57:68:57:92 | new Intent[] : Intent[] [[]] : Intent | provenance | | +| ImplicitPendingIntentsTest.java:57:82:57:91 | baseIntent : Intent | ImplicitPendingIntentsTest.java:57:68:57:92 | {...} : Intent[] [[]] : Intent | provenance | | +| ImplicitPendingIntentsTest.java:59:13:59:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:60:31:60:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:59:45:59:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:59:13:59:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:64:33:64:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:65:88:65:97 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:65:32:66:34 | getActivitiesAsUser(...) : PendingIntent | ImplicitPendingIntentsTest.java:68:45:68:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:65:74:65:98 | new Intent[] : Intent[] [[]] : Intent | ImplicitPendingIntentsTest.java:65:32:66:34 | getActivitiesAsUser(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:65:74:65:98 | {...} : Intent[] [[]] : Intent | ImplicitPendingIntentsTest.java:65:74:65:98 | new Intent[] : Intent[] [[]] : Intent | provenance | | +| ImplicitPendingIntentsTest.java:65:88:65:97 | baseIntent : Intent | ImplicitPendingIntentsTest.java:65:74:65:98 | {...} : Intent[] [[]] : Intent | provenance | | +| ImplicitPendingIntentsTest.java:68:13:68:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:69:31:69:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:68:45:68:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:68:13:68:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:73:33:73:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:74:67:74:76 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:74:32:74:80 | getBroadcast(...) : PendingIntent | ImplicitPendingIntentsTest.java:76:45:76:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:74:67:74:76 | baseIntent : Intent | ImplicitPendingIntentsTest.java:74:32:74:80 | getBroadcast(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:76:13:76:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:77:31:77:39 | fwdIntent | provenance | Sink:MaD:17 Sink:MaD:17 | +| ImplicitPendingIntentsTest.java:76:45:76:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:76:13:76:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:81:33:81:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:82:73:82:82 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:82:32:82:92 | getBroadcastAsUser(...) : PendingIntent | ImplicitPendingIntentsTest.java:84:45:84:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:82:73:82:82 | baseIntent : Intent | ImplicitPendingIntentsTest.java:82:32:82:92 | getBroadcastAsUser(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:84:13:84:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:85:31:85:39 | fwdIntent | provenance | Sink:MaD:17 Sink:MaD:17 | +| ImplicitPendingIntentsTest.java:84:45:84:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:84:13:84:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:89:33:89:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:90:65:90:74 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:90:32:90:78 | getService(...) : PendingIntent | ImplicitPendingIntentsTest.java:92:45:92:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:90:65:90:74 | baseIntent : Intent | ImplicitPendingIntentsTest.java:90:32:90:78 | getService(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:92:13:92:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:93:31:93:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:92:45:92:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:92:13:92:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:97:33:97:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:98:75:98:84 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:98:32:98:88 | getForegroundService(...) : PendingIntent | ImplicitPendingIntentsTest.java:100:45:100:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:98:75:98:84 | baseIntent : Intent | ImplicitPendingIntentsTest.java:98:32:98:88 | getForegroundService(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:100:13:100:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:101:31:101:39 | fwdIntent | provenance | Sink:MaD:18 Sink:MaD:18 | +| ImplicitPendingIntentsTest.java:100:45:100:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:100:13:100:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:167:66:167:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:167:32:167:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:169:45:169:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:167:66:167:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:167:32:167:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:170:32:170:40 | fwdIntent | provenance | Sink:MaD:13 Sink:MaD:13 | +| ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:171:32:171:40 | fwdIntent | provenance | Sink:MaD:14 Sink:MaD:14 | +| ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:172:32:172:40 | fwdIntent | provenance | Sink:MaD:15 Sink:MaD:15 | +| ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:173:32:173:40 | fwdIntent | provenance | Sink:MaD:16 Sink:MaD:16 | +| ImplicitPendingIntentsTest.java:169:45:169:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:182:66:182:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:182:32:182:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:183:91:183:92 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:182:66:182:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:182:32:182:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:183:52:183:93 | new Builder(...) : Builder | ImplicitPendingIntentsTest.java:185:61:185:68 | aBuilder : Builder | provenance | | +| ImplicitPendingIntentsTest.java:183:91:183:92 | pi : PendingIntent | ImplicitPendingIntentsTest.java:183:52:183:93 | new Builder(...) : Builder | provenance | MaD:27 | +| ImplicitPendingIntentsTest.java:185:21:185:77 | addAction(...) : Builder | ImplicitPendingIntentsTest.java:186:41:186:48 | nBuilder : Builder | provenance | | +| ImplicitPendingIntentsTest.java:185:61:185:68 | aBuilder : Builder | ImplicitPendingIntentsTest.java:185:61:185:76 | build(...) : Action | provenance | MaD:28 | +| ImplicitPendingIntentsTest.java:185:61:185:76 | build(...) : Action | ImplicitPendingIntentsTest.java:185:21:185:77 | addAction(...) : Builder | provenance | MaD:29+MaD:30 | +| ImplicitPendingIntentsTest.java:186:41:186:48 | nBuilder : Builder | ImplicitPendingIntentsTest.java:186:41:186:56 | build(...) : Notification | provenance | MaD:31 | +| ImplicitPendingIntentsTest.java:186:41:186:56 | build(...) : Notification | ImplicitPendingIntentsTest.java:188:65:188:76 | notification | provenance | Sink:MaD:11 | +| ImplicitPendingIntentsTest.java:186:41:186:56 | build(...) : Notification | ImplicitPendingIntentsTest.java:189:32:189:43 | notification | provenance | Sink:MaD:10 | +| ImplicitPendingIntentsTest.java:186:41:186:56 | build(...) : Notification | ImplicitPendingIntentsTest.java:190:42:190:53 | notification | provenance | Sink:MaD:12 | +| ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:223:66:223:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:223:32:223:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:224:91:224:92 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:223:66:223:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:223:32:223:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:224:52:224:93 | new Builder(...) : Builder | ImplicitPendingIntentsTest.java:226:61:226:68 | aBuilder : Builder | provenance | | +| ImplicitPendingIntentsTest.java:224:91:224:92 | pi : PendingIntent | ImplicitPendingIntentsTest.java:224:52:224:93 | new Builder(...) : Builder | provenance | MaD:27 | +| ImplicitPendingIntentsTest.java:226:21:226:77 | addAction(...) : Builder | ImplicitPendingIntentsTest.java:227:41:227:48 | nBuilder : Builder | provenance | | +| ImplicitPendingIntentsTest.java:226:61:226:68 | aBuilder : Builder | ImplicitPendingIntentsTest.java:226:61:226:76 | build(...) : Action | provenance | MaD:28 | +| ImplicitPendingIntentsTest.java:226:61:226:76 | build(...) : Action | ImplicitPendingIntentsTest.java:226:21:226:77 | addAction(...) : Builder | provenance | MaD:29+MaD:30 | +| ImplicitPendingIntentsTest.java:227:41:227:48 | nBuilder : Builder | ImplicitPendingIntentsTest.java:227:41:227:56 | build(...) : Notification | provenance | MaD:31 | +| ImplicitPendingIntentsTest.java:227:41:227:56 | build(...) : Notification | ImplicitPendingIntentsTest.java:229:32:229:43 | notification | provenance | Sink:MaD:24 | +| ImplicitPendingIntentsTest.java:227:41:227:56 | build(...) : Notification | ImplicitPendingIntentsTest.java:230:36:230:47 | notification | provenance | Sink:MaD:23 | +| ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:238:66:238:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:239:32:239:33 | pi | provenance | Sink:MaD:2 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:240:42:240:43 | pi | provenance | Sink:MaD:3 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:241:49:241:50 | pi | provenance | Sink:MaD:4 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:242:37:242:38 | pi | provenance | Sink:MaD:5 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:243:54:243:55 | pi | provenance | Sink:MaD:6 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:244:51:244:52 | pi | provenance | Sink:MaD:7 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:245:44:245:45 | pi | provenance | Sink:MaD:8 | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:246:41:246:42 | pi | provenance | Sink:MaD:9 | +| ImplicitPendingIntentsTest.java:238:66:238:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:257:66:257:75 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:258:59:258:60 | pi | provenance | Sink:MaD:19 | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:259:65:259:66 | pi | provenance | Sink:MaD:19 | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:260:69:260:70 | pi | provenance | Sink:MaD:20 | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:261:57:261:58 | pi | provenance | Sink:MaD:21 | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:262:74:262:75 | pi | provenance | Sink:MaD:22 | +| ImplicitPendingIntentsTest.java:257:66:257:75 | baseIntent : Intent | ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:269:33:269:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:270:67:270:76 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:270:32:270:80 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:272:45:272:46 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:270:67:270:76 | baseIntent : Intent | ImplicitPendingIntentsTest.java:270:32:270:80 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:272:13:272:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | ImplicitPendingIntentsTest.java:273:26:273:34 | fwdIntent | provenance | Sink:MaD:1 Sink:MaD:1 | +| ImplicitPendingIntentsTest.java:272:45:272:46 | pi : PendingIntent | ImplicitPendingIntentsTest.java:272:13:272:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | provenance | MaD:32 | +| ImplicitPendingIntentsTest.java:282:22:282:32 | parameter this : TestSliceProvider [mPendingIntent] : PendingIntent | ImplicitPendingIntentsTest.java:314:65:314:78 | this <.field> : TestSliceProvider [mPendingIntent] : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:284:37:284:48 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:285:79:285:88 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:285:36:285:92 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:286:73:286:74 | pi : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:285:79:285:88 | baseIntent : Intent | ImplicitPendingIntentsTest.java:285:36:285:92 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:286:46:286:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:289:43:289:56 | activityAction : SliceAction [androidx.slice.Slice.action] : Object | provenance | | +| ImplicitPendingIntentsTest.java:286:73:286:74 | pi : PendingIntent | ImplicitPendingIntentsTest.java:286:46:286:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | provenance | MaD:37 | +| ImplicitPendingIntentsTest.java:288:17:288:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:290:24:290:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | provenance | | +| ImplicitPendingIntentsTest.java:288:36:289:57 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:288:17:288:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | provenance | MaD:35 | +| ImplicitPendingIntentsTest.java:289:43:289:56 | activityAction : SliceAction [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:288:36:289:57 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | provenance | MaD:33+MaD:34 | +| ImplicitPendingIntentsTest.java:290:24:290:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:290:24:290:42 | build(...) | provenance | MaD:36 Sink:MaD:25 | +| ImplicitPendingIntentsTest.java:314:38:314:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:316:90:316:95 | action : SliceAction [androidx.slice.Slice.action] : Object | provenance | | +| ImplicitPendingIntentsTest.java:314:65:314:78 | mPendingIntent : PendingIntent | ImplicitPendingIntentsTest.java:314:38:314:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | provenance | MaD:37 | +| ImplicitPendingIntentsTest.java:314:65:314:78 | this <.field> : TestSliceProvider [mPendingIntent] : PendingIntent | ImplicitPendingIntentsTest.java:314:65:314:78 | mPendingIntent : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:316:17:316:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:317:24:317:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | provenance | | +| ImplicitPendingIntentsTest.java:316:36:316:96 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:316:17:316:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | provenance | MaD:35 | +| ImplicitPendingIntentsTest.java:316:90:316:95 | action : SliceAction [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:316:36:316:96 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | provenance | MaD:33+MaD:34 | +| ImplicitPendingIntentsTest.java:317:24:317:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | ImplicitPendingIntentsTest.java:317:24:317:42 | build(...) | provenance | MaD:36 Sink:MaD:25 | +| ImplicitPendingIntentsTest.java:324:37:324:48 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:325:79:325:88 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:325:36:325:92 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:326:24:326:25 | pi | provenance | Sink:MaD:26 | +| ImplicitPendingIntentsTest.java:325:79:325:88 | baseIntent : Intent | ImplicitPendingIntentsTest.java:325:36:325:92 | getActivity(...) : PendingIntent | provenance | Config | +| ImplicitPendingIntentsTest.java:339:33:339:44 | new Intent(...) : Intent | ImplicitPendingIntentsTest.java:340:73:340:82 | baseIntent : Intent | provenance | | +| ImplicitPendingIntentsTest.java:340:13:340:26 | this <.field> [post update] : TestSliceProvider [mPendingIntent] : PendingIntent | ImplicitPendingIntentsTest.java:282:22:282:32 | parameter this : TestSliceProvider [mPendingIntent] : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:340:30:340:86 | getActivity(...) : PendingIntent | ImplicitPendingIntentsTest.java:340:13:340:26 | this <.field> [post update] : TestSliceProvider [mPendingIntent] : PendingIntent | provenance | | +| ImplicitPendingIntentsTest.java:340:73:340:82 | baseIntent : Intent | ImplicitPendingIntentsTest.java:340:30:340:86 | getActivity(...) : PendingIntent | provenance | Config | +models +| 1 | Sink: android.app; Activity; true; setResult; (int,Intent); ; Argument[1]; pending-intents; manual | +| 2 | Sink: android.app; AlarmManager; true; set; (int,long,PendingIntent); ; Argument[2]; pending-intents; manual | +| 3 | Sink: android.app; AlarmManager; true; setAlarmClock; ; ; Argument[1]; pending-intents; manual | +| 4 | Sink: android.app; AlarmManager; true; setAndAllowWhileIdle; ; ; Argument[2]; pending-intents; manual | +| 5 | Sink: android.app; AlarmManager; true; setExact; (int,long,PendingIntent); ; Argument[2]; pending-intents; manual | +| 6 | Sink: android.app; AlarmManager; true; setExactAndAllowWhileIdle; ; ; Argument[2]; pending-intents; manual | +| 7 | Sink: android.app; AlarmManager; true; setInexactRepeating; ; ; Argument[3]; pending-intents; manual | +| 8 | Sink: android.app; AlarmManager; true; setRepeating; ; ; Argument[3]; pending-intents; manual | +| 9 | Sink: android.app; AlarmManager; true; setWindow; (int,long,long,PendingIntent); ; Argument[3]; pending-intents; manual | +| 10 | Sink: android.app; NotificationManager; true; notify; (int,Notification); ; Argument[1]; pending-intents; manual | +| 11 | Sink: android.app; NotificationManager; true; notifyAsPackage; (String,String,int,Notification); ; Argument[3]; pending-intents; manual | +| 12 | Sink: android.app; NotificationManager; true; notifyAsUser; (String,int,Notification,UserHandle); ; Argument[2]; pending-intents; manual | +| 13 | Sink: android.app; PendingIntent; false; send; (Context,int,Intent); ; Argument[2]; pending-intents; manual | +| 14 | Sink: android.app; PendingIntent; false; send; (Context,int,Intent,PendingIntent$OnFinished,Handler); ; Argument[2]; pending-intents; manual | +| 15 | Sink: android.app; PendingIntent; false; send; (Context,int,Intent,PendingIntent$OnFinished,Handler,String); ; Argument[2]; pending-intents; manual | +| 16 | Sink: android.app; PendingIntent; false; send; (Context,int,Intent,PendingIntent$OnFinished,Handler,String,Bundle); ; Argument[2]; pending-intents; manual | +| 17 | Sink: android.content; Context; true; sendBroadcast; ; ; Argument[0]; intent-redirection; manual | +| 18 | Sink: android.content; Context; true; startActivity; ; ; Argument[0]; intent-redirection; manual | +| 19 | Sink: androidx.core.app; AlarmManagerCompat; true; setAlarmClock; ; ; Argument[2..3]; pending-intents; manual | +| 20 | Sink: androidx.core.app; AlarmManagerCompat; true; setAndAllowWhileIdle; ; ; Argument[3]; pending-intents; manual | +| 21 | Sink: androidx.core.app; AlarmManagerCompat; true; setExact; ; ; Argument[3]; pending-intents; manual | +| 22 | Sink: androidx.core.app; AlarmManagerCompat; true; setExactAndAllowWhileIdle; ; ; Argument[3]; pending-intents; manual | +| 23 | Sink: androidx.core.app; NotificationManagerCompat; true; notify; (String,int,Notification); ; Argument[2]; pending-intents; manual | +| 24 | Sink: androidx.core.app; NotificationManagerCompat; true; notify; (int,Notification); ; Argument[1]; pending-intents; manual | +| 25 | Sink: androidx.slice; SliceProvider; true; onBindSlice; ; ; ReturnValue; pending-intents; manual | +| 26 | Sink: androidx.slice; SliceProvider; true; onCreatePermissionRequest; ; ; ReturnValue; pending-intents; manual | +| 27 | Summary: android.app; Notification$Action$Builder; true; Builder; (int,CharSequence,PendingIntent); ; Argument[2]; Argument[this]; taint; manual | +| 28 | Summary: android.app; Notification$Action$Builder; true; build; ; ; Argument[this]; ReturnValue; taint; manual | +| 29 | Summary: android.app; Notification$Builder; true; addAction; (Notification$Action); ; Argument[0]; Argument[this]; taint; manual | +| 30 | Summary: android.app; Notification$Builder; true; addAction; ; ; Argument[this]; ReturnValue; value; manual | +| 31 | Summary: android.app; Notification$Builder; true; build; ; ; Argument[this]; ReturnValue; taint; manual | +| 32 | Summary: android.content; Intent; true; putExtra; ; ; Argument[1]; Argument[this].SyntheticField[android.content.Intent.extras].MapValue; value; manual | +| 33 | Summary: androidx.slice.builders; ListBuilder$RowBuilder; true; setPrimaryAction; ; ; Argument[0].SyntheticField[androidx.slice.Slice.action]; Argument[this].SyntheticField[androidx.slice.Slice.action]; taint; manual | +| 34 | Summary: androidx.slice.builders; ListBuilder$RowBuilder; true; setPrimaryAction; ; ; Argument[this]; ReturnValue; value; manual | +| 35 | Summary: androidx.slice.builders; ListBuilder; true; addRow; ; ; Argument[0].SyntheticField[androidx.slice.Slice.action]; Argument[this].SyntheticField[androidx.slice.Slice.action]; taint; manual | +| 36 | Summary: androidx.slice.builders; ListBuilder; true; build; ; ; Argument[this].SyntheticField[androidx.slice.Slice.action]; ReturnValue; taint; manual | +| 37 | Summary: androidx.slice.builders; SliceAction; true; createDeeplink; (PendingIntent,IconCompat,int,CharSequence); ; Argument[0]; ReturnValue.SyntheticField[androidx.slice.Slice.action]; taint; manual | +nodes +| ImplicitPendingIntentsTest.java:31:33:31:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:32:32:32:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:32:66:32:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:34:13:34:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:34:45:34:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:36:31:36:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:38:31:38:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:41:31:41:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:48:33:48:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:49:32:49:97 | getActivityAsUser(...) : PendingIntent | semmle.label | getActivityAsUser(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:49:72:49:81 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:51:13:51:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:51:45:51:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:52:31:52:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:56:33:56:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:57:32:57:96 | getActivities(...) : PendingIntent | semmle.label | getActivities(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:57:68:57:92 | new Intent[] : Intent[] [[]] : Intent | semmle.label | new Intent[] : Intent[] [[]] : Intent | +| ImplicitPendingIntentsTest.java:57:68:57:92 | {...} : Intent[] [[]] : Intent | semmle.label | {...} : Intent[] [[]] : Intent | +| ImplicitPendingIntentsTest.java:57:82:57:91 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:59:13:59:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:59:45:59:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:60:31:60:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:64:33:64:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:65:32:66:34 | getActivitiesAsUser(...) : PendingIntent | semmle.label | getActivitiesAsUser(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:65:74:65:98 | new Intent[] : Intent[] [[]] : Intent | semmle.label | new Intent[] : Intent[] [[]] : Intent | +| ImplicitPendingIntentsTest.java:65:74:65:98 | {...} : Intent[] [[]] : Intent | semmle.label | {...} : Intent[] [[]] : Intent | +| ImplicitPendingIntentsTest.java:65:88:65:97 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:68:13:68:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:68:45:68:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:69:31:69:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:73:33:73:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:74:32:74:80 | getBroadcast(...) : PendingIntent | semmle.label | getBroadcast(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:74:67:74:76 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:76:13:76:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:76:45:76:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:77:31:77:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:81:33:81:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:82:32:82:92 | getBroadcastAsUser(...) : PendingIntent | semmle.label | getBroadcastAsUser(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:82:73:82:82 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:84:13:84:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:84:45:84:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:85:31:85:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:89:33:89:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:90:32:90:78 | getService(...) : PendingIntent | semmle.label | getService(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:90:65:90:74 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:92:13:92:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:92:45:92:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:93:31:93:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:97:33:97:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:98:32:98:88 | getForegroundService(...) : PendingIntent | semmle.label | getForegroundService(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:98:75:98:84 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:100:13:100:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:100:45:100:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:101:31:101:39 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:166:33:166:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:167:32:167:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:167:66:167:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:169:13:169:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:169:45:169:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:170:32:170:40 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:171:32:171:40 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:172:32:172:40 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:173:32:173:40 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:181:33:181:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:182:32:182:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:182:66:182:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:183:52:183:93 | new Builder(...) : Builder | semmle.label | new Builder(...) : Builder | +| ImplicitPendingIntentsTest.java:183:91:183:92 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:185:21:185:77 | addAction(...) : Builder | semmle.label | addAction(...) : Builder | +| ImplicitPendingIntentsTest.java:185:61:185:68 | aBuilder : Builder | semmle.label | aBuilder : Builder | +| ImplicitPendingIntentsTest.java:185:61:185:76 | build(...) : Action | semmle.label | build(...) : Action | +| ImplicitPendingIntentsTest.java:186:41:186:48 | nBuilder : Builder | semmle.label | nBuilder : Builder | +| ImplicitPendingIntentsTest.java:186:41:186:56 | build(...) : Notification | semmle.label | build(...) : Notification | +| ImplicitPendingIntentsTest.java:188:65:188:76 | notification | semmle.label | notification | +| ImplicitPendingIntentsTest.java:189:32:189:43 | notification | semmle.label | notification | +| ImplicitPendingIntentsTest.java:190:42:190:53 | notification | semmle.label | notification | +| ImplicitPendingIntentsTest.java:222:33:222:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:223:32:223:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:223:66:223:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:224:52:224:93 | new Builder(...) : Builder | semmle.label | new Builder(...) : Builder | +| ImplicitPendingIntentsTest.java:224:91:224:92 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:226:21:226:77 | addAction(...) : Builder | semmle.label | addAction(...) : Builder | +| ImplicitPendingIntentsTest.java:226:61:226:68 | aBuilder : Builder | semmle.label | aBuilder : Builder | +| ImplicitPendingIntentsTest.java:226:61:226:76 | build(...) : Action | semmle.label | build(...) : Action | +| ImplicitPendingIntentsTest.java:227:41:227:48 | nBuilder : Builder | semmle.label | nBuilder : Builder | +| ImplicitPendingIntentsTest.java:227:41:227:56 | build(...) : Notification | semmle.label | build(...) : Notification | +| ImplicitPendingIntentsTest.java:229:32:229:43 | notification | semmle.label | notification | +| ImplicitPendingIntentsTest.java:230:36:230:47 | notification | semmle.label | notification | +| ImplicitPendingIntentsTest.java:237:33:237:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:238:32:238:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:238:66:238:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:239:32:239:33 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:240:42:240:43 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:241:49:241:50 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:242:37:242:38 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:243:54:243:55 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:244:51:244:52 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:245:44:245:45 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:246:41:246:42 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:256:33:256:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:257:32:257:79 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:257:66:257:75 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:258:59:258:60 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:259:65:259:66 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:260:69:260:70 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:261:57:261:58 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:262:74:262:75 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:269:33:269:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:270:32:270:80 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:270:67:270:76 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:272:13:272:21 | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | semmle.label | fwdIntent [post update] : Intent [android.content.Intent.extras, ] : PendingIntent | +| ImplicitPendingIntentsTest.java:272:45:272:46 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:273:26:273:34 | fwdIntent | semmle.label | fwdIntent | +| ImplicitPendingIntentsTest.java:282:22:282:32 | parameter this : TestSliceProvider [mPendingIntent] : PendingIntent | semmle.label | parameter this : TestSliceProvider [mPendingIntent] : PendingIntent | +| ImplicitPendingIntentsTest.java:284:37:284:48 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:285:36:285:92 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:285:79:285:88 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:286:46:286:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | semmle.label | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:286:73:286:74 | pi : PendingIntent | semmle.label | pi : PendingIntent | +| ImplicitPendingIntentsTest.java:288:17:288:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | semmle.label | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:288:36:289:57 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | semmle.label | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:289:43:289:56 | activityAction : SliceAction [androidx.slice.Slice.action] : Object | semmle.label | activityAction : SliceAction [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:290:24:290:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | semmle.label | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:290:24:290:42 | build(...) | semmle.label | build(...) | +| ImplicitPendingIntentsTest.java:314:38:314:92 | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | semmle.label | createDeeplink(...) : SliceAction [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:314:65:314:78 | mPendingIntent : PendingIntent | semmle.label | mPendingIntent : PendingIntent | +| ImplicitPendingIntentsTest.java:314:65:314:78 | this <.field> : TestSliceProvider [mPendingIntent] : PendingIntent | semmle.label | this <.field> : TestSliceProvider [mPendingIntent] : PendingIntent | +| ImplicitPendingIntentsTest.java:316:17:316:27 | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | semmle.label | listBuilder [post update] : ListBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:316:36:316:96 | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | semmle.label | setPrimaryAction(...) : RowBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:316:90:316:95 | action : SliceAction [androidx.slice.Slice.action] : Object | semmle.label | action : SliceAction [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:317:24:317:34 | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | semmle.label | listBuilder : ListBuilder [androidx.slice.Slice.action] : Object | +| ImplicitPendingIntentsTest.java:317:24:317:42 | build(...) | semmle.label | build(...) | +| ImplicitPendingIntentsTest.java:324:37:324:48 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:325:36:325:92 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:325:79:325:88 | baseIntent : Intent | semmle.label | baseIntent : Intent | +| ImplicitPendingIntentsTest.java:326:24:326:25 | pi | semmle.label | pi | +| ImplicitPendingIntentsTest.java:339:33:339:44 | new Intent(...) : Intent | semmle.label | new Intent(...) : Intent | +| ImplicitPendingIntentsTest.java:340:13:340:26 | this <.field> [post update] : TestSliceProvider [mPendingIntent] : PendingIntent | semmle.label | this <.field> [post update] : TestSliceProvider [mPendingIntent] : PendingIntent | +| ImplicitPendingIntentsTest.java:340:30:340:86 | getActivity(...) : PendingIntent | semmle.label | getActivity(...) : PendingIntent | +| ImplicitPendingIntentsTest.java:340:73:340:82 | baseIntent : Intent | semmle.label | baseIntent : Intent | +subpaths diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.java b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.java similarity index 80% rename from java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.java rename to java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.java index 80f66149221..5bada3e7736 100644 --- a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.java +++ b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.java @@ -28,77 +28,77 @@ public class ImplicitPendingIntentsTest { public static void testPendingIntentAsAnExtra(Context ctx) throws PendingIntent.CanceledException { { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivities(new Intent[] {fwdIntent}); // $ MISSING: hasImplicitPendingIntent - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivities(new Intent[] {fwdIntent}); // $ MISSING: Alert + ctx.startActivity(fwdIntent); // $ Alert ctx.startService(fwdIntent); // Safe - ctx.sendBroadcast(fwdIntent); // $hasImplicitPendingIntent + ctx.sendBroadcast(fwdIntent); // $ Alert fwdIntent.setComponent(null); // Not a sanitizer - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert fwdIntent.setPackage("a.safe.package"); // Sanitizer ctx.startActivity(fwdIntent); // Safe } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivityAsUser(ctx, 0, baseIntent, 0, null, null); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivities(ctx, 0, new Intent[] {baseIntent}, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivitiesAsUser(ctx, 0, new Intent[] {baseIntent}, 0, null, null); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getBroadcast(ctx, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.sendBroadcast(fwdIntent); // $hasImplicitPendingIntent + ctx.sendBroadcast(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getBroadcastAsUser(ctx, 0, baseIntent, 0, null); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.sendBroadcast(fwdIntent); // $hasImplicitPendingIntent + ctx.sendBroadcast(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getService(ctx, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert } { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getForegroundService(ctx, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - ctx.startActivity(fwdIntent); // $hasImplicitPendingIntent + ctx.startActivity(fwdIntent); // $ Alert } { @@ -163,14 +163,14 @@ public class ImplicitPendingIntentsTest { public static void testPendingIntentWrappedInAnotherPendingIntent(Context ctx, PendingIntent other) throws PendingIntent.CanceledException { { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - other.send(ctx, 0, fwdIntent); // $hasImplicitPendingIntent - other.send(ctx, 0, fwdIntent, null, null); // $hasImplicitPendingIntent - other.send(ctx, 0, fwdIntent, null, null, null); // $hasImplicitPendingIntent - other.send(ctx, 0, fwdIntent, null, null, null, null); // $hasImplicitPendingIntent + other.send(ctx, 0, fwdIntent); // $ Alert + other.send(ctx, 0, fwdIntent, null, null); // $ Alert + other.send(ctx, 0, fwdIntent, null, null, null); // $ Alert + other.send(ctx, 0, fwdIntent, null, null, null, null); // $ Alert } } @@ -178,16 +178,16 @@ public class ImplicitPendingIntentsTest { throws PendingIntent.CanceledException { { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); Notification.Action.Builder aBuilder = new Notification.Action.Builder(0, "", pi); Notification.Builder nBuilder = new Notification.Builder(ctx).addAction(aBuilder.build()); Notification notification = nBuilder.build(); NotificationManager nManager = null; - nManager.notifyAsPackage("targetPackage", "tag", 0, notification); // $hasImplicitPendingIntent - nManager.notify(0, notification); // $hasImplicitPendingIntent - nManager.notifyAsUser("", 0, notification, null); // $hasImplicitPendingIntent + nManager.notifyAsPackage("targetPackage", "tag", 0, notification); // $ Alert + nManager.notify(0, notification); // $ Alert + nManager.notifyAsUser("", 0, notification, null); // $ Alert } { Intent baseIntent = new Intent(); @@ -219,31 +219,31 @@ public class ImplicitPendingIntentsTest { } // Compat sinks { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); Notification.Action.Builder aBuilder = new Notification.Action.Builder(0, "", pi); Notification.Builder nBuilder = new Notification.Builder(ctx).addAction(aBuilder.build()); Notification notification = nBuilder.build(); NotificationManagerCompat nManager = null; - nManager.notify(0, notification); // $hasImplicitPendingIntent - nManager.notify("", 0, notification); // $hasImplicitPendingIntent + nManager.notify(0, notification); // $ Alert + nManager.notify("", 0, notification); // $ Alert } } public static void testPendingIntentInAnAlarm(Context ctx) { AlarmManager aManager = (AlarmManager) ctx.getSystemService(Context.ALARM_SERVICE); { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); - aManager.set(0, 0, pi); // $hasImplicitPendingIntent - aManager.setAlarmClock(null, pi); // $hasImplicitPendingIntent - aManager.setAndAllowWhileIdle(0, 0, pi); // $hasImplicitPendingIntent - aManager.setExact(0, 0, pi); // $hasImplicitPendingIntent - aManager.setExactAndAllowWhileIdle(0, 0, pi); // $hasImplicitPendingIntent - aManager.setInexactRepeating(0, 0, 0, pi); // $hasImplicitPendingIntent - aManager.setRepeating(0, 0, 0, pi); // $hasImplicitPendingIntent - aManager.setWindow(0, 0, 0, pi); // $hasImplicitPendingIntent + aManager.set(0, 0, pi); // $ Alert + aManager.setAlarmClock(null, pi); // $ Alert + aManager.setAndAllowWhileIdle(0, 0, pi); // $ Alert + aManager.setExact(0, 0, pi); // $ Alert + aManager.setExactAndAllowWhileIdle(0, 0, pi); // $ Alert + aManager.setInexactRepeating(0, 0, 0, pi); // $ Alert + aManager.setRepeating(0, 0, 0, pi); // $ Alert + aManager.setWindow(0, 0, 0, pi); // $ Alert } { Intent baseIntent = new Intent(); @@ -253,24 +253,24 @@ public class ImplicitPendingIntentsTest { } // Compat sinks { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(ctx, 0, baseIntent, 0); - AlarmManagerCompat.setAlarmClock(aManager, 0, pi, null); // $hasImplicitPendingIntent - AlarmManagerCompat.setAlarmClock(aManager, 0, null, pi); // $hasImplicitPendingIntent - AlarmManagerCompat.setAndAllowWhileIdle(aManager, 0, 0, pi); // $hasImplicitPendingIntent - AlarmManagerCompat.setExact(aManager, 0, 0, pi); // $hasImplicitPendingIntent - AlarmManagerCompat.setExactAndAllowWhileIdle(aManager, 0, 0, pi); // $hasImplicitPendingIntent + AlarmManagerCompat.setAlarmClock(aManager, 0, pi, null); // $ Alert + AlarmManagerCompat.setAlarmClock(aManager, 0, null, pi); // $ Alert + AlarmManagerCompat.setAndAllowWhileIdle(aManager, 0, 0, pi); // $ Alert + AlarmManagerCompat.setExact(aManager, 0, 0, pi); // $ Alert + AlarmManagerCompat.setExactAndAllowWhileIdle(aManager, 0, 0, pi); // $ Alert } } static class TestActivity extends Activity { @Override public void onCreate(Bundle bundle) { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(null, 0, baseIntent, 0); Intent fwdIntent = new Intent(); fwdIntent.putExtra("fwdIntent", pi); - setResult(0, fwdIntent); // $hasImplicitPendingIntent + setResult(0, fwdIntent); // $ Alert } } @@ -281,13 +281,13 @@ public class ImplicitPendingIntentsTest { @Override public Slice onBindSlice(Uri sliceUri) { if (sliceUri.getAuthority().equals("1")) { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(getContext(), 0, baseIntent, 0); SliceAction activityAction = SliceAction.createDeeplink(pi, null, 0, "Test"); ListBuilder listBuilder = new ListBuilder(getContext(), sliceUri, null); listBuilder.addRow(new ListBuilder.RowBuilder().setTitle("Title") .setPrimaryAction(activityAction)); - return listBuilder.build(); // $hasImplicitPendingIntent + return listBuilder.build(); // $ Alert } else if (sliceUri.getAuthority().equals("2")) { Intent baseIntent = new Intent(getContext(), Activity.class); // Sanitizer @@ -314,16 +314,16 @@ public class ImplicitPendingIntentsTest { SliceAction action = SliceAction.createDeeplink(mPendingIntent, null, 0, ""); ListBuilder listBuilder = new ListBuilder(getContext(), sliceUri, 0); listBuilder.addRow(new ListBuilder.RowBuilder(sliceUri).setPrimaryAction(action)); - return listBuilder.build(); // $hasImplicitPendingIntent + return listBuilder.build(); // $ Alert } } @Override public PendingIntent onCreatePermissionRequest(Uri sliceUri, String callingPackage) { if (sliceUri.getAuthority().equals("1")) { - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source PendingIntent pi = PendingIntent.getActivity(getContext(), 0, baseIntent, 0); - return pi; // $hasImplicitPendingIntent + return pi; // $ Alert } else { Intent baseIntent = new Intent(); PendingIntent pi = PendingIntent.getActivity(getContext(), 0, baseIntent, @@ -336,7 +336,7 @@ public class ImplicitPendingIntentsTest { public boolean onCreateSliceProvider() { // Testing implicit field read flows: // mPendingIntent is used in onBindSlice - Intent baseIntent = new Intent(); + Intent baseIntent = new Intent(); // $ Source mPendingIntent = PendingIntent.getActivity(getContext(), 0, baseIntent, 0); return true; } diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.qlref b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.qlref new file mode 100644 index 00000000000..beeff5417fc --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/ImplicitPendingIntentsTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-927/ImplicitPendingIntents.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/options b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/options new file mode 100644 index 00000000000..43e25f608b6 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntents/options @@ -0,0 +1 @@ +// semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/google-android-9.0.0 diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.expected b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.ql b/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.ql deleted file mode 100644 index b474a32b52c..00000000000 --- a/java/ql/test/query-tests/security/CWE-927/ImplicitPendingIntentsTest.ql +++ /dev/null @@ -1,18 +0,0 @@ -import java -import semmle.code.java.security.ImplicitPendingIntentsQuery -import utils.test.InlineExpectationsTest - -module ImplicitPendingIntentsTest implements TestSig { - string getARelevantTag() { result = "hasImplicitPendingIntent" } - - predicate hasActualResult(Location location, string element, string tag, string value) { - tag = "hasImplicitPendingIntent" and - exists(DataFlow::Node sink | ImplicitPendingIntentStartFlow::flowTo(sink) | - sink.getLocation() = location and - element = sink.toString() and - value = "" - ) - } -} - -import MakeTest From b2cb585bf231f75f59506a5ce9a3f190da3587ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 15:36:43 +0200 Subject: [PATCH 292/340] UnsafeDeserialization: add missing `getASelectedSinkLocation` override This fixes the failing diff-informed consistency check. --- .../semmle/code/java/security/UnsafeDeserializationQuery.qll | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll index b16770c222b..e10c6cebaf6 100644 --- a/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll +++ b/java/ql/lib/semmle/code/java/security/UnsafeDeserializationQuery.qll @@ -323,6 +323,10 @@ private module UnsafeDeserializationConfig implements DataFlow::ConfigSig { predicate isBarrier(DataFlow::Node node) { isUnsafeDeserializationSanitizer(node) } predicate observeDiffInformedIncrementalMode() { any() } + + Location getASelectedSinkLocation(DataFlow::Node sink) { + result = sink.(UnsafeDeserializationSink).getMethodCall().getLocation() + } } module UnsafeDeserializationFlow = TaintTracking::Global; From a49999dd5d2ae745b2e07a2d65cf79016550a214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 16:39:52 +0200 Subject: [PATCH 293/340] PolynomialReDoS: disable diff-informed support This is because it was failing the diff-informed consistency check, and like other ReDoS queries (Python?) the query tries to be helpful by showing a substring of a regex, which has a `hasLocation(...)` (intensional) but no corresponding `getLocation()` (extensional). Until the location overrides get updated to support `hasLocation`-based locations, it's probably best to turn off diff-informed support. --- .../java/security/regexp/PolynomialReDoSQuery.qll | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/java/ql/lib/semmle/code/java/security/regexp/PolynomialReDoSQuery.qll b/java/ql/lib/semmle/code/java/security/regexp/PolynomialReDoSQuery.qll index 767ebc97437..ba65e13dd61 100644 --- a/java/ql/lib/semmle/code/java/security/regexp/PolynomialReDoSQuery.qll +++ b/java/ql/lib/semmle/code/java/security/regexp/PolynomialReDoSQuery.qll @@ -47,18 +47,6 @@ module PolynomialRedosConfig implements DataFlow::ConfigSig { node instanceof SimpleTypeSanitizer or node.asExpr().(MethodCall).getMethod() instanceof LengthRestrictedMethod } - - predicate observeDiffInformedIncrementalMode() { any() } - - Location getASelectedSinkLocation(DataFlow::Node sink) { - exists(SuperlinearBackTracking::PolynomialBackTrackingTerm regexp | - regexp.getRootTerm() = sink.(PolynomialRedosSink).getRegExp() - | - result = sink.getLocation() - or - result = regexp.getLocation() - ) - } } module PolynomialRedosFlow = TaintTracking::Global; From 8f249c77bc4d2898b2e1741017535a005f67944c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Tue, 24 Jun 2025 11:16:44 +0200 Subject: [PATCH 294/340] C++: Support more complex 16-bit float types --- .../builtintypes.ql | 14 + .../old.dbscheme | 2509 +++++++++++++++++ .../semmlecode.cpp.dbscheme | 2506 ++++++++++++++++ .../upgrade.properties | 3 + cpp/ql/lib/change-notes/2025-06-24-float16.md | 4 + cpp/ql/lib/semmle/code/cpp/Type.qll | 9 + cpp/ql/lib/semmlecode.cpp.dbscheme | 3 + cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 12 + .../old.dbscheme | 2506 ++++++++++++++++ .../semmlecode.cpp.dbscheme | 2509 +++++++++++++++++ .../upgrade.properties | 2 + .../type_instantiations/types.expected | 3 + .../type_sizes/type_sizes.expected | 3 + .../types/unspecified_type.expected | 3 + .../variables/variables/types.expected | 3 + 15 files changed, 10089 insertions(+) create mode 100644 cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql create mode 100644 cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme create mode 100644 cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme create mode 100644 cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties create mode 100644 cpp/ql/lib/change-notes/2025-06-24-float16.md create mode 100644 cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme create mode 100644 cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme create mode 100644 cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql new file mode 100644 index 00000000000..9088493ce34 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/builtintypes.ql @@ -0,0 +1,14 @@ +class BuiltinType extends @builtintype { + string toString() { none() } +} + +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 + type instanceof @complex_fp16 or + type instanceof @complex_std_bfloat16 or + type instanceof @complex_std_float16 + then kind_new = 2 + else kind_new = kind +select type, name, kind_new, size, sign, alignment diff --git a/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme new file mode 100644 index 00000000000..7bc12b02a43 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/old.dbscheme @@ -0,0 +1,2509 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..e3834605178 --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/semmlecode.cpp.dbscheme @@ -0,0 +1,2506 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties new file mode 100644 index 00000000000..c8d1d2d3c3a --- /dev/null +++ b/cpp/downgrades/7bc12b02a4363149f0727a4bce07952dbb9d98aa/upgrade.properties @@ -0,0 +1,3 @@ +description: Introduce new complex 16-bit floating-point types +compatibility: backwards +builtintypes.rel: run builtintypes.qlo diff --git a/cpp/ql/lib/change-notes/2025-06-24-float16.md b/cpp/ql/lib/change-notes/2025-06-24-float16.md new file mode 100644 index 00000000000..24737d2b406 --- /dev/null +++ b/cpp/ql/lib/change-notes/2025-06-24-float16.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Added support for `__fp16 _Complex` and `__bf16 _Complex` types diff --git a/cpp/ql/lib/semmle/code/cpp/Type.qll b/cpp/ql/lib/semmle/code/cpp/Type.qll index f866d9f77e2..0256349972b 100644 --- a/cpp/ql/lib/semmle/code/cpp/Type.qll +++ b/cpp/ql/lib/semmle/code/cpp/Type.qll @@ -858,6 +858,15 @@ private predicate floatingPointTypeMapping( or // __mfp8 kind = 62 and base = 2 and domain = TRealDomain() and realKind = 62 and extended = false + or + // _Complex __fp16 + kind = 64 and base = 2 and domain = TComplexDomain() and realKind = 54 and extended = false + or + // _Complex __bf16 + kind = 65 and base = 2 and domain = TComplexDomain() and realKind = 55 and extended = false + or + // _Complex std::float16_t + kind = 66 and base = 2 and domain = TComplexDomain() and realKind = 56 and extended = false } /** diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme b/cpp/ql/lib/semmlecode.cpp.dbscheme index e3834605178..7bc12b02a43 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme @@ -693,6 +693,9 @@ case @builtintype.kind of | 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( diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index dc51cf5b218..696e1ac9e41 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -336,6 +336,18 @@ @scalable_vector_count 124 + + @complex_fp16 + 124 + + + @complex_std_bfloat16 + 124 + + + @complex_std_float16 + 124 + @pointer 455609 diff --git a/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme new file mode 100644 index 00000000000..e3834605178 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/old.dbscheme @@ -0,0 +1,2506 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 +; + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme new file mode 100644 index 00000000000..7bc12b02a43 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/semmlecode.cpp.dbscheme @@ -0,0 +1,2509 @@ + +/** + * 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 +); + +/** + * 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, 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 +); + +/** + * The source location of the snapshot. + */ +sourceLocationPrefix(string prefix : string ref); + +/** + * Information about packages that provide code used during compilation. + * The `id` is just a unique identifier. + * The `namespace` is typically the name of the package manager that + * provided the package (e.g. "dpkg" or "yum"). + * The `package_name` is the name of the package, and `version` is its + * version (as a string). + */ +external_packages( + unique int id: @external_package, + string namespace : string ref, + string package_name : string ref, + string version : string ref +); + +/** + * Holds if File `fileid` was provided by package `package`. + */ +header_to_external_package( + int fileid : @file ref, + int package : @external_package ref +); + +/* + * Version history + */ + +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 +) + +/* + * C++ dbscheme + */ + +extractor_version( + string codeql_version: string ref, + string frontend_version: string ref +) + +@location = @location_stmt | @location_expr | @location_default ; + +/** + * The location of an element that is not an expression or a statement. + * 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( + /** The location of an element that is not an expression or a statement. */ + unique int id: @location_default, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of a statement. + * 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_stmt( + /** The location of a statement. */ + unique int id: @location_stmt, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** + * The location of an expression. + * 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_expr( + /** The location of an expression. */ + unique int id: @location_expr, + int container: @container ref, + int startLine: int ref, + int startColumn: int ref, + int endLine: int ref, + int endColumn: int ref +); + +/** An element for which line-count information is available. */ +@sourceline = @file | @function | @variable | @enumconstant | @xmllocatable; + +numlines( + int element_id: @sourceline ref, + int num_lines: int ref, + int num_code: int ref, + int num_comment: int ref +); + +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 +); + +files( + unique int id: @file, + string name: string ref +); + +folders( + unique int id: @folder, + string name: string ref +); + +@container = @folder | @file + +containerparent( + int parent: @container ref, + unique int child: @container ref +); + +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 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 + 1 = @normal_function +| 2 = @constructor +| 3 = @destructor +| 4 = @conversion_function +| 5 = @operator +| 6 = @builtin_function // 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 +); + +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 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; + +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_expr 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_expr 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_stmt 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 +); + +/* 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/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties new file mode 100644 index 00000000000..03985f017e3 --- /dev/null +++ b/cpp/ql/lib/upgrades/e38346051783182ea75822e4adf8d4c6a949bc37/upgrade.properties @@ -0,0 +1,2 @@ +description: Support more complex 16-bit floating-point types +compatibility: full 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 548f5f10189..e6c8b1d9406 100644 --- a/cpp/ql/test/library-tests/templates/type_instantiations/types.expected +++ b/cpp/ql/test/library-tests/templates/type_instantiations/types.expected @@ -5,10 +5,13 @@ | file://:0:0:0:0 | _Complex _Float64 | | file://:0:0:0:0 | _Complex _Float64x | | file://:0:0:0:0 | _Complex _Float128 | +| file://:0:0:0:0 | _Complex __bf16 | | file://:0:0:0:0 | _Complex __float128 | +| file://:0:0:0:0 | _Complex __fp16 | | file://:0:0:0:0 | _Complex double | | 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 | 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 c77aadc8f4f..ac1344753e9 100644 --- a/cpp/ql/test/library-tests/type_sizes/type_sizes.expected +++ b/cpp/ql/test/library-tests/type_sizes/type_sizes.expected @@ -25,10 +25,13 @@ | file://:0:0:0:0 | _Complex _Float64 | 16 | | file://:0:0:0:0 | _Complex _Float64x | 32 | | file://:0:0:0:0 | _Complex _Float128 | 32 | +| file://:0:0:0:0 | _Complex __bf16 | 4 | | file://:0:0:0:0 | _Complex __float128 | 32 | +| file://:0:0:0:0 | _Complex __fp16 | 4 | | file://:0:0:0:0 | _Complex double | 16 | | 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 | 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 94185a66899..3f22b9f98f5 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 @@ -7,10 +7,13 @@ | file://:0:0:0:0 | _Complex _Float64 | _Complex _Float64 | | file://:0:0:0:0 | _Complex _Float64x | _Complex _Float64x | | file://:0:0:0:0 | _Complex _Float128 | _Complex _Float128 | +| file://:0:0:0:0 | _Complex __bf16 | _Complex __bf16 | | file://:0:0:0:0 | _Complex __float128 | _Complex __float128 | +| file://:0:0:0:0 | _Complex __fp16 | _Complex __fp16 | | file://:0:0:0:0 | _Complex double | _Complex double | | 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 | diff --git a/cpp/ql/test/library-tests/variables/variables/types.expected b/cpp/ql/test/library-tests/variables/variables/types.expected index 362ab5c6433..c2ea5f7cfe3 100644 --- a/cpp/ql/test/library-tests/variables/variables/types.expected +++ b/cpp/ql/test/library-tests/variables/variables/types.expected @@ -6,10 +6,13 @@ | _Complex _Float64 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex _Float64x | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex _Float128 | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex __bf16 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex __float128 | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex __fp16 | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex double | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex float | BinaryFloatingPointType, ComplexNumberType | | | | | | _Complex long double | BinaryFloatingPointType, ComplexNumberType | | | | | +| _Complex std::float16_t | BinaryFloatingPointType, ComplexNumberType | | | | | | _Decimal32 | Decimal32Type | | | | | | _Decimal64 | Decimal64Type | | | | | | _Decimal128 | Decimal128Type | | | | | From 565627847f8da4c910fe60daa9c5900ac66cfb77 Mon Sep 17 00:00:00 2001 From: Chuan-kai Lin Date: Tue, 24 Jun 2025 08:13:43 -0700 Subject: [PATCH 295/340] pick-kotlin-version.py: tolerate warnings This commit changes pick-kotlin-version.py to use re.search() instead of re.match(), so that it can better cope with warning messages. --- java/kotlin-extractor/pick-kotlin-version.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/kotlin-extractor/pick-kotlin-version.py b/java/kotlin-extractor/pick-kotlin-version.py index d4d85820a8e..718592d2bd6 100755 --- a/java/kotlin-extractor/pick-kotlin-version.py +++ b/java/kotlin-extractor/pick-kotlin-version.py @@ -26,7 +26,7 @@ if kotlinc is None: res = subprocess.run([kotlinc, "-version"], text=True, stdout=subprocess.DEVNULL, stderr=subprocess.PIPE) if res.returncode != 0: raise Exception(f"kotlinc -version failed: {res.stderr}") -m = re.match(r'.* kotlinc-jvm ([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z][a-zA-Z0-9]*)?) .*', res.stderr) +m = re.search(r' kotlinc-jvm ([0-9]+\.[0-9]+\.[0-9]+(-[a-zA-Z][a-zA-Z0-9]*)?) ', res.stderr) if m is None: raise Exception(f'Cannot detect version of kotlinc (got {res.stderr})') version = m[1] From 690446149aea4125f5c4bbe0832fa073939c03aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nora=20Dimitrijevi=C4=87?= Date: Tue, 24 Jun 2025 18:04:01 +0200 Subject: [PATCH 296/340] Java: add CleartextStorageCookie test Given that it's a non-path-problem dataflow query, the InlineExpectationsTest is not as useful. --- .../CleartextStorageCookieTest.expected | 21 +++++ .../CleartextStorageCookieTest.java | 79 +++++++++++++++++++ .../CleartextStorageCookieTest.qlref | 4 + .../CWE-312/CleartextStorageCookie/options | 1 + 4 files changed, 105 insertions(+) create mode 100644 java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.expected create mode 100644 java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.java create mode 100644 java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.qlref create mode 100644 java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/options diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.expected b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.expected new file mode 100644 index 00000000000..d39985a091b --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.expected @@ -0,0 +1,21 @@ +| CleartextStorageCookieTest.java:22:7:22:40 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:20:31:20:62 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:20:54:20:61 | password | sensitive data | CleartextStorageCookieTest.java:20:54:20:61 | password | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:20:54:20:61 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:21:31:21:38 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:23:69:23:76 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:24:46:24:53 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:33:67:33:74 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:34:36:34:43 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:37:84:37:91 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:38:51:38:58 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:44:7:44:32 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:43:23:43:51 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:42:40:42:47 | password | sensitive data | CleartextStorageCookieTest.java:43:46:43:50 | value | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:20:54:20:61 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:21:31:21:38 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:23:69:23:76 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:24:46:24:53 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:33:67:33:74 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:34:36:34:43 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:37:84:37:91 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:38:51:38:58 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:42:40:42:47 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:48:77:48:84 | password | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | +| CleartextStorageCookieTest.java:52:7:52:50 | addCookie(...) | This stores cookie $@ containing $@ which was $@. | CleartextStorageCookieTest.java:52:26:52:49 | new Cookie(...) | new Cookie(...) | CleartextStorageCookieTest.java:49:59:49:83 | getPassword(...) | sensitive data | CleartextStorageCookieTest.java:52:45:52:48 | data | added to the cookie | diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.java b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.java new file mode 100644 index 00000000000..5e4e949ca11 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.java @@ -0,0 +1,79 @@ +import javax.servlet.http.HttpServlet; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.Cookie; +import org.owasp.esapi.Encoder; +import java.nio.charset.StandardCharsets; +import java.util.Base64; +import java.security.MessageDigest; +import java.net.PasswordAuthentication; + +public class CleartextStorageCookieTest extends HttpServlet { + HttpServletResponse response; + String name = "user"; + String password = "BP@ssw0rd"; // $ Source + + public void doGet() throws Exception { + { + Cookie nameCookie = new Cookie("name", name); + nameCookie.setValue(name); + response.addCookie(nameCookie); // Safe + Cookie passwordCookie = new Cookie("password", password); + passwordCookie.setValue(password); + response.addCookie(passwordCookie); // $ Alert + Cookie encodedPasswordCookie = new Cookie("password", encrypt(password)); + encodedPasswordCookie.setValue(encrypt(password)); + response.addCookie(encodedPasswordCookie); // Safe + } + { + io.netty.handler.codec.http.Cookie nettyNameCookie = + new io.netty.handler.codec.http.DefaultCookie("name", name); + nettyNameCookie.setValue(name); // Safe + + io.netty.handler.codec.http.Cookie nettyPasswordCookie = + new io.netty.handler.codec.http.DefaultCookie("password", password); + nettyPasswordCookie.setValue(password); // $ MISSING: Alert (netty not supported by query) + + io.netty.handler.codec.http.cookie.Cookie nettyEncodedPasswordCookie = + new io.netty.handler.codec.http.cookie.DefaultCookie("password", encrypt(password)); + nettyEncodedPasswordCookie.setValue(encrypt(password)); // Safe + } + { + Encoder enc = null; + String value = enc.encodeForHTML(password); + Cookie cookie = new Cookie("password", value); + response.addCookie(cookie); // $ Alert + } + { + String data; + PasswordAuthentication credentials = new PasswordAuthentication(name, password.toCharArray()); + data = credentials.getUserName() + ":" + new String(credentials.getPassword()); + + // BAD: store data in a cookie in cleartext form + response.addCookie(new Cookie("auth", data)); // $ Alert + } + { + String data; + PasswordAuthentication credentials = + new PasswordAuthentication(name, password.toCharArray()); + String salt = "ThisIsMySalt"; + MessageDigest messageDigest = MessageDigest.getInstance("SHA-512"); + messageDigest.reset(); + String credentialsToHash = + credentials.getUserName() + ":" + new String(credentials.getPassword()); + byte[] hashedCredsAsBytes = + messageDigest.digest((salt+credentialsToHash).getBytes("UTF-8")); + data = new String(hashedCredsAsBytes); + + // GOOD: store data in a cookie in encrypted form + response.addCookie(new Cookie("auth", data)); // Safe + } + } + + + private static String encrypt(String cleartext) throws Exception { + MessageDigest digest = MessageDigest.getInstance("SHA-256"); + byte[] hash = digest.digest(cleartext.getBytes(StandardCharsets.UTF_8)); + String encoded = Base64.getEncoder().encodeToString(hash); + return encoded; + } +} diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.qlref b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.qlref new file mode 100644 index 00000000000..923d1277eeb --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/CleartextStorageCookieTest.qlref @@ -0,0 +1,4 @@ +query: Security/CWE/CWE-312/CleartextStorageCookie.ql +postprocess: + - utils/test/PrettyPrintModels.ql + - utils/test/InlineExpectationsTestQuery.ql diff --git a/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/options b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/options new file mode 100644 index 00000000000..068e49acc97 --- /dev/null +++ b/java/ql/test/query-tests/security/CWE-312/CleartextStorageCookie/options @@ -0,0 +1 @@ +//semmle-extractor-options: --javac-args -cp ${testdir}/../../../../stubs/servlet-api-2.4:${testdir}/../../../../stubs/apache-commons-lang3-3.7:${testdir}/../../../../stubs/esapi-2.0.1:${testdir}/../../../../stubs/netty-4.1.x From a79e3cf6040951720d60f94cae0b47071f0a56e3 Mon Sep 17 00:00:00 2001 From: Aditya Sharad Date: Tue, 24 Jun 2025 10:00:26 -0700 Subject: [PATCH 297/340] QLDoc scripts: Fix overly permissive regex ranges The range `A-aa-z` was too permissive and includes special characters between `Z` and `a`. Low impact, but fix to address an internally reported code scanning alert. --- config/opcode-qldoc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/opcode-qldoc.py b/config/opcode-qldoc.py index e379e6a3ea9..1c892ee3c85 100644 --- a/config/opcode-qldoc.py +++ b/config/opcode-qldoc.py @@ -8,9 +8,9 @@ needs_an_re = re.compile(r'^(?!Unary)[AEIOU]') # Name requiring "an" instead of start_qldoc_re = re.compile(r'^\s*/\*\*') # Start of a QLDoc comment end_qldoc_re = re.compile(r'\*/\s*$') # End of a QLDoc comment blank_qldoc_line_re = re.compile(r'^\s*\*\s*$') # A line in a QLDoc comment with only the '*' -instruction_class_re = re.compile(r'^class (?P[A-aa-z0-9]+)Instruction\s') # Declaration of an `Instruction` class -opcode_base_class_re = re.compile(r'^abstract class (?P[A-aa-z0-9]+)Opcode\s') # Declaration of an `Opcode` base class -opcode_class_re = re.compile(r'^ class (?P[A-aa-z0-9]+)\s') # Declaration of an `Opcode` class +instruction_class_re = re.compile(r'^class (?P[A-Za-z0-9]+)Instruction\s') # Declaration of an `Instruction` class +opcode_base_class_re = re.compile(r'^abstract class (?P[A-Za-z0-9]+)Opcode\s') # Declaration of an `Opcode` base class +opcode_class_re = re.compile(r'^ class (?P[A-Za-z0-9]+)\s') # Declaration of an `Opcode` class script_dir = path.realpath(path.dirname(__file__)) instruction_path = path.realpath(path.join(script_dir, '../cpp/ql/src/semmle/code/cpp/ir/implementation/raw/Instruction.qll')) From fff23040b397191af194bb306e83f6a09372b4cc Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 27 Mar 2024 17:01:07 +0100 Subject: [PATCH 298/340] C++: Update test results --- .../functions.expected | 2 + .../instantiations.expected | 1 + .../isfromtemplateinstantiation.expected | 96 +++++++++++++++++++ .../isfromuninstantiatedtemplate.expected | 70 ++++++++++++++ .../templates/switch/test.expected | 1 + 5 files changed, 170 insertions(+) diff --git a/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected b/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected index 672fae72e06..eba49fd1c6d 100644 --- a/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected +++ b/cpp/ql/test/library-tests/templates/instantiation_directive/functions.expected @@ -1,3 +1,5 @@ | file://:0:0:0:0 | operator= | file://:0:0:0:0 | __va_list_tag && | | file://:0:0:0:0 | operator= | file://:0:0:0:0 | const __va_list_tag & | +| test.cpp:2:6:2:6 | foo | file://:0:0:0:0 | float | +| test.cpp:2:6:2:6 | foo | file://:0:0:0:0 | int | | test.cpp:2:6:2:8 | foo | test.cpp:1:19:1:19 | T | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected index e1c7f956c7b..7a7b1761e98 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/instantiations.expected @@ -10,3 +10,4 @@ | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | ClassTemplateInstantiation | file://:0:0:0:0 | int | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | ClassTemplateInstantiation | file://:0:0:0:0 | long | | load.cpp:13:7:13:27 | basic_text_iprimitive | ClassTemplateInstantiation | load.cpp:3:7:3:24 | std_istream_mockup | +| load.cpp:22:10:22:10 | load | FunctionTemplateInstantiation | file://:0:0:0:0 | short | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected index cb35f7a6dd0..316b5273cdc 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromtemplateinstantiation.expected @@ -104,6 +104,15 @@ | isfromtemplateinstantiation.cpp:99:1:99:1 | return ... | isfromtemplateinstantiation.cpp:77:26:77:45 | AnotherTemplateClass | | isfromtemplateinstantiation.cpp:99:1:99:1 | return ... | isfromtemplateinstantiation.cpp:97:52:97:52 | AnotherTemplateClass::myMethod2(MyClassEnum) | | isfromtemplateinstantiation.cpp:110:3:110:3 | definition of var_template | isfromtemplateinstantiation.cpp:110:3:110:3 | var_template | +| isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | isfromtemplateinstantiation.cpp:129:6:129:6 | AnotherTemplateClass::f() | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | isfromtemplateinstantiation.cpp:135:31:135:35 | declaration of Inner | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | isfromtemplateinstantiation.cpp:136:7:136:7 | definition of x | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | @@ -112,7 +121,94 @@ | isfromtemplateinstantiation.cpp:137:7:137:7 | y | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | | load.cpp:15:14:15:15 | definition of is | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:15:14:15:15 | is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | definition of basic_text_iprimitive | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:5:18:5 | definition of basic_text_iprimitive | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:18:36:18:42 | definition of isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:36:18:42 | definition of isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:18:36:18:42 | std_istream_mockup & isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:18:36:18:42 | std_istream_mockup & isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:11:19:21 | constructor init of field is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:11:19:21 | constructor init of field is | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | (reference dereference) | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | (reference to) | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:14:19:20 | isParam | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:14:19:20 | isParam | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:23:19:24 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:23:19:24 | { ... } | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:19:24:19:24 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:19:24:19:24 | return ... | load.cpp:18:5:18:5 | basic_text_iprimitive::basic_text_iprimitive(std_istream_mockup &) | +| load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:10:22:10 | definition of load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:10:22:10 | definition of load | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | | load.cpp:22:10:22:13 | basic_text_iprimitive::load(T &) | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:10:22:13 | declaration of load | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:19:22:19 | T & t | load.cpp:13:7:13:27 | basic_text_iprimitive | | load.cpp:22:19:22:19 | declaration of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | definition of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | definition of t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:22:19:22:19 | short & t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:22:19:22:19 | short & t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:23:5:25:5 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:23:5:25:5 | { ... } | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | is | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | is | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:10 | this | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:10 | this | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:9:24:16 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:9:24:16 | ExprStmt | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:12:24:12 | call to operator>> | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:12:24:12 | call to operator>> | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:12:24:16 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:12:24:16 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | (reference dereference) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | (reference to) | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:24:15:24:15 | t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:24:15:24:15 | t | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:25:5:25:5 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:25:5:25:5 | return ... | load.cpp:22:10:22:10 | basic_text_iprimitive::load(short &) | +| load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:10:27:10 | definition of load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:10:27:10 | definition of load | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:27:22:27:22 | char & t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:22:27:22 | char & t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:27:22:27:22 | definition of t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:27:22:27:22 | definition of t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:28:5:32:5 | { ... } | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:28:5:32:5 | { ... } | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:9:29:20 | declaration | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:9:29:20 | declaration | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:19:29:19 | definition of i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:19:29:19 | definition of i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:29:19:29:19 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:29:19:29:19 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:12 | call to load | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:12 | call to load | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:12 | this | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:12 | this | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:9:30:16 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:9:30:16 | ExprStmt | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:14:30:14 | (reference to) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:14:30:14 | (reference to) | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:30:14:30:14 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:30:14:30:14 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:9 | (reference dereference) | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:9 | (reference dereference) | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:9 | t | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:9 | t | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:13 | ... = ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:13 | ... = ... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:9:31:14 | ExprStmt | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:9:31:14 | ExprStmt | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:13:31:13 | (char)... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:13:31:13 | (char)... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:31:13:31:13 | i | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:31:13:31:13 | i | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | +| load.cpp:32:5:32:5 | return ... | load.cpp:13:7:13:27 | basic_text_iprimitive | +| load.cpp:32:5:32:5 | return ... | load.cpp:27:10:27:10 | basic_text_iprimitive::load(char &) | diff --git a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected index 8a78058a723..ce20dedcfca 100644 --- a/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected +++ b/cpp/ql/test/library-tests/templates/isfromtemplateinstantiation/isfromuninstantiatedtemplate.expected @@ -425,7 +425,16 @@ isFromUninstantiatedTemplate | isfromtemplateinstantiation.cpp:123:6:123:6 | f | | | Declaration | | | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | | T | Declaration | | | isfromtemplateinstantiation.cpp:128:7:128:30 | AnotherTemplateClass | I | | Declaration | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | | T | Definition | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | definition of f | I | | Definition | | | isfromtemplateinstantiation.cpp:129:6:129:6 | f | | T | Declaration | | +| isfromtemplateinstantiation.cpp:129:6:129:6 | f | I | | Declaration | | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | | T | Stmt | | +| isfromtemplateinstantiation.cpp:129:10:129:22 | { ... } | I | | Stmt | | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | | T | Stmt | | +| isfromtemplateinstantiation.cpp:129:12:129:20 | return ... | I | | Stmt | | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | | T | Expr | | +| isfromtemplateinstantiation.cpp:129:19:129:19 | 1 | I | | Expr | | | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | | T | Declaration | | | isfromtemplateinstantiation.cpp:134:29:134:33 | Outer | I | | Declaration | | | isfromtemplateinstantiation.cpp:135:31:135:35 | Inner | | T | Declaration | | @@ -461,21 +470,82 @@ isFromUninstantiatedTemplate | load.cpp:15:14:15:15 | definition of is | I | | Definition | | | load.cpp:15:14:15:15 | is | | T | Declaration | | | load.cpp:15:14:15:15 | is | I | | Declaration | | +| load.cpp:18:5:18:5 | basic_text_iprimitive | I | | Declaration | | | load.cpp:18:5:18:25 | basic_text_iprimitive | | T | Declaration | | +| load.cpp:18:36:18:42 | definition of isParam | | T | Definition | | +| load.cpp:18:36:18:42 | definition of isParam | I | | Definition | | +| load.cpp:18:36:18:42 | isParam | | T | Declaration | | +| load.cpp:18:36:18:42 | isParam | I | | Declaration | | +| load.cpp:19:11:19:21 | constructor init of field is | | T | Expr | | +| load.cpp:19:11:19:21 | constructor init of field is | I | | Expr | | | load.cpp:19:14:19:20 | (reference dereference) | | T | Expr | | +| load.cpp:19:14:19:20 | (reference dereference) | I | | Expr | | | load.cpp:19:14:19:20 | (reference to) | | T | Expr | | +| load.cpp:19:14:19:20 | (reference to) | I | | Expr | | | load.cpp:19:14:19:20 | isParam | | T | Expr | Ref | +| load.cpp:19:14:19:20 | isParam | I | | Expr | Ref | +| load.cpp:19:23:19:24 | { ... } | | T | Stmt | | +| load.cpp:19:23:19:24 | { ... } | I | | Stmt | | +| load.cpp:19:24:19:24 | return ... | | T | Stmt | | +| load.cpp:19:24:19:24 | return ... | I | | Stmt | | +| load.cpp:22:10:22:10 | load | I | | Declaration | | | load.cpp:22:10:22:13 | load | | T | Declaration | | | load.cpp:22:10:22:13 | load | I | T | Declaration | | +| load.cpp:22:19:22:19 | definition of t | | T | Definition | | +| load.cpp:22:19:22:19 | definition of t | I | | Definition | | | load.cpp:22:19:22:19 | t | | T | Declaration | | +| load.cpp:22:19:22:19 | t | I | | Declaration | | | load.cpp:22:19:22:19 | t | I | T | Declaration | | +| load.cpp:23:5:25:5 | { ... } | | T | Stmt | | +| load.cpp:23:5:25:5 | { ... } | I | | Stmt | | | load.cpp:24:9:24:10 | (reference dereference) | | T | Expr | | +| load.cpp:24:9:24:10 | (reference dereference) | I | | Expr | | | load.cpp:24:9:24:10 | is | | T | Expr | Not ref | +| load.cpp:24:9:24:10 | is | I | | Expr | Not ref | | load.cpp:24:9:24:10 | this | | T | Expr | | +| load.cpp:24:9:24:10 | this | I | | Expr | | +| load.cpp:24:9:24:16 | ExprStmt | | T | Stmt | | +| load.cpp:24:9:24:16 | ExprStmt | I | | Stmt | | | load.cpp:24:15:24:15 | (reference dereference) | | T | Expr | | +| load.cpp:24:15:24:15 | (reference dereference) | I | | Expr | | +| load.cpp:24:15:24:15 | (reference to) | I | | Expr | | | load.cpp:24:15:24:15 | t | | T | Expr | Not ref | +| load.cpp:24:15:24:15 | t | I | | Expr | Ref | +| load.cpp:25:5:25:5 | return ... | | T | Stmt | | +| load.cpp:25:5:25:5 | return ... | I | | Stmt | | +| load.cpp:27:10:27:10 | load | I | | Declaration | | | load.cpp:27:10:27:13 | load | | T | Declaration | | +| load.cpp:27:22:27:22 | definition of t | | T | Definition | | +| load.cpp:27:22:27:22 | definition of t | I | | Definition | | +| load.cpp:27:22:27:22 | t | | T | Declaration | | +| load.cpp:27:22:27:22 | t | I | | Declaration | | +| load.cpp:28:5:32:5 | { ... } | | T | Stmt | | +| load.cpp:28:5:32:5 | { ... } | I | | Stmt | | +| load.cpp:29:9:29:20 | declaration | | T | Stmt | | +| load.cpp:29:9:29:20 | declaration | I | | Stmt | | +| load.cpp:29:19:29:19 | definition of i | | T | Definition | | +| load.cpp:29:19:29:19 | definition of i | I | | Definition | | +| load.cpp:29:19:29:19 | i | | T | Declaration | | +| load.cpp:29:19:29:19 | i | I | | Declaration | | +| load.cpp:30:9:30:12 | Unknown literal | | T | Expr | | +| load.cpp:30:9:30:12 | call to load | I | | Expr | | +| load.cpp:30:9:30:12 | this | I | | Expr | | +| load.cpp:30:9:30:16 | ExprStmt | | T | Stmt | | +| load.cpp:30:9:30:16 | ExprStmt | I | | Stmt | | +| load.cpp:30:14:30:14 | (reference to) | I | | Expr | | +| load.cpp:30:14:30:14 | i | | T | Expr | Not ref | +| load.cpp:30:14:30:14 | i | I | | Expr | Ref | | load.cpp:31:9:31:9 | (reference dereference) | | T | Expr | | +| load.cpp:31:9:31:9 | (reference dereference) | I | | Expr | | | load.cpp:31:9:31:9 | t | | T | Expr | Not ref | +| load.cpp:31:9:31:9 | t | I | | Expr | Not ref | +| load.cpp:31:9:31:13 | ... = ... | | T | Expr | | +| load.cpp:31:9:31:13 | ... = ... | I | | Expr | | +| load.cpp:31:9:31:14 | ExprStmt | | T | Stmt | | +| load.cpp:31:9:31:14 | ExprStmt | I | | Stmt | | | load.cpp:31:13:31:13 | (char)... | | T | Expr | | +| load.cpp:31:13:31:13 | (char)... | I | | Expr | | | load.cpp:31:13:31:13 | i | | T | Expr | Not ref | +| load.cpp:31:13:31:13 | i | I | | Expr | Not ref | +| load.cpp:32:5:32:5 | return ... | | T | Stmt | | +| load.cpp:32:5:32:5 | return ... | I | | Stmt | | diff --git a/cpp/ql/test/library-tests/templates/switch/test.expected b/cpp/ql/test/library-tests/templates/switch/test.expected index 1ba49e1caf9..b4124494ffe 100644 --- a/cpp/ql/test/library-tests/templates/switch/test.expected +++ b/cpp/ql/test/library-tests/templates/switch/test.expected @@ -1 +1,2 @@ | test.cpp:13:3:20:3 | switch (...) ... | 3 | +| test.cpp:13:3:20:3 | switch (...) ... | 3 | From 2f1cd388d126174192a4394cfa8f7c0b986f8b3c Mon Sep 17 00:00:00 2001 From: Jeroen Ketema Date: Wed, 25 Jun 2025 09:21:56 +0200 Subject: [PATCH 299/340] C++: Update stats file after DCA and extractor changes --- cpp/ql/lib/semmlecode.cpp.dbscheme.stats | 22073 +++++++++++---------- 1 file changed, 11054 insertions(+), 11019 deletions(-) diff --git a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats index 696e1ac9e41..165dde802e5 100644 --- a/cpp/ql/lib/semmlecode.cpp.dbscheme.stats +++ b/cpp/ql/lib/semmlecode.cpp.dbscheme.stats @@ -2,7 +2,7 @@ @compilation - 14471 + 236162 @externalDataElement @@ -18,371 +18,371 @@ @location_default - 36187310 + 187588827 @location_stmt - 5217100 + 9188352 @location_expr - 18007923 + 18007924 @diagnostic - 1484 + 2936 @file - 74641 + 230754 @folder - 14181 + 22981 @macro_expansion - 39310599 + 179869820 @other_macro_reference - 300694 + 1944932 @function - 4010790 + 7629848 @fun_decl - 4149709 + 7853714 @var_decl - 9262608 + 22872100 @type_decl - 1687349 + 5742010 @namespace_decl - 430963 + 407321 @using_declaration - 306677 + 500989 @using_directive - 6474 + 22100 @using_enum_declaration - 1 + 16 @static_assert - 183514 + 173266 @parameter - 6957575 + 15008695 @membervariable - 1493401 + 6289561 @globalvariable - 488090 + 488591 @localvariable - 726100 + 1444946 @enumconstant - 344765 + 1205579 @errortype - 124 + 969 @unknowntype - 124 + 969 @void - 124 + 969 @boolean - 124 + 969 @char - 124 + 969 @unsigned_char - 124 + 969 @signed_char - 124 + 969 @short - 124 + 969 @unsigned_short - 124 + 969 @signed_short - 124 + 969 @int - 124 + 969 @unsigned_int - 124 + 969 @signed_int - 124 + 969 @long - 124 + 969 @unsigned_long - 124 + 969 @signed_long - 124 + 969 @long_long - 124 + 969 @unsigned_long_long - 124 + 969 @signed_long_long - 124 + 969 @float - 124 + 969 @double - 124 + 969 @long_double - 124 + 969 @complex_float - 124 + 969 @complex_double - 124 + 969 @complex_long_double - 124 + 969 @imaginary_float - 124 + 969 @imaginary_double - 124 + 969 @imaginary_long_double - 124 + 969 @wchar_t - 124 + 969 @decltype_nullptr - 124 + 969 @int128 - 124 + 969 @unsigned_int128 - 124 + 969 @signed_int128 - 124 + 969 @float128 - 124 + 969 @complex_float128 - 124 + 969 @decimal32 - 124 + 969 @decimal64 - 124 + 969 @decimal128 - 124 + 969 @char16_t - 124 + 969 @char32_t - 124 + 969 @std_float32 - 124 + 969 @float32x - 124 + 969 @std_float64 - 124 + 969 @float64x - 124 + 969 @std_float128 - 124 + 969 @char8_t - 124 + 969 @float16 - 124 + 969 @complex_float16 - 124 + 969 @fp16 - 124 + 969 @std_bfloat16 - 124 + 969 @std_float16 - 124 + 969 @complex_std_float32 - 124 + 969 @complex_float32x - 124 + 969 @complex_std_float64 - 124 + 969 @complex_float64x - 124 + 969 @complex_std_float128 - 124 + 969 @mfp8 - 124 + 969 @scalable_vector_count - 124 + 969 @complex_fp16 - 124 + 969 @complex_std_bfloat16 - 124 + 969 @complex_std_float16 - 124 + 969 @pointer - 455609 + 1517635 @type_with_specifiers - 695720 + 1660095 @array - 98317 + 561118 @routineptr - 684232 + 684113 @reference - 969435 + 2667006 @gnu_vector - 773 + 11174 @routinereference - 374 + 1804 @rvalue_reference - 291455 + 1313151 @block - 10 + 1016 @scalable_vector @@ -390,23 +390,23 @@ @type_operator - 7960 + 21466 @decltype - 102349 + 317468 @usertype - 4458594 + 6052127 @mangledname - 6330564 + 12739995 @type_mention - 5828707 + 19988012 @concept_template @@ -414,27 +414,27 @@ @routinetype - 604428 + 792462 @ptrtomember - 11025 + 24227 @specifier - 7745 + 60085 @gnuattribute - 559628 + 3255016 @stdattribute - 350171 + 353114 @declspec - 329730 + 3611894 @msattribute @@ -446,15 +446,15 @@ @attribute_arg_token - 16696 + 1092168 @attribute_arg_constant_expr - 82124 + 422211 @attribute_arg_expr - 1607 + 82735 @attribute_arg_empty @@ -466,55 +466,55 @@ @attribute_arg_type - 460 + 1290 @derivation - 476986 + 695371 @frienddecl - 700589 + 11664613 @comment - 11220843 + 68615333 @namespace - 9901 + 55509 @specialnamequalifyingelement - 124 + 969 @namequalifier - 3041775 + 3041980 @value - 13474605 + 14027056 @initialiser - 2340631 + 5596945 @address_of - 595216 + 730977 @indirect - 404153 + 453518 @array_to_pointer - 1953751 + 3302753 @parexpr - 4915208 + 5451268 @arithnegexpr @@ -526,15 +526,15 @@ @complementexpr - 38199 + 142292 @notexpr - 355764 + 847791 @postincrexpr - 84597 + 599725 @postdecrexpr @@ -542,7 +542,7 @@ @preincrexpr - 96714 + 115589 @predecrexpr @@ -554,7 +554,7 @@ @addexpr - 571553 + 786845 @subexpr @@ -562,35 +562,35 @@ @mulexpr - 435793 + 810567 @divexpr - 54088 + 188452 @remexpr - 16015 + 80415 @paddexpr - 118669 + 361060 @psubexpr - 68037 + 68024 @pdiffexpr - 43849 + 57367 @lshiftexpr - 551696 + 589376 @rshiftexpr - 200554 + 247934 @andexpr @@ -598,11 +598,11 @@ @orexpr - 194055 + 574546 @xorexpr - 73975 + 117340 @eqexpr @@ -614,15 +614,15 @@ @gtexpr - 111149 + 199369 @ltexpr - 139429 + 201611 @geexpr - 81384 + 105701 @leexpr @@ -630,43 +630,43 @@ @assignexpr - 1281144 + 1873384 @assignaddexpr - 85634 + 194702 @assignsubexpr - 15307 + 93350 @assignmulexpr - 12609 + 11189 @assigndivexpr - 6809 + 6807 @assignremexpr - 874 + 4667 @assignlshiftexpr - 3704 + 20590 @assignrshiftexpr - 6882 + 38673 @assignandexpr - 6528 + 48479 @assignorexpr - 19606 + 111126 @assignxorexpr @@ -674,15 +674,15 @@ @assignpaddexpr - 18628 + 122317 @assignpsubexpr - 1575 + 10123 @andlogicalexpr - 346589 + 358253 @orlogicalexpr @@ -690,27 +690,27 @@ @commaexpr - 168901 + 281043 @subscriptexpr - 435142 + 765638 @callexpr - 261438 + 239780 @vastartexpr - 5085 + 11600 @vaargexpr - 1303 + 4740 @vaendexpr - 2941 + 11600 @vacopyexpr @@ -718,23 +718,23 @@ @varaccess - 8254631 + 9157418 @runtime_sizeof - 402047 + 776529 @runtime_alignof - 49886 + 49877 @expr_stmt - 148364 + 202820 @routineexpr - 5732059 + 5732446 @type_operand @@ -750,7 +750,7 @@ @literal - 7967633 + 7985912 @aggregateliteral @@ -758,43 +758,43 @@ @c_style_cast - 6026987 + 6026986 @temp_init - 992341 + 1115901 @errorexpr - 45695 + 94210 @reference_to - 1902670 + 2774640 @ref_indirect - 2107696 + 2856354 @vacuous_destructor_call - 7837 + 15900 @assume - 4394 + 4151 @conjugation - 12 + 10 @realpartexpr - 84 + 73 @imagpartexpr - 84 + 73 @jmulexpr @@ -834,35 +834,35 @@ @thisaccess - 1518626 + 1602283 @new_expr - 46206 + 94223 @delete_expr - 11483 + 33039 @throw_expr - 24105 + 92879 @condition_decl - 408893 + 408922 @braced_init_list - 2152 + 2151 @type_id - 47909 + 229949 @sizeof_pack - 1737 + 1781 @hasassignexpr @@ -878,7 +878,7 @@ @hasnothrowconstr - 3 + 87 @hasnothrowcopy @@ -886,15 +886,15 @@ @hastrivialassign - 2 + 3 @hastrivialconstr - 7 + 23 @hastrivialcopy - 2 + 87 @hasuserdestr @@ -910,11 +910,11 @@ @isbaseofexpr - 259 + 258 @isclassexpr - 2538 + 2388 @isconvtoexpr @@ -922,19 +922,19 @@ @isemptyexpr - 8869 + 8995 @isenumexpr - 2998 + 2996 @ispodexpr - 955 + 5904 @ispolyexpr - 3 + 35 @isunionexpr @@ -946,27 +946,27 @@ @hastrivialdestructor - 2794 + 4701 @uuidof - 28060 + 26588 @delete_array_expr - 1426 + 41539 @new_array_expr - 6933 + 44190 @foldexpr - 1247 + 2481 @ctordirectinit - 112823 + 131710 @ctorvirtualinit @@ -974,15 +974,15 @@ @ctorfieldinit - 206504 + 206698 @ctordelegatinginit - 3622 + 8703 @dtordirectdestruct - 39425 + 52507 @dtorvirtualdestruct @@ -990,39 +990,39 @@ @dtorfielddestruct - 39834 + 41790 @static_cast - 389023 + 355280 @reinterpret_cast - 41840 + 79930 @const_cast - 24466 + 24461 @dynamic_cast - 906 + 792 @lambdaexpr - 16482 + 23413 @param_ref - 164017 + 164014 @noopexpr - 51 + 48 @istriviallyconstructibleexpr - 3747 + 3745 @isdestructibleexpr @@ -1034,19 +1034,19 @@ @istriviallydestructibleexpr - 999 + 998 @istriviallyassignableexpr - 3747 + 3745 @isnothrowassignableexpr - 5122 + 5119 @istrivialexpr - 3368 + 7757 @isstandardlayoutexpr @@ -1054,7 +1054,7 @@ @istriviallycopyableexpr - 1226 + 3876 @isliteraltypeexpr @@ -1074,11 +1074,11 @@ @isconstructibleexpr - 3622 + 4613 @isnothrowconstructibleexpr - 20737 + 20727 @hasfinalizerexpr @@ -1114,7 +1114,7 @@ @isfinalexpr - 9404 + 9403 @noexceptexpr @@ -1122,15 +1122,15 @@ @builtinshufflevector - 1 + 727 @builtinchooseexpr - 20701 + 21326 @builtinaddressof - 15490 + 15822 @vec_fill @@ -1138,7 +1138,7 @@ @builtinconvertvector - 1 + 307 @builtincomplex @@ -1158,7 +1158,7 @@ @isassignable - 408 + 664 @isaggregate @@ -1174,15 +1174,15 @@ @builtinshuffle - 701 + 10127 @blockassignexpr - 1 + 177 @issame - 4539 + 5390 @isfunction @@ -1234,7 +1234,7 @@ @isintegral - 2 + 8 @islvaluereference @@ -1258,7 +1258,7 @@ @ispointer - 2 + 1182 @isreference @@ -1282,7 +1282,7 @@ @isvoid - 2 + 30 @isvolatile @@ -1290,7 +1290,7 @@ @reuseexpr - 846982 + 847042 @istriviallycopyassignable @@ -1302,7 +1302,7 @@ @referencebindstotemporary - 2 + 14582 @issameas @@ -1390,7 +1390,7 @@ @requires_expr - 16502 + 16503 @nested_requirement @@ -1402,15 +1402,15 @@ @concept_id - 90427 + 90434 @lambdacapture - 28526 + 31966 @stmt_expr - 2031614 + 3215944 @stmt_if @@ -1418,51 +1418,51 @@ @stmt_while - 39647 + 46675 @stmt_goto - 151588 + 291728 @stmt_label - 72706 + 283522 @stmt_return - 1255290 + 1710123 @stmt_block - 1844676 + 2399400 @stmt_end_test_while - 233641 + 551349 @stmt_for - 84389 + 121083 @stmt_switch_case - 836096 + 836154 @stmt_switch - 411840 + 411869 @stmt_asm - 64199 + 562106 @stmt_decl - 769069 + 1426776 @stmt_empty - 429375 + 817301 @stmt_continue @@ -1470,7 +1470,7 @@ @stmt_break - 140293 + 590166 @stmt_try_block @@ -1478,15 +1478,15 @@ @stmt_microsoft_try - 224 + 211 @stmt_set_vla_size - 35 + 1222 @stmt_vla_decl - 30 + 267 @stmt_assigned_goto @@ -1494,15 +1494,15 @@ @stmt_range_based_for - 6387 + 17217 @stmt_handler - 43747 + 43746 @stmt_constexpr_if - 103814 + 818798 @stmt_co_return @@ -1522,51 +1522,51 @@ @ppd_if - 588907 + 3008135 @ppd_ifdef - 214363 + 1135803 @ppd_ifndef - 158246 + 754594 @ppd_elif - 25085 + 392006 @ppd_else - 236237 + 1396495 @ppd_endif - 885609 + 4825227 @ppd_plain_include - 364623 + 491786 @ppd_define - 2746401 + 21491110 @ppd_undef - 100941 + 581469 @ppd_pragma - 406763 + 2256101 @ppd_include_next - 170 + 28235 @ppd_line - 18829 + 743302 @ppd_error @@ -1594,7 +1594,7 @@ @link_target - 846 + 11917 @xmldtd @@ -1624,15 +1624,15 @@ compilations - 14471 + 236162 id - 14471 + 236162 cwd - 12 + 1391 @@ -1646,7 +1646,7 @@ 1 2 - 14471 + 236162 @@ -1660,9 +1660,34 @@ 12 - 1197 - 1198 - 12 + 120 + 157 + 103 + + + 160 + 161 + 721 + + + 164 + 165 + 257 + + + 168 + 169 + 51 + + + 184 + 185 + 154 + + + 188 + 341 + 103 @@ -1672,19 +1697,19 @@ compilation_args - 1158561 + 20454453 id - 14471 + 236162 num - 1680 + 4997 arg - 33500 + 328227 @@ -1696,79 +1721,29 @@ 12 - 36 - 42 - 1148 + 84 + 85 + 134876 - 42 - 43 - 1257 + 86 + 87 + 45645 - 43 - 44 - 822 - - - 44 - 45 - 580 - - - 45 - 51 - 1088 - - - 51 - 70 - 556 - - - 71 - 72 - 810 - - - 72 - 90 - 1027 + 92 + 93 + 28593 94 - 96 - 447 + 95 + 9531 - 98 - 99 - 1535 - - - 100 - 102 - 108 - - - 103 - 104 - 2284 - - - 104 - 119 - 1221 - - - 120 - 138 - 1063 - - - 139 - 140 - 519 + 95 + 98 + 17516 @@ -1782,74 +1757,29 @@ 12 - 34 - 38 - 677 + 74 + 75 + 134876 - 38 - 39 - 1716 - - - 39 - 40 - 1124 - - - 40 - 42 - 1245 - - - 42 - 53 - 689 - - - 53 - 54 - 810 - - - 54 - 63 - 1027 - - - 64 - 67 - 459 - - - 67 - 68 - 1607 - - - 68 - 70 - 1112 - - - 70 - 71 - 1607 - - - 73 - 79 - 1088 + 75 + 76 + 45645 79 - 89 - 1293 + 80 + 28593 - 89 - 90 - 12 + 80 + 81 + 9531 + + + 81 + 83 + 17516 @@ -1863,59 +1793,19 @@ 12 - 43 - 90 - 72 + 85 + 526 + 257 - 90 - 108 - 132 + 1080 + 1967 + 412 - 108 - 183 - 120 - - - 198 - 422 - 132 - - - 422 - 595 - 145 - - - 595 - 605 - 145 - - - 605 - 749 - 132 - - - 750 - 778 - 132 - - - 781 - 883 - 132 - - - 930 - 1190 - 96 - - - 1197 - 1198 - 435 + 4584 + 4585 + 4327 @@ -1930,73 +1820,48 @@ 1 + 2 + 978 + + + 2 + 3 + 206 + + + 3 + 4 + 463 + + + 4 5 - 145 + 360 5 - 7 - 132 + 6 + 1597 - 9 - 12 - 84 + 6 + 60 + 360 - 12 - 15 - 132 + 85 + 125 + 412 - 15 - 18 - 108 + 135 + 430 + 412 - 18 - 22 - 132 - - - 22 - 27 - 145 - - - 27 - 29 - 96 - - - 29 - 34 - 132 - - - 34 - 44 - 145 - - - 45 - 63 - 132 - - - 67 - 94 - 132 - - - 94 - 164 - 132 - - - 171 - 199 - 24 + 558 + 2624 + 206 @@ -2012,22 +1877,17 @@ 1 2 - 15341 + 281705 2 - 3 - 14519 + 27 + 22410 - 3 - 103 - 2514 - - - 104 - 1198 - 1124 + 27 + 4585 + 24110 @@ -2043,17 +1903,17 @@ 1 2 - 22184 + 291751 2 - 3 - 9986 + 4 + 29932 - 3 - 62 - 1329 + 4 + 13 + 6542 @@ -2063,15 +1923,15 @@ compilation_build_mode - 14471 + 2 id - 14471 + 2 mode - 12 + 2 @@ -2085,7 +1945,7 @@ 1 2 - 14471 + 2 @@ -2099,9 +1959,9 @@ 12 - 1197 - 1198 - 12 + 1 + 2 + 2 @@ -2111,19 +1971,19 @@ compilation_compiling_files - 15742 + 236162 id - 2723 + 236162 num - 4521 + 51 file - 13672 + 7882 @@ -2137,42 +1997,7 @@ 1 2 - 1361 - - - 2 - 3 - 163 - - - 3 - 4 - 163 - - - 4 - 5 - 326 - - - 5 - 8 - 163 - - - 8 - 9 - 163 - - - 9 - 13 - 217 - - - 21 - 84 - 163 + 236162 @@ -2188,42 +2013,7 @@ 1 2 - 1361 - - - 2 - 3 - 163 - - - 3 - 4 - 163 - - - 4 - 5 - 326 - - - 5 - 8 - 163 - - - 8 - 9 - 163 - - - 9 - 13 - 217 - - - 21 - 84 - 163 + 236162 @@ -2237,29 +2027,9 @@ 12 - 1 - 2 - 2396 - - - 2 - 3 - 980 - - - 3 - 4 - 490 - - - 4 - 13 - 381 - - - 13 - 51 - 272 + 4584 + 4585 + 51 @@ -2273,29 +2043,9 @@ 12 - 1 - 2 - 2396 - - - 2 - 3 - 980 - - - 3 - 4 - 490 - - - 4 - 13 - 381 - - - 13 - 49 - 272 + 153 + 154 + 51 @@ -2309,19 +2059,24 @@ 12 - 1 - 2 - 12311 - - - 2 + 3 4 - 1143 + 103 4 - 6 - 217 + 5 + 5564 + + + 16 + 17 + 257 + + + 107 + 108 + 1957 @@ -2337,17 +2092,7 @@ 1 2 - 12528 - - - 2 - 4 - 1089 - - - 4 - 5 - 54 + 7882 @@ -2357,23 +2102,23 @@ compilation_time - 62971 + 944650 id - 2723 + 236162 num - 4521 + 51 kind - 217 + 206 seconds - 13999 + 10200 @@ -2387,42 +2132,7 @@ 1 2 - 1361 - - - 2 - 3 - 163 - - - 3 - 4 - 163 - - - 4 - 5 - 326 - - - 5 - 8 - 163 - - - 8 - 9 - 163 - - - 9 - 13 - 217 - - - 21 - 84 - 163 + 236162 @@ -2438,7 +2148,7 @@ 4 5 - 2723 + 236162 @@ -2451,55 +2161,20 @@ 12 + + 2 + 3 + 2060 + 3 4 - 762 + 125448 4 5 - 599 - - - 6 - 7 - 163 - - - 8 - 10 - 163 - - - 10 - 11 - 163 - - - 11 - 13 - 217 - - - 14 - 17 - 163 - - - 18 - 20 - 163 - - - 20 - 45 - 217 - - - 54 - 94 - 108 + 108653 @@ -2513,29 +2188,9 @@ 12 - 1 - 2 - 2396 - - - 2 - 3 - 980 - - - 3 - 4 - 490 - - - 4 - 13 - 381 - - - 13 - 51 - 272 + 4584 + 4585 + 51 @@ -2551,7 +2206,7 @@ 4 5 - 4521 + 51 @@ -2565,112 +2220,72 @@ 12 - 3 - 4 - 1307 + 198 + 199 + 51 + + + + + + kind + id + + + 12 + - 4 - 5 - 1143 + 4584 + 4585 + 206 + + + + + + kind + num + + + 12 + + + 1 + 2 + 206 + + + + + + + kind + seconds + + + 12 + 5 6 - 217 - - - 6 - 7 - 490 + 51 7 8 - 217 + 51 - 8 - 9 - 326 + 162 + 163 + 51 - 9 - 17 - 381 - - - 23 - 51 - 381 - - - 89 - 90 - 54 - - - - - - - kind - id - - - 12 - - - 50 - 51 - 217 - - - - - - - kind - num - - - 12 - - - 83 - 84 - 217 - - - - - - - kind - seconds - - - 12 - - - 3 - 4 - 54 - - - 4 - 5 - 54 - - - 139 - 140 - 54 - - - 157 - 158 - 54 + 184 + 185 + 51 @@ -2686,27 +2301,67 @@ 1 2 - 7353 + 978 2 - 3 - 3322 - - - 3 - 4 - 1852 - - - 4 6 - 1198 + 824 6 - 46 - 272 + 9 + 772 + + + 9 + 16 + 875 + + + 16 + 20 + 772 + + + 20 + 25 + 772 + + + 25 + 31 + 824 + + + 31 + 38 + 824 + + + 38 + 45 + 772 + + + 45 + 54 + 824 + + + 54 + 71 + 772 + + + 71 + 326 + 772 + + + 338 + 2995 + 412 @@ -2722,32 +2377,7 @@ 1 2 - 6700 - - - 2 - 3 - 2887 - - - 3 - 4 - 1906 - - - 4 - 5 - 1252 - - - 5 - 11 - 1089 - - - 38 - 75 - 163 + 10200 @@ -2763,12 +2393,12 @@ 1 2 - 11493 + 1957 2 3 - 2505 + 8243 @@ -2778,23 +2408,23 @@ diagnostic_for - 4152 + 5770 diagnostic - 1484 + 2936 compilation - 1355 + 2885 file_number - 21 + 51 file_number_diagnostic_number - 107 + 103 @@ -2808,12 +2438,12 @@ 1 2 - 1441 + 2885 - 63 - 64 - 43 + 56 + 57 + 51 @@ -2829,7 +2459,7 @@ 1 2 - 1484 + 2936 @@ -2845,7 +2475,7 @@ 1 2 - 1484 + 2936 @@ -2859,14 +2489,9 @@ 12 - 3 - 4 - 1312 - - - 5 - 6 - 43 + 2 + 3 + 2885 @@ -2882,7 +2507,7 @@ 1 2 - 1355 + 2885 @@ -2896,14 +2521,9 @@ 12 - 3 - 4 - 1312 - - - 5 - 6 - 43 + 2 + 3 + 2885 @@ -2917,9 +2537,9 @@ 12 - 69 - 70 - 21 + 57 + 58 + 51 @@ -2933,9 +2553,9 @@ 12 - 63 - 64 - 21 + 56 + 57 + 51 @@ -2949,9 +2569,9 @@ 12 - 5 - 6 - 21 + 2 + 3 + 51 @@ -2967,17 +2587,12 @@ 1 2 - 43 + 51 - 2 - 3 - 43 - - - 63 - 64 - 21 + 56 + 57 + 51 @@ -2991,14 +2606,9 @@ 12 - 2 - 3 - 43 - - - 63 - 64 - 64 + 56 + 57 + 103 @@ -3014,7 +2624,7 @@ 1 2 - 107 + 103 @@ -3024,19 +2634,19 @@ compilation_finished - 14471 + 236162 id - 14471 + 236162 cpu_seconds - 10844 + 16331 elapsed_seconds - 217 + 463 @@ -3050,7 +2660,7 @@ 1 2 - 14471 + 236162 @@ -3066,7 +2676,7 @@ 1 2 - 14471 + 236162 @@ -3082,17 +2692,67 @@ 1 2 - 9151 + 1648 2 3 - 1172 + 1545 3 - 26 - 519 + 4 + 1494 + + + 4 + 5 + 927 + + + 5 + 6 + 1339 + + + 6 + 7 + 1133 + + + 7 + 9 + 1236 + + + 9 + 11 + 1494 + + + 11 + 13 + 1391 + + + 13 + 16 + 1339 + + + 16 + 22 + 1287 + + + 22 + 54 + 1236 + + + 76 + 599 + 257 @@ -3108,12 +2768,32 @@ 1 2 - 10227 + 2472 2 3 - 616 + 3554 + + + 3 + 4 + 3451 + + + 4 + 5 + 3606 + + + 5 + 6 + 2421 + + + 6 + 8 + 824 @@ -3129,72 +2809,47 @@ 1 2 - 12 + 51 - 2 - 3 - 48 + 8 + 9 + 51 - 3 - 4 - 12 + 67 + 68 + 51 - 6 - 7 - 12 + 206 + 207 + 51 - 9 - 10 - 12 + 314 + 315 + 51 - 11 - 12 - 24 + 480 + 481 + 51 - 12 - 13 - 12 + 638 + 639 + 51 - 18 - 19 - 12 + 1370 + 1371 + 51 - 37 - 38 - 12 - - - 64 - 65 - 12 - - - 152 - 153 - 12 - - - 247 - 248 - 12 - - - 300 - 301 - 12 - - - 318 - 319 - 12 + 1500 + 1501 + 51 @@ -3210,77 +2865,47 @@ 1 2 - 12 + 51 - 2 - 3 - 48 + 8 + 9 + 51 - 3 - 4 - 12 + 51 + 52 + 51 - 6 - 7 - 12 + 66 + 67 + 51 - 9 - 10 - 12 + 105 + 106 + 51 - 10 - 11 - 12 + 144 + 145 + 51 - 11 - 12 - 12 + 191 + 192 + 51 - 12 - 13 - 12 + 213 + 214 + 51 - 18 - 19 - 12 - - - 37 - 38 - 12 - - - 60 - 61 - 12 - - - 139 - 140 - 12 - - - 162 - 163 - 12 - - - 228 - 229 - 12 - - - 244 - 245 - 12 + 221 + 222 + 51 @@ -3506,11 +3131,11 @@ sourceLocationPrefix - 124 + 969 prefix - 124 + 969 @@ -5004,15 +4629,15 @@ extractor_version - 124 + 969 codeql_version - 124 + 969 frontend_version - 124 + 969 @@ -5026,7 +4651,7 @@ 1 2 - 124 + 969 @@ -5042,7 +4667,7 @@ 1 2 - 124 + 969 @@ -5052,31 +4677,31 @@ locations_default - 36187310 + 187588827 id - 36187310 + 187588827 container - 40976 + 133737 startLine - 7487141 + 59692684 startColumn - 21237 + 192854 endLine - 7489140 + 59688807 endColumn - 53468 + 290734 @@ -5090,7 +4715,7 @@ 1 2 - 36187310 + 187588827 @@ -5106,7 +4731,7 @@ 1 2 - 36187310 + 187588827 @@ -5122,7 +4747,7 @@ 1 2 - 36187310 + 187588827 @@ -5138,7 +4763,7 @@ 1 2 - 36187310 + 187588827 @@ -5154,7 +4779,7 @@ 1 2 - 36187310 + 187588827 @@ -5169,701 +4794,75 @@ 1 - 15 - 3123 - - - 15 - 41 - 3123 - - - 42 - 66 - 3373 - - - 67 - 95 - 3123 - - - 98 - 124 - 3248 - - - 124 - 174 - 3373 - - - 175 - 228 - 3123 - - - 230 - 303 - 3123 - - - 305 - 406 - 3123 - - - 408 - 596 - 3248 - - - 598 - 943 - 3123 - - - 986 - 2568 - 3123 - - - 2587 - 57658 - 2748 - - - - - - - container - startLine - - - 12 - - - 1 - 13 - 3497 - - - 13 - 29 - 3248 - - - 29 - 42 - 3123 - - - 42 - 58 - 3373 - - - 58 - 76 - 3123 - - - 77 - 102 - 3248 - - - 102 - 134 - 3123 - - - 134 - 173 - 3123 - - - 173 - 242 - 3123 - - - 243 - 348 - 3123 - - - 348 - 489 - 3123 - - - 493 - 1269 - 3123 - - - 1337 - 57597 - 2623 - - - - - - - container - startColumn - - - 12 - - - 1 - 4 - 2248 - - - 4 - 7 - 3123 - - - 7 - 12 - 3497 - - - 12 - 16 - 3123 - - - 16 22 - 3373 + 10660 - 22 - 28 - 3123 - - - 28 - 33 - 3248 - - - 33 - 39 - 3373 - - - 39 - 48 - 3373 - - - 48 - 60 - 3373 - - - 60 - 82 - 3373 - - - 83 - 98 - 3248 - - - 98 - 141 - 2498 - - - - - - - container - endLine - - - 12 - - - 1 - 13 - 3497 - - - 13 - 29 - 3248 - - - 29 - 42 - 3123 - - - 42 - 58 - 3373 - - - 58 - 76 - 3123 - - - 77 - 102 - 3248 - - - 102 - 134 - 3123 - - - 134 - 173 - 3248 - - - 174 - 244 - 3123 - - - 246 - 348 - 3123 - - - 348 - 494 - 3123 - - - 513 - 1349 - 3123 - - - 1407 - 57597 - 2498 - - - - - - - container - endColumn - - - 12 - - - 1 - 12 - 3373 - - - 13 - 24 - 3248 - - - 25 - 33 - 3248 - - - 33 - 39 - 3373 - - - 39 - 45 - 3622 - - - 45 - 54 - 3123 - - - 54 + 23 62 - 3622 + 10660 62 - 71 - 3373 + 87 + 10660 - 71 - 83 - 3497 + 88 + 115 + 11629 - 83 - 99 - 3123 + 117 + 152 + 10660 - 99 - 114 - 3123 - - - 114 - 143 - 3123 - - - 147 - 363 - 1124 - - - - - - - startLine - id - - - 12 - - - 1 - 2 - 4954615 - - - 2 - 3 - 799784 - - - 3 - 4 - 565670 - - - 4 - 12 - 592405 - - - 12 - 210 - 561673 - - - 210 - 534 - 12992 - - - - - - - startLine - container - - - 12 - - - 1 - 2 - 5012832 - - - 2 - 3 - 1233157 - - - 3 - 6 - 663363 - - - 6 - 106 - 561673 - - - 107 - 329 - 16115 - - - - - - - startLine - startColumn - - - 12 - - - 1 - 2 - 5648961 - - - 2 - 3 - 532065 - - - 3 - 7 - 578663 - - - 7 - 24 - 570792 - - - 24 - 72 - 156658 - - - - - - - startLine - endLine - - - 12 - - - 1 - 2 - 7312493 - - - 2 - 81 - 174648 - - - - - - - startLine - endColumn - - - 12 - - - 1 - 2 - 5021452 - - - 2 - 3 - 766678 - - - 3 - 4 - 559174 - - - 4 - 12 - 603648 - - - 12 - 235 - 536187 - - - - - - - startColumn - id - - - 12 - - - 1 - 2 - 1499 - - - 2 - 4 - 1873 - - - 4 - 9 - 1624 - - - 9 - 19 - 1748 - - - 20 - 74 - 1624 - - - 81 - 173 - 1624 - - - 173 - 435 - 1624 - - - 468 - 904 - 1624 - - - 945 - 1309 - 1624 - - - 1328 - 1510 - 1624 - - - 1531 - 1774 - 1624 - - - 1834 - 2887 - 1624 - - - 3491 - 119749 - 1499 - - - - - - - startColumn - container - - - 12 - - - 1 - 2 - 1873 - - - 2 - 4 - 1748 - - - 4 - 6 - 1499 - - - 6 - 11 - 1748 - - - 11 - 33 - 1624 - - - 34 - 45 - 1624 - - - 50 - 75 - 1748 - - - 78 - 98 - 1748 - - - 101 - 131 - 1624 - - - 131 - 147 - 1873 - - - 149 - 161 - 1624 - - - 162 - 198 - 1624 + 152 + 200 + 10660 202 - 329 - 874 + 283 + 10660 + + + 299 + 365 + 10660 + + + 372 + 474 + 10660 + + + 507 + 795 + 10660 + + + 864 + 1798 + 10660 + + + 1880 + 4620 + 10660 + + + 12195 + 59051 + 4845 - startColumn + container startLine @@ -5871,75 +4870,156 @@ 1 - 2 - 1624 + 22 + 11629 - 2 - 4 - 1873 + 29 + 46 + 10660 - 4 - 9 - 1624 + 47 + 61 + 11629 - 9 - 19 - 1748 + 62 + 81 + 10660 - 20 - 74 - 1624 + 81 + 101 + 11629 - 80 - 169 - 1624 + 102 + 128 + 10660 - 171 - 432 - 1624 + 128 + 164 + 10660 - 467 - 822 - 1624 + 168 + 237 + 10660 - 861 - 1001 - 1624 + 246 + 381 + 10660 - 1002 - 1190 - 1624 + 385 + 550 + 10660 - 1201 - 1338 - 1624 + 568 + 1104 + 10660 - 1347 - 1920 - 1624 + 1195 + 7434 + 10660 - 2210 - 59360 - 1374 + 12075 + 58993 + 2907 - startColumn + container + startColumn + + + 12 + + + 1 + 4 + 5814 + + + 4 + 6 + 9691 + + + 6 + 9 + 10660 + + + 9 + 15 + 10660 + + + 15 + 17 + 8722 + + + 17 + 20 + 8722 + + + 20 + 24 + 11629 + + + 26 + 29 + 10660 + + + 29 + 34 + 10660 + + + 36 + 42 + 11629 + + + 42 + 56 + 11629 + + + 56 + 75 + 10660 + + + 75 + 127 + 10660 + + + 136 + 195 + 1938 + + + + + + + container endLine @@ -5947,285 +5027,75 @@ 1 - 2 - 1624 - - - 2 - 4 - 1873 - - - 4 - 9 - 1624 - - - 9 - 19 - 1748 - - - 20 - 74 - 1624 - - - 80 - 169 - 1624 - - - 171 - 432 - 1624 - - - 467 - 822 - 1624 - - - 861 - 1003 - 1624 - - - 1003 - 1198 - 1624 - - - 1201 - 1338 - 1624 - - - 1347 - 1920 - 1624 - - - 2220 - 59375 - 1374 - - - - - - - startColumn - endColumn - - - 12 - - - 1 - 2 - 1873 - - - 2 - 4 - 1748 - - - 4 - 7 - 1873 - - - 7 - 13 - 1748 - - - 13 - 21 - 1748 - - - 21 - 29 - 1624 + 22 + 11629 29 - 37 - 1499 + 46 + 10660 - 37 - 50 - 1624 + 47 + 61 + 11629 - 50 - 58 - 1624 + 62 + 78 + 10660 - 61 - 67 - 1748 + 80 + 101 + 11629 - 67 - 76 - 1624 + 102 + 128 + 10660 - 76 - 137 - 1624 + 128 + 164 + 10660 - 139 - 299 - 874 + 168 + 237 + 10660 + + + 246 + 381 + 10660 + + + 385 + 550 + 10660 + + + 568 + 1104 + 10660 + + + 1195 + 7436 + 10660 + + + 12075 + 58993 + 2907 - endLine - id - - - 12 - - - 1 - 2 - 4954241 - - - 2 - 3 - 807030 - - - 3 - 4 - 560798 - - - 4 - 12 - 592779 - - - 12 - 214 - 561797 - - - 214 - 530 - 12492 - - - - - - - endLine - container - - - 12 - - - 1 - 2 - 5011332 - - - 2 - 3 - 1236280 - - - 3 - 6 - 663738 - - - 6 - 107 - 561797 - - - 107 - 329 - 15990 - - - - - - - endLine - startLine - - - 12 - - - 1 - 2 - 7307996 - - - 2 - 7 - 181144 - - - - - - - endLine - startColumn - - - 12 - - - 1 - 2 - 5651585 - - - 2 - 3 - 530691 - - - 3 - 7 - 579537 - - - 7 - 24 - 570417 - - - 24 - 72 - 156908 - - - - - - - endLine + container endColumn @@ -6233,272 +5103,1072 @@ 1 - 2 - 5021327 - - - 2 - 3 - 773299 - - - 3 - 4 - 554552 - - - 4 12 - 604648 + 10660 - 12 - 235 - 535313 - - - - - - - endColumn - id - - - 12 - - - 1 - 2 - 15740 + 13 + 29 + 10660 - 2 - 3 - 5621 - - - 3 - 7 - 4497 - - - 7 - 17 - 4122 - - - 17 - 32 - 4247 - - - 35 - 103 - 4122 - - - 147 - 635 - 4122 - - - 651 - 2069 - 4122 - - - 2137 - 3404 - 4122 - - - 3430 - 33692 - 2748 - - - - - - - endColumn - container - - - 12 - - - 1 - 2 - 18614 - - - 2 - 3 - 5621 - - - 3 - 5 - 4247 - - - 5 - 7 - 3373 - - - 7 - 15 - 4622 - - - 15 - 78 - 4122 - - - 78 - 143 - 4247 - - - 150 - 202 - 4122 - - - 203 - 263 - 4122 - - - 266 - 329 - 374 - - - - - - - endColumn - startLine - - - 12 - - - 1 - 2 - 15990 - - - 2 - 3 - 5996 - - - 3 - 7 - 4122 - - - 7 - 17 - 4247 - - - 17 + 29 35 - 4122 + 10660 35 - 140 - 4122 - - - 157 - 601 - 4122 - - - 610 - 1714 - 4122 - - - 1749 - 2382 - 4122 - - - 2421 - 30689 - 2498 - - - - - - - endColumn - startColumn - - - 12 - - - 1 - 2 - 17364 - - - 2 - 3 - 6371 - - - 3 - 4 - 3123 - - - 4 - 6 - 3872 - - - 6 - 11 - 4622 - - - 11 - 22 - 4122 - - - 22 40 - 4247 + 11629 - 42 + 41 + 45 + 11629 + + + 45 + 48 + 10660 + + + 49 60 - 4872 + 10660 60 68 - 4122 + 10660 68 - 73 - 749 + 77 + 10660 + + + 77 + 87 + 10660 + + + 91 + 103 + 10660 + + + 103 + 155 + 10660 + + + 171 + 292 + 3876 + + + + + + + startLine + id + + + 12 + + + 1 + 2 + 38141488 + + + 2 + 3 + 6285684 + + + 3 + 4 + 4993853 + + + 4 + 6 + 4742852 + + + 6 + 26 + 4508326 + + + 26 + 176 + 1020478 + + + + + + + startLine + container + + + 12 + + + 1 + 2 + 38608602 + + + 2 + 3 + 10020656 + + + 3 + 4 + 5546249 + + + 4 + 16 + 4591670 + + + 16 + 139 + 925505 + + + + + + + startLine + startColumn + + + 12 + + + 1 + 2 + 44882657 + + + 2 + 3 + 4052842 + + + 3 + 4 + 3421947 + + + 4 + 7 + 4558720 + + + 7 + 43 + 2776516 + + + + + + + startLine + endLine + + + 12 + + + 1 + 2 + 58650884 + + + 2 + 14 + 1041799 + + + + + + + startLine + endColumn + + + 12 + + + 1 + 2 + 38587281 + + + 2 + 3 + 6118996 + + + 3 + 4 + 5025834 + + + 4 + 6 + 4782586 + + + 6 + 27 + 4485067 + + + 27 + 67 + 692917 + + + + + + + startColumn + id + + + 12 + + + 1 + 2 + 19382 + + + 2 + 3 + 15505 + + + 3 + 5 + 16474 + + + 5 + 11 + 15505 + + + 11 + 15 + 14536 + + + 15 + 28 + 14536 + + + 28 + 58 + 14536 + + + 60 + 136 + 14536 + + + 138 + 281 + 14536 + + + 329 + 448 + 14536 + + + 463 + 807 + 14536 + + + 815 + 1929 + 14536 + + + 2561 + 109994 + 9691 + + + + + + + startColumn + container + + + 12 + + + 1 + 2 + 33919 + + + 2 + 3 + 23258 + + + 3 + 4 + 13567 + + + 4 + 6 + 14536 + + + 6 + 11 + 16474 + + + 11 + 17 + 14536 + + + 19 + 26 + 15505 + + + 27 + 46 + 16474 + + + 46 + 55 + 14536 + + + 55 + 65 + 14536 + + + 66 + 137 + 14536 + + + 138 + 139 + 969 + + + + + + + startColumn + startLine + + + 12 + + + 1 + 2 + 20351 + + + 2 + 3 + 15505 + + + 3 + 5 + 16474 + + + 5 + 11 + 15505 + + + 11 + 15 + 14536 + + + 15 + 28 + 14536 + + + 28 + 58 + 14536 + + + 60 + 135 + 14536 + + + 137 + 316 + 14536 + + + 323 + 425 + 14536 + + + 432 + 713 + 14536 + + + 729 + 2052 + 14536 + + + 2140 + 60974 + 8722 + + + + + + + startColumn + endLine + + + 12 + + + 1 + 2 + 20351 + + + 2 + 3 + 15505 + + + 3 + 5 + 16474 + + + 5 + 11 + 15505 + + + 11 + 15 + 14536 + + + 15 + 28 + 14536 + + + 28 + 58 + 14536 + + + 60 + 135 + 14536 + + + 137 + 316 + 14536 + + + 323 + 425 + 14536 + + + 432 + 713 + 14536 + + + 729 + 2052 + 14536 + + + 2141 + 60975 + 8722 + + + + + + + startColumn + endColumn + + + 12 + + + 1 + 2 + 24227 + + + 2 + 3 + 17444 + + + 3 + 4 + 9691 + + + 4 + 6 + 12598 + + + 6 + 8 + 13567 + + + 8 + 12 + 15505 + + + 12 + 18 + 17444 + + + 18 + 25 + 14536 + + + 25 + 38 + 15505 + + + 38 + 42 + 14536 + + + 42 + 53 + 15505 + + + 53 + 70 + 14536 + + + 72 + 300 + 7752 + + + + + + + endLine + id + + + 12 + + + 1 + 2 + 38096909 + + + 2 + 3 + 6353522 + + + 3 + 4 + 4967687 + + + 4 + 6 + 4754481 + + + 6 + 26 + 4502511 + + + 26 + 178 + 1013695 + + + + + + + endLine + container + + + 12 + + + 1 + 2 + 38559177 + + + 2 + 3 + 10061359 + + + 3 + 4 + 5555940 + + + 4 + 16 + 4585855 + + + 16 + 139 + 926474 + + + + + + + endLine + startLine + + + 12 + + + 1 + 2 + 58619873 + + + 2 + 6 + 1068934 + + + + + + + endLine + startColumn + + + 12 + + + 1 + 2 + 44876842 + + + 2 + 3 + 4054780 + + + 3 + 4 + 3421947 + + + 4 + 7 + 4554844 + + + 7 + 43 + 2780393 + + + + + + + endLine + endColumn + + + 12 + + + 1 + 2 + 38542702 + + + 2 + 3 + 6188773 + + + 3 + 4 + 4997729 + + + 4 + 6 + 4793246 + + + 6 + 28 + 4525770 + + + 28 + 67 + 640585 + + + + + + + endColumn + id + + + 12 + + + 1 + 2 + 52332 + + + 2 + 5 + 22289 + + + 5 + 12 + 25197 + + + 12 + 18 + 24227 + + + 18 + 29 + 22289 + + + 29 + 64 + 22289 + + + 66 + 142 + 22289 + + + 146 + 405 + 22289 + + + 433 + 904 + 22289 + + + 921 + 1929 + 22289 + + + 1937 + 3068 + 22289 + + + 3091 + 32212 + 10660 + + + + + + + endColumn + container + + + 12 + + + 1 + 2 + 64930 + + + 2 + 3 + 17444 + + + 3 + 4 + 18413 + + + 4 + 5 + 15505 + + + 5 + 6 + 24227 + + + 6 + 10 + 25197 + + + 10 + 24 + 22289 + + + 24 + 45 + 23258 + + + 49 + 65 + 23258 + + + 68 + 88 + 23258 + + + 88 + 108 + 22289 + + + 111 + 139 + 10660 + + + + + + + endColumn + startLine + + + 12 + + + 1 + 2 + 53301 + + + 2 + 5 + 22289 + + + 5 + 11 + 21320 + + + 11 + 16 + 22289 + + + 16 + 24 + 23258 + + + 24 + 52 + 22289 + + + 55 + 131 + 22289 + + + 132 + 279 + 22289 + + + 301 + 707 + 22289 + + + 720 + 1623 + 22289 + + + 1623 + 1989 + 22289 + + + 2040 + 30655 + 14536 + + + + + + + endColumn + startColumn + + + 12 + + + 1 + 2 + 86251 + + + 2 + 3 + 17444 + + + 3 + 4 + 15505 + + + 4 + 6 + 22289 + + + 6 + 11 + 21320 + + + 11 + 18 + 22289 + + + 18 + 28 + 22289 + + + 28 + 35 + 22289 + + + 35 + 41 + 19382 + + + 41 + 45 + 22289 + + + 45 + 52 + 19382 @@ -6514,52 +6184,62 @@ 1 2 - 15990 + 53301 2 - 3 - 5996 + 5 + 23258 - 3 - 7 - 4122 + 5 + 11 + 20351 - 7 - 17 - 4372 + 11 + 16 + 22289 - 17 - 36 - 4247 + 16 + 24 + 23258 - 36 - 170 - 4122 + 24 + 52 + 22289 - 173 - 620 - 4122 + 55 + 131 + 22289 - 622 - 1824 - 4122 + 132 + 279 + 22289 - 1843 - 2449 - 4122 + 301 + 706 + 22289 - 2460 - 30688 - 2248 + 718 + 1623 + 23258 + + + 1629 + 2041 + 22289 + + + 2181 + 30652 + 13567 @@ -6569,31 +6249,31 @@ locations_stmt - 5217100 + 9188352 id - 5217100 + 9188352 container - 4164 + 225335 startLine - 273596 + 3533 startColumn - 2560 + 250 endLine - 265745 + 3438 endColumn - 3235 + 463 @@ -6607,7 +6287,7 @@ 1 2 - 5217100 + 9188352 @@ -6623,7 +6303,7 @@ 1 2 - 5217100 + 9188352 @@ -6639,7 +6319,7 @@ 1 2 - 5217100 + 9188352 @@ -6655,7 +6335,7 @@ 1 2 - 5217100 + 9188352 @@ -6671,7 +6351,7 @@ 1 2 - 5217100 + 9188352 @@ -6686,1269 +6366,1079 @@ 1 - 18 - 337 + 6 + 9990 - 18 - 60 - 337 - - - 61 - 180 - 337 - - - 190 - 450 - 337 - - - 454 - 628 - 337 - - - 653 - 883 - 337 - - - 906 - 1161 - 337 - - - 1167 - 1466 - 337 - - - 1508 - 1785 - 337 - - - 1858 - 2296 - 337 - - - 2347 - 2833 - 337 - - - 2871 - 4105 - 337 - - - 4275 - 4993 - 112 - - - - - - - container - startLine - - - 12 - - - 1 - 18 - 337 - - - 18 - 49 - 337 - - - 59 - 170 - 337 - - - 170 - 394 - 337 - - - 434 - 603 - 337 - - - 610 - 846 - 337 - - - 880 - 1132 - 337 - - - 1135 - 1395 - 337 - - - 1409 - 1727 - 337 - - - 1761 - 2226 - 337 - - - 2250 - 2778 - 337 - - - 2800 - 3886 - 337 - - - 3965 - 4846 - 112 - - - - - - - container - startColumn - - - 12 - - - 1 - 3 - 281 - - - 3 - 7 - 309 - - - 7 + 6 9 - 309 + 18036 9 - 11 - 337 + 12 + 15392 - 11 - 13 - 309 - - - 13 - 14 - 309 - - - 14 - 16 - 337 - - - 16 + 12 17 - 225 + 19300 17 - 19 - 281 - - - 19 - 21 - 253 - - - 21 - 23 - 337 - - - 23 - 29 - 337 - - - 29 - 43 - 337 - - - 48 - 60 - 196 - - - - - - - container - endLine - - - 12 - - - 1 - 15 - 337 - - - 15 - 44 - 337 - - - 47 - 137 - 337 - - - 141 - 314 - 337 - - - 328 - 472 - 337 - - - 488 - 643 - 337 - - - 675 - 858 - 365 - - - 865 - 1107 - 337 - - - 1178 - 1343 - 337 - - - 1401 - 1768 - 337 - - - 1782 - 2165 - 337 - - - 2254 - 3130 - 337 - - - 3343 - 3873 - 84 - - - - - - - container - endColumn - - - 12 - - - 1 - 7 - 337 - - - 8 - 26 - 365 - - - 26 - 47 - 365 - - - 47 - 59 - 337 - - - 59 - 64 - 309 - - - 64 - 67 - 281 - - - 67 - 69 - 337 - - - 69 - 71 - 309 - - - 71 - 72 - 337 - - - 72 - 74 - 337 - - - 74 - 76 - 337 - - - 76 - 80 - 337 - - - 81 - 96 - 168 - - - - - - - startLine - id - - - 12 - - - 1 - 2 - 29489 - - - 2 - 3 - 20935 - - - 3 - 4 - 17080 - - - 4 - 6 - 19781 - - - 6 - 8 - 17136 - - - 8 - 11 - 22877 - - - 11 - 16 - 23636 - - - 16 22 - 20991 - - - 22 - 29 - 23299 - - - 29 - 37 - 23749 - - - 37 - 45 - 20682 - - - 45 - 56 - 22201 - - - 56 - 73 - 11734 - - - - - - - startLine - container - - - 12 - - - 1 - 2 - 30530 - - - 2 - 3 - 21526 - - - 3 - 4 - 17361 - - - 4 - 6 - 19697 - - - 6 - 8 - 17418 - - - 8 - 11 - 24058 - - - 11 - 16 - 22398 - - - 16 - 22 - 22201 - - - 22 - 29 - 23214 - - - 29 - 36 - 21920 - - - 36 - 44 - 22370 - - - 44 - 54 - 21723 - - - 54 - 68 - 9173 - - - - - - - startLine - startColumn - - - 12 - - - 1 - 2 - 36721 - - - 2 - 3 - 28533 - - - 3 - 4 - 23017 - - - 4 - 5 - 22032 - - - 5 - 6 - 23861 - - - 6 - 7 - 27182 - - - 7 - 8 - 31149 - - - 8 - 9 - 27970 - - - 9 - 10 - 20485 - - - 10 - 12 - 22764 - - - 12 - 18 - 9876 - - - - - - - startLine - endLine - - - 12 - - - 1 - 2 - 47358 - - - 2 - 3 - 35314 - - - 3 - 4 - 25240 - - - 4 - 5 - 22173 - - - 5 - 6 - 17502 - - - 6 - 7 - 16517 - - - 7 - 8 - 13956 - - - 8 - 9 - 15110 - - - 9 - 10 - 14773 - - - 10 - 11 - 14435 - - - 11 - 12 - 13900 - - - 12 - 14 - 21638 - - - 14 - 24 - 15673 - - - - - - - startLine - endColumn - - - 12 - - - 1 - 2 - 30305 - - - 2 - 3 - 22173 - - - 3 - 4 - 17727 - - - 4 - 6 - 22004 - - - 6 - 8 - 20119 - - - 8 - 10 - 18065 - - - 10 - 14 - 25015 - - - 14 - 18 - 23299 - - - 18 - 22 - 24143 + 19707 22 26 - 25297 - - - 26 - 30 - 22595 - - - 30 - 36 - 20738 - - - 36 - 42 - 2110 - - - - - - - startColumn - id - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 78 - 92 - 196 - - - 92 - 134 - 196 - - - 134 - 228 - 196 - - - 228 - 2062 - 196 - - - 3248 - 40806 - 196 - - - 53241 - 53242 - 28 - - - - - - - startColumn - container - - - 12 - - - 1 - 2 - 393 - - - 2 - 3 - 140 - - - 3 - 5 - 225 - - - 5 - 8 - 225 - - - 8 - 13 - 196 - - - 13 - 18 - 196 - - - 18 - 22 - 196 - - - 22 - 24 - 196 - - - 24 - 29 - 196 - - - 33 - 42 - 196 - - - 47 - 110 - 196 - - - 116 - 148 - 196 - - - - - - - startColumn - startLine - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 77 - 88 - 196 - - - 90 - 131 - 196 - - - 134 - 224 - 196 - - - 226 - 1699 - 196 - - - 2432 - 7900 - 196 - - - 8302 - 8303 - 28 - - - - - - - startColumn - endLine - - - 12 - - - 1 - 2 - 309 - - - 2 - 3 - 196 - - - 3 - 7 - 225 - - - 7 - 12 - 196 - - - 12 - 20 - 225 - - - 21 - 53 - 196 - - - 54 - 74 - 196 - - - 77 - 88 - 196 - - - 90 - 130 - 196 - - - 134 - 221 - 196 - - - 226 - 1414 - 196 - - - 2291 - 7741 - 196 - - - 8096 - 8097 - 28 - - - - - - - startColumn - endColumn - - - 12 - - - 1 - 2 - 393 - - - 2 - 3 - 196 - - - 3 - 4 - 112 - - - 4 - 5 - 225 - - - 5 - 8 - 225 - - - 8 - 11 - 196 - - - 11 - 15 - 225 - - - 15 - 19 - 196 - - - 19 - 26 - 196 - - - 28 - 35 - 196 - - - 41 - 69 - 196 - - - 70 - 104 - 196 - - - - - - - endLine - id - - - 12 - - - 1 - 2 - 23833 - - - 2 - 3 - 19725 - - - 3 - 4 - 15729 - - - 4 - 6 - 21357 - - - 6 - 8 - 17108 - - - 8 - 11 - 21160 - - - 11 - 15 - 20063 - - - 15 - 21 - 22004 - - - 21 - 27 - 21132 - - - 27 - 34 - 20428 - - - 34 - 42 - 21610 - - - 42 - 51 - 19978 - - - 51 - 68 - 20316 - - - 68 - 130 - 1294 - - - - - - - endLine - container - - - 12 - - - 1 - 2 - 34160 - - - 2 - 3 - 22089 - - - 3 - 4 - 17474 - - - 4 - 6 - 21441 - - - 6 - 8 - 20541 - - - 8 - 11 - 21751 - - - 11 - 16 - 23861 - - - 16 - 20 - 19978 - - - 20 - 26 - 23496 + 18519 26 32 - 22286 + 18850 32 39 - 20513 + 17724 39 - 58 - 18149 + 46 + 18137 + + + 46 + 57 + 17285 + + + 57 + 70 + 17074 + + + 70 + 91 + 17214 + + + 91 + 241 + 16916 + + + 241 + 421 + 1185 + + + + + + + container + startLine + + + 12 + + + 1 + 6 + 10006 + + + 6 + 9 + 18470 + + + 9 + 12 + 15844 + + + 12 + 17 + 18953 + + + 17 + 21 + 15743 + + + 21 + 25 + 19715 + + + 25 + 30 + 18055 + + + 30 + 37 + 19081 + + + 37 + 44 + 17781 + + + 44 + 54 + 17443 + + + 54 + 66 + 17500 + + + 66 + 86 + 17247 + + + 86 + 199 + 16907 + + + 199 + 406 + 2582 + + + + + + + container + startColumn + + + 12 + + + 1 + 2 + 5210 + + + 2 + 3 + 55357 + + + 3 + 4 + 47143 + + + 4 + 5 + 40292 + + + 5 + 6 + 25778 + + + 6 + 7 + 29309 + + + 7 + 8 + 16953 + + + 8 + 28 + 5289 + + + + + + + container + endLine + + + 12 + + + 1 + 4 + 7103 + + + 4 + 6 + 16413 + + + 6 + 9 + 19553 + + + 9 + 13 + 17623 + + + 13 + 17 + 18014 + + + 17 + 20 + 14674 + + + 20 + 24 + 16865 + + + 24 + 29 + 18049 + + + 29 + 35 + 18170 + + + 35 + 42 + 19204 + + + 42 + 51 + 17983 + + + 51 + 64 + 18099 + + + 64 + 113 + 16995 + + + 113 + 336 + 6585 + + + + + + + container + endColumn + + + 12 + + + 1 + 3 + 8796 + + + 3 + 4 + 21553 + + + 4 + 6 + 15873 + + + 6 + 7 + 12300 + + + 7 + 8 + 13583 + + + 8 + 9 + 13255 + + + 9 + 10 + 11270 + + + 10 + 11 + 14178 + + + 11 + 12 + 15506 + + + 12 + 13 + 15344 + + + 13 + 14 + 12794 + + + 14 + 16 + 18290 + + + 16 + 18 + 14990 + + + 18 + 26 + 18235 + + + 26 + 33 + 17959 + + + 33 + 68 + 1400 + + + + + + + startLine + id + + + 12 + + + 1 + 2 + 1330 + + + 2 + 3 + 500 + + + 3 + 4 + 248 + + + 4 + 23 + 265 + + + 23 + 220 + 265 + + + 229 + 1001 + 265 + + + 1014 + 4600 + 265 + + + 4642 + 30796 + 265 + + + 31255 + 49199 + 125 + + + + + + + startLine + container + + + 12 + + + 1 + 2 + 1699 + + + 2 + 3 + 353 + + + 3 + 16 + 267 + + + 16 + 135 + 265 + + + 141 + 891 + 265 + + + 896 + 3568 + 265 + + + 3704 + 25127 + 265 + + + 26034 + 46240 + 149 + + + + + + + startLine + startColumn + + + 12 + + + 1 + 2 + 1374 + + + 2 + 3 + 553 + + + 3 + 4 + 267 + + + 4 + 7 + 281 + + + 7 + 10 + 243 + + + 10 + 14 + 298 + + + 14 + 25 + 287 + + + 25 + 36 + 226 + + + + + + + startLine + endLine + + + 12 + + + 1 + 2 + 1980 + + + 2 + 3 + 292 + + + 3 + 8 + 270 + + + 8 + 23 + 292 + + + 23 + 47 + 281 + + + 47 + 70 + 272 + + + 70 + 112 + 144 + + + + + + + startLine + endColumn + + + 12 + + + 1 + 2 + 1387 + + + 2 + 3 + 526 + + + 3 + 4 + 228 + + + 4 + 11 + 285 + + + 11 + 38 + 274 + + + 38 + 63 + 270 + + + 63 + 94 + 272 + + + 94 + 149 + 265 + + + 149 + 179 + 21 + + + + + + + startColumn + id + + + 12 + + + 1 + 2 + 41 + + + 2 + 3 + 21 + + + 3 + 4 + 26 + + + 4 + 5 + 8 + + + 5 + 6 + 17 + + + 6 + 8 + 17 + + + 8 + 12 + 19 + + + 12 + 90 + 19 + + + 140 + 606 + 19 + + + 681 + 1645 + 19 + + + 3968 + 11561 + 19 + + + 11584 + 1372189 + 17 + + + + + + + startColumn + container + + + 12 + + + 1 + 2 + 48 + + + 2 + 3 + 28 + + + 3 + 4 + 30 + + + 4 + 5 + 17 + + + 5 + 6 + 10 + + + 6 + 8 + 19 + + + 8 + 39 + 19 + + + 45 + 220 + 19 + + + 233 + 1699 + 19 + + + 1861 + 5687 + 19 + + + 9654 + 100221 + 15 + + + + + + + startColumn + startLine + + + 12 + + + 1 + 2 + 41 + + + 2 + 3 + 21 + + + 3 + 4 + 26 + + + 4 + 5 + 8 + + + 5 + 6 + 17 + + + 6 + 8 + 17 + + + 8 + 11 + 19 + + + 12 + 52 + 19 + + + 53 + 125 + 19 + + + 131 + 177 + 19 + + + 179 + 386 + 19 + + + 423 + 904 + 17 + + + + + + + startColumn + endLine + + + 12 + + + 1 + 2 + 41 + + + 2 + 3 + 21 + + + 3 + 4 + 26 + + + 4 + 5 + 10 + + + 5 + 7 + 21 + + + 7 + 9 + 17 + + + 9 + 14 + 19 + + + 14 + 71 + 19 + + + 88 + 140 + 19 + + + 140 + 191 + 19 + + + 232 + 543 + 19 + + + 559 + 899 + 10 + + + + + + + startColumn + endColumn + + + 12 + + + 1 + 2 + 54 + + + 2 + 3 + 43 + + + 3 + 4 + 37 + + + 4 + 5 + 28 + + + 5 + 6 + 15 + + + 6 + 8 + 21 + + + 8 + 12 + 19 + + + 13 + 74 + 19 + + + 93 + 198 + 8 + + + + + + + endLine + id + + + 12 + + + 1 + 2 + 1150 + + + 2 + 3 + 606 + + + 3 + 4 + 202 + + + 4 + 15 + 270 + + + 15 + 144 + 259 + + + 149 + 881 + 261 + + + 959 + 3635 + 259 + + + 3657 + 22005 + 259 + + + 22053 + 43062 + 171 + + + + + + + endLine + container + + + 12 + + + 1 + 2 + 1664 + + + 2 + 3 + 353 + + + 3 + 20 + 259 + + + 20 + 196 + 259 + + + 207 + 842 + 259 + + + 846 + 3913 + 259 + + + 3933 + 24449 + 259 + + + 24521 + 35597 + 125 @@ -7964,62 +7454,37 @@ 1 2 - 44459 + 1824 2 3 - 32500 + 298 3 - 4 - 25268 - - - 4 - 5 - 20851 - - - 5 - 6 - 18909 - - - 6 - 7 - 15898 - - - 7 8 - 16292 + 283 8 - 9 - 14969 + 24 + 267 - 9 - 10 - 13956 + 24 + 41 + 267 - 10 - 12 - 24509 + 41 + 57 + 276 - 12 - 15 - 24255 - - - 15 - 100 - 13872 + 57 + 84 + 219 @@ -8035,57 +7500,42 @@ 1 2 - 34160 + 1227 2 3 - 27913 + 627 3 4 - 23045 + 259 4 - 5 - 24396 - - - 5 - 6 - 25409 - - - 6 7 - 28026 + 272 7 - 8 - 30699 - - - 8 - 9 - 25662 - - - 9 10 - 17671 + 245 10 - 12 - 20513 + 14 + 285 - 12 - 18 - 8244 + 14 + 24 + 261 + + + 24 + 36 + 259 @@ -8101,67 +7551,42 @@ 1 2 - 33823 + 1321 2 3 - 22764 + 570 3 - 4 - 17164 + 5 + 278 - 4 - 6 - 24396 + 5 + 17 + 270 - 6 - 8 - 20991 + 17 + 45 + 261 - 8 - 10 - 17530 + 45 + 74 + 267 - 10 - 13 - 19753 + 74 + 108 + 261 - 13 - 16 - 20569 - - - 16 - 19 - 20119 - - - 19 - 22 - 19022 - - - 22 - 26 - 23749 - - - 26 - 31 - 21019 - - - 31 - 39 - 4839 + 108 + 180 + 206 @@ -8176,68 +7601,73 @@ 1 - 2 - 253 + 11 + 37 - 2 - 4 - 253 + 11 + 42 + 35 - 4 - 7 - 225 + 43 + 63 + 35 - 7 - 16 - 253 + 63 + 95 + 35 - 23 - 131 - 253 + 98 + 184 + 35 - 149 - 388 - 253 + 184 + 223 + 35 - 392 - 675 - 253 + 223 + 526 + 35 - 710 - 1137 - 253 + 573 + 1737 + 35 - 1139 - 1672 - 253 + 2000 + 4203 + 35 - 1883 - 2794 - 253 + 4363 + 9065 + 35 - 2937 - 4095 - 253 + 9539 + 29497 + 35 - 4146 - 4771 - 253 + 35135 + 64752 + 35 - 5032 - 15404 - 225 + 66007 + 337354 + 35 + + + 475678 + 685070 + 4 @@ -8252,73 +7682,73 @@ 1 - 2 - 281 - - - 2 - 3 - 253 - - - 3 6 - 253 + 35 6 - 21 - 253 + 23 + 35 - 31 - 67 - 253 + 24 + 51 + 37 - 68 - 93 - 253 + 51 + 72 + 37 - 94 - 106 - 253 + 72 + 154 + 35 - 107 - 112 - 253 + 158 + 200 + 35 - 112 - 118 - 253 + 207 + 389 + 35 - 118 - 122 - 196 + 397 + 1388 + 35 - 122 - 123 - 140 + 1419 + 2381 + 35 - 123 - 124 - 225 + 2453 + 5497 + 35 - 124 - 127 - 253 + 5825 + 14041 + 35 - 127 - 147 - 112 + 14633 + 22330 + 35 + + + 23082 + 73454 + 35 + + + 100181 + 100182 + 2 @@ -8333,68 +7763,68 @@ 1 - 2 - 253 + 3 + 35 - 2 - 4 - 253 + 3 + 10 + 37 - 4 - 7 - 225 + 10 + 14 + 35 - 7 - 15 - 253 + 14 + 38 + 35 - 22 - 129 - 253 + 38 + 57 + 35 - 143 - 374 - 253 + 57 + 67 + 35 - 379 - 646 - 253 + 69 + 125 + 35 - 666 - 963 - 253 + 129 + 191 + 35 - 1000 - 1430 - 253 + 191 + 255 + 35 - 1586 - 2172 - 253 + 261 + 318 + 37 - 2265 - 2916 - 253 + 320 + 407 + 35 - 2948 - 3215 - 253 + 410 + 451 + 37 - 3417 - 5821 - 225 + 459 + 583 + 35 @@ -8410,72 +7840,52 @@ 1 2 - 281 + 142 2 3 - 225 + 32 3 + 4 + 41 + + + 4 5 - 281 + 32 5 + 6 + 32 + + + 6 8 - 253 + 30 8 - 12 - 253 + 11 + 37 - 12 - 14 - 168 + 11 + 13 + 39 - 14 + 13 16 - 253 + 41 16 - 19 - 168 - - - 19 - 21 - 225 - - - 21 - 23 - 253 - - - 23 - 25 - 253 - - - 25 - 28 - 253 - - - 28 - 33 - 281 - - - 45 - 57 - 84 + 29 + 30 @@ -8490,68 +7900,68 @@ 1 - 2 - 281 + 3 + 35 - 2 - 4 - 225 + 3 + 10 + 37 - 4 - 7 - 281 + 10 + 14 + 35 - 7 - 27 - 253 + 14 + 38 + 35 - 42 + 38 + 57 + 37 + + + 57 + 70 + 35 + + + 70 130 - 253 + 35 - 139 - 325 - 253 + 134 + 192 + 35 - 364 - 584 - 253 + 197 + 262 + 37 - 610 - 967 - 253 + 262 + 321 + 35 - 1056 - 1409 - 253 + 322 + 406 + 35 - 1420 - 2038 - 253 + 408 + 451 + 35 - 2065 - 2627 - 253 - - - 2651 - 3073 - 253 - - - 3086 - 4516 - 168 + 459 + 566 + 35 @@ -8561,11 +7971,11 @@ locations_expr - 18007923 + 18007924 id - 18007923 + 18007924 container @@ -8599,7 +8009,7 @@ 1 2 - 18007923 + 18007924 @@ -8615,7 +8025,7 @@ 1 2 - 18007923 + 18007924 @@ -8631,7 +8041,7 @@ 1 2 - 18007923 + 18007924 @@ -8647,7 +8057,7 @@ 1 2 - 18007923 + 18007924 @@ -8663,7 +8073,7 @@ 1 2 - 18007923 + 18007924 @@ -10488,23 +9898,23 @@ numlines - 808529 + 1153975 element_id - 807405 + 1153975 num_lines - 39477 + 41381 num_code - 33980 + 35794 num_comment - 18364 + 16762 @@ -10518,12 +9928,7 @@ 1 2 - 806280 - - - 2 - 3 - 1124 + 1153975 @@ -10539,12 +9944,7 @@ 1 2 - 806280 - - - 2 - 3 - 1124 + 1153975 @@ -10560,12 +9960,7 @@ 1 2 - 807155 - - - 2 - 3 - 249 + 1153975 @@ -10581,27 +9976,37 @@ 1 2 - 26734 + 21825 2 3 - 3747 + 5238 3 + 4 + 3317 + + + 4 5 - 3373 + 2968 5 - 37 - 3123 + 9 + 3492 - 41 - 1978 - 2498 + 9 + 60 + 3317 + + + 139 + 1502 + 1222 @@ -10617,181 +10022,196 @@ 1 2 - 27234 + 23746 2 3 - 4122 + 6635 3 4 - 2498 + 3492 4 - 7 - 3497 - - - 7 - 12 - 2123 - - - - - - - num_lines - num_comment - - - 12 - - - 1 - 2 - 26859 - - - 2 - 3 - 4122 - - - 3 - 4 - 2498 - - - 4 - 6 - 3123 - - - 6 - 11 - 2873 - - - - - - - num_code - element_id - - - 12 - - - 1 - 2 - 21612 - - - 2 - 3 - 3747 - - - 3 - 4 - 2373 - - - 4 - 13 - 2873 - - - 14 - 197 - 2623 - - - 205 - 2101 - 749 - - - - - - - num_code - num_lines - - - 12 - - - 1 - 2 - 21987 - - - 2 - 3 - 3747 - - - 3 - 4 - 2123 - - - 4 - 6 - 1873 - - - 6 - 9 - 2748 - - - 9 - 13 - 1499 - - - - - - - num_code - num_comment - - - 12 - - - 1 - 2 - 21737 - - - 2 - 3 - 4372 - - - 3 5 - 2873 + 3841 5 8 - 3123 + 3492 8 + 9 + 174 + + + + + + + num_lines + num_comment + + + 12 + + + 1 + 2 + 23397 + + + 2 + 3 + 7508 + + + 3 + 4 + 4539 + + + 4 + 5 + 3142 + + + 5 + 10 + 2793 + + + + + + + num_code + element_id + + + 12 + + + 1 + 2 + 18857 + + + 2 + 3 + 4190 + + + 3 + 4 + 3841 + + + 4 + 7 + 2793 + + + 7 + 18 + 2793 + + + 18 + 928 + 2793 + + + 1043 + 1509 + 523 + + + + + + + num_code + num_lines + + + 12 + + + 1 + 2 + 19905 + + + 2 + 3 + 5238 + + + 3 + 4 + 4015 + + + 4 + 6 + 2793 + + + 6 + 10 + 3142 + + + 10 12 - 1873 + 698 + + + + + + + num_code + num_comment + + + 12 + + + 1 + 2 + 20079 + + + 2 + 3 + 4888 + + + 3 + 4 + 4365 + + + 4 + 5 + 1746 + + + 5 + 7 + 2793 + + + 7 + 11 + 1920 @@ -10807,32 +10227,37 @@ 1 2 - 11368 + 7857 2 3 - 1748 + 2269 3 4 - 1499 + 1396 4 7 - 1374 + 1396 - 8 - 22 - 1499 + 7 + 9 + 1047 - 42 - 3650 - 874 + 9 + 19 + 1396 + + + 22 + 5980 + 1396 @@ -10848,32 +10273,42 @@ 1 2 - 11368 + 7857 2 3 - 1748 + 2269 3 4 - 1499 + 1396 4 - 7 - 1499 + 6 + 1396 + + + 6 + 8 + 349 8 - 27 - 1499 + 9 + 1222 - 30 - 48 - 749 + 9 + 17 + 1396 + + + 17 + 54 + 873 @@ -10889,32 +10324,37 @@ 1 2 - 11368 + 7857 2 3 - 1748 + 2269 3 4 - 1748 + 1396 4 + 6 + 1396 + + + 6 9 - 1499 + 1396 - 10 - 36 - 1624 + 9 + 16 + 1396 - 36 - 43 - 374 + 18 + 51 + 1047 @@ -10924,31 +10364,31 @@ diagnostics - 1484 + 2936 id - 1484 + 2936 severity - 21 + 51 error_tag - 43 + 103 error_message - 150 + 103 full_error_message - 150 + 103 location - 64 + 103 @@ -10962,7 +10402,7 @@ 1 2 - 1484 + 2936 @@ -10978,7 +10418,7 @@ 1 2 - 1484 + 2936 @@ -10994,7 +10434,7 @@ 1 2 - 1484 + 2936 @@ -11010,7 +10450,7 @@ 1 2 - 1484 + 2936 @@ -11026,7 +10466,7 @@ 1 2 - 1484 + 2936 @@ -11040,9 +10480,9 @@ 12 - 69 - 70 - 21 + 57 + 58 + 51 @@ -11058,7 +10498,7 @@ 2 3 - 21 + 51 @@ -11071,142 +10511,127 @@ 12 - - 7 - 8 - 21 - - - - - - - severity - full_error_message - - - 12 - - - 7 - 8 - 21 - - - - - - - severity - location - - - 12 - - - 3 - 4 - 21 - - - - - - - error_tag - id - - - 12 - - - 6 - 7 - 21 - - - 63 - 64 - 21 - - - - - - - error_tag - severity - - - 12 - - - 1 - 2 - 43 - - - - - - - error_tag - error_message - - - 12 - - - 1 - 2 - 21 - - - 6 - 7 - 21 - - - - - - - error_tag - full_error_message - - - 12 - - - 1 - 2 - 21 - - - 6 - 7 - 21 - - - - - - - error_tag - location - - - 12 - - - 1 - 2 - 21 - 2 3 - 21 + 51 + + + + + + + severity + full_error_message + + + 12 + + + 2 + 3 + 51 + + + + + + + severity + location + + + 12 + + + 2 + 3 + 51 + + + + + + + error_tag + id + + + 12 + + + 1 + 2 + 51 + + + 56 + 57 + 51 + + + + + + + error_tag + severity + + + 12 + + + 1 + 2 + 103 + + + + + + + error_tag + error_message + + + 12 + + + 1 + 2 + 103 + + + + + + + error_tag + full_error_message + + + 12 + + + 1 + 2 + 103 + + + + + + + error_tag + location + + + 12 + + + 1 + 2 + 103 @@ -11222,12 +10647,12 @@ 1 2 - 129 + 51 - 63 - 64 - 21 + 56 + 57 + 51 @@ -11243,7 +10668,7 @@ 1 2 - 150 + 103 @@ -11259,7 +10684,7 @@ 1 2 - 150 + 103 @@ -11275,7 +10700,7 @@ 1 2 - 150 + 103 @@ -11291,7 +10716,7 @@ 1 2 - 150 + 103 @@ -11307,12 +10732,12 @@ 1 2 - 129 + 51 - 63 - 64 - 21 + 56 + 57 + 51 @@ -11328,7 +10753,7 @@ 1 2 - 150 + 103 @@ -11344,7 +10769,7 @@ 1 2 - 150 + 103 @@ -11360,7 +10785,7 @@ 1 2 - 150 + 103 @@ -11376,7 +10801,7 @@ 1 2 - 150 + 103 @@ -11390,14 +10815,14 @@ 12 - 3 - 4 - 43 + 1 + 2 + 51 - 63 - 64 - 21 + 56 + 57 + 51 @@ -11413,7 +10838,7 @@ 1 2 - 64 + 103 @@ -11429,7 +10854,7 @@ 1 2 - 64 + 103 @@ -11445,12 +10870,7 @@ 1 2 - 21 - - - 3 - 4 - 43 + 103 @@ -11466,12 +10886,7 @@ 1 2 - 21 - - - 3 - 4 - 43 + 103 @@ -11481,15 +10896,15 @@ files - 74641 + 230754 id - 74641 + 230754 name - 74641 + 230754 @@ -11503,7 +10918,7 @@ 1 2 - 74641 + 230754 @@ -11519,7 +10934,7 @@ 1 2 - 74641 + 230754 @@ -11529,15 +10944,15 @@ folders - 14181 + 22981 id - 14181 + 22981 name - 14181 + 22981 @@ -11551,7 +10966,7 @@ 1 2 - 14181 + 22981 @@ -11567,7 +10982,7 @@ 1 2 - 14181 + 22981 @@ -11577,15 +10992,15 @@ containerparent - 88798 + 231298 parent - 14181 + 548 child - 88798 + 231298 @@ -11599,42 +11014,72 @@ 1 2 - 6903 + 32 2 - 3 - 1740 - - - 3 4 - 761 + 48 4 - 6 - 1148 - - - 6 - 10 - 1112 - - - 10 - 16 - 1148 + 14 + 41 16 - 44 - 1063 + 17 + 4 - 44 - 151 - 302 + 18 + 19 + 54 + + + 19 + 55 + 41 + + + 63 + 159 + 41 + + + 164 + 345 + 41 + + + 352 + 697 + 41 + + + 774 + 931 + 21 + + + 946 + 949 + 41 + + + 950 + 983 + 39 + + + 984 + 985 + 74 + + + 992 + 1009 + 21 @@ -11650,7 +11095,7 @@ 1 2 - 88798 + 231298 @@ -11660,23 +11105,23 @@ fileannotations - 4807876 + 29052092 id - 6600 + 219955 kind - 24 + 4 name - 67206 + 10170 value - 45227 + 1159 @@ -11687,15 +11132,10 @@ 12 - - 1 - 2 - 229 - 2 3 - 6371 + 219955 @@ -11709,437 +11149,327 @@ 12 - 1 - 86 - 495 + 39 + 40 + 45059 - 88 - 206 - 495 - - - 212 - 291 - 507 - - - 291 - 359 - 495 - - - 362 - 401 - 495 - - - 402 - 479 - 495 - - - 480 - 549 - 290 - - - 550 - 551 - 1523 - - - 553 - 628 - 495 - - - 631 - 753 - 519 - - - 753 - 1231 - 507 - - - 1234 - 2155 - 278 - - - - - - - id - value - - - 12 - - - 1 - 98 - 495 - - - 102 - 244 - 495 - - - 244 - 351 - 495 - - - 352 - 434 - 507 - - - 434 - 490 - 507 - - - 490 - 628 - 495 - - - 632 - 702 - 72 - - - 706 - 707 - 1523 - - - 710 - 939 - 495 - - - 939 - 1038 - 495 - - - 1066 - 1853 - 495 - - - 1853 - 3292 - 495 - - - 3423 - 3742 - 24 - - - - - - - kind - id - - - 12 - - - 527 - 528 - 12 - - - 546 - 547 - 12 - - - - - - - kind - name - - - 12 - - - 2 - 3 - 12 - - - 5557 - 5558 - 12 - - - - - - - kind - value - - - 12 - - - 1 - 2 - 12 - - - 3741 - 3742 - 12 - - - - - - - name - id - - - 12 - - - 1 - 2 - 12621 - - - 2 - 3 - 4993 - - - 3 - 5 - 5790 - - - 5 - 7 - 4690 - - - 7 - 9 - 5258 - - - 9 - 16 - 4956 - - - 16 - 19 - 5597 - - - 19 - 27 - 4872 - - - 27 - 47 - 5537 - - - 47 - 128 - 5633 - - - 128 - 459 - 5295 - - - 459 - 546 - 1958 - - - - - - - name - kind - - - 12 - - - 1 - 2 - 67206 - - - - - - - name - value - - - 12 - - - 1 - 2 - 13262 - - - 2 - 3 - 8801 - - - 3 - 4 - 4690 - - - 4 - 6 - 4654 - - - 6 - 8 - 3917 - - - 8 - 11 - 5428 - - - 11 - 17 - 6177 - - - 17 - 23 - 5379 - - - 23 + 40 41 - 5355 + 3627 41 - 95 - 5113 + 42 + 35646 - 95 - 1726 - 4424 - - - - - - - value - id - - - 12 - - - 1 - 2 - 3844 + 42 + 44 + 8027 - 2 - 4 - 1873 + 56 + 57 + 22807 - 4 - 5 - 3651 - - - 5 - 8 - 2816 - - - 8 - 14 - 3397 - - - 14 - 17 - 2212 - - - 17 - 24 - 3481 - - - 24 - 51 - 4050 - - - 51 + 57 58 - 3469 + 14290 58 - 80 - 3409 + 59 + 18547 - 81 - 151 - 3530 + 59 + 89 + 18022 - 151 - 334 - 3409 + 89 + 173 + 17311 - 334 - 473 - 3433 + 174 + 178 + 18488 - 473 - 547 - 2647 + 179 + 276 + 18055 + + + 276 + 277 + 70 + + + + + + + id + value + + + 12 + + + 48 + 49 + 45059 + + + 49 + 51 + 3155 + + + 51 + 52 + 35828 + + + 52 + 54 + 8317 + + + 69 + 70 + 22807 + + + 70 + 72 + 14261 + + + 72 + 73 + 18514 + + + 73 + 102 + 18051 + + + 102 + 409 + 17344 + + + 411 + 416 + 18132 + + + 417 + 528 + 18411 + + + 528 + 529 + 70 + + + + + + + kind + id + + + 12 + + + 100172 + 100173 + 4 + + + + + + + kind + name + + + 12 + + + 2 + 3 + 2 + + + 4630 + 4631 + 2 + + + + + + + kind + value + + + 12 + + + 1 + 2 + 2 + + + 528 + 529 + 2 + + + + + + + name + id + + + 12 + + + 1 + 2 + 72 + + + 3 + 4 + 5911 + + + 4 + 5 + 3442 + + + 18 + 100173 + 744 + + + + + + + name + kind + + + 12 + + + 1 + 2 + 10170 + + + + + + + name + value + + + 12 + + + 1 + 2 + 9202 + + + 2 + 24 + 797 + + + 24 + 397 + 171 + + + + + + + value + id + + + 12 + + + 32 + 33 + 2 + + + 960 + 961 + 109 + + + 1014 + 2296 + 87 + + + 2419 + 16676 + 63 + + + 18355 + 18356 + 513 + + + 18395 + 20335 + 94 + + + 20388 + 25553 + 68 + + + 26531 + 58110 + 103 + + + 60781 + 79652 + 10 + + + 100172 + 100173 + 105 @@ -12155,12 +11485,12 @@ 1 2 - 45215 + 1157 2 3 - 12 + 2 @@ -12176,72 +11506,77 @@ 1 2 - 3892 + 2 2 - 4 - 2188 + 3 + 109 - 4 - 5 - 3493 - - - 5 + 3 8 - 2841 + 65 8 + 9 + 59 + + + 9 + 10 + 68 + + + 10 + 11 + 109 + + + 11 + 12 + 85 + + + 12 14 - 3989 + 105 14 + 16 + 76 + + + 16 18 - 3953 + 90 18 - 28 - 3663 + 21 + 103 - 28 - 34 - 3602 + 21 + 24 + 92 - 34 - 41 - 3663 + 24 + 27 + 76 - 41 - 66 - 3421 + 27 + 33 + 92 - 66 - 92 - 3518 - - - 92 - 113 - 3421 - - - 113 - 145 - 3469 - - - 145 - 172 - 108 + 33 + 4319 + 21 @@ -12251,15 +11586,15 @@ inmacroexpansion - 149995966 + 149995978 id - 24670876 + 24670878 inv - 3705264 + 3705265 @@ -12293,7 +11628,7 @@ 7 8 - 8719001 + 8719002 8 @@ -12379,15 +11714,15 @@ affectedbymacroexpansion - 48735844 + 73932090 id - 7044741 + 5343163 inv - 3803122 + 9717793 @@ -12401,37 +11736,47 @@ 1 2 - 3846709 + 2178250 2 3 - 766305 + 606526 3 4 - 361841 + 335791 4 - 5 - 772736 + 7 + 434209 - 5 - 12 - 535160 + 7 + 18 + 471017 - 12 - 50 - 556267 + 18 + 25 + 458480 - 50 - 9900 - 205719 + 25 + 35 + 449158 + + + 35 + 488 + 401009 + + + 489 + 4499 + 8720 @@ -12446,68 +11791,48 @@ 1 + 2 + 474340 + + + 2 4 - 313248 + 713165 4 + 6 + 786996 + + + 6 7 - 316607 + 601737 7 + 8 + 1284648 + + + 8 9 - 301088 + 3310258 9 + 11 + 733734 + + + 11 12 - 342938 + 1408336 12 - 13 - 456004 - - - 13 - 14 - 226099 - - - 14 - 15 - 408038 - - - 15 - 16 - 166429 - - - 16 - 17 - 377677 - - - 17 - 18 - 200636 - - - 18 - 20 - 344255 - - - 20 - 25 - 285393 - - - 25 - 207 - 64702 + 185 + 404576 @@ -12517,23 +11842,23 @@ macroinvocations - 39390675 + 180467764 id - 39390675 + 180467764 macro_id - 181997 + 704547 location - 5904643 + 29969904 kind - 108 + 1938 @@ -12547,7 +11872,7 @@ 1 2 - 39390675 + 180467764 @@ -12563,7 +11888,7 @@ 1 2 - 39390675 + 180467764 @@ -12579,7 +11904,7 @@ 1 2 - 39390675 + 180467764 @@ -12595,98 +11920,113 @@ 1 2 - 60738 + 176379 2 3 - 27781 + 100788 3 4 - 17921 + 39733 4 - 5 - 9805 + 6 + 52332 - 5 - 7 - 14272 - - - 7 - 13 - 14381 - - - 13 - 33 - 13890 - - - 33 - 185 - 13672 - - - 190 - 70079 - 9532 - - - - - - - macro_id - location - - - 12 - - - 1 - 2 - 77243 - - - 2 - 3 - 30559 - - - 3 - 4 - 14326 - - - 4 - 5 - 10350 - - - 5 + 6 8 - 14054 + 44579 8 - 18 - 14108 + 13 + 56208 - 18 - 88 - 13672 + 13 + 25 + 55239 - 88 - 12162 - 7680 + 25 + 56 + 53301 + + + 56 + 134 + 54270 + + + 136 + 844 + 53301 + + + 846 + 19520 + 18413 + + + + + + + macro_id + location + + + 12 + + + 1 + 2 + 231618 + + + 2 + 3 + 116293 + + + 3 + 4 + 52332 + + + 4 + 6 + 61054 + + + 6 + 9 + 54270 + + + 9 + 16 + 58146 + + + 16 + 43 + 54270 + + + 44 + 262 + 53301 + + + 263 + 6926 + 23258 @@ -12702,12 +12042,12 @@ 1 2 - 177475 + 678381 2 3 - 4521 + 26166 @@ -12723,17 +12063,12 @@ 1 2 - 5248396 + 29347732 2 - 3 - 248074 - - - 3 - 70079 - 408172 + 19520 + 622172 @@ -12749,12 +12084,12 @@ 1 2 - 5882472 + 29966997 2 - 37 - 22170 + 3 + 2907 @@ -12770,7 +12105,7 @@ 1 2 - 5904643 + 29969904 @@ -12784,14 +12119,14 @@ 12 - 1470 - 1471 - 54 + 617 + 618 + 969 - 721641 - 721642 - 54 + 185602 + 185603 + 969 @@ -12805,14 +12140,14 @@ 12 - 281 - 282 - 54 + 70 + 71 + 969 - 3143 - 3144 - 54 + 684 + 685 + 969 @@ -12826,14 +12161,14 @@ 12 - 1060 - 1061 - 54 + 577 + 578 + 969 - 107334 - 107335 - 54 + 30348 + 30349 + 969 @@ -12843,15 +12178,15 @@ macroparent - 32844710 + 153017561 id - 32844710 + 153017561 parent_id - 15561449 + 67977654 @@ -12865,7 +12200,7 @@ 1 2 - 32844710 + 153017561 @@ -12881,27 +12216,27 @@ 1 2 - 7669107 + 28392183 2 3 - 1551198 + 5737165 3 4 - 4552710 + 23312079 4 5 - 1263086 + 10038100 5 - 205 - 525346 + 14 + 498125 @@ -12911,15 +12246,15 @@ macrolocationbind - 6883157 + 6882831 id - 4222542 + 4222159 location - 2746954 + 2747013 @@ -12933,12 +12268,12 @@ 1 2 - 2460116 + 2459695 2 3 - 1326251 + 1326280 3 @@ -12948,7 +12283,7 @@ 4 5 - 413540 + 413549 5 @@ -12969,12 +12304,12 @@ 1 2 - 1393959 + 1393989 2 3 - 907138 + 907158 3 @@ -12984,7 +12319,7 @@ 4 5 - 410829 + 410838 5 @@ -12999,19 +12334,19 @@ macro_argument_unexpanded - 94276712 + 205272282 invocation - 30002299 + 104596662 argument_index - 797 + 15505 text - 392900 + 4863022 @@ -13025,22 +12360,27 @@ 1 2 - 11044782 + 64885206 2 3 - 11156139 + 1060212 3 4 - 5707682 + 19056692 4 - 67 - 2093693 + 5 + 19214657 + + + 6 + 17 + 379893 @@ -13056,22 +12396,27 @@ 1 2 - 11253824 + 64952075 2 3 - 11175326 + 1029200 3 4 - 5529264 + 19161356 4 - 67 - 2043884 + 5 + 19075105 + + + 6 + 16 + 378924 @@ -13085,19 +12430,79 @@ 12 - 46457 - 46458 - 701 + 2 + 3 + 969 - 46659 - 173182 - 60 + 5 + 6 + 969 - 645295 - 2481657 - 36 + 7 + 8 + 969 + + + 17 + 18 + 969 + + + 294 + 295 + 969 + + + 315 + 316 + 969 + + + 320 + 321 + 969 + + + 329 + 330 + 969 + + + 360 + 361 + 969 + + + 372 + 373 + 969 + + + 392 + 393 + 1938 + + + 20219 + 20220 + 969 + + + 39883 + 39884 + 969 + + + 40977 + 40978 + 969 + + + 107930 + 107931 + 969 @@ -13111,19 +12516,79 @@ 12 - 2 - 3 - 701 + 1 + 2 + 969 - 13 - 1115 - 60 + 4 + 5 + 969 - 7702 - 22873 - 36 + 5 + 6 + 969 + + + 9 + 10 + 969 + + + 166 + 167 + 969 + + + 190 + 191 + 969 + + + 200 + 201 + 1938 + + + 203 + 204 + 969 + + + 204 + 205 + 969 + + + 206 + 207 + 969 + + + 210 + 211 + 969 + + + 283 + 284 + 969 + + + 1168 + 1169 + 969 + + + 1403 + 1404 + 969 + + + 1903 + 1904 + 969 @@ -13139,57 +12604,37 @@ 1 2 - 46351 + 2082629 2 3 - 71401 + 1045675 3 4 - 26476 + 323684 4 5 - 39714 + 393460 5 - 6 - 44779 + 8 + 351789 - 6 - 9 - 32714 + 8 + 17 + 371171 - 9 - 15 - 32847 - - - 15 - 27 - 29933 - - - 27 - 57 - 30441 - - - 57 - 517 - 29680 - - - 518 - 485092 - 8559 + 17 + 19520 + 294611 @@ -13205,17 +12650,17 @@ 1 2 - 278339 + 4290275 2 - 3 - 102870 + 4 + 380862 - 3 - 9 - 11690 + 4 + 13 + 191884 @@ -13225,19 +12670,19 @@ macro_argument_expanded - 94276712 + 205272282 invocation - 30002299 + 104596662 argument_index - 797 + 15505 text - 237996 + 1150340 @@ -13251,22 +12696,27 @@ 1 2 - 11044782 + 64885206 2 3 - 11156139 + 1060212 3 4 - 5707682 + 19056692 4 - 67 - 2093693 + 5 + 19214657 + + + 6 + 17 + 379893 @@ -13282,22 +12732,12 @@ 1 2 - 14421415 + 102448132 2 - 3 - 9625327 - - - 3 - 4 - 4822818 - - - 4 - 9 - 1132737 + 14 + 2148529 @@ -13311,19 +12751,79 @@ 12 - 46457 - 46458 - 701 + 2 + 3 + 969 - 46659 - 173182 - 60 + 5 + 6 + 969 - 645295 - 2481657 - 36 + 7 + 8 + 969 + + + 17 + 18 + 969 + + + 294 + 295 + 969 + + + 315 + 316 + 969 + + + 320 + 321 + 969 + + + 329 + 330 + 969 + + + 360 + 361 + 969 + + + 372 + 373 + 969 + + + 392 + 393 + 1938 + + + 20219 + 20220 + 969 + + + 39883 + 39884 + 969 + + + 40977 + 40978 + 969 + + + 107930 + 107931 + 969 @@ -13339,17 +12839,77 @@ 1 2 - 689 + 969 - 2 - 96 - 60 + 4 + 5 + 969 - 950 - 16176 - 48 + 5 + 6 + 969 + + + 7 + 8 + 969 + + + 13 + 14 + 969 + + + 14 + 15 + 969 + + + 17 + 18 + 969 + + + 18 + 19 + 969 + + + 20 + 21 + 969 + + + 22 + 23 + 969 + + + 28 + 29 + 1938 + + + 50 + 51 + 969 + + + 57 + 58 + 969 + + + 179 + 180 + 969 + + + 997 + 998 + 969 @@ -13365,57 +12925,37 @@ 1 2 - 25243 + 539797 2 3 - 31324 + 242278 3 4 - 52203 + 31980 4 5 - 18400 + 116293 5 - 6 - 3542 + 9 + 93035 - 6 - 7 - 20842 + 9 + 43 + 88189 - 7 - 10 - 19355 - - - 10 - 19 - 20576 - - - 19 - 51 - 17856 - - - 51 - 253 - 17989 - - - 254 - 1166783 - 10663 + 44 + 83453 + 38764 @@ -13431,17 +12971,17 @@ 1 2 - 120279 + 996250 2 3 - 101770 + 120170 3 - 66 - 15946 + 13 + 33919 @@ -13451,19 +12991,19 @@ functions - 4010790 + 7629848 id - 4010790 + 7629848 name - 1648540 + 4518986 kind - 999 + 5814 @@ -13477,7 +13017,7 @@ 1 2 - 4010790 + 7629848 @@ -13493,7 +13033,7 @@ 1 2 - 4010790 + 7629848 @@ -13509,17 +13049,12 @@ 1 2 - 1402308 + 4307719 2 - 4 - 139168 - - - 4 - 3162 - 107062 + 2658 + 211267 @@ -13535,12 +13070,7 @@ 1 2 - 1645667 - - - 2 - 3 - 2873 + 4518986 @@ -13554,44 +13084,34 @@ 12 - 8 - 9 - 124 + 2 + 3 + 969 - 13 - 14 - 124 + 7 + 8 + 969 - 47 - 48 - 124 + 36 + 37 + 969 - 83 - 84 - 124 + 88 + 89 + 969 - 690 - 691 - 124 + 2770 + 2771 + 969 - 4450 - 4451 - 124 - - - 5230 - 5231 - 124 - - - 21584 - 21585 - 124 + 4970 + 4971 + 969 @@ -13607,42 +13127,32 @@ 2 3 - 124 + 969 - 13 - 14 - 124 + 4 + 5 + 969 - 18 - 19 - 124 + 16 + 17 + 969 - 41 - 42 - 124 + 24 + 25 + 969 - 43 - 44 - 124 + 35 + 36 + 969 - 302 - 303 - 124 - - - 504 - 505 - 124 - - - 12296 - 12297 - 124 + 4582 + 4583 + 969 @@ -13652,15 +13162,15 @@ function_entry_point - 1141046 + 1141563 id - 1137298 + 1137815 entry_point - 1141046 + 1141563 @@ -13674,12 +13184,12 @@ 1 2 - 1134095 + 1134613 2 17 - 3203 + 3202 @@ -13695,7 +13205,7 @@ 1 2 - 1141046 + 1141563 @@ -13705,15 +13215,15 @@ function_return_type - 4028280 + 7629848 id - 4010790 + 7629848 return_type - 622887 + 1538955 @@ -13727,12 +13237,7 @@ 1 2 - 3993300 - - - 2 - 3 - 17489 + 7629848 @@ -13748,27 +13253,22 @@ 1 2 - 312942 + 94973 2 3 - 213500 + 1308306 3 - 5 - 48471 + 29 + 116293 - 5 - 354 - 46722 - - - 358 - 9897 - 1249 + 32 + 1445 + 19382 @@ -14048,59 +13548,59 @@ purefunctions - 138721 + 131414 id - 138721 + 131414 function_deleted - 88082 + 88088 id - 88082 + 88088 function_defaulted - 51679 + 51682 id - 51679 + 51682 function_prototyped - 4009291 + 7627910 id - 4009291 + 7627910 deduction_guide_for_class - 5871 + 5868 id - 5871 + 5868 class_template - 2248 + 2247 @@ -14114,7 +13614,7 @@ 1 2 - 5871 + 5868 @@ -14130,7 +13630,7 @@ 1 2 - 1124 + 1123 2 @@ -14165,15 +13665,15 @@ member_function_this_type - 676231 + 687951 id - 676231 + 687951 this_type - 177646 + 173971 @@ -14187,7 +13687,7 @@ 1 2 - 676231 + 687951 @@ -14203,37 +13703,42 @@ 1 2 - 48721 + 49909 2 3 - 36853 + 49542 3 4 - 32855 + 24587 4 5 - 19988 + 9670 5 6 - 12867 + 6786 6 - 10 - 14491 + 8 + 15829 - 10 - 65 - 11868 + 8 + 21 + 13253 + + + 21 + 868 + 4394 @@ -14243,27 +13748,27 @@ fun_decls - 4155705 + 7853714 id - 4149709 + 7853714 function - 3986304 + 7627910 type_id - 614892 + 1538955 name - 1647041 + 4517048 location - 2769887 + 6410700 @@ -14277,7 +13782,7 @@ 1 2 - 4149709 + 7853714 @@ -14293,12 +13798,7 @@ 1 2 - 4143712 - - - 2 - 3 - 5996 + 7853714 @@ -14314,7 +13814,7 @@ 1 2 - 4149709 + 7853714 @@ -14330,7 +13830,7 @@ 1 2 - 4149709 + 7853714 @@ -14346,12 +13846,12 @@ 1 2 - 3836266 + 7405013 2 4 - 150037 + 222896 @@ -14367,12 +13867,7 @@ 1 2 - 3967815 - - - 2 - 3 - 18489 + 7627910 @@ -14388,7 +13883,7 @@ 1 2 - 3986304 + 7627910 @@ -14404,12 +13899,12 @@ 1 2 - 3843012 + 7405013 2 4 - 143291 + 222896 @@ -14425,27 +13920,22 @@ 1 2 - 298201 + 93035 2 3 - 220371 + 1309275 3 - 5 - 48846 + 30 + 116293 - 5 - 354 - 46223 - - - 358 - 10246 - 1249 + 32 + 1445 + 20351 @@ -14461,27 +13951,22 @@ 1 2 - 308320 + 94973 2 3 - 211626 + 1308306 3 - 5 - 48471 + 29 + 116293 - 5 - 1033 - 46223 - - - 1483 - 9847 - 249 + 32 + 1445 + 19382 @@ -14497,22 +13982,17 @@ 1 2 - 494587 + 1376144 2 - 3 - 52719 + 9 + 116293 - 3 - 7 - 51095 - - - 7 - 2211 - 16490 + 9 + 1445 + 46517 @@ -14528,199 +14008,174 @@ 1 2 - 457983 + 1385835 + + + 2 + 15 + 116293 + + + 16 + 1445 + 36826 + + + + + + + name + id + + + 12 + + + 1 + 2 + 4178827 + + + 2 + 2658 + 338221 + + + + + + + name + function + + + 12 + + + 1 + 2 + 4305781 + + + 2 + 2658 + 211267 + + + + + + + name + type_id + + + 12 + + + 1 + 2 + 4457932 + + + 2 + 1335 + 59116 + + + + + + + name + location + + + 12 + + + 1 + 2 + 4180765 + + + 2 + 1342 + 336283 + + + + + + + location + id + + + 12 + + + 1 + 2 + 5098517 2 3 - 69459 + 1270510 3 + 9 + 41671 + + + + + + + location + function + + + 12 + + + 1 + 2 + 5098517 + + + 2 + 3 + 1270510 + + + 3 + 9 + 41671 + + + + + + + location + type_id + + + 12 + + + 1 + 2 + 6382596 + + + 2 6 - 55842 - - - 6 - 4728 - 31606 - - - - - - - name - id - - - 12 - - - 1 - 2 - 1297744 - - - 2 - 3 - 183892 - - - 3 - 10 - 125551 - - - 10 - 3169 - 39851 - - - - - - - name - function - - - 12 - - - 1 - 2 - 1401809 - - - 2 - 4 - 139543 - - - 4 - 3162 - 105688 - - - - - - - name - type_id - - - 12 - - - 1 - 2 - 1556968 - - - 2 - 1596 - 90072 - - - - - - - name - location - - - 12 - - - 1 - 2 - 1322105 - - - 2 - 3 - 208503 - - - 3 - 1592 - 116432 - - - - - - - location - id - - - 12 - - - 1 - 2 - 2390108 - - - 2 - 3 - 237736 - - - 3 - 211 - 142042 - - - - - - - location - function - - - 12 - - - 1 - 2 - 2393856 - - - 2 - 3 - 234488 - - - 3 - 211 - 141542 - - - - - - - location - type_id - - - 12 - - - 1 - 2 - 2654579 - - - 2 - 211 - 115307 + 28104 @@ -14736,12 +14191,12 @@ 1 2 - 2730660 + 6386472 2 8 - 39227 + 24227 @@ -14751,22 +14206,22 @@ fun_def - 1413177 + 1423569 id - 1413177 + 1423569 fun_specialized - 8435 + 11966 id - 8435 + 11966 @@ -14784,15 +14239,15 @@ fun_decl_specifiers - 4102237 + 12889239 id - 1688267 + 4543214 name - 1374 + 9691 @@ -14806,22 +14261,22 @@ 1 2 - 361539 + 336283 2 3 - 262472 + 246155 3 4 - 1041268 + 3782458 4 5 - 22986 + 178317 @@ -14835,59 +14290,54 @@ 12 - 15 - 16 - 124 + 3 + 4 + 969 + + + 11 + 12 + 969 19 20 - 124 + 969 - 224 - 225 - 124 + 79 + 80 + 969 - 261 - 262 - 124 + 168 + 169 + 969 - 546 - 547 - 124 + 201 + 202 + 969 - 826 - 827 - 124 + 1344 + 1345 + 969 - 1032 - 1033 - 124 + 2847 + 2848 + 969 - 1089 - 1090 - 124 + 4300 + 4301 + 969 - 7668 - 7669 - 124 - - - 10543 - 10544 - 124 - - - 10614 - 10615 - 124 + 4328 + 4329 + 969 @@ -15018,26 +14468,26 @@ fun_decl_empty_throws - 437033 + 2670882 fun_decl - 437033 + 2670882 fun_decl_noexcept - 141855 + 141830 fun_decl - 141855 + 141830 constant - 141378 + 141353 @@ -15051,7 +14501,7 @@ 1 2 - 141855 + 141830 @@ -15067,7 +14517,7 @@ 1 2 - 140935 + 140911 2 @@ -15082,26 +14532,26 @@ fun_decl_empty_noexcept - 1163822 + 1164727 fun_decl - 1163822 + 1164727 fun_decl_typedef_type - 2763 + 30057 fun_decl - 2763 + 30057 typedeftype_id - 124 + 2879 @@ -15115,7 +14565,7 @@ 1 2 - 2763 + 30057 @@ -15131,57 +14581,57 @@ 1 2 - 40 + 856 2 3 - 12 + 505 3 4 - 12 + 92 + + + 4 + 5 + 175 5 - 13 - 8 + 6 + 185 - 16 - 17 - 12 + 6 + 7 + 92 - 17 - 18 - 4 + 7 + 9 + 258 - 21 - 22 - 8 + 9 + 14 + 206 - 25 - 43 - 8 + 14 + 20 + 237 - 46 - 55 - 8 - - - 89 - 128 - 8 + 20 + 84 + 216 158 - 159 - 4 + 256 + 51 @@ -15191,7 +14641,7 @@ fun_requires - 29109 + 29111 id @@ -15203,7 +14653,7 @@ constraint - 28873 + 28875 @@ -15217,7 +14667,7 @@ 1 2 - 10047 + 10048 2 @@ -15321,7 +14771,7 @@ 1 2 - 28636 + 28638 2 @@ -15342,7 +14792,7 @@ 1 2 - 28873 + 28875 @@ -15352,19 +14802,19 @@ param_decl_bind - 7189939 + 15313967 id - 7189939 + 15313967 index - 7995 + 16474 fun_decl - 3478100 + 7378847 @@ -15378,7 +14828,7 @@ 1 2 - 7189939 + 15313967 @@ -15394,7 +14844,7 @@ 1 2 - 7189939 + 15313967 @@ -15410,32 +14860,82 @@ 2 3 - 3997 + 969 6 7 - 1998 + 1938 - 16 + 8 + 9 + 969 + + + 11 + 12 + 969 + + + 19 20 - 624 + 969 - 25 - 143 - 624 + 37 + 38 + 969 - 332 - 15841 - 624 + 53 + 54 + 969 - 27841 - 27842 - 124 + 79 + 80 + 969 + + + 118 + 119 + 969 + + + 198 + 199 + 969 + + + 352 + 353 + 969 + + + 667 + 668 + 969 + + + 1189 + 1190 + 969 + + + 2056 + 2057 + 969 + + + 3387 + 3388 + 969 + + + 7614 + 7615 + 969 @@ -15451,32 +14951,82 @@ 2 3 - 3997 + 969 6 7 - 1998 + 1938 - 16 + 8 + 9 + 969 + + + 11 + 12 + 969 + + + 19 20 - 624 + 969 - 25 - 143 - 624 + 37 + 38 + 969 - 332 - 15841 - 624 + 53 + 54 + 969 - 27841 - 27842 - 124 + 79 + 80 + 969 + + + 118 + 119 + 969 + + + 198 + 199 + 969 + + + 352 + 353 + 969 + + + 667 + 668 + 969 + + + 1189 + 1190 + 969 + + + 2056 + 2057 + 969 + + + 3387 + 3388 + 969 + + + 7614 + 7615 + 969 @@ -15492,27 +15042,32 @@ 1 2 - 1499252 + 4096452 2 3 - 956818 + 1289893 3 4 - 579912 + 840223 4 5 - 283085 + 505878 5 - 65 - 159032 + 9 + 569840 + + + 9 + 18 + 76560 @@ -15528,27 +15083,32 @@ 1 2 - 1499252 + 4096452 2 3 - 956818 + 1289893 3 4 - 579912 + 840223 4 5 - 283085 + 505878 5 - 65 - 159032 + 9 + 569840 + + + 9 + 18 + 76560 @@ -15558,27 +15118,27 @@ var_decls - 9269479 + 22872100 id - 9262608 + 22872100 variable - 8972402 + 22563921 type_id - 1462398 + 4098390 name - 852378 + 6304097 location - 6204513 + 19941494 @@ -15592,7 +15152,7 @@ 1 2 - 9262608 + 22872100 @@ -15608,12 +15168,7 @@ 1 2 - 9255737 - - - 2 - 3 - 6871 + 22872100 @@ -15629,7 +15184,7 @@ 1 2 - 9262608 + 22872100 @@ -15645,7 +15200,7 @@ 1 2 - 9262608 + 22872100 @@ -15661,12 +15216,12 @@ 1 2 - 8695188 + 22257681 2 4 - 277213 + 306240 @@ -15682,12 +15237,12 @@ 1 2 - 8933674 + 22542601 2 3 - 38727 + 21320 @@ -15703,12 +15258,12 @@ 1 2 - 8866713 + 22498991 2 - 4 - 105688 + 3 + 64930 @@ -15724,12 +15279,12 @@ 1 2 - 8720548 + 22258650 2 4 - 251853 + 305271 @@ -15745,27 +15300,22 @@ 1 2 - 854752 + 3346356 2 - 3 - 284959 + 4 + 352758 - 3 - 5 - 128050 + 4 + 30 + 313993 - 5 - 11 - 112934 - - - 11 - 2944 - 81702 + 30 + 3217 + 85282 @@ -15781,27 +15331,22 @@ 1 2 - 875115 + 3351202 2 - 3 - 270467 + 4 + 348881 - 3 - 5 - 123428 + 4 + 30 + 313993 - 5 - 11 - 112934 - - - 11 - 2859 - 80453 + 30 + 3216 + 84313 @@ -15817,58 +15362,48 @@ 1 2 - 1124970 + 3635153 2 - 3 - 193137 - - - 3 - 7 - 115182 - - - 7 - 1038 - 29108 - - - - - - - type_id - location - - - 12 - - - 1 - 2 - 990923 - - - 2 - 3 - 219122 - - - 3 6 - 134046 + 314962 6 - 95 - 109811 + 1438 + 148274 + + + + + + + type_id + location + + + 12 + + + 1 + 2 + 3373491 - 97 - 2570 - 8495 + 2 + 4 + 335314 + + + 4 + 33 + 309147 + + + 33 + 3217 + 80436 @@ -15884,32 +15419,27 @@ 1 2 - 465853 + 3481063 2 3 - 165778 + 1496314 3 4 - 60090 + 342097 4 7 - 65961 + 552395 7 - 26 - 64337 - - - 26 - 26622 - 30357 + 2958 + 432225 @@ -15925,32 +15455,27 @@ 1 2 - 478721 + 3501415 2 3 - 165028 + 1486623 3 4 - 54968 + 341128 4 - 8 - 71833 + 7 + 549488 - 8 - 46 - 63962 - - - 46 - 26187 - 17864 + 7 + 2958 + 425441 @@ -15966,22 +15491,17 @@ 1 2 - 654868 + 5168294 2 3 - 110435 + 826655 3 - 11 - 65336 - - - 11 - 3460 - 21737 + 2713 + 309147 @@ -15997,27 +15517,27 @@ 1 2 - 493087 + 3498507 2 3 - 183268 + 1513758 3 4 - 52344 + 337252 4 - 8 - 65212 + 7 + 536890 - 8 - 22104 - 58465 + 7 + 309 + 417688 @@ -16033,12 +15553,12 @@ 1 2 - 5756898 + 19860088 2 - 2943 - 447614 + 2651 + 81405 @@ -16054,12 +15574,12 @@ 1 2 - 5780884 + 19860088 2 - 2935 - 423628 + 2651 + 81405 @@ -16075,12 +15595,12 @@ 1 2 - 5920553 + 19909513 2 - 2555 - 283959 + 2637 + 31980 @@ -16096,12 +15616,12 @@ 1 2 - 6192020 + 19929865 2 5 - 12492 + 11629 @@ -16111,11 +15631,11 @@ var_def - 3731827 + 9039911 id - 3731827 + 9039911 @@ -16133,15 +15653,15 @@ var_decl_specifiers - 488965 + 572469 id - 488965 + 572469 name - 499 + 23 @@ -16155,7 +15675,7 @@ 1 2 - 488965 + 572469 @@ -16169,24 +15689,24 @@ 12 - 16 - 17 - 124 + 220 + 221 + 5 - 77 - 78 - 124 + 279 + 280 + 5 - 651 - 652 - 124 + 1747 + 1748 + 5 - 3170 - 3171 - 124 + 94425 + 94426 + 5 @@ -16196,11 +15716,11 @@ is_structured_binding - 946 + 15452 id - 946 + 15452 @@ -16265,19 +15785,19 @@ type_decls - 1687349 + 5742010 id - 1687349 + 5742010 type_id - 1650403 + 5711968 location - 1325700 + 5568539 @@ -16291,7 +15811,7 @@ 1 2 - 1687349 + 5742010 @@ -16307,7 +15827,7 @@ 1 2 - 1687349 + 5742010 @@ -16323,12 +15843,12 @@ 1 2 - 1623818 + 5685802 2 - 24 - 26585 + 7 + 26166 @@ -16344,12 +15864,12 @@ 1 2 - 1625003 + 5685802 2 - 24 - 25400 + 7 + 26166 @@ -16365,12 +15885,12 @@ 1 2 - 1257405 + 5560786 2 - 651 - 68294 + 64 + 7752 @@ -16386,12 +15906,12 @@ 1 2 - 1258602 + 5560786 2 - 651 - 67097 + 64 + 7752 @@ -16401,29 +15921,29 @@ type_def - 1157787 + 2304557 id - 1157787 + 2304557 type_decl_top - 672534 + 3550840 type_decl - 672534 + 3550840 type_requires - 7680 + 7681 id @@ -16481,7 +16001,7 @@ 1 2 - 7637 + 7638 2 @@ -16496,23 +16016,23 @@ namespace_decls - 430963 + 407321 id - 430963 + 407321 namespace_id - 1959 + 1844 location - 430963 + 407321 bodylocation - 430963 + 407321 @@ -16526,7 +16046,7 @@ 1 2 - 430963 + 407321 @@ -16542,7 +16062,7 @@ 1 2 - 430963 + 407321 @@ -16558,7 +16078,7 @@ 1 2 - 430963 + 407321 @@ -16574,57 +16094,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16640,57 +16160,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16706,57 +16226,57 @@ 1 2 - 414 + 389 2 3 - 215 + 203 3 6 - 181 + 170 6 15 - 164 + 154 15 34 - 155 + 146 35 62 - 164 + 154 63 87 - 155 + 146 90 - 142 - 155 + 144 + 154 - 143 - 219 - 155 + 146 + 264 + 146 - 263 - 1505 - 155 + 268 + 1868 + 146 - 1854 - 12392 - 43 + 2205 + 12449 + 32 @@ -16772,7 +16292,7 @@ 1 2 - 430963 + 407321 @@ -16788,7 +16308,7 @@ 1 2 - 430963 + 407321 @@ -16804,7 +16324,7 @@ 1 2 - 430963 + 407321 @@ -16820,7 +16340,7 @@ 1 2 - 430963 + 407321 @@ -16836,7 +16356,7 @@ 1 2 - 430963 + 407321 @@ -16852,7 +16372,7 @@ 1 2 - 430963 + 407321 @@ -16862,23 +16382,23 @@ usings - 311428 + 504409 id - 311428 + 504409 element_id - 67593 + 307661 location - 30731 + 11328 kind - 24 + 7 @@ -16892,7 +16412,7 @@ 1 2 - 311428 + 504409 @@ -16908,7 +16428,7 @@ 1 2 - 311428 + 504409 @@ -16924,7 +16444,7 @@ 1 2 - 311428 + 504409 @@ -16940,17 +16460,22 @@ 1 2 - 58743 + 220283 2 - 5 - 6165 + 3 + 45055 - 5 - 134 - 2683 + 3 + 4 + 20366 + + + 4 + 768 + 21955 @@ -16966,17 +16491,22 @@ 1 2 - 58743 + 220283 2 - 5 - 6165 + 3 + 45055 - 5 - 134 - 2683 + 3 + 4 + 20366 + + + 4 + 768 + 21955 @@ -16992,7 +16522,7 @@ 1 2 - 67593 + 307661 @@ -17008,22 +16538,27 @@ 1 2 - 24239 + 8405 2 4 - 2635 + 880 4 - 132 - 2224 + 12 + 895 - 145 - 367 - 1632 + 12 + 400 + 869 + + + 410 + 3162 + 277 @@ -17039,22 +16574,27 @@ 1 2 - 24239 + 8405 2 4 - 2635 + 880 4 - 132 - 2224 + 12 + 895 - 145 - 367 - 1632 + 12 + 400 + 869 + + + 410 + 3162 + 277 @@ -17070,7 +16610,7 @@ 1 2 - 30731 + 11328 @@ -17084,14 +16624,14 @@ 12 - 393 - 394 - 12 + 936 + 937 + 3 - 25367 - 25368 - 12 + 137090 + 137091 + 3 @@ -17105,14 +16645,14 @@ 12 - 214 - 215 - 12 + 62 + 63 + 3 - 5377 - 5378 - 12 + 84126 + 84127 + 3 @@ -17126,14 +16666,14 @@ 12 - 356 - 357 - 12 + 936 + 937 + 3 - 2186 - 2187 - 12 + 2164 + 2165 + 3 @@ -17143,15 +16683,15 @@ using_container - 662620 + 580180 parent - 24275 + 21896 child - 311428 + 272102 @@ -17165,42 +16705,42 @@ 1 2 - 11231 + 10372 2 3 - 1789 + 1616 3 6 - 2055 + 1859 6 7 - 2623 + 2292 7 - 27 - 1849 + 28 + 1668 - 27 + 28 136 - 942 + 781 145 146 - 2998 + 2619 146 437 - 785 + 686 @@ -17216,27 +16756,27 @@ 1 2 - 111176 + 96615 2 3 - 137664 + 120286 3 4 - 22522 + 20100 4 5 - 30550 + 26712 5 65 - 9514 + 8386 @@ -17246,27 +16786,27 @@ static_asserts - 183514 + 173266 id - 183514 + 173266 condition - 183514 + 173266 message - 41097 + 38765 location - 23924 + 22648 enclosing - 6648 + 6807 @@ -17280,7 +16820,7 @@ 1 2 - 183514 + 173266 @@ -17296,7 +16836,7 @@ 1 2 - 183514 + 173266 @@ -17312,7 +16852,7 @@ 1 2 - 183514 + 173266 @@ -17328,7 +16868,7 @@ 1 2 - 183514 + 173266 @@ -17344,7 +16884,7 @@ 1 2 - 183514 + 173266 @@ -17360,7 +16900,7 @@ 1 2 - 183514 + 173266 @@ -17376,7 +16916,7 @@ 1 2 - 183514 + 173266 @@ -17392,7 +16932,7 @@ 1 2 - 183514 + 173266 @@ -17408,32 +16948,32 @@ 1 2 - 30236 + 28505 2 3 - 673 + 641 3 4 - 3876 + 3623 4 12 - 2184 + 2087 12 17 - 3315 + 3135 17 513 - 811 + 771 @@ -17449,32 +16989,32 @@ 1 2 - 30236 + 28505 2 3 - 673 + 641 3 4 - 3876 + 3623 4 12 - 2184 + 2087 12 17 - 3315 + 3135 17 513 - 811 + 771 @@ -17490,12 +17030,12 @@ 1 2 - 38084 + 35922 2 33 - 3013 + 2843 @@ -17511,27 +17051,27 @@ 1 2 - 32170 + 30316 2 3 - 353 + 349 3 4 - 3626 + 3387 4 12 - 1985 + 1909 12 43 - 2961 + 2802 @@ -17547,52 +17087,52 @@ 1 2 - 4489 + 4281 2 3 - 3893 + 3728 3 4 - 1873 + 1738 4 5 - 112 + 121 5 6 - 5024 + 4736 6 13 - 457 + 430 14 15 - 2814 + 2648 16 17 - 60 + 64 17 18 - 4670 + 4394 19 52 - 526 + 503 @@ -17608,52 +17148,52 @@ 1 2 - 4489 + 4281 2 3 - 3893 + 3728 3 4 - 1873 + 1738 4 5 - 112 + 121 5 6 - 5024 + 4736 6 13 - 457 + 430 14 15 - 2814 + 2648 16 17 - 60 + 64 17 18 - 4670 + 4394 19 52 - 526 + 503 @@ -17669,22 +17209,22 @@ 1 2 - 7243 + 6953 2 3 - 8159 + 7676 3 4 - 8271 + 7782 4 7 - 250 + 235 @@ -17700,37 +17240,37 @@ 1 2 - 5327 + 5069 2 3 - 8538 + 8099 3 4 - 1597 + 1478 4 5 - 5042 + 4760 5 13 - 518 + 495 13 14 - 2814 + 2648 16 43 - 86 + 97 @@ -17746,22 +17286,22 @@ 1 2 - 5482 + 5702 2 3 - 561 + 528 3 - 210 - 500 + 228 + 528 - 223 + 229 11052 - 103 + 48 @@ -17777,22 +17317,22 @@ 1 2 - 5482 + 5702 2 3 - 561 + 528 3 - 210 - 500 + 228 + 528 - 223 + 229 11052 - 103 + 48 @@ -17808,17 +17348,17 @@ 1 2 - 5646 + 5857 2 3 - 552 + 519 3 2936 - 448 + 430 @@ -17834,17 +17374,17 @@ 1 2 - 5629 + 5840 2 3 - 569 + 536 3 1929 - 448 + 430 @@ -17854,23 +17394,23 @@ params - 6984184 + 15008695 id - 6957575 + 15008695 function - 3365915 + 7181147 index - 7995 + 16474 type_id - 1225411 + 3532426 @@ -17884,7 +17424,7 @@ 1 2 - 6957575 + 15008695 @@ -17900,7 +17440,7 @@ 1 2 - 6957575 + 15008695 @@ -17916,12 +17456,7 @@ 1 2 - 6930965 - - - 2 - 3 - 26609 + 15008695 @@ -17937,217 +17472,382 @@ 1 2 - 1462898 + 3972405 2 3 - 908721 + 1245313 3 4 - 561173 + 815995 4 5 - 277338 + 501032 5 - 65 - 155784 - - - - - - - function - index - - - 12 - - - 1 - 2 - 1462898 - - - 2 - 3 - 908721 - - - 3 - 4 - 561173 - - - 4 - 5 - 277338 - - - 5 - 65 - 155784 - - - - - - - function - type_id - - - 12 - - - 1 - 2 - 1763473 - - - 2 - 3 - 1008413 - - - 3 - 4 - 436995 - - - 4 - 11 - 157033 - - - - - - - index - id - - - 12 - - - 2 - 3 - 3997 - - - 6 - 7 - 1998 - - - 14 - 18 - 624 - - - 23 - 138 - 624 - - - 323 - 15234 - 624 - - - 26943 - 26944 - 124 - - - - - - - index - function - - - 12 - - - 2 - 3 - 3997 - - - 6 - 7 - 1998 - - - 14 - 18 - 624 - - - 23 - 138 - 624 - - - 323 - 15234 - 624 - - - 26943 - 26944 - 124 - - - - - - - index - type_id - - - 12 - - - 1 - 2 - 3997 - - - 2 - 3 - 1998 - - - 4 - 7 - 624 + 9 + 569840 9 + 18 + 76560 + + + + + + + function + index + + + 12 + + + 1 + 2 + 3972405 + + + 2 + 3 + 1245313 + + + 3 + 4 + 815995 + + + 4 + 5 + 501032 + + + 5 + 9 + 569840 + + + 9 + 18 + 76560 + + + + + + + function + type_id + + + 12 + + + 1 + 2 + 4210807 + + + 2 + 3 + 1300553 + + + 3 + 4 + 915814 + + + 4 + 6 + 629925 + + + 6 + 13 + 124046 + + + + + + + index + id + + + 12 + + + 2 + 3 + 969 + + + 6 + 7 + 1938 + + + 8 + 9 + 969 + + + 11 + 12 + 969 + + + 19 + 20 + 969 + + + 37 + 38 + 969 + + + 53 54 - 624 + 969 + + + 79 + 80 + 969 + + + 118 + 119 + 969 + + + 198 + 199 + 969 + + + 352 + 353 + 969 + + + 667 + 668 + 969 + + + 1184 + 1185 + 969 + + + 2026 + 2027 + 969 + + + 3311 + 3312 + 969 + + + 7410 + 7411 + 969 + + + + + + + index + function + + + 12 + + + 2 + 3 + 969 + + + 6 + 7 + 1938 + + + 8 + 9 + 969 + + + 11 + 12 + 969 + + + 19 + 20 + 969 + + + 37 + 38 + 969 + + + 53 + 54 + 969 + + + 79 + 80 + 969 + + + 118 + 119 + 969 + + + 198 + 199 + 969 + + + 352 + 353 + 969 + + + 667 + 668 + 969 + + + 1184 + 1185 + 969 + + + 2026 + 2027 + 969 + + + 3311 + 3312 + 969 + + + 7410 + 7411 + 969 + + + + + + + index + type_id + + + 12 + + + 1 + 2 + 969 + + + 2 + 3 + 1938 + + + 4 + 5 + 969 + + + 5 + 6 + 969 + + + 8 + 9 + 969 + + + 15 + 16 + 969 + + + 19 + 20 + 969 + + + 23 + 24 + 969 + + + 42 + 43 + 969 + + + 49 + 50 + 969 + + + 71 + 72 + 969 115 - 2700 - 624 + 116 + 969 - 7528 - 7529 - 124 + 165 + 166 + 969 + + + 270 + 271 + 969 + + + 449 + 450 + 969 + + + 3202 + 3203 + 969 @@ -18163,27 +17863,22 @@ 1 2 - 740818 + 2967432 2 - 3 - 241984 + 4 + 270383 - 3 - 5 - 93820 + 4 + 80 + 265537 - 5 - 13 - 93695 - - - 13 - 2570 - 55092 + 83 + 1228 + 29073 @@ -18199,27 +17894,17 @@ 1 2 - 823145 + 2991660 2 - 3 - 181144 + 5 + 303333 - 3 - 6 - 106562 - - - 6 - 27 - 92446 - - - 27 - 2558 - 22112 + 5 + 869 + 237433 @@ -18235,17 +17920,17 @@ 1 2 - 1000042 + 3212618 2 - 3 - 167027 + 6 + 279105 - 3 - 65 - 58341 + 6 + 15 + 40702 @@ -18255,15 +17940,15 @@ overrides - 169821 + 159781 new - 160565 + 151073 old - 19124 + 17993 @@ -18277,12 +17962,12 @@ 1 2 - 151318 + 142372 2 4 - 9246 + 8700 @@ -18298,32 +17983,32 @@ 1 2 - 10464 + 9845 2 3 - 2590 + 2437 3 4 - 1735 + 1632 4 6 - 1580 + 1486 6 18 - 1441 + 1356 18 230 - 1312 + 1234 @@ -18333,19 +18018,19 @@ membervariables - 1495853 + 6289561 id - 1493401 + 6289561 type_id - 455129 + 816964 name - 640722 + 3334727 @@ -18359,12 +18044,7 @@ 1 2 - 1491059 - - - 2 - 4 - 2342 + 6289561 @@ -18380,7 +18060,7 @@ 1 2 - 1493401 + 6289561 @@ -18396,22 +18076,27 @@ 1 2 - 337738 + 595037 2 3 - 72123 + 66868 3 - 10 - 35135 + 6 + 62992 - 10 - 4422 - 10132 + 6 + 23 + 62992 + + + 28 + 1989 + 29073 @@ -18427,22 +18112,22 @@ 1 2 - 355278 + 654153 2 - 3 - 64115 + 4 + 64930 - 3 - 49 - 34209 + 4 + 13 + 62023 - 56 - 2175 - 1525 + 13 + 1164 + 35857 @@ -18458,22 +18143,22 @@ 1 2 - 420974 + 2136900 2 3 - 122130 + 808242 3 5 - 57469 + 251000 5 - 654 - 40147 + 165 + 138583 @@ -18489,17 +18174,17 @@ 1 2 - 523712 + 2906378 2 3 - 72504 + 348881 3 - 658 - 44505 + 165 + 79467 @@ -18509,19 +18194,19 @@ globalvariables - 488090 + 488591 id - 488090 + 488591 type_id - 10368 + 10363 name - 112434 + 112626 @@ -18535,7 +18220,7 @@ 1 2 - 488090 + 488591 @@ -18551,7 +18236,7 @@ 1 2 - 488090 + 488591 @@ -18567,7 +18252,7 @@ 1 2 - 6995 + 6992 2 @@ -18591,7 +18276,7 @@ 152 - 2214 + 2216 499 @@ -18608,7 +18293,7 @@ 1 2 - 7120 + 7117 2 @@ -18631,8 +18316,8 @@ 874 - 124 - 226 + 125 + 228 499 @@ -18649,17 +18334,17 @@ 1 2 - 95319 + 95395 2 7 - 8744 + 8865 7 604 - 8370 + 8365 @@ -18675,12 +18360,12 @@ 1 2 - 96943 + 97018 2 3 - 15241 + 15358 3 @@ -18695,19 +18380,19 @@ localvariables - 726100 + 1444946 id - 726100 + 1444946 type_id - 53424 + 22638 name - 101537 + 744 @@ -18721,7 +18406,7 @@ 1 2 - 726100 + 1444946 @@ -18737,7 +18422,7 @@ 1 2 - 726100 + 1444946 @@ -18753,37 +18438,22 @@ 1 2 - 28887 + 11068 2 3 - 7826 + 6883 3 4 - 4025 + 3847 4 - 6 - 4049 - - - 6 - 12 - 4149 - - - 12 - 166 - 4009 - - - 168 - 19320 - 476 + 100799 + 838 @@ -18799,22 +18469,12 @@ 1 2 - 38367 + 21894 2 - 3 - 6701 - - - 3 - 5 - 4466 - - - 5 - 3502 - 3889 + 49 + 744 @@ -18830,32 +18490,72 @@ 1 2 - 62468 + 39 2 - 3 - 16045 - - - 3 4 - 6532 + 63 4 - 8 - 8130 + 15 + 50 - 8 - 135 - 7618 + 17 + 18 + 43 - 135 - 7544 - 741 + 18 + 21 + 68 + + + 22 + 25 + 57 + + + 26 + 46 + 61 + + + 48 + 56 + 59 + + + 62 + 103 + 57 + + + 110 + 256 + 57 + + + 273 + 1333 + 61 + + + 1350 + 2860 + 59 + + + 2889 + 23413 + 57 + + + 26766 + 207143 + 8 @@ -18871,22 +18571,32 @@ 1 2 - 84490 + 439 2 3 - 8419 + 111 3 - 15 - 7674 + 6 + 57 - 15 - 1509 - 953 + 6 + 22 + 43 + + + 22 + 25 + 57 + + + 25 + 2365 + 35 @@ -18896,15 +18606,15 @@ autoderivation - 229241 + 427202 var - 229241 + 427202 derivation_type - 624 + 51 @@ -18918,7 +18628,7 @@ 1 2 - 229241 + 427202 @@ -18931,30 +18641,45 @@ 12 + + 11 + 12 + 6 + + + 26 + 27 + 6 + 38 39 - 124 + 6 - 79 - 80 - 124 + 140 + 141 + 6 - 454 - 455 - 124 + 641 + 642 + 6 - 530 - 531 - 124 + 744 + 745 + 6 - 734 - 735 - 124 + 28896 + 28897 + 6 + + + 35445 + 35446 + 6 @@ -18964,15 +18689,15 @@ orphaned_variables - 44332 + 88222 var - 44332 + 88222 function - 41060 + 57936 @@ -18986,7 +18711,7 @@ 1 2 - 44332 + 88222 @@ -19002,12 +18727,17 @@ 1 2 - 40208 + 33347 2 - 47 - 851 + 3 + 20728 + + + 3 + 21 + 3860 @@ -19017,31 +18747,31 @@ enumconstants - 344765 + 1205579 id - 344765 + 1205579 parent - 41291 + 159904 index - 13945 + 118232 type_id - 54 + 159904 name - 344383 + 1197827 location - 317364 + 1201703 @@ -19055,7 +18785,7 @@ 1 2 - 344765 + 1205579 @@ -19071,7 +18801,7 @@ 1 2 - 344765 + 1205579 @@ -19087,7 +18817,7 @@ 1 2 - 344765 + 1205579 @@ -19103,7 +18833,7 @@ 1 2 - 344765 + 1205579 @@ -19119,7 +18849,7 @@ 1 2 - 344765 + 1205579 @@ -19135,57 +18865,47 @@ 1 2 - 1525 + 18413 2 3 - 5719 + 21320 3 4 - 8715 + 28104 4 5 - 5501 + 22289 5 6 - 4630 + 22289 6 - 7 - 2669 - - - 7 8 - 1961 + 11629 8 11 - 3813 + 14536 11 - 17 - 3159 + 21 + 12598 - 17 - 64 - 3105 - - - 79 - 257 - 490 + 21 + 123 + 8722 @@ -19201,57 +18921,47 @@ 1 2 - 1525 + 18413 2 3 - 5719 + 21320 3 4 - 8715 + 28104 4 5 - 5501 + 22289 5 6 - 4630 + 22289 6 - 7 - 2669 - - - 7 8 - 1961 + 11629 8 11 - 3813 + 14536 11 - 17 - 3159 + 21 + 12598 - 17 - 64 - 3105 - - - 79 - 257 - 490 + 21 + 123 + 8722 @@ -19267,7 +18977,7 @@ 1 2 - 41291 + 159904 @@ -19283,57 +18993,47 @@ 1 2 - 1525 + 18413 2 3 - 5719 + 21320 3 4 - 8715 + 28104 4 5 - 5501 + 22289 5 6 - 4630 + 22289 6 - 7 - 2669 - - - 7 8 - 1961 + 11629 8 11 - 3813 + 14536 11 - 17 - 3159 + 21 + 12598 - 17 - 64 - 3105 - - - 79 - 257 - 490 + 21 + 123 + 8722 @@ -19349,52 +19049,47 @@ 1 2 - 2124 + 18413 2 3 - 5937 + 21320 3 4 - 8770 + 28104 4 5 - 5447 + 22289 5 6 - 4630 + 22289 6 - 7 - 2614 - - - 7 8 - 1852 + 11629 8 11 - 3704 + 14536 11 - 18 - 3105 + 21 + 12598 - 18 - 257 - 3105 + 21 + 123 + 8722 @@ -19410,47 +19105,37 @@ 1 2 - 2778 + 21320 2 3 - 2233 + 39733 3 - 4 - 2287 - - - 4 5 - 1252 + 8722 5 - 9 - 1089 + 6 + 23258 - 9 - 12 - 1089 + 6 + 16 + 10660 - 12 - 19 - 1089 + 16 + 50 + 9691 - 19 - 55 - 1089 - - - 58 - 759 - 1035 + 72 + 166 + 4845 @@ -19466,47 +19151,37 @@ 1 2 - 2778 + 21320 2 3 - 2233 + 39733 3 - 4 - 2287 - - - 4 5 - 1252 + 8722 5 - 9 - 1089 + 6 + 23258 - 9 - 12 - 1089 + 6 + 16 + 10660 - 12 - 19 - 1089 + 16 + 50 + 9691 - 19 - 55 - 1089 - - - 58 - 759 - 1035 + 72 + 166 + 4845 @@ -19522,7 +19197,37 @@ 1 2 - 13945 + 21320 + + + 2 + 3 + 39733 + + + 3 + 5 + 8722 + + + 5 + 6 + 23258 + + + 6 + 16 + 10660 + + + 16 + 50 + 9691 + + + 72 + 166 + 4845 @@ -19538,47 +19243,37 @@ 1 2 - 2778 + 21320 2 3 - 2233 + 39733 3 - 4 - 2287 - - - 4 5 - 1252 + 8722 5 - 9 - 1089 + 6 + 23258 - 9 - 12 - 1089 + 6 + 16 + 10660 - 12 - 19 - 1089 + 16 + 50 + 9691 - 19 - 55 - 1089 - - - 58 - 756 - 1035 + 72 + 159 + 4845 @@ -19594,63 +19289,93 @@ 1 2 - 2778 + 21320 2 3 - 2233 + 39733 + + + 3 + 5 + 8722 + + + 5 + 6 + 23258 + + + 6 + 16 + 10660 + + + 16 + 50 + 9691 + + + 72 + 162 + 4845 + + + + + + + type_id + id + + + 12 + + + 1 + 2 + 18413 + + + 2 + 3 + 21320 3 4 - 2287 + 28104 4 5 - 1252 + 22289 5 - 9 - 1089 + 6 + 22289 - 9 - 12 - 1089 + 6 + 8 + 11629 - 12 - 19 - 1089 + 8 + 11 + 14536 - 19 - 55 - 1089 + 11 + 21 + 12598 - 58 - 759 - 1035 - - - - - - - type_id - id - - - 12 - - - 6329 - 6330 - 54 + 21 + 123 + 8722 @@ -19664,9 +19389,9 @@ 12 - 758 - 759 - 54 + 1 + 2 + 159904 @@ -19680,9 +19405,49 @@ 12 - 256 - 257 - 54 + 1 + 2 + 18413 + + + 2 + 3 + 21320 + + + 3 + 4 + 28104 + + + 4 + 5 + 22289 + + + 5 + 6 + 22289 + + + 6 + 8 + 11629 + + + 8 + 11 + 14536 + + + 11 + 21 + 12598 + + + 21 + 123 + 8722 @@ -19696,9 +19461,49 @@ 12 - 6322 - 6323 - 54 + 1 + 2 + 18413 + + + 2 + 3 + 21320 + + + 3 + 4 + 28104 + + + 4 + 5 + 22289 + + + 5 + 6 + 22289 + + + 6 + 8 + 11629 + + + 8 + 11 + 14536 + + + 11 + 21 + 12598 + + + 21 + 123 + 8722 @@ -19712,9 +19517,49 @@ 12 - 5826 - 5827 - 54 + 1 + 2 + 18413 + + + 2 + 3 + 21320 + + + 3 + 4 + 28104 + + + 4 + 5 + 22289 + + + 5 + 6 + 22289 + + + 6 + 8 + 11629 + + + 8 + 11 + 14536 + + + 11 + 21 + 12598 + + + 21 + 123 + 8722 @@ -19730,12 +19575,12 @@ 1 2 - 344002 + 1194919 - 2 - 3 - 381 + 3 + 6 + 2907 @@ -19751,12 +19596,12 @@ 1 2 - 344002 + 1194919 - 2 - 3 - 381 + 3 + 6 + 2907 @@ -19772,7 +19617,12 @@ 1 2 - 344383 + 1196857 + + + 2 + 3 + 969 @@ -19788,7 +19638,12 @@ 1 2 - 344383 + 1194919 + + + 3 + 6 + 2907 @@ -19804,12 +19659,12 @@ 1 2 - 344002 + 1195888 - 2 - 3 - 381 + 3 + 4 + 1938 @@ -19825,12 +19680,12 @@ 1 2 - 316329 + 1200734 - 2 - 205 - 1035 + 5 + 6 + 969 @@ -19846,7 +19701,12 @@ 1 2 - 317364 + 1200734 + + + 5 + 6 + 969 @@ -19862,12 +19722,7 @@ 1 2 - 316329 - - - 2 - 205 - 1035 + 1201703 @@ -19883,7 +19738,12 @@ 1 2 - 317364 + 1200734 + + + 5 + 6 + 969 @@ -19899,12 +19759,7 @@ 1 2 - 316329 - - - 2 - 205 - 1035 + 1201703 @@ -19914,31 +19769,31 @@ builtintypes - 7245 + 59116 id - 7245 + 59116 name - 7245 + 59116 kind - 7245 + 59116 size - 874 + 6783 sign - 374 + 2907 alignment - 624 + 4845 @@ -19952,7 +19807,7 @@ 1 2 - 7245 + 59116 @@ -19968,7 +19823,7 @@ 1 2 - 7245 + 59116 @@ -19984,7 +19839,7 @@ 1 2 - 7245 + 59116 @@ -20000,7 +19855,7 @@ 1 2 - 7245 + 59116 @@ -20016,7 +19871,7 @@ 1 2 - 7245 + 59116 @@ -20032,7 +19887,7 @@ 1 2 - 7245 + 59116 @@ -20048,7 +19903,7 @@ 1 2 - 7245 + 59116 @@ -20064,7 +19919,7 @@ 1 2 - 7245 + 59116 @@ -20080,7 +19935,7 @@ 1 2 - 7245 + 59116 @@ -20096,7 +19951,7 @@ 1 2 - 7245 + 59116 @@ -20112,7 +19967,7 @@ 1 2 - 7245 + 59116 @@ -20128,7 +19983,7 @@ 1 2 - 7245 + 59116 @@ -20144,7 +19999,7 @@ 1 2 - 7245 + 59116 @@ -20160,7 +20015,7 @@ 1 2 - 7245 + 59116 @@ -20176,7 +20031,7 @@ 1 2 - 7245 + 59116 @@ -20192,32 +20047,32 @@ 2 3 - 249 + 1938 8 9 - 124 + 969 9 10 - 124 + 969 11 12 - 124 - - - 12 - 13 - 124 + 969 14 15 - 124 + 969 + + + 15 + 16 + 969 @@ -20233,32 +20088,32 @@ 2 3 - 249 + 1938 8 9 - 124 + 969 9 10 - 124 + 969 11 12 - 124 - - - 12 - 13 - 124 + 969 14 15 - 124 + 969 + + + 15 + 16 + 969 @@ -20274,32 +20129,32 @@ 2 3 - 249 + 1938 8 9 - 124 + 969 9 10 - 124 + 969 11 12 - 124 - - - 12 - 13 - 124 + 969 14 15 - 124 + 969 + + + 15 + 16 + 969 @@ -20315,12 +20170,12 @@ 1 2 - 249 + 1938 3 4 - 624 + 4845 @@ -20336,12 +20191,12 @@ 1 2 - 499 + 3876 2 3 - 374 + 2907 @@ -20357,17 +20212,17 @@ 6 7 - 124 + 969 12 13 - 124 + 969 - 40 - 41 - 124 + 43 + 44 + 969 @@ -20383,17 +20238,17 @@ 6 7 - 124 + 969 12 13 - 124 + 969 - 40 - 41 - 124 + 43 + 44 + 969 @@ -20409,17 +20264,17 @@ 6 7 - 124 + 969 12 13 - 124 + 969 - 40 - 41 - 124 + 43 + 44 + 969 @@ -20435,12 +20290,12 @@ 5 6 - 249 + 1938 7 8 - 124 + 969 @@ -20456,7 +20311,7 @@ 5 6 - 374 + 2907 @@ -20472,22 +20327,22 @@ 8 9 - 124 + 969 10 11 - 249 + 969 13 14 - 124 + 1938 17 18 - 124 + 969 @@ -20503,22 +20358,22 @@ 8 9 - 124 + 969 10 11 - 249 + 969 13 14 - 124 + 1938 17 18 - 124 + 969 @@ -20534,22 +20389,22 @@ 8 9 - 124 + 969 10 11 - 249 + 969 13 14 - 124 + 1938 17 18 - 124 + 969 @@ -20565,7 +20420,7 @@ 2 3 - 624 + 4845 @@ -20581,7 +20436,7 @@ 3 4 - 624 + 4845 @@ -20591,23 +20446,23 @@ derivedtypes - 3044352 + 8224885 id - 3044352 + 8224885 name - 1474266 + 6556068 kind - 749 + 5814 type_id - 1947741 + 3912320 @@ -20621,7 +20476,7 @@ 1 2 - 3044352 + 8224885 @@ -20637,7 +20492,7 @@ 1 2 - 3044352 + 8224885 @@ -20653,7 +20508,7 @@ 1 2 - 3044352 + 8224885 @@ -20669,17 +20524,12 @@ 1 2 - 1357334 + 6495982 2 - 30 - 110810 - - - 30 - 4274 - 6121 + 523 + 60085 @@ -20695,7 +20545,7 @@ 1 2 - 1474266 + 6556068 @@ -20711,17 +20561,12 @@ 1 2 - 1357459 + 6496951 2 - 30 - 110685 - - - 30 - 4274 - 6121 + 523 + 59116 @@ -20735,34 +20580,34 @@ 12 - 787 - 788 - 124 + 522 + 523 + 969 - 2333 - 2334 - 124 + 579 + 580 + 969 - 3647 - 3648 - 124 + 1355 + 1356 + 969 - 4273 - 4274 - 124 + 1566 + 1567 + 969 - 5569 - 5570 - 124 + 1713 + 1714 + 969 - 7760 - 7761 - 124 + 2752 + 2753 + 969 @@ -20778,32 +20623,32 @@ 1 2 - 124 + 969 - 733 - 734 - 124 + 546 + 547 + 969 - 1613 - 1614 - 124 + 1094 + 1095 + 969 - 2433 - 2434 - 124 + 1346 + 1347 + 969 - 2678 - 2679 - 124 + 1520 + 1521 + 969 - 4343 - 4344 - 124 + 2258 + 2259 + 969 @@ -20817,34 +20662,34 @@ 12 - 208 - 209 - 124 + 164 + 165 + 969 - 2333 - 2334 - 124 + 522 + 523 + 969 - 3643 - 3644 - 124 + 1355 + 1356 + 969 - 4273 - 4274 - 124 + 1562 + 1563 + 969 - 5502 - 5503 - 124 + 1650 + 1651 + 969 - 7760 - 7761 - 124 + 2752 + 2753 + 969 @@ -20860,22 +20705,27 @@ 1 2 - 1315609 + 2377240 2 3 - 378154 + 172502 3 4 - 122803 + 380862 4 - 135 - 131173 + 5 + 917752 + + + 5 + 124 + 63961 @@ -20891,22 +20741,27 @@ 1 2 - 1317108 + 2388870 2 3 - 378154 + 172502 3 4 - 121304 + 369233 4 - 135 - 131173 + 5 + 917752 + + + 5 + 124 + 63961 @@ -20922,22 +20777,27 @@ 1 2 - 1317483 + 2393715 2 3 - 379029 + 185101 3 4 - 122803 + 380862 4 + 5 + 911937 + + + 5 6 - 128425 + 40702 @@ -20947,19 +20807,19 @@ pointerishsize - 2250315 + 6003672 id - 2250315 + 6003672 size - 249 + 1938 alignment - 249 + 1938 @@ -20973,7 +20833,7 @@ 1 2 - 2250315 + 6003672 @@ -20989,7 +20849,7 @@ 1 2 - 2250315 + 6003672 @@ -21005,12 +20865,12 @@ 3 4 - 124 + 969 - 18010 - 18011 - 124 + 6192 + 6193 + 969 @@ -21026,7 +20886,7 @@ 1 2 - 249 + 1938 @@ -21042,12 +20902,12 @@ 3 4 - 124 + 969 - 18010 - 18011 - 124 + 6192 + 6193 + 969 @@ -21063,7 +20923,7 @@ 1 2 - 249 + 1938 @@ -21073,23 +20933,23 @@ arraysizes - 88573 + 521384 id - 88573 + 521384 num_elements - 18489 + 124046 bytesize - 22861 + 136645 alignment - 624 + 4845 @@ -21103,7 +20963,7 @@ 1 2 - 88573 + 521384 @@ -21119,7 +20979,7 @@ 1 2 - 88573 + 521384 @@ -21135,7 +20995,7 @@ 1 2 - 88573 + 521384 @@ -21151,243 +21011,238 @@ 1 2 - 249 + 3876 2 3 - 8869 + 84313 3 4 - 249 + 3876 4 5 - 5621 + 11629 + + + 5 + 9 + 9691 + + + 10 + 34 + 9691 + + + 65 + 66 + 969 + + + + + + + num_elements + bytesize + + + 12 + + + 1 + 2 + 95942 + + + 2 + 3 + 13567 + + + 3 + 6 + 10660 6 - 7 - 1624 + 13 + 3876 + + + + + + num_elements + alignment + + + 12 + + + 1 + 2 + 95942 + + + 2 + 3 + 12598 + + + 3 + 4 + 7752 + + + 4 + 6 + 7752 + + + + + + + bytesize + id + + + 12 + + + 1 + 2 + 5814 + + + 2 + 3 + 93035 + + + 3 + 4 + 2907 + + + 4 + 5 + 11629 + + + 5 + 9 + 11629 + + + 9 + 21 + 10660 + + + 32 + 33 + 969 + + + + + + + bytesize + num_elements + + + 12 + + + 1 + 2 + 109510 + + + 2 + 3 + 11629 + + + 3 + 5 + 10660 + + + 5 + 7 + 4845 + + + + + + + bytesize + alignment + + + 12 + + + 1 + 2 + 111448 + + + 2 + 3 + 12598 + + + 3 + 6 + 12598 + + + + + + + alignment + id + + + 12 + 8 - 27 - 1499 + 9 + 969 - 34 - 57 - 374 - - - - - - - num_elements - bytesize - - - 12 - - - 1 - 2 - 9494 + 54 + 55 + 969 - 2 - 3 - 6621 + 78 + 79 + 969 - 3 - 5 - 1249 + 87 + 88 + 969 - 5 - 11 - 1124 - - - - - - - num_elements - alignment - - - 12 - - - 1 - 2 - 9494 - - - 2 - 3 - 6621 - - - 3 - 4 - 999 - - - 4 - 6 - 1374 - - - - - - - bytesize - id - - - 12 - - - 1 - 2 - 624 - - - 2 - 3 - 14741 - - - 3 - 4 - 374 - - - 4 - 5 - 3248 - - - 5 - 7 - 1499 - - - 7 - 17 - 1748 - - - 17 - 45 - 624 - - - - - - - bytesize - num_elements - - - 12 - - - 1 - 2 - 16490 - - - 2 - 3 - 3997 - - - 3 - 5 - 1748 - - - 5 - 7 - 624 - - - - - - - bytesize - alignment - - - 12 - - - 1 - 2 - 16615 - - - 2 - 3 - 3997 - - - 3 - 5 - 1873 - - - 5 - 6 - 374 - - - - - - - alignment - id - - - 12 - - - 10 - 11 - 124 - - - 86 - 87 - 124 - - - 91 - 92 - 124 - - - 187 - 188 - 124 - - - 335 - 336 - 124 + 311 + 312 + 969 @@ -21403,58 +21258,58 @@ 4 5 - 124 + 969 - 16 - 17 - 249 - - - 80 - 81 - 124 - - - 137 - 138 - 124 - - - - - - - alignment - bytesize - - - 12 - - - 4 - 5 - 124 - - - 19 - 20 - 124 + 13 + 14 + 969 20 21 - 124 + 969 - 80 - 81 - 124 + 21 + 22 + 969 - 138 - 139 - 124 + 126 + 127 + 969 + + + + + + + alignment + bytesize + + + 12 + + + 4 + 5 + 969 + + + 19 + 20 + 969 + + + 21 + 22 + 1938 + + + 126 + 127 + 969 @@ -21512,15 +21367,15 @@ typedefbase - 1828181 + 3557623 id - 1828181 + 3557623 type_id - 885722 + 2754226 @@ -21534,7 +21389,7 @@ 1 2 - 1828181 + 3557623 @@ -21550,22 +21405,17 @@ 1 2 - 706481 + 2414067 2 3 - 83914 + 197699 3 - 7 - 74580 - - - 7 - 4525 - 20745 + 27 + 142460 @@ -21575,7 +21425,7 @@ decltypes - 814475 + 814476 id @@ -21583,7 +21433,7 @@ expr - 814475 + 814476 kind @@ -21713,7 +21563,7 @@ 1 2 - 814475 + 814476 @@ -21729,7 +21579,7 @@ 1 2 - 814475 + 814476 @@ -21745,7 +21595,7 @@ 1 2 - 814475 + 814476 @@ -21761,7 +21611,7 @@ 1 2 - 814475 + 814476 @@ -22023,23 +21873,23 @@ type_operators - 7960 + 21466 id - 7960 + 21466 arg_type - 7186 + 21030 kind - 86 + 241 base_type - 5249 + 17627 @@ -22053,7 +21903,7 @@ 1 2 - 7960 + 21466 @@ -22069,7 +21919,7 @@ 1 2 - 7960 + 21466 @@ -22085,7 +21935,7 @@ 1 2 - 7960 + 21466 @@ -22101,12 +21951,12 @@ 1 2 - 6411 + 20611 2 - 3 - 774 + 4 + 419 @@ -22122,12 +21972,12 @@ 1 2 - 6411 + 20611 2 - 3 - 774 + 4 + 419 @@ -22143,12 +21993,12 @@ 1 2 - 7164 + 20917 2 3 - 21 + 112 @@ -22162,117 +22012,247 @@ 12 - 1 - 2 - 21 - - - 7 - 8 - 21 - - - 96 - 97 - 21 - - - 266 - 267 - 21 - - - - - - - kind - arg_type - - - 12 - - - 1 - 2 - 21 - - - 7 - 8 - 21 - - - 96 - 97 - 21 - - - 266 - 267 - 21 - - - - - - - kind - base_type - - - 12 - - - 1 - 2 - 21 + 3 + 4 + 16 4 5 - 21 + 16 - 72 - 73 - 21 - - - 222 - 223 - 21 - - - - - - - base_type - id - - - 12 - - - 1 - 2 - 3636 - - - 2 - 3 - 903 - - - 3 - 4 - 344 - - - 4 + 5 6 - 365 + 16 + + + 7 + 8 + 16 + + + 9 + 10 + 16 + + + 10 + 11 + 16 + + + 12 + 13 + 32 + + + 16 + 17 + 16 + + + 30 + 31 + 32 + + + 63 + 64 + 16 + + + 108 + 109 + 16 + + + 167 + 168 + 16 + + + 855 + 856 + 16 + + + + + + + kind + arg_type + + + 12 + + + 3 + 4 + 16 + + + 4 + 5 + 16 + + + 5 + 6 + 16 + + + 7 + 8 + 16 + + + 9 + 10 + 16 + + + 10 + 11 + 16 + + + 12 + 13 + 32 + + + 16 + 17 + 16 + + + 30 + 31 + 32 + + + 63 + 64 + 16 + + + 108 + 109 + 16 + + + 167 + 168 + 16 + + + 855 + 856 + 16 + + + + + + + kind + base_type + + + 12 + + + 3 + 4 + 16 + + + 4 + 5 + 32 + + + 5 + 6 + 16 + + + 7 + 8 + 16 + + + 9 + 10 + 16 + + + 10 + 11 + 16 + + + 12 + 13 + 16 + + + 16 + 17 + 16 + + + 30 + 31 + 32 + + + 63 + 64 + 16 + + + 108 + 109 + 16 + + + 159 + 160 + 16 + + + 715 + 716 + 16 + + + + + + + base_type + id + + + 12 + + + 1 + 2 + 14660 + + + 2 + 3 + 2370 + + + 3 + 13 + 596 @@ -22288,22 +22268,17 @@ 1 2 - 3786 + 14805 2 3 - 989 + 2322 3 - 4 - 451 - - - 4 - 5 - 21 + 13 + 499 @@ -22319,17 +22294,12 @@ 1 2 - 4087 + 16434 2 - 3 - 1140 - - - 3 - 4 - 21 + 6 + 1193 @@ -22339,19 +22309,19 @@ usertypes - 4458594 + 6052127 id - 4458594 + 6052127 name - 963652 + 4651755 kind - 145 + 11629 @@ -22365,7 +22335,7 @@ 1 2 - 4458594 + 6052127 @@ -22381,7 +22351,7 @@ 1 2 - 4458594 + 6052127 @@ -22397,22 +22367,12 @@ 1 2 - 667093 + 4397847 2 - 3 - 176423 - - - 3 - 7 - 76769 - - - 7 - 30282 - 43365 + 279 + 253908 @@ -22428,12 +22388,12 @@ 1 2 - 904425 + 4468592 2 - 10 - 59227 + 4 + 183162 @@ -22447,64 +22407,64 @@ 12 - 28 - 29 - 12 + 1 + 2 + 969 - 64 - 65 - 12 + 2 + 3 + 969 - 579 - 580 - 12 + 3 + 4 + 969 - 1042 - 1043 - 12 + 7 + 8 + 969 - 1563 - 1564 - 12 + 19 + 20 + 969 - 1874 - 1875 - 12 + 62 + 63 + 969 - 4586 - 4587 - 12 + 148 + 149 + 969 - 19666 - 19667 - 12 + 164 + 165 + 969 - 20075 - 20076 - 12 + 257 + 258 + 969 - 82092 - 82093 - 12 + 606 + 607 + 969 - 86007 - 86008 - 12 + 1305 + 1306 + 969 - 151219 - 151220 - 12 + 3671 + 3672 + 969 @@ -22518,64 +22478,59 @@ 12 - 19 - 20 - 12 + 1 + 2 + 969 - 47 - 48 - 12 + 2 + 3 + 1938 - 50 - 51 - 12 + 3 + 4 + 969 + + + 9 + 10 + 969 + + + 23 + 24 + 969 + + + 46 + 47 + 969 + + + 53 + 54 + 969 153 154 - 12 + 969 - 417 - 418 - 12 + 209 + 210 + 969 - 771 - 772 - 12 + 1173 + 1174 + 969 - 1565 - 1566 - 12 - - - 3066 - 3067 - 12 - - - 5585 - 5586 - 12 - - - 10838 - 10839 - 12 - - - 10903 - 10904 - 12 - - - 51707 - 51708 - 12 + 3319 + 3320 + 969 @@ -22585,19 +22540,19 @@ usertypesize - 1462784 + 1867486 id - 1462784 + 1867486 size - 1692 + 102726 alignment - 96 + 4845 @@ -22611,7 +22566,7 @@ 1 2 - 1462784 + 1867486 @@ -22627,7 +22582,7 @@ 1 2 - 1462784 + 1867486 @@ -22643,52 +22598,37 @@ 1 2 - 531 + 47486 2 3 - 229 + 14536 3 4 - 96 + 8722 4 - 6 - 108 + 7 + 8722 - 6 - 8 - 132 + 7 + 19 + 8722 - 8 - 14 - 132 + 19 + 54 + 7752 - 14 - 26 - 132 - - - 26 - 86 - 132 - - - 96 - 1592 - 132 - - - 1733 - 93158 - 60 + 64 + 459 + 6783 @@ -22704,17 +22644,22 @@ 1 2 - 1390 + 72683 2 3 - 193 + 21320 3 + 5 + 7752 + + + 5 6 - 108 + 969 @@ -22728,44 +22673,29 @@ 12 - 1 - 2 - 12 + 11 + 12 + 969 - 3 - 4 - 12 + 72 + 73 + 969 - 7 - 8 - 12 + 480 + 481 + 969 - 54 - 55 - 12 + 492 + 493 + 969 - 56 - 57 - 12 - - - 2046 - 2047 - 12 - - - 10484 - 10485 - 12 - - - 108344 - 108345 - 12 + 872 + 873 + 969 @@ -22779,39 +22709,29 @@ 12 - 1 - 2 - 24 + 7 + 8 + 969 - 3 - 4 - 12 + 15 + 16 + 969 - 11 - 12 - 12 + 18 + 19 + 969 - 12 - 13 - 12 + 41 + 42 + 969 - 17 - 18 - 12 - - - 27 - 28 - 12 - - - 110 - 111 - 12 + 69 + 70 + 969 @@ -22821,26 +22741,26 @@ usertype_final - 11493 + 14321 id - 11493 + 14321 usertype_uuid - 50413 + 47628 id - 50413 + 47628 uuid - 49904 + 47148 @@ -22854,7 +22774,7 @@ 1 2 - 50413 + 47628 @@ -22870,12 +22790,12 @@ 1 2 - 49394 + 46669 2 3 - 509 + 479 @@ -22885,15 +22805,15 @@ usertype_alias_kind - 1828181 + 3557623 id - 1828181 + 3557623 alias_kind - 24 + 1938 @@ -22907,7 +22827,7 @@ 1 2 - 1828181 + 3557623 @@ -22921,14 +22841,14 @@ 12 - 36597 - 36598 - 12 + 394 + 395 + 969 - 114622 - 114623 - 12 + 3277 + 3278 + 969 @@ -22938,26 +22858,26 @@ nontype_template_parameters - 766422 + 1345749 id - 766422 + 1345749 type_template_type_constraint - 27151 + 27153 id - 13382 + 13383 constraint - 26011 + 26013 @@ -22971,7 +22891,7 @@ 1 2 - 10219 + 10220 2 @@ -23007,7 +22927,7 @@ 1 2 - 24871 + 24873 2 @@ -23022,19 +22942,19 @@ mangled_name - 7826069 + 13577311 id - 7826069 + 13577311 mangled_name - 6330564 + 12739995 is_complete - 249 + 969 @@ -23048,7 +22968,7 @@ 1 2 - 7826069 + 13577311 @@ -23064,7 +22984,7 @@ 1 2 - 7826069 + 13577311 @@ -23080,12 +23000,12 @@ 1 2 - 6001006 + 12475426 2 - 1127 - 329558 + 279 + 264568 @@ -23101,7 +23021,7 @@ 1 2 - 6330564 + 12739995 @@ -23115,14 +23035,9 @@ 12 - 6 - 7 - 124 - - - 62639 - 62640 - 124 + 14010 + 14011 + 969 @@ -23136,14 +23051,9 @@ 12 - 6 - 7 - 124 - - - 50668 - 50669 - 124 + 13146 + 13147 + 969 @@ -23153,59 +23063,59 @@ is_pod_class - 593865 + 1298615 id - 593865 + 1298615 is_standard_layout_class - 1205360 + 1697051 id - 1205360 + 1697051 is_complete - 1443114 + 1816582 id - 1443114 + 1816582 is_class_template - 260749 + 264958 id - 260749 + 264958 class_instantiation - 1189945 + 2192614 to - 1186464 + 2192280 from - 81870 + 10212 @@ -23219,12 +23129,12 @@ 1 2 - 1184021 + 2192042 2 - 8 - 2442 + 4 + 238 @@ -23240,47 +23150,57 @@ 1 2 - 23792 + 2260 2 3 - 14809 + 1667 3 4 - 8100 + 714 4 5 - 5355 + 597 5 7 - 6903 + 853 7 - 10 - 6262 + 12 + 783 - 10 - 17 - 6625 + 12 + 24 + 809 - 17 - 53 - 6201 + 24 + 55 + 775 - 53 - 4219 - 3820 + 55 + 136 + 770 + + + 138 + 2697 + 779 + + + 2697 + 40686 + 199 @@ -23290,19 +23210,19 @@ class_template_argument - 3135288 + 4874957 type_id - 1461382 + 2400642 index - 1354 + 446 arg_type - 925001 + 663608 @@ -23316,27 +23236,27 @@ 1 2 - 608192 + 976327 2 3 - 439349 + 686449 3 4 - 276876 + 546554 4 - 7 - 110765 + 6 + 183702 - 7 - 113 - 26198 + 6 + 104 + 7609 @@ -23352,22 +23272,22 @@ 1 2 - 639589 + 1061385 2 3 - 452563 + 622478 3 4 - 275075 + 578009 4 - 113 - 94154 + 89 + 138769 @@ -23381,39 +23301,49 @@ 12 - 2 - 3 - 12 + 30 + 31 + 51 - 4 - 5 - 858 + 38 + 39 + 77 - 5 - 30 - 108 + 46 + 47 + 77 - 33 - 90 - 108 + 54 + 55 + 64 - 95 - 453 - 108 + 60 + 107 + 38 - 643 - 6819 - 108 + 112 + 183 + 38 - 11329 - 120877 - 48 + 230 + 390 + 34 + + + 418 + 1490 + 34 + + + 1757 + 554312 + 25 @@ -23427,39 +23357,54 @@ 12 - 2 - 3 + 30 + 31 + 51 + + + 38 + 39 + 77 + + + 39 + 45 12 - 4 - 5 - 858 + 46 + 47 + 95 - 5 - 16 - 120 + 47 + 54 + 21 - 16 - 35 - 108 + 54 + 55 + 64 - 37 - 155 - 108 + 55 + 104 + 34 - 196 - 3251 - 108 + 106 + 356 + 34 - 10075 - 43772 - 36 + 367 + 1288 + 34 + + + 7294 + 108536 + 17 @@ -23475,27 +23420,27 @@ 1 2 - 580362 + 475363 2 3 - 189734 + 45850 3 - 4 - 55563 + 7 + 59952 - 4 - 11 - 70373 + 7 + 20 + 50259 - 11 - 11634 - 28966 + 20 + 78713 + 32182 @@ -23511,17 +23456,17 @@ 1 2 - 815421 + 523709 2 3 - 88822 + 92689 3 - 22 - 20757 + 36 + 47210 @@ -23531,19 +23476,19 @@ class_template_argument_value - 510176 + 1488982 type_id - 205849 + 929638 index - 306 + 51 arg_value - 510039 + 1394094 @@ -23557,17 +23502,22 @@ 1 2 - 155826 + 660327 2 3 - 43377 + 105219 3 - 8 - 6644 + 4 + 154027 + + + 4 + 14 + 10064 @@ -23583,22 +23533,22 @@ 1 2 - 147955 + 655572 2 3 - 40481 + 105690 3 - 45 - 15538 + 4 + 154049 - 45 - 154 - 1874 + 4 + 313 + 14325 @@ -23612,49 +23562,69 @@ 12 - 2 - 3 - 34 + 15 + 16 + 3 - 20 - 21 - 34 + 16 + 17 + 7 - 49 - 50 - 34 + 100 + 101 + 3 - 84 - 85 - 34 + 162 + 163 + 3 - 105 - 106 - 34 + 242 + 243 + 3 - 278 - 279 - 34 + 358 + 359 + 3 - 981 - 982 - 34 + 504 + 505 + 3 - 2471 - 2472 - 34 + 1520 + 1521 + 3 - 3753 - 3754 - 34 + 3113 + 3114 + 3 + + + 47424 + 47425 + 3 + + + 63499 + 63500 + 3 + + + 121527 + 121528 + 3 + + + 138888 + 138889 + 3 @@ -23668,49 +23638,69 @@ 12 - 3 - 4 - 34 + 20 + 21 + 3 - 74 - 75 - 34 + 26 + 27 + 7 - 105 - 106 - 34 + 185 + 186 + 3 - 273 - 274 - 34 + 302 + 303 + 3 - 336 - 337 - 34 + 555 + 556 + 3 - 892 - 893 - 34 + 787 + 788 + 3 - 2433 - 2434 - 34 + 1062 + 1063 + 3 - 4801 - 4802 - 34 + 2391 + 2392 + 3 - 6051 - 6052 - 34 + 4694 + 4695 + 3 + + + 47910 + 47911 + 3 + + + 66111 + 66112 + 3 + + + 123253 + 123254 + 3 + + + 134221 + 134222 + 3 @@ -23726,12 +23716,12 @@ 1 2 - 509903 + 1306054 2 - 3 - 136 + 5 + 88039 @@ -23747,7 +23737,12 @@ 1 2 - 510039 + 1393907 + + + 2 + 5 + 186 @@ -23757,15 +23752,15 @@ is_proxy_class_for - 55443 + 48455 id - 55443 + 48455 templ_param_id - 52384 + 45782 @@ -23779,7 +23774,7 @@ 1 2 - 55443 + 48455 @@ -23795,12 +23790,12 @@ 1 2 - 51562 + 45063 2 79 - 822 + 718 @@ -23810,23 +23805,23 @@ type_mentions - 5828707 + 19988012 id - 5828707 + 19988012 type_id - 276019 + 1262757 location - 5783003 + 19988012 kind - 54 + 1938 @@ -23840,7 +23835,7 @@ 1 2 - 5828707 + 19988012 @@ -23856,7 +23851,7 @@ 1 2 - 5828707 + 19988012 @@ -23872,7 +23867,7 @@ 1 2 - 5828707 + 19988012 @@ -23888,42 +23883,32 @@ 1 2 - 136511 + 667720 2 3 - 30995 + 220958 3 - 4 - 11167 - - - 4 5 - 14707 + 116293 5 - 7 - 19991 + 11 + 101757 - 7 - 12 - 21844 + 11 + 44 + 94973 - 12 - 28 - 21081 - - - 28 - 8907 - 19719 + 45 + 3662 + 61054 @@ -23939,42 +23924,32 @@ 1 2 - 136511 + 667720 2 3 - 30995 + 220958 3 - 4 - 11167 - - - 4 5 - 14707 + 116293 5 - 7 - 19991 + 11 + 101757 - 7 - 12 - 21844 + 11 + 44 + 94973 - 12 - 28 - 21081 - - - 28 - 8907 - 19719 + 45 + 3662 + 61054 @@ -23990,7 +23965,12 @@ 1 2 - 276019 + 1259850 + + + 2 + 3 + 2907 @@ -24006,12 +23986,7 @@ 1 2 - 5737300 - - - 2 - 3 - 45703 + 19988012 @@ -24027,12 +24002,7 @@ 1 2 - 5737300 - - - 2 - 3 - 45703 + 19988012 @@ -24048,7 +24018,7 @@ 1 2 - 5783003 + 19988012 @@ -24062,9 +24032,14 @@ 12 - 107000 - 107001 - 54 + 10 + 11 + 969 + + + 20615 + 20616 + 969 @@ -24078,9 +24053,14 @@ 12 - 5067 - 5068 - 54 + 3 + 4 + 969 + + + 1303 + 1304 + 969 @@ -24094,9 +24074,14 @@ 12 - 106161 - 106162 - 54 + 10 + 11 + 969 + + + 20615 + 20616 + 969 @@ -24106,26 +24091,26 @@ is_function_template - 1335972 + 2373374 id - 1335972 + 2373374 function_instantiation - 973157 + 1087747 to - 973157 + 1087747 from - 182575 + 181540 @@ -24139,7 +24124,7 @@ 1 2 - 973157 + 1087747 @@ -24155,27 +24140,22 @@ 1 2 - 111051 + 143026 2 3 - 42253 + 20398 3 - 9 - 14379 + 15 + 13707 - 9 - 103 - 13698 - - - 103 - 1532 - 1192 + 15 + 13978 + 4408 @@ -24185,19 +24165,19 @@ function_template_argument - 2485251 + 4582754 function_id - 1453551 + 1968725 index - 477 + 441 arg_type - 298057 + 378486 @@ -24211,22 +24191,27 @@ 1 2 - 783153 + 595467 2 3 - 413231 + 683565 3 4 - 171841 + 409482 4 - 15 - 85324 + 5 + 171411 + + + 5 + 103 + 108799 @@ -24242,22 +24227,27 @@ 1 2 - 802303 + 607506 2 3 - 411323 + 680737 3 4 - 169661 + 419222 4 - 9 - 70263 + 5 + 173494 + + + 5 + 60 + 87764 @@ -24271,53 +24261,53 @@ 12 - 1 - 2 - 170 + 5 + 6 + 51 - 7 - 8 + 9 + 10 + 77 + + + 13 + 14 + 12 + + + 18 + 19 + 64 + + + 22 + 23 + 64 + + + 25 + 406 34 - 45 - 46 + 529 + 650 + 30 + + + 661 + 788 34 - 77 - 78 + 799 + 1542 34 - 138 - 139 - 34 - - - 280 - 281 - 34 - - - 2504 - 2505 - 34 - - - 7547 - 7548 - 34 - - - 19674 - 19675 - 34 - - - 42657 - 42658 + 2040 + 454582 34 @@ -24332,54 +24322,74 @@ 12 - 1 - 2 - 170 + 2 + 3 + 25 + + + 3 + 4 + 25 4 5 + 17 + + + 5 + 6 + 47 + + + 6 + 9 + 30 + + + 9 + 10 + 25 + + + 10 + 11 + 30 + + + 11 + 12 + 38 + + + 12 + 14 + 38 + + + 24 + 39 34 - 17 - 18 - 34 - - - 27 - 28 + 40 + 52 34 52 - 53 + 77 34 - 112 - 113 + 83 + 791 34 - 315 - 316 - 34 - - - 972 - 973 - 34 - - - 2754 - 2755 - 34 - - - 6081 - 6082 - 34 + 1290 + 49710 + 21 @@ -24395,37 +24405,27 @@ 1 2 - 174806 + 271124 2 3 - 26340 + 26881 3 - 4 - 20002 + 5 + 30290 - 4 - 6 - 22660 - - - 6 + 5 11 - 23239 + 32044 11 - 76 - 23375 - - - 79 - 2452 - 7632 + 102410 + 18146 @@ -24441,17 +24441,17 @@ 1 2 - 256859 + 329933 2 3 - 32133 + 30324 3 - 15 - 9064 + 35 + 18228 @@ -24461,19 +24461,19 @@ function_template_argument_value - 452861 + 1219038 function_id - 196819 + 878373 index - 477 + 51 arg_value - 450169 + 1107321 @@ -24487,17 +24487,17 @@ 1 2 - 151430 + 614094 2 3 - 42900 + 263862 3 - 8 - 2487 + 14 + 416 @@ -24513,22 +24513,17 @@ 1 2 - 144513 + 610202 2 3 - 36699 + 263833 3 - 54 - 14856 - - - 54 - 113 - 749 + 209 + 4337 @@ -24541,55 +24536,55 @@ 12 - - 1 - 2 - 170 - - - 2 - 3 - 34 - 3 4 - 34 + 18 4 5 - 34 + 3 - 15 - 16 - 34 + 13 + 14 + 3 - 27 - 28 - 34 + 18 + 19 + 3 - 1345 - 1346 - 34 + 44 + 45 + 3 - 1388 - 1389 - 34 + 116 + 117 + 3 - 1850 - 1851 - 34 + 6765 + 6766 + 3 - 2547 - 2548 - 34 + 10035 + 10036 + 3 + + + 90635 + 90636 + 3 + + + 205204 + 205205 + 3 @@ -24603,54 +24598,54 @@ 12 - 1 - 2 - 170 + 5 + 6 + 18 - 2 - 3 - 34 + 6 + 7 + 3 - 3 - 4 - 34 + 19 + 20 + 3 - 4 - 5 - 34 + 22 + 23 + 3 - 51 - 52 - 34 + 64 + 65 + 3 - 63 - 64 - 34 + 234 + 235 + 3 - 1906 - 1907 - 34 + 7866 + 7867 + 3 - 3295 - 3296 - 34 + 12284 + 12285 + 3 - 3702 - 3703 - 34 + 87096 + 87097 + 3 - 4180 - 4181 - 34 + 195391 + 195392 + 3 @@ -24666,12 +24661,17 @@ 1 2 - 447477 + 1007971 2 3 - 2691 + 87655 + + + 3 + 5 + 11694 @@ -24687,7 +24687,12 @@ 1 2 - 450169 + 1107318 + + + 2 + 3 + 3 @@ -24697,26 +24702,26 @@ is_variable_template - 58715 + 110479 id - 58715 + 110479 variable_instantiation - 421504 + 423162 to - 421504 + 423162 from - 35104 + 35336 @@ -24730,7 +24735,7 @@ 1 2 - 421504 + 423162 @@ -24746,47 +24751,42 @@ 1 2 - 15116 + 15233 2 3 - 3997 + 3870 3 4 - 2248 + 2372 4 6 - 2873 + 2996 6 8 - 2248 + 2247 8 - 11 - 2748 + 12 + 3121 - 11 - 30 - 2748 + 12 + 31 + 2746 - 30 - 105 - 2748 - - - 180 + 32 546 - 374 + 2746 @@ -24796,19 +24796,19 @@ variable_template_argument - 768927 + 779492 variable_id - 400766 + 401670 index - 1998 + 58 arg_type - 256850 + 109675 @@ -24822,22 +24822,17 @@ 1 2 - 155909 + 28298 2 3 - 190139 + 370022 3 - 4 - 36478 - - - 4 - 17 - 18239 + 10 + 3349 @@ -24853,22 +24848,17 @@ 1 2 - 170900 + 29995 2 3 - 180270 + 369899 3 - 4 - 33730 - - - 4 - 17 - 15865 + 9 + 1775 @@ -24882,44 +24872,44 @@ 12 - 28 - 29 - 874 + 7 + 8 + 6 - 34 - 35 - 374 + 8 + 9 + 12 - 37 - 38 - 124 + 9 + 10 + 6 - 66 - 67 - 124 + 32 + 33 + 6 - 146 - 147 - 124 + 106 + 107 + 6 - 438 - 439 - 124 + 517 + 518 + 6 - 1960 - 1961 - 124 + 57632 + 57633 + 6 - 3208 - 3209 - 124 + 62000 + 62001 + 6 @@ -24935,42 +24925,42 @@ 1 2 - 874 + 6 2 3 - 374 + 12 - 5 - 6 - 124 + 3 + 4 + 6 - 28 - 29 - 124 + 8 + 9 + 6 - 54 - 55 - 124 + 51 + 52 + 6 - 161 - 162 - 124 + 193 + 194 + 6 - 748 - 749 - 124 + 1557 + 1558 + 6 - 1326 - 1327 - 124 + 15672 + 15673 + 6 @@ -24986,22 +24976,37 @@ 1 2 - 176022 + 58157 2 3 - 44723 + 21016 3 + 5 + 9491 + + + 5 6 - 21737 + 3051 6 - 206 - 14366 + 7 + 9218 + + + 7 + 50 + 8227 + + + 50 + 1375 + 511 @@ -25017,17 +25022,12 @@ 1 2 - 228367 + 106325 2 - 3 - 24860 - - - 3 - 7 - 3622 + 10 + 3349 @@ -25037,11 +25037,11 @@ variable_template_argument_value - 19988 + 19978 variable_id - 14866 + 14858 index @@ -25049,7 +25049,7 @@ arg_value - 19988 + 19978 @@ -25063,12 +25063,12 @@ 1 2 - 13367 + 13360 2 3 - 1499 + 1498 @@ -25084,12 +25084,12 @@ 1 2 - 10493 + 10488 2 3 - 3997 + 3995 4 @@ -25172,7 +25172,7 @@ 1 2 - 19988 + 19978 @@ -25188,7 +25188,7 @@ 1 2 - 19988 + 19978 @@ -25198,15 +25198,15 @@ template_template_instantiation - 6637 + 12896 to - 6226 + 8387 from - 4400 + 75 @@ -25220,12 +25220,12 @@ 1 2 - 6093 + 3878 2 - 15 - 132 + 3 + 4508 @@ -25241,17 +25241,22 @@ 1 2 - 2877 + 52 2 3 - 1366 + 7 - 3 - 20 - 157 + 830 + 831 + 7 + + + 880 + 881 + 7 @@ -25261,19 +25266,19 @@ template_template_argument - 11074 + 9678 type_id - 6999 + 6117 index - 120 + 105 arg_type - 10397 + 9086 @@ -25287,22 +25292,22 @@ 1 2 - 5742 + 5018 2 3 - 483 + 422 3 8 - 580 + 507 8 11 - 193 + 169 @@ -25318,22 +25323,22 @@ 1 2 - 5766 + 5039 2 4 - 640 + 559 4 10 - 531 + 464 10 11 - 60 + 52 @@ -25349,52 +25354,52 @@ 6 7 - 12 + 10 11 12 - 12 + 10 16 17 - 12 + 10 21 22 - 12 + 10 27 28 - 12 + 10 38 39 - 12 + 10 50 51 - 12 + 10 64 65 - 12 + 10 104 105 - 12 + 10 579 580 - 12 + 10 @@ -25410,52 +25415,52 @@ 6 7 - 12 + 10 11 12 - 12 + 10 16 17 - 12 + 10 21 22 - 12 + 10 27 28 - 12 + 10 38 39 - 12 + 10 50 51 - 12 + 10 64 65 - 12 + 10 99 100 - 12 + 10 538 539 - 12 + 10 @@ -25471,12 +25476,12 @@ 1 2 - 10360 + 9055 3 43 - 36 + 31 @@ -25492,12 +25497,12 @@ 1 2 - 10372 + 9065 2 11 - 24 + 21 @@ -25507,19 +25512,19 @@ template_template_argument_value - 713 + 623 type_id - 604 + 528 index - 24 + 21 arg_value - 713 + 623 @@ -25533,7 +25538,7 @@ 1 2 - 604 + 528 @@ -25549,17 +25554,17 @@ 1 2 - 519 + 454 2 3 - 60 + 52 3 4 - 24 + 21 @@ -25575,12 +25580,12 @@ 8 9 - 12 + 10 42 43 - 12 + 10 @@ -25596,12 +25601,12 @@ 17 18 - 12 + 10 42 43 - 12 + 10 @@ -25617,7 +25622,7 @@ 1 2 - 713 + 623 @@ -25633,7 +25638,7 @@ 1 2 - 713 + 623 @@ -25759,11 +25764,11 @@ concept_instantiation - 90427 + 90434 to - 90427 + 90434 from @@ -25781,7 +25786,7 @@ 1 2 - 90427 + 90434 @@ -25877,22 +25882,22 @@ is_type_constraint - 36898 + 36900 concept_id - 36898 + 36900 concept_template_argument - 113040 + 113047 concept_id - 76378 + 76383 index @@ -25900,7 +25905,7 @@ arg_type - 21428 + 21430 @@ -25914,12 +25919,12 @@ 1 2 - 46472 + 46475 2 3 - 24677 + 24679 3 @@ -25940,17 +25945,17 @@ 1 2 - 50087 + 50090 2 3 - 22375 + 22377 3 7 - 3915 + 3916 @@ -26048,7 +26053,7 @@ 1 2 - 10391 + 10392 2 @@ -26099,7 +26104,7 @@ 1 2 - 18029 + 18030 2 @@ -26119,19 +26124,19 @@ concept_template_argument_value - 106 + 112 concept_id - 83 + 112 index - 15 + 32 arg_value - 106 + 112 @@ -26145,7 +26150,7 @@ 1 2 - 83 + 112 @@ -26161,12 +26166,7 @@ 1 2 - 60 - - - 2 - 3 - 22 + 112 @@ -26180,14 +26180,14 @@ 12 - 3 - 4 - 7 + 2 + 3 + 16 - 8 - 9 - 7 + 5 + 6 + 16 @@ -26201,14 +26201,14 @@ 12 - 4 - 5 - 7 + 2 + 3 + 16 - 10 - 11 - 7 + 5 + 6 + 16 @@ -26224,7 +26224,7 @@ 1 2 - 106 + 112 @@ -26240,7 +26240,7 @@ 1 2 - 106 + 112 @@ -26250,15 +26250,15 @@ routinetypes - 604428 + 792462 id - 604428 + 792462 return_type - 283915 + 176968 @@ -26272,7 +26272,7 @@ 1 2 - 604428 + 792462 @@ -26288,17 +26288,17 @@ 1 2 - 234267 + 148650 2 3 - 35097 + 18859 3 - 4676 - 14550 + 40273 + 9458 @@ -26308,11 +26308,11 @@ routinetypeargs - 1169173 + 1176788 routine - 413238 + 415119 index @@ -26320,7 +26320,7 @@ type_id - 111399 + 111595 @@ -26334,32 +26334,32 @@ 1 2 - 82364 + 82511 2 3 - 125834 + 126028 3 4 - 107150 + 107456 4 5 - 48754 + 49289 5 7 - 32575 + 33168 7 19 - 16560 + 16665 @@ -26375,27 +26375,27 @@ 1 2 - 88356 + 88502 2 3 - 138418 + 138663 3 4 - 113850 + 114209 4 5 - 40256 + 40738 5 10 - 32248 + 32895 10 @@ -26459,38 +26459,38 @@ 54 - 304 - 305 + 306 + 307 54 - 576 - 577 + 584 + 585 54 - 902 - 903 + 915 + 916 54 - 1797 - 1798 + 1820 + 1821 54 - 3764 - 3765 + 3793 + 3794 54 - 6074 - 6075 + 6107 + 6108 54 - 7586 - 7587 + 7622 + 7623 54 @@ -26545,38 +26545,38 @@ 54 - 96 - 97 + 97 + 98 54 - 126 - 127 + 127 + 128 54 - 191 - 192 + 192 + 193 54 - 313 - 314 + 314 + 315 54 - 509 - 510 + 510 + 511 54 - 786 - 787 + 787 + 788 54 - 1172 - 1173 + 1174 + 1175 54 @@ -26593,47 +26593,47 @@ 1 2 - 33283 + 33222 2 3 - 15034 + 15195 3 4 - 13237 + 13234 4 5 - 9859 + 9803 5 6 - 6373 + 6372 6 8 - 9532 + 9476 8 13 - 9478 + 9531 13 26 - 8770 + 8659 26 - 916 - 5828 + 918 + 6099 @@ -26649,22 +26649,22 @@ 1 2 - 78714 + 78917 2 3 - 17595 + 17537 3 5 - 9478 + 9476 5 17 - 5610 + 5664 @@ -26674,19 +26674,19 @@ ptrtomembers - 11025 + 24227 id - 11025 + 24227 type_id - 9067 + 24227 class_id - 5464 + 2907 @@ -26700,7 +26700,7 @@ 1 2 - 11025 + 24227 @@ -26716,7 +26716,7 @@ 1 2 - 11025 + 24227 @@ -26732,12 +26732,7 @@ 1 2 - 8813 - - - 2 - 84 - 253 + 24227 @@ -26753,12 +26748,7 @@ 1 2 - 8813 - - - 2 - 84 - 253 + 24227 @@ -26774,22 +26764,12 @@ 1 2 - 4352 + 969 - 2 - 3 - 604 - - - 8 - 9 - 459 - - - 10 - 65 - 48 + 12 + 13 + 1938 @@ -26805,22 +26785,12 @@ 1 2 - 4352 + 969 - 2 - 3 - 604 - - - 8 - 9 - 459 - - - 10 - 65 - 48 + 12 + 13 + 1938 @@ -26830,15 +26800,15 @@ specifiers - 7745 + 60085 id - 7745 + 60085 str - 7745 + 60085 @@ -26852,7 +26822,7 @@ 1 2 - 7745 + 60085 @@ -26868,7 +26838,7 @@ 1 2 - 7745 + 60085 @@ -26878,15 +26848,15 @@ typespecifiers - 888515 + 2259977 type_id - 882627 + 2226058 spec_id - 108 + 10660 @@ -26900,12 +26870,12 @@ 1 2 - 876739 + 2192139 2 3 - 5887 + 33919 @@ -26919,49 +26889,49 @@ 12 - 164 - 165 - 12 + 1 + 2 + 1938 - 215 - 216 - 12 + 2 + 3 + 1938 - 224 - 225 - 12 + 23 + 24 + 969 - 532 - 533 - 12 + 26 + 27 + 969 - 821 - 822 - 12 + 30 + 31 + 969 - 1568 - 1569 - 12 + 71 + 72 + 969 - 4150 - 4151 - 12 + 260 + 261 + 969 - 17496 - 17497 - 12 + 265 + 266 + 969 - 48324 - 48325 - 12 + 1651 + 1652 + 969 @@ -26971,15 +26941,15 @@ funspecifiers - 9688610 + 16276298 func_id - 3970813 + 7605620 spec_id - 2373 + 15505 @@ -26993,27 +26963,27 @@ 1 2 - 1484261 + 4160413 2 3 - 506954 + 533013 3 4 - 1037645 + 675473 4 5 - 696219 + 2183417 5 - 8 - 245731 + 7 + 53301 @@ -27027,99 +26997,84 @@ 12 - 17 - 18 - 124 + 1 + 2 + 969 - 18 - 19 - 124 + 7 + 8 + 969 - 53 - 54 - 124 + 15 + 16 + 969 - 114 - 115 - 124 + 23 + 24 + 969 - 206 - 207 - 124 + 72 + 73 + 969 - 272 - 273 - 124 + 77 + 78 + 969 - 354 - 355 - 124 + 79 + 80 + 969 - 653 - 654 - 124 + 100 + 101 + 969 - 766 - 767 - 124 + 104 + 105 + 969 - 823 - 824 - 124 + 105 + 106 + 969 - 1075 - 1076 - 124 + 121 + 122 + 969 - 1258 - 1259 - 124 + 189 + 190 + 969 - 1662 - 1663 - 124 + 2717 + 2718 + 969 - 3340 - 3341 - 124 + 3165 + 3166 + 969 - 3351 - 3352 - 124 + 3668 + 3669 + 969 - 6166 - 6167 - 124 - - - 15136 - 15137 - 124 - - - 19863 - 19864 - 124 - - - 22427 - 22428 - 124 + 6352 + 6353 + 969 @@ -27129,15 +27084,15 @@ varspecifiers - 3073086 + 10333681 var_id - 2315027 + 8874192 spec_id - 1124 + 8722 @@ -27151,17 +27106,17 @@ 1 2 - 1659658 + 7525183 2 3 - 553177 + 1293769 - 3 + 4 5 - 102190 + 55239 @@ -27175,49 +27130,49 @@ 12 - 97 - 98 - 124 + 11 + 12 + 969 - 240 - 241 - 124 + 73 + 74 + 969 - 1091 - 1092 - 124 + 120 + 121 + 969 - 1325 - 1326 - 124 + 127 + 128 + 969 - 2236 - 2237 - 124 + 136 + 137 + 969 - 2761 - 2762 - 124 + 406 + 407 + 969 - 3436 - 3437 - 124 + 959 + 960 + 969 - 4931 - 4932 - 124 + 1244 + 1245 + 969 - 8482 - 8483 - 124 + 7587 + 7588 + 969 @@ -27227,15 +27182,15 @@ explicit_specifier_exprs - 41350 + 123740 func_id - 41350 + 123740 constant - 41350 + 123740 @@ -27249,7 +27204,7 @@ 1 2 - 41350 + 123740 @@ -27265,7 +27220,7 @@ 1 2 - 41350 + 123740 @@ -27275,27 +27230,27 @@ attributes - 651120 + 3690392 id - 651120 + 3690392 kind - 374 + 1938 name - 2123 + 9691 name_space - 249 + 1938 location - 644999 + 3690392 @@ -27309,7 +27264,7 @@ 1 2 - 651120 + 3690392 @@ -27325,7 +27280,7 @@ 1 2 - 651120 + 3690392 @@ -27341,7 +27296,7 @@ 1 2 - 651120 + 3690392 @@ -27357,7 +27312,7 @@ 1 2 - 651120 + 3690392 @@ -27371,19 +27326,14 @@ 12 - 7 - 8 - 124 + 81 + 82 + 969 - 2402 - 2403 - 124 - - - 2803 - 2804 - 124 + 3727 + 3728 + 969 @@ -27392,53 +27342,6 @@ kind name - - - 12 - - - 1 - 2 - 124 - - - 6 - 7 - 124 - - - 12 - 13 - 124 - - - - - - - kind - name_space - - - 12 - - - 1 - 2 - 249 - - - 2 - 3 - 124 - - - - - - - kind - location 12 @@ -27446,17 +27349,54 @@ 4 5 - 124 + 969 - 2356 - 2357 - 124 + 8 + 9 + 969 + + + + + + + kind + name_space + + + 12 + + + 1 + 2 + 969 - 2803 - 2804 - 124 + 2 + 3 + 969 + + + + + + + kind + location + + + 12 + + + 81 + 82 + 969 + + + 3727 + 3728 + 969 @@ -27470,79 +27410,44 @@ 12 - 1 - 2 - 249 + 2 + 3 + 1938 3 4 - 124 - - - 6 - 7 - 124 - - - 7 - 8 - 124 - - - 8 - 9 - 124 - - - 10 - 11 - 249 + 969 14 15 - 124 + 1938 - 18 - 19 - 124 + 20 + 21 + 969 - 24 - 25 - 124 + 54 + 55 + 969 - 55 - 56 - 124 - - - 62 - 63 - 124 + 67 + 68 + 969 72 73 - 124 + 969 - 340 - 341 - 124 - - - 1977 - 1978 - 124 - - - 2604 - 2605 - 124 + 3560 + 3561 + 969 @@ -27558,12 +27463,12 @@ 1 2 - 1873 + 7752 2 3 - 249 + 1938 @@ -27579,7 +27484,7 @@ 1 2 - 2123 + 9691 @@ -27593,79 +27498,44 @@ 12 - 1 - 2 - 249 + 2 + 3 + 1938 3 4 - 124 - - - 4 - 5 - 124 - - - 6 - 7 - 124 - - - 8 - 9 - 124 - - - 10 - 11 - 249 + 969 14 15 - 124 + 1938 - 18 - 19 - 124 + 20 + 21 + 969 - 24 - 25 - 124 + 54 + 55 + 969 - 55 - 56 - 124 - - - 62 - 63 - 124 + 67 + 68 + 969 72 73 - 124 + 969 - 335 - 336 - 124 - - - 1977 - 1978 - 124 - - - 2604 - 2605 - 124 + 3560 + 3561 + 969 @@ -27679,14 +27549,14 @@ 12 - 11 - 12 - 124 + 2 + 3 + 969 - 5201 - 5202 - 124 + 3806 + 3807 + 969 @@ -27702,12 +27572,12 @@ 1 2 - 124 + 969 - 3 - 4 - 124 + 2 + 3 + 969 @@ -27721,14 +27591,14 @@ 12 - 2 - 3 - 124 + 1 + 2 + 969 - 15 - 16 - 124 + 9 + 10 + 969 @@ -27742,14 +27612,14 @@ 12 - 11 - 12 - 124 + 2 + 3 + 969 - 5152 - 5153 - 124 + 3806 + 3807 + 969 @@ -27765,12 +27635,7 @@ 1 2 - 639127 - - - 2 - 5 - 5871 + 3690392 @@ -27786,7 +27651,7 @@ 1 2 - 644999 + 3690392 @@ -27802,12 +27667,7 @@ 1 2 - 639877 - - - 2 - 3 - 5122 + 3690392 @@ -27823,7 +27683,7 @@ 1 2 - 644999 + 3690392 @@ -27833,27 +27693,27 @@ attribute_args - 90623 + 1436500 id - 90623 + 1436500 kind - 48 + 64 attribute - 78510 + 658874 index - 60 + 112 location - 84409 + 605394 @@ -27867,7 +27727,7 @@ 1 2 - 90623 + 1436500 @@ -27883,7 +27743,7 @@ 1 2 - 90623 + 1436500 @@ -27899,7 +27759,7 @@ 1 2 - 90623 + 1436500 @@ -27915,7 +27775,7 @@ 1 2 - 90623 + 1436500 @@ -27929,24 +27789,24 @@ 12 - 10 - 11 - 12 + 2 + 3 + 16 - 133 - 134 - 12 + 40 + 41 + 16 - 560 - 561 - 12 + 21308 + 21309 + 16 - 6793 - 6794 - 12 + 67719 + 67720 + 16 @@ -27960,24 +27820,24 @@ 12 - 10 - 11 - 12 + 2 + 3 + 16 - 133 - 134 - 12 + 40 + 41 + 16 - 156 - 157 - 12 + 19864 + 19865 + 16 - 6365 - 6366 - 12 + 21058 + 21059 + 16 @@ -27993,17 +27853,17 @@ 1 2 - 24 + 32 - 4 - 5 - 12 + 3 + 4 + 16 - 5 - 6 - 12 + 7 + 8 + 16 @@ -28017,24 +27877,24 @@ 12 - 8 - 9 - 12 + 2 + 3 + 16 18 19 - 12 + 16 - 535 - 536 - 12 + 13313 + 13314 + 16 - 6437 - 6438 - 12 + 24224 + 24225 + 16 @@ -28050,17 +27910,27 @@ 1 2 - 71425 + 350298 2 - 5 - 5899 + 3 + 69108 - 5 - 18 - 1184 + 3 + 4 + 161602 + + + 4 + 7 + 41335 + + + 7 + 19 + 36529 @@ -28076,12 +27946,12 @@ 1 2 - 76454 + 657084 2 3 - 2055 + 1790 @@ -28097,12 +27967,27 @@ 1 2 - 72900 + 350911 2 + 3 + 69043 + + + 3 + 4 + 161634 + + + 5 6 - 5609 + 40964 + + + 7 + 8 + 36320 @@ -28118,12 +28003,17 @@ 1 2 - 74339 + 485854 2 - 6 - 4170 + 3 + 135216 + + + 3 + 8 + 37803 @@ -28137,29 +28027,29 @@ 12 - 94 - 95 - 12 + 2252 + 2253 + 32 - 96 - 97 - 12 + 4792 + 4793 + 32 - 166 - 167 - 12 + 14842 + 14843 + 16 - 464 - 465 - 12 + 19123 + 19124 + 16 - 6676 - 6677 - 12 + 41016 + 41017 + 16 @@ -28175,17 +28065,17 @@ 1 2 - 12 + 64 2 3 - 36 + 32 4 5 - 12 + 16 @@ -28199,29 +28089,29 @@ 12 - 94 - 95 - 12 + 2252 + 2253 + 32 - 96 - 97 - 12 + 4792 + 4793 + 32 - 166 - 167 - 12 + 14814 + 14815 + 16 - 464 - 465 - 12 + 19095 + 19096 + 16 - 6494 - 6495 - 12 + 40853 + 40854 + 16 @@ -28235,29 +28125,34 @@ 12 - 94 - 95 - 12 + 1222 + 1223 + 32 - 96 - 97 - 12 + 3434 + 3435 + 16 - 166 - 167 - 12 + 4342 + 4343 + 16 - 349 - 350 - 12 + 10135 + 10136 + 16 - 6318 - 6319 - 12 + 14524 + 14525 + 16 + + + 23710 + 23711 + 16 @@ -28273,12 +28168,32 @@ 1 2 - 82269 + 305801 2 - 23 - 2139 + 3 + 151909 + + + 3 + 4 + 23046 + + + 4 + 5 + 45432 + + + 5 + 7 + 48190 + + + 7 + 41 + 31014 @@ -28294,12 +28209,12 @@ 1 2 - 84216 + 605072 2 3 - 193 + 322 @@ -28315,12 +28230,17 @@ 1 2 - 84047 + 394521 2 - 18 - 362 + 3 + 166617 + + + 3 + 9 + 44255 @@ -28336,12 +28256,22 @@ 1 2 - 83914 + 443228 2 3 - 495 + 81042 + + + 3 + 5 + 40819 + + + 5 + 8 + 40303 @@ -28351,15 +28281,15 @@ attribute_arg_value - 16696 + 1092168 arg - 16696 + 1092168 value - 511 + 7515 @@ -28373,7 +28303,7 @@ 1 2 - 16696 + 1092168 @@ -28389,52 +28319,47 @@ 1 2 - 204 + 1354 + + + 2 + 3 + 564 + + + 3 + 4 + 177 + + + 4 + 5 + 3064 5 - 6 - 34 + 9 + 596 - 6 - 7 - 34 + 9 + 29 + 580 - 15 - 16 - 34 + 29 + 191 + 564 - 25 - 26 - 34 + 194 + 4608 + 564 - 51 - 52 - 34 - - - 52 - 53 - 34 - - - 71 - 72 - 34 - - - 76 - 77 - 34 - - - 183 - 184 - 34 + 4792 + 14377 + 48 @@ -28444,15 +28369,15 @@ attribute_arg_type - 460 + 1290 arg - 460 + 1290 type_id - 84 + 1078 @@ -28466,7 +28391,7 @@ 1 2 - 460 + 1290 @@ -28482,22 +28407,17 @@ 1 2 - 72 + 991 2 - 3 - 4 + 4 + 83 - 35 - 36 - 4 - - - 60 - 61 - 4 + 41 + 42 + 2 @@ -28507,15 +28427,15 @@ attribute_arg_constant - 82124 + 422211 arg - 82124 + 422211 constant - 82124 + 422211 @@ -28529,7 +28449,7 @@ 1 2 - 82124 + 422211 @@ -28545,7 +28465,7 @@ 1 2 - 82124 + 422211 @@ -28555,15 +28475,15 @@ attribute_arg_expr - 1607 + 82735 arg - 1607 + 82735 expr - 1607 + 82735 @@ -28577,7 +28497,7 @@ 1 2 - 1607 + 82735 @@ -28593,7 +28513,7 @@ 1 2 - 1607 + 82735 @@ -28656,15 +28576,15 @@ typeattributes - 92196 + 543449 type_id - 90572 + 507351 spec_id - 29232 + 40865 @@ -28678,12 +28598,12 @@ 1 2 - 88948 + 505060 2 - 3 - 1624 + 1762 + 2291 @@ -28699,17 +28619,12 @@ 1 2 - 24735 + 39683 2 - 7 - 2248 - - - 7 - 58 - 2248 + 17944 + 1182 @@ -28719,15 +28634,15 @@ funcattributes - 844883 + 3669072 func_id - 800034 + 3521766 spec_id - 617140 + 3661319 @@ -28741,12 +28656,12 @@ 1 2 - 759682 + 3392874 2 - 7 - 40351 + 5 + 128892 @@ -28762,12 +28677,12 @@ 1 2 - 571417 + 3659381 - 2 - 213 - 45723 + 5 + 6 + 1938 @@ -28840,7 +28755,7 @@ namespaceattributes - 5997 + 5996 namespace_id @@ -28848,7 +28763,7 @@ spec_id - 5997 + 5996 @@ -28888,7 +28803,7 @@ 1 2 - 5997 + 5996 @@ -28898,15 +28813,15 @@ stmtattributes - 2216 + 3679 stmt_id - 2216 + 3679 spec_id - 559 + 3679 @@ -28920,7 +28835,7 @@ 1 2 - 2216 + 3679 @@ -28936,27 +28851,7 @@ 1 2 - 215 - - - 2 - 3 - 150 - - - 3 - 4 - 43 - - - 9 - 10 - 107 - - - 13 - 16 - 43 + 3679 @@ -28966,15 +28861,15 @@ unspecifiedtype - 7467739 + 14839100 type_id - 7467739 + 14839100 unspecified_type_id - 4300051 + 7567824 @@ -28988,7 +28883,7 @@ 1 2 - 7467739 + 14839100 @@ -29004,17 +28899,22 @@ 1 2 - 2870392 + 3027517 2 3 - 1169405 + 3084695 3 - 6277 - 260253 + 4 + 1025324 + + + 4 + 51 + 430287 @@ -29024,19 +28924,19 @@ member - 4200804 + 9971231 parent - 544558 + 1466272 index - 29732 + 81405 child - 4195557 + 9971231 @@ -29049,58 +28949,53 @@ 1 - 2 - 129174 - - - 2 3 - 83451 + 112417 3 4 - 32606 + 161842 4 5 - 44848 + 314962 5 6 - 42475 + 264568 6 7 - 34979 + 126954 7 - 9 - 41725 + 8 + 107571 - 9 - 13 - 41600 + 8 + 10 + 134707 - 13 - 18 - 41101 + 10 + 14 + 124046 - 18 - 42 - 40851 + 14 + 50 + 112417 - 42 - 239 - 11743 + 51 + 85 + 6783 @@ -29115,58 +29010,53 @@ 1 - 2 - 128924 - - - 2 3 - 83576 + 112417 3 4 - 32356 + 161842 4 5 - 44973 + 314962 5 6 - 42600 + 264568 6 7 - 33980 + 126954 7 - 9 - 42225 + 8 + 107571 - 9 - 13 - 41725 + 8 + 10 + 134707 - 13 - 18 - 41226 + 10 + 14 + 124046 - 18 - 42 - 40976 + 14 + 50 + 112417 - 42 - 265 - 11993 + 51 + 85 + 6783 @@ -29182,57 +29072,57 @@ 1 2 - 6496 + 16474 2 3 - 2623 + 6783 3 - 8 - 1873 + 5 + 6783 - 9 - 10 - 2873 + 5 + 8 + 3876 10 - 20 - 2373 + 11 + 10660 + + + 11 + 19 + 6783 20 - 27 - 2248 + 32 + 5814 - 27 - 36 - 2373 + 33 + 72 + 6783 - 36 - 50 - 2248 + 77 + 169 + 6783 - 54 - 141 - 2248 + 208 + 899 + 6783 - 150 - 467 - 2248 - - - 480 - 4314 - 2123 + 1226 + 1510 + 3876 @@ -29248,57 +29138,57 @@ 1 2 - 5496 + 16474 2 3 - 3622 + 6783 3 - 9 - 1873 + 5 + 6783 - 9 - 10 - 2873 + 5 + 8 + 3876 10 - 20 - 2248 + 11 + 10660 + + + 11 + 19 + 6783 20 - 28 - 2373 + 32 + 5814 - 28 - 37 - 2498 + 33 + 72 + 6783 - 37 - 56 - 2373 + 77 + 169 + 6783 - 58 - 156 - 2248 + 208 + 899 + 6783 - 163 - 528 - 2248 - - - 547 - 4334 - 1873 + 1226 + 1510 + 3876 @@ -29314,7 +29204,7 @@ 1 2 - 4195557 + 9971231 @@ -29330,12 +29220,7 @@ 1 2 - 4190310 - - - 2 - 3 - 5246 + 9971231 @@ -29345,15 +29230,15 @@ enclosingfunction - 114833 + 598242 child - 114833 + 598242 parent - 71353 + 206924 @@ -29367,7 +29252,7 @@ 1 2 - 114833 + 598242 @@ -29383,22 +29268,22 @@ 1 2 - 49341 + 16481 2 3 - 4634 + 2824 3 4 - 15367 + 185131 4 - 37 - 2010 + 150 + 2487 @@ -29408,27 +29293,27 @@ derivations - 476986 + 695371 derivation - 476986 + 695371 sub - 455246 + 666553 index - 238 + 147 super - 235596 + 211263 location - 35404 + 12464 @@ -29442,7 +29327,7 @@ 1 2 - 476986 + 695371 @@ -29458,7 +29343,7 @@ 1 2 - 476986 + 695371 @@ -29474,7 +29359,7 @@ 1 2 - 476986 + 695371 @@ -29490,7 +29375,7 @@ 1 2 - 476986 + 695371 @@ -29506,12 +29391,12 @@ 1 2 - 438720 + 644817 2 - 9 - 16526 + 35 + 21736 @@ -29527,12 +29412,12 @@ 1 2 - 438720 + 646016 2 - 8 - 16526 + 35 + 20536 @@ -29548,12 +29433,12 @@ 1 2 - 438720 + 644812 2 - 9 - 16526 + 35 + 21740 @@ -29569,12 +29454,12 @@ 1 2 - 438720 + 647493 2 8 - 16526 + 19060 @@ -29588,101 +29473,131 @@ 12 - 25 - 26 - 102 + 10 + 11 + 17 - 26 - 27 - 34 + 14 + 15 + 25 - 52 - 53 - 34 + 18 + 19 + 25 - 485 - 486 - 34 - - - 13360 - 13361 - 34 - - - - - - - index - sub - - - 12 - - - 25 - 26 - 136 - - - 52 - 53 - 34 - - - 485 - 486 - 34 - - - 13360 - 13361 - 34 - - - - - - - index - super - - - 12 - - - 23 - 24 - 34 - - - 24 - 25 - 34 + 22 + 23 + 21 25 26 - 68 + 21 32 - 33 - 34 + 85 + 12 - 289 - 290 - 34 + 116 + 705 + 12 - 6510 - 6511 - 34 + 4743 + 154186 + 8 + + + + + + + index + sub + + + 12 + + + 10 + 11 + 17 + + + 14 + 15 + 25 + + + 18 + 19 + 25 + + + 22 + 23 + 21 + + + 25 + 26 + 21 + + + 32 + 85 + 12 + + + 116 + 705 + 12 + + + 4742 + 153909 + 8 + + + + + + + index + super + + + 12 + + + 4 + 5 + 60 + + + 6 + 7 + 51 + + + 9 + 41 + 12 + + + 54 + 514 + 12 + + + 4029 + 43924 + 8 @@ -29698,22 +29613,22 @@ 1 2 - 136 + 116 - 7 - 8 - 34 + 2 + 3 + 12 - 65 - 66 - 34 + 4 + 123 + 12 - 963 - 964 - 34 + 2731 + 2732 + 4 @@ -29729,12 +29644,12 @@ 1 2 - 225783 + 205222 2 - 1655 - 9813 + 22247 + 6041 @@ -29750,12 +29665,12 @@ 1 2 - 225783 + 205222 2 - 1655 - 9813 + 22247 + 6041 @@ -29771,12 +29686,12 @@ 1 2 - 235153 + 211202 2 4 - 442 + 60 @@ -29792,12 +29707,12 @@ 1 2 - 230247 + 209622 2 - 81 - 5349 + 150 + 1641 @@ -29813,27 +29728,27 @@ 1 2 - 26510 + 8375 2 - 5 - 3134 + 3 + 1541 - 5 - 22 - 2760 + 3 + 6 + 1009 - 22 - 383 - 2691 + 6 + 67 + 935 - 388 - 928 - 306 + 71 + 17944 + 601 @@ -29849,27 +29764,27 @@ 1 2 - 26510 + 8947 2 - 5 - 3134 + 3 + 1052 - 5 - 22 - 2760 + 3 + 6 + 948 - 22 - 383 - 2691 + 6 + 74 + 935 - 388 - 928 - 306 + 75 + 17944 + 580 @@ -29885,7 +29800,12 @@ 1 2 - 35404 + 12451 + + + 3 + 35 + 12 @@ -29901,22 +29821,22 @@ 1 2 - 28725 + 9055 2 - 4 - 2623 + 3 + 1658 - 4 - 26 - 2828 + 3 + 7 + 952 - 26 - 928 - 1226 + 7 + 6412 + 796 @@ -29926,15 +29846,15 @@ derspecifiers - 478758 + 695037 der_id - 476543 + 694972 spec_id - 136 + 17 @@ -29948,12 +29868,12 @@ 1 2 - 474328 + 694907 2 3 - 2214 + 64 @@ -29967,24 +29887,24 @@ 12 - 65 - 66 - 34 + 15 + 16 + 4 - 92 - 93 - 34 + 76 + 77 + 4 - 1104 - 1105 - 34 + 12310 + 12311 + 4 - 12789 - 12790 - 34 + 148084 + 148085 + 4 @@ -29994,15 +29914,15 @@ direct_base_offsets - 450067 + 686536 der_id - 450067 + 686536 offset - 511 + 285 @@ -30016,7 +29936,7 @@ 1 2 - 450067 + 686536 @@ -30031,43 +29951,48 @@ 1 - 2 - 102 - - - 2 - 3 - 136 - - - 3 4 - 102 + 25 - 4 - 5 - 34 + 5 + 6 + 112 - 7 - 8 - 34 - - - 9 + 6 10 - 34 + 21 - 110 - 111 - 34 + 10 + 12 + 12 - 13058 - 13059 - 34 + 13 + 15 + 25 + + + 17 + 21 + 21 + + + 21 + 35 + 21 + + + 45 + 79 + 21 + + + 106 + 155547 + 21 @@ -30077,11 +30002,11 @@ virtual_base_offsets - 5826 + 5825 sub - 5826 + 5825 super @@ -30103,7 +30028,7 @@ 1 2 - 5826 + 5825 @@ -30119,7 +30044,7 @@ 1 2 - 5826 + 5825 @@ -30213,23 +30138,23 @@ frienddecls - 700589 + 11664613 id - 700589 + 11664613 type_id - 42423 + 29008 decl_id - 77759 + 62923 location - 6099 + 3018 @@ -30243,7 +30168,7 @@ 1 2 - 700589 + 11664613 @@ -30259,7 +30184,7 @@ 1 2 - 700589 + 11664613 @@ -30275,7 +30200,7 @@ 1 2 - 700589 + 11664613 @@ -30291,47 +30216,67 @@ 1 2 - 6167 + 3685 2 - 3 - 13970 + 8 + 2178 - 3 - 7 - 3577 + 8 + 22 + 2351 - 7 - 12 - 3441 + 22 + 41 + 2239 - 12 - 20 - 3646 + 41 + 69 + 2178 - 20 - 32 - 3305 + 69 + 99 + 2178 - 33 - 50 - 3782 + 99 + 162 + 2178 - 50 - 80 - 3782 + 163 + 232 + 2260 - 101 - 120 - 749 + 232 + 324 + 2252 + + + 327 + 1235 + 2602 + + + 1359 + 1360 + 524 + + + 1458 + 1459 + 2906 + + + 1801 + 1802 + 1472 @@ -30347,47 +30292,67 @@ 1 2 - 6167 + 3685 2 - 3 - 13970 + 8 + 2178 - 3 - 7 - 3577 + 8 + 22 + 2351 - 7 - 12 - 3441 + 22 + 41 + 2239 - 12 - 20 - 3646 + 41 + 69 + 2178 - 20 - 32 - 3305 + 69 + 99 + 2178 - 33 - 50 - 3782 + 99 + 162 + 2178 - 50 - 80 - 3782 + 163 + 232 + 2260 - 101 - 120 - 749 + 232 + 324 + 2252 + + + 327 + 1235 + 2602 + + + 1359 + 1360 + 524 + + + 1458 + 1459 + 2906 + + + 1801 + 1802 + 1472 @@ -30403,115 +30368,165 @@ 1 2 - 41060 + 28289 + + + 2 + 25 + 718 + + + + + + + decl_id + id + + + 12 + + + 1 + 2 + 17353 + + + 2 + 3 + 5881 + + + 3 + 8 + 4235 + + + 8 + 15 + 4685 + + + 15 + 27 + 4798 + + + 27 + 53 + 4906 + + + 53 + 97 + 4724 + + + 97 + 201 + 5556 + + + 201 + 951 + 5413 + + + 989 + 1546 + 4772 + + + 1643 + 3098 + 593 + + + + + + + decl_id + type_id + + + 12 + + + 1 + 2 + 17353 + + + 2 + 3 + 5881 + + + 3 + 8 + 4235 + + + 8 + 15 + 4685 + + + 15 + 27 + 4798 + + + 27 + 53 + 4906 + + + 53 + 97 + 4724 + + + 97 + 201 + 5556 + + + 201 + 951 + 5413 + + + 989 + 1546 + 4772 + + + 1643 + 3098 + 593 + + + + + + + decl_id + location + + + 12 + + + 1 + 2 + 62715 2 13 - 1363 - - - - - - - decl_id - id - - - 12 - - - 1 - 2 - 47875 - - - 2 - 3 - 6065 - - - 3 - 8 - 5997 - - - 8 - 15 - 6065 - - - 15 - 40 - 6065 - - - 40 - 164 - 5690 - - - - - - - decl_id - type_id - - - 12 - - - 1 - 2 - 47875 - - - 2 - 3 - 6065 - - - 3 - 8 - 5997 - - - 8 - 15 - 6065 - - - 15 - 40 - 6065 - - - 40 - 164 - 5690 - - - - - - - decl_id - location - - - 12 - - - 1 - 2 - 77078 - - - 2 - 5 - 681 + 207 @@ -30527,12 +30542,12 @@ 1 2 - 5724 + 2962 2 - 20371 - 374 + 2692665 + 56 @@ -30548,12 +30563,12 @@ 1 2 - 5963 + 2979 2 - 1148 - 136 + 6384 + 38 @@ -30569,12 +30584,12 @@ 1 2 - 5758 + 2975 2 - 2129 - 340 + 13899 + 43 @@ -30584,19 +30599,19 @@ comments - 11220843 + 68615333 id - 11220843 + 68615333 contents - 4291377 + 24650428 location - 11220843 + 68615333 @@ -30610,7 +30625,7 @@ 1 2 - 11220843 + 68615333 @@ -30626,7 +30641,7 @@ 1 2 - 11220843 + 68615333 @@ -30642,17 +30657,12 @@ 1 2 - 3917344 + 23345029 2 - 6 - 321937 - - - 6 - 34359 - 52094 + 32735 + 1305398 @@ -30668,17 +30678,12 @@ 1 2 - 3917344 + 23345029 2 - 6 - 321937 - - - 6 - 34359 - 52094 + 32735 + 1305398 @@ -30694,7 +30699,7 @@ 1 2 - 11220843 + 68615333 @@ -30710,7 +30715,7 @@ 1 2 - 11220843 + 68615333 @@ -30720,15 +30725,15 @@ commentbinding - 3838390 + 17753231 id - 3351549 + 17596234 element - 3672362 + 17312283 @@ -30742,12 +30747,12 @@ 1 2 - 3295331 + 17481878 2 - 1706 - 56217 + 12 + 114355 @@ -30763,12 +30768,12 @@ 1 2 - 3506333 + 16871336 2 3 - 166028 + 440947 @@ -30782,7 +30787,7 @@ converted - 9632983 + 9632984 conversion @@ -30831,22 +30836,22 @@ compgenerated - 9891516 + 10972612 id - 9891516 + 10972612 synthetic_destructor_call - 1671589 + 1671706 element - 1244881 + 1244969 i @@ -30854,7 +30859,7 @@ destructor_call - 1671589 + 1671706 @@ -30868,17 +30873,17 @@ 1 2 - 828630 + 828688 2 3 - 409452 + 409481 3 19 - 6798 + 6799 @@ -30894,17 +30899,17 @@ 1 2 - 828630 + 828688 2 3 - 409452 + 409481 3 19 - 6798 + 6799 @@ -31052,7 +31057,7 @@ 1 2 - 1671589 + 1671706 @@ -31068,7 +31073,7 @@ 1 2 - 1671589 + 1671706 @@ -31078,15 +31083,15 @@ namespaces - 9901 + 55509 id - 9901 + 55509 name - 5234 + 55507 @@ -31100,7 +31105,7 @@ 1 2 - 9901 + 55509 @@ -31116,17 +31121,12 @@ 1 2 - 4279 + 55504 2 3 - 604 - - - 3 - 149 - 350 + 2 @@ -31147,15 +31147,15 @@ namespacembrs - 2042061 + 2462439 parentid - 3997 + 1394 memberid - 2042061 + 2462439 @@ -31169,67 +31169,67 @@ 1 2 - 499 + 216 2 3 - 249 + 90 3 4 - 499 + 64 4 5 - 624 + 95 5 - 10 - 249 + 6 + 77 - 10 + 6 + 8 + 121 + + + 8 12 - 249 + 116 12 - 18 - 249 + 19 + 108 19 - 21 - 249 + 30 + 108 - 23 - 24 - 249 + 30 + 56 + 112 - 25 - 29 - 249 + 56 + 125 + 108 - 70 - 83 - 249 + 128 + 834 + 108 - 165 - 170 - 249 - - - 15618 - 15619 - 124 + 847 + 487928 + 64 @@ -31245,7 +31245,7 @@ 1 2 - 2042061 + 2462439 @@ -31255,19 +31255,19 @@ exprparents - 19454216 + 20747887 expr_id - 19454216 + 20747887 child_index - 20035 + 1019 parent_id - 12939987 + 12416400 @@ -31281,7 +31281,7 @@ 1 2 - 19454216 + 20747887 @@ -31297,7 +31297,7 @@ 1 2 - 19454216 + 20747887 @@ -31313,42 +31313,32 @@ 1 2 - 3855 - - - 2 - 3 - 1519 + 636 3 - 4 - 365 + 18 + 16 - 4 - 5 - 8976 + 21 + 22 + 168 - 5 - 8 - 1660 + 23 + 78 + 90 - 8 - 11 - 1632 + 79 + 435 + 78 - 11 - 53 - 1519 - - - 56 - 354800 - 506 + 2109 + 2179878 + 28 @@ -31364,42 +31354,32 @@ 1 2 - 3855 - - - 2 - 3 - 1519 + 636 3 - 4 - 365 + 18 + 16 - 4 - 5 - 8976 + 21 + 22 + 168 - 5 - 8 - 1660 + 23 + 78 + 90 - 8 - 11 - 1632 + 79 + 435 + 78 - 11 - 53 - 1519 - - - 56 - 354800 - 506 + 2109 + 2179878 + 28 @@ -31415,17 +31395,17 @@ 1 2 - 7394757 + 4275389 2 3 - 5082680 + 8013574 3 - 712 - 462550 + 181 + 127436 @@ -31441,17 +31421,17 @@ 1 2 - 7394757 + 4275389 2 3 - 5082680 + 8013574 3 - 712 - 462550 + 181 + 127436 @@ -31461,22 +31441,22 @@ expr_isload - 6853135 + 10252631 expr_id - 6853135 + 10252631 conversionkinds - 6050434 + 6050433 expr_id - 6050434 + 6050433 kind @@ -31494,7 +31474,7 @@ 1 2 - 6050434 + 6050433 @@ -31538,8 +31518,8 @@ 1 - 5831535 - 5831536 + 5831534 + 5831535 1 @@ -31550,11 +31530,11 @@ iscall - 5802435 + 5802826 caller - 5802435 + 5802826 kind @@ -31572,7 +31552,7 @@ 1 2 - 5802435 + 5802826 @@ -31608,15 +31588,15 @@ numtemplatearguments - 625760 + 1668466 expr_id - 625760 + 1668466 num - 374 + 45 @@ -31630,7 +31610,7 @@ 1 2 - 625760 + 1668466 @@ -31644,19 +31624,39 @@ 12 - 7 - 8 - 124 + 5 + 6 + 6 - 1264 - 1265 - 124 + 145 + 146 + 6 - 3738 - 3739 - 124 + 475 + 476 + 6 + + + 1189 + 1190 + 6 + + + 29101 + 29102 + 6 + + + 75364 + 75365 + 6 + + + 151258 + 151259 + 6 @@ -31666,15 +31666,15 @@ specialnamequalifyingelements - 124 + 969 id - 124 + 969 name - 124 + 969 @@ -31688,7 +31688,7 @@ 1 2 - 124 + 969 @@ -31704,7 +31704,7 @@ 1 2 - 124 + 969 @@ -31714,23 +31714,23 @@ namequalifiers - 3041775 + 3041980 id - 3041775 + 3041980 qualifiableelement - 3041775 + 3041980 qualifyingelement - 47483 + 47486 location - 552420 + 552457 @@ -31744,7 +31744,7 @@ 1 2 - 3041775 + 3041980 @@ -31760,7 +31760,7 @@ 1 2 - 3041775 + 3041980 @@ -31776,7 +31776,7 @@ 1 2 - 3041775 + 3041980 @@ -31792,7 +31792,7 @@ 1 2 - 3041775 + 3041980 @@ -31808,7 +31808,7 @@ 1 2 - 3041775 + 3041980 @@ -31824,7 +31824,7 @@ 1 2 - 3041775 + 3041980 @@ -31840,12 +31840,12 @@ 1 2 - 31541 + 31543 2 3 - 8175 + 8176 3 @@ -31876,12 +31876,12 @@ 1 2 - 31541 + 31543 2 3 - 8175 + 8176 3 @@ -31912,7 +31912,7 @@ 1 2 - 34402 + 34404 2 @@ -31943,22 +31943,22 @@ 1 2 - 79132 + 79137 2 6 - 38103 + 38105 6 7 - 398974 + 399001 7 192 - 36209 + 36212 @@ -31974,22 +31974,22 @@ 1 2 - 79132 + 79137 2 6 - 38103 + 38105 6 7 - 398974 + 399001 7 192 - 36209 + 36212 @@ -32005,22 +32005,22 @@ 1 2 - 111533 + 111541 2 4 - 13296 + 13297 4 5 - 415283 + 415311 5 33 - 12306 + 12307 @@ -32030,15 +32030,15 @@ varbind - 8254631 + 9157418 expr - 8254631 + 9157418 var - 1050376 + 4030270 @@ -32052,7 +32052,7 @@ 1 2 - 8254631 + 9157418 @@ -32068,52 +32068,27 @@ 1 2 - 171535 + 3040075 2 3 - 188700 + 292640 3 - 4 - 145647 - - - 4 5 - 116636 + 319355 5 - 6 - 83151 + 15 + 309228 - 6 - 7 - 65817 - - - 7 - 9 - 80815 - - - 9 - 13 - 81575 - - - 13 - 27 - 79127 - - - 27 - 5137 - 37368 + 15 + 260 + 68969 @@ -32123,15 +32098,15 @@ funbind - 5812138 + 5812545 expr - 5809664 + 5810071 fun - 275930 + 275949 @@ -32145,7 +32120,7 @@ 1 2 - 5807189 + 5807596 2 @@ -32166,27 +32141,27 @@ 1 2 - 181436 + 181449 2 3 - 38834 + 38837 3 4 - 17190 + 17191 4 8 - 22741 + 22742 8 37798 - 15727 + 15728 @@ -32196,19 +32171,19 @@ expr_allocator - 45252 + 93972 expr - 45252 + 93972 func - 102 + 27 form - 34 + 4 @@ -32222,7 +32197,7 @@ 1 2 - 45252 + 93972 @@ -32238,7 +32213,7 @@ 1 2 - 45252 + 93972 @@ -32254,17 +32229,42 @@ 1 2 - 34 + 9 - 591 - 592 - 34 + 2 + 3 + 2 - 736 - 737 - 34 + 4 + 5 + 2 + + + 18 + 19 + 2 + + + 20 + 21 + 2 + + + 27 + 28 + 2 + + + 17597 + 17598 + 2 + + + 20513 + 20514 + 2 @@ -32280,7 +32280,7 @@ 1 2 - 102 + 27 @@ -32294,9 +32294,14 @@ 12 - 1328 - 1329 - 34 + 20 + 21 + 2 + + + 38165 + 38166 + 2 @@ -32310,9 +32315,14 @@ 12 - 3 - 4 - 34 + 1 + 2 + 2 + + + 10 + 11 + 2 @@ -32322,19 +32332,19 @@ expr_deallocator - 53839 + 95453 expr - 53839 + 95453 func - 102 + 22 form - 68 + 7 @@ -32348,7 +32358,7 @@ 1 2 - 53839 + 95453 @@ -32364,7 +32374,7 @@ 1 2 - 53839 + 95453 @@ -32378,19 +32388,39 @@ 12 - 1 - 2 - 34 + 2 + 3 + 4 - 723 - 724 - 34 + 4 + 5 + 2 - 856 - 857 - 34 + 7 + 8 + 2 + + + 16 + 17 + 2 + + + 24 + 25 + 4 + + + 18284 + 18285 + 2 + + + 20424 + 20425 + 2 @@ -32406,7 +32436,7 @@ 1 2 - 102 + 22 @@ -32420,14 +32450,19 @@ 12 - 723 - 724 - 34 + 24 + 25 + 2 - 857 - 858 - 34 + 18308 + 18309 + 2 + + + 20455 + 20456 + 2 @@ -32443,12 +32478,17 @@ 1 2 - 34 + 2 2 3 - 34 + 2 + + + 6 + 7 + 2 @@ -32458,11 +32498,11 @@ expr_cond_two_operand - 653 + 2693 cond - 653 + 2693 @@ -32613,15 +32653,15 @@ values - 13474605 + 14027056 id - 13474605 + 14027056 str - 114566 + 71353 @@ -32635,7 +32675,7 @@ 1 2 - 13474605 + 14027056 @@ -32651,27 +32691,57 @@ 1 2 - 78302 + 10046 2 3 - 15301 + 21277 3 - 6 - 8895 + 4 + 2369 - 6 - 52 - 8628 + 4 + 5 + 5461 - 52 - 674264 - 3437 + 5 + 8 + 2369 + + + 8 + 10 + 5821 + + + 10 + 17 + 5512 + + + 17 + 39 + 5357 + + + 40 + 101 + 5409 + + + 102 + 528 + 5357 + + + 528 + 58022 + 2369 @@ -32681,15 +32751,15 @@ valuetext - 6647456 + 8820484 id - 6647456 + 8820484 text - 1095412 + 1822799 @@ -32703,7 +32773,7 @@ 1 2 - 6647456 + 8820484 @@ -32719,22 +32789,22 @@ 1 2 - 833985 + 539748 2 3 - 146940 + 1068990 3 7 - 86537 + 148397 7 - 593555 - 27950 + 2999 + 65662 @@ -32744,15 +32814,15 @@ valuebind - 13583188 + 14473467 val - 13474605 + 14027056 expr - 13583188 + 14473467 @@ -32766,12 +32836,12 @@ 1 2 - 13384050 + 13580696 2 - 6 - 90554 + 4 + 446359 @@ -32787,7 +32857,7 @@ 1 2 - 13583188 + 14473467 @@ -32797,19 +32867,19 @@ fieldoffsets - 1493401 + 6231414 id - 1493401 + 6231414 byteoffset - 31376 + 189946 bitoffset - 435 + 7752 @@ -32823,7 +32893,7 @@ 1 2 - 1493401 + 6231414 @@ -32839,7 +32909,7 @@ 1 2 - 1493401 + 6231414 @@ -32855,37 +32925,47 @@ 1 2 - 17704 + 70745 2 3 - 2451 + 23258 3 5 - 2669 + 13567 5 - 12 - 2614 + 7 + 12598 - 12 - 34 - 2396 + 7 + 9 + 14536 - 34 - 198 - 2396 + 9 + 15 + 14536 - 209 - 5931 - 1143 + 15 + 32 + 14536 + + + 33 + 95 + 14536 + + + 122 + 1637 + 11629 @@ -32901,12 +32981,12 @@ 1 2 - 30396 + 177348 - 2 + 3 9 - 980 + 12598 @@ -32920,44 +33000,44 @@ 12 - 35 - 36 - 54 + 18 + 19 + 969 - 36 - 37 - 54 + 19 + 20 + 969 + + + 26 + 27 + 969 + + + 29 + 30 + 969 + + + 33 + 34 + 969 43 44 - 54 + 969 - 46 - 47 - 54 + 53 + 54 + 969 - 50 - 51 - 54 - - - 63 - 64 - 54 - - - 79 - 80 - 54 - - - 27063 - 27064 - 54 + 6209 + 6210 + 969 @@ -32971,24 +33051,29 @@ 12 - 12 - 13 - 163 + 7 + 8 + 969 - 13 - 14 - 108 + 8 + 9 + 969 - 14 - 15 - 108 + 9 + 10 + 3876 - 576 - 577 - 54 + 10 + 11 + 969 + + + 196 + 197 + 969 @@ -32998,19 +33083,19 @@ bitfield - 30357 + 313993 id - 30357 + 313993 bits - 3497 + 30042 declared_bits - 3497 + 30042 @@ -33024,7 +33109,7 @@ 1 2 - 30357 + 313993 @@ -33040,7 +33125,7 @@ 1 2 - 30357 + 313993 @@ -33056,42 +33141,47 @@ 1 2 - 999 + 7752 2 3 - 749 + 4845 3 4 - 249 + 4845 4 5 - 499 + 2907 5 - 7 - 249 + 6 + 2907 - 8 - 9 - 249 + 7 + 10 + 1938 - 9 - 11 - 249 + 10 + 13 + 1938 13 - 143 - 249 + 15 + 1938 + + + 199 + 200 + 969 @@ -33107,7 +33197,7 @@ 1 2 - 3497 + 30042 @@ -33123,42 +33213,47 @@ 1 2 - 999 + 7752 2 3 - 749 + 4845 3 4 - 249 + 4845 4 5 - 499 + 2907 5 - 7 - 249 + 6 + 2907 - 8 - 9 - 249 + 7 + 10 + 1938 - 9 - 11 - 249 + 10 + 13 + 1938 13 - 143 - 249 + 15 + 1938 + + + 199 + 200 + 969 @@ -33174,7 +33269,7 @@ 1 2 - 3497 + 30042 @@ -33184,23 +33279,23 @@ initialisers - 2340631 + 5596945 init - 2340631 + 5596945 var - 991152 + 925953 expr - 2340631 + 5596945 location - 539242 + 578154 @@ -33214,7 +33309,7 @@ 1 2 - 2340631 + 5596945 @@ -33230,7 +33325,7 @@ 1 2 - 2340631 + 5596945 @@ -33246,7 +33341,7 @@ 1 2 - 2340631 + 5596945 @@ -33262,17 +33357,27 @@ 1 2 - 874093 + 677373 2 - 15 - 39500 + 3 + 87171 - 16 - 25 - 77558 + 3 + 7 + 72737 + + + 7 + 67 + 70850 + + + 67 + 187 + 17821 @@ -33288,17 +33393,27 @@ 1 2 - 874093 + 677373 2 - 15 - 39500 + 3 + 87171 - 16 - 25 - 77558 + 3 + 7 + 72737 + + + 7 + 67 + 70850 + + + 67 + 187 + 17821 @@ -33314,12 +33429,7 @@ 1 2 - 991143 - - - 2 - 3 - 8 + 925953 @@ -33335,7 +33445,7 @@ 1 2 - 2340631 + 5596945 @@ -33351,7 +33461,7 @@ 1 2 - 2340631 + 5596945 @@ -33367,7 +33477,7 @@ 1 2 - 2340631 + 5596945 @@ -33383,22 +33493,22 @@ 1 2 - 439287 + 422455 2 3 - 33068 + 74962 3 - 15 - 42211 + 6 + 44593 - 15 - 111796 - 24675 + 6 + 113308 + 36142 @@ -33414,17 +33524,12 @@ 1 2 - 470421 + 545705 2 - 4 - 49610 - - - 4 - 12163 - 19210 + 10124 + 32449 @@ -33440,22 +33545,22 @@ 1 2 - 439287 + 422455 2 3 - 33068 + 74962 3 - 15 - 42211 + 6 + 44593 - 15 - 111796 - 24675 + 6 + 113308 + 36142 @@ -33465,26 +33570,26 @@ braced_initialisers - 68469 + 200252 init - 68469 + 200252 expr_ancestor - 1677570 + 1677688 exp - 1677570 + 1677688 ancestor - 839603 + 839661 @@ -33498,7 +33603,7 @@ 1 2 - 1677570 + 1677688 @@ -33514,12 +33619,12 @@ 1 2 - 17082 + 17084 2 3 - 812451 + 812507 3 @@ -33534,11 +33639,11 @@ exprs - 25210575 + 25210577 id - 25210575 + 25210577 kind @@ -33546,7 +33651,7 @@ location - 10582670 + 10582671 @@ -33560,7 +33665,7 @@ 1 2 - 25210575 + 25210577 @@ -33576,7 +33681,7 @@ 1 2 - 25210575 + 25210577 @@ -33805,15 +33910,15 @@ expr_reuse - 846982 + 847042 reuse - 846982 + 847042 original - 846982 + 847042 value_category @@ -33831,7 +33936,7 @@ 1 2 - 846982 + 847042 @@ -33847,7 +33952,7 @@ 1 2 - 846982 + 847042 @@ -33863,7 +33968,7 @@ 1 2 - 846982 + 847042 @@ -33879,7 +33984,7 @@ 1 2 - 846982 + 847042 @@ -33931,19 +34036,19 @@ expr_types - 25210575 + 25238252 id - 25210575 + 25101637 typeid - 214202 + 1150532 value_category - 43 + 10 @@ -33957,7 +34062,12 @@ 1 2 - 25210575 + 24970947 + + + 2 + 6 + 130690 @@ -33973,7 +34083,7 @@ 1 2 - 25210575 + 25101637 @@ -33989,52 +34099,42 @@ 1 2 - 52512 + 397286 2 3 - 35191 + 223539 3 4 - 14507 + 97511 4 5 - 14529 + 90049 5 - 8 - 17562 + 7 + 94946 - 8 - 14 - 17386 + 7 + 11 + 98239 - 14 - 24 - 16441 + 11 + 27 + 87166 - 24 - 49 - 16067 - - - 49 - 134 - 16177 - - - 134 - 441505 - 13825 + 27 + 1473219 + 61793 @@ -34050,12 +34150,17 @@ 1 2 - 185913 + 1025250 2 3 - 28289 + 115140 + + + 3 + 4 + 10141 @@ -34069,14 +34174,19 @@ 12 - 153745 - 153746 - 21 + 32407 + 32408 + 3 - 993192 - 993193 - 21 + 1319763 + 1319764 + 3 + + + 5516607 + 5516608 + 3 @@ -34090,14 +34200,19 @@ 12 - 2282 - 2283 - 21 + 8837 + 8838 + 3 - 8750 - 8751 - 21 + 79160 + 79161 + 3 + + + 263890 + 263891 + 3 @@ -34118,15 +34233,15 @@ new_allocated_type - 46206 + 94223 expr - 46206 + 94223 type_id - 27396 + 42727 @@ -34140,7 +34255,7 @@ 1 2 - 46206 + 94223 @@ -34156,17 +34271,17 @@ 1 2 - 11517 + 38846 2 - 3 - 14482 + 4 + 3497 - 3 - 19 - 1397 + 4 + 1699 + 383 @@ -34176,15 +34291,15 @@ new_array_allocated_type - 6933 + 44190 expr - 6933 + 44190 type_id - 2978 + 52 @@ -34198,7 +34313,7 @@ 1 2 - 6933 + 44190 @@ -34212,24 +34327,59 @@ 12 - 1 - 2 - 43 + 10 + 101 + 4 - 2 - 3 - 2633 + 144 + 145 + 6 - 3 - 5 - 224 + 184 + 185 + 6 - 6 - 15 - 77 + 240 + 241 + 4 + + + 325 + 326 + 4 + + + 528 + 529 + 4 + + + 875 + 912 + 4 + + + 1011 + 1012 + 2 + + + 1206 + 1207 + 6 + + + 1234 + 1583 + 4 + + + 3807 + 3808 + 4 @@ -35575,15 +35725,15 @@ condition_decl_bind - 408893 + 408922 expr - 408893 + 408922 decl - 408893 + 408922 @@ -35597,7 +35747,7 @@ 1 2 - 408893 + 408922 @@ -35613,7 +35763,7 @@ 1 2 - 408893 + 408922 @@ -35623,15 +35773,15 @@ typeid_bind - 47909 + 229949 expr - 47909 + 229949 type_id - 15947 + 10754 @@ -35645,7 +35795,7 @@ 1 2 - 47909 + 229949 @@ -35661,17 +35811,37 @@ 1 2 - 2964 + 855 2 3 - 12573 + 4120 3 - 328 - 408 + 4 + 25 + + + 4 + 5 + 2248 + + + 5 + 48 + 511 + + + 65 + 66 + 2520 + + + 68 + 663 + 472 @@ -35681,15 +35851,15 @@ uuidof_bind - 28060 + 26588 expr - 28060 + 26588 type_id - 27792 + 26336 @@ -35703,7 +35873,7 @@ 1 2 - 28060 + 26588 @@ -35719,12 +35889,12 @@ 1 2 - 27568 + 26125 2 4 - 224 + 211 @@ -35734,15 +35904,15 @@ sizeof_bind - 242027 + 393239 expr - 242027 + 393239 type_id - 11210 + 252091 @@ -35756,7 +35926,7 @@ 1 2 - 242027 + 393239 @@ -35772,42 +35942,17 @@ 1 2 - 3877 + 174174 2 3 - 2783 + 67079 3 - 4 - 1024 - - - 4 - 5 - 1140 - - - 5 - 6 - 295 - - - 6 - 7 - 1064 - - - 7 - 40 - 856 - - - 40 - 6061 - 167 + 1862 + 10837 @@ -35865,23 +36010,23 @@ lambdas - 16482 + 23413 expr - 16482 + 23413 default_capture - 25 + 19 has_explicit_return_type - 17 + 12 has_explicit_parameter_list - 17 + 12 @@ -35895,7 +36040,7 @@ 1 2 - 16482 + 23413 @@ -35911,7 +36056,7 @@ 1 2 - 16482 + 23413 @@ -35927,7 +36072,7 @@ 1 2 - 16482 + 23413 @@ -35941,19 +36086,19 @@ 12 - 276 - 277 - 8 + 14 + 15 + 6 - 697 - 698 - 8 + 436 + 437 + 6 - 936 - 937 - 8 + 3164 + 3165 + 6 @@ -35969,7 +36114,7 @@ 2 3 - 25 + 19 @@ -35982,10 +36127,15 @@ 12 + + 1 + 2 + 6 + 2 3 - 25 + 12 @@ -35999,14 +36149,14 @@ 12 - 813 - 814 - 8 + 70 + 71 + 6 - 1096 - 1097 - 8 + 3544 + 3545 + 6 @@ -36022,7 +36172,7 @@ 3 4 - 17 + 12 @@ -36038,12 +36188,12 @@ 1 2 - 8 + 6 2 3 - 8 + 6 @@ -36057,14 +36207,14 @@ 12 - 34 - 35 - 8 + 766 + 767 + 6 - 1875 - 1876 - 8 + 2848 + 2849 + 6 @@ -36077,10 +36227,15 @@ 12 + + 2 + 3 + 6 + 3 4 - 17 + 6 @@ -36096,12 +36251,12 @@ 1 2 - 8 + 6 2 3 - 8 + 6 @@ -36111,35 +36266,35 @@ lambda_capture - 28526 + 31966 id - 28526 + 31966 lambda - 13296 + 15491 index - 146 + 138 field - 28526 + 31966 captured_by_reference - 17 + 16 is_implicit - 17 + 16 location - 18398 + 17944 @@ -36153,7 +36308,7 @@ 1 2 - 28526 + 31966 @@ -36169,7 +36324,7 @@ 1 2 - 28526 + 31966 @@ -36185,7 +36340,7 @@ 1 2 - 28526 + 31966 @@ -36201,7 +36356,7 @@ 1 2 - 28526 + 31966 @@ -36217,7 +36372,7 @@ 1 2 - 28526 + 31966 @@ -36233,7 +36388,7 @@ 1 2 - 28526 + 31966 @@ -36249,27 +36404,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36285,27 +36440,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36321,27 +36476,27 @@ 1 2 - 6674 + 8212 2 3 - 3082 + 3541 3 4 - 1614 + 1657 4 6 - 1226 + 1259 6 18 - 699 + 820 @@ -36357,12 +36512,12 @@ 1 2 - 12726 + 14248 2 3 - 569 + 1242 @@ -36378,12 +36533,12 @@ 1 2 - 13270 + 15369 2 3 - 25 + 121 @@ -36399,27 +36554,27 @@ 1 2 - 7304 + 8805 2 3 - 3246 + 3696 3 4 - 1329 + 1389 4 7 - 1087 + 1291 7 18 - 328 + 308 @@ -36488,33 +36643,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36584,33 +36739,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36680,33 +36835,33 @@ 8 - 81 - 82 + 101 + 102 8 - 139 - 140 + 171 + 172 8 - 223 - 224 + 256 + 257 8 - 410 - 411 + 460 + 461 8 - 767 - 768 + 896 + 897 8 - 1540 - 1541 + 1907 + 1908 8 @@ -36723,12 +36878,12 @@ 1 2 - 34 + 32 2 3 - 112 + 105 @@ -36744,12 +36899,12 @@ 1 2 - 86 + 81 2 3 - 60 + 56 @@ -36818,33 +36973,33 @@ 8 - 65 - 66 + 66 + 67 8 - 98 - 99 + 100 + 101 8 - 179 - 180 + 182 + 183 8 - 347 - 348 + 354 + 355 8 - 585 - 586 + 604 + 605 8 - 933 - 934 + 979 + 980 8 @@ -36861,7 +37016,7 @@ 1 2 - 28526 + 31966 @@ -36877,7 +37032,7 @@ 1 2 - 28526 + 31966 @@ -36893,7 +37048,7 @@ 1 2 - 28526 + 31966 @@ -36909,7 +37064,7 @@ 1 2 - 28526 + 31966 @@ -36925,7 +37080,7 @@ 1 2 - 28526 + 31966 @@ -36941,7 +37096,7 @@ 1 2 - 28526 + 31966 @@ -36955,13 +37110,13 @@ 12 - 1180 - 1181 + 1457 + 1458 8 - 2124 - 2125 + 2478 + 2479 8 @@ -36976,13 +37131,13 @@ 12 - 590 - 591 + 819 + 820 8 - 1016 - 1017 + 1241 + 1242 8 @@ -37018,13 +37173,13 @@ 12 - 1180 - 1181 + 1457 + 1458 8 - 2124 - 2125 + 2478 + 2479 8 @@ -37041,7 +37196,7 @@ 2 3 - 17 + 16 @@ -37055,13 +37210,13 @@ 12 - 545 - 546 + 573 + 574 8 - 1589 - 1590 + 1639 + 1640 8 @@ -37076,13 +37231,13 @@ 12 - 827 - 828 + 1351 + 1352 8 - 2477 - 2478 + 2584 + 2585 8 @@ -37097,13 +37252,13 @@ 12 - 620 - 621 + 955 + 956 8 - 923 - 924 + 967 + 968 8 @@ -37139,13 +37294,13 @@ 12 - 827 - 828 + 1351 + 1352 8 - 2477 - 2478 + 2584 + 2585 8 @@ -37162,7 +37317,7 @@ 2 3 - 17 + 16 @@ -37176,13 +37331,13 @@ 12 - 328 - 329 + 377 + 378 8 - 1803 - 1804 + 1832 + 1833 8 @@ -37199,17 +37354,17 @@ 1 2 - 16568 + 15694 2 6 - 1398 + 1437 6 68 - 431 + 812 @@ -37225,12 +37380,17 @@ 1 2 - 17181 + 16271 2 + 13 + 1470 + + + 13 68 - 1217 + 203 @@ -37246,12 +37406,12 @@ 1 2 - 17665 + 17254 2 8 - 733 + 690 @@ -37267,17 +37427,17 @@ 1 2 - 16568 + 15694 2 6 - 1398 + 1437 6 68 - 431 + 812 @@ -37293,12 +37453,12 @@ 1 2 - 18373 + 17920 2 3 - 25 + 24 @@ -37314,7 +37474,7 @@ 1 2 - 18398 + 17944 @@ -37324,19 +37484,19 @@ fold - 1247 + 2481 expr - 1247 + 2481 operator - 86 + 25 is_left_fold - 21 + 6 @@ -37350,7 +37510,7 @@ 1 2 - 1247 + 2481 @@ -37366,7 +37526,7 @@ 1 2 - 1247 + 2481 @@ -37379,20 +37539,25 @@ 12 - - 1 - 2 - 43 - 2 3 - 21 + 6 - 54 - 55 - 21 + 4 + 5 + 6 + + + 88 + 89 + 6 + + + 289 + 290 + 6 @@ -37408,7 +37573,7 @@ 1 2 - 86 + 25 @@ -37422,9 +37587,9 @@ 12 - 58 - 59 - 21 + 383 + 384 + 6 @@ -37440,7 +37605,7 @@ 4 5 - 21 + 6 @@ -37450,19 +37615,19 @@ stmts - 6259661 + 9250639 id - 6259661 + 9250639 kind - 172 + 37 location - 2755017 + 9188352 @@ -37476,7 +37641,7 @@ 1 2 - 6259661 + 9250639 @@ -37492,7 +37657,7 @@ 1 2 - 6259661 + 9250639 @@ -37506,104 +37671,89 @@ 12 - 1 - 2 - 8 + 54 + 55 + 2 - 26 - 27 - 8 + 329 + 330 + 2 - 418 - 419 - 8 + 446 + 447 + 2 - 546 - 547 - 8 + 5336 + 5337 + 2 - 827 - 828 - 8 + 5518 + 5519 + 2 - 1470 - 1471 - 8 + 8693 + 8694 + 2 - 1577 - 1578 - 8 + 10165 + 10166 + 2 - 1802 - 1803 - 8 + 16790 + 16791 + 2 - 2462 - 2463 - 8 + 17470 + 17471 + 2 - 3217 - 3218 - 8 + 35858 + 35859 + 2 - 3610 - 3611 - 8 + 37397 + 37398 + 2 - 4863 - 4864 - 8 + 108238 + 108239 + 2 - 16249 - 16250 - 8 + 364498 + 364499 + 2 - 16732 - 16733 - 8 + 395010 + 395011 + 2 - 21439 - 21440 - 8 + 649782 + 649783 + 2 - 68795 - 68796 - 8 + 1092734 + 1092735 + 2 - 89075 - 89076 - 8 - - - 112007 - 112008 - 8 - - - 185649 - 185650 - 8 - - - 194240 - 194241 - 8 + 1464604 + 1464605 + 2 @@ -37617,104 +37767,89 @@ 12 - 1 - 2 - 8 + 27 + 28 + 2 - 26 - 27 - 8 + 214 + 215 + 2 - 109 - 110 - 8 + 331 + 332 + 2 - 419 - 420 - 8 + 5336 + 5337 + 2 - 778 - 779 - 8 + 5409 + 5410 + 2 - 1079 - 1080 - 8 + 8693 + 8694 + 2 - 1311 - 1312 - 8 + 9889 + 9890 + 2 - 1347 - 1348 - 8 + 16783 + 16784 + 2 - 1388 - 1389 - 8 + 17470 + 17471 + 2 - 2061 - 2062 - 8 + 35808 + 35809 + 2 - 2309 - 2310 - 8 + 37397 + 37398 + 2 - 2476 - 2477 - 8 + 108238 + 108239 + 2 - 7043 - 7044 - 8 + 358157 + 358158 + 2 - 8622 - 8623 - 8 + 394187 + 394188 + 2 - 11206 - 11207 - 8 + 647908 + 647909 + 2 - 36340 - 36341 - 8 + 1086119 + 1086120 + 2 - 43405 - 43406 - 8 - - - 47752 - 47753 - 8 - - - 83834 - 83835 - 8 - - - 97372 - 97373 - 8 + 1461298 + 1461299 + 2 @@ -37730,17 +37865,12 @@ 1 2 - 2353184 + 9166275 2 - 4 - 239108 - - - 4 - 1581 - 162724 + 217 + 22076 @@ -37756,12 +37886,12 @@ 1 2 - 2668298 + 9169716 2 - 10 - 86719 + 6 + 18635 @@ -37819,15 +37949,15 @@ variable_vla - 30 + 267 var - 30 + 267 decl - 30 + 267 @@ -37841,7 +37971,7 @@ 1 2 - 30 + 267 @@ -37857,7 +37987,7 @@ 1 2 - 30 + 267 @@ -37867,26 +37997,26 @@ type_is_vla - 43 + 523 type_id - 43 + 523 if_initialization - 374 + 1762 if_stmt - 374 + 1762 init_id - 374 + 1762 @@ -37900,7 +38030,7 @@ 1 2 - 374 + 1762 @@ -37916,7 +38046,7 @@ 1 2 - 374 + 1762 @@ -37974,15 +38104,15 @@ if_else - 437078 + 437108 if_stmt - 437078 + 437108 else_id - 437078 + 437108 @@ -37996,7 +38126,7 @@ 1 2 - 437078 + 437108 @@ -38012,7 +38142,7 @@ 1 2 - 437078 + 437108 @@ -38070,15 +38200,15 @@ constexpr_if_then - 103814 + 818798 constexpr_if_stmt - 103814 + 818798 then_id - 103814 + 818798 @@ -38092,7 +38222,7 @@ 1 2 - 103814 + 818798 @@ -38108,7 +38238,7 @@ 1 2 - 103814 + 818798 @@ -38118,15 +38248,15 @@ constexpr_if_else - 73956 + 216571 constexpr_if_stmt - 73956 + 216571 else_id - 73956 + 216571 @@ -38140,7 +38270,7 @@ 1 2 - 73956 + 216571 @@ -38156,7 +38286,7 @@ 1 2 - 73956 + 216571 @@ -38262,15 +38392,15 @@ while_body - 39647 + 46675 while_stmt - 39647 + 46675 body_id - 39647 + 46675 @@ -38284,7 +38414,7 @@ 1 2 - 39647 + 46675 @@ -38300,7 +38430,7 @@ 1 2 - 39647 + 46675 @@ -38310,15 +38440,15 @@ do_body - 233641 + 551349 do_stmt - 233641 + 551349 body_id - 233641 + 551349 @@ -38332,7 +38462,7 @@ 1 2 - 233641 + 551349 @@ -38348,7 +38478,7 @@ 1 2 - 233641 + 551349 @@ -38406,11 +38536,11 @@ switch_case - 836096 + 836154 switch_stmt - 411840 + 411869 index @@ -38418,7 +38548,7 @@ case_id - 836096 + 836154 @@ -38437,7 +38567,7 @@ 2 3 - 408957 + 408986 3 @@ -38463,7 +38593,7 @@ 2 3 - 408957 + 408986 3 @@ -38626,7 +38756,7 @@ 1 2 - 836096 + 836154 @@ -38642,7 +38772,7 @@ 1 2 - 836096 + 836154 @@ -38652,15 +38782,15 @@ switch_body - 411840 + 411869 switch_stmt - 411840 + 411869 body_id - 411840 + 411869 @@ -38674,7 +38804,7 @@ 1 2 - 411840 + 411869 @@ -38690,7 +38820,7 @@ 1 2 - 411840 + 411869 @@ -38700,15 +38830,15 @@ for_initialization - 73246 + 113752 for_stmt - 73246 + 113752 init_id - 73246 + 113752 @@ -38722,7 +38852,7 @@ 1 2 - 73246 + 113752 @@ -38738,7 +38868,7 @@ 1 2 - 73246 + 113752 @@ -38748,15 +38878,15 @@ for_condition - 76341 + 121024 for_stmt - 76341 + 121024 condition_id - 76341 + 121024 @@ -38770,7 +38900,7 @@ 1 2 - 76341 + 121024 @@ -38786,7 +38916,7 @@ 1 2 - 76341 + 121024 @@ -38796,15 +38926,15 @@ for_update - 73386 + 120586 for_stmt - 73386 + 120586 update_id - 73386 + 120586 @@ -38818,7 +38948,7 @@ 1 2 - 73386 + 120586 @@ -38834,7 +38964,7 @@ 1 2 - 73386 + 120586 @@ -38844,15 +38974,15 @@ for_body - 84389 + 121083 for_stmt - 84389 + 121083 body_id - 84389 + 121083 @@ -38866,7 +38996,7 @@ 1 2 - 84389 + 121083 @@ -38882,7 +39012,7 @@ 1 2 - 84389 + 121083 @@ -38892,19 +39022,19 @@ stmtparents - 5524463 + 8452090 id - 5524463 + 8452090 index - 16767 + 83 parent - 2342634 + 3414860 @@ -38918,7 +39048,7 @@ 1 2 - 5524463 + 8452090 @@ -38934,7 +39064,7 @@ 1 2 - 5524463 + 8452090 @@ -38948,54 +39078,64 @@ 12 - 1 - 2 - 5508 + 17 + 18 + 15 - 2 - 3 - 1372 + 34 + 35 + 8 - 3 - 4 - 302 + 187 + 188 + 4 - 4 - 5 - 2132 + 340 + 341 + 8 - 7 - 8 - 1398 + 390 + 409 + 4 - 8 - 12 - 1087 + 4849 + 5162 + 6 - 12 - 29 - 1476 + 12786 + 13635 + 6 - 29 - 38 - 1260 + 18763 + 30401 + 6 - 41 - 77 - 1269 + 39042 + 62308 + 6 - 77 - 195079 - 958 + 96495 + 258328 + 6 + + + 398532 + 819173 + 6 + + + 1128546 + 1128547 + 2 @@ -39009,54 +39149,64 @@ 12 - 1 - 2 - 5508 + 17 + 18 + 15 - 2 - 3 - 1372 + 34 + 35 + 8 - 3 - 4 - 302 + 187 + 188 + 4 - 4 - 5 - 2132 + 340 + 341 + 8 - 7 - 8 - 1398 + 390 + 409 + 4 - 8 - 12 - 1087 + 4849 + 5162 + 6 - 12 - 29 - 1476 + 12786 + 13635 + 6 - 29 - 38 - 1260 + 18763 + 30401 + 6 - 41 - 77 - 1269 + 39042 + 62308 + 6 - 77 - 195079 - 958 + 96495 + 258328 + 6 + + + 398532 + 819173 + 6 + + + 1128546 + 1128547 + 2 @@ -39072,32 +39222,32 @@ 1 2 - 1344600 + 1716470 2 3 - 507832 + 786112 3 4 - 144135 + 265976 4 6 - 151439 + 262417 6 - 16 - 175795 + 9 + 273890 - 16 - 1943 - 18830 + 9 + 39 + 109993 @@ -39113,32 +39263,32 @@ 1 2 - 1344600 + 1716470 2 3 - 507832 + 786112 3 4 - 144135 + 265976 4 6 - 151439 + 262417 6 - 16 - 175795 + 9 + 273890 - 16 - 1943 - 18830 + 9 + 39 + 109993 @@ -39148,30 +39298,30 @@ ishandler - 43747 + 43746 block - 43747 + 43746 stmt_decl_bind - 721594 + 1446255 stmt - 681632 + 1426175 num - 124 + 6 decl - 721526 + 1446246 @@ -39185,12 +39335,12 @@ 1 2 - 659683 + 1410088 2 - 32 - 21949 + 4 + 16086 @@ -39206,12 +39356,12 @@ 1 2 - 659683 + 1410088 2 - 32 - 21949 + 4 + 16086 @@ -39225,54 +39375,19 @@ 12 - 1 - 2 - 52 + 1819 + 1820 + 2 - 2 - 3 - 8 + 7326 + 7327 + 2 - 3 - 5 - 8 - - - 7 - 11 - 8 - - - 11 - 15 - 8 - - - 21 - 45 - 8 - - - 86 - 121 - 8 - - - 204 - 356 - 8 - - - 1063 - 2539 - 8 - - - 5480 - 170179 - 8 + 649508 + 649509 + 2 @@ -39286,54 +39401,19 @@ 12 - 1 - 2 - 52 + 1819 + 1820 + 2 - 2 - 3 - 8 + 7326 + 7327 + 2 - 3 - 5 - 8 - - - 7 - 11 - 8 - - - 11 - 15 - 8 - - - 21 - 45 - 8 - - - 86 - 121 - 8 - - - 204 - 356 - 8 - - - 1063 - 2539 - 8 - - - 5480 - 170162 - 8 + 649504 + 649505 + 2 @@ -39349,12 +39429,12 @@ 1 2 - 721502 + 1446237 2 - 8 - 24 + 3 + 8 @@ -39370,7 +39450,7 @@ 1 2 - 721526 + 1446246 @@ -39380,19 +39460,19 @@ stmt_decl_entry_bind - 721594 + 1446255 stmt - 681632 + 1426175 num - 124 + 6 decl_entry - 721594 + 1446251 @@ -39406,12 +39486,12 @@ 1 2 - 659683 + 1410088 2 - 32 - 21949 + 4 + 16086 @@ -39427,12 +39507,12 @@ 1 2 - 659683 + 1410088 2 - 32 - 21949 + 4 + 16086 @@ -39446,54 +39526,19 @@ 12 - 1 - 2 - 52 + 1819 + 1820 + 2 - 2 - 3 - 8 + 7326 + 7327 + 2 - 3 - 5 - 8 - - - 7 - 11 - 8 - - - 11 - 15 - 8 - - - 21 - 45 - 8 - - - 86 - 121 - 8 - - - 204 - 356 - 8 - - - 1063 - 2539 - 8 - - - 5480 - 170179 - 8 + 649508 + 649509 + 2 @@ -39507,54 +39552,19 @@ 12 - 1 - 2 - 52 + 1819 + 1820 + 2 - 2 - 3 - 8 + 7326 + 7327 + 2 - 3 - 5 - 8 - - - 7 - 11 - 8 - - - 11 - 15 - 8 - - - 21 - 45 - 8 - - - 86 - 121 - 8 - - - 204 - 356 - 8 - - - 1063 - 2539 - 8 - - - 5480 - 170179 - 8 + 649506 + 649507 + 2 @@ -39570,7 +39580,12 @@ 1 2 - 721594 + 1446246 + + + 2 + 3 + 4 @@ -39586,7 +39601,7 @@ 1 2 - 721594 + 1446251 @@ -39596,15 +39611,15 @@ blockscope - 1762474 + 2399400 block - 1762474 + 2399400 enclosing - 1507372 + 1756668 @@ -39618,7 +39633,7 @@ 1 2 - 1762474 + 2399400 @@ -39634,17 +39649,22 @@ 1 2 - 1336222 + 1408995 2 3 - 128550 + 210329 3 - 28 - 42600 + 9 + 136478 + + + 9 + 18 + 865 @@ -39654,19 +39674,19 @@ jumpinfo - 348320 + 896574 id - 348320 + 896574 str - 28948 + 999 target - 72706 + 283522 @@ -39680,7 +39700,7 @@ 1 2 - 348320 + 896574 @@ -39696,7 +39716,7 @@ 1 2 - 348320 + 896574 @@ -39709,40 +39729,55 @@ 12 + + 1 + 2 + 13 + 2 3 - 13596 + 270 3 4 - 6058 + 81 4 5 - 2014 + 168 5 6 - 1888 + 40 6 - 10 - 2197 + 7 + 108 + + + 7 + 9 + 87 10 - 25 - 2189 + 13 + 81 - 25 - 13711 - 1002 + 14 + 38 + 81 + + + 38 + 129945 + 67 @@ -39758,17 +39793,22 @@ 1 2 - 23190 + 459 2 3 - 3626 + 371 3 - 3321 - 2131 + 8 + 87 + + + 9 + 41246 + 81 @@ -39789,27 +39829,22 @@ 2 3 - 36210 + 93041 3 4 - 17633 + 69899 4 5 - 7379 + 116224 5 - 8 - 6418 - - - 8 - 2124 - 5030 + 50 + 4323 @@ -39825,7 +39860,7 @@ 1 2 - 72706 + 283522 @@ -39835,19 +39870,19 @@ preprocdirects - 5401355 + 35868911 id - 5401355 + 35868911 kind - 1374 + 9691 location - 5398107 + 35847591 @@ -39861,7 +39896,7 @@ 1 2 - 5401355 + 35868911 @@ -39877,7 +39912,7 @@ 1 2 - 5401355 + 35868911 @@ -39891,59 +39926,54 @@ 12 - 1 - 2 - 124 + 108 + 109 + 969 - 145 - 146 - 124 + 401 + 402 + 969 - 808 - 809 - 124 + 600 + 601 + 969 - 866 - 867 - 124 + 703 + 704 + 969 - 973 - 974 - 124 + 1172 + 1173 + 969 - 1509 - 1510 - 124 + 1441 + 1442 + 969 - 1891 - 1892 - 124 + 2328 + 2329 + 969 - 3256 - 3257 - 124 + 3104 + 3105 + 969 - 4714 - 4715 - 124 + 4979 + 4980 + 969 - 7089 - 7090 - 124 - - - 21984 - 21985 - 124 + 22176 + 22177 + 969 @@ -39957,59 +39987,54 @@ 12 - 1 - 2 - 124 + 108 + 109 + 969 - 145 - 146 - 124 + 401 + 402 + 969 - 808 - 809 - 124 + 600 + 601 + 969 - 866 - 867 - 124 + 703 + 704 + 969 - 973 - 974 - 124 + 1172 + 1173 + 969 - 1509 - 1510 - 124 + 1441 + 1442 + 969 - 1891 - 1892 - 124 + 2328 + 2329 + 969 - 3256 - 3257 - 124 + 3104 + 3105 + 969 - 4714 - 4715 - 124 + 4979 + 4980 + 969 - 7089 - 7090 - 124 - - - 21958 - 21959 - 124 + 22154 + 22155 + 969 @@ -40025,12 +40050,12 @@ 1 2 - 5397982 + 35846622 - 27 - 28 - 124 + 23 + 24 + 969 @@ -40046,7 +40071,7 @@ 1 2 - 5398107 + 35847591 @@ -40056,15 +40081,15 @@ preprocpair - 1139961 + 6326387 begin - 885609 + 4825227 elseelifend - 1139961 + 6326387 @@ -40078,17 +40103,17 @@ 1 2 - 644874 + 3400627 2 3 - 231115 + 1373237 3 9 - 9619 + 51363 @@ -40104,7 +40129,7 @@ 1 2 - 1139961 + 6326387 @@ -40114,41 +40139,41 @@ preproctrue - 437245 + 3104077 branch - 437245 + 3104077 preprocfalse - 284334 + 1486623 branch - 284334 + 1486623 preproctext - 4347469 + 30249978 id - 4347469 + 30249978 head - 2951406 + 22698628 body - 1679397 + 13053989 @@ -40162,7 +40187,7 @@ 1 2 - 4347469 + 30249978 @@ -40178,7 +40203,7 @@ 1 2 - 4347469 + 30249978 @@ -40194,12 +40219,12 @@ 1 2 - 2754896 + 21510493 2 - 798 - 196510 + 806 + 1188135 @@ -40215,12 +40240,12 @@ 1 2 - 2871828 + 22123943 2 5 - 79578 + 574685 @@ -40236,17 +40261,17 @@ 1 2 - 1530983 + 11998622 2 - 10 - 127550 + 22 + 981714 - 10 - 13579 - 20862 + 22 + 9704 + 73652 @@ -40262,17 +40287,17 @@ 1 2 - 1535231 + 12021880 2 - 12 - 127175 + 30 + 979776 - 12 - 3231 - 16990 + 30 + 2661 + 52332 @@ -40282,15 +40307,15 @@ includes - 364707 + 491808 id - 364707 + 491808 included - 67182 + 10166 @@ -40304,7 +40329,7 @@ 1 2 - 364707 + 491808 @@ -40319,38 +40344,23 @@ 1 - 2 - 33246 - - - 2 3 - 10808 + 577 3 4 - 5670 + 5963 4 - 6 - 6129 + 5 + 3473 - 6 - 11 - 5174 - - - 11 - 47 - 5041 - - - 47 - 793 - 1112 + 5 + 104467 + 151 @@ -40360,15 +40370,15 @@ link_targets - 846 + 11917 id - 846 + 11917 binary - 846 + 11917 @@ -40382,7 +40392,7 @@ 1 2 - 846 + 11917 @@ -40398,7 +40408,7 @@ 1 2 - 846 + 11917 @@ -40408,15 +40418,15 @@ link_parent - 30397762 + 80819473 element - 3866154 + 2994819 link_target - 340 + 808 @@ -40430,17 +40440,27 @@ 1 2 - 530553 + 2268833 2 - 9 - 26953 + 11 + 225604 - 9 - 10 - 3308647 + 11 + 123 + 103414 + + + 123 + 208 + 224687 + + + 208 + 271 + 172279 @@ -40454,54 +40474,69 @@ 12 - 3 - 4 - 34 + 7874 + 56288 + 62 - 97356 - 97357 - 34 + 56342 + 57366 + 62 - 97475 - 97476 - 34 + 57487 + 59251 + 62 - 97528 - 97529 - 34 + 59254 + 59689 + 62 - 97555 - 97556 - 34 + 60594 + 63583 + 62 - 97577 - 97578 - 34 + 63598 + 68732 + 62 - 97609 - 97610 - 34 + 69160 + 90331 + 62 - 99616 - 99617 - 34 + 121994 + 133055 + 62 - 102996 - 102997 - 34 + 133109 + 141061 + 62 - 104360 - 104361 - 34 + 141068 + 144417 + 62 + + + 144454 + 147437 + 62 + + + 147926 + 156061 + 62 + + + 156083 + 249351 + 53 From 73126fef9e3f5cdca836ea320043efd7ea497b55 Mon Sep 17 00:00:00 2001 From: Napalys Klicius Date: Wed, 25 Jun 2025 09:26:26 +0200 Subject: [PATCH 300/340] JS: update change note. --- javascript/ql/lib/change-notes/2025-06-20-execa.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/javascript/ql/lib/change-notes/2025-06-20-execa.md b/javascript/ql/lib/change-notes/2025-06-20-execa.md index 41459ec9c24..b22afe593f8 100644 --- a/javascript/ql/lib/change-notes/2025-06-20-execa.md +++ b/javascript/ql/lib/change-notes/2025-06-20-execa.md @@ -1,4 +1,4 @@ --- category: minorAnalysis --- -* The model for the `execa` library has been promoted from experimental to stable. +* Enhanced modeling for the `execa` library, adding support for command execution methods `execaCommand`, `execaCommandSync`, `$`, and `$.sync`, as well as file system operations through `inputFile`, `pipeStdout`, `pipeAll`, and `pipeStderr`. From 869ba0d246c252122cf65abd603e5c2e243dbf09 Mon Sep 17 00:00:00 2001 From: Kasper Svendsen Date: Wed, 25 Jun 2025 09:22:23 +0200 Subject: [PATCH 301/340] Use regex to match overlay annotations --- config/add-overlay-annotations.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/add-overlay-annotations.py b/config/add-overlay-annotations.py index c6e3db24ae0..85b42026d8d 100644 --- a/config/add-overlay-annotations.py +++ b/config/add-overlay-annotations.py @@ -17,16 +17,16 @@ #!/usr/bin/python3 import sys import os +import re from difflib import context_diff +OVERLAY_PATTERN = re.compile(r'overlay\[[a-zA-Z?_-]+\]') def has_overlay_annotations(lines): ''' Check whether the given lines contain any overlay[...] annotations. ''' - overlays = ["local", "local?", "global", "caller", "caller?"] - annotations = [f"overlay[{t}]" for t in overlays] - return any(ann in line for ann in annotations for line in lines) + return any(OVERLAY_PATTERN.search(line) for line in lines) def is_line_comment(line): From 6bbf1e3bc1eadb7ee9e013677d458469b0643250 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Jun 2025 11:44:54 +0200 Subject: [PATCH 302/340] Codegen: use one generated test file per directory This collapses all generated test QL sources into a single one per directory, using query predicates to run the different tests. This should improve the time required to run generated tests. --- misc/codegen/generators/qlgen.py | 22 +- misc/codegen/lib/ql.py | 7 - misc/codegen/templates/ql_test_class.mustache | 32 +- .../templates/ql_test_property.mustache | 10 - misc/codegen/test/test_qlgen.py | 41 +- rust/ql/.generated.list | 768 ++++-------------- rust/ql/.gitattributes | 450 ---------- .../generated/Abi/Abi.expected | 3 + .../test/extractor-tests/generated/Abi/Abi.ql | 10 +- .../generated/Abi/Abi_getAbiString.expected | 1 - .../generated/Abi/Abi_getAbiString.ql | 7 - .../extractor-tests/generated/Abi/Cargo.lock | 7 + .../generated/ArgList/ArgList.expected | 5 + .../generated/ArgList/ArgList.ql | 10 +- .../generated/ArgList/ArgList_getArg.expected | 3 - .../generated/ArgList/ArgList_getArg.ql | 7 - .../generated/ArgList/Cargo.lock | 7 + .../ArrayListExpr/ArrayListExpr.expected | 6 + .../generated/ArrayListExpr/ArrayListExpr.ql | 18 +- .../ArrayListExpr_getAttr.expected | 0 .../ArrayListExpr/ArrayListExpr_getAttr.ql | 7 - .../ArrayListExpr_getExpr.expected | 3 - .../ArrayListExpr/ArrayListExpr_getExpr.ql | 7 - .../generated/ArrayListExpr/Cargo.lock | 7 + .../ArrayRepeatExpr/ArrayRepeatExpr.expected | 5 + .../ArrayRepeatExpr/ArrayRepeatExpr.ql | 24 +- .../ArrayRepeatExpr_getAttr.expected | 0 .../ArrayRepeatExpr_getAttr.ql | 7 - .../ArrayRepeatExpr_getExpr.expected | 2 - .../ArrayRepeatExpr_getExpr.ql | 7 - .../generated/ArrayRepeatExpr/Cargo.lock | 7 + .../ArrayTypeRepr/ArrayTypeRepr.expected | 5 + .../generated/ArrayTypeRepr/ArrayTypeRepr.ql | 18 +- .../ArrayTypeRepr_getConstArg.expected | 1 - .../ArrayTypeRepr_getConstArg.ql | 7 - .../ArrayTypeRepr_getElementTypeRepr.expected | 1 - .../ArrayTypeRepr_getElementTypeRepr.ql | 7 - .../generated/ArrayTypeRepr/Cargo.lock | 7 + .../generated/AsmClobberAbi/AsmClobberAbi.ql | 4 +- .../generated/AsmClobberAbi/Cargo.lock | 7 + .../generated/AsmConst/AsmConst.expected | 3 + .../generated/AsmConst/AsmConst.ql | 13 +- .../AsmConst/AsmConst_getExpr.expected | 1 - .../generated/AsmConst/AsmConst_getExpr.ql | 7 - .../generated/AsmConst/Cargo.lock | 7 + .../generated/AsmDirSpec/AsmDirSpec.ql | 4 +- .../generated/AsmDirSpec/Cargo.lock | 7 + .../generated/AsmExpr/AsmExpr.expected | 8 + .../generated/AsmExpr/AsmExpr.ql | 25 +- .../AsmExpr/AsmExpr_getAsmPiece.expected | 2 - .../generated/AsmExpr/AsmExpr_getAsmPiece.ql | 7 - .../AsmExpr/AsmExpr_getAttr.expected | 1 - .../generated/AsmExpr/AsmExpr_getAttr.ql | 7 - .../AsmExpr/AsmExpr_getTemplate.expected | 1 - .../generated/AsmExpr/AsmExpr_getTemplate.ql | 7 - .../generated/AsmExpr/Cargo.lock | 7 + .../generated/AsmLabel/AsmLabel.expected | 3 + .../generated/AsmLabel/AsmLabel.ql | 10 +- .../AsmLabel/AsmLabel_getBlockExpr.expected | 1 - .../AsmLabel/AsmLabel_getBlockExpr.ql | 7 - .../generated/AsmLabel/Cargo.lock | 7 + .../AsmOperandExpr/AsmOperandExpr.expected | 7 + .../AsmOperandExpr/AsmOperandExpr.ql | 18 +- .../AsmOperandExpr_getInExpr.expected | 2 - .../AsmOperandExpr_getInExpr.ql | 7 - .../AsmOperandExpr_getOutExpr.expected | 2 - .../AsmOperandExpr_getOutExpr.ql | 7 - .../generated/AsmOperandExpr/Cargo.lock | 7 + .../AsmOperandNamed/AsmOperandNamed.expected | 6 + .../AsmOperandNamed/AsmOperandNamed.ql | 18 +- .../AsmOperandNamed_getAsmOperand.expected | 2 - .../AsmOperandNamed_getAsmOperand.ql | 7 - .../AsmOperandNamed_getName.expected | 1 - .../AsmOperandNamed_getName.ql | 7 - .../generated/AsmOperandNamed/Cargo.lock | 7 + .../generated/AsmOption/AsmOption.ql | 6 +- .../generated/AsmOption/Cargo.lock | 7 + .../AsmOptionsList/AsmOptionsList.expected | 4 + .../AsmOptionsList/AsmOptionsList.ql | 12 +- .../AsmOptionsList_getAsmOption.expected | 2 - .../AsmOptionsList_getAsmOption.ql | 7 - .../generated/AsmOptionsList/Cargo.lock | 7 + .../AsmRegOperand/AsmRegOperand.expected | 10 + .../generated/AsmRegOperand/AsmRegOperand.ql | 25 +- .../AsmRegOperand_getAsmDirSpec.expected | 2 - .../AsmRegOperand_getAsmDirSpec.ql | 7 - .../AsmRegOperand_getAsmOperandExpr.expected | 2 - .../AsmRegOperand_getAsmOperandExpr.ql | 7 - .../AsmRegOperand_getAsmRegSpec.expected | 2 - .../AsmRegOperand_getAsmRegSpec.ql | 7 - .../generated/AsmRegOperand/Cargo.lock | 7 + .../generated/AsmRegSpec/AsmRegSpec.expected | 3 + .../generated/AsmRegSpec/AsmRegSpec.ql | 10 +- .../AsmRegSpec_getIdentifier.expected | 1 - .../AsmRegSpec/AsmRegSpec_getIdentifier.ql | 7 - .../generated/AsmRegSpec/Cargo.lock | 7 + .../generated/AsmSym/AsmSym.expected | 3 + .../generated/AsmSym/AsmSym.ql | 10 +- .../generated/AsmSym/AsmSym_getPath.expected | 1 - .../generated/AsmSym/AsmSym_getPath.ql | 7 - .../generated/AsmSym/Cargo.lock | 7 + .../AssocTypeArg/AssocTypeArg.expected | 11 + .../generated/AssocTypeArg/AssocTypeArg.ql | 56 +- .../AssocTypeArg_getConstArg.expected | 0 .../AssocTypeArg/AssocTypeArg_getConstArg.ql | 7 - .../AssocTypeArg_getGenericArgList.expected | 0 .../AssocTypeArg_getGenericArgList.ql | 7 - .../AssocTypeArg_getIdentifier.expected | 1 - .../AssocTypeArg_getIdentifier.ql | 7 - .../AssocTypeArg_getParamList.expected | 0 .../AssocTypeArg/AssocTypeArg_getParamList.ql | 7 - .../AssocTypeArg_getRetType.expected | 0 .../AssocTypeArg/AssocTypeArg_getRetType.ql | 7 - .../AssocTypeArg_getReturnTypeSyntax.expected | 0 .../AssocTypeArg_getReturnTypeSyntax.ql | 7 - .../AssocTypeArg_getTypeBoundList.expected | 1 - .../AssocTypeArg_getTypeBoundList.ql | 7 - .../AssocTypeArg_getTypeRepr.expected | 0 .../AssocTypeArg/AssocTypeArg_getTypeRepr.ql | 7 - .../generated/AssocTypeArg/Cargo.lock | 7 + .../generated/Attr/Attr.expected | 3 + .../extractor-tests/generated/Attr/Attr.ql | 10 +- .../generated/Attr/Attr_getMeta.expected | 1 - .../generated/Attr/Attr_getMeta.ql | 7 - .../extractor-tests/generated/Attr/Cargo.lock | 7 + .../generated/AwaitExpr/AwaitExpr.expected | 4 + .../generated/AwaitExpr/AwaitExpr.ql | 18 +- .../AwaitExpr/AwaitExpr_getAttr.expected | 0 .../generated/AwaitExpr/AwaitExpr_getAttr.ql | 7 - .../AwaitExpr/AwaitExpr_getExpr.expected | 1 - .../generated/AwaitExpr/AwaitExpr_getExpr.ql | 7 - .../generated/AwaitExpr/Cargo.lock | 7 + .../generated/BecomeExpr/BecomeExpr.expected | 4 + .../generated/BecomeExpr/BecomeExpr.ql | 18 +- .../BecomeExpr/BecomeExpr_getAttr.expected | 0 .../BecomeExpr/BecomeExpr_getAttr.ql | 7 - .../BecomeExpr/BecomeExpr_getExpr.expected | 1 - .../BecomeExpr/BecomeExpr_getExpr.ql | 7 - .../generated/BecomeExpr/Cargo.lock | 7 + .../generated/BinaryExpr/BinaryExpr.expected | 20 + .../generated/BinaryExpr/BinaryExpr.ql | 30 +- .../BinaryExpr/BinaryExpr_getAttr.expected | 0 .../BinaryExpr/BinaryExpr_getAttr.ql | 7 - .../BinaryExpr/BinaryExpr_getLhs.expected | 5 - .../generated/BinaryExpr/BinaryExpr_getLhs.ql | 7 - .../BinaryExpr_getOperatorName.expected | 5 - .../BinaryExpr/BinaryExpr_getOperatorName.ql | 7 - .../BinaryExpr/BinaryExpr_getRhs.expected | 5 - .../generated/BinaryExpr/BinaryExpr_getRhs.ql | 7 - .../generated/BinaryExpr/Cargo.lock | 7 + .../generated/BlockExpr/BlockExpr.expected | 8 + .../generated/BlockExpr/BlockExpr.ql | 36 +- .../BlockExpr/BlockExpr_getAttr.expected | 0 .../generated/BlockExpr/BlockExpr_getAttr.ql | 7 - .../BlockExpr/BlockExpr_getLabel.expected | 1 - .../generated/BlockExpr/BlockExpr_getLabel.ql | 7 - .../BlockExpr/BlockExpr_getStmtList.expected | 3 - .../BlockExpr/BlockExpr_getStmtList.ql | 7 - .../generated/BlockExpr/Cargo.lock | 7 + .../generated/BoxPat/BoxPat.expected | 4 + .../generated/BoxPat/BoxPat.ql | 10 +- .../generated/BoxPat/BoxPat_getPat.expected | 2 - .../generated/BoxPat/BoxPat_getPat.ql | 7 - .../generated/BoxPat/Cargo.lock | 7 + .../generated/BreakExpr/BreakExpr.expected | 8 + .../generated/BreakExpr/BreakExpr.ql | 23 +- .../BreakExpr/BreakExpr_getAttr.expected | 0 .../generated/BreakExpr/BreakExpr_getAttr.ql | 7 - .../BreakExpr/BreakExpr_getExpr.expected | 2 - .../generated/BreakExpr/BreakExpr_getExpr.ql | 7 - .../BreakExpr/BreakExpr_getLifetime.expected | 2 - .../BreakExpr/BreakExpr_getLifetime.ql | 7 - .../generated/BreakExpr/Cargo.lock | 7 + .../generated/CallExpr/CallExpr.expected | 17 + .../generated/CallExpr/CallExpr.ql | 30 +- .../CallExpr/CallExpr_getArg.expected | 4 - .../generated/CallExpr/CallExpr_getArg.ql | 7 - .../CallExpr/CallExpr_getArgList.expected | 4 - .../generated/CallExpr/CallExpr_getArgList.ql | 7 - .../CallExpr/CallExpr_getAttr.expected | 0 .../generated/CallExpr/CallExpr_getAttr.ql | 7 - .../CallExpr/CallExpr_getFunction.expected | 4 - .../CallExpr/CallExpr_getFunction.ql | 7 - .../generated/CallExpr/Cargo.lock | 7 + .../generated/CastExpr/Cargo.lock | 7 + .../generated/CastExpr/CastExpr.expected | 6 + .../generated/CastExpr/CastExpr.ql | 23 +- .../CastExpr/CastExpr_getAttr.expected | 0 .../generated/CastExpr/CastExpr_getAttr.ql | 7 - .../CastExpr/CastExpr_getExpr.expected | 1 - .../generated/CastExpr/CastExpr_getExpr.ql | 7 - .../CastExpr/CastExpr_getTypeRepr.expected | 1 - .../CastExpr/CastExpr_getTypeRepr.ql | 7 - .../generated/ClosureBinder/Cargo.lock | 7 + .../ClosureBinder/ClosureBinder.expected | 3 + .../generated/ClosureBinder/ClosureBinder.ql | 12 +- ...ClosureBinder_getGenericParamList.expected | 1 - .../ClosureBinder_getGenericParamList.ql | 7 - .../generated/ClosureExpr/Cargo.lock | 7 + .../ClosureExpr/ClosureExpr.expected | 26 + .../generated/ClosureExpr/ClosureExpr.ql | 53 +- .../ClosureExpr/ClosureExpr_getAttr.expected | 2 - .../ClosureExpr/ClosureExpr_getAttr.ql | 7 - .../ClosureExpr/ClosureExpr_getBody.expected | 5 - .../ClosureExpr/ClosureExpr_getBody.ql | 7 - .../ClosureExpr_getClosureBinder.expected | 0 .../ClosureExpr_getClosureBinder.ql | 7 - .../ClosureExpr/ClosureExpr_getParam.expected | 6 - .../ClosureExpr/ClosureExpr_getParam.ql | 7 - .../ClosureExpr_getParamList.expected | 5 - .../ClosureExpr/ClosureExpr_getParamList.ql | 7 - .../ClosureExpr_getRetType.expected | 1 - .../ClosureExpr/ClosureExpr_getRetType.ql | 7 - .../generated/Comment/Cargo.lock | 7 + .../generated/Comment/Comment.ql | 9 +- .../generated/Const/Const.expected | 14 + .../extractor-tests/generated/Const/Const.ql | 78 +- .../generated/Const/Const_getAttr.expected | 0 .../generated/Const/Const_getAttr.ql | 7 - .../Const_getAttributeMacroExpansion.expected | 0 .../Const/Const_getAttributeMacroExpansion.ql | 7 - .../generated/Const/Const_getBody.expected | 1 - .../generated/Const/Const_getBody.ql | 7 - .../Const/Const_getCrateOrigin.expected | 0 .../generated/Const/Const_getCrateOrigin.ql | 7 - .../Const_getExtendedCanonicalPath.expected | 0 .../Const/Const_getExtendedCanonicalPath.ql | 7 - .../Const/Const_getGenericParamList.expected | 0 .../Const/Const_getGenericParamList.ql | 7 - .../generated/Const/Const_getName.expected | 1 - .../generated/Const/Const_getName.ql | 7 - .../Const/Const_getTypeRepr.expected | 1 - .../generated/Const/Const_getTypeRepr.ql | 7 - .../Const/Const_getVisibility.expected | 0 .../generated/Const/Const_getVisibility.ql | 7 - .../Const/Const_getWhereClause.expected | 0 .../generated/Const/Const_getWhereClause.ql | 7 - .../generated/ConstArg/Cargo.lock | 7 + .../generated/ConstArg/ConstArg.expected | 3 + .../generated/ConstArg/ConstArg.ql | 10 +- .../ConstArg/ConstArg_getExpr.expected | 1 - .../generated/ConstArg/ConstArg_getExpr.ql | 7 - .../generated/ConstBlockPat/Cargo.lock | 7 + .../ConstBlockPat/ConstBlockPat.expected | 3 + .../generated/ConstBlockPat/ConstBlockPat.ql | 14 +- .../ConstBlockPat_getBlockExpr.expected | 1 - .../ConstBlockPat_getBlockExpr.ql | 7 - .../generated/ConstParam/Cargo.lock | 7 + .../generated/ConstParam/ConstParam.expected | 7 + .../generated/ConstParam/ConstParam.ql | 33 +- .../ConstParam/ConstParam_getAttr.expected | 0 .../ConstParam/ConstParam_getAttr.ql | 7 - .../ConstParam_getDefaultVal.expected | 0 .../ConstParam/ConstParam_getDefaultVal.ql | 7 - .../ConstParam/ConstParam_getName.expected | 1 - .../ConstParam/ConstParam_getName.ql | 7 - .../ConstParam_getTypeRepr.expected | 1 - .../ConstParam/ConstParam_getTypeRepr.ql | 7 - .../generated/ContinueExpr/Cargo.lock | 7 + .../ContinueExpr/ContinueExpr.expected | 4 + .../generated/ContinueExpr/ContinueExpr.ql | 18 +- .../ContinueExpr_getAttr.expected | 0 .../ContinueExpr/ContinueExpr_getAttr.ql | 7 - .../ContinueExpr_getLifetime.expected | 1 - .../ContinueExpr/ContinueExpr_getLifetime.ql | 7 - .../generated/DynTraitTypeRepr/Cargo.lock | 7 + .../DynTraitTypeRepr.expected | 3 + .../DynTraitTypeRepr/DynTraitTypeRepr.ql | 12 +- ...DynTraitTypeRepr_getTypeBoundList.expected | 1 - .../DynTraitTypeRepr_getTypeBoundList.ql | 7 - .../generated/Enum/Enum.expected | 13 + .../extractor-tests/generated/Enum/Enum.ql | 72 +- .../generated/Enum/Enum_getAttr.expected | 0 .../generated/Enum/Enum_getAttr.ql | 7 - .../Enum_getAttributeMacroExpansion.expected | 0 .../Enum/Enum_getAttributeMacroExpansion.ql | 7 - .../Enum/Enum_getCrateOrigin.expected | 0 .../generated/Enum/Enum_getCrateOrigin.ql | 7 - .../Enum_getDeriveMacroExpansion.expected | 0 .../Enum/Enum_getDeriveMacroExpansion.ql | 7 - .../Enum_getExtendedCanonicalPath.expected | 0 .../Enum/Enum_getExtendedCanonicalPath.ql | 7 - .../Enum/Enum_getGenericParamList.expected | 0 .../Enum/Enum_getGenericParamList.ql | 7 - .../generated/Enum/Enum_getName.expected | 1 - .../generated/Enum/Enum_getName.ql | 7 - .../Enum/Enum_getVariantList.expected | 1 - .../generated/Enum/Enum_getVariantList.ql | 7 - .../Enum/Enum_getVisibility.expected | 0 .../generated/Enum/Enum_getVisibility.ql | 7 - .../Enum/Enum_getWhereClause.expected | 0 .../generated/Enum/Enum_getWhereClause.ql | 7 - .../generated/ExprStmt/Cargo.lock | 7 + .../generated/ExprStmt/ExprStmt.expected | 4 + .../generated/ExprStmt/ExprStmt.ql | 10 +- .../ExprStmt/ExprStmt_getExpr.expected | 2 - .../generated/ExprStmt/ExprStmt_getExpr.ql | 7 - .../generated/ExternBlock/Cargo.lock | 7 + .../ExternBlock/ExternBlock.expected | 9 + .../generated/ExternBlock/ExternBlock.ql | 49 +- .../ExternBlock/ExternBlock_getAbi.expected | 1 - .../ExternBlock/ExternBlock_getAbi.ql | 7 - .../ExternBlock/ExternBlock_getAttr.expected | 0 .../ExternBlock/ExternBlock_getAttr.ql | 7 - ...nBlock_getAttributeMacroExpansion.expected | 0 .../ExternBlock_getAttributeMacroExpansion.ql | 7 - .../ExternBlock_getCrateOrigin.expected | 0 .../ExternBlock/ExternBlock_getCrateOrigin.ql | 7 - ...ernBlock_getExtendedCanonicalPath.expected | 0 .../ExternBlock_getExtendedCanonicalPath.ql | 7 - .../ExternBlock_getExternItemList.expected | 1 - .../ExternBlock_getExternItemList.ql | 7 - .../generated/ExternCrate/Cargo.lock | 7 + .../ExternCrate/ExternCrate.expected | 9 + .../generated/ExternCrate/ExternCrate.ql | 53 +- .../ExternCrate/ExternCrate_getAttr.expected | 0 .../ExternCrate/ExternCrate_getAttr.ql | 7 - ...nCrate_getAttributeMacroExpansion.expected | 0 .../ExternCrate_getAttributeMacroExpansion.ql | 7 - .../ExternCrate_getCrateOrigin.expected | 0 .../ExternCrate/ExternCrate_getCrateOrigin.ql | 7 - ...ernCrate_getExtendedCanonicalPath.expected | 0 .../ExternCrate_getExtendedCanonicalPath.ql | 7 - .../ExternCrate_getIdentifier.expected | 1 - .../ExternCrate/ExternCrate_getIdentifier.ql | 7 - .../ExternCrate_getRename.expected | 0 .../ExternCrate/ExternCrate_getRename.ql | 7 - .../ExternCrate_getVisibility.expected | 0 .../ExternCrate/ExternCrate_getVisibility.ql | 7 - .../generated/ExternItemList/Cargo.lock | 7 + .../ExternItemList/ExternItemList.expected | 5 + .../ExternItemList/ExternItemList.ql | 18 +- .../ExternItemList_getAttr.expected | 0 .../ExternItemList/ExternItemList_getAttr.ql | 7 - .../ExternItemList_getExternItem.expected | 2 - .../ExternItemList_getExternItem.ql | 7 - .../generated/FieldExpr/Cargo.lock | 7 + .../generated/FieldExpr/FieldExpr.expected | 6 + .../generated/FieldExpr/FieldExpr.ql | 24 +- .../FieldExpr/FieldExpr_getAttr.expected | 0 .../generated/FieldExpr/FieldExpr_getAttr.ql | 7 - .../FieldExpr/FieldExpr_getContainer.expected | 1 - .../FieldExpr/FieldExpr_getContainer.ql | 7 - .../FieldExpr_getIdentifier.expected | 1 - .../FieldExpr/FieldExpr_getIdentifier.ql | 7 - .../generated/FnPtrTypeRepr/Cargo.lock | 7 + .../FnPtrTypeRepr/FnPtrTypeRepr.expected | 6 + .../generated/FnPtrTypeRepr/FnPtrTypeRepr.ql | 30 +- .../FnPtrTypeRepr_getAbi.expected | 0 .../FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql | 7 - .../FnPtrTypeRepr_getParamList.expected | 1 - .../FnPtrTypeRepr_getParamList.ql | 7 - .../FnPtrTypeRepr_getRetType.expected | 1 - .../FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql | 7 - .../generated/ForExpr/Cargo.lock | 7 + .../generated/ForExpr/ForExpr.expected | 9 + .../generated/ForExpr/ForExpr.ql | 37 +- .../ForExpr/ForExpr_getAttr.expected | 0 .../generated/ForExpr/ForExpr_getAttr.ql | 7 - .../ForExpr/ForExpr_getIterable.expected | 1 - .../generated/ForExpr/ForExpr_getIterable.ql | 7 - .../ForExpr/ForExpr_getLabel.expected | 0 .../generated/ForExpr/ForExpr_getLabel.ql | 7 - .../ForExpr/ForExpr_getLoopBody.expected | 1 - .../generated/ForExpr/ForExpr_getLoopBody.ql | 7 - .../generated/ForExpr/ForExpr_getPat.expected | 1 - .../generated/ForExpr/ForExpr_getPat.ql | 7 - .../generated/ForTypeRepr/Cargo.lock | 7 + .../ForTypeRepr/ForTypeRepr.expected | 5 + .../generated/ForTypeRepr/ForTypeRepr.ql | 18 +- .../ForTypeRepr_getGenericParamList.expected | 1 - .../ForTypeRepr_getGenericParamList.ql | 7 - .../ForTypeRepr_getTypeRepr.expected | 1 - .../ForTypeRepr/ForTypeRepr_getTypeRepr.ql | 7 - .../generated/FormatArgsExpr/Cargo.lock | 7 + .../generated/FormatArgsExpr/Format.expected | 23 + .../generated/FormatArgsExpr/Format.ql | 29 +- .../FormatArgsExpr/FormatArgsArg.expected | 21 + .../generated/FormatArgsExpr/FormatArgsArg.ql | 17 +- .../FormatArgsArg_getExpr.expected | 16 - .../FormatArgsExpr/FormatArgsArg_getExpr.ql | 7 - .../FormatArgsArg_getName.expected | 2 - .../FormatArgsExpr/FormatArgsArg_getName.ql | 7 - .../FormatArgsExpr/FormatArgsExpr.expected | 53 ++ .../FormatArgsExpr/FormatArgsExpr.ql | 32 +- .../FormatArgsExpr_getArg.expected | 16 - .../FormatArgsExpr/FormatArgsExpr_getArg.ql | 7 - .../FormatArgsExpr_getAttr.expected | 0 .../FormatArgsExpr/FormatArgsExpr_getAttr.ql | 7 - .../FormatArgsExpr_getFormat.expected | 17 - .../FormatArgsExpr_getFormat.ql | 7 - .../FormatArgsExpr_getTemplate.expected | 15 - .../FormatArgsExpr_getTemplate.ql | 7 - .../FormatArgsExpr/FormatArgument.expected | 13 + .../FormatArgsExpr/FormatArgument.ql | 14 +- .../FormatArgument_getVariable.expected | 11 - .../FormatArgument_getVariable.ql | 7 - .../FormatTemplateVariableAccess.ql | 4 +- .../Format_getArgumentRef.expected | 9 - .../FormatArgsExpr/Format_getArgumentRef.ql | 7 - .../Format_getPrecisionArgument.expected | 5 - .../Format_getPrecisionArgument.ql | 7 - .../Format_getWidthArgument.expected | 5 - .../FormatArgsExpr/Format_getWidthArgument.ql | 7 - .../generated/Function/Cargo.lock | 7 + .../generated/Function/Function.expected | 25 + .../generated/Function/Function.ql | 102 ++- .../Function/Function_getAbi.expected | 0 .../generated/Function/Function_getAbi.ql | 7 - .../Function/Function_getAttr.expected | 0 .../generated/Function/Function_getAttr.ql | 7 - ...nction_getAttributeMacroExpansion.expected | 0 .../Function_getAttributeMacroExpansion.ql | 7 - .../Function/Function_getBody.expected | 1 - .../generated/Function/Function_getBody.ql | 7 - .../Function/Function_getCrateOrigin.expected | 2 - .../Function/Function_getCrateOrigin.ql | 7 - ...Function_getExtendedCanonicalPath.expected | 2 - .../Function_getExtendedCanonicalPath.ql | 7 - .../Function_getGenericParamList.expected | 0 .../Function/Function_getGenericParamList.ql | 7 - .../Function/Function_getName.expected | 2 - .../generated/Function/Function_getName.ql | 7 - .../Function/Function_getParam.expected | 1 - .../generated/Function/Function_getParam.ql | 7 - .../Function/Function_getParamList.expected | 2 - .../Function/Function_getParamList.ql | 7 - .../Function/Function_getRetType.expected | 1 - .../generated/Function/Function_getRetType.ql | 7 - .../Function/Function_getVisibility.expected | 0 .../Function/Function_getVisibility.ql | 7 - .../Function/Function_getWhereClause.expected | 0 .../Function/Function_getWhereClause.ql | 7 - .../generated/GenericArgList/Cargo.lock | 7 + .../GenericArgList/GenericArgList.expected | 4 + .../GenericArgList/GenericArgList.ql | 12 +- .../GenericArgList_getGenericArg.expected | 2 - .../GenericArgList_getGenericArg.ql | 7 - .../generated/GenericParamList/Cargo.lock | 7 + .../GenericParamList.expected | 6 + .../GenericParamList/GenericParamList.ql | 12 +- .../GenericParamList_getGenericParam.expected | 4 - .../GenericParamList_getGenericParam.ql | 7 - .../generated/IdentPat/Cargo.lock | 7 + .../generated/IdentPat/IdentPat.expected | 7 + .../generated/IdentPat/IdentPat.ql | 27 +- .../IdentPat/IdentPat_getAttr.expected | 0 .../generated/IdentPat/IdentPat_getAttr.ql | 7 - .../IdentPat/IdentPat_getName.expected | 2 - .../generated/IdentPat/IdentPat_getName.ql | 7 - .../IdentPat/IdentPat_getPat.expected | 1 - .../generated/IdentPat/IdentPat_getPat.ql | 7 - .../generated/IfExpr/Cargo.lock | 7 + .../generated/IfExpr/IfExpr.expected | 10 + .../generated/IfExpr/IfExpr.ql | 29 +- .../generated/IfExpr/IfExpr_getAttr.expected | 0 .../generated/IfExpr/IfExpr_getAttr.ql | 7 - .../IfExpr/IfExpr_getCondition.expected | 2 - .../generated/IfExpr/IfExpr_getCondition.ql | 7 - .../generated/IfExpr/IfExpr_getElse.expected | 1 - .../generated/IfExpr/IfExpr_getElse.ql | 7 - .../generated/IfExpr/IfExpr_getThen.expected | 2 - .../generated/IfExpr/IfExpr_getThen.ql | 7 - .../extractor-tests/generated/Impl/Cargo.lock | 7 + .../generated/Impl/Impl.expected | 14 + .../extractor-tests/generated/Impl/Impl.ql | 77 +- .../Impl/Impl_getAssocItemList.expected | 1 - .../generated/Impl/Impl_getAssocItemList.ql | 7 - .../generated/Impl/Impl_getAttr.expected | 0 .../generated/Impl/Impl_getAttr.ql | 7 - .../Impl_getAttributeMacroExpansion.expected | 0 .../Impl/Impl_getAttributeMacroExpansion.ql | 7 - .../Impl/Impl_getCrateOrigin.expected | 0 .../generated/Impl/Impl_getCrateOrigin.ql | 7 - .../Impl_getExtendedCanonicalPath.expected | 0 .../Impl/Impl_getExtendedCanonicalPath.ql | 7 - .../Impl/Impl_getGenericParamList.expected | 0 .../Impl/Impl_getGenericParamList.ql | 7 - .../generated/Impl/Impl_getSelfTy.expected | 1 - .../generated/Impl/Impl_getSelfTy.ql | 7 - .../generated/Impl/Impl_getTrait.expected | 1 - .../generated/Impl/Impl_getTrait.ql | 7 - .../Impl/Impl_getVisibility.expected | 0 .../generated/Impl/Impl_getVisibility.ql | 7 - .../Impl/Impl_getWhereClause.expected | 0 .../generated/Impl/Impl_getWhereClause.ql | 7 - .../generated/ImplTraitTypeRepr/Cargo.lock | 7 + .../ImplTraitTypeRepr.expected | 3 + .../ImplTraitTypeRepr/ImplTraitTypeRepr.ql | 12 +- ...mplTraitTypeRepr_getTypeBoundList.expected | 1 - .../ImplTraitTypeRepr_getTypeBoundList.ql | 7 - .../generated/IndexExpr/Cargo.lock | 7 + .../generated/IndexExpr/IndexExpr.expected | 8 + .../generated/IndexExpr/IndexExpr.ql | 23 +- .../IndexExpr/IndexExpr_getAttr.expected | 0 .../generated/IndexExpr/IndexExpr_getAttr.ql | 7 - .../IndexExpr/IndexExpr_getBase.expected | 2 - .../generated/IndexExpr/IndexExpr_getBase.ql | 7 - .../IndexExpr/IndexExpr_getIndex.expected | 2 - .../generated/IndexExpr/IndexExpr_getIndex.ql | 7 - .../generated/InferTypeRepr/Cargo.lock | 7 + .../generated/InferTypeRepr/InferTypeRepr.ql | 4 +- .../generated/ItemList/Cargo.lock | 7 + .../generated/ItemList/ItemList.expected | 5 + .../generated/ItemList/ItemList.ql | 18 +- .../ItemList/ItemList_getAttr.expected | 0 .../generated/ItemList/ItemList_getAttr.ql | 7 - .../ItemList/ItemList_getItem.expected | 2 - .../generated/ItemList/ItemList_getItem.ql | 7 - .../generated/Label/Cargo.lock | 7 + .../generated/Label/Label.expected | 3 + .../extractor-tests/generated/Label/Label.ql | 10 +- .../Label/Label_getLifetime.expected | 1 - .../generated/Label/Label_getLifetime.ql | 7 - .../generated/LetElse/Cargo.lock | 7 + .../generated/LetElse/LetElse.expected | 3 + .../generated/LetElse/LetElse.ql | 10 +- .../LetElse/LetElse_getBlockExpr.expected | 1 - .../generated/LetElse/LetElse_getBlockExpr.ql | 7 - .../generated/LetExpr/Cargo.lock | 7 + .../generated/LetExpr/LetExpr.expected | 6 + .../generated/LetExpr/LetExpr.ql | 23 +- .../LetExpr/LetExpr_getAttr.expected | 0 .../generated/LetExpr/LetExpr_getAttr.ql | 7 - .../generated/LetExpr/LetExpr_getPat.expected | 1 - .../generated/LetExpr/LetExpr_getPat.ql | 7 - .../LetExpr/LetExpr_getScrutinee.expected | 1 - .../generated/LetExpr/LetExpr_getScrutinee.ql | 7 - .../generated/LetStmt/Cargo.lock | 7 + .../generated/LetStmt/LetStmt.expected | 19 + .../generated/LetStmt/LetStmt.ql | 37 +- .../LetStmt/LetStmt_getAttr.expected | 0 .../generated/LetStmt/LetStmt_getAttr.ql | 7 - .../LetStmt/LetStmt_getInitializer.expected | 4 - .../LetStmt/LetStmt_getInitializer.ql | 7 - .../LetStmt/LetStmt_getLetElse.expected | 1 - .../generated/LetStmt/LetStmt_getLetElse.ql | 7 - .../generated/LetStmt/LetStmt_getPat.expected | 6 - .../generated/LetStmt/LetStmt_getPat.ql | 7 - .../LetStmt/LetStmt_getTypeRepr.expected | 2 - .../generated/LetStmt/LetStmt_getTypeRepr.ql | 7 - .../generated/Lifetime/Cargo.lock | 7 + .../generated/Lifetime/Lifetime.expected | 4 + .../generated/Lifetime/Lifetime.ql | 10 +- .../Lifetime/Lifetime_getText.expected | 2 - .../generated/Lifetime/Lifetime_getText.ql | 7 - .../generated/LifetimeArg/Cargo.lock | 7 + .../LifetimeArg/LifetimeArg.expected | 3 + .../generated/LifetimeArg/LifetimeArg.ql | 10 +- .../LifetimeArg_getLifetime.expected | 1 - .../LifetimeArg/LifetimeArg_getLifetime.ql | 7 - .../generated/LifetimeParam/Cargo.lock | 7 + .../LifetimeParam/LifetimeParam.expected | 5 + .../generated/LifetimeParam/LifetimeParam.ql | 24 +- .../LifetimeParam_getAttr.expected | 0 .../LifetimeParam/LifetimeParam_getAttr.ql | 7 - .../LifetimeParam_getLifetime.expected | 1 - .../LifetimeParam_getLifetime.ql | 7 - .../LifetimeParam_getTypeBoundList.expected | 0 .../LifetimeParam_getTypeBoundList.ql | 7 - .../generated/LiteralExpr/Cargo.lock | 7 + .../LiteralExpr/LiteralExpr.expected | 11 + .../generated/LiteralExpr/LiteralExpr.ql | 18 +- .../LiteralExpr/LiteralExpr_getAttr.expected | 0 .../LiteralExpr/LiteralExpr_getAttr.ql | 7 - .../LiteralExpr_getTextValue.expected | 8 - .../LiteralExpr/LiteralExpr_getTextValue.ql | 7 - .../generated/LiteralPat/Cargo.lock | 7 + .../generated/LiteralPat/LiteralPat.expected | 3 + .../generated/LiteralPat/LiteralPat.ql | 10 +- .../LiteralPat/LiteralPat_getLiteral.expected | 1 - .../LiteralPat/LiteralPat_getLiteral.ql | 7 - .../generated/LoopExpr/Cargo.lock | 7 + .../generated/LoopExpr/LoopExpr.expected | 8 + .../generated/LoopExpr/LoopExpr.ql | 23 +- .../LoopExpr/LoopExpr_getAttr.expected | 0 .../generated/LoopExpr/LoopExpr_getAttr.ql | 7 - .../LoopExpr/LoopExpr_getLabel.expected | 1 - .../generated/LoopExpr/LoopExpr_getLabel.ql | 7 - .../LoopExpr/LoopExpr_getLoopBody.expected | 3 - .../LoopExpr/LoopExpr_getLoopBody.ql | 7 - .../generated/MacroBlockExpr/Cargo.lock | 7 + .../MacroBlockExpr/MacroBlockExpr.expected | 4 + .../MacroBlockExpr/MacroBlockExpr.ql | 18 +- .../MacroBlockExpr_getStatement.expected | 0 .../MacroBlockExpr_getStatement.ql | 7 - .../MacroBlockExpr_getTailExpr.expected | 1 - .../MacroBlockExpr_getTailExpr.ql | 7 - .../generated/MacroCall/Cargo.lock | 7 + .../generated/MacroCall/MacroCall.expected | 14 + .../generated/MacroCall/MacroCall.ql | 54 +- .../MacroCall/MacroCall_getAttr.expected | 0 .../generated/MacroCall/MacroCall_getAttr.ql | 7 - ...roCall_getAttributeMacroExpansion.expected | 0 .../MacroCall_getAttributeMacroExpansion.ql | 7 - .../MacroCall_getCrateOrigin.expected | 0 .../MacroCall/MacroCall_getCrateOrigin.ql | 7 - ...acroCall_getExtendedCanonicalPath.expected | 0 .../MacroCall_getExtendedCanonicalPath.ql | 7 - .../MacroCall_getMacroCallExpansion.expected | 2 - .../MacroCall_getMacroCallExpansion.ql | 7 - .../MacroCall/MacroCall_getPath.expected | 2 - .../generated/MacroCall/MacroCall_getPath.ql | 7 - .../MacroCall/MacroCall_getTokenTree.expected | 2 - .../MacroCall/MacroCall_getTokenTree.ql | 7 - .../generated/MacroDef/Cargo.lock | 7 + .../generated/MacroDef/MacroDef.expected | 13 + .../generated/MacroDef/MacroDef.ql | 59 +- .../MacroDef/MacroDef_getArgs.expected | 1 - .../generated/MacroDef/MacroDef_getArgs.ql | 7 - .../MacroDef/MacroDef_getAttr.expected | 0 .../generated/MacroDef/MacroDef_getAttr.ql | 7 - ...croDef_getAttributeMacroExpansion.expected | 0 .../MacroDef_getAttributeMacroExpansion.ql | 7 - .../MacroDef/MacroDef_getBody.expected | 1 - .../generated/MacroDef/MacroDef_getBody.ql | 7 - .../MacroDef/MacroDef_getCrateOrigin.expected | 0 .../MacroDef/MacroDef_getCrateOrigin.ql | 7 - ...MacroDef_getExtendedCanonicalPath.expected | 0 .../MacroDef_getExtendedCanonicalPath.ql | 7 - .../MacroDef/MacroDef_getName.expected | 1 - .../generated/MacroDef/MacroDef_getName.ql | 7 - .../MacroDef/MacroDef_getVisibility.expected | 1 - .../MacroDef/MacroDef_getVisibility.ql | 7 - .../generated/MacroExpr/Cargo.lock | 7 + .../generated/MacroExpr/MacroExpr.expected | 3 + .../generated/MacroExpr/MacroExpr.ql | 10 +- .../MacroExpr/MacroExpr_getMacroCall.expected | 1 - .../MacroExpr/MacroExpr_getMacroCall.ql | 7 - .../generated/MacroItems/Cargo.lock | 7 + .../generated/MacroItems/MacroItems.expected | 5 + .../generated/MacroItems/MacroItems.ql | 10 +- .../MacroItems/MacroItems_getItem.expected | 3 - .../MacroItems/MacroItems_getItem.ql | 7 - .../generated/MacroPat/Cargo.lock | 7 + .../generated/MacroPat/MacroPat.expected | 3 + .../generated/MacroPat/MacroPat.ql | 10 +- .../MacroPat/MacroPat_getMacroCall.expected | 1 - .../MacroPat/MacroPat_getMacroCall.ql | 7 - .../generated/MacroRules/Cargo.lock | 7 + .../generated/MacroRules/MacroRules.expected | 10 + .../generated/MacroRules/MacroRules.ql | 53 +- .../MacroRules/MacroRules_getAttr.expected | 0 .../MacroRules/MacroRules_getAttr.ql | 7 - ...oRules_getAttributeMacroExpansion.expected | 0 .../MacroRules_getAttributeMacroExpansion.ql | 7 - .../MacroRules_getCrateOrigin.expected | 0 .../MacroRules/MacroRules_getCrateOrigin.ql | 7 - ...croRules_getExtendedCanonicalPath.expected | 0 .../MacroRules_getExtendedCanonicalPath.ql | 7 - .../MacroRules/MacroRules_getName.expected | 1 - .../MacroRules/MacroRules_getName.ql | 7 - .../MacroRules_getTokenTree.expected | 1 - .../MacroRules/MacroRules_getTokenTree.ql | 7 - .../MacroRules_getVisibility.expected | 0 .../MacroRules/MacroRules_getVisibility.ql | 7 - .../generated/MacroTypeRepr/Cargo.lock | 7 + .../MacroTypeRepr/MacroTypeRepr.expected | 3 + .../generated/MacroTypeRepr/MacroTypeRepr.ql | 10 +- .../MacroTypeRepr_getMacroCall.expected | 1 - .../MacroTypeRepr_getMacroCall.ql | 7 - .../generated/MatchArm/Cargo.lock | 7 + .../generated/MatchArm/MatchArm.expected | 14 + .../generated/MatchArm/MatchArm.ql | 29 +- .../MatchArm/MatchArm_getAttr.expected | 0 .../generated/MatchArm/MatchArm_getAttr.ql | 7 - .../MatchArm/MatchArm_getExpr.expected | 4 - .../generated/MatchArm/MatchArm_getExpr.ql | 7 - .../MatchArm/MatchArm_getGuard.expected | 1 - .../generated/MatchArm/MatchArm_getGuard.ql | 7 - .../MatchArm/MatchArm_getPat.expected | 4 - .../generated/MatchArm/MatchArm_getPat.ql | 7 - .../generated/MatchArmList/Cargo.lock | 7 + .../MatchArmList/MatchArmList.expected | 6 + .../generated/MatchArmList/MatchArmList.ql | 18 +- .../MatchArmList/MatchArmList_getArm.expected | 3 - .../MatchArmList/MatchArmList_getArm.ql | 7 - .../MatchArmList_getAttr.expected | 0 .../MatchArmList/MatchArmList_getAttr.ql | 7 - .../generated/MatchExpr/Cargo.lock | 7 + .../generated/MatchExpr/MatchExpr.expected | 8 + .../generated/MatchExpr/MatchExpr.ql | 24 +- .../MatchExpr/MatchExpr_getAttr.expected | 0 .../generated/MatchExpr/MatchExpr_getAttr.ql | 7 - .../MatchExpr_getMatchArmList.expected | 2 - .../MatchExpr/MatchExpr_getMatchArmList.ql | 7 - .../MatchExpr/MatchExpr_getScrutinee.expected | 2 - .../MatchExpr/MatchExpr_getScrutinee.ql | 7 - .../generated/MatchGuard/Cargo.lock | 7 + .../generated/MatchGuard/MatchGuard.expected | 3 + .../generated/MatchGuard/MatchGuard.ql | 10 +- .../MatchGuard_getCondition.expected | 1 - .../MatchGuard/MatchGuard_getCondition.ql | 7 - .../extractor-tests/generated/Meta/Cargo.lock | 7 + .../generated/Meta/Meta.expected | 8 + .../extractor-tests/generated/Meta/Meta.ql | 25 +- .../generated/Meta/Meta_getExpr.expected | 1 - .../generated/Meta/Meta_getExpr.ql | 7 - .../generated/Meta/Meta_getPath.expected | 2 - .../generated/Meta/Meta_getPath.ql | 7 - .../generated/Meta/Meta_getTokenTree.expected | 1 - .../generated/Meta/Meta_getTokenTree.ql | 7 - .../generated/MethodCallExpr/Cargo.lock | 7 + .../MethodCallExpr/MethodCallExpr.expected | 18 + .../MethodCallExpr/MethodCallExpr.ql | 57 +- .../MethodCallExpr_getArg.expected | 2 - .../MethodCallExpr/MethodCallExpr_getArg.ql | 7 - .../MethodCallExpr_getArgList.expected | 2 - .../MethodCallExpr_getArgList.ql | 7 - .../MethodCallExpr_getAttr.expected | 0 .../MethodCallExpr/MethodCallExpr_getAttr.ql | 7 - .../MethodCallExpr_getGenericArgList.expected | 1 - .../MethodCallExpr_getGenericArgList.ql | 7 - .../MethodCallExpr_getIdentifier.expected | 2 - .../MethodCallExpr_getIdentifier.ql | 7 - .../MethodCallExpr_getReceiver.expected | 2 - .../MethodCallExpr_getReceiver.ql | 7 - ...odCallExpr_getResolvedCrateOrigin.expected | 0 .../MethodCallExpr_getResolvedCrateOrigin.ql | 7 - .../MethodCallExpr_getResolvedPath.expected | 0 .../MethodCallExpr_getResolvedPath.ql | 7 - .../generated/Module/Cargo.lock | 7 + .../generated/Module/Module.expected | 18 + .../generated/Module/Module.ql | 53 +- .../generated/Module/Module_getAttr.expected | 0 .../generated/Module/Module_getAttr.ql | 7 - ...Module_getAttributeMacroExpansion.expected | 0 .../Module_getAttributeMacroExpansion.ql | 7 - .../Module/Module_getCrateOrigin.expected | 3 - .../generated/Module/Module_getCrateOrigin.ql | 7 - .../Module_getExtendedCanonicalPath.expected | 3 - .../Module/Module_getExtendedCanonicalPath.ql | 7 - .../Module/Module_getItemList.expected | 1 - .../generated/Module/Module_getItemList.ql | 7 - .../generated/Module/Module_getName.expected | 3 - .../generated/Module/Module_getName.ql | 7 - .../Module/Module_getVisibility.expected | 0 .../generated/Module/Module_getVisibility.ql | 7 - .../extractor-tests/generated/Name/Cargo.lock | 7 + .../generated/Name/Name.expected | 5 + .../extractor-tests/generated/Name/Name.ql | 10 +- .../generated/Name/Name_getText.expected | 3 - .../generated/Name/Name_getText.ql | 7 - .../generated/NameRef/Cargo.lock | 7 + .../generated/NameRef/NameRef.expected | 3 + .../generated/NameRef/NameRef.ql | 10 +- .../NameRef/NameRef_getText.expected | 1 - .../generated/NameRef/NameRef_getText.ql | 7 - .../generated/NeverTypeRepr/Cargo.lock | 7 + .../generated/NeverTypeRepr/NeverTypeRepr.ql | 4 +- .../generated/OffsetOfExpr/Cargo.lock | 7 + .../OffsetOfExpr/OffsetOfExpr.expected | 6 + .../generated/OffsetOfExpr/OffsetOfExpr.ql | 25 +- .../OffsetOfExpr_getAttr.expected | 0 .../OffsetOfExpr/OffsetOfExpr_getAttr.ql | 7 - .../OffsetOfExpr_getField.expected | 1 - .../OffsetOfExpr/OffsetOfExpr_getField.ql | 7 - .../OffsetOfExpr_getTypeRepr.expected | 1 - .../OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql | 7 - .../generated/OrPat/Cargo.lock | 7 + .../generated/OrPat/OrPat.expected | 4 + .../extractor-tests/generated/OrPat/OrPat.ql | 10 +- .../generated/OrPat/OrPat_getPat.expected | 2 - .../generated/OrPat/OrPat_getPat.ql | 7 - .../generated/Param/Cargo.lock | 7 + .../generated/Param/Param.expected | 6 + .../extractor-tests/generated/Param/Param.ql | 23 +- .../generated/Param/Param_getAttr.expected | 0 .../generated/Param/Param_getAttr.ql | 7 - .../generated/Param/Param_getPat.expected | 1 - .../generated/Param/Param_getPat.ql | 7 - .../Param/Param_getTypeRepr.expected | 1 - .../generated/Param/Param_getTypeRepr.ql | 7 - .../generated/ParamList/Cargo.lock | 7 + .../generated/ParamList/ParamList.expected | 5 + .../generated/ParamList/ParamList.ql | 18 +- .../ParamList/ParamList_getParam.expected | 2 - .../generated/ParamList/ParamList_getParam.ql | 7 - .../ParamList/ParamList_getSelfParam.expected | 0 .../ParamList/ParamList_getSelfParam.ql | 7 - .../generated/ParenExpr/Cargo.lock | 7 + .../generated/ParenExpr/ParenExpr.expected | 4 + .../generated/ParenExpr/ParenExpr.ql | 18 +- .../ParenExpr/ParenExpr_getAttr.expected | 0 .../generated/ParenExpr/ParenExpr_getAttr.ql | 7 - .../ParenExpr/ParenExpr_getExpr.expected | 1 - .../generated/ParenExpr/ParenExpr_getExpr.ql | 7 - .../generated/ParenPat/Cargo.lock | 7 + .../generated/ParenPat/ParenPat.expected | 3 + .../generated/ParenPat/ParenPat.ql | 10 +- .../ParenPat/ParenPat_getPat.expected | 1 - .../generated/ParenPat/ParenPat_getPat.ql | 7 - .../generated/ParenTypeRepr/Cargo.lock | 7 + .../ParenTypeRepr/ParenTypeRepr.expected | 3 + .../generated/ParenTypeRepr/ParenTypeRepr.ql | 10 +- .../ParenTypeRepr_getTypeRepr.expected | 1 - .../ParenTypeRepr_getTypeRepr.ql | 7 - .../generated/ParenthesizedArgList/Cargo.lock | 7 + .../ParenthesizedArgList.expected | 4 + .../ParenthesizedArgList.ql | 12 +- .../ParenthesizedArgList_getTypeArg.expected | 2 - .../ParenthesizedArgList_getTypeArg.ql | 7 - .../extractor-tests/generated/Path/Cargo.lock | 7 + .../generated/Path/Path.expected | 38 + .../extractor-tests/generated/Path/Path.ql | 18 +- .../generated/Path/PathExpr.expected | 11 + .../generated/Path/PathExpr.ql | 32 +- .../generated/Path/PathExpr_getAttr.expected | 0 .../generated/Path/PathExpr_getAttr.ql | 7 - .../generated/Path/PathExpr_getPath.expected | 6 - .../generated/Path/PathExpr_getPath.ql | 7 - .../PathExpr_getResolvedCrateOrigin.expected | 0 .../Path/PathExpr_getResolvedCrateOrigin.ql | 7 - .../Path/PathExpr_getResolvedPath.expected | 0 .../Path/PathExpr_getResolvedPath.ql | 7 - .../generated/Path/PathPat.expected | 5 + .../extractor-tests/generated/Path/PathPat.ql | 25 +- .../generated/Path/PathPat_getPath.expected | 1 - .../generated/Path/PathPat_getPath.ql | 7 - .../PathPat_getResolvedCrateOrigin.expected | 0 .../Path/PathPat_getResolvedCrateOrigin.ql | 7 - .../Path/PathPat_getResolvedPath.expected | 0 .../generated/Path/PathPat_getResolvedPath.ql | 7 - .../generated/Path/PathSegment.expected | 35 + .../generated/Path/PathSegment.ql | 51 +- .../PathSegment_getGenericArgList.expected | 1 - .../Path/PathSegment_getGenericArgList.ql | 7 - .../Path/PathSegment_getIdentifier.expected | 23 - .../Path/PathSegment_getIdentifier.ql | 7 - ...thSegment_getParenthesizedArgList.expected | 0 .../PathSegment_getParenthesizedArgList.ql | 7 - .../Path/PathSegment_getRetType.expected | 0 .../generated/Path/PathSegment_getRetType.ql | 7 - .../PathSegment_getReturnTypeSyntax.expected | 0 .../Path/PathSegment_getReturnTypeSyntax.ql | 7 - .../PathSegment_getTraitTypeRepr.expected | 1 - .../Path/PathSegment_getTraitTypeRepr.ql | 7 - .../Path/PathSegment_getTypeRepr.expected | 2 - .../generated/Path/PathSegment_getTypeRepr.ql | 7 - .../generated/Path/PathTypeRepr.expected | 9 + .../generated/Path/PathTypeRepr.ql | 10 +- .../Path/PathTypeRepr_getPath.expected | 7 - .../generated/Path/PathTypeRepr_getPath.ql | 7 - .../generated/Path/Path_getQualifier.expected | 10 - .../generated/Path/Path_getQualifier.ql | 7 - .../generated/Path/Path_getSegment.expected | 25 - .../generated/Path/Path_getSegment.ql | 7 - .../generated/PrefixExpr/Cargo.lock | 7 + .../generated/PrefixExpr/PrefixExpr.expected | 10 + .../generated/PrefixExpr/PrefixExpr.ql | 24 +- .../PrefixExpr/PrefixExpr_getAttr.expected | 0 .../PrefixExpr/PrefixExpr_getAttr.ql | 7 - .../PrefixExpr/PrefixExpr_getExpr.expected | 3 - .../PrefixExpr/PrefixExpr_getExpr.ql | 7 - .../PrefixExpr_getOperatorName.expected | 3 - .../PrefixExpr/PrefixExpr_getOperatorName.ql | 7 - .../generated/PtrTypeRepr/Cargo.lock | 7 + .../PtrTypeRepr/PtrTypeRepr.expected | 4 + .../generated/PtrTypeRepr/PtrTypeRepr.ql | 15 +- .../PtrTypeRepr_getTypeRepr.expected | 2 - .../PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql | 7 - .../generated/RangeExpr/Cargo.lock | 7 + .../generated/RangeExpr/RangeExpr.expected | 18 + .../generated/RangeExpr/RangeExpr.ql | 30 +- .../RangeExpr/RangeExpr_getAttr.expected | 0 .../generated/RangeExpr/RangeExpr_getAttr.ql | 7 - .../RangeExpr/RangeExpr_getEnd.expected | 4 - .../generated/RangeExpr/RangeExpr_getEnd.ql | 7 - .../RangeExpr_getOperatorName.expected | 6 - .../RangeExpr/RangeExpr_getOperatorName.ql | 7 - .../RangeExpr/RangeExpr_getStart.expected | 3 - .../generated/RangeExpr/RangeExpr_getStart.ql | 7 - .../generated/RangePat/Cargo.lock | 7 + .../generated/RangePat/RangePat.expected | 11 + .../generated/RangePat/RangePat.ql | 23 +- .../RangePat/RangePat_getEnd.expected | 2 - .../generated/RangePat/RangePat_getEnd.ql | 7 - .../RangePat_getOperatorName.expected | 3 - .../RangePat/RangePat_getOperatorName.ql | 7 - .../RangePat/RangePat_getStart.expected | 2 - .../generated/RangePat/RangePat_getStart.ql | 7 - .../generated/RefExpr/Cargo.lock | 7 + .../generated/RefExpr/RefExpr.expected | 7 + .../generated/RefExpr/RefExpr.ql | 23 +- .../RefExpr/RefExpr_getAttr.expected | 0 .../generated/RefExpr/RefExpr_getAttr.ql | 7 - .../RefExpr/RefExpr_getExpr.expected | 4 - .../generated/RefExpr/RefExpr_getExpr.ql | 7 - .../generated/RefPat/Cargo.lock | 7 + .../generated/RefPat/RefPat.expected | 4 + .../generated/RefPat/RefPat.ql | 13 +- .../generated/RefPat/RefPat_getPat.expected | 2 - .../generated/RefPat/RefPat_getPat.ql | 7 - .../generated/RefTypeRepr/Cargo.lock | 7 + .../RefTypeRepr/RefTypeRepr.expected | 5 + .../generated/RefTypeRepr/RefTypeRepr.ql | 19 +- .../RefTypeRepr_getLifetime.expected | 0 .../RefTypeRepr/RefTypeRepr_getLifetime.ql | 7 - .../RefTypeRepr_getTypeRepr.expected | 2 - .../RefTypeRepr/RefTypeRepr_getTypeRepr.ql | 7 - .../generated/Rename/Cargo.lock | 7 + .../generated/Rename/Rename.expected | 3 + .../generated/Rename/Rename.ql | 10 +- .../generated/Rename/Rename_getName.expected | 1 - .../generated/Rename/Rename_getName.ql | 7 - .../generated/RestPat/Cargo.lock | 7 + .../generated/RestPat/RestPat.expected | 2 + .../generated/RestPat/RestPat.ql | 10 +- .../RestPat/RestPat_getAttr.expected | 0 .../generated/RestPat/RestPat_getAttr.ql | 7 - .../generated/RetTypeRepr/Cargo.lock | 7 + .../RetTypeRepr/RetTypeRepr.expected | 4 + .../generated/RetTypeRepr/RetTypeRepr.ql | 10 +- .../RetTypeRepr_getTypeRepr.expected | 2 - .../RetTypeRepr/RetTypeRepr_getTypeRepr.ql | 7 - .../generated/ReturnExpr/Cargo.lock | 7 + .../generated/ReturnExpr/ReturnExpr.expected | 4 + .../generated/ReturnExpr/ReturnExpr.ql | 18 +- .../ReturnExpr/ReturnExpr_getAttr.expected | 0 .../ReturnExpr/ReturnExpr_getAttr.ql | 7 - .../ReturnExpr/ReturnExpr_getExpr.expected | 1 - .../ReturnExpr/ReturnExpr_getExpr.ql | 7 - .../generated/ReturnTypeSyntax/Cargo.lock | 7 + .../ReturnTypeSyntax/ReturnTypeSyntax.ql | 4 +- .../generated/SelfParam/Cargo.lock | 7 + .../generated/SelfParam/SelfParam.expected | 11 + .../generated/SelfParam/SelfParam.ql | 34 +- .../SelfParam/SelfParam_getAttr.expected | 0 .../generated/SelfParam/SelfParam_getAttr.ql | 7 - .../SelfParam/SelfParam_getLifetime.expected | 1 - .../SelfParam/SelfParam_getLifetime.ql | 7 - .../SelfParam/SelfParam_getName.expected | 5 - .../generated/SelfParam/SelfParam_getName.ql | 7 - .../SelfParam/SelfParam_getTypeRepr.expected | 0 .../SelfParam/SelfParam_getTypeRepr.ql | 7 - .../generated/SlicePat/Cargo.lock | 7 + .../generated/SlicePat/SlicePat.expected | 15 + .../generated/SlicePat/SlicePat.ql | 10 +- .../SlicePat/SlicePat_getPat.expected | 13 - .../generated/SlicePat/SlicePat_getPat.ql | 7 - .../generated/SliceTypeRepr/Cargo.lock | 7 + .../SliceTypeRepr/SliceTypeRepr.expected | 3 + .../generated/SliceTypeRepr/SliceTypeRepr.ql | 10 +- .../SliceTypeRepr_getTypeRepr.expected | 1 - .../SliceTypeRepr_getTypeRepr.ql | 7 - .../generated/SourceFile/Cargo.lock | 7 + .../generated/SourceFile/SourceFile.expected | 5 + .../generated/SourceFile/SourceFile.ql | 18 +- .../SourceFile/SourceFile_getAttr.expected | 0 .../SourceFile/SourceFile_getAttr.ql | 7 - .../SourceFile/SourceFile_getItem.expected | 2 - .../SourceFile/SourceFile_getItem.ql | 7 - .../generated/Static/Cargo.lock | 7 + .../generated/Static/Static.expected | 12 + .../generated/Static/Static.ql | 63 +- .../generated/Static/Static_getAttr.expected | 0 .../generated/Static/Static_getAttr.ql | 7 - ...Static_getAttributeMacroExpansion.expected | 0 .../Static_getAttributeMacroExpansion.ql | 7 - .../generated/Static/Static_getBody.expected | 1 - .../generated/Static/Static_getBody.ql | 7 - .../Static/Static_getCrateOrigin.expected | 0 .../generated/Static/Static_getCrateOrigin.ql | 7 - .../Static_getExtendedCanonicalPath.expected | 0 .../Static/Static_getExtendedCanonicalPath.ql | 7 - .../generated/Static/Static_getName.expected | 1 - .../generated/Static/Static_getName.ql | 7 - .../Static/Static_getTypeRepr.expected | 1 - .../generated/Static/Static_getTypeRepr.ql | 7 - .../Static/Static_getVisibility.expected | 0 .../generated/Static/Static_getVisibility.ql | 7 - .../generated/StmtList/Cargo.lock | 7 + .../generated/StmtList/StmtList.expected | 7 + .../generated/StmtList/StmtList.ql | 25 +- .../StmtList/StmtList_getAttr.expected | 0 .../generated/StmtList/StmtList_getAttr.ql | 7 - .../StmtList/StmtList_getStatement.expected | 2 - .../StmtList/StmtList_getStatement.ql | 7 - .../StmtList/StmtList_getTailExpr.expected | 1 - .../StmtList/StmtList_getTailExpr.ql | 7 - .../generated/Struct/Struct.expected | 13 + .../generated/Struct/Struct.ql | 73 +- .../generated/Struct/Struct_getAttr.expected | 0 .../generated/Struct/Struct_getAttr.ql | 7 - ...Struct_getAttributeMacroExpansion.expected | 0 .../Struct_getAttributeMacroExpansion.ql | 7 - .../Struct/Struct_getCrateOrigin.expected | 0 .../generated/Struct/Struct_getCrateOrigin.ql | 7 - .../Struct_getDeriveMacroExpansion.expected | 0 .../Struct/Struct_getDeriveMacroExpansion.ql | 7 - .../Struct_getExtendedCanonicalPath.expected | 0 .../Struct/Struct_getExtendedCanonicalPath.ql | 7 - .../Struct/Struct_getFieldList.expected | 1 - .../generated/Struct/Struct_getFieldList.ql | 7 - .../Struct_getGenericParamList.expected | 0 .../Struct/Struct_getGenericParamList.ql | 7 - .../generated/Struct/Struct_getName.expected | 1 - .../generated/Struct/Struct_getName.ql | 7 - .../Struct/Struct_getVisibility.expected | 0 .../generated/Struct/Struct_getVisibility.ql | 7 - .../Struct/Struct_getWhereClause.expected | 0 .../generated/Struct/Struct_getWhereClause.ql | 7 - .../generated/StructExpr/Cargo.lock | 7 + .../generated/StructExpr/StructExpr.expected | 13 + .../generated/StructExpr/StructExpr.ql | 32 +- .../StructExpr/StructExpr_getPath.expected | 4 - .../StructExpr/StructExpr_getPath.ql | 7 - ...StructExpr_getResolvedCrateOrigin.expected | 0 .../StructExpr_getResolvedCrateOrigin.ql | 7 - .../StructExpr_getResolvedPath.expected | 0 .../StructExpr/StructExpr_getResolvedPath.ql | 7 - ...StructExpr_getStructExprFieldList.expected | 4 - .../StructExpr_getStructExprFieldList.ql | 7 - .../generated/StructExprField/Cargo.lock | 7 + .../StructExprField/StructExprField.expected | 8 + .../StructExprField/StructExprField.ql | 24 +- .../StructExprField_getAttr.expected | 0 .../StructExprField_getAttr.ql | 7 - .../StructExprField_getExpr.expected | 2 - .../StructExprField_getExpr.ql | 7 - .../StructExprField_getIdentifier.expected | 2 - .../StructExprField_getIdentifier.ql | 7 - .../generated/StructExprFieldList/Cargo.lock | 7 + .../StructExprFieldList.expected | 6 + .../StructExprFieldList.ql | 24 +- .../StructExprFieldList_getAttr.expected | 0 .../StructExprFieldList_getAttr.ql | 7 - .../StructExprFieldList_getField.expected | 2 - .../StructExprFieldList_getField.ql | 7 - .../StructExprFieldList_getSpread.expected | 0 .../StructExprFieldList_getSpread.ql | 7 - .../generated/StructField/Cargo.lock | 7 + .../StructField/StructField.expected | 8 + .../generated/StructField/StructField.ql | 38 +- .../StructField/StructField_getAttr.expected | 0 .../StructField/StructField_getAttr.ql | 7 - .../StructField_getDefault.expected | 0 .../StructField/StructField_getDefault.ql | 7 - .../StructField/StructField_getName.expected | 1 - .../StructField/StructField_getName.ql | 7 - .../StructField_getTypeRepr.expected | 1 - .../StructField/StructField_getTypeRepr.ql | 7 - .../StructField_getVisibility.expected | 0 .../StructField/StructField_getVisibility.ql | 7 - .../generated/StructFieldList/Cargo.lock | 7 + .../StructFieldList/StructFieldList.expected | 4 + .../StructFieldList/StructFieldList.ql | 10 +- .../StructFieldList_getField.expected | 2 - .../StructFieldList_getField.ql | 7 - .../generated/StructPat/Cargo.lock | 7 + .../generated/StructPat/StructPat.expected | 9 + .../generated/StructPat/StructPat.ql | 32 +- .../StructPat/StructPat_getPath.expected | 2 - .../generated/StructPat/StructPat_getPath.ql | 7 - .../StructPat_getResolvedCrateOrigin.expected | 0 .../StructPat_getResolvedCrateOrigin.ql | 7 - .../StructPat_getResolvedPath.expected | 0 .../StructPat/StructPat_getResolvedPath.ql | 7 - .../StructPat_getStructPatFieldList.expected | 2 - .../StructPat_getStructPatFieldList.ql | 7 - .../generated/StructPatField/Cargo.lock | 7 + .../StructPatField/StructPatField.expected | 8 + .../StructPatField/StructPatField.ql | 23 +- .../StructPatField_getAttr.expected | 0 .../StructPatField/StructPatField_getAttr.ql | 7 - .../StructPatField_getIdentifier.expected | 2 - .../StructPatField_getIdentifier.ql | 7 - .../StructPatField_getPat.expected | 2 - .../StructPatField/StructPatField_getPat.ql | 7 - .../generated/StructPatFieldList/Cargo.lock | 7 + .../StructPatFieldList.expected | 5 + .../StructPatFieldList/StructPatFieldList.ql | 18 +- .../StructPatFieldList_getField.expected | 2 - .../StructPatFieldList_getField.ql | 7 - .../StructPatFieldList_getRestPat.expected | 0 .../StructPatFieldList_getRestPat.ql | 7 - .../generated/TokenTree/Cargo.lock | 7 + .../generated/TokenTree/TokenTree.ql | 4 +- .../generated/Trait/AssocItemList.expected | 6 + .../generated/Trait/AssocItemList.ql | 18 +- .../Trait/AssocItemList_getAssocItem.expected | 3 - .../Trait/AssocItemList_getAssocItem.ql | 7 - .../Trait/AssocItemList_getAttr.expected | 0 .../generated/Trait/AssocItemList_getAttr.ql | 7 - .../generated/Trait/Cargo.lock | 7 + .../generated/Trait/Trait.expected | 22 + .../extractor-tests/generated/Trait/Trait.ql | 76 +- .../Trait/Trait_getAssocItemList.expected | 2 - .../generated/Trait/Trait_getAssocItemList.ql | 7 - .../generated/Trait/Trait_getAttr.expected | 0 .../generated/Trait/Trait_getAttr.ql | 7 - .../Trait_getAttributeMacroExpansion.expected | 0 .../Trait/Trait_getAttributeMacroExpansion.ql | 7 - .../Trait/Trait_getCrateOrigin.expected | 2 - .../generated/Trait/Trait_getCrateOrigin.ql | 7 - .../Trait_getExtendedCanonicalPath.expected | 2 - .../Trait/Trait_getExtendedCanonicalPath.ql | 7 - .../Trait/Trait_getGenericParamList.expected | 1 - .../Trait/Trait_getGenericParamList.ql | 7 - .../generated/Trait/Trait_getName.expected | 2 - .../generated/Trait/Trait_getName.ql | 7 - .../Trait/Trait_getTypeBoundList.expected | 0 .../generated/Trait/Trait_getTypeBoundList.ql | 7 - .../Trait/Trait_getVisibility.expected | 1 - .../generated/Trait/Trait_getVisibility.ql | 7 - .../Trait/Trait_getWhereClause.expected | 1 - .../generated/Trait/Trait_getWhereClause.ql | 7 - .../generated/TraitAlias/Cargo.lock | 7 + .../generated/TraitAlias/TraitAlias.expected | 12 + .../generated/TraitAlias/TraitAlias.ql | 66 +- .../TraitAlias/TraitAlias_getAttr.expected | 0 .../TraitAlias/TraitAlias_getAttr.ql | 7 - ...tAlias_getAttributeMacroExpansion.expected | 0 .../TraitAlias_getAttributeMacroExpansion.ql | 7 - .../TraitAlias_getCrateOrigin.expected | 0 .../TraitAlias/TraitAlias_getCrateOrigin.ql | 7 - ...aitAlias_getExtendedCanonicalPath.expected | 0 .../TraitAlias_getExtendedCanonicalPath.ql | 7 - .../TraitAlias_getGenericParamList.expected | 0 .../TraitAlias_getGenericParamList.ql | 7 - .../TraitAlias/TraitAlias_getName.expected | 1 - .../TraitAlias/TraitAlias_getName.ql | 7 - .../TraitAlias_getTypeBoundList.expected | 1 - .../TraitAlias/TraitAlias_getTypeBoundList.ql | 7 - .../TraitAlias_getVisibility.expected | 0 .../TraitAlias/TraitAlias_getVisibility.ql | 7 - .../TraitAlias_getWhereClause.expected | 0 .../TraitAlias/TraitAlias_getWhereClause.ql | 7 - .../generated/TryExpr/Cargo.lock | 7 + .../generated/TryExpr/TryExpr.expected | 4 + .../generated/TryExpr/TryExpr.ql | 18 +- .../TryExpr/TryExpr_getAttr.expected | 0 .../generated/TryExpr/TryExpr_getAttr.ql | 7 - .../TryExpr/TryExpr_getExpr.expected | 1 - .../generated/TryExpr/TryExpr_getExpr.ql | 7 - .../generated/TupleExpr/Cargo.lock | 7 + .../generated/TupleExpr/TupleExpr.expected | 7 + .../generated/TupleExpr/TupleExpr.ql | 18 +- .../TupleExpr/TupleExpr_getAttr.expected | 0 .../generated/TupleExpr/TupleExpr_getAttr.ql | 7 - .../TupleExpr/TupleExpr_getField.expected | 4 - .../generated/TupleExpr/TupleExpr_getField.ql | 7 - .../generated/TupleField/Cargo.lock | 7 + .../generated/TupleField/TupleField.expected | 6 + .../generated/TupleField/TupleField.ql | 24 +- .../TupleField/TupleField_getAttr.expected | 0 .../TupleField/TupleField_getAttr.ql | 7 - .../TupleField_getTypeRepr.expected | 2 - .../TupleField/TupleField_getTypeRepr.ql | 7 - .../TupleField_getVisibility.expected | 0 .../TupleField/TupleField_getVisibility.ql | 7 - .../generated/TupleFieldList/Cargo.lock | 7 + .../TupleFieldList/TupleFieldList.expected | 4 + .../TupleFieldList/TupleFieldList.ql | 10 +- .../TupleFieldList_getField.expected | 2 - .../TupleFieldList/TupleFieldList_getField.ql | 7 - .../generated/TuplePat/Cargo.lock | 7 + .../generated/TuplePat/TuplePat.expected | 8 + .../generated/TuplePat/TuplePat.ql | 10 +- .../TuplePat/TuplePat_getField.expected | 6 - .../generated/TuplePat/TuplePat_getField.ql | 7 - .../generated/TupleStructPat/Cargo.lock | 7 + .../TupleStructPat/TupleStructPat.expected | 15 + .../TupleStructPat/TupleStructPat.ql | 32 +- .../TupleStructPat_getField.expected | 7 - .../TupleStructPat/TupleStructPat_getField.ql | 7 - .../TupleStructPat_getPath.expected | 3 - .../TupleStructPat/TupleStructPat_getPath.ql | 7 - ...eStructPat_getResolvedCrateOrigin.expected | 0 .../TupleStructPat_getResolvedCrateOrigin.ql | 7 - .../TupleStructPat_getResolvedPath.expected | 0 .../TupleStructPat_getResolvedPath.ql | 7 - .../generated/TupleTypeRepr/Cargo.lock | 7 + .../TupleTypeRepr/TupleTypeRepr.expected | 4 + .../generated/TupleTypeRepr/TupleTypeRepr.ql | 10 +- .../TupleTypeRepr_getField.expected | 2 - .../TupleTypeRepr/TupleTypeRepr_getField.ql | 7 - .../generated/TypeAlias/Cargo.lock | 7 + .../generated/TypeAlias/TypeAlias.expected | 14 + .../generated/TypeAlias/TypeAlias.ql | 75 +- .../TypeAlias/TypeAlias_getAttr.expected | 0 .../generated/TypeAlias/TypeAlias_getAttr.ql | 7 - ...eAlias_getAttributeMacroExpansion.expected | 0 .../TypeAlias_getAttributeMacroExpansion.ql | 7 - .../TypeAlias_getCrateOrigin.expected | 0 .../TypeAlias/TypeAlias_getCrateOrigin.ql | 7 - ...ypeAlias_getExtendedCanonicalPath.expected | 0 .../TypeAlias_getExtendedCanonicalPath.ql | 7 - .../TypeAlias_getGenericParamList.expected | 0 .../TypeAlias_getGenericParamList.ql | 7 - .../TypeAlias/TypeAlias_getName.expected | 2 - .../generated/TypeAlias/TypeAlias_getName.ql | 7 - .../TypeAlias_getTypeBoundList.expected | 0 .../TypeAlias/TypeAlias_getTypeBoundList.ql | 7 - .../TypeAlias/TypeAlias_getTypeRepr.expected | 1 - .../TypeAlias/TypeAlias_getTypeRepr.ql | 7 - .../TypeAlias_getVisibility.expected | 0 .../TypeAlias/TypeAlias_getVisibility.ql | 7 - .../TypeAlias_getWhereClause.expected | 0 .../TypeAlias/TypeAlias_getWhereClause.ql | 7 - .../generated/TypeArg/Cargo.lock | 7 + .../generated/TypeArg/TypeArg.expected | 3 + .../generated/TypeArg/TypeArg.ql | 10 +- .../TypeArg/TypeArg_getTypeRepr.expected | 1 - .../generated/TypeArg/TypeArg_getTypeRepr.ql | 7 - .../generated/TypeBound/Cargo.lock | 7 + .../generated/TypeBound/TypeBound.expected | 5 + .../generated/TypeBound/TypeBound.ql | 29 +- .../TypeBound/TypeBound_getLifetime.expected | 0 .../TypeBound/TypeBound_getLifetime.ql | 7 - .../TypeBound/TypeBound_getTypeRepr.expected | 1 - .../TypeBound/TypeBound_getTypeRepr.ql | 7 - .../TypeBound_getUseBoundGenericArgs.expected | 0 .../TypeBound_getUseBoundGenericArgs.ql | 7 - .../generated/TypeBoundList/Cargo.lock | 7 + .../TypeBoundList/TypeBoundList.expected | 4 + .../generated/TypeBoundList/TypeBoundList.ql | 10 +- .../TypeBoundList_getBound.expected | 2 - .../TypeBoundList/TypeBoundList_getBound.ql | 7 - .../generated/TypeParam/Cargo.lock | 7 + .../generated/TypeParam/TypeParam.expected | 6 + .../generated/TypeParam/TypeParam.ql | 31 +- .../TypeParam/TypeParam_getAttr.expected | 0 .../generated/TypeParam/TypeParam_getAttr.ql | 7 - .../TypeParam_getDefaultType.expected | 0 .../TypeParam/TypeParam_getDefaultType.ql | 7 - .../TypeParam/TypeParam_getName.expected | 1 - .../generated/TypeParam/TypeParam_getName.ql | 7 - .../TypeParam_getTypeBoundList.expected | 0 .../TypeParam/TypeParam_getTypeBoundList.ql | 7 - .../generated/UnderscoreExpr/Cargo.lock | 7 + .../UnderscoreExpr/UnderscoreExpr.expected | 2 + .../UnderscoreExpr/UnderscoreExpr.ql | 10 +- .../UnderscoreExpr_getAttr.expected | 0 .../UnderscoreExpr/UnderscoreExpr_getAttr.ql | 7 - .../generated/Union/Union.expected | 13 + .../extractor-tests/generated/Union/Union.ql | 72 +- .../generated/Union/Union_getAttr.expected | 0 .../generated/Union/Union_getAttr.ql | 7 - .../Union_getAttributeMacroExpansion.expected | 0 .../Union/Union_getAttributeMacroExpansion.ql | 7 - .../Union/Union_getCrateOrigin.expected | 0 .../generated/Union/Union_getCrateOrigin.ql | 7 - .../Union_getDeriveMacroExpansion.expected | 0 .../Union/Union_getDeriveMacroExpansion.ql | 7 - .../Union_getExtendedCanonicalPath.expected | 0 .../Union/Union_getExtendedCanonicalPath.ql | 7 - .../Union/Union_getGenericParamList.expected | 0 .../Union/Union_getGenericParamList.ql | 7 - .../generated/Union/Union_getName.expected | 1 - .../generated/Union/Union_getName.ql | 7 - .../Union/Union_getStructFieldList.expected | 1 - .../Union/Union_getStructFieldList.ql | 7 - .../Union/Union_getVisibility.expected | 0 .../generated/Union/Union_getVisibility.ql | 7 - .../Union/Union_getWhereClause.expected | 0 .../generated/Union/Union_getWhereClause.ql | 7 - .../extractor-tests/generated/Use/Cargo.lock | 7 + .../generated/Use/Use.expected | 8 + .../test/extractor-tests/generated/Use/Use.ql | 46 +- .../generated/Use/Use_getAttr.expected | 0 .../generated/Use/Use_getAttr.ql | 7 - .../Use_getAttributeMacroExpansion.expected | 0 .../Use/Use_getAttributeMacroExpansion.ql | 7 - .../generated/Use/Use_getCrateOrigin.expected | 0 .../generated/Use/Use_getCrateOrigin.ql | 7 - .../Use/Use_getExtendedCanonicalPath.expected | 0 .../Use/Use_getExtendedCanonicalPath.ql | 7 - .../generated/Use/Use_getUseTree.expected | 1 - .../generated/Use/Use_getUseTree.ql | 7 - .../generated/Use/Use_getVisibility.expected | 0 .../generated/Use/Use_getVisibility.ql | 7 - .../generated/UseBoundGenericArgs/Cargo.lock | 7 + .../UseBoundGenericArgs.expected | 5 + .../UseBoundGenericArgs.ql | 15 +- ...GenericArgs_getUseBoundGenericArg.expected | 3 - ...eBoundGenericArgs_getUseBoundGenericArg.ql | 7 - .../generated/UseTree/Cargo.lock | 7 + .../generated/UseTree/UseTree.expected | 13 + .../generated/UseTree/UseTree.ql | 25 +- .../UseTree/UseTree_getPath.expected | 7 - .../generated/UseTree/UseTree_getPath.ql | 7 - .../UseTree/UseTree_getRename.expected | 1 - .../generated/UseTree/UseTree_getRename.ql | 7 - .../UseTree/UseTree_getUseTreeList.expected | 1 - .../UseTree/UseTree_getUseTreeList.ql | 7 - .../generated/UseTreeList/Cargo.lock | 7 + .../UseTreeList/UseTreeList.expected | 4 + .../generated/UseTreeList/UseTreeList.ql | 10 +- .../UseTreeList_getUseTree.expected | 2 - .../UseTreeList/UseTreeList_getUseTree.ql | 7 - .../generated/Variant/Cargo.lock | 7 + .../generated/Variant/Variant.expected | 13 + .../generated/Variant/Variant.ql | 50 +- .../Variant/Variant_getAttr.expected | 0 .../generated/Variant/Variant_getAttr.ql | 7 - .../Variant/Variant_getCrateOrigin.expected | 0 .../Variant/Variant_getCrateOrigin.ql | 7 - .../Variant/Variant_getDiscriminant.expected | 0 .../Variant/Variant_getDiscriminant.ql | 7 - .../Variant_getExtendedCanonicalPath.expected | 0 .../Variant_getExtendedCanonicalPath.ql | 7 - .../Variant/Variant_getFieldList.expected | 2 - .../generated/Variant/Variant_getFieldList.ql | 7 - .../Variant/Variant_getName.expected | 3 - .../generated/Variant/Variant_getName.ql | 7 - .../Variant/Variant_getVisibility.expected | 0 .../Variant/Variant_getVisibility.ql | 7 - .../generated/VariantList/Cargo.lock | 7 + .../VariantList/VariantList.expected | 5 + .../generated/VariantList/VariantList.ql | 10 +- .../VariantList_getVariant.expected | 3 - .../VariantList/VariantList_getVariant.ql | 7 - .../generated/Visibility/Cargo.lock | 7 + .../generated/Visibility/Visibility.expected | 2 + .../generated/Visibility/Visibility.ql | 10 +- .../Visibility/Visibility_getPath.expected | 0 .../Visibility/Visibility_getPath.ql | 7 - .../generated/WhereClause/Cargo.lock | 7 + .../WhereClause/WhereClause.expected | 3 + .../generated/WhereClause/WhereClause.ql | 12 +- .../WhereClause_getPredicate.expected | 1 - .../WhereClause/WhereClause_getPredicate.ql | 7 - .../generated/WherePred/Cargo.lock | 7 + .../generated/WherePred/WherePred.expected | 9 + .../generated/WherePred/WherePred.ql | 32 +- .../WherePred_getGenericParamList.expected | 0 .../WherePred_getGenericParamList.ql | 7 - .../WherePred/WherePred_getLifetime.expected | 0 .../WherePred/WherePred_getLifetime.ql | 7 - .../WherePred_getTypeBoundList.expected | 2 - .../WherePred/WherePred_getTypeBoundList.ql | 7 - .../WherePred/WherePred_getTypeRepr.expected | 2 - .../WherePred/WherePred_getTypeRepr.ql | 7 - .../generated/WhileExpr/Cargo.lock | 7 + .../generated/WhileExpr/WhileExpr.expected | 7 + .../generated/WhileExpr/WhileExpr.ql | 30 +- .../WhileExpr/WhileExpr_getAttr.expected | 0 .../generated/WhileExpr/WhileExpr_getAttr.ql | 7 - .../WhileExpr/WhileExpr_getCondition.expected | 1 - .../WhileExpr/WhileExpr_getCondition.ql | 7 - .../WhileExpr/WhileExpr_getLabel.expected | 0 .../generated/WhileExpr/WhileExpr_getLabel.ql | 7 - .../WhileExpr/WhileExpr_getLoopBody.expected | 1 - .../WhileExpr/WhileExpr_getLoopBody.ql | 7 - .../generated/WildcardPat/Cargo.lock | 7 + .../generated/WildcardPat/WildcardPat.ql | 4 +- .../generated/YeetExpr/Cargo.lock | 7 + .../generated/YeetExpr/YeetExpr.expected | 4 + .../generated/YeetExpr/YeetExpr.ql | 18 +- .../YeetExpr/YeetExpr_getAttr.expected | 0 .../generated/YeetExpr/YeetExpr_getAttr.ql | 7 - .../YeetExpr/YeetExpr_getExpr.expected | 1 - .../generated/YeetExpr/YeetExpr_getExpr.ql | 7 - .../generated/YieldExpr/Cargo.lock | 7 + .../generated/YieldExpr/YieldExpr.expected | 4 + .../generated/YieldExpr/YieldExpr.ql | 18 +- .../YieldExpr/YieldExpr_getAttr.expected | 0 .../generated/YieldExpr/YieldExpr_getAttr.ql | 7 - .../YieldExpr/YieldExpr_getExpr.expected | 1 - .../generated/YieldExpr/YieldExpr_getExpr.ql | 7 - swift/ql/.generated.list | 276 ++----- swift/ql/.gitattributes | 130 --- .../AvailabilityInfo.expected | 7 + .../AvailabilityInfo/AvailabilityInfo.ql | 14 +- .../AvailabilityInfo_getSpec.expected | 5 - .../AvailabilityInfo_getSpec.ql | 7 - .../generated/Diagnostics/Diagnostics.ql | 9 +- .../extractor-tests/generated/File/File.ql | 12 +- .../KeyPathComponent.expected | 14 + .../KeyPathComponent/KeyPathComponent.ql | 30 +- .../KeyPathComponent_getDeclRef.expected | 7 - .../KeyPathComponent_getDeclRef.ql | 7 - ...athComponent_getSubscriptArgument.expected | 2 - .../KeyPathComponent_getSubscriptArgument.ql | 7 - .../KeyPathComponent_getTupleIndex.expected | 1 - .../KeyPathComponent_getTupleIndex.ql | 7 - .../generated/decl/Accessor/Accessor.expected | 129 +++ .../generated/decl/Accessor/Accessor.ql | 71 +- .../decl/Accessor/Accessor_getBody.expected | 36 - .../decl/Accessor/Accessor_getBody.ql | 7 - .../Accessor/Accessor_getCapture.expected | 0 .../decl/Accessor/Accessor_getCapture.ql | 7 - .../Accessor_getGenericTypeParam.expected | 0 .../Accessor/Accessor_getGenericTypeParam.ql | 7 - .../decl/Accessor/Accessor_getMember.expected | 0 .../decl/Accessor/Accessor_getMember.ql | 7 - .../decl/Accessor/Accessor_getName.expected | 36 - .../decl/Accessor/Accessor_getName.ql | 7 - .../decl/Accessor/Accessor_getParam.expected | 13 - .../decl/Accessor/Accessor_getParam.ql | 7 - .../Accessor/Accessor_getSelfParam.expected | 36 - .../decl/Accessor/Accessor_getSelfParam.ql | 7 - .../AssociatedTypeDecl.expected | 4 + .../AssociatedTypeDecl/AssociatedTypeDecl.ql | 26 +- ...sociatedTypeDecl_getInheritedType.expected | 1 - .../AssociatedTypeDecl_getInheritedType.ql | 7 - .../AssociatedTypeDecl_getMember.expected | 0 .../AssociatedTypeDecl_getMember.ql | 7 - .../decl/CapturedDecl/CapturedDecl.expected | 2 + .../decl/CapturedDecl/CapturedDecl.ql | 21 +- .../CapturedDecl_getMember.expected | 0 .../CapturedDecl/CapturedDecl_getMember.ql | 7 - .../decl/ClassDecl/ClassDecl.expected | 20 + .../generated/decl/ClassDecl/ClassDecl.ql | 34 +- .../ClassDecl_getGenericTypeParam.expected | 2 - .../ClassDecl_getGenericTypeParam.ql | 7 - .../ClassDecl_getInheritedType.expected | 2 - .../ClassDecl/ClassDecl_getInheritedType.ql | 7 - .../ClassDecl/ClassDecl_getMember.expected | 12 - .../decl/ClassDecl/ClassDecl_getMember.ql | 7 - .../ConcreteVarDecl/ConcreteVarDecl.expected | 109 +++ .../decl/ConcreteVarDecl/ConcreteVarDecl.ql | 98 ++- .../ConcreteVarDecl_getAccessor.expected | 40 - .../ConcreteVarDecl_getAccessor.ql | 7 - ...cl_getAttachedPropertyWrapperType.expected | 5 - ...eVarDecl_getAttachedPropertyWrapperType.ql | 7 - .../ConcreteVarDecl_getMember.expected | 0 .../ConcreteVarDecl_getMember.ql | 7 - ...creteVarDecl_getParentInitializer.expected | 14 - .../ConcreteVarDecl_getParentInitializer.ql | 7 - .../ConcreteVarDecl_getParentPattern.expected | 26 - .../ConcreteVarDecl_getParentPattern.ql | 7 - ...Decl_getPropertyWrapperBackingVar.expected | 5 - ...eteVarDecl_getPropertyWrapperBackingVar.ql | 7 - ...tPropertyWrapperBackingVarBinding.expected | 5 - ...ecl_getPropertyWrapperBackingVarBinding.ql | 7 - ...l_getPropertyWrapperProjectionVar.expected | 2 - ...VarDecl_getPropertyWrapperProjectionVar.ql | 7 - ...opertyWrapperProjectionVarBinding.expected | 2 - ..._getPropertyWrapperProjectionVarBinding.ql | 7 - .../decl/EnumDecl/EnumCaseDecl.expected | 21 + .../generated/decl/EnumDecl/EnumCaseDecl.ql | 20 +- .../EnumDecl/EnumCaseDecl_getElement.expected | 18 - .../decl/EnumDecl/EnumCaseDecl_getElement.ql | 7 - .../EnumDecl/EnumCaseDecl_getMember.expected | 0 .../decl/EnumDecl/EnumCaseDecl_getMember.ql | 7 - .../generated/decl/EnumDecl/EnumDecl.expected | 44 + .../generated/decl/EnumDecl/EnumDecl.ql | 34 +- .../EnumDecl_getGenericTypeParam.expected | 1 - .../EnumDecl/EnumDecl_getGenericTypeParam.ql | 7 - .../EnumDecl_getInheritedType.expected | 1 - .../EnumDecl/EnumDecl_getInheritedType.ql | 7 - .../decl/EnumDecl/EnumDecl_getMember.expected | 38 - .../decl/EnumDecl/EnumDecl_getMember.ql | 7 - .../decl/EnumDecl/EnumElementDecl.expected | 14 + .../decl/EnumDecl/EnumElementDecl.ql | 26 +- .../EnumElementDecl_getMember.expected | 0 .../EnumDecl/EnumElementDecl_getMember.ql | 7 - .../EnumElementDecl_getParam.expected | 11 - .../decl/EnumDecl/EnumElementDecl_getParam.ql | 7 - .../decl/ExtensionDecl/ExtensionDecl.expected | 15 + .../decl/ExtensionDecl/ExtensionDecl.ql | 33 +- ...ExtensionDecl_getGenericTypeParam.expected | 0 .../ExtensionDecl_getGenericTypeParam.ql | 7 - .../ExtensionDecl_getMember.expected | 8 - .../ExtensionDecl/ExtensionDecl_getMember.ql | 7 - .../ExtensionDecl_getProtocol.expected | 3 - .../ExtensionDecl_getProtocol.ql | 7 - .../decl/IfConfigDecl/IfConfigDecl.expected | 3 + .../decl/IfConfigDecl/IfConfigDecl.ql | 20 +- .../IfConfigDecl_getActiveElement.expected | 0 .../IfConfigDecl_getActiveElement.ql | 7 - .../IfConfigDecl_getMember.expected | 0 .../IfConfigDecl/IfConfigDecl_getMember.ql | 7 - .../decl/ImportDecl/ImportDecl.expected | 14 + .../generated/decl/ImportDecl/ImportDecl.ql | 31 +- .../ImportDecl_getDeclaration.expected | 5 - .../ImportDecl/ImportDecl_getDeclaration.ql | 7 - .../ImportDecl_getImportedModule.expected | 5 - .../ImportDecl_getImportedModule.ql | 7 - .../ImportDecl/ImportDecl_getMember.expected | 0 .../decl/ImportDecl/ImportDecl_getMember.ql | 7 - .../decl/MacroDecl/MacroDecl.expected | 9 + .../generated/decl/MacroDecl/MacroDecl.ql | 38 +- .../MacroDecl_getGenericTypeParam.expected | 0 .../MacroDecl_getGenericTypeParam.ql | 7 - .../MacroDecl/MacroDecl_getMember.expected | 0 .../decl/MacroDecl/MacroDecl_getMember.ql | 7 - .../MacroDecl/MacroDecl_getParameter.expected | 0 .../decl/MacroDecl/MacroDecl_getParameter.ql | 7 - .../decl/MacroDecl/MacroDecl_getRole.expected | 4 - .../decl/MacroDecl/MacroDecl_getRole.ql | 7 - .../decl/MacroDecl/MacroRole.expected | 5 + .../generated/decl/MacroDecl/MacroRole.ql | 22 +- .../MacroRole_getConformance.expected | 0 .../MacroDecl/MacroRole_getConformance.ql | 7 - .../decl/MacroDecl/MacroRole_getName.expected | 2 - .../decl/MacroDecl/MacroRole_getName.ql | 7 - .../decl/ModuleDecl/ModuleDecl.expected | 17 + .../generated/decl/ModuleDecl/ModuleDecl.ql | 45 +- .../ModuleDecl_getAnExportedModule.expected | 1 - .../ModuleDecl_getAnExportedModule.ql | 7 - .../ModuleDecl_getAnImportedModule.expected | 11 - .../ModuleDecl_getAnImportedModule.ql | 7 - .../ModuleDecl_getInheritedType.expected | 0 .../ModuleDecl/ModuleDecl_getInheritedType.ql | 7 - .../ModuleDecl/ModuleDecl_getMember.expected | 0 .../decl/ModuleDecl/ModuleDecl_getMember.ql | 7 - .../decl/NamedFunction/NamedFunction.expected | 26 + .../decl/NamedFunction/NamedFunction.ql | 57 +- .../NamedFunction_getBody.expected | 4 - .../NamedFunction/NamedFunction_getBody.ql | 7 - .../NamedFunction_getCapture.expected | 0 .../NamedFunction/NamedFunction_getCapture.ql | 7 - ...NamedFunction_getGenericTypeParam.expected | 2 - .../NamedFunction_getGenericTypeParam.ql | 7 - .../NamedFunction_getMember.expected | 0 .../NamedFunction/NamedFunction_getMember.ql | 7 - .../NamedFunction_getName.expected | 5 - .../NamedFunction/NamedFunction_getName.ql | 7 - .../NamedFunction_getParam.expected | 6 - .../NamedFunction/NamedFunction_getParam.ql | 7 - .../NamedFunction_getSelfParam.expected | 1 - .../NamedFunction_getSelfParam.ql | 7 - .../OpaqueTypeDecl/OpaqueTypeDecl.expected | 9 + .../decl/OpaqueTypeDecl/OpaqueTypeDecl.ql | 46 +- ...paqueTypeDecl_getGenericTypeParam.expected | 0 .../OpaqueTypeDecl_getGenericTypeParam.ql | 7 - .../OpaqueTypeDecl_getInheritedType.expected | 0 .../OpaqueTypeDecl_getInheritedType.ql | 7 - .../OpaqueTypeDecl_getMember.expected | 0 .../OpaqueTypeDecl_getMember.ql | 7 - ...queTypeDecl_getOpaqueGenericParam.expected | 4 - .../OpaqueTypeDecl_getOpaqueGenericParam.ql | 7 - .../decl/ParamDecl/ParamDecl.expected | 20 + .../generated/decl/ParamDecl/ParamDecl.ql | 117 ++- .../ParamDecl/ParamDecl_getAccessor.expected | 0 .../decl/ParamDecl/ParamDecl_getAccessor.ql | 7 - ...cl_getAttachedPropertyWrapperType.expected | 2 - ...aramDecl_getAttachedPropertyWrapperType.ql | 7 - .../ParamDecl/ParamDecl_getMember.expected | 0 .../decl/ParamDecl/ParamDecl_getMember.ql | 7 - .../ParamDecl_getParentInitializer.expected | 0 .../ParamDecl_getParentInitializer.ql | 7 - .../ParamDecl_getParentPattern.expected | 0 .../ParamDecl/ParamDecl_getParentPattern.ql | 7 - ...Decl_getPropertyWrapperBackingVar.expected | 2 - .../ParamDecl_getPropertyWrapperBackingVar.ql | 7 - ...tPropertyWrapperBackingVarBinding.expected | 2 - ...ecl_getPropertyWrapperBackingVarBinding.ql | 7 - ...getPropertyWrapperLocalWrappedVar.expected | 2 - ...mDecl_getPropertyWrapperLocalWrappedVar.ql | 7 - ...ertyWrapperLocalWrappedVarBinding.expected | 0 ...etPropertyWrapperLocalWrappedVarBinding.ql | 7 - ...l_getPropertyWrapperProjectionVar.expected | 0 ...ramDecl_getPropertyWrapperProjectionVar.ql | 7 - ...opertyWrapperProjectionVarBinding.expected | 0 ..._getPropertyWrapperProjectionVarBinding.ql | 7 - .../PoundDiagnosticDecl.expected | 2 + .../PoundDiagnosticDecl.ql | 20 +- .../PoundDiagnosticDecl_getMember.expected | 0 .../PoundDiagnosticDecl_getMember.ql | 7 - .../AppliedPropertyWrapperExpr.expected | 2 + .../AppliedPropertyWrapperExpr.ql | 16 +- ...pliedPropertyWrapperExpr_getParam.expected | 0 ...ppliedPropertyWrapperExpr_getType.expected | 0 .../AppliedPropertyWrapperExpr_getType.ql | 7 - ...pliedPropertyWrapperExpr_getValue.expected | 0 .../expr/CopyExpr/ConsumeExpr.expected | 3 + .../generated/expr/CopyExpr/ConsumeExpr.ql | 13 +- .../CopyExpr/ConsumeExpr_getType.expected | 1 - .../expr/CopyExpr/ConsumeExpr_getType.ql | 7 - .../generated/expr/CopyExpr/CopyExpr.expected | 3 + .../generated/expr/CopyExpr/CopyExpr.ql | 13 +- .../expr/CopyExpr/CopyExpr_getType.expected | 1 - .../expr/CopyExpr/CopyExpr_getType.ql | 7 - .../DotSyntaxCallExpr.expected | 3 + .../DotSyntaxCallExpr/DotSyntaxCallExpr.ql | 22 +- .../DotSyntaxCallExpr_getArgument.expected | 0 .../DotSyntaxCallExpr_getArgument.ql | 7 - .../DotSyntaxCallExpr_getType.expected | 0 .../DotSyntaxCallExpr_getType.ql | 7 - .../DynamicLookupExpr.expected | 7 + .../DynamicLookupExpr/DynamicLookupExpr.ql | 20 +- .../DynamicLookupExpr_getMember.expected | 2 - .../DynamicLookupExpr_getMember.ql | 7 - .../DynamicLookupExpr_getType.expected | 2 - .../DynamicLookupExpr_getType.ql | 7 - .../EnumIsCaseExpr/EnumIsCaseExpr.expected | 12 + .../expr/EnumIsCaseExpr/EnumIsCaseExpr.ql | 15 +- .../EnumIsCaseExpr_getType.expected | 10 - .../EnumIsCaseExpr/EnumIsCaseExpr_getType.ql | 7 - .../ExtractFunctionIsolationExpr.expected | 3 + .../ExtractFunctionIsolationExpr.ql | 14 +- ...ractFunctionIsolationExpr_getType.expected | 1 - .../ExtractFunctionIsolationExpr_getType.ql | 7 - .../expr/IdentityExpr/IdentityExpr.expected | 11 + .../expr/IdentityExpr/IdentityExpr.ql | 15 +- .../IdentityExpr_getType.expected | 9 - .../expr/IdentityExpr/IdentityExpr_getType.ql | 7 - .../ImplicitConversionExpr.expected | 9 + .../ImplicitConversionExpr.ql | 15 +- .../ImplicitConversionExpr_getType.expected | 7 - .../ImplicitConversionExpr_getType.ql | 7 - .../InitializerRefCallExpr.expected | 3 + .../InitializerRefCallExpr.ql | 23 +- ...nitializerRefCallExpr_getArgument.expected | 0 .../InitializerRefCallExpr_getArgument.ql | 7 - .../InitializerRefCallExpr_getType.expected | 0 .../InitializerRefCallExpr_getType.ql | 7 - .../expr/KeyPathExpr/KeyPathExpr.expected | 34 + .../generated/expr/KeyPathExpr/KeyPathExpr.ql | 23 +- .../KeyPathExpr_getComponent.expected | 14 - .../KeyPathExpr/KeyPathExpr_getComponent.ql | 7 - .../KeyPathExpr/KeyPathExpr_getRoot.expected | 8 - .../expr/KeyPathExpr/KeyPathExpr_getRoot.ql | 7 - .../KeyPathExpr/KeyPathExpr_getType.expected | 8 - .../expr/KeyPathExpr/KeyPathExpr_getType.ql | 7 - .../MethodLookupExpr.expected | 56 ++ .../expr/MethodLookupExpr/MethodLookupExpr.ql | 21 +- .../MethodLookupExpr_getMember.expected | 24 - .../MethodLookupExpr_getMember.ql | 7 - .../MethodLookupExpr_getType.expected | 29 - .../MethodLookupExpr_getType.ql | 7 - .../ObjectLiteralExpr.expected | 12 + .../ObjectLiteralExpr/ObjectLiteralExpr.ql | 19 +- .../ObjectLiteralExpr_getArgument.expected | 6 - .../ObjectLiteralExpr_getArgument.ql | 7 - .../ObjectLiteralExpr_getType.expected | 3 - .../ObjectLiteralExpr_getType.ql | 7 - .../OpenExistentialExpr.expected | 3 + .../OpenExistentialExpr.ql | 18 +- .../OpenExistentialExpr_getType.expected | 1 - .../OpenExistentialExpr_getType.ql | 7 - .../MaterializePackExpr.expected | 2 + .../PackExpansionExpr/MaterializePackExpr.ql | 14 +- .../MaterializePackExpr_getType.expected | 0 .../MaterializePackExpr_getType.ql | 7 - .../PackElementExpr.expected | 3 + .../expr/PackExpansionExpr/PackElementExpr.ql | 14 +- .../PackElementExpr_getType.expected | 1 - .../PackElementExpr_getType.ql | 7 - .../PackExpansionExpr.expected | 3 + .../PackExpansionExpr/PackExpansionExpr.ql | 14 +- .../PackExpansionExpr_getType.expected | 1 - .../PackExpansionExpr_getType.ql | 7 - .../PostfixUnaryExpr.expected | 7 + .../expr/PostfixUnaryExpr/PostfixUnaryExpr.ql | 20 +- .../PostfixUnaryExpr_getArgument.expected | 2 - .../PostfixUnaryExpr_getArgument.ql | 7 - .../PostfixUnaryExpr_getType.expected | 2 - .../PostfixUnaryExpr_getType.ql | 7 - ...opertyWrapperValuePlaceholderExpr.expected | 5 + .../PropertyWrapperValuePlaceholderExpr.ql | 21 +- ...apperValuePlaceholderExpr_getType.expected | 1 - ...ertyWrapperValuePlaceholderExpr_getType.ql | 7 - ...uePlaceholderExpr_getWrappedValue.expected | 1 - ...perValuePlaceholderExpr_getWrappedValue.ql | 7 - .../SingleValueStmtExpr.expected | 4 + .../SingleValueStmtExpr.ql | 13 +- .../SingleValueStmtExpr_getType.expected | 2 - .../SingleValueStmtExpr_getType.ql | 7 - .../expr/SingleValueStmtExpr/ThenStmt.ql | 6 +- .../expr/TypeValueExpr/TypeValueExpr.expected | 4 + .../expr/TypeValueExpr/TypeValueExpr.ql | 14 +- .../TypeValueExpr_getType.expected | 2 - .../TypeValueExpr/TypeValueExpr_getType.ql | 7 - .../generated/stmt/DiscardStmt/DiscardStmt.ql | 6 +- .../generated/stmt/FailStmt/FailStmt.ql | 4 +- .../stmt/ForEachStmt/ForEachStmt.expected | 16 + .../generated/stmt/ForEachStmt/ForEachStmt.ql | 41 +- .../ForEachStmt_getIteratorVar.expected | 2 - .../ForEachStmt/ForEachStmt_getIteratorVar.ql | 7 - .../ForEachStmt/ForEachStmt_getLabel.expected | 0 .../stmt/ForEachStmt/ForEachStmt_getLabel.ql | 7 - .../ForEachStmt_getNextCall.expected | 2 - .../ForEachStmt/ForEachStmt_getNextCall.ql | 7 - .../ForEachStmt_getVariable.expected | 5 - .../ForEachStmt/ForEachStmt_getVariable.ql | 7 - .../ForEachStmt/ForEachStmt_getWhere.expected | 1 - .../stmt/ForEachStmt/ForEachStmt_getWhere.ql | 7 - .../stmt/PoundAssertStmt/PoundAssertStmt.ql | 10 +- .../stmt/SwitchStmt/CaseLabelItem.expected | 4 + .../stmt/SwitchStmt/CaseLabelItem.ql | 14 +- .../CaseLabelItem_getGuard.expected | 2 - .../stmt/SwitchStmt/CaseLabelItem_getGuard.ql | 7 - .../stmt/SwitchStmt/CaseStmt.expected | 23 + .../generated/stmt/SwitchStmt/CaseStmt.ql | 20 +- .../SwitchStmt/CaseStmt_getLabel.expected | 13 - .../stmt/SwitchStmt/CaseStmt_getLabel.ql | 7 - .../SwitchStmt/CaseStmt_getVariable.expected | 7 - .../stmt/SwitchStmt/CaseStmt_getVariable.ql | 7 - .../stmt/SwitchStmt/SwitchStmt.expected | 17 + .../generated/stmt/SwitchStmt/SwitchStmt.ql | 19 +- .../SwitchStmt/SwitchStmt_getCase.expected | 12 - .../stmt/SwitchStmt/SwitchStmt_getCase.ql | 7 - .../SwitchStmt/SwitchStmt_getLabel.expected | 2 - .../stmt/SwitchStmt/SwitchStmt_getLabel.ql | 7 - .../BuiltinIntegerType.expected | 6 + .../BuiltinIntegerType/BuiltinIntegerType.ql | 15 +- .../BuiltinIntegerType_getWidth.expected | 4 - .../BuiltinIntegerType_getWidth.ql | 7 - .../generated/type/BuiltinType/BuiltinType.ql | 11 +- .../type/DynamicSelfType/DynamicSelfType.ql | 12 +- .../type/ExistentialType/ExistentialType.ql | 12 +- .../generated/type/InOutType/InOutType.ql | 12 +- .../generated/type/IntegerType/IntegerType.ql | 11 +- .../generated/type/ModuleType/ModuleType.ql | 11 +- .../OpaqueTypeArchetypeType.expected | 7 + .../OpaqueTypeArchetypeType.ql | 28 +- ...aqueTypeArchetypeType_getProtocol.expected | 3 - .../OpaqueTypeArchetypeType_getProtocol.ql | 7 - ...ueTypeArchetypeType_getSuperclass.expected | 1 - .../OpaqueTypeArchetypeType_getSuperclass.ql | 7 - .../OpenedArchetypeType.expected | 6 + .../OpenedArchetypeType.ql | 26 +- .../OpenedArchetypeType_getProtocol.expected | 2 - .../OpenedArchetypeType_getProtocol.ql | 7 - ...OpenedArchetypeType_getSuperclass.expected | 1 - .../OpenedArchetypeType_getSuperclass.ql | 7 - .../PackType/ElementArchetypeType.expected | 5 + .../type/PackType/ElementArchetypeType.ql | 26 +- .../ElementArchetypeType_getProtocol.expected | 2 - .../ElementArchetypeType_getProtocol.ql | 7 - ...lementArchetypeType_getSuperclass.expected | 0 .../ElementArchetypeType_getSuperclass.ql | 7 - .../type/PackType/PackArchetypeType.expected | 7 + .../type/PackType/PackArchetypeType.ql | 26 +- .../PackArchetypeType_getProtocol.expected | 4 - .../PackType/PackArchetypeType_getProtocol.ql | 7 - .../PackArchetypeType_getSuperclass.expected | 0 .../PackArchetypeType_getSuperclass.ql | 7 - .../type/PackType/PackElementType.ql | 11 +- .../type/PackType/PackExpansionType.ql | 15 +- .../generated/type/PackType/PackType.expected | 4 + .../generated/type/PackType/PackType.ql | 16 +- .../PackType/PackType_getElement.expected | 2 - .../type/PackType/PackType_getElement.ql | 7 - .../ParameterizedProtocolType.expected | 20 + .../ParameterizedProtocolType.ql | 20 +- .../ParameterizedProtocolType_getArg.expected | 18 - .../ParameterizedProtocolType_getArg.ql | 7 - .../PrimaryArchetypeType.expected | 15 + .../PrimaryArchetypeType.ql | 26 +- .../PrimaryArchetypeType_getProtocol.expected | 8 - .../PrimaryArchetypeType_getProtocol.ql | 7 - ...rimaryArchetypeType_getSuperclass.expected | 4 - .../PrimaryArchetypeType_getSuperclass.ql | 7 - .../ProtocolCompositionType.expected | 9 + .../ProtocolCompositionType.ql | 16 +- ...ProtocolCompositionType_getMember.expected | 7 - .../ProtocolCompositionType_getMember.ql | 7 - .../type/TupleType/TupleType.expected | 23 + .../generated/type/TupleType/TupleType.ql | 20 +- .../type/TupleType/TupleType_getName.expected | 3 - .../type/TupleType/TupleType_getName.ql | 7 - .../type/TupleType/TupleType_getType.expected | 17 - .../type/TupleType/TupleType_getType.ql | 7 - .../UnmanagedStorageType.ql | 12 +- .../UnownedStorageType/UnownedStorageType.ql | 12 +- .../VariadicSequenceType.ql | 11 +- .../type/WeakStorageType/WeakStorageType.ql | 12 +- 1753 files changed, 7752 insertions(+), 7850 deletions(-) delete mode 100644 misc/codegen/templates/ql_test_property.mustache delete mode 100644 rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.ql create mode 100644 rust/ql/test/extractor-tests/generated/Abi/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.ql create mode 100644 rust/ql/test/extractor-tests/generated/ArgList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ArrayListExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ArrayTypeRepr/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/AsmClobberAbi/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmConst/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/AsmDirSpec/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmLabel/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmOperandNamed/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/AsmOption/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmOptionsList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmRegOperand/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmRegSpec/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql create mode 100644 rust/ql/test/extractor-tests/generated/AsmSym/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/AssocTypeArg/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.ql create mode 100644 rust/ql/test/extractor-tests/generated/Attr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/AwaitExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/BecomeExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql create mode 100644 rust/ql/test/extractor-tests/generated/BinaryExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql create mode 100644 rust/ql/test/extractor-tests/generated/BlockExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/BoxPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql create mode 100644 rust/ql/test/extractor-tests/generated/BreakExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql create mode 100644 rust/ql/test/extractor-tests/generated/CallExpr/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql create mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql create mode 100644 rust/ql/test/extractor-tests/generated/Comment/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/ConstArg/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ConstBlockPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ContinueExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql create mode 100644 rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExprStmt/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/ExternItemList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql create mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql create mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql create mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/ForTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.expected delete mode 100644 rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql create mode 100644 rust/ql/test/extractor-tests/generated/Function/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAbi.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAbi.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getRetType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getRetType.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/GenericArgList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql create mode 100644 rust/ql/test/extractor-tests/generated/GenericParamList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql create mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql create mode 100644 rust/ql/test/extractor-tests/generated/Impl/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql create mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.expected delete mode 100644 rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql create mode 100644 rust/ql/test/extractor-tests/generated/InferTypeRepr/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/ItemList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.ql create mode 100644 rust/ql/test/extractor-tests/generated/Label/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.ql create mode 100644 rust/ql/test/extractor-tests/generated/LetElse/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql create mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/Lifetime/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.ql create mode 100644 rust/ql/test/extractor-tests/generated/LifetimeArg/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql create mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql create mode 100644 rust/ql/test/extractor-tests/generated/LiteralExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql create mode 100644 rust/ql/test/extractor-tests/generated/LiteralPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql create mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroItems/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/MacroTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql create mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/MatchArmList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql create mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql create mode 100644 rust/ql/test/extractor-tests/generated/MatchGuard/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql create mode 100644 rust/ql/test/extractor-tests/generated/Meta/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.ql create mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql create mode 100644 rust/ql/test/extractor-tests/generated/Module/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getItemList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getItemList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/Name/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Name/Name_getText.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Name/Name_getText.ql create mode 100644 rust/ql/test/extractor-tests/generated/NameRef/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.expected delete mode 100644 rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.ql create mode 100644 rust/ql/test/extractor-tests/generated/NeverTypeRepr/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/OrPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/Param/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getPat.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ParamList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql create mode 100644 rust/ql/test/extractor-tests/generated/ParenExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ParenPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/ParenTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ParenthesizedArgList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql create mode 100644 rust/ql/test/extractor-tests/generated/Path/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Path/Path_getSegment.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Path/Path_getSegment.ql create mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql create mode 100644 rust/ql/test/extractor-tests/generated/PtrTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql create mode 100644 rust/ql/test/extractor-tests/generated/RangePat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.ql create mode 100644 rust/ql/test/extractor-tests/generated/RefExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/RefPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/RefTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql delete mode 100644 rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/Rename/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Rename/Rename_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Rename/Rename_getName.ql create mode 100644 rust/ql/test/extractor-tests/generated/RestPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.ql create mode 100644 rust/ql/test/extractor-tests/generated/RetTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ReturnExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/SlicePat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/SliceTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/SourceFile/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected delete mode 100644 rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql create mode 100644 rust/ql/test/extractor-tests/generated/Static/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getBody.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/StmtList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructField/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructFieldList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/StructPatFieldList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.expected delete mode 100644 rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql create mode 100644 rust/ql/test/extractor-tests/generated/TokenTree/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql create mode 100644 rust/ql/test/extractor-tests/generated/Trait/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/TryExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/TupleExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql create mode 100644 rust/ql/test/extractor-tests/generated/TupleField/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/TupleFieldList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql create mode 100644 rust/ql/test/extractor-tests/generated/TuplePat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.ql create mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql create mode 100644 rust/ql/test/extractor-tests/generated/TupleTypeRepr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeArg/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeBoundList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql create mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql create mode 100644 rust/ql/test/extractor-tests/generated/UnderscoreExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.ql create mode 100644 rust/ql/test/extractor-tests/generated/Use/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql create mode 100644 rust/ql/test/extractor-tests/generated/UseTree/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.ql delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql create mode 100644 rust/ql/test/extractor-tests/generated/UseTreeList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.expected delete mode 100644 rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql create mode 100644 rust/ql/test/extractor-tests/generated/Variant/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getName.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getName.ql delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.ql create mode 100644 rust/ql/test/extractor-tests/generated/VariantList/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.expected delete mode 100644 rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.ql create mode 100644 rust/ql/test/extractor-tests/generated/Visibility/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.expected delete mode 100644 rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.ql create mode 100644 rust/ql/test/extractor-tests/generated/WhereClause/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql create mode 100644 rust/ql/test/extractor-tests/generated/WherePred/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql create mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.expected delete mode 100644 rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql create mode 100644 rust/ql/test/extractor-tests/generated/WildcardPat/Cargo.lock create mode 100644 rust/ql/test/extractor-tests/generated/YeetExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql create mode 100644 rust/ql/test/extractor-tests/generated/YieldExpr/Cargo.lock delete mode 100644 rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql delete mode 100644 rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.expected delete mode 100644 rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql delete mode 100644 swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.expected delete mode 100644 swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.expected delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.expected delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.expected delete mode 100644 swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql delete mode 100644 swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getParam.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getValue.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.expected delete mode 100644 swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.ql delete mode 100644 swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.expected delete mode 100644 swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.ql diff --git a/misc/codegen/generators/qlgen.py b/misc/codegen/generators/qlgen.py index 991c21990d4..f8eb0b75ab7 100755 --- a/misc/codegen/generators/qlgen.py +++ b/misc/codegen/generators/qlgen.py @@ -372,11 +372,6 @@ def _partition_iter(x, pred): return filter(pred, x1), itertools.filterfalse(pred, x2) -def _partition(l, pred): - """partitions a list according to boolean predicate""" - return map(list, _partition_iter(l, pred)) - - def _is_in_qltest_collapsed_hierarchy( cls: schema.Class, lookup: typing.Dict[str, schema.Class] ): @@ -625,29 +620,18 @@ def generate(opts, renderer): test_dir / missing_test_source_filename, ) continue - total_props, partial_props = _partition( - _get_all_properties_to_be_tested(c, data.classes), - lambda p: p.is_total, - ) renderer.render( ql.ClassTester( class_name=c.name, - properties=total_props, + properties=list( + _get_all_properties_to_be_tested(c, data.classes) + ), elements_module=elements_module, # in case of collapsed hierarchies we want to see the actual QL class in results show_ql_class="qltest_collapse_hierarchy" in c.pragmas, ), test_dir / f"{c.name}.ql", ) - for p in partial_props: - renderer.render( - ql.PropertyTester( - class_name=c.name, - elements_module=elements_module, - property=p, - ), - test_dir / f"{c.name}_{p.getter}.ql", - ) final_synth_types = [] non_final_synth_types = [] diff --git a/misc/codegen/lib/ql.py b/misc/codegen/lib/ql.py index 7537aac995c..034cf452fb7 100644 --- a/misc/codegen/lib/ql.py +++ b/misc/codegen/lib/ql.py @@ -245,13 +245,6 @@ class ClassTester(TesterBase): show_ql_class: bool = False -@dataclass -class PropertyTester(TesterBase): - template: ClassVar = "ql_test_property" - - property: PropertyForTest - - @dataclass class MissingTestInstructions: template: ClassVar = "ql_test_missing" diff --git a/misc/codegen/templates/ql_test_class.mustache b/misc/codegen/templates/ql_test_class.mustache index 63c5e24050c..f63933e5ca6 100644 --- a/misc/codegen/templates/ql_test_class.mustache +++ b/misc/codegen/templates/ql_test_class.mustache @@ -3,14 +3,28 @@ import {{elements_module}} import TestUtils -from {{class_name}} x{{#properties}}, {{#type}}{{.}}{{/type}}{{^type}}string{{/type}} {{getter}}{{/properties}} -where toBeTested(x) and not x.isUnknown() +query predicate instances({{class_name}} x{{#show_ql_class}}, string primaryQlClasses{{/show_ql_class}}{{#properties}}{{#is_total}}, string {{getter}}__label, {{#type}}{{.}}{{/type}}{{^type}}string{{/type}} {{getter}}{{/is_total}}{{/properties}}) { + toBeTested(x) and not x.isUnknown() + {{#show_ql_class}} + and primaryQlClasses = x.getPrimaryQlClasses() + {{/show_ql_class}} + {{#properties}} + {{#is_total}} + and {{getter}}__label = "{{getter}}:" + {{#type}} + and {{getter}} = x.{{getter}}() + {{/type}} + {{^type}} + and if x.{{getter}}() then {{getter}} = "yes" else {{getter}} = "no" + {{/type}} + {{/is_total}} + {{/properties}} +} + {{#properties}} -{{#type}} -and {{getter}} = x.{{getter}}() -{{/type}} -{{^type}} -and if x.{{getter}}() then {{getter}} = "yes" else {{getter}} = "no" -{{/type}} +{{^is_total}} +query predicate {{getter}}({{class_name}} x{{#is_indexed}}, int index{{/is_indexed}}, {{type}} {{getter}}) { + toBeTested(x) and not x.isUnknown() and {{getter}} = x.{{getter}}({{#is_indexed}}index{{/is_indexed}}) +} +{{/is_total}} {{/properties}} -select x{{#show_ql_class}}, x.getPrimaryQlClasses(){{/show_ql_class}}{{#properties}}, "{{getter}}:", {{getter}}{{/properties}} diff --git a/misc/codegen/templates/ql_test_property.mustache b/misc/codegen/templates/ql_test_property.mustache deleted file mode 100644 index 2c293d7bcab..00000000000 --- a/misc/codegen/templates/ql_test_property.mustache +++ /dev/null @@ -1,10 +0,0 @@ -// generated by {{generator}}, do not edit - -import {{elements_module}} -import TestUtils - -{{#property}} -from {{class_name}} x{{#is_indexed}}, int index{{/is_indexed}} -where toBeTested(x) and not x.isUnknown() -select x, {{#is_indexed}}index, {{/is_indexed}}x.{{getter}}({{#is_indexed}}index{{/is_indexed}}) -{{/property}} diff --git a/misc/codegen/test/test_qlgen.py b/misc/codegen/test/test_qlgen.py index 43617d5f9e4..4c3d759009d 100644 --- a/misc/codegen/test/test_qlgen.py +++ b/misc/codegen/test/test_qlgen.py @@ -960,10 +960,6 @@ def a_ql_class_tester(**kwargs): return ql.ClassTester(**kwargs, elements_module=stub_import) -def a_ql_property_tester(**kwargs): - return ql.PropertyTester(**kwargs, elements_module=stub_import) - - def test_test_source_present(opts, generate_tests): write(opts.ql_test_output / "A" / "test.swift") assert generate_tests( @@ -1041,31 +1037,19 @@ def test_test_partial_properties(opts, generate_tests): "B/B.ql": a_ql_class_tester( class_name="B", properties=[ + ql.PropertyForTest(getter="getX", is_total=False, type="string"), ql.PropertyForTest(getter="hasX"), + ql.PropertyForTest( + getter="getY", is_total=False, is_indexed=True, type="bool" + ), ql.PropertyForTest(getter="getNumberOfYs", type="int"), + ql.PropertyForTest( + getter="getZ", is_total=False, is_indexed=True, type="int" + ), + ql.PropertyForTest(getter="getAW", is_total=False, type="string"), ql.PropertyForTest(getter="getNumberOfWs", type="int"), ], ), - "B/B_getX.ql": a_ql_property_tester( - class_name="B", - property=ql.PropertyForTest(getter="getX", is_total=False, type="string"), - ), - "B/B_getY.ql": a_ql_property_tester( - class_name="B", - property=ql.PropertyForTest( - getter="getY", is_total=False, is_indexed=True, type="bool" - ), - ), - "B/B_getZ.ql": a_ql_property_tester( - class_name="B", - property=ql.PropertyForTest( - getter="getZ", is_total=False, is_indexed=True, type="int" - ), - ), - "B/B_getAW.ql": a_ql_property_tester( - class_name="B", - property=ql.PropertyForTest(getter="getAW", is_total=False, type="string"), - ), } @@ -1090,15 +1074,12 @@ def test_test_properties_deduplicated(opts, generate_tests): class_name="Final", properties=[ ql.PropertyForTest(getter="getX", type="string"), + ql.PropertyForTest( + getter="getY", is_total=False, is_indexed=True, type="bool" + ), ql.PropertyForTest(getter="getNumberOfYs", type="int"), ], ), - "Final/Final_getY.ql": a_ql_property_tester( - class_name="Final", - property=ql.PropertyForTest( - getter="getY", is_total=False, is_indexed=True, type="bool" - ), - ), } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index b53665e8af1..41d62fdd3eb 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -657,613 +657,163 @@ lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae01 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 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 -test/extractor-tests/generated/Abi/Abi.ql 7f6e7dc4af86eca3ebdc79b10373988cd0871bd78b51997d3cffd969105e5fdd 2f936b6ca005c6157c755121584410c03e4a3949c23bee302fbe05ee10ce118f -test/extractor-tests/generated/Abi/Abi_getAbiString.ql a496762fcec5a0887b87023bbf93e9b650f02e20113e25c44d6e4281ae8f5335 14109c7ce11ba25e3cd6e7f1b3fcb4cb00622f2a4eac91bfe43145c5f366bc52 -test/extractor-tests/generated/ArgList/ArgList.ql e412927756e72165d0e7c5c9bd3fca89d08197bbf760db8fb7683c64bb2229bc 043dba8506946fbb87753e22c387987d7eded6ddb963aa067f9e60ef9024d684 -test/extractor-tests/generated/ArgList/ArgList_getArg.ql c07c946218489a0ad5fe89e5fd4a7f0ad84a73dc2e650729f48a340cb133be84 ff2382c0693f47e5eb1290aca325290e60c19d877b25b1d7e2ee96009f5fe934 -test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql e6f9fe0dd6af5a1223e1e59827346aa2975bd665aeda36e8844ffb3a79c5e532 38576b6f7257c119917442e4f54fc883480e4da86d2542a1ac16d723ebbba039 -test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql f1ca0521f641bed17581121c0f07c7f8737d9891acdde2c68de59a0684e86a34 496da6513cfee28a31274a2e72b5a58d843407ac5e4870296da0f0b8e7fc85c1 -test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql 6920b532623e8c919701a83a059d9b1aac9e8673e7fdbe26e0a8af5ad6a34b8a 601137c715ce947d79f39d5b131d7ab167a16d29477eacdb1380cd647c4ebac4 -test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql 60a0df80fd34ca5c960b5e060c7090f8bbb8af83aba7099aa298a80e19a13346 c41f80601c7f50eee01c0ed7587e0198296d6a8a5b95c98dd8f865901d34ba5c -test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql fc6ca212aa633b73ee21f7564631c9ad345f15839656d88940dc686cf076a344 d580a367305adbe168996a294329b1adec36956a500ae9717a4af78cb2bef4e6 -test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql 6b00037350fc36cc46345a290bda4c4d4ff99050b970d23eb94294313046a884 0687638b46e43bba9dda35d78ff7b40f976e5e38271eec77e7a21c28349dc42c -test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql cfb831ccbc04092250931e0bd38c7b965fe0fd868081cd5f49fb11cd0da9aa0d 51e05a537928d7fd0aedd800f4d99c1f52630d75efe78bf7b016f1ad2380583b -test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql 38db5e08b7a78f52247b9894fe2f3dd80b89efd2a3ddce446b782f92f6e2efad 8a4d38deac59fff090617e928fb698fc3d57f3651f47b06d3f40dd4ba92b2c93 -test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql f74222b11cc52d3ac79e16d2943c1281c574fee954298752a309abc683798dbb 9701ebe468d76f72b21a7772a9e9bb82d8fd0a4e317437341f31f8395780dc33 -test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql f98889c27e64d193c61c595f0efbb6bbdae7cb214a0ce1c11dbb102979ca9714 5367f35345e665563161060a38dacebc9cf7bd3b48b2f0fd01bc8ef85ffa642c -test/extractor-tests/generated/AsmConst/AsmConst.ql 07f4d623883ad4ff0701d7dd50306c78493407295ae4ccef8c61eba2c58deb30 a66e9cbfea3c212b34628f0189a93ed493fcfd8baaa85338d746e69fe290deb0 -test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql 2ece012be6a62ea66737b2db8693f0e41bb23355d59784572d9193e056def5e4 59a4730da584dcf16e8d9e9f7d4fcd417fcf329933552e783375ad9715e46f4e -test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql d66f9672522b71318764f9c2dbdbeeaf895d66320997c3ba6a68daa7ea7c5600 de7d4231db182f63ab3e65ea5f4b548b530a6af7a79d7663a2250501a22e9783 -test/extractor-tests/generated/AsmExpr/AsmExpr.ql 81db9651d3e3cb2041316f95484bfe2a7d84a93d03a25bd6bcb3db813557a6e0 96c40bdbeadb1e52c6291a4da648304070db435e13f5881ab795f5874ef5885c -test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql 334f92d8b5ab4326d844c0e515c7cda84ba92dc598d5787dc88fe05beb04a7dd 845d6a740f5b8593a42cb00ef0212e8eae063dcd4b4e60af57e37bdfb61e4c0d -test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql 93e644147ddc4de00c882c32d17ff3c22822e116b67361d52217619153b7d4c4 4c0c3f72707f41e879426ff75c5631e9283dc0507316740bec22216c5feb04e9 -test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql d2070ad3509e5f4cf77d1ebd7ed730368627abf9c99e34cbece822f921f0a2dc 602646dd1bfcb3f6e09c1c3aa7a9d0cde38c60a397443c26d464fda15b9d86f5 -test/extractor-tests/generated/AsmLabel/AsmLabel.ql 5fa35306f29af248328e480445812d249428e1ca1ad8fd9bf6aaa92e864b14e4 93690a78ecb8bbb2fea9d56ce052bb12783596bde9664a6014b992c1ed9054a3 -test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql 2ca16a4c6cfa438393d7e805f7da3971929e18eb70014e7a9c715d043404d704 f9ea9dafa9b90cce5624e0f2f900eb2056a45a0dd4d53eb1f31267661f02d17a -test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql 660b7d5a466a7d426dd212ab7e4d7e990710aedcfd9e82d94757c9d3404f6040 a0afa9d7158f285e3fa306d3189bd0babe26d53cbf53a574de8239ff1046a7a6 -test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql 00c8ccb9d4694067810288022ee6d57007676f1b9d13071c2d3abc240421ed79 d0febfa9a18b9b34f747cdc23400ca6be63df187e2b37125a4da7460316ac0a9 -test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql 8a3890c5ae23ce0e20fb4ff1af574db1faffac3bdac75c1f13fb8bb3227d9335 f4ac325ffebfb1fc3cb68b4405b49a012a4cc1ad12c1f8dffb415232e2bb3ca2 -test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql ab7d567a6647f5cb03586b914131897d52d66909f1c8f0178ec07975560bdd42 ef4302d3dddd4bce1420e64b870da600c4368ab8cf888dc6e260d50d9e78dc2a -test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql 8836f5152483ef6897db1e6c761dfbf51df4addcd448b554ab9e397b72c8c10c 3751a2558255c721f959b9651040c0f6f7db77165492dab7555209eb36b97353 -test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql 8932726b3a76e3358a22499e4b5f6702c971d8ea6c0dad4d9edf7fd1a7e8e670 8aabd40dbdb0b46e48b875ad7fdf2dddc11d8520e94c2ef49c8fccf81f3936a1 -test/extractor-tests/generated/AsmOption/AsmOption.ql c3b734a8ed0c8cb7c2703243803244c70f6ab49cd5443808b51c69b542479cbb f33359108019bc7e489a3493a14cc8626393cf021b264e09c06f9997fb1f69ce -test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql b2be14f72b828d69058cdfe06f2e974e34ca4f864b6a792e18927ba6bad2bed8 44a766a4588b30e974e22e87c1620531b754d3d68fe30159f1cd75e556759b33 -test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql 1a775bb242deba03dcbc55469812a11e7bce4506c9258c6cb18696c4b26d7fe4 6c609d289c8bac2074513f52dd5ed5021224de212968db495f51709c9fb31dc8 -test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql 809114ab618f85ba8c4b87c6602ec0641445bdd1cd679b2abc9e3b0c0c790aeb ea18549186133865bf9eb62021d16ef702365c0c919dd8a2d00ca4a337eeb65c -test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql 3074826db602b4f716a7504b019d3834cd2ef1a3f411621780ef40b97603cfe1 2fa32c795d7024f6a7370edac9f9d762f685981cb5bf5886e930316a2830095a -test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql 0fb1e458b477158439eaf222eeb7c16ccdb12584fd87941c0f8b058ee1e91946 6f3297fca9c90ca730e9e02eb83a54f4077e03d36f9c268515300482e5c82a0a -test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql 138acb4234fd0607e1884304e712498f4d34cb0da52f55a3729b33ec69056b10 c4207e230d60405644bc6cc56d871901116900ccb6d33398fef7292229223969 -test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql c80510ab2e3975cdec4a98df8d0d0153bc46f64c677c89c208e9ced5c78f500c daf705c0e8cace232fc4609e70f7bc2f8565f47f18d0decf7da580405609b0fd -test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql 6c02b392b2e602c7257cd5591ded2674c37a54709a84250642f56671ac993f6c e9ec9a6202f8a6774ea46686f0a2b4c6a4511fec129ff95c61159e7102a50c7b -test/extractor-tests/generated/AsmSym/AsmSym.ql aa631efd6d31f9003e8b4deaf5fd918f0a3cfe4e319ccde918b47e4a23c43eda af41534bd153d88903217230fcea58b75227bb1ebff851e288f1353250d402f5 -test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql 84943b40c30a8f630e18b9807d600cad010d5b106c68efd2b8de24e72cc4a441 b186f89c722271d98cccbd7eaad8f2a49b46983ef5b6630ac9944d5025676da6 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql e0bfc812d6bc06fcd820d67044831fbc7c6917e11f75565128c5a927c5706aa3 e4b765d91f1205ed818dc1143316aa642d968e7bcd65ed055579ab941c401637 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql c81e25fd7885f13c0500e8f9b84195876e70f2b25ad604046f497818226c8542 62ac0e7c82da169c248e4f9e0e8f866d2f4e599b03a287c2bd407b95a5d9efc8 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql 4d20375752c000aab8d2e4988fff1a5c95689d114c8d63f37b389b95000ee873 957e360a4eeefa2536958770a7d150fda610d1d45c09900dbe66e470e361e294 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql 1d6d4031ed10dbe09ba8597d9ba5417c6b890b5b745e91bca12401459fc3c4e2 7da625c3a6eaf93b0ebd5d9863aad5fad45b1baf5df27d93d7f9c5d1fb76db13 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql 586cb26683e522469a5094d359be4d8e5c6a3a74c1621a059bfcbbbedc0e34b4 84784b38c24313f3ffc88371421550922d9deb44d09ca7727ca77e892a672dc9 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql 3e18791a74c12d93ac8f786aa76bd836876052837bb9f0b25222cde47c55e419 b53bb52ff98c1ca0ba09ffce034a97ddd86e32828df7acb9bf34e20c4fb19664 -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql 37252b5cee5ae64c36612aea57a6766bd34254ae35b9774642a36a8222aecfe6 c1f587d52b39c8aa66b9e6e4f36f40bda17dfcd72714ff79a262af99f829f89d -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql 7e006ac8e8574c66a312b1389c7a85a83561b946e060575cc7234ef523b1a3ba 6123b375796c014a0bc96d39877b3108c13eff34536aa68402bda85511da18da -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql 0e41d63d34076111cdd00ba08e93da36411491ea6eafa2e61e94ea6d05e6bfa6 7bf0e678fe310f9085199877ac2b0817109cd10d26a3179715493b54a2cea649 -test/extractor-tests/generated/Attr/Attr.ql 028ac0a387f674205c5ef903238872ab1b6b7e2201f58c31776cdf740daf437c cb56a22887e0737d28034b39d7c3fb37a3d6eb1f34ce3d112bcea2f0affb3b13 -test/extractor-tests/generated/Attr/Attr_getMeta.ql f1e2df2bc987c670e31b454ab51b3028efc1018fbed2298a8c97f554eb1862f0 a9115ced872c89edc398bda1cbd54068f9065debc14ea5ac887ba13ad8f4e3d8 -test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql 8dcc94a553fbddf17dfc619fbac563a9dc4fc6029860e10703e9ae9765d9ab66 52e7f0c98e6ab5dcef04b2ab5283ecde76e61a2297aa2080d16998f93dc923b7 -test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql c5ee1fc6017c4432a59dfec7d10d32681bd23f98cac70bbe65bc2aec8a680f3a ce6cf93c6305e6585c9d452bcc23af9dc8cbe2c872d2af5238a54c85df2071ee -test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql 143158284c8b7cc40fd2fa47c0bcf3f137ecd080b830476faca0c950b97c797c 0c9f64ce70cccf90fff7e7e9602f8ffdf68535d113914aab24f6450505b61d10 -test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql b095c87b128d667f76585cda671173808130df6d094ac7ebcf89fc345d7908f4 aa3f1caba1cc7a40a0903f91458807e9ac9e8e9f3f5688acea061cebc8a2ff07 -test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql 88c6342cfaa4d199a6c9f69612d3f783ad48c715c729f4909d563e032ee50be3 d90c139b22bf7350f9ae32b8b3ae6c19bf190fb2b4d5154b845f2252090fde32 -test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql c8942270a2ff2b1b5c9ee4319185f0a8f1f8acb39eb825029c02a2457a8cd641 fb4c910ab658404869506718e18a5c8097629ba56111329552abbf429df0a324 -test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql 1c36f72c679d4c0e7d0653bf5f7b70e3019d68e9115645f6db61f6fccabfeaf4 890b64875e44a73eec0d7c905de3363fffec3468171de628652b5066a4306bed -test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql 26d985ac4b668d78d2fefc6b5a37f2dc334e4c5f8511dd14b89014e2ef5c3b07 4546dae1816b2618f8d881e0ca8eaa851c768fcd994f3edd3285a3880878177c -test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql c3f19d8a60066ad6b1810291a669473c75b659cd2f6ac3ab9ed3db2203d4145c c05c5e0226e30f923155669ffc79cfe63af1ca464e8dfc85888dda5f7049711b -test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql 33612159be1c111e3306009d0b04579450fc962a81119b6ea4e255d3c409b401 1a0995b298f50242217cfef81dca8ac978e19e06f90a5f4caadcb6f84460fec2 -test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql 3bcd36b678e87d5c29a43b69c54c80468a89aefa7e69481b48158ae794a53160 a629dc1472b3f6fd7c608ff760e83d8e1363db81dfe9a4b2968690c2ba4925ca -test/extractor-tests/generated/BlockExpr/BlockExpr.ql 19caa39aaa39356219dda740b7152f85e43a4f8d6295841e2c535c7e3bda7a5a bd668574ba41021e758e391d4790b871439badb2486ccf6a5aaf788ad6ae4142 -test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql 15d4d9853d3262ce6ec629c075c60a76eb112dcafe34b71df0e09b39282223cf 792c498bc7079bb5b93034b8a87db3b275a591d78954e844821aeacffe4258ea -test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql de3c28a2677ed71ebd95207aa43ce270765f7f556283f095f1f6296622b80cbc 414ebbb2bfbe4350f933fc3d3636b49a6bb8242e200180780caf95ab8523adb0 -test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql 8c391dfeb69bd92c547a2417bf231cc960a8f34845802722214294728772316a f3e847fa594e9d9cf25d09a0396a10176aad1100c1977a24756ff6287a79e69e -test/extractor-tests/generated/BoxPat/BoxPat.ql 228052e5303f523797994232b1b762c26ce29bd1e38b49d496ccf04090b97c00 6501e816dcb8839b9b72c6ab231db449b8f7779e5faadf5a8c5be81f53eb001f -test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql 7372e29737d968820108211612ed880f3e13084992419f5b52eaddf4bbfa874c dda2f412fcfba756604c03b766e9bbd17e6c2141b2d355fc0e33ec33573ffadb -test/extractor-tests/generated/BreakExpr/BreakExpr.ql cdde2855d98f658187c60b9edc2aa36b1853270f3c183a37b11801ff24d22a8b 687ec032ff86ee21952d2b95dde93fba026a09f6f39a284fbc6e9b42647d80e3 -test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql c7690a9aab1923bf3c2fb06f0a1d441d480b3c91ee1df3a868bbbd96c4042053 c592dd077fb6e22b2d6ddcaec37da2c5a26ba92d84f5d1ae4c78a615b9013765 -test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql 0358f4fe6a66da56177703cf0e991042729c5e34ae8b6dccbb827f95fe936c72 1cb2dd778c50e19fe04c5fdf3a08a502635ea8303e71ff38d03aa7dc53213986 -test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql ad83cc0db3c0f959fef6bb7ce0938d241a877e8cf84d15fb63879be2fe47238c 240b2fe2156b763d3a82fc64159615872db65b65ffb9ba2f3fd5d1ebd6c60f34 -test/extractor-tests/generated/CallExpr/CallExpr.ql cd38ec018b1afe9ae32ef94feca62295ad37c770c38b48a47bfb09697e7ee531 f6b0f2128cd5e63715f630c581d07b83678c298f7a7c56e38815e0d2c49ee36e -test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql 7d8d53ee4a0642f85d6bbfee6912fead699b5d117534d2b1803a670550894484 1782b33724b72afc9b7d99e3a52cacd4431ce1e12a7e43a7ac9872aad769b4ee -test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql b022e7b6b6db9932e787e37b7760c6a09c91140a0368940374a2c919688e0488 c20849c96b53c96f6f717efff5e8b4c0e900c0ef5d715cfbaf7101c7056ad8f4 -test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql 1ace458070875b9ff2c671c2ee18392ea7bf6e51b68ee98d412c8606e8eb8d33 4c35da8255d2975cef4adee15623662441bb8f2e1d73582e4c193d1bc11cc1b5 -test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql 060a6c8b5b85c839b14fe96f9e50291a7a0e5662a945f4f337070f782ec76715 e9a1e44433936146d87be939aa160848b9a7d7333c36da601fb7d1a66d71eb59 -test/extractor-tests/generated/CastExpr/CastExpr.ql f8d889de678f09c32b8e999a1667aaa38366a005d37a537883bce7ea576aad66 488f8285d6af8644968c19488ada65c8f4b7fd82f57271cb290b4896a675d2d7 -test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql 5d5d98172e495cdb8b5cea9d6588c4c245107b441464e3ffd6c27668af11ab4e 5820bf083aaa4c3275004a2cd9eeecc4b45ab96916cbc0655a1b42611c540715 -test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql c37186b8f3e3dab8ae28c0da7263ff7272c40501beb16736ec0fb8990d285e22 59d50d7349234afcf84986b7570db9dcd342e16812f7c46199d4736cdfa5462d -test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql ab6b0a61adc404c89c0e2e1962236a8e703fdc5092512bb4a5d9995af8e13c7b 4e7f6b6f58a1ef34ed45e31e35154dd8dc59054ebedcaa87200c84cc727ef1dd -test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql 42516df87ac28c814d65f6739b2ede6eaa41c505d64756a3b8c7e0ca79895230 8b840f92ec033a4ef5edbe52bed909d8be0fffddf6d3e4bfaf9a8bc174fa2f2c -test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql 71010c43a78a7abe8e63c94353f4b7eb97aca011755d200e7087467c1e3b7a68 2c834328f783ec5032544a692f7e23975bac0228b52b9f8fde46ef46a5f22a5f -test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 4d5f40935d07b0b24d77b93f56e9cea47666c5a3de84744641f9a4cb5d8d1319 b9a235c0a2d6a254d15f1fd1d0c8fdb6a7af51487b3826f26d8ca7a3b6cbc9b2 -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql f7f803afa4e2a5976c911fdf8a91ec607c2f998e22531b9c69a63d85579e34c3 1296acd0fb97e1484aa3f1d5ba09d18088001186f3ba5821eb3218a931ca0d54 -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql 22a973a61274e87620e38338b29beef395818b95a88e2261fff197f7a78a8f76 bd28ed426e4d07823044db869aa8022dc81e8599d156e3e0e7cd49be914a1f36 -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql cbfcf89b8efb5cb9b7bfbea26b5a78b3d4c7994cbf03d5ca60b61ee1b5cb4be5 621431277732ef79c585cb0b7199c49b14c597ee6b594a70d9e6966a09d40a9f -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql c87b61e80dd62e031e8b310d8a4b781a468ecf2e5e81662be400f18bf33c5862 22abbc976a0e6f33c32c0e93cd0dd567cead13d82d561b9214275ea01b4a0573 -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql 68ce501516094512dd5bfed42a785474583a91312f704087cba801b02ba7b834 eacbf89d63159e7decfd84c2a1dc5c067dfce56a8157fbb52bc133e9702d266d -test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql c95bc7306b2d77aa05a6501b6321e6f1e7a48b7ad422ba082635ab20014288ae fe72d44c9819b42fff49b9092a9fb2bfafde6d3b9e4967547fb5298822f30bc3 -test/extractor-tests/generated/Comment/Comment.ql 5428b8417a737f88f0d55d87de45c4693d81f03686f03da11dc5369e163d977b 8948c1860cde198d49cff7c74741f554a9e89f8af97bb94de80f3c62e1e29244 -test/extractor-tests/generated/Const/Const.ql 8cae77fe63a0a64b2ff2f5e642711aa79ad29fb8705d877e195852ed148af67d 6178c888516d9d24aca14a8fdf1e94043e2a7f85332700c13f368b1e22f2bccb -test/extractor-tests/generated/Const/Const_getAttr.ql bd6296dab00065db39663db8d09fe62146838875206ff9d8595d06d6439f5043 34cb55ca6d1f44e27d82a8b624f16f9408bae2485c85da94cc76327eed168577 -test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql 82e86399d5cd72621dc8d9cd9f310d3dc7f2ecf208149dab0d202047ccbbd2f8 33df8c5b5044f49ec244e183c61c3b81fabd987f590ba6da4e18e08231343dc8 -test/extractor-tests/generated/Const/Const_getBody.ql f50f79b7f42bb1043b79ec96f999fa4740c8014e6969a25812d5d023d7a5a5d8 90e5060ba9757f1021429ed4ec4913bc78747f3fc415456ef7e7fc284b8a0026 -test/extractor-tests/generated/Const/Const_getCrateOrigin.ql f042bf15f9bde6c62d129601806c79951a2a131b6388e8df24b1dc5d17fe89f7 7c6decb624f087fda178f87f6609510907d2ed3877b0f36e605e2422b4b13f57 -test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql 3300b902e1d1f9928cfe918203b87043e13460cfa5348a8c93712d2e26d61ced 71e7b80d3290f17b1c235adaca2c48ae90eb8b2cb24d4c9e6dc66559daf3824c -test/extractor-tests/generated/Const/Const_getGenericParamList.ql 8bef3c83401a0a203d1e19a4dc652d2285870760cc2032a1b5745fae9fc3f29b 95b2f730daf19eb87b17a3f602ea3a71a1056c8f2a2328d7b46189cc82b29e4c -test/extractor-tests/generated/Const/Const_getName.ql b876a1964bbb857fbe8852fb05f589fba947a494f343e8c96a1171e791aa2b5e 83655b1fbc67a4a1704439726c1138bb6784553e35b6ac16250b807e6cd0f40c -test/extractor-tests/generated/Const/Const_getTypeRepr.ql 87c5deaa31014c40a035deaf149d76b3aca15c4560c93dd6f4b1ee5f76714baa f3e6b31e4877849792778d4535bd0389f3afd482a6a02f9ceb7e792e46fca83e -test/extractor-tests/generated/Const/Const_getVisibility.ql de6b2e9d887316e279b45fab7887980ca7d93fd32c2259f3a06de2b6e2957c12 2f135cdbbb84b43d282131edb7eb4df6caba61bf7421881a49d4679f0f44f661 -test/extractor-tests/generated/Const/Const_getWhereClause.ql 9458b25fd2567c92d1230afb844d81f1f9a9a7b4d164cbdf8b86455ef0d02251 8792f1a5cccaf77f6b1673dd5acd067acfb79f9a8a34a0769e0eb69ab89c9f16 -test/extractor-tests/generated/ConstArg/ConstArg.ql f1422b216eb45819ff41f0c19e0f88aa184ddd3fa2984ba22ec46df398147fc3 d2e4f367848c2bc4f6aef51c1dd8180035c39919430082c83f18a3f324228df3 -test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql 317fd83ad51acc3ff3dfab71ebb1385b67d49404c1d7b3804a8ca3c099b84e99 91ecf5ebbfc1aab286dce708680f0be97417f9755676db7479fa6836e50be845 -test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql ee17b4deba9c503130e3ce565102bc8e181770efcb1309be9c822f0a7ba6fc17 638ed17b5c009e71b31f580c4060ba763bd4208c3984b6c032183ab46a4dd43d -test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql cc06e762e1652e467c7cf02c34f17c621fb3a938f294ee527fa04ed78c8701ec f863f8f6bfc9d169b585ae56b4e4ac0fc1603fd14775450e950cca4d5ea28e8a -test/extractor-tests/generated/ConstParam/ConstParam.ql de4a92306dd3f65e0d308d34715f388815dc70955b819c627f5839cbd9d8b464 ff98827d3ab57bfc48356072de0172e8e1c2374dc6a086b1ad721b6d9e6038e6 -test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql af8949f1ea039a562a3b3561185a85f7f8a871bf27dba0580782f81c62b6508c 2874783b84fdce47b809f953e02c36473cad6a2d3dd1c0f1a9cb14a3e28b9c30 -test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql 021630468422c30e7aa623bdf4e97f3076e68087991723c624922b1ee608d173 9fd78738cfd0455be2c655852f6c618e901af80c6b6791396d9683c118a44e91 -test/extractor-tests/generated/ConstParam/ConstParam_getName.ql e2e9b75dd7ce501793efce75079aabd3851b91aa4d437972693bacd7b04859d8 4d2326b39af870a2ef8b37448f78395cdb5c1e94df88f137ef71f8fd3548cd8e -test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql f25a4695e06a6410264e979c7a4421253437cbab5837afafffbe69ecb384ce55 4b7ead1298ea0b5e12dfa2d75aa4732e1070c6880982a9cbaccc8d129956a232 -test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 971ccb238aec663855745fa2669d5f8973a4e6c76bacdf0deaf23522ec1cf80c 4e3ceb4c4cd833ad8311bb02e5cda18163082e341cd8a3def60734a53cca8929 -test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql acb261869d3b3c65e364e7b6fbd7afdf5305806d4417b05044beed9a81e66ea4 af35ce0aee87ddc7a0cd34be4a480c619940d036d5cecce0e4e1fcd75b7c553e -test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql 39dae9872d92fa9b15343c93da545c2b0e15b4f27f2296c200fd4611b68858d5 52a209022e3b83260b4ef5513ffbcc1ca1f7c21bad2c721a0d3698793d2161d2 +test/extractor-tests/generated/Abi/Abi.ql 87ab06a93ccafe134a1411824b074e503a04f6fe22bb8c96d8253ae64334772d 7bca5e6b911703d6a098458aaa6db1ad16a52d1f5e3f3a76000156f1071052b5 +test/extractor-tests/generated/ArgList/ArgList.ql a497188303fe07cf772bbc56632d6cc3b8b8e7ee6bbb6eb155307c75b9b9be3c bc2ae847d8f39b7afc787476b5b1d7a51da542a7646889ddf2fab39fa63d7b67 +test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql d061a7434b0060655b7997a580cddade9acf48af1ffe52b750cc4616d42a2cac 4bb5bd3c159b8e86fd0fbc9deef34cdb2d7a8cef6d78104aaf76374cce44bf37 +test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql 5545ae3bf6d7805946a5daaa9460a6ddf882bcb128cf82c5ca34f52577e15f52 028dc4c48cc8e4763c52d5883aef714576f9b9bdffe5083b61b5c95cdf947f27 +test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql 543e8066a765cd819552c866f59fd402e073f7d6b164e68f6d7a9d30edced27a df17b62ef6521a63160b671869540ebd1052f30498be5a1b57511485d20e7828 +test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql adfcfcdc6ac2a9a4849ea592e37da4221b6279cf2ea1112d32b6c89fda33e85e 7438490536e27b7173dec731f6925531a0e3fa839639c97a53905ba72d7efbe5 +test/extractor-tests/generated/AsmConst/AsmConst.ql 5a4c0a21d640d7ab4735f78b548a391dec4402e31f6d7684039e822c33683833 b20c6739d5615ea74965598d63b374f76e8e7fdde27efa273854f31f2bb21afc +test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql 518a739c91481f67b27bfd1989d9dcbada12de54901eb6d598c896cd72f1f5fe 4567661eecf475fb05e13749b9250bcec51056b6db5a6ae7df24b7ba5cfb88c2 +test/extractor-tests/generated/AsmExpr/AsmExpr.ql 475a2553186e3ad1cfad94068e244f3fdc9f540fca99b55d3937e36aa3eec376 b83a9d11206f4a125b2801ee12a005e6ef0f8366df60e6577ba49dedcf89c87c +test/extractor-tests/generated/AsmLabel/AsmLabel.ql 5e34c4c7df6a7b2322369ff1880e6083fa4a3701af7c72f5687a98a1d47b7d95 fd4b3cd2ad69feede0a214f6f214185da2ef30e6203791067ae2f8facce01294 +test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql 63dc56ef014c49b513532c79b9fe1948a74b8f1c9a48091787588993c1b37809 d6e62c7c0992667df1948d09b11e39b634e12313a09655fe84517293312e7b00 +test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql 65b4ff566b3252ad481b1e42ac7b62545df326e00ffcc95e2d9117b3117b101b b797be42864330fa36db8a13b38f2d769871def41425cdd28ee47675d903375b +test/extractor-tests/generated/AsmOption/AsmOption.ql d613c40391f4985414cc3541f900b6e3f5f9ef157d2bfb96a773710af4b059ed 8450ef57a5a891db514e8340151d161e515b59ae7b963fd5eebf3bf862eaff08 +test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql cac59185594ffe635d48b3493a7b597a3848ed77d5f1db4dca78fe5b81e1bca0 9ba5c822f17c479fe62cd9fa747a7dd08bf50714a672bfe67b8c17e413dabcb9 +test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql cd7e3a22fe65052641f63096c08abb152bf7e211178c639ba4014eac1d09b6cb b921c7f1a322a24b221f1480d8cab2d8a2c91b02335d8cc60c340b18cc732941 +test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql 23b4e90991d3f7d22f91dc4eb036280bc18a27a2890711268ed21a5f708e5d72 35c585c95f9fd611ec171ac97a32b0b7ddf3852b7fe1d8eba3f0028b254cadce +test/extractor-tests/generated/AsmSym/AsmSym.ql f58f7020d924b2a03174ba0cb0b9bd2f909bdf609e7c1ab14458c70b03f95e00 8b320237d857be3a0b14ffbac652806a58fce782de3bdd6af2ad7df4adf848cd +test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql a2119629513df2b9242564b61cff74612a909c071904913a2a52a8a5b17aff63 9a377a477bb2313d4ef815e359e92dbfee7acd980d8e54599ff7e1a88c8dd2a3 +test/extractor-tests/generated/Attr/Attr.ql 5b066cc3363368e20f7f434219aed0ef137e3ce56469aef0566be0531858c74f 92fefe89a0a9a70abd0eac0ac719b2e7a3c958c0c54a5ce7f3f58e3e78552ba3 +test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql c78e4a1d09b51d30ea8afbc512863c78f22b283f6886942cffa782dbc6aceaec ce5abb705e02cb69960ae5d68c973e3d096dc7aff57f38626d09b05eb2ef511f +test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql 0802a7416d6b01ed60637528b1aafc5f719219cd95b006c402b7456bdc15a56a 5d3071fd1938ccd47c3dfefc7e88ce20dc93021bb9c0166905c6ec89f6d8b2cf +test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql 5291e45119668d5f0084bae39ac18666e466e5e780170e7595da1dc607cec7cd 40829d46132cf38719f2d76768ead166626402722cd8189d626095a1f1fb7494 +test/extractor-tests/generated/BlockExpr/BlockExpr.ql 6219fba04071aeaa9e6ccd4b8b87ca99761b57b475f7742dfd8f39562636f934 db35d18bcc678a9d38698a82a1964e4febf7c8ed7b71b910a0c5ec54f9ecd31a +test/extractor-tests/generated/BoxPat/BoxPat.ql 0d4d81ad2414ebb593df7fa545c0da845ee1b65228af6e513c9516435688993d 66e56ad5e81488b85112ff8ff595db332a12967646f1f6b0aabcb7bf469efd33 +test/extractor-tests/generated/BreakExpr/BreakExpr.ql c879c5140cd2d537b225bbbb8650344ff8f08873e451e1c9229d914de8a0dc4c 0c71d378988ad805c1cda4a63aca1720cb82310b5204349b1de35ca5fc39b053 +test/extractor-tests/generated/CallExpr/CallExpr.ql ad956f12c89a8be873c8a3d3069f29ecf61f24ea6283e0903ed1c45ca8bd71ea 2726391717cd98e52c4c33e3a39dbae5e9e90d8cfa644ca8926ac4bdf61e71f9 +test/extractor-tests/generated/CastExpr/CastExpr.ql 67b7b17f946553936b5e3f8a524814c54fc052d5267e6e48be789228fca58849 95b1407a097b5a70cd206037a82e51f0fbdcfabbe642eb28db06b262171b5120 +test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql 576e6d91c75744644db4f3a94d904a707c5b3e99b424f4802417546b15b168df 9904cc2162ace5515fee867d5916896799f487f8a8c409b1c3cd79b3365add02 +test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 836d86eb07ece80b7141f310b946320730ee9e8e6088356a2eb46f3cb0246df5 64dabada0b9c5b5645e53a48c7cb9ebc21362a197ea537ec68faebc4ba9abd97 +test/extractor-tests/generated/Comment/Comment.ql 0e0454911d2cf2e7ef5c6d860b84c57b9d490090914ebcf4fa0e8a70f777f066 cbd1c195276ef163f8d3c122344738c884dc9fb70eb2f9b7067829d735d48c4c +test/extractor-tests/generated/Const/Const.ql 784485603447ea3fa1e90913a7b00749927b62519035027b764c3a4dd705ef40 5969f2bca03114027b580c2a31621a948f3b41dc0d35437796a84b35ed793caa +test/extractor-tests/generated/ConstArg/ConstArg.ql 1f9c1317bad8a56482761355ac9245ec7e9f6a4c6b46f03215cac5c66a8b0897 6b3590000e5acbef9f00988d8b0e1f010f3e39f700d60370dbbfac70a6a5ee23 +test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql 78ca1c2ebd7acbc1714691d16ed6fd5f29cf290f93bdb6f3c345ec840c1b3705 2635b135d259c78b1449dda0b66bf46c970a87b9431210eed82323a194ad0468 +test/extractor-tests/generated/ConstParam/ConstParam.ql 3a6aeb3af80f0cf842614ec49a2207c622fa91f45913095084b401f9ccc0dafd 625318a52f2ac2a0fc4245eb2bb26dd9b38c99e97f17729b4cf7101ebe23d00a +test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 1d7a8da67f931c4ef23bab2d0a747fff8eca9b71f9fa4fe38b8327a172dfa743 fb38f3b04f4ae11825ba22a87ee24d13581d4d728fe92ababa448e43a446155d test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 -test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 513d64b564f359e1022ae6f3d6d4a8ad637f595f01f29a6c2a167d1c2e8f1f99 0c7a7af6ee1005126b9ab77b2a7732821f85f1d2d426312c98206cbbedc19bb2 -test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b20720ff0b147d55cea6f2de44d5bf297e79991eaf103938ccd7ab9d129e9656 eb8c9db2581cea00c29d7772de0b0a125be02c37092217a419f1a2b6a9711a6c -test/extractor-tests/generated/Enum/Enum.ql 7c96c17f4adae679a7a8b097c5bfb26978263398b77dfa6e5b0e7f547d8bbd64 18375fad5a3d574c627b563529fa9c03f7d140e872ce7db81895fcb8da87f001 -test/extractor-tests/generated/Enum/Enum_getAttr.ql 8109ef2495f4a154e3bb408d549a16c6085e28de3aa9b40b51043af3d007afa7 868cf275a582266ffa8da556d99247bc8af0fdf3b43026c49e250cf0cac64687 -test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql 571ec6396fb7fc703b23aab651b3c6c05c9b5cd9d69a9ae8f5e36d69a18c89d3 c04025992f76bce7638728847f1ef835d3a48d3dc3368a4d3b73b778f1334618 -test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql 76d32838b7800ed8e5cab895c9dbea76129f96afab949598bebec2b0cb34b7ff 226d099377c9d499cc614b45aa7e26756124d82f07b797863ad2ac6a6b2f5acb -test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql c7d3c2f1661a0a39bacf7f4977bd484133d9ee3934956d33f77ae1c83145b027 f5e374a3b620d3ef69bcc23123598179bcb4f1167dd29c18c84ad05c94c7957b -test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql 001bb634adc4b20afb241bff41194bc91ba8544d1edd55958a01975e2ac428e1 c7c3fe3dc22a1887981a895a1e5262b1d0ad18f5052c67aa73094586de5212f6 -test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql 2a858a07195a4b26b8c92e28519995bd6eba64889bddd126e161038f4a8d78e0 db188f238db915c67b084bc85aa0784c6a20b97b5a5f1966b3530c4c945b5527 -test/extractor-tests/generated/Enum/Enum_getName.ql 32a8638534f37bfd416a6906114a3bcaf985af118a165b78f2c8fffd9f1841b8 c9ca8030622932dd6ceab7d41e05f86b923f77067b457fb7ec196fe4f4155397 -test/extractor-tests/generated/Enum/Enum_getVariantList.ql eb30e972b93770be1b64eb387814b99b3901e8884dd74701c5478574242f5269 43e2f53c339f27e71954a96e218f6fc8a631b827457f718693eb2c79737b6cb0 -test/extractor-tests/generated/Enum/Enum_getVisibility.ql 7fdae1b147d3d2ed41e055415c557e1e3d5d4c5ec0da01089c0a8a978782f9cb d377397b4d9a3f34aed2a1790d1e826c9f77b60d65d3535b7738f21c41e1a095 -test/extractor-tests/generated/Enum/Enum_getWhereClause.ql 00be944242a2056cd760a59a04d7a4f95910c122fe8ea6eca3efe44be1386b0c 70107b11fb72ed722afa9464acc4a90916822410d6b8bf3b670f6388a193d27d -test/extractor-tests/generated/ExprStmt/ExprStmt.ql 811d3c75a93d081002ecf03f4e299c248f708e3c2708fca9e17b36708da620e5 a4477e67931ba90fd948a7ef778b18b50c8492bae32689356899e7104a6d6794 -test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql e269bb222317afe1470eee1be822d305fc37c65bca2999da8d24a86fa9337036 088369d6c5b072192290c34c1828b1068aeedaabdae131594ca529bbb1630548 -test/extractor-tests/generated/ExternBlock/ExternBlock.ql 237040dfe227530c23b77f4039d2a9ed5f247e1e8353dc99099b18d651428db2 49c8672faa8cc503cc12db6f694895ee90e9ab024a8597673fd4a620a39f28cf -test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql 9b7c7263fcbc84e07361f5b419026a525f781836ede051412b22fb4ddb5d0c6a c3755faa7ffb69ad7d3b4c5d6c7b4d378beca2fa349ea072e3bef4401e18ec99 -test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql 78ed6a2d31ccab67b02da4792e9d2c7c7084a9f20eb065d83f64cd1c0a603d1b e548d4fa8a3dc1ca4b7d7b893897537237a01242c187ac738493b9f5c4700521 -test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql 39b006e3acb71272cd0f211d37048949c41cc2cdf5bad1702ca95d7ff889f23f 2fceb9fa8375391cfe3d062f2d96160983d4cf94281e0098ab94c7f182cb008d -test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql 5a2e0b546e17a998156f48f62e711c8a7b920d352516de3518dfcd0dfedde82d 1d11b8a790c943ef215784907ff2e367b13737a5d1c24ad0d869794114deaa32 -test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql 40d6ee4bcb77c2669e07cf8070cc1aadfca22a638412c8fcf35ff892f5393b0c e9782a3b580e076800a1ad013c8f43cdda5c08fee30947599c0c38c2638820d6 -test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql 2c2b29bdfdc3b27173c068cbaab9946b42053aa14cf371236b4b60ff2e723370 dfc20fc8ef81cdce6f0badd664ef3914d6d49082eb942b1da3f45239b4351e2f -test/extractor-tests/generated/ExternCrate/ExternCrate.ql 25721ab97d58155c7eb434dc09f458a7cb7346a81d62fae762c84ae0795da06d d8315c4cf2950d87ecf12861cf9ca1e1a5f9312939dce9d01c265b00ba8103fd -test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql cbe8efdfdbe5d46b4cd28d0e9d3bffcf08f0f9a093acf12314c15b692a9e502e 67fe03af83e4460725f371920277186c13cf1ed35629bce4ed9e23dd3d986b95 -test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql 254a0be2f36e593f1473dfc4d4466a959683a4c09d8b8273f33b39f04bb41a7b a087003503a0b611de2cd02da4414bb0bbbc73ef60021376a4748e0e34a44119 -test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql c0bf9ba36beb93dc27cd1c688f18b606f961b687fd7a7afd4b3fc7328373dcfb 312da595252812bd311aecb356dd80f2f7dc5ecf77bc956e6478bbe96ec72fd9 -test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql 88e16e2bbef466cec43ace25716e354408b5289f9054eaafe38abafd9df327e3 83a69487e16d59492d44d8c02f0baf7898c88ed5fcf67c73ed89d80f00c69fe8 -test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql 6ce362fb4df37210ce491e2ef4e04c0899a67c7e15b746c37ef87a42b2b5d5f9 5209c8a64d5707e50771521850ff6deae20892d85a82803aad1328c2d6372d09 -test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql 52007ef7745e7ceb394de73212c5566300eb7962d1de669136633aea0263afb2 da98779b9e82a1b985c1b1310f0d43c784e5e66716a791ac0f2a78a10702f34b -test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql d2c13d0c19a5ef81ca776f03a7259e743adbfa66ef440f7d402cd97391ecdfc4 c678f6ac0a075c1e0adc3768a344dbeebcf0d13e30878546094777e3fcdf92bd -test/extractor-tests/generated/ExternItemList/ExternItemList.ql 7596986006fe1084815ad47b7e1cb77c4062a8c0432c2e6234c974b8632ead40 23c30ea01dba595e6e1bfa384f3570d32df4310ec2e8dbeb9a20afab9edbbfc0 -test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql f9560f441efc30b65ad88e3d3d323f40cbe3862c04a9c044fb2ca16edac4f3ca 18138daa285c73d40e5caa03791a6133b44429bff4e14cb1f223d487cf1648b4 -test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql 2f20a6a4f41babb7340dd366a8145bb7cc9ceb75812af8a6316d076a4eac3428 4f613a73604dfe3f0d32343156e8ae30f4295186ac4ef2f733c772e96821ffc4 -test/extractor-tests/generated/FieldExpr/FieldExpr.ql bac5eb23ef2e6a69b3b898a486c2c498bd8a92233116224faaf9039225cf33bb 23a4a86b6235571b3af8a27ad88b4e163d9dc568a23b948d690662089c55e26b -test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql 609c4f1e275d963cf93a364b5ec750de8cb4790abdaa710cb533ff13ab750a4e 8c2aa84b1ea6ef40a7ee39a2168baf1b88323bfbc6b9f184e7b39631765a48dd -test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql 747b7de5f2bc23f526e96611401c897d063625912dc90544a4c57e2732c0766a 1528b998f6480bb1fd089c0115137c3a39fcfabc73d30917784a5d7ed5ef2990 -test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql 61fcbae168878f655bb35e8f1af8536c82acf02068bf782e5abdb7b780136ef9 5716c109cfbc996e884a7fbba8800cb770930060cc5c4d70c0bd434e37f2bbcb -test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql 277dc617dd193f414c777e85db358f6dc5ebd7c029ac321d92fc6f1036da6abf 2c1a245975852e010552b0e0157b0daac7137cb25aa059fa5cc3adb43544a52a -test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql c4a7519f9ab86de609a0155d41a0fd6cdfab6bbd7ffc41f3d5ef49565bdb5825 a0404f9a702f007d78f24291e80e939ce3ed2b603e436998dd1337f978499137 -test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql e097544fa9a1c173a996f323a90aa2b82aa6f12f30cd602fbcf0d4bfaf136311 6b5f8a4e4bee41343d075561005442c89b2b16ba547226f54c060c206b0b9e26 -test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql acd208155569ff3e9f4560f274560f1fb08585f18bfde74f3a011b469a492096 fc624e3dbe69fbda31ffcf86398213423cfabc4da33ae5099caed1f3751dad25 -test/extractor-tests/generated/ForExpr/ForExpr.ql 1f8b7a9bbe7a8c077864be64dc51d91ec267c4f34f1cad80fc79902cc0af04ff ae999fb206b04ed81fa08bdd7617cbfe932c5e4109285e10108613cdebba8f7a -test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql d3399b7453e10ff48efc79ec38dd9b6e06bb472b9c39f559242d003e7f63b1d9 ba37e6bf129e1c2f9094e093bbfbf41864f2cb7725a64334f9443270dafdbfdc -test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql 90a6540f8a91cfe3ed1bdde1e680786ce5a00edbb797a8fe70bcc0507c438fcc 65c67ad5890aa502628ee73efd26bcbd4597a8bdfc9839233ede9e26393638f8 -test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql ce90da75e040f448d524187357f3ceededba72407a84c1dc8e1498ed9788044d 0e23d43e0b3412fe90c6a5a4331f8da85eebe19e05b8c7d9710056857280797b -test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql 21657e470752bd83e05e176c2ca9371ba0f7ca3d1f97f764a42dff3caeb46ff2 0cafad7adf79ce90f475465b4a144e6529c6345504282b1ba3c6a12ff2e99892 -test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql 1e0205a9b3a58fd2ddba49ef1b13a82c812519604d4c5bc02f23cbb6ce960016 d00efc63d714b1c76e4b0a67195d4e605f43a1e49d469f4f18bfa18d12280b63 -test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql 38fa18958dc8c1564abf0c38ebc7e76bc64904f9774a99e46504f903e9c19379 8384e007868981dcd8120f4ef52475ca99641a530a487cd9dc7eba98b9391060 -test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql 33535c02c7000e89e4d4e4560499b9512455fae407e72e05615b38f9e950c6bf 35a6aa7de0f627fb96ca7f4f2134b060a820327a3de4970fa2790c8fbea28a2c -test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql f24d02c57af9f4fb4f5c3058e236a8d9b4c4f6f2aff84e65497f693309bdf93e 1c93d6214ee0a89e2bd5d0e02800e29e8a14ebd7efdb6a62380edb97dc902def -test/extractor-tests/generated/FormatArgsExpr/Format.ql 6fa117eebe7ec99b71ffd10cf2cb2a21e67ab157f7c08feedabcc9bcc5390dce 9e7681c3bff55ed78d43ba6567f85bb98da6b166358951b1e972de1114750009 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql a521903c73f79e2616f7b8ef76790e11cbf432f8437825d52d117da232022b9e 4cb195d09ecb51e5bbd5c1c069ec1720f74fc074efc88b0f5c07cfc140167775 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql 7e1a7f902fb661660760d2a2f3f4cb6818a0c9f5b5061ede6ae80223774e4e09 8a50f64cba6f56320631206c801160201e3c98e74367bb035d689baaa9b4e411 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql 0e2f24388d516e14d195957163a2d5d97029c9e11a83ca71cf69e00ecc0bb2a8 dab2969f5ae6a15ec331c0152e7c116d1ee2c3d073b2d4da59ffbcb83404c65f -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 7b6f09b23d0dffa19b8dddf7f5cfe53068f8a8e5279e235c6d54e60616bd0822 47db74f035770ce708a00355acbfd4ae99152b7eb29cf28001985806a4efe5aa -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql 8f692486be1546b914b17abdff4a989dfbaa889bfa1fc44597f4357806c1a1dd da9fd237e31e9c8dd0ef0c3c968157815b87d3e8dcdfd74674c988ce2ab6d270 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql 1f9bf1344f942e65c3a3591b6ae04d3f5a2a1a65459bce0d976698de7d8a5958 02acb861d8ab4d32cf144c589881a888c3da5e2ade27e8c85fec3ae45219bb3b -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql 02d3fad540700966488b24c62dcf200548154a2f10f578ee2995d8c4ebe32287 cccfe779b9804c2bb968a2b1f54da8a72393805c2c8b31d7160e8538f2f335f2 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql c912ac37275cbe7b3b29607bed1a3190c80779436422c14a475113e1bfd91a54 ef90f67a9b952a38ce557b1afbf0b5ce8551e83ddfaad8309a0c9523e40b5ea7 -test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 7a7ee3a3322b4af8cb3b525cfed8cc9719d136ea80aa6b3fb30c7e16394dd93f 5aa8a77d7741b02f8ceb9e5991efa4c2c43c6f1624989218990e985108dae535 -test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql 7bd4ec3dde2ef0463585794101e6cc426c368b0e4ab95fbb1f24f8f0a76cf471 e7b01e8b21df5b22c51643e2c909c6fc4ca96fda41b3290c907ba228abe8669b -test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 2793ba1ff52182dab992d82d3767a000928f6b2fbfdb621349cafc183f0d2480 c3777d03214f7feb9020de3ce45af6556129e39e9b30d083de605b70ab9a0a12 -test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql 634efdffaae4199aa9d95652cf081a8dc26e88224e24678845f8a67dc24ce090 d0302fee5c50403214771d5c6b896ba7c6e52be10c9bea59720ef2bb954e6f40 -test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql 0d2140f84d0220b0c72c48c6bd272f4cfe1863d1797eddd16a6e238552a61e4d f4fe9b29697041e30764fa3dea44f125546bfb648f32c3474a1e922a4255c534 -test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql 01ef27dd0bfab273e1ddc57ada0e079ece8a2bfd195ce413261006964b444093 acd0161f86010759417015c5b58044467a7f760f288ec4e8525458c54ae9a715 -test/extractor-tests/generated/Function/Function.ql 66e6a81a80cdf30652f00fae1b060e93b9d7c61b08cb3d3c1cac16cad445e769 97ace9f51b9ae933c79484b06b92355164ff3582cadfc6e3bac5c00072cdeff3 -test/extractor-tests/generated/Function/Function_getAbi.ql e5c9c97de036ddd51cae5d99d41847c35c6b2eabbbd145f4467cb501edc606d8 0b81511528bd0ef9e63b19edfc3cb638d8af43eb87d018fad69d6ef8f8221454 -test/extractor-tests/generated/Function/Function_getAttr.ql 44067ee11bdec8e91774ff10de0704a8c5c1b60816d587378e86bf3d82e1f660 b4bebf9441bda1f2d1e34e9261e07a7468cbabf53cf8047384f3c8b11869f04e -test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql 17a346a9e5d28af99522520d1af3852db4cae01fb3d290a65c5f84d8d039c345 36fb06b55370828d9bc379cf5fad7f383cdb6f6db6f7377660276943ab0e1ec8 -test/extractor-tests/generated/Function/Function_getBody.ql cf2716a751e309deba703ee4da70e607aae767c1961d3c0ac5b6728f7791f608 3beaf4032924720cb881ef6618a3dd22316f88635c86cbc1be60e3bdad173e21 -test/extractor-tests/generated/Function/Function_getCrateOrigin.ql acec761c56b386600443411cabb438d7a88f3a5e221942b31a2bf949e77c14b4 ff2387acb13eebfad614b808278f057a702ef4a844386680b8767f9bb4438461 -test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql 0bcdca25bb92424007cea950409d73ba681e3ffbea53e0508f1d630fccfa8bed ff28c3349f5fc007d5f144e549579bd04870973c0fabef4198edce0fba0ef421 -test/extractor-tests/generated/Function/Function_getGenericParamList.ql 0b255791c153b7cb03a64f1b9ab5beccc832984251f37516e1d06ce311e71c2b d200f90d4dd6f8dfd22ce49203423715d5bef27436c56ee553097c668e71c5a1 -test/extractor-tests/generated/Function/Function_getName.ql 3d9e0518075d161213485389efe0adf8a9e6352dd1c6233ef0403a9abbcc7ed1 841e644ecefff7e9a82f458bcf14d9976d6a6dbe9191755ead88374d7c086375 -test/extractor-tests/generated/Function/Function_getParam.ql ef0b46453512fef08fbcc2a15bc14ae319bbc4810a4e4ce03a5ca3b1e8859ca7 ce36d3974059c1cd63eb1d6b76111985087f40dd4fe0c716a00aa9a178c712c4 -test/extractor-tests/generated/Function/Function_getParamList.ql f888802ab00defb58de59cc39d1e0518e3884db7eaf845f39dfa55befdda58b2 ba0d1a07676f1c987b820a3d126a563ecf9a3d53ac1115b87a5af487a8a03c3e -test/extractor-tests/generated/Function/Function_getRetType.ql b3a1ab90c8ebf0543e5db6a415896e44a02f984321f49bc409aec2657298942b cdfa37772e5026febb19c9bcd0d325688b0fbf2f6e7bba424b73eca38b9b3e38 -test/extractor-tests/generated/Function/Function_getVisibility.ql 490b0a369c809a757d4835b97becf617b0399f16a63a2b06258c9a227d5cc415 25ceff15d3cd03821e1cb2c04cb8894bcd101eeca62b66b54d1751b628107818 -test/extractor-tests/generated/Function/Function_getWhereClause.ql 37a44ce54bfa7e54dda5db2e5662d0fd70ad6e2caa07ffdedd923a6492b4c6a3 2ced4e49d19cf717b9bf26859fa20f94713b6438e817c63c29ccaf34bb5f373c -test/extractor-tests/generated/GenericArgList/GenericArgList.ql 2d3e37da2c02a88ec8a1f99baebf352196f84c76c093c6f851d2c2d2ee941e9a 1cd884cfbaf59a2da080f50d966dc511243055fcfdd08a61bdfb10cc5701e1aa -test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql 7f92dc62d814c39bc50dfd46c359540261fe433fcad1752ea2fe139a05071183 9863976c97c1b7c07d5d18d8ffee798b1c1b0223784a61066ee2c9ffc46c4979 -test/extractor-tests/generated/GenericParamList/GenericParamList.ql 5d04af9be32c5f8bdf9ec679b0acbabd58ff01a20f5543a0c7d4fe5c5773ebba 7e86c4d3ed64b9ef2f928abd22b593d72131862321096722df5150b5202a4a28 -test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql 7866ed49ebfca1cc1fffeec797329a592f52b4431a5d259aeb7120a7f4961c44 16d89dd05d9db1b1997f801d9e5ba2dd9389d13a3031c730414f3daf5fb7b12f -test/extractor-tests/generated/IdentPat/IdentPat.ql 1e61edbdff611193bbb497eeba8c35043e1d1c6d3359903be58382b1c95e39e4 6f3a288cc12ee24a9ff21ca2fe544838d66f6481e60539cf7d4a473e628e3c3f -test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql 02607c8c616dc94152777390f912fc1e6bb420cc3ea687397e31392848942aa7 aeb10434577815d9a9f0f45a1a448656323f05d5321ff07d435ca4a449527d53 -test/extractor-tests/generated/IdentPat/IdentPat_getName.ql b96a3dbca1bade052cad294d95f95504665ad0b14c7f5f9f8083486d0ee64026 28c851703250c25b518024add1052d3204271db3f89eddf862d9a1e122ee6eb0 -test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql fea604fee0db39f83a3dadb4583cb53123c63351282bc3387b84f90477be19cb ef2e620ade30e0225f6bf1c84982d1b8f949ee0c2ced5edbd00e5547e0a81a7c -test/extractor-tests/generated/IfExpr/IfExpr.ql 1401ba0ed88e27d24e5dc3911bfcc2aee3e0f3da30981866bfec2c71c238e6b9 2bd7abeb5ab28418eb4155206696356cc484ed83705a3a215e0d779b632a521c -test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql f5872cdbb21683bed689e753ebe1c49cded210188883a5f846ab79c0b2147e1b 6cb3a47778c3116ee95f7aeac0e2dd640bbf0c07f8b65236e9040e139f02e5fb -test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql 5bab301a1d53fe6ee599edfb17f9c7edb2410ec6ea7108b3f4a5f0a8d14316e3 355183b52cca9dc81591a09891dab799150370fff2034ddcbf7b1e4a7cb43482 -test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql 8674cedf42fb7be513fdf6b9c3988308453ae3baf8051649832e7767b366c12f e064e5f0b8e394b080a05a7bccd57277a229c1f985aa4df37daea26aeade4603 -test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql 0989ddab2c231c0ee122ae805ffa0d3f0697fb7b6d9e53ee6d32b9140d4b0421 81028f9cd6b417c63091d46a8b85c3b32b1c77eea885f3f93ae12c99685bfe0a -test/extractor-tests/generated/Impl/Impl.ql 3a82dc8738ad09d624be31cad86a5a387981ec927d21074ec6c9820c124dfd57 8fabe8e48396fb3ad5102539241e6b1d3d2455e4e5831a1fa2da39e4faf68a0e -test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql cf875361c53c081ac967482fd3af8daf735b0bc22f21dcf0936fcf70500a001a 0ad723839fa26d30fa1cd2badd01f9453977eba81add7f0f0a0fcb3adb76b87e -test/extractor-tests/generated/Impl/Impl_getAttr.ql 018bdf6d9a9724d4f497d249de7cecd8bda0ac2340bde64b9b3d7c57482e715b cd065899d92aa35aca5d53ef64eadf7bb195d9a4e8ed632378a4e8c550b850cd -test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql 526d4651f2bc703ee107f72b9940a3062777645d2421a3522429bf1d3925f6a2 c08c3d7501552987e50b28ab12a34abd539f6a395b8636167b109d9a470f195e -test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql 494d5524ef7bac1286b8a465e833e98409c13f3f8155edab21d72424944f2ed9 b238ef992fce97699b14a5c45d386a2711287fd88fa44d43d18c0cdfd81ed72c -test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql 3ab82fd7831d22c7ec125908abf9238a9e8562087d783c1c12c108b449c31c83 320afd5dd1cea9017dbc25cc31ebe1588d242e273d27207a5ad2578eee638f7e -test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql 88d5cd8fd03cb4cc2887393ee38b2e2315eeef8c4db40a9bd94cf86b95935bdd 9c72828669ccf8f7ca39851bc36a0c426325a91fc428b49681e4bb680d6547a9 -test/extractor-tests/generated/Impl/Impl_getSelfTy.ql 2962d540a174b38815d150cdd9053796251de4843b7276d051191c6a6c8ecad4 b7156cec08bd6231f7b8f621e823da0642a0eb036b05476222f259101d9d37c0 -test/extractor-tests/generated/Impl/Impl_getTrait.ql 3319d2649b4a7f3c501c8e16a1a3e5d74057c94c02772d33f19b4030daf934d2 3acca9d040c3f1d90ed26b159dac71625bea689221e180c856a75c2bab95d286 -test/extractor-tests/generated/Impl/Impl_getVisibility.ql 2497bb8c867297e4c398473ee7f0ec3693f7e894b84819f6336d69bebcd3af5f d8be2e9535b06471fa873af13b0223cc79d30d63a3f5e27a0f64874d60dbf07d -test/extractor-tests/generated/Impl/Impl_getWhereClause.ql 269d4b0639db28a7535b2d745b11cda0885da7369f9cf4c4973a6ccc20c9960b c4baf89f68a173c1415baf90ddd9195e29784997a5ce45a36171485f6bb44c03 -test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql 309d5bed6a2bee9f728727338401c9c48841bd31d917dabb837bd88b78289ece 223060ef89358483a7aafed567a7b657d37eee023c49032aa55ad08a17c9e31d -test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql 5e3561412a8f990e7f32fb99d40b82690a9281c850226fd301b9f656f7b9ad2d 4e23068d2635056a74f40bdfa809878e31a8172086f115985ca027055e8317b8 -test/extractor-tests/generated/IndexExpr/IndexExpr.ql 0a93213b755faaab84b7eccb5b8f3d8f8ba87910ad661f194e06917722dbf6a8 46497b3e92523c6c015373fe122678846618b45412b903323ff3644e37f2c52d -test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql 360dbf8e7d69c691a1f4c9bb0aaa7860a6b0f09b21a1d1a6db908ec7a7d7561a e50b942f7592cb944f607bd64f8e4d4abac30bdc53f73b4dc851e689dce61be9 -test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql 841cacda1a1cd976229f2bd18dcee4315506105c2cb3789c30a7539fd6d49d0c 37a92e9151f10cf971b24f5af6e2ca6dccf87b6e0e0b2237a0564f97719a0d66 -test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql 1aa934524dd44009297ef89a657d1ba99304f6590514a0b0b51b2769780f8c20 a42f25640f0331318bbc8f44af133095580b8947309628511bf0b3675149506a -test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql a9c92ce8e20e427de3651fe59e6cbbe1b7efa8db9ef9d836da254cf07509e4ef 5ee2cb6ffcdc1fd2a7c190b1a98bb7369c114d837f7e232d425563255b71ce3c -test/extractor-tests/generated/ItemList/ItemList.ql 6c1c8ef6da0fce64b1a5edbec98fe18910b0ecc390d1219cc08124ab51b13bf6 e94e5c8d1639c1ed2ba543a521a57a026e15ea6b339b6c6d4409dd30ae67a51f -test/extractor-tests/generated/ItemList/ItemList_getAttr.ql 24d7a764d4f8997bb77e93c21e6e5ba7256ed11657bd6479bf42458b8e89b52f a6b4df0cc6bf79ab3f98c93eabbbd3aaf11ec2506a0e894fa1f51be90191d71c -test/extractor-tests/generated/ItemList/ItemList_getItem.ql 6e129499f77f7dba287b2b31b58fe6d834559e27214797807bb29b2a401f1f7d e406c07421dd6382ea73308d9124c30e971591c9e4c797b3115955f22c93589f -test/extractor-tests/generated/Label/Label.ql 6a92a27d615dd9c380cb9d889eecf827fc3a26f4bef65c2374e5ffbd6a7ce6b3 a344e26bc6ef835f2fa818413ba518c23f956750f9a2232acb1ad77aab9df446 -test/extractor-tests/generated/Label/Label_getLifetime.ql 3d6ddc3b44182e6432e938d5c1c95e0281575e320d517e431f6bad7748efb93e 56d07e485cb5e4263443eb5a0d62d7d4456bb0c2748331b371e519bfe14d3b81 -test/extractor-tests/generated/LetElse/LetElse.ql bdf2b17d5efe6b9cb5bb4fcfe854a5fcd72443d39ae1e7981d2a0459c481e394 a14a611d0783ae38d631600c2bde7409f4e739ba2f284314b90ec9a21c23ab3a -test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql 32c21ad843884944738a735f01e272032a347d1860fa6d27d17652c549f941b0 2bfd8a5e3d42eb1c73eb679ada847dd29f2f0657a0ad8ef15da126e54fff5ef5 -test/extractor-tests/generated/LetExpr/LetExpr.ql c76a0c4aaa73f4064207dacc8d2c649d3a5f8046c0f6e1aae985d2402a342e73 c5abe3845d4975d05c98ee6496732da384cdaca60ed49235776338e6dbe80b3d -test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql 911b143afebaa0a487b13d533f089c5b0eaf336a44a4cab42147c284338484ba 625c91fb6d8c2e3a9f13e5679cc0cd29329c6c2b213d2e1191e23db2b65841dd -test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql bc0363f77bc2ba583619ab7d309293ace0ed6a851bfb9b886f75729f96eb40a8 bc0cd9233b7904d8cc7f9021377120f5f4bcc5c7aa28b1b55f17bc738c434d78 -test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql ee33d3bbaf0ee7cdf9bd7b800e9684b5ac7ce8cf1939378cd460cb0c5ea11742 5d69e727b3e9d1ab4ce9eef702a7b1911515469625056bce87fac1d27ba863e6 -test/extractor-tests/generated/LetStmt/LetStmt.ql 9f8cf125eae91b190e6f534541b5fb0a0ee2391803266e9d02ef5d605bcfed81 e5cb251e9fd1a0d22553fb9180f95c697d780f51f93121d2fd654210477641df -test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql 68f69c4c054514140c0f0833a170e9f3facf950bd7af663ac9019f6c88ba0ea7 ca54d25cc052289458c7e34e40f0304bca2c412cecfb407f31279262bd74c15a -test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql 6a5f0eed3ce3e8cbc57be6ec2b4eed732f00e084108d21a61d9ab28b65e494ca a48b426b97a6c347ad04fe2e592cd25b5c66b2a6a299cbf8c0da03e14304fd70 -test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql 21f8f1cbf725399da80c24c4d3ca27072758b76cbdfd726a7f1e851ea12e58fc c01a4eda22088184357288910fa41692f52486d60fbf7c0bc3b5b01f8f67fe07 -test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql 978e4f7861c7b03e6f2a3a2f7ae82e9b72bb5ef000f111127cb583a04ea6f971 3c92dbb765dfb01c290413e538290b0b2bee5a83bcfee383d081f56202a784fa -test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql 8bf8a99450b27bc97db90a323b19ab13cb266c0b6c4e7d0ccda80952f8f7987c 70227445fb87ea1afae10ced988bdfeff4a1edd3d9d787367a17ee121d31db0a -test/extractor-tests/generated/Lifetime/Lifetime.ql 07b093285b08fddc149cbce3047700072874efb29d55e591c86d53e6432a10a7 29437b1b20f6321870837c12348d165729312e164ac4fac1029c1000e48d311a -test/extractor-tests/generated/Lifetime/Lifetime_getText.ql 7b06b940145c3d1a1bb3aff67e8e106f902a737edf61ed91577cf3ca94606936 c70d6186c500fdf6bc9d9d028cf3ec093914e20ba9547a391203ac8c5df1d727 -test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql 4a0c2166d9ba79c99d6be430a28f79d3e7e971dcd96777e02c3fec56cec3ffeb 158bbf0f06ad36c81704d11f6318f80a0f7dd9c1a71409980ca60cac49dbe9c4 -test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql 050015eb1130bab1ff6fe7df6915a634e66e27f2c90609026aadb4287fcc0c3f e4f63abbbb7668aa36de0caa2bb38fdbb4ff198aafa312ab12c9667eea67f04e -test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql 4848a1c83b138e3842a7dbd0edb416b1ea2985b77b92d45b6d02b9f8bb997b1d 75fd2beafd2076121edb435996743e4d32ee58f6999205c9dadcb84a7fa80860 -test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql d1ff2d3cd34bfc0f363bcd7638d4b9fdcc604c6a9c74da22359df1877a0cb26d 57b7654249890266ecfc9a325c27da84b8b3cf21666a74f38e6439ed7a0596f9 -test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql 893879293bed44e7a259c7e501f8301b92be0e00665c0049cddfc7d027790284 ee74064414e6ec1299180aa00851b5f323053bf4bbc2c5db6c0bedbcc1388411 -test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql b1fb7f8e9fff999f7b0508951c089b2d6588a0960f172b67e7e111e64d608d49 fdfdd3a159033fca0549d6db97d681114e83f630982e72abbbf7cf1b2d77b4e9 -test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql a5644e5cf8b03121a1bdee793083cfe27286a7ac67d6ab5f1733b1fa81c5b38c 711d44afb1d0fba47f355563a040f4b21ca63a1c59a73d9b6510715133fee5b3 -test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql 6e76da2bb7858f493641f91216ea28f22dc5825931841327e34330f11d20c8b3 3f10a510944ea049b636ffc2c6223c0a15fd9b528ada7ffce54fb70637640768 -test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql 7049fec0bbbf0e048af1ff318f42f43d0f8a7354a5638dc21174c4ea725b54ce 2edc94cc0a7f58ec9808b63ddb4d20a3907c88e50bd9ffb14f0281b433f5621b -test/extractor-tests/generated/LiteralPat/LiteralPat.ql 3d3db6cad0eb13f84b69efa24a9f9a32d35c62582274d2751cc3ac54dca3b538 7feb64af87546ea64c139c61ac20176a99ad40b9949b361742a424b164fe6d54 -test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql 2cb03a22220e99237d4f3cd94d5090757cd6e57df708d32e80bca3964507651f 4dd9a6c1e23ad9851d9aa8c42c79535f7a2c7224bbaaff286eac7fd04b39c6f0 -test/extractor-tests/generated/LoopExpr/LoopExpr.ql 37b320acefa3734331f87414de270c98ab3309fe069d428550738197e3498a8c e744c25640b5c46aab53ce5114b789e13319572b0c99d0f2bc3c177849e61541 -test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql d557c1a34ae8762b32702d6b50e79c25bc506275c33a896b6b94bbbe73d04c49 34846c9eefa0219f4a16e28b518b2afa23f372d0aa03b08d042c5a35375e0cd6 -test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql 0b77b9d9fb5903d37bce5a2c0d6b276e6269da56fcb37b83cd931872fb88490f c7f09c526e59dcadec13ec9719980d68b8619d630caab2c26b8368b06c1f2cc0 -test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql 0267f54077640f3dfeb38524577e4a1229115eeb1c839398d0c5f460c1d65129 96ec876635b8c561f7add19e57574444f630eae3df9ab9bc33ac180e61f3a7b8 -test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql 03144a5448de91801037f3c1e6d29a230e18f9c077c718e5c3801a31cf593977 9a035e3f119b0e0c88fc4c775a032220a01680fbea2cc7f8e98180205b9bb8da -test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql 415a762768df2c850d21742daab5e53cd248dc3dc9652414b99737f1d5c5824b bdd2ba6c004ada34f26dac3bbc7abcd5fe250c77a97faa7fd71fb54a0dd4743a -test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql 8f6604c09e85da1a19b0f87340cebeb1cdf4e94b208305c7393082d88cf0b032 5081d9db5b38454fad1daad2f8972661bd2fb4cce2c815a560a15f8a7b9cfcee -test/extractor-tests/generated/MacroCall/MacroCall.ql 992e338a9c1353030f4bb31cae6ae4a1b957052e28c8753bae5b6d33dbe03fe9 863fbfd712a4f9ed613abb64ecb814b0a72b9ab65c50aa0dc5279d319249ae6a -test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql c22a2a29d705e85b03a6586d1eda1a2f4f99f95f7dfeb4e6908ec3188b5ad0ad 9b8d9dcc2116a123c15c520a880efab73ade20e08197c64bc3ed0c50902c4672 -test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql 60cf2c12ec7fc3b25ed2a75bb7f3da5689469a65a418ba68db0ab26d0c227967 7f71c88c67834f82ef4bda93a678a084d41e9acb86808c3257b37dfc6c2908d2 -test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql 3030e87de6f773d510882ee4469146f6008898e23a4a4ccabcbaa7da1a4e765e a10fe67315eda1c59d726d538ead34f35ccffc3e121eeda74c286d49a4ce4f54 -test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql 553b810f611014ae04d76663d1393c93687df8b96bda325bd71e264e950a8be9 a0e80c3dac6a0e48c635e9f25926b6a97adabd4b3c0e3cfb6766ae160bcb4ee7 -test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql 1416adaedf6a11680c7261c912aa523db72d015fbfdad3a288999216050380a6 10b87d50f21ac5e1b7706fe3979cab72ecb95f51699540f2659ee161c9186138 -test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql 160edc6a001a2d946da6049ffb21a84b9a3756e85f9a2fb0a4d85058124b399a 1e25dd600f19ef89a99f328f86603bce12190220168387c5a88bfb9926da56d9 -test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql 1cbf6b1ac7fa0910ff299b939743153fc00ad7e28a9a70c69a8297c6841e8238 570380c0dc4b20fe25c0499378569720a6da14bdb058e73d757e174bdd62d0c0 -test/extractor-tests/generated/MacroDef/MacroDef.ql 13ef4bdde6910b09cefe47f8753f092ed61db4d9f3cece0f67071b12af81991c a68091e30a38a9b42373497b79c9b4bde23ef0ab8e3a334ff73bfdde0c9895b2 -test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql 61f11d6ba6ea3bd42708c4dc172be4016277c015d3560025d776e8fef447270f 331541eff1d8a835a9ecc6306f3adf234cbff96ea74b0638e482e03f3e336fd1 -test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql 0a30875f7b02351a4facf454273fb124aa40c6ef8a47dfe5210072a226b03656 8e97307aef71bf93b28f787050bfaa50fe95edf6c3f5418acd07c1de64e62cc1 -test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql bd076cf1bab968a1502467652d73259d1ce0fe7f8af73bdf914e2ed1d903adf7 4673df049b36082be9a5b325f6afa7118b930bccdb5689e57ff7192b21d07345 -test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql 7b350f48e6f208d9fa4725919efd439baf5e9ec4563ba9be261b7a17dacc451b 33f99a707bb89705c92195a5f86055d1f6019bcd33aafcc1942358a6ed413661 -test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql 6c46366798df82ed96b8fb1efeb46bd84c2660f226ff2359af0041d5cdf004ba 8ab22599ef784dcad778d86828318699c2230c8927ae98ab0c60ac4639d6d1b5 -test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql d09b262b8e5558078506ec370255a63c861ca0c41ab9af3eb4f987325dadd90c cd466062c59b6a8ea2a05ddac1bf5b6d04165755f4773867774215ec5e79afa3 -test/extractor-tests/generated/MacroDef/MacroDef_getName.ql 6bc8a17804f23782e98f7baf70a0a87256a639c11f92e3c80940021319868847 726f9d8249b2ca6789d37bb4248bf5dd044acc9add5c25ed62607502c8af65aa -test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql d858ccaab381432c529bf4a621afc82ea5e4b810b463f2b1f551de79908e14e7 83a85c4f90417ab44570a862642d8f8fc9208e62ba20ca69b32d39a3190381aa -test/extractor-tests/generated/MacroExpr/MacroExpr.ql 69445cf24f5bec5c3f11f0ebf13604891bb2c0dffe715612628e5572587c7a6c 5434db79d94e437c86126d9cf20bf1e86e5537f462a57b9bf6b22a2caa95cc40 -test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql 8859743e23b987225a6a1933054a1ed8f5f1442b61a769599e2efd143f4feb9e d2d336135ff4d2ea65e79430dee8d0f69f9d7818a674f5446903d986f3948b92 -test/extractor-tests/generated/MacroItems/MacroItems.ql 876b5d2a4ce7dcb599e022083ff3f2d57300bcb0ea05f61069d59ad58353ca69 61ea54d4633ef871d3e634069e39fbb2545f7dc2796fa66f8edbacd4e0aa4ef5 -test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql 53fc2db35a23b9aca6ee327d2a51202d23ddf482e6bdd92c5399b7f3a73959b1 63051c8b7a7bfbe9cc640f775e753c9a82f1eb8472989f7d3c8af94fdf26c7a0 -test/extractor-tests/generated/MacroPat/MacroPat.ql d9ec72d4d6a7342ee2d9aa7e90227faa31792ca5842fe948d7fdf22597a123b7 74b0f21ef2bb6c13aae74dba1eea97451755110909a083360e2c56cfbc76fd91 -test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql 398996f0d0f2aa6d3b58d80b26c7d1185b5094d455c6c5c7f075f6d414150aa6 b4662e57cac36ed0e692201f53ba46c3d0826bba99c5cc6dfcb302b44dd2154b -test/extractor-tests/generated/MacroRules/MacroRules.ql 3c88db0c2ba65a1871340a5e940b66d471477852a1e3edba59a86234b7a9c498 98778dd95d029e4801c42081238db84a39e3ed60b30932436ea0fb51eedfcda1 -test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql 7de501c724e3465520cdc870c357911e7e7fce147f6fb5ed30ad37f21cf7d932 0d7754b89bcad6c012a0b43ee4e48e64dd20b608b3a7aeb4042f95eec50bb6e6 -test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql 461651a72e5f860864ed4342973a666efa5b5749b7fcb00297808352a93f86e0 8b18a507753014f9faf716061d2366f7768dee0e8ea6c04e5276729306f26ce0 -test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql fccedeee10ef85be3c26f6360b867e81d4ebce3e7f9cf90ccb641c5a14e73e7d 28c38a03a7597a9f56032077102e7a19378b0f3f3a6804e6c234526d0a441997 -test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql a0098b1d945df46e546e748c2297444aaccd04a4d543ba3d94424e7f33be6d26 3bab748c7f5bbe486f30e1a1c422a421ab622f401f4f865afb003915ae47be83 -test/extractor-tests/generated/MacroRules/MacroRules_getName.ql 591606e3accae8b8fb49e1218c4867a42724ac209cf99786db0e5d7ea0bf55d5 d2936ef5aa4bbf024372516dde3de578990aafb2b8675bbbf0f72e8b54eb82a8 -test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql 7598d33c3d86f9ad8629219b90667b2b65e3a1e18c6b0887291df9455a319cab 69d90446743e78e851145683c17677497fe42ed02f61f2b2974e216dc6e05b01 -test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql 5306cc85f470d21ebcbe6e98436334b0bf5ba819a0ae186569ba7e88c31636c6 fcbf5c54e5a904767a6f4d37d853072aa0040738e622c49c9a02dec8739d6587 -test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql 49c0dbf587f84023025f90d73d54f5320993f4db7dcc90e21eda53fc0b4d1f57 0a0712171db935c549a9cfddb6721c2c188c584a67be85409ffc3facf6c9a935 -test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql cae14884e549c74be4b600a264eb236993d7b8ddd86589a9116ee2ba18f181e1 1d4ae2d8ed9ce0d7635a2ae447b41a328e59e97c6df7827ee7d5cf62343e86e1 -test/extractor-tests/generated/MatchArm/MatchArm.ql 512aa404c94ba40b859564f07e9dffe6a5e687fafb039556e9145f4f3742981c 529f96e38cede8a26054f8981d4ba1d189c17d14d0f92d622eb20acd8f3d7e5d -test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql 4faf7a542702d13283262be7cb2e1cc3c862bc2e1953a460fd2bb5e75a7e9b1e 1d43f4d2a580d0ac309dd18a45a9693ab92107cafd817ccdb26fd7998728edf3 -test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql 116f02bef8650d27784a8657208e9215b04af9139d19a54952c6ba2523770f4b e0677aed6d53148e120fd0b03f4bc4fa108c6dd090f605c87b2e3ba413fb0155 -test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql 54e2c2805d54b353c9e36258ed750189846cd422dfb476c6eb52301860d7ff13 8fd408a3e9c6e5c138860144ba0f69dc2099a7a062e3bdf7d324c09df7d132f3 -test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql b346bca229226414b32acc3d8ab0ae26647563fd79e1c434d1ef8d14bda2d65b e72eb69bb243c39fa997d17bb7060e2f82f2bb33d11a58caaae48f8372996704 -test/extractor-tests/generated/MatchArmList/MatchArmList.ql 14b5e110d48e2b77c85b7a188262e6a98300e0d4d507bb7ed9179c5802251dd6 4d091f06b12fef0fffe1c80a10f74438d8068f2fa09c50d5e240b6d140e60d90 -test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql 4781d002538a92b7f40fb0ec3d61aeedb6348341ddc354bbdd3ff61b74d59767 ae0da9497a30ce006e03bdb70e0ee24b685df529ac15a7d99a6869b5f7d7b371 -test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql 4d7e6d152d2dbeb4c9f594becabea27d3b25fecbde40d791a2907c69cc0c9631 4be9be658bb22e1b764c4ebc8d6b99bf50fd939f35ea44fbb869056c14632bd4 -test/extractor-tests/generated/MatchExpr/MatchExpr.ql 2966bf0507c0d45db1b933442ce8f1c4e0a9d4212c53a768791665cd2e0927f0 8af3b87528b6dd4cd3ff4fc6d2d389b1a743f979d9ccacd0aff134b5a4376118 -test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql cb8057372dcf24dfa02896ebf4e60a0b757dc4742b94011edc38f5b898ed4d25 6809695c2d3ac3b92c06049c9b920e8c0e99ee1998a11a7f181f2b0ceb47c197 -test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql d97055bcb0431e8b258b5ecdd98aa07cb24ece06b0cd658b697cd71da4ede8fc 5e9c03b2665ef6b2af98897996abb2e0a9c18d54eb64588340b8efbcee9793bd -test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql 0bfeb8f903fb23356d50b7edd80377f4a67045010ffbed04c835191b5bd62820 7dc8e38730ad72b4cea91c1f023cdbe83057053e8dbd077ff925c59e92744498 -test/extractor-tests/generated/MatchGuard/MatchGuard.ql 23e47ec1b13e2d80e31b57894a46ec789d6ab5ed1eb66bdb6bba9bd5ae71d3ef 7302f4a93108a83228e0ebd5b4a1bc6bccc1f6f0f3272054866fa90378c0dcc4 -test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql 8a79dd46798f111f8d0d5a975380b5cebe5e337267752b77b3718b268ba2773d 6691d8fb483f64fc7e3ad3f46e3129e0a1184d7beb9f83a1000acdbb081c8b5e -test/extractor-tests/generated/Meta/Meta.ql 16f163f00ba2bbaa0a8c6f3f6710c860a8f61d02d43321c78e05a10a3606e39b ba982c6bb93ddb4fc2c44d24635bd487128a5b1d1f885214044c989a21f4d05a -test/extractor-tests/generated/Meta/Meta_getExpr.ql ec9ec61f5be7d65c32775fb5c068daea04f9db7d875293ed99cc1b2481db041f 77a0c52f1cb6ddc8fdb294d637f9eda1b7301ffa3067f0fca6272d894f57d3ee -test/extractor-tests/generated/Meta/Meta_getPath.ql aa9d4145a4e613c51b6e4637d57e3b7d0f66e0bb88f4ce959d598870814c06bb 2087e00686d502c0e2e89c88eae0fb354463576a9ae4101320981d3fd79b9078 -test/extractor-tests/generated/Meta/Meta_getTokenTree.ql 1051c27ffd0d9a20436d684fde529b9ff55abe30d50e1d575b0318951e75bd34 983975672d928fb907676628384c949731da9807bf0c781bb7ec749d25733d2d -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 85d3b8c794167f87840469e03d21aa00daf0998c28028f1c8848c7c4bd895db4 fa368ce4543c2544ecd2e636ade8d92849741226599290f59e0138a4a479357c -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql 10a88c3bf63dfb26f43b9cd1ed7fceef0f436ce2eff4b5a816da369bf5b775d2 ee3b5043719591b4048ec32e21bb5fb3a9f83f0420ef18c338fc0ac28d0e3240 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql 180e0b1715f5cd2be0de01bff3d3a45594b495b8250748d40ff7108d6c85923d bdadcdbecca5891287a47b6dd6b2fda62e07457718aef39212503ab63bc17783 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql 2ce876a04a159efce83b863dffc47fbb714b95daea2b91fa6fbb623d28eed9ec 7bca1cd0e8fbceec0e640afb6800e1780eff5b5b402e71b9b169c0ba26966f96 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql 655db9a0501b1ef20d604cc4cd9d708371781291443e8dec97b70ec2914601d2 2fc7df0eca22dcef2f9f5c86d37ee43452d372a4c0f9f4da0194828c82ba93e0 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql 13c08e67eda07ea9ddc6f22ab4fc7773185c0b700ae11d57b62e0c78a4dea2e3 cb812e282a77fa29c838ba939d342a29c360c263c5afa5aac4ad422a8176869b -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql 77407ac956c897ff7234132de1a825f1af5cfd0b6c1fd3a30f64fe08813d56db d80719e02d19c45bd6534c89ec7255652655f5680199854a0a6552b7c7793249 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql c22504665900715e8a32dd47627111e8cef4ed2646f74a8886dead15fbc85bb5 d92462cf3cb40dcd383bcaffc67d9a43e840494df9d7491339cbd09a0a73427b -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql 9e7bbb7ed60db49b45c3bdf8e01ec58de751889fc394f59ac33f9d6e98200aa1 c055d877e2ff0edc78cce6dd79c78b2881e7940889729cbb5c12e7029ddeb5a3 -test/extractor-tests/generated/Module/Module.ql 9e75a0f22f1f71eb473ebe73e6ffc618cbb59ea9f22b6e8bc85d3fb00b771c52 3eb5201ef046259207cb64fb123a20b01f2e742b7e4dd38400bd24743e2db1ad -test/extractor-tests/generated/Module/Module_getAttr.ql b97ae3f5175a358bf02c47ec154f7c2a0bd7ca54d0561517008d59344736d5cd f199116633c183826afa9ab8e409c3bf118d8e626647dbc617ae0d40d42e5d25 -test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql 9f7c04c405d25448ed6d0e7bf1bb7fea851ea0e400db2246151dd705292ae3a8 f55d86901c7cf053cd68cb7ceb4d6b786834d2d35394079326ea992e7fbc9ce1 -test/extractor-tests/generated/Module/Module_getCrateOrigin.ql ff479546bf8fe8ef3da60c9c95b7e8e523c415be61839b2fff5f44c146c4e7df b14d3c0577bd6d6e3b6e5f4b93448cdccde424e21327a2e0213715b16c064a52 -test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql 55c5b633d05ddbe47d324535a337d5dfed5913ab23cdb826424ddd22009a2a53 ab9e11e334e99be0d4c8d2bd0580657211d05feeeb322fbb5400f07264219497 -test/extractor-tests/generated/Module/Module_getItemList.ql 59b49af9788e9d8b5bceaeffe3c3d203038abd987880a720669117ac3db35388 9550939a0e07b11892b38ca03a0ce305d0e924c28d27f25c9acc47a819088969 -test/extractor-tests/generated/Module/Module_getName.ql 7945dc007146c650cf4f5ac6e312bbd9c8b023246ff77f033a9410da29774ace 9de11a1806487d123376c6a267a332d72cd81e7d6e4baa48669e0bb28b7e352e -test/extractor-tests/generated/Module/Module_getVisibility.ql bdce43e97b99226f55c84547a84d99b44f5d1eac757d49bcc06d732e0fb0b5a8 a482c18851286fb14ec6f709dc7f3280a62de8c3d59c49ba29d07bd24cf416cd -test/extractor-tests/generated/Name/Name.ql 0a78cd5c0c703ff30f8e3253b38f9aac98a564b22c02329d525cf101d8ac3fda 2fd83327063e6ab57dcae2dc5103c2965d7a09f6a10d553ea336cf594d32032c -test/extractor-tests/generated/Name/Name_getText.ql 5d223baad356308abc45cdce9ca9201d674de1cc1e9fff7ef55dd96082d59d99 6488ccc102ed4f0a2e1c5cef3f8b1adbe00d52c961573f1a16eca66af31e2d14 -test/extractor-tests/generated/NameRef/NameRef.ql f73d49d5c176cd7589f6ca148b0d0cc3d1084e27686910058adfd5764ef5767d ebff67ed3b325b01277e25baa1ad588e633ef8ce63209a72305465a0dc8002d1 -test/extractor-tests/generated/NameRef/NameRef_getText.ql 5212dfc1b65c0f724a72f5bffd82268d1f8ae287d3d61797673c29fd70d7ebd6 75c343614925c55a18917c07ef62af08c97c9cc714f627d1a27b9f26158a0bde -test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql 6db9820e62fe7a7395aafb6966043bd24d89833fe59c825ebbd4a2504d58bcc3 85dc1500ba751a4b3fa432fe5f5cb0c104a2179ac2e73620ed9ff08552cfbba1 -test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql ba10ed5147469564e632f9444176fffeb1accdb14ad635a3dee76044e5782eca 3f894c494421d49d3f8f2593bccd261c9defa768bd252705d4a3671ca8e8255f -test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql a12e828c85577184a41b255f54b10d4a654b57703074a7ebcfde2d43a358955f bc2590e76b60a3ddda9cc10903c68d07c6af19a593c8426d108a2a6520304145 -test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql 6d729fb91deacb1f620df5cbc86473183664e81849958624195da883c410a707 f3374c3d7306699d1f9d1c6c5788ee7c5a17103345bf53847be9d94e5fb9f14d -test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql 27f2d94699140805169a0c18068d78e10bddadb8db243bcb8957677c9d477935 4fb96f2f7a6e7217218adeb5069a7d4da548c6ac650683773bbff4fba32a99da -test/extractor-tests/generated/OrPat/OrPat.ql 49d881b384acaf68fa79de46da997cacab3e75467641f61150908f4112c47fa4 5d721da23be44e79d7b8a0dd475119836828d6a1edaff2c55decea8da83e65b8 -test/extractor-tests/generated/OrPat/OrPat_getPat.ql d56b78287cecebacb25249380647500387e0d9e28be20034b8a12406a999a7c4 cba7bb60afaaed4333ea5ff6d3850fb44a8b42edee67d86fd16df85938454269 -test/extractor-tests/generated/Param/Param.ql 0a2375e240422ced3e7e6f16da3f538501bc214d0713cf5415a91b8f9f4554f8 12b286e5622e693dfd0a614b96c5d4f0a7dad3dbd033f78ad7318d1bd85a5eaf -test/extractor-tests/generated/Param/Param_getAttr.ql e1dcf86540fd2971ced34a33b2959f001c3f654914d82e576caa4534b80fbfbf 987a826bf6dcd25c3426edb603a22f6caa030c82c1cb0e9e11062fdbfed23030 -test/extractor-tests/generated/Param/Param_getPat.ql 0c448e8ba8bf3432be08b5eb4a052aa19cccf0eb4596a3239481401dae9d2dc2 c943d4da36e1e734c1a012f092b2f597cb389a7ab33d5371ff8ee9c93e115ffc -test/extractor-tests/generated/Param/Param_getTypeRepr.ql 151a653a66722ec782af13980638b4156968a2bf1ee9221e983695712c39482e 597dd1b45078711d1ff2a5d3b0282d571b4d76d0d2e410c79a48ff9d5c8f80f6 -test/extractor-tests/generated/ParamList/ParamList.ql 4d879e6a6db24fb8d7f935c2dd332075ca4b2de41cc841aafec7e0b6b77f2cf3 b7e2357b77961f0f8315d3c9e8fde8578373ecfb9efba892416b31d7c168bb26 -test/extractor-tests/generated/ParamList/ParamList_getParam.ql dcaabf654941bf9afe50df3a5c61ef0eab50830a436eede98e30778bfd244a09 63cc7f529f96d5016804f50a385d8a736a534475a6340a8c2f51de99b54206a1 -test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql 310582a9921226a44e6fee2b386d48bf84388351204941dd12e3a2da395eefaf 6c2e0a6d5bc6db49430cf25501444da6540b7b2f9ac0052da93c8086e2af0c46 -test/extractor-tests/generated/ParenExpr/ParenExpr.ql a40c60a92be944f15f5cbcca52b0fde318bb1ad6864f9ab9302dbf5ce5f1058d a50e80b6b222fb43f9fec82677d0785c0b2696b9818887e2befafb7a6d399a7a -test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql e8b9016d2374d124472d135c8b9031124227cbb139362f6aa6d4d99cad631e30 4aaf95ee8a9ab1ead19eaa4dabc080f12aca49f50a150a287b93132de5c61df1 -test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql a75dc46dc78d3b4a4f629ba16f7129ecc0ab90f60b651259d00d241b2886bf7c 32164d75418df184618501f41fbc0a81dafe1ad2dcbc9ec87bea909aaf05ae40 -test/extractor-tests/generated/ParenPat/ParenPat.ql 565182ccd81a9b420911b488c083f540d339eec6a9c230424800bb505df13a66 876cdca008ed32f415c9ee99ce7e66b276769d0b51ad7eee716e1317484a34ce -test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql 96f3db0ec4e71fd8706192a16729203448ccc7b0a12ba0abeb0c20757b64fba1 0c66ba801869dc6d48dc0b2bca146757b868e8a88ad9429ba340837750f3a902 -test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql a96bb8b51d8c0c466afc1c076834fa16edf7e67fffe2f641799850dee43099a2 0e6c375e621b7a7756d39e8edd78b671e53d1aac757ac54a26747fe5259c5394 -test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql 64fe4ea708bc489ba64ed845f63cfbcd57c1179c57d95be309db37eac2f5eb71 0f4cbbfdf39d89830b5249cabf26d834fc2310b8a9579c19383c90cb4333afb7 -test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql 6d3496449d40e7ea083530de4e407731641c6a1ba23346c6a11b8b844b067995 9d21019a49d856728c8c8b73bcf982076794d8c8c9e2f30e75a9aa31348f5c60 -test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql 256164a0909def95501022cfbb786026c08c9ef50ff8da9e851a7ca8b1aaeb1f 8bfac08d3261f2c4b84fa3da46722f9c7ca866a6b964b5f1b8f78b81c97ae3f7 -test/extractor-tests/generated/Path/Path.ql 2b02325ab1739bf41bc5f50d56b1e9cc72fca4093b03f2bda193699121e64448 c4d44402696ce10175ad8286dbd78277fbb81e7e1b886c0c27d5b88a7509052e -test/extractor-tests/generated/Path/PathExpr.ql 5039fe730998a561f51813a0716e18c7c1d36b6da89936e4cfbdb4ef0e895560 cd3ddf8ab93cd573381807f59cded7fb3206f1dbdff582490be6f23bed2d6f29 -test/extractor-tests/generated/Path/PathExpr_getAttr.ql 2ccac48cd91d86670c1d2742de20344135d424e6f0e3dafcc059555046f92d92 9b7b5f5f9e3674fad9b3a5bcd3cabc0dff32a95640da0fce6f4d0eb931f1757d -test/extractor-tests/generated/Path/PathExpr_getPath.ql e7894071313a74166bdd31d7cd974037fcd5a7f0e92d5eec42833266196eb858 46a06e8a1207e7a0fa175cd4b61068e5fd6c43b5575b88986409f0ac2be64c51 -test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql a68a1f0d865d10c955f7ab1fd7614b517e660553b65fabb9daa8f302adbc2602 c47480d6440ae63be27d8158a35536a8d9051817dec1521cdcab297ddb52e1ae -test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql dfa55fe480da0df37670660fc1c54b6c38d47365353bc9d4f662183b33d4e80f 1b18329a7b60805fc073df3149c48f39aa66924d7eefedecbca36a2b170a7fbe -test/extractor-tests/generated/Path/PathPat.ql 6b9d973009f1b4963c7c83b0f5051eda7a76c8fb4a789217b4a25cbab0cdb274 57f0621dd3657b6f4630d5406816effcc6bc1b03361aa12e118e807e28e9e71b -test/extractor-tests/generated/Path/PathPat_getPath.ql 6c0c71c80a6e631ea7775ec8660b470ff6b264bab14a399606cf113b1fb190fc 8e34cbb4d064db929e94652e1901ec4f26affa71e30e556b7acdff71dd622cbb -test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql f690fd9a8773e7c73b70f2d64ee919fef8eee243c5a315c4a6d2713d43ea0e43 f37817427c36cec14a2e07f99d3a32f37f3f27a8eafdf170749ec2780054729b -test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql 55df4541a7b0e82198acfcedd7dc99eb564908270e4fb2b032bf05e40fba6fef a5932d884903da901263f88644c8585a45045190d7204f630506c5aece798288 -test/extractor-tests/generated/Path/PathSegment.ql 523ec635961b9aff465dd98a1e63f8e872e147943646ea7383af95c3fa5d8e42 29bd402ee76eaa080cd6fbf29ba9d9141cc9828f1d3ddf162da6534daed52c56 -test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql 8f6e67b3e316309f20e21d7e7944accf66b0256b76fa50ee9a714044c6ec8cea 15f10a701fc4d3f9fd6734da90790cdbc8a1ddd57bf52695740acedcb2e6e485 -test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql 52fedfc7518d4646e5f90843806c70fcfde7e7af602846a4f1dd90c3a46c9229 a291e47676ee9d257ac76fd5e4088f5905ec5fefc77568038efa6c88d2116a85 -test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql 0d5919b0a240678d84dc687de954ef6dc11fe4a20f54c56578c541c573bdf3f2 5d2094ad5c0b0b7f298260511c5072b129b121928394b27c49d39e69ba6a5870 -test/extractor-tests/generated/Path/PathSegment_getRetType.ql 36386a514bc925f5b17ad87afba9fef7986900c1b791732de061213c6e86743f f38bcee68c1da19e70bb1e1c4a4047c763a466f1b8ef2c4f65f8c724c0b58197 -test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql d1db51208a311c30af369ce2fdc3a3296e7d598b27bf4960b8b34622a9d9163b 561b1e38c6d8b301fdc016e1d012dd805fde1b42b0720c17d7b15535715047f2 -test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql d7ea6ee3f6b7539786d8de92db1b5e3bb88f0da9096293107e39065a09aad20e 19e05a303472c25115a9e3cb60943109eaf4788d6ed1d37ac2114b58bb94ef04 -test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql d9d8ff43a55671616bd5b98ff2c03690ec2661817d19a61edcc4b37d23e312d0 b4dc0ae4d7f03c98c23312b358d214565b34c7a028ba8983826c6bf5c1177eeb -test/extractor-tests/generated/Path/PathTypeRepr.ql c2e069acc5111088a7287d98b4bd4bf44bd79c5a786b275f7448ebafc3613500 6e016750e5fef92a98bc5cc60bfd40d85fbb5eb2d251b4d69ffe600813f81df0 -test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql 49e96ea2aa482e3b80cb0e2d944055f8298f7fc55b36cea7468586c94bacf686 29b3c2140ac1bc6e0e6160140e292e2b84e13145c1553480e2a582cd7f7bd3fd -test/extractor-tests/generated/Path/Path_getQualifier.ql 9af95e22cdf3a65da6a41d93136aef4523db5ce81d38f6ed4bc613f1c68784d0 3102d9241a417a92c97a53ac56a7a8683463f1adc7a593cda1382c0d25b3f261 -test/extractor-tests/generated/Path/Path_getSegment.ql 475f344ee24a14468745d50922fdfd63f5d817f14cc041a184c2f8ec144a01dd 4f663c5c2b1e0cb8b9a8a0b2d8b5d81f12a3bf333c71ecbb43d9258f7dfe4ec7 -test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 44fb7174365c6deecdc22c720d84617c6e060c05d49c41c90433451588f8aa6f 871fab471c82fede3c36edc003f9decee5bb7844c016951d28be78d0c91487e5 -test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql fdad6ad5199435ded1e4a9ea6b246e76b904cd73a36aaa4780e84eef91741c5b 75d63940046e62c1efa1151b0cac45b5ec0bab5e39aec2e11d43f6c385e37984 -test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql 2d1d97f6277794871fbb032ea87ac30b1aa902a74cd874720156162057ea202e b1b9880fce07d66df7ec87f12189c37adf9f233a1d0b38a1b09808d052a95642 -test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql d27602e77ddf491a278426de65041dda8568f427d1e0ff97c0f23069ae64670e 4e4766e948adf88a6b003ead7d9de1ad26174fe9e30c370f1d3e666aa944df52 -test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql 33b38895b3a25f0cbec7040861143bd5bdc01f98beff3a6b44bb77e1e0953d4d 9ad76676a6dcdee8eceaedbd759a089eb74fcf9c51308837027cd10253f18bdd -test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql a1901323348a86a47b3d3d2a3d30b4f5aebf46744e4ecbcea650b3360024050c 58eb93dd76a927bb0cab1b25d01162c3b163e8a72ee13b4dd334e6017bb67db3 -test/extractor-tests/generated/RangeExpr/RangeExpr.ql 707c08aab49cc0a22c80a734e663b13ecbbddf0db28b6a25fdbc030a1ce38d6f 1f78950b30485cdde9fe7d9e416ad1dfdac8c5b6bc328172e6e721821c076131 -test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql 8767e670f88c2115bc61b16195d2c9d02bc074adc4ca57d2aa537c1af9b4c530 4fa51652c60ca7d06bd9ad604107e002603ee2a7b4587636f6b46b8e8060e06c -test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql 0328c3d0597004f3facf3d553ed763566344f54e1b9c9e26f2f41b8146b6bdba 8e701b595631af117fd0a79154e298dfc64cb0874eb58018921f94076a0c7ebe -test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql 355a4d61bcb6ac37003c49e736e0e3d4c6d223343db4d79ecb43a78fbf6b4c94 a81c79a5d54dec5f3918ad486cb07ffcb0af067823f7597d8e86efaffdb70935 -test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql e6e35c735b2bc56adf38f96f32ef59a004391cafbb23b9acc34d2177764588c7 478969212626b1d101c19115f726ca7616fdd4d8de82fa1e91c50a26515c2ee1 -test/extractor-tests/generated/RangePat/RangePat.ql 97314b9a5543a7471d722ae188a657fd325974eb38eafe0997a6cf1095d04d69 5dd655582157b3436722b4ba3118bdd29853b0bc170248ad2c4c1162c534afe6 -test/extractor-tests/generated/RangePat/RangePat_getEnd.ql 723eb5030ec52d3aa3650a3e2de6cc0195a0030630239b972235963320e0d808 2df3b1a6197c3abd43dc743fd09cbf55165e3191f2b49336777594541e5da96a -test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql 564216b2342f56dc8c1aed6306f57b6dafb33de9e3ba337a840a8c077ce95933 2a76ec7a59bada29733a1515bc1ea8bedd37429d1694ca63c7a8fbf94098a4c7 -test/extractor-tests/generated/RangePat/RangePat_getStart.ql ad2066efa32fced2dd107031f2a9b9635c3c892e874870a4320522bae9309aa4 b4a8c57a838074e186b823938d1a9372153c193da6c839b5f242ca25c679e83f -test/extractor-tests/generated/RefExpr/RefExpr.ql 27d5dceb9e50668e77143ff5c4aa07cbe15aeea9829de70f1ddfe18d83690106 b95058b7a0bad4bddb857794901d9b651b2f9e4dd3554e5349a70a52cbbfaff6 -test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql 477fb3fee61395fabf78f76360ea27656432cb9db62e6f1dab1e9f3c75c83d39 5210f2ac54c082b616d8dcb091659cdad08a5d4ae06bf61193c33f208237482f -test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql 180d6417fd7322cabf4143d0ddd7810f65506b172a5c82484b3ef398041636b2 a291f0bec1ec5b3fa6d088b3d1a658889b9a3521c39ff3bb7a5ab22a56b8b20a -test/extractor-tests/generated/RefPat/RefPat.ql ba0f0c0b12394ed80880bea7d80a58791492f1f96a26783c2b19085d11e2fd2b 22aa62c6d4b6e4354f20511f8e6d12e6da9d8b0f0b3509eefe7a0c50f7acfb49 -test/extractor-tests/generated/RefPat/RefPat_getPat.ql 60f5e010b90c2c62d26674323d209b7e46c1c2b968a69765e1b1cde028893111 fe9e7dc6a5459250355336eca0bdf2a0be575b1e34936280fd12a76a004f7b46 -test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql 0e543a2e907bec0736a4e3821e94a49ad5127a69dab88f89a4a4bd6ff9e6a138 fe157d0a00264e2e5b7eee7248b052c960915aac14543e16a31ef659ce84978b -test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql 0fc1babe97a3c12609f30af8d68a2a25a588061fd92fb5a0d6ddb2afd0f87296 c9fcd48451faf77a3d47c4085904439243744119648e10499bc1b1533c5e14be -test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql 63130e9884b588a2e0f076a00b55e9c3106826ab78f5e7ff859d24d4f1b4d0d1 fabe9cc6967433def8ddba298d5cb4d903f8491bc4ccfa1b36e415995da9b804 -test/extractor-tests/generated/Rename/Rename.ql c8605e5d8ebb39be238ba26e46861df493d86c9caf9aa9a791ed5ff8d65a812a 7263c2c2565e41c652eda03d1e1ddd030fea79a8e3c967909df9945e30ecbe68 -test/extractor-tests/generated/Rename/Rename_getName.ql 1648191216ece0e3468823ed376292611bd3e5dbe9b3e215167d7051aa03385f 381683d4637a1a7322c9a0df2d90a30a153630965e7facbfaccd6cdb5c1de2cd -test/extractor-tests/generated/RestPat/RestPat.ql 0abc6a13ec82ebc923ce768344d468871a05a515690f0feaaf55b7967cf34a9e c2bc069de6927c6c04c89c54e694b50d6ca052230cc36668302907a7ed883e08 -test/extractor-tests/generated/RestPat/RestPat_getAttr.ql fb391ab265a454b10270136efd61c1ae9b29951cd28b0f585c6b6eea37c64745 6311e3ca49eb8a061684f8cebdfb11cc5ae09db6e145d1b2349a2ee80298cfe9 -test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql 9183fb22ed8cab493719ab4c26e9129a033962330893c21a994ca9a98de86670 4031d0ba6f2ea3bd5116c594c053bd92f10f3dd2166e5ac7d6d6006fc6c1911a -test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql 0cfb66dc354c6b58c695dace97c4d5ec2a730ba6076918be2beca4a4cedaae07 54a6299dfa05b7ef60feca77dbad3d0a444655df4d1d4c69a8efc3a425ca35af -test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql 8e9eba0837a466255e8e249e62c69c613cb5a78193fe50e26a617cf9d21c995a f33f6cc874f74d1ce93a6975c88748bd5bca6dc10360f8fd59493d939be63658 -test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql 9fb7e1c79798e4f42e18785f3af17ea75f901a36abf9beb47a1eede69c613ba9 9cdb7cc4a4742865f6c92357973f84cee9229f55ff28081e5d17b6d57d6d275f -test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql 7d4562efb0d26d92d11f03a0ef80338eb7d5a0c073f1f09cbb8a826f0cef33de 523ebd51b97f957afaf497e5a4d27929eed18e1d276054e3d5a7c5cfe7285c6e -test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql 976ce33fe3fd34aae2028a11b4accdee122b6d82d07722488c3239f0d2c14609 906bf8c8e7769a1052196bc78947b655158dd3b2903fef2802e2031cffbc1d78 -test/extractor-tests/generated/SelfParam/SelfParam.ql a5be8dc977d652c6fe8b27377a3dae3e34b4e034b76d2621d6c43ea9cf07128e 099fe28e1b17238c46c457593aed8d9fca6e6e6cf8f9c4ec5b14261035261c04 -test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql 00dd5409c07e9a7b5dc51c1444e24b35d2ac3cab11320396ef70f531a3b65dc0 effbed79ad530a835e85b931389a0c8609a10ee035cb694f2e39b8539f8e54ba -test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql 0b7c243f609e005dd63fd1b3b9f0096fc13cb98fe113e6f3fefb0d5c414e9a5f f6e06de8bcddfc9bd978c058079e53174edbe7b39f18df3c0bd4e80486808eda -test/extractor-tests/generated/SelfParam/SelfParam_getName.ql 69207a57b415ba590e50003d506a64fd1780b27b8832b14f9bd3c909bddb5593 56fa28ba1222f45893237052fa5a9421d960e14fbf1396b2d1049b440c2e5abe -test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql 406c04fbb5e0f4c57a2f73dfd69aff7da95fbbe552dc7391b3332d4e451b1ff4 025ef82cd0bf947333253141a5c3c4990db47a699c21a2381089428d0d133670 -test/extractor-tests/generated/SlicePat/SlicePat.ql c6ff3c926ebbea3d923ba8ed00bf9cc20eaaee4c6ae49ea797c0975d0535240e 1b27e0caeb793da3b82059268b83bd624e81f215de42acbb548c52bacba3ed9e -test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql e2f892a3a4c623fe3f7e64e1438128126bc4d8b8c0f657ae53bb99d3209a3b13 af835d9ec840c63e13edc6a9230a4e34cb894f4379b85b463b8068de5a8bd717 -test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql 59c4e943626b6d284fa30778437b0ac5b10243b2dd3081200ada18e5a5f75ebc a479a079c841290a42a86da71d0b951d6ff354a4818be72180e6fe24b3eecde4 -test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql a6604fccd54cf86fb2b929ffda248a2da207e0841a46fd5e80fc18e2efccd9ca f10cc6446549214d8929521f8794a93cfacdbd71cd95e05e585bd178af414e52 -test/extractor-tests/generated/SourceFile/SourceFile.ql c30a3c2c82be3114f3857295615e2ec1e59c823f0b65ea3918be85e6b7adb921 6a5bbe96f81861c953eb89f77ea64d580f996dca5950f717dd257a0b795453e6 -test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql 450404306b3d991b23c60a7bb354631d37925e74dec7cc795452fe3263dc2358 07ffcc91523fd029bd599be28fe2fc909917e22f2b95c4257d3605f54f9d7551 -test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql f17e44bc0c829b2aadcb6d4ab9c687c10dc8f1afbed4e5190404e574d6ab3107 1cf49a37cc32a67fdc00d16b520daf39143e1b27205c1a610e24d2fe1a464b95 -test/extractor-tests/generated/Static/Static.ql f5f71ff62984d3b337b2065b0a5bc13eed71a61bbf5869f1a1977c5e35dfdd50 630c4d30987e3ca873487f6f0cf7f498827ae0ace005005acdd573cf0e660f6e -test/extractor-tests/generated/Static/Static_getAttr.ql adb0bbf55fb962c0e9d317fd815c09c88793c04f2fb78dfd62c259420c70bc68 d317429171c69c4d5d926c26e97b47f5df87cf0552338f575cd3aeea0e57d2c2 -test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql 828ba050c964781dace382e4673c232f2aa80aa4e414d371fd421c3afc2b6902 018f8b75e1779829c87299d2d8f1ab5e7fa1aaa153599da789cf29b599d78477 -test/extractor-tests/generated/Static/Static_getBody.ql e735bbd421e22c67db792671f5cb78291c437621fdfd700e5ef13b5b76b3684d 9148dc9d1899cedf817258a30a274e4f2c34659140090ca2afeb1b6f2f21e52f -test/extractor-tests/generated/Static/Static_getCrateOrigin.ql f24ac3dac6a6e04d3cc58ae11b09749114a89816c28b96bf6be0e96b2e20d37f e4051426c5daa7e73c1a5a9023d6e50a2b46ebf194f45befbe3dd45e64831a55 -test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql 6ec02f7ec9cf4cb174a7cdf87921758a3e798c76171be85939614305d773b6a0 c51567dac069fc67ece0aa018ae6332187aa1145f33489093e4aee049d7cea52 -test/extractor-tests/generated/Static/Static_getName.ql c7537e166d994b6f961547e8b97ab4328b78cbd038a0eb9afaae42e35f6d9cb4 bb5ae24b85cd7a8340a4ce9e9d56ec3be31558051c82257ccb84289291f38a42 -test/extractor-tests/generated/Static/Static_getTypeRepr.ql 45efcf393a3c6d4eca92416d8d6c88e0d0e85a2bc017da097ae2bbbe8a271a32 374b551e2d58813203df6f475a1701c89508803693e2a4bec7afc86c2d58d60b -test/extractor-tests/generated/Static/Static_getVisibility.ql 0672b27f16955f7b0223a27c037884338dcf30759b7b8bb3da44e5d533228f90 0e4916f5683963041ef23c724ca8e16acfa370b583d90b76508c87131b9e1c73 -test/extractor-tests/generated/StmtList/StmtList.ql 0010df0d5e30f7bed3bd5d916faff7d101cc1edddceab7ddc12bb744f8e46cf7 aaff98988c68713b3577f3d4b4ed16b978eb11433ec7f3a32def82e96aac8c5b -test/extractor-tests/generated/StmtList/StmtList_getAttr.ql 78d4bf65273498f04238706330b03d0b61dd03b001531f05fcb2230f24ceab64 6e02cee05c0b9f104ddea72b20097034edb76e985188b3f10f079bb03163b830 -test/extractor-tests/generated/StmtList/StmtList_getStatement.ql abbc3bcf98aab395fc851d5cc58c9c8a13fe1bdd531723bec1bc1b8ddbec6614 e302a26079986fa055306a1f641533dfde36c9bc0dd7958d21e2518b59e808c2 -test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql 578d7c944ef42bdb822fc6ce52fe3d49a0012cf7854cfddbb3d5117133700587 64ea407455a3b4dfbb86202e71a72b5abbff885479367b2834c0dd16d1f9d0ee -test/extractor-tests/generated/Struct/Struct.ql ffaaa49314c26bd0a206b692d480254acc6e87233f679fbe936094c81c071de2 cae27f50c3bf787aead37077c9fe32e66c1a247a8a8c1f6f9b241493b1b793fc -test/extractor-tests/generated/Struct/Struct_getAttr.ql 028d90ddc5189b82cfc8de20f9e05d98e8a12cc185705481f91dd209f2cb1f87 760780a48c12be4581c1675c46aae054a6198196a55b6b989402cc29b7caf245 -test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql a17504527a307615d26c2c4b6c21fe9b508f5a77a741d68ca605d2e69668e385 f755d8965c10568a57ff44432a795a0a36b86007fc7470bc652d555946e19231 -test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql 289622244a1333277d3b1507c5cea7c7dd29a7905774f974d8c2100cea50b35f d32941a2d08d7830b42c263ee336bf54de5240bfc22082341b4420a20a1886c7 -test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql e4849a63be9f413426dd0f183d1229fa4dd1c521e87479622a80c52179e3bb03 5ae88d61ffa7b0a52a62fd16ba5cc5816c2b7b2c0db726e3125e525bbbc10a18 -test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql 866a5893bd0869224fb8aadd071fba35b5386183bb476f5de45c9de7ab88c583 267aedc228d69e31ca8e95dcab6bcb1aa30f9ebaea43896a55016b7d68e3c441 -test/extractor-tests/generated/Struct/Struct_getFieldList.ql f45d6d5d953741e52aca67129994b80f6904b2e6b43c519d6d42c29c7b663c42 77a7d07e8462fa608efc58af97ce8f17c5369f9573f9d200191136607cb0e600 -test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql cd72452713004690b77086163541fa319f8ab5faf503bb4a6a20bcaf2f790d38 4d72e891c5fac6e491d9e18b87ecf680dc423787d6b419da8f700fe1a14bc26f -test/extractor-tests/generated/Struct/Struct_getName.ql 8f1d9da4013307b4d23a1ce5dc76466ecdd7f0010b5148ec2e7dd2883efe3427 411b326d15d56713c2a5e6d22909474c5d33062296518221e36c920927f859fe -test/extractor-tests/generated/Struct/Struct_getVisibility.ql 17139d3f91e02a0fc12ad8443fe166fe11003301fee0c303f13aa6d1138e82d5 07bdc1fbcc0ea40508364ea632fce899cbe734159f5c377ea2029bc41bc9a3b4 -test/extractor-tests/generated/Struct/Struct_getWhereClause.ql d0db2c9811ed4568359e84255f04f0c75ae65a80d40981a1545d6cddf53e9c09 1133a46bc502757aaab61a8ac94b4a256b590548c5e27ec6a239ffd5a4a81577 -test/extractor-tests/generated/StructExpr/StructExpr.ql 5bdc2163b7ddd0bc3eb938acc366105590742c417b09ed814b9c4d5d78b9b90a e59a4973aa882879f1940a955020df91fb588f004d7ea83866f52b0930e46763 -test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql f6f2b26a93b24d19f74eab73518eaa688ec270f865764fb9b839ae7e029b10bd bd963650f78009ac44a2aa14f0e53f10e832a73cc69d5819ea89865874113040 -test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql c2794babda0823c62c2af6fe9e3b11d8e4b6baa8095bf8f01faee13b4894ff67 cba6a7576a572238c59142e46cc398c5f31cd91c8d1710381d579bb6bb0edb7c -test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql 5152d15064daa1da4470cdc659a07281734d56ed958e67efc54701eb44d550dc a7a78db088b0dd7b7c148ad24c8faa014e2eab29146e056bdf35bef5ca2f8485 -test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql 1c2401038fe14e660d5101951e7467dc3a56969698a8cc5b818d664902b269bc f6b7047112ade49b632d2e3f71531dd2dffe7c2cc848587908fa4b85dc06ee82 -test/extractor-tests/generated/StructExprField/StructExprField.ql f054440c074461bdb00506e775be346efc4faf8afd3e55d61f72c8776d1d4bd5 8bfacfa4864309157b6795de26e6c37676ad627e2e8771dfdc8abe57ff269c92 -test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql 660400f80824956422b95923519769df08514f089269c7a5ccc14036b90b233d f137716537f8780ad63bd6af0da06a96f0d00cb7a35402d3684e6866112b9d1a -test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql 00180d982057ee23297578d76bf1a337fde8341f0520ebfa5786c8564884ae5a c2b813c25df4ffc49486426365cc0cc0bbf07cf0c7d7adece7e6576fc8b776dc -test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql 9bacb8d6590d5cde340443c4d0963a8ef8ddf434f912a28b04f9dd9f76504f3b 1a2209ee1086873dd2b07979b089bbab849283bfb8f44ba3deb5ff480acc1cbd -test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 33dc3f6c1f737e0ca2015530467bfa123eac0eb8ab63f2937ad0064f2246fb2d b89d5817c6a249232540570ef93ecf880a8ef74aa409c7cd8ddbc83f6d589fea -test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql cd7f5236f6b660fc064f3a04f3a58d720ed4e81916cbd1a049c1fac7171108ed 61317928d0833f7bb55255a5045bedc0913db1266e963ede97d597ee43e3ddd9 -test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql 1292aec1141bdb75fd8e0993f683035f396a0e6c841b76ee86a0a1d3dce0dbc4 450eccbd07cc0aa81cef698f43d60aeb55f8952a573eaf84a389a6449c3d63a7 -test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql d0470b9846323d0408e0f26444cdc5322d78ce1ac203073ff4f556dac5343be7 280712a0b3714256aff4c2a4370fd43e70c418f526e383ed7100d61cdf790c36 -test/extractor-tests/generated/StructField/StructField.ql 5ec75ec3c1a18299259dfa041790e9b4a791ceb1706aadea3537d0a67e7e65bb cba580a8678547dc88a736bd639cc4d8e84ec32a9ad1095e50f7e03047c37f1c -test/extractor-tests/generated/StructField/StructField_getAttr.ql a01715bc688d5fa48c9dd4bfab21d0909169f851a290895c13a181f22c0e73a9 fa6ffcf007492d9e1b7f90d571b9747bd47b2dc29e558a8e1c3013c5949dcdb7 -test/extractor-tests/generated/StructField/StructField_getDefault.ql deccc63b81892cd1b293d8b328ad5b3efdf32892efc8b161dfcd89330ca6b5a2 9a9f306f63208ce30d26f91dd15b94867a7d9affd31a0f51a3d1d2ce50786abc -test/extractor-tests/generated/StructField/StructField_getName.ql 4c5a7e00b758a744a719bff63d493ee7d31ff8b3010e00c1d1449034d00130ec 9b284d848e5c86eac089f33deca7586441a89d927e7703cb4f98bb7c65a7238c -test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql 3f36890b9ced576327d0fb6e3c80c6482c3a6d6f751fa769b24b2c14a46f8ee8 aed0681a3928b965f1448954d3a0369238a3cd715b97a0d988d15b971bf45356 -test/extractor-tests/generated/StructField/StructField_getVisibility.ql 335d097fabbc9720b065248cd1c295fe8dc040bf646ce491244b6840d9a847d3 9a9073eb52cd401b07beb4eb0aef7a15d5d398d0c76c35416ffcb059a360d654 -test/extractor-tests/generated/StructFieldList/StructFieldList.ql 02635fb8b0bccb4cb8be71a2b103c6854192dd0300669127ce74590566b0b163 62e4151cbc47ec7bd10cb9f711587454d8fcf64fb54f279b82eefcf20028c37f -test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql b70e569d48109f57a1a765fcab2329adce382a17258c4e93a57f540a408b1836 1d6a65b7ac1ed8fd0e966132ec9ecbb425fa7ca501a2cd1db7269f9534415f30 -test/extractor-tests/generated/StructPat/StructPat.ql 2fa9b13ad6752a1296908c76caf3778dfd7d31e1ffc581011366208dfc3288a4 5a61ae9056a153b526d07c451a55f3959ce90adf762fe6c31f434fae27086d5d -test/extractor-tests/generated/StructPat/StructPat_getPath.ql 03fb1254cc797239de302fbf1ad1b4e7e926e2ec4423221fbec06425e3647f63 9ab60ad1f16d4fb04d3de9f8f05d959fc90c42bb8f0dfc04ccc906897f5c1633 -test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql e3188ae0bb8835ad4aed5c775b52afb6cc7f9c520a8f62140d6cc590f2b8ce5d fd3e6eaf185e933e5ab1566cc49ef3497e50608070831879e01cf5a5ec23eae5 -test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql 1f4be7d78b187997093d52729d985dceb4c9e918274e0b9f06585e3337e3044b 2533855f07fce230dd567b2192ee20168bca077dbf7f1e8489dec142fcd396b8 -test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql f7b6dadd6ed0e40fb87e4be6eabe7fb96931b8c910c443588147202707655ced a43de755e0ca786a491afc97805e34d787c7bd03e7bca8df090e9386d4019688 -test/extractor-tests/generated/StructPatField/StructPatField.ql e6f468111706d4254b6c3e686c31e309c11b4246d8ed7eb288dd349ec0787c12 7ab1b5ead54fe09daf3d4cc6d8eb3e39fe253bede8822187de1a74a10cc59e01 -test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql 5e1df4f73291bbefda06437859aef73457fe58a22c134ceb9148cfcc19b696e7 69aea129500dca110023f03c6337e4b1a86627d6d51c43585534cf826db13d04 -test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql bf44755d6b82d69610de44cab2d49362b10621589948b68480d80412acec820a ec06b8f947cdaca913fd44685e5ce2bf52281306808cbb17e7e88118c897f877 -test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql bb3e9ad8cdaac8723504fffbafa21acc95c5bce7843fc6f3641e98758d93573f 77e6f9946e66a25ac70622e65c164413e7001f4b8e9361a0850171fc0cead935 -test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql fad84896295380e3576bfaef384ac88b2f96a73196d8df3ec39ecc6184ec053f 3dd63ce5d1ffd48c873397368c6229de8da37e8f694f395165af8257a4d2faf2 -test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql 4e6fa98e48d474f31585a644d6045b7d8427a76bb04810728ad121a43b59e8a2 e3b1d915aae3e3c3df752146e222df71667f73731d7337cc2eb391b13f097315 -test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql 4be5b8afebc081602429d7cfb1fd87de629abc17f3739131c93f7e0b3adaec3d d5ced2366c5a278e820261239c4de183517dadf9bc8496f3e568758ab9570752 -test/extractor-tests/generated/TokenTree/TokenTree.ql ba2ef197e0566640b57503579f3bc811a16fec56f4817117395bf81da08922a6 2e7b105cb917a444171669eb06f5491a4b222b1f81fa79209a138ab97db85aff -test/extractor-tests/generated/Trait/AssocItemList.ql 0ea572b1350f87cc09ce4dc1794b392cc9ad292abb8439c106a7a1afe166868b 6e7493a3ace65c68b714e31234e149f3fc44941c3b4d125892531102b1060b2f -test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql 8149d905f6fc6caeb51fa1ddec787d0d90f4642687461c7b1a9d4ab93a27d65d 8fb9caad7d88a89dd71e5cc8e17496afbdf33800e58179f424ef482b1b765bb1 -test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql 06526c4a28fd4fdce04ca15fbadc2205b13dcc2d2de24177c370d812e02540e6 79c8ce6e1f8acc1aaca498531e2c1a0e7e2c0f2459d7fc9fe485fd82263c433f -test/extractor-tests/generated/Trait/Trait.ql 064785e9389bdf9abd6e0c8728a90a399af568a24c4b18b32cf1c2be2bcbf0b8 a77e89ac31d12c00d1849cb666ebb1eecc4a612934a0d82cd82ecd4c549c9e97 -test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql 05e6896f60afabf931a244e42f75ee55e09c749954a751d8895846de3121f58f def1f07d9945e8d9b45a659a285b0eb72b37509d20624c88e0a2d34abf7f0c72 -test/extractor-tests/generated/Trait/Trait_getAttr.ql 9711125fa4fc0212b6357f06d1bc50df50b46168d139b649034296c64d732e21 901b6a9d04055b563f13d8742bd770c76ed1b2ccf9a7236a64de9d6d287fbd52 -test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql 7ea169336dca0fcaf961f61d811c81834ea28b17b2a01dc57a6e89f5bedc7594 d5a542f84149c0ccd32c7b4a7a19014a99aa63a493f40ea6fbebb83395b788a1 -test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql d8433d63bb2c4b3befaaedc9ce862d1d7edcdf8b83b3fb5529262fab93880d20 3779f2678b3e00aac87259ecfe60903bb564aa5dbbc39adc6c98ad70117d8510 -test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql a2bd16e84f057ed8cb6aae3e2a117453a6e312705302f544a1496dbdd6fcb3e6 b4d419045430aa7acbc45f8043acf6bdacd8aff7fdda8a96c70ae6c364c9f4d1 -test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql b27ff28e3aff9ec3369bbbcbee40a07a4bd8af40928c8c1cb7dd1e407a88ffee 2b48e2049df18de61ae3026f8ab4c3e9e517f411605328b37a0b71b288826925 -test/extractor-tests/generated/Trait/Trait_getName.ql d4ff3374f9d6068633bd125ede188fcd3f842f739ede214327cd33c3ace37379 3dcf91c303531113b65ea5205e9b6936c5d8b45cd3ddb60cd89ca7e49f0f00c1 -test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql 8a4eb898424fe476db549207d67ba520999342f708cbb89ee0713e6bbf1c050d 69d01d97d161eef86f24dd0777e510530a4db5b0c31c760a9a3a54f70d6dc144 -test/extractor-tests/generated/Trait/Trait_getVisibility.ql 8f4641558effd13a96c45d902e5726ba5e78fc9f39d3a05b4c72069993c499f4 553cf299e7d60a242cf44f2a68b8349fd8666cc4ccecab5ce200ce44ad244ba9 -test/extractor-tests/generated/Trait/Trait_getWhereClause.ql b34562e7f9ad9003d2ae1f3a9be1b5c141944d3236eae3402a6c73f14652e8ad 509fa3815933737e8996ea2c1540f5d7f3f7de21947b02e10597006967efc9d1 -test/extractor-tests/generated/TraitAlias/TraitAlias.ql c2a36ea7bf5723b9ec1fc24050c99681d9443081386980987bcb5989230a6605 b511356fea3dee5b70fee15369855002775c016db3f292e08293d0bf4b5bd33d -test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql 128c24196bfa6204fffd4154ff6acebd2d1924bb366809cdb227f33d89e185c8 56e8329e652567f19ef7d4c4933ee670a27c0afb877a0fab060a0a2031d8133e -test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql 029d261d0bdd6fe5bc30011ac72481bce9e5a6029d52fde8bd00932455703276 cad506346840304954e365743c33efed22049f0cbcbb68e21d3a95f7c2e2b301 -test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql 303212122021da7f745050c5de76c756461e5c6e8f4b20e26c43aa63d821c2b6 fdbd024cbe13e34265505147c6faffd997e5c222386c3d9e719cd2a385bde51c -test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql 601b6b0e5e7e7f2926626866085d9a4a9e31dc575791e9bd0019befc0e397193 9bd325414edc35364dba570f6eecc48a8e18c4cbff37d32e920859773c586319 -test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql 5a40c1760fcf5074dc9e9efa1a543fc6223f4e5d2984923355802f91edb307e4 9fd7ab65c1d6affe19f96b1037ec3fb9381e90f602dd4611bb958048710601fa -test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql e91fa621774b9467ae820f3c408191ac75ad33dd73bcd417d299006a84c1a069 113e0c5dd2e3ac2ddb1fd6b099b9b5c91d5cdd4a02e62d4eb8e575096f7f4c6a -test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql 9ab4c329b25ea5e1a899b8698093f404ee9c095f0b0e38011161ca6480cd10a7 95c3b93610cdc08a0e251ab1307523f8cfb5560460923c81aace8619e30746dd -test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql 7e86140d2e9081d46063a15d82719be315406eb4d6e6738b3cb5ba7bcbef458f 8fb1ecf6a96b1f1d4a840425139c4ad47feb8b0ff14a319c08f82535e62e23c7 -test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql 129e1f10aa23f10d71f144caa4ccb923928ec1fd791b203cdba9989b079fc1e1 1fb112215bd3e39b7bc8ebc059f9cc362e5b2f04a242df053e150efa638cfea7 -test/extractor-tests/generated/TryExpr/TryExpr.ql 3beaa08f6d734e74eca32ae2e3fb6aa7694400a429cd6b3db97bfd3402b379b8 3f55bfc71e804e2ba6f02087c0808901a379b2cb30f58d5933c91becc10f3654 -test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql a2cef886bb959ff0f47fa555e7a89075f93ab013e1766270590951bf0b14a47b 24d12c96f1c7a1ae3d0d596551fb53ef2745c890eb602e0f99db3cb70cf1e474 -test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql 4ccd50eb4bdf01381eabb843b5ea3ebddec5d5852a04f10be9b9a4ef8a3005f1 0ec050d28c70322f6f280180fee998d1b6cd82db4e114db7e10758fcee2a2fca -test/extractor-tests/generated/TupleExpr/TupleExpr.ql d6caa8d9ff94f27f88d338b07cacc280289970931e101680c6574e32bc0c863e 70508104013003dcf98f22db6eb9b60d14552831714048f348f812807189e9b1 -test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql b1e93069613a8cd2b49af93a5cdd1571b343571e9c3d049d8bf19b25a461f9d3 be18008a00e3b0fb786f5dd36268201fd43bf8527d8a40119b147a3a8c973b3b -test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql 308cd14873afedc74e3ed61d283f72da50008ce7690510c57fe0934c92158d58 5e3e23a7221486ead6502debb5d4978fb67046c8b0a5c8a688e4e196cb1f28a1 -test/extractor-tests/generated/TupleField/TupleField.ql ec4f5a92fd702f8ff4540f5c681d79e197354244fdcc6df8a3c50f30f7c3c4c2 ad8c7f8316dc02238c40cc79d257fdfd8614b2db14a871eea849be6551e8f0f5 -test/extractor-tests/generated/TupleField/TupleField_getAttr.ql b6b6a5349fc6767b0081d737e818425f0c93be5bd8de47c29fd89b7812e3267d 23d82a649cb733bc8c1d1b09dde84dbfcc8f847ed35be986a9ca8717ea9e5081 -test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql ce4b6f69779e9f3c5a8b5625137bac806fc929d1c637804edefbf804a66f88e3 a3b741a2f48cb1e275f978585d2a04a720e23a03ccc04d09eb229fec322f42e3 -test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql c7af5373382394a686d12a23c4e688a7cc0dfe6b6cbee25c7e863b4713601ddb b174f30404e69eef112dedc8397ad444e968f12dde9befdccb051305d98a75d2 -test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql 7dc88440222ff036eb6aeabf9311568ea34f31f7c1ad19c71dd69a2dc17a6ed9 0255890d1389da004f18e8a0fc0b72d22790c36ccfacc6f452b269667f030f22 -test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql ad552a9c0b9964d1770f14cabbb436db60ebedc3c569006542a8eae9ddb30f6d 3a8c49d629376a9b8326138836b05ee2366b1021ffd19f5be74ab023e70aa50d -test/extractor-tests/generated/TuplePat/TuplePat.ql 24ee56bc848537da65eb8ecef71e84cc351a2aedcc31d6fb53a5b7865f15f7c2 81db1076e2e4921ceb50933b96cd7b574caab1818de257c1e9038f3f97447d59 -test/extractor-tests/generated/TuplePat/TuplePat_getField.ql f000bed41af031bc56d0705ce312abe7ab3dc6745b2936798c9938781e51475e f464a84dbc36aa371d60d6db68d6251f6b275dc4ecebdc56f195637be390b067 -test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql 967409c7bddd7fc8d0b9fdfab2f5e6c82e8b4ff57020822aa0cda177244dfbc5 eaf0b7e56c38db60fafb39f8de75b67ee1099ac540fa92b5dfe84b601d31781a -test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql f3f2e23cc2a32aa5abc1e0fda1300dab1693230632b9eaa75bb3b1e82ee9ea1a 24b87a39ec639a26ff8c1d04dc3429b72266b2a3b1650a06a7cd4387b6f0e615 -test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql 13a06696bbf1fa8d5b73107e28cdba40e93da04b27f9c54381b78a52368d2ad1 5558c35ea9bb371ad90a5b374d7530dd1936f83e6ba656ebfbfd5bd63598e088 -test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql e409667233331a038e482de4b2669d9fac9d7eb0e3bd5580ea19828f0c4ed7ad 588e4628471f1004575900d7365490efcf9168b555ff26becfc3f27b9e657de3 -test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql 150898b6e55cc74b9ddb947f136b5a7f538ee5598928c5724d80e3ddf93ae499 66e0bd7b32df8f5bbe229cc02be6a07cb9ec0fe8b444dad3f5b32282a90551ee -test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f99917a95a85a932f423cba5a619a51cada8e704b93c54b0a8cb5d7a1129fa1 759bd02347c898139ac7dabe207988eea125be24d3e4c2282b791ec810c16ea7 -test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql 615acfcbc475b5c2ffa8e46d023fc2e19d29ee879b4949644a7f0b25c33125e6 81b037af5dcb8a0489a7a81a0ad668ca781b71d4406c123c4f1c4f558722f13e -test/extractor-tests/generated/TypeAlias/TypeAlias.ql 5cbf0b82a25a492c153b4663e5a2c0bea4b15ff53fa22ba1217edaf3bb48c6af d28e6a9eafff3fb84a6f38e3c79ad0d54cb08c7609cd43c968efd3fbc4154957 -test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql ecf4b45ef4876e46252785d2e42b11207e65757cdb26e60decafd765e7b03b49 21bb4d635d3d38abd731b9ad1a2b871f8e0788f48a03e9572823abeea0ea9382 -test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql fa2f0867039866e6405a735f9251de182429d3f1fdf00a749c7cfc3e3d62a7bb 56083d34fffd07a43b5736479b4d3b191d138415759639e9dd60789fefe5cb6f -test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql cd66db5b43bcb46a6cf6db8c262fd524017ef67cdb67c010af61fab303e3bc65 2aebae618448530ec537709c5381359ea98399db83eeae3be88825ebefa1829d -test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql fe9c4132e65b54eb071b779e508e9ed0081d860df20f8d4748332b45b7215fd5 448c10c3f8f785c380ce430996af4040419d8dccfa86f75253b6af83d2c8f1c9 -test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql e7e936458dce5a8c6675485a49e2769b6dbff29c112ed744c880e0fc7ae740ef e5fcf3a33d2416db6b0a73401a3cbc0cece22d0e06794e01a1645f2b3bca9306 -test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql 757deb3493764677de3eb1ff7cc119a469482b7277ed01eb8aa0c38b4a8797fb 5efed24a6968544b10ff44bfac7d0432a9621bde0e53b8477563d600d4847825 -test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql 309efaa32a840fb1fca7d34b7cdbbf51ab469707fa195b69a9f1a7d141db3a02 e12bf44d8858e930bdde80ecd7909b5405a51a1b00a6d2c8ee880e68dd622075 -test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql 64acc817272d5ee0ff3659a6851635ec8436a8f7944c15d19c80fffa2ad29eb7 db1e91971ba1ae8ba95ba8ac1dfa91f2fe0381c1b520518d80b344878357dbf5 -test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql a1851a78f31ad6e3e5e43537832701f4c420546c2c86449c8391d3cc366d5445 23c118f662dee5f0e286753d107165b1964ce703a1378765f974530929a32723 -test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql 0cd281b7b5d3a76e4ec1938d7dcebb41e24ed54e94f352dcf48cbcdb5d48b353 5898e71246d8ba7517dab1f8d726af02a7add79924c8e6b30ce2c760e1344e8f -test/extractor-tests/generated/TypeArg/TypeArg.ql 32366a6163dcb2fbe2e98d739cc049f410a6523a135310e79b98a4c760926c8a dd52b9c138197ab07b6abbb66236c37261b47cc3201b1e1ab6ccb425b2cc6f44 -test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql de9102f7cb306503d1858cba40a48b8f40e192bd11b40104453a303db5c6e241 65105b7b2ee346a37a3d6ee61d4c12e34d0cd6ff4a3d79ee0634081a6f959ef6 -test/extractor-tests/generated/TypeBound/TypeBound.ql 9f688714d359bf02c39bfc1ad767df0c37465241672ecc2c7acbed76703b5b1b ce49ac6d48f96f73c1de1cc2b053c06d7ab5ced234cd005549ccb96ef7fc6584 -test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql 615b0f5ccbffc425a3fa9480197bfae649c072717697f59d2e9b8112d2ff3fcf 1f969aca15be820eb27fe80317ad7fd4ce60f1a0fbcb4ae98b04828b0aeca632 -test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql 5c77f9ba0ce7ccde5a512e1eb6887e1588789d2bfbaadefa42177a144ca56e37 122ab4c2eb6cf285a1ce8818c00f60a12a53765b6999879a1c3596fb48eda39e -test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql bdb0cf5cee3da296738224e6f44dcb348009f71e645498e72418e1b7d9b955e8 96168156dca7227f9d90dd8381bc04823dee8fae54c7eba427f99cdcae920d44 -test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 829c62ad88caa7707a4067c1a34f81971e936af1280a134b0b3532fbd4e4c887 10133eec05b902d5f0a6b3ed66156879914a83290014ba0ded26f1c3aaeb2b28 -test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql a6f6ec3f8d329da3509a8040ee2383ec6d9c66fe7c5685d94e90ac989a9e61b0 c812280f09658c63beb2a2ec0ab86e007819da08b6637bb4299c6ed6c90a4c6f -test/extractor-tests/generated/TypeParam/TypeParam.ql bff624133257883477db43ae05cc17681ab20d5564c2025dc78758255a62eaf2 a25d4adbe6119f4f36fa57f08cf7ba52e0b54668047e685d811570e0126bcfaf -test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql c071639828faca21de4b65a26a712ce126f7e989118ad4a896342b8e7d2aa2d0 83050691345f58c73a47f9cfd011bdf65a0759ffb3ea957336dc0ff6d600d13a -test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql 705edd03cf04c030a244541de287d2acfd3842389bfc58a26cfd1577da475113 7f2680131d4bcf301e8207a4844305c459615744a83c81f2c3a245db8284df74 -test/extractor-tests/generated/TypeParam/TypeParam_getName.ql 9d5b6d6a9f2a5793e2fff8dfa69d470659cc36dc417fc8b463364892f70c9d13 91dc4396c2af6c5175c188691c84b768da0d779d5d82afee19baf31e92c7dd91 -test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql 080a6b370ad460bf128fdfd632aa443af2ad91c3483e192ad756eb234dbfa4d8 8b048d282963f670db357f1eef9b8339f83d03adf57489a22b441d5c782aff62 -test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql 4ad6ed0c803fb4f58094a55b866940b947b16259756c674200172551ee6546e0 d3270bdcc4c026325159bd2a59848eb51d96298b2bf21402ea0a83ac1ea6d291 -test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql d8502be88bcd97465f387c410b5078a4709e32b2baa556a4918ea5e609c40dd7 b238dc37404254e3e7806d50a7b1453e17e71da122931331b16a55853d3a843f -test/extractor-tests/generated/Union/Union.ql 4974339feb10ab65bef60ba713058cb73ba7dcf5e451ddf6c919e94f96f56a80 f0f0025666940e4b0f72ef2e64b28e96b1a410f25f56c98cbebdd019ceece7b6 -test/extractor-tests/generated/Union/Union_getAttr.ql 42fa0878a6566208863b1d884baf7b68b46089827fdb1dbbfacbfccf5966a9a2 54aa94f0281ca80d1a4bdb0e2240f4384af2ab8d50f251875d1877d0964579fc -test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql ddd0133a497dc057a353b86acc8ed991fefeaefa335d8ad9fe95109a90e39e54 fcaed4287815226843157c007674b1f1405cae31856fed1113d569bab5608d9b -test/extractor-tests/generated/Union/Union_getCrateOrigin.ql c218308cf17b1490550229a725542d248617661b1a5fa14e9b0e18d29c5ecc00 e0489242c8ff7aa4dbfdebcd46a5e0d9bea0aa618eb0617e76b9b6f863a2907a -test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql 82ee99ea42d6de9a45289a4b8e750cba887ac9daa2f6387b8c2a9062224da45c 1f18cd80f93ca2e19d3ac8ce733f264522ba785078f541342c816e16194748d6 -test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql 6268ddb68c3e05906e3fc85e40635925b84e5c7290746ded9c6814d362033068 04473b3b9891012e95733463018db8da0e96659ea0b10458b33dc857c091d278 -test/extractor-tests/generated/Union/Union_getGenericParamList.ql c55156ae26b766e385be7d21e67f8c3c45c29274201c93d660077fcc47e1ceee 4c4d338e17c32876ef6e51fd19cff67d125dd89c10e939dfaadbac824bef6a68 -test/extractor-tests/generated/Union/Union_getName.ql 17247183e1a8c8bbb15e67120f65ca323630bddeb614fa8a48e1e74319f8ed37 e21c2a0205bc991ba86f3e508451ef31398bdf5441f6d2a3f72113aaae9e152b -test/extractor-tests/generated/Union/Union_getStructFieldList.ql ae42dec53a42bcb712ec5e94a3137a5c0b7743ea3b635e44e7af8a0d59e59182 61b34bb8d6e05d9eb34ce353eef7cc07c684179bf2e3fdf9f5541e04bef41425 -test/extractor-tests/generated/Union/Union_getVisibility.ql 86628736a677343d816e541ba76db02bdae3390f8367c09be3c1ff46d1ae8274 6514cdf4bfad8d9c968de290cc981be1063c0919051822cc6fdb03e8a891f123 -test/extractor-tests/generated/Union/Union_getWhereClause.ql 508e68ffa87f4eca2e2f9c894d215ea76070d628a294809dc267082b9e36a359 29da765d11794441a32a5745d4cf594495a9733e28189d898f64da864817894f -test/extractor-tests/generated/Use/Use.ql 1adafd3adcfbf907250ce3592599d96c64572e381937fa11d11ce6d4f35cfd7f 2671e34197df8002142b5facb5380604e807e87aa41e7f8e32dc6d1eefb695f1 -test/extractor-tests/generated/Use/Use_getAttr.ql 6d43c25401398108553508aabb32ca476b3072060bb73eb07b1b60823a01f964 84e6f6953b4aa9a7472082f0a4f2df26ab1d157529ab2c661f0031603c94bb1d -test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql d02562044449f6de2c70241e0964a8dedb7d1f722c2a98ee9c96638841fa1bc5 a1db982e16b35f1a0ab4091999437a471018afd9f4f01504723aa989d49e4034 -test/extractor-tests/generated/Use/Use_getCrateOrigin.ql 912ebc1089aa3390d4142a39ea73d5490eae525d1fb51654fdd05e9dd48a94b6 c59e36362016ae536421e6d517889cea0b2670818ea1f9e997796f51a9b381e2 -test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql ccfde95c861cf4199e688b6efeeee9dab58a27cfecd520e39cc20f89143c03c9 6ff93df4134667d7cb74ae7efe102fe2db3ad4c67b4b5a0f8955f21997806f16 -test/extractor-tests/generated/Use/Use_getUseTree.ql 1dfe6bb40b29fbf823d67fecfc36ba928b43f17c38227b8eedf19fa252edf3af aacdcc4cf418ef1eec267287d2af905fe73f5bcfb080ef5373d08da31c608720 -test/extractor-tests/generated/Use/Use_getVisibility.ql 587f80acdd780042c48aeb347004be5e9fd9df063d263e6e4f2b660c48c53a8f 0c2c04f95838bca93dfe93fa208e1df7677797efc62b4e8052a4f9c5d20831dd -test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql ed7f240c960c888127298fac6b595477bc1481bdd1ed9a79124c6e6d8badc059 f30f69400600d52f10b1c54af0d00c0e617f5348cb0f5e235c93ef8e45c723a4 -test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql 971d94960a8cfcadf209202bb8d95d32da9b048ad6df9c520af1bf8e23acd1dc f6d6836592652cc63292aeb75d2349f4bed640047b130b79470703b8d1cd563d -test/extractor-tests/generated/UseTree/UseTree.ql e305edd22df9e018a58f932774447354b7fcf0ba871b52b35f0ee9cd4f6dacdf 766a84116aa8ff3d90343c6730bcb161ff1d447bdb049cd21d6b2bbf3cb9032c -test/extractor-tests/generated/UseTree/UseTree_getPath.ql 80384a99674bdda85315a36681cb22ad2ad094005a5543b63d930fc7e030dd5b 2cd92b5de8b4214527f8a58d641430f6804d9bd40927e1da0c7efda2f86f6544 -test/extractor-tests/generated/UseTree/UseTree_getRename.ql ec3917501f3c89ac4974fab3f812d00b159ae6f2402dd20e5b4b3f8e8426391d db9ed981ce5f822aee349e5841d3126af7878d90e64140756ab4519552defe72 -test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql c265a88347e813840969ae934dfd2904bc06f502de77709bc0b1c7255e46382a 52a239c8ea5fd8fbfbd606559d70ecadc769887437a9bcab6fb3e774208ad868 -test/extractor-tests/generated/UseTreeList/UseTreeList.ql cd943c15c86e66244caafeb95b960a5c3d351d5edbd506258744fb60a61af3b2 cfa584cd9d8aa08267fd1106745a66226b2c99fadd1da65059cc7ecf2f2e68cf -test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql dd72966b1cb7b04f0267503013809063fcfb145e2b2d7d5250d9f24d2e405f9a 75b953aa11c51ca0fe95e67d50d6238962d8df4a4b9054999a2c6338e5a5613d -test/extractor-tests/generated/Variant/Variant.ql 861e349a2c11571eb027e740b4bf29c0ce98b0f1342e45b364bb5fcbaa487d91 5825b12837862765e23ed09c08c146cc292b2305aadc531ad826ad5bb36f9cdc -test/extractor-tests/generated/Variant/Variant_getAttr.ql dd38e48e1eb05ce280b880652a90010eb63f7de3be7232411ba6265691249420 f8980680104de1e5fd40f264d8d62346aacaf6403a5e051f6fd680e234c82c1f -test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql 99e79930f8ff87a25f256926e5c3ce1ee0847daf6fadc5445fb33c85328b4c61 2dd64a53813790654c83be25b5e175c9c5b388e758723c2138fff095353fdd7b -test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql 2adba17d4acd790ea7ff738a23fc8d691e40bbc0e1770bc0f15a6a6f0f1b37f2 6e28a8aef3cde78ce8db50e4a48c663d1aacd7a4cc8c212e7c440160da7ae4c2 -test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql fe6a4bfd1440e7629d47283910de84c5e8c2f5645512780e710f53540b5bc886 b1e31b765cb1a5fe063abb8c1b2115e881ae28aa3ccd39e088ff8f2af20d6cf4 -test/extractor-tests/generated/Variant/Variant_getFieldList.ql 083c8cf61989663de33d99b72dec231c308ccc8bb6739921465c473a07e8ea03 d03bff6945853c940acdc053b813d53b008ddab9a8bd4307826433828d4763ce -test/extractor-tests/generated/Variant/Variant_getName.ql 0d7b47bec9f9031c67f7b684112a84a311ef9b2efeb260bd7cd6f424011ca0d8 73565e6f965dd7fd7bb9b3408c7d7b69120e1971b67ab307fed293eb663a59ae -test/extractor-tests/generated/Variant/Variant_getVisibility.ql 2c8f365d28d96af55589f4d71ac3fee718b319b4cbc784560c0591d1f605a119 13160d9cf39fe169410eff6c338f5d063e1948109e8f18dd33ea0064f1dd9283 -test/extractor-tests/generated/VariantList/VariantList.ql 9830a7910c10aab76af40b093f10250fc80b8e92c3e2d25c1e88f7866773119d 758d6a8499a4528468e77575ca8f436450a12d1244d17cd2ab1c375e30fea870 -test/extractor-tests/generated/VariantList/VariantList_getVariant.ql beaf322eb010ddfafc5957cd2795595bf2b331033de69842f05cc2b5f8c57da5 c57187b3105c8bcd43de018671c58d3d532cef1724cf2f82039a99061ecb8d27 -test/extractor-tests/generated/Visibility/Visibility.ql 417b501e0eef74006cdc41aef2ee7496871fac8479c93737147336d53a60b1fc f65527aeb6c888c18096efc8b3a68d02cc4e857c18ae5381d85d3e10c610812e -test/extractor-tests/generated/Visibility/Visibility_getPath.ql 53de9942208dff340d4665f602c519592c79b65dad5db217360fe23bb22b9318 6e4d2b191792d7a259f2edbbb2333df3f97c14600b04142fff4c86266dc61b75 -test/extractor-tests/generated/WhereClause/WhereClause.ql 89af4f9e3021560c67c49a3b7458449aeda469f586317d8855d00977a8969a95 59f9f9e7619fb0aa17124679c69723a31f03e7a7af24088b274234c034371e7c -test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql cc9f83e30aa028d0130c7f27a1cb72a2c8e3100d65de4041f24670e8062192a4 a561ef1d71efc850b73f30a695777acda4835e2b9a34b1d054a57ebb2450d73c -test/extractor-tests/generated/WherePred/WherePred.ql 3a29d0eae524810ade32546b9170f25cc243f8542b68b5fe86b0fd2d766e92b3 ff5742ad1d36f2675089c2692418e3c8e73cca3ed1e8796d795aa6c681107099 -test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql 21c3aaae697a7c8b4df82aa5c6eeef4963c9240fafb20cca3888e4361e208966 2f9ab4ed12984a4c82af2b8b805b28c2cb0c82d4e90927d9cf5be81e3bdc231a -test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql e08d9d6cccf634746f42a6ee583bbb3e7e9a9edbb63242e73b2bff4463df55d8 139543750c18f88d9c1ad2cdbcf1699d597cf2264bbb6b02a7e5792444e277ef -test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql c78e31ff4d1822a6b76f403e5ccb8f5529b4f784e14e618833df0378adca55fc 8bb1c9b5a1cfca0f5e8335464f7439aa098063176fbd3edbaf3407169f1899e6 -test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql e56e4989bb9b9ff1d8648641993732dac2f37c5e3b4bbf1c550735a4f1d84b3c 246cd2cfaf90115060412c9e4a15da9089f3b524f72a63ae42d17b062e7be52f -test/extractor-tests/generated/WhileExpr/WhileExpr.ql 61c49414f2ed786a68b79bd9a77093e4086457edb6c136cf8a94f2ac830c2f5b 7737f724a297d011c12143e009a63926812c63c08a1067b03e8677697ab00f83 -test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql f8527130eb2492743c0e629c97db291abcefe3d35302c840fee327ab0d8f10fd b41bedd429e5566fd68a50140ff1f50b51e2c7c351cbc8253fbc126527073f7e -test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql 84a021806423425b24eaeb9fb9967a6aadabe823c24e77a0dfefcb3509041597 147aa8bbe4dbf9b90be2467db8207dc96aed281e722eb6b9c998442a90911a6c -test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql 60ef4de57d85c7df23c0518b944b3839a9b2478044326829b5bf709a8c8d7240 3916e9ff50733c58afdc09837339b72a555a043f92f1c4e09e1652866029b017 -test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql cd62b7a464b5778ac925c3dbaf607e97d88ecd30f83f9106ace8e4e148d935b6 ab8027bddd6f138d3530ecd1aeb342b15015e886af1db80b75160c210a380086 -test/extractor-tests/generated/WildcardPat/WildcardPat.ql c6da9df739528763f423eac0fa537bfd524d3ea67794abdbc7f7c56193163273 42be2c5e296ad3afd05b5dcc208a4d2db2fda9323cda2df66054f921e37f6efe -test/extractor-tests/generated/YeetExpr/YeetExpr.ql 8a9f110486be12494256382374d6d5af8aa2210a84fd4452e99a3a3882b0eb59 510fa9eadeb062bd4f733ca6b6892e8908c2c6d58ec8478efc6942bd63a527f4 -test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql 84e44a1fbf1a9d18f255781a3a9aaa71583b6c05da228989471dbe03da4e817f 560332129d3341fbb1c0ea88c894033f0bde19d0adc081111f7bf8af55b61f88 -test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql d77b68b621e5b903231e2dfbc53a1e1421d59a0ad2e8c346c2abc1a2dfc11efd 642eb5791eb336ff05594d06eca08735e54bdac3aecf5d31a4de1267d10cf440 -test/extractor-tests/generated/YieldExpr/YieldExpr.ql 1700b4b2660724d8dbabde5f3441424b79690e2a43dcc599dd69af255a7fc8ff a11e48d9fab0cc358c5806c01753d61e48713b740739ffc87f933754e7f103cc -test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql d4c5e2710b4e41f6fcec51e74041a8af4c3e8116d42fd14fad6ae166a9c18031 cc6763b9f06a3fe6cafc672054cea8835f800f934af47c3c135b443486400394 -test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql 592f8938120a036d78d180eb59634341d72d5e76854d9df48ab1b9b69db99c35 efe2955a5b4acc24257f9d79a007d39951736ce8ca11970864d1e366c4e516e6 +test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 3b3d434c12f3642ff4f5d37efa2dced9c992d2364e3a0222e4f27914b7a10ebc 5f131d71ee6bb43492bc7af8b5fcce6c8e7db4be6f157af586c24aae7f87bb1b +test/extractor-tests/generated/Enum/Enum.ql d23aa08076db097960186afbaf72f0be3fa0b211dd36ced0e9a0fafa001f44ba eda75e1efc81076f8c7636acaecb2173eed24a86b57fc01731b6f134f69a01a7 +test/extractor-tests/generated/ExprStmt/ExprStmt.ql 0f99b73f380380a7159f1d046b959810a133af33c98aa35fde18247a99a09555 ecc5f7f63550659af92d50617ce67ac8dc4630ad2d5c5cd666a697c20aa9ff7b +test/extractor-tests/generated/ExternBlock/ExternBlock.ql 3d489a71460616d428b57d5c89564081fc24ca7b423be16598dbdd13e108f6a8 7d45f7e5c21af9e8c8c0ccf99e11333df8f30ac6f9e291434a258f21f2974fc9 +test/extractor-tests/generated/ExternCrate/ExternCrate.ql 55d6575506d0a6a11b5e86caf99b2d462c5260af11d82d1ad5b028c0003bac8f b0bfed75b10603532c657bde4f807d2e6685ab81ec360c4ae8e256006732cb43 +test/extractor-tests/generated/ExternItemList/ExternItemList.ql 7442c42f2a9e6d7d2660e3012f70b6db501ab327ac171ef0ad5241c38dce333e b5db54f716cc7c07a1282640bb6d2de891737548b3935f446693145f9306a2ec +test/extractor-tests/generated/FieldExpr/FieldExpr.ql b1463e8330de001220c1925aaa625c712b1fda760f780e83afbf83c15c31c79f 207382059e8c5660c5657524e987bd716b5bc29fda7311266c6ad87476f0d3d8 +test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql cb23d43d8a7b5162ee888922bf0e92cc5d15df45359eafc56241fc405e71f002 9cb69b8cf4e1ef19fccaf17d57bd34aa75cfed97e4b6d64f1b3d7b787e6547c5 +test/extractor-tests/generated/ForExpr/ForExpr.ql 98746a8beb7ba3fd59ca06f11f077205305f8beb0a9ec0af77f5b625f9ab1915 abe4492a468a1769cbca45a3282ea77d9e21477c99585cf8851b3c3a4e7521ee +test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql 4f90e94fc617637eab0f28895c46ca48de3c4667a32d43a973def28f3f926948 d4e740ba92dd781ff37ab63b32236392a1e9da876db84b4941122f572704027c +test/extractor-tests/generated/FormatArgsExpr/Format.ql 4824294ec21124b0e44a5b5a2666b6bb38123810758a55edb402b761ccaec262 7c6d5aef2112760b4b1b6519af149c2fd0a531fb817718291129223649a29246 +test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 0a853aa4c5fd67ff5c42247f56b838c1b025e8d9364b758ee3855e33ee49e551 20016b1ed5207b0ffed889b0054780865308e41286c4e223ed723656c7e9f82d +test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 6c1400071f13633649b33342d636e2c0901a9199d5476e65c9e86ed43bc4d6bd ab22f0454f46ccc4923188128fe08c31a97db3340a9b4e02d5ac634c4c24c1c8 +test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 379469864a349847ede6505fee76d4334cff08f830051ec627124ffbd134d5b7 927443d5db95d1bceb17c23396b0a311f127eb93f28f6032bfcdc14f55f7deb2 +test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 24108cdc54feb77c24bb7894744e36e374f0c03d46d6e6c3fcb2012b1ad117f6 05a6b6f51029ee1a15039aa9d738bb1fd7145148f1aad790198fba832572c719 +test/extractor-tests/generated/Function/Function.ql b273ee86be20a1f6a01195e9494382e2f19d30360a602fce19edfde2050486a9 003b56d91eb8d258523103c9abd08c8926d34c8aaa54475724edbf83c5d2dab7 +test/extractor-tests/generated/GenericArgList/GenericArgList.ql f061e626a68a5d238ecb3fd8302e6fdc2b38928e13d94157fe2ea91d05d9224b 6295a253438ce8bf437154de31699aad2ad447224845e8ad9ae2ef66a0ebe448 +test/extractor-tests/generated/GenericParamList/GenericParamList.ql 7d25f71e2b68e65af2104c2c0c8d4d37ba9f6281b2ee0f4af14895e0d9897e56 8820bd3591b29535766645f11d460de36274ee8cf0f0d1d5fb4be744fe5853ed +test/extractor-tests/generated/IdentPat/IdentPat.ql 015f2df2a1910f3834695dd204b2b60451c8a6e25ceac5dcd4c0fa03fadb45be 845aa839ba0acdb8486b14421a317ca8a048bd6dd717b0828ff6d66e6173f669 +test/extractor-tests/generated/IfExpr/IfExpr.ql 5ae88009f6136564dbf1d5cd5a6a53e7a5940926fc641eaec1ea5cf07bcb875f 7f55fa91360b9ca8aae137a71a18b139e5ff3f25a9fabe5eef807b710ecd3e9f +test/extractor-tests/generated/Impl/Impl.ql 82c7c230f1a304bb5aedb5521b79ffafae57befaa14a02d32c4fd8dec339b982 c51e5b4a5ebfc505bd4deaeed6c558abeb03b946ac2e60b04205bea6ee64461f +test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql d93e9852c32d8a5c63b88c535194733ce0df644e5508c356b917213d19c61b51 4386f864a9fe7255d6ba2d055a55ce285aa1aed1ba7bd2d2fb0c8e9e4d41b49e +test/extractor-tests/generated/IndexExpr/IndexExpr.ql 9e98dcafdd8448072eafd200f356ecabc7ae6d198e783b3e656e8d3edf9328cc 358f941e2964e0cc988a900a111e382b1ad7daf68edf96573724054c23214bad +test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql 6ba01a9e229e7dfdb2878a0bdbeb6c0888c4a068984b820e7a48d4b84995daa2 7120cafd267e956dbb4af5e19d57237275d334ffe5ff0fb635d65d309381aa46 +test/extractor-tests/generated/ItemList/ItemList.ql a7cd12269cbfcd323a91183747e45b16fd03987508a70b522fa4c5f06c6b4a24 c3a0ba31bd36b831f24081e1ed2dece4fc26448e8d7d68708dcbdc37fc3b06ce +test/extractor-tests/generated/Label/Label.ql bf876f5435c5c1ceaeae3e280b59e2afe4081d4f16e31f870344c4a0dc559f83 d1683de377912cdc3bdc09993c0e5620b580df218137a765499934b515688286 +test/extractor-tests/generated/LetElse/LetElse.ql b1e858a70daaabec1fc1956f27bde6d9b6cae4d73e9848645de3fbf4d076080a 26fbe7215a35f118cbdede1f4f7606bb826801512fc28ecff9cdf3bc2643221d +test/extractor-tests/generated/LetExpr/LetExpr.ql 93420800fab65ce0614c29b0086dfa8f9702eb739cd9cfaf182ec42ea49ecaea 29c8c612340d4da4fdbea8253f3ad639c1bcbab02c770f05be91fec90f4a30d6 +test/extractor-tests/generated/LetStmt/LetStmt.ql f34f80df9702a2b5b5b9aaf51fdee9639fe31c04a395d10178b4d06aeba6eca7 8deafa420a0946a71b96d3443691e626b1726679774ab31a3b4659eab88c920b +test/extractor-tests/generated/Lifetime/Lifetime.ql 6928ea6d1734506b1749540bad2e4a09b077c9e2e3ad36cee968b6637ac3713a 83d3a1a226c8fc0c19ac0dbf8fb1c292e312162ffd37ae93ab306b4c0c1f45fd +test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql 1ef4cf0a6d58d54560d28aa3ca3773acf932b67bb5ff6ac3198e88f9f764597b 81fb0d408265e07b6a789940471d2e113d6bfd14c0e4633b29458523a5b4f93c +test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql db8cbff79d914ac806b93c158af7b53a973bd65327eeffabc2705dde75e55b2c 2a4e28b31d63879e2f0bb9b63a08eeea67cc3e5348c44e265f56a1728fa9a10d +test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql ff85f118a182a295f1f39c4eab99b28aec196c972f6234ce288ca61bdcd6ed7a ef30de8bee944569438f5710498ab6e96bd62c608202256e088e678ea1fa813b +test/extractor-tests/generated/LiteralPat/LiteralPat.ql e0992ef23bad7ef7cd586140c2f3ae060647e40029aabfeecc7e228413d86ef6 bea1a2b29323bc6bfcba19c180649f08d9be7cee077481dc038c1ed667bf6379 +test/extractor-tests/generated/LoopExpr/LoopExpr.ql 6ecf1073cb59a8ef6b1f73189a019a756b4fb77713aab49dc9d6f9650d8c7d67 2fc3a44c2f630f9c75b9090cca52b6b2c64d14efd6ab3751799993f0820df76a +test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql c568f1a3ea0c675e6eac74c92b8fd634917e58e25522538db772010c41bd959a 00c66f0596ba2c084f8d9266d3a79fdd0b2ff5fa5bc5b217322099d2bbc2fd01 +test/extractor-tests/generated/MacroCall/MacroCall.ql 419ba05a1b98aa63025a3589f30811af4281333e3b2765737dfca5dda39716e0 c75ab05b651956d1117095776a552af530e287b647f827b02b1ed4b118b31599 +test/extractor-tests/generated/MacroDef/MacroDef.ql 3285243993f01ba7908656862eae742ae78ef24c4df6dd36dd816710e1fa753f 7dbd43bff8ab823d3caaa254e142d89595beb76ab30edb90f11d8235b2c4b851 +test/extractor-tests/generated/MacroExpr/MacroExpr.ql bbf9f82fd797b5a0947d8d3ba31c754df5f6468cc5b5c74fc0c9ae51fbc0fc97 72cebdde9f4eb42241b2bd68d6a725eb05ea333dc2c6792de0ee0bbb8087e7ec +test/extractor-tests/generated/MacroItems/MacroItems.ql 5754c284ed6aae44c692cdc5994ff95bf3eae1a9cf594f7c9e9587c5352452ec 1f2658a8f8056be0bcfcec43fc547ca9894b18fc9d2213dc6e7078ae3e6e6367 +test/extractor-tests/generated/MacroPat/MacroPat.ql e317b4ebee68c315f4268e2d8805a8d17623a0091e12f5efb54be1cdf40a8655 c24ba7ed5a384add19bf040a106b288a815b660df69de3f9c7799f03756ee600 +test/extractor-tests/generated/MacroRules/MacroRules.ql 9695d6b4974a209ed4cfceb3a89b4ca3d1f6eebea8ccceb5516ec46f71be2e3b 1850e44310fb311900ffc33d8480fd2d4afc4be0f1c8554936b59fc6906ade2a +test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql 6f3c500f7b1fbb3eae00b741cb10de0cb2c2ec3b952bf0f14cbd8d294b48e041 8c87acf65bdf32fdd735f655cecb677fe7246db43923c1b02a3696c7201974b6 +test/extractor-tests/generated/MatchArm/MatchArm.ql a1c9b74d6b887aa3bd928bd06e7959e2ace699edfa94b4e082130222551cb081 395f96810204bfc30e65662a2efbcaaf03e70c69130fe6ba154576efa4cf7ddb +test/extractor-tests/generated/MatchArmList/MatchArmList.ql 2961e39e7a6eebfc4533932bf84503de77ca1bab8c11f1d31854d572757ee1c1 c2327313fffbb63b0b958cf408bdf34f6fef5c7bf902e3a44499dc2b8b7506e8 +test/extractor-tests/generated/MatchExpr/MatchExpr.ql f2389e43d5d02845c3c30a5ecb8742cadc0c0b18d12503c2872448124927a5d3 c5be399f884ee03e9765f186b8d167710c4ae6e4ac50ef405e5e810bf42839af +test/extractor-tests/generated/MatchGuard/MatchGuard.ql f2f6e4401de989324c1bf26278b82f10f3b224a0618a76c0b45f6ca5967f7930 d3cee06f93b20d075f35da86b48b17d8220b5e0c3660577065e451f2088da99e +test/extractor-tests/generated/Meta/Meta.ql 476e200756fe7baf9a0e8f92af7364fc0b357de4055cea8663010635c9e978cb f43bfed9324dc0e1c64e184d5e200da5952c5c908838206034fd800330b94813 +test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 35709db709f4a561baba8b1b1c56bc2fab8dcab05b38e678692a3ffeb2ca1f33 dfaea39dd709ae496a8c60bcc53cae98cf5349235b88ff47bea9e5a3b12f7214 +test/extractor-tests/generated/Module/Module.ql 7cce1064b28139f5741df98ccc88f0d62af9926a20b59f4f756f3979e28bf318 5f3734c328aeaaccde2e4f83bdd5144bb968c08880730da0e94a636adfb3094e +test/extractor-tests/generated/Name/Name.ql 5359807d0eb6fc90841b3d5ec1ee0f09540d13adfae0a4f73eee7df2b0294e80 0c49cf53d89c28e9ca6f348b6d242a64fa6bb3fb9b8205a591e46095110fb2d1 +test/extractor-tests/generated/NameRef/NameRef.ql f8795c2f9f096b40d681a79e37d489e810b5941ea8036b46d0f09de2b105f82b 7bb59e7019a6b80ecd2e87cb97d6935d7827e3869c5c06d8a916c05f1bb26a5a +test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql 4e73ec96fccb00fe241546ff12c47329a9c67b7ae40a58a5afa39ecb611b84d4 bb716f72db039e0a82de959e390259a82cf99ba4482070602b7b6b42511976e5 +test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql cfab8e4bc2531c25a49ebe3128dd76d52fb870d4540d8890df6ef8fadc594a03 c8aa854fa3bd77b5adcabba67cc491f125a96760dab451446ebd33cd91d2c620 +test/extractor-tests/generated/OrPat/OrPat.ql 7f78903ac374921770648aaa359a5be157da60fe92ee522776fc326db4cec11d 38a85313488b9c5dc1187c3f85b7f5f87cf4ba0b4745e2df24cf2e4185e05760 +test/extractor-tests/generated/Param/Param.ql 1dd558b6b02351929eaffe958315cde68574c83a2f5d4ac48b1053d2c780332e d751dbccd80b2ca7dc5718dd0c8edbdffd3aa78ce7aa5a434b8c0d8960dcdafb +test/extractor-tests/generated/ParamList/ParamList.ql 113e7c56a50a6c6ccabcffffc35214215be8d3c86e1d2d34ed4a57869c71f0bc ae7ba6fc184369ebc1ad3acf09845122d26604e9e9925c62be4a4f2ede32a075 +test/extractor-tests/generated/ParenExpr/ParenExpr.ql 01cce66baeb671e6557ed1f9ff19db8f0852840fb15aea510a9625b1fef5953e 12aec5a7489c52798b370faed18eb1d2d9346e31c7cc8f08a595278f835332a8 +test/extractor-tests/generated/ParenPat/ParenPat.ql 57ffaca029076fbf4c6f179ffdf9f45c40bac1116c5af5458d5a82ae4361565b a287cf79c646a6639a1ecfe2c9a227003e59255ddf2a1c9b46a1403f6931fa88 +test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql d09151c7071e03375e3b81b9adb050ed6c7bea8c1d688f4a66834400dcc739e2 2f297fcff16d8bbe383233d3eea969bb5c5af3a4e60880c5b113c7628fe0bf02 +test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql c6965c802eea155b03cf7879353beaadce3ac3eaed71a44a9045b9dbf91efb56 674dcbcee9d3851b21da0dfebdeeadfd304305629aa511b562ac7fe0b0eca419 +test/extractor-tests/generated/Path/Path.ql be4fca0eb7b974eea321d86e076896af4cabedf7aa88ba8cb7e628665abf8fa6 8f94c5685ed975c8a455c3096d3e03b2bb1494687d42b7eca966489d994d3ddf +test/extractor-tests/generated/Path/PathExpr.ql 7955350830d15101f583cf18ac7612c64cdf1032e0ca65d73c23d26c27e75229 47ea59e1c1384fd5d06ddc4ea52cc79cbc5f43d3c927ed41faf9bbe8371a165b +test/extractor-tests/generated/Path/PathPat.ql c61f8e24ef2025f59137853705188a7854564768045a1936dac6a724d34b3a5b 08f5268a2179146a757edc2a6908d97716c2fd30722cbdf2e065f127fb94b431 +test/extractor-tests/generated/Path/PathSegment.ql 33d39c172dc6635b39295e5a57db9b7a8fae1b344f8ed1714cce52259c10024f 0ffadac8dff4521cbf72fbcbe99cc2cd74b7e2e5ab84e3a498edffe4df8b70d7 +test/extractor-tests/generated/Path/PathTypeRepr.ql 865aa4993abeeff57f8b4bac8543d10074c4e9090ab1d20671f2cd320cf82939 b5e6cf368abeefdfc1c455000fb2315de1bc6f0c2e263900ee532447978688ba +test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 98a73d8db6ec8f658eca2f9fd6878487c7401ffb9ea5ab7af8183edf1ae89907 caf3f89fc01830d50e01b9884dd113d325e689ce5bed88cbb7ded50d6ef7fc3c +test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql e95c20198e875405d057eb66091ae7554d88fa182f4e65c117348b7156294f14 4d12531b4521e82d85b57f480dd9302cb3d0b6cda7ecca4a69b4b17939eec1bc +test/extractor-tests/generated/RangeExpr/RangeExpr.ql 7677a75919ff26462e19253dba20bd18d6bd6e57fccd617c8b1365da22ecf782 59d2ad612b96b06551876f5562a233bd4c57de25a574d04f4d9ea3eddbb5e080 +test/extractor-tests/generated/RangePat/RangePat.ql 8b1919d87bb0b3a0cac4c3dd16026b29b1f2cc5f6ca70f51eeedfc578bd13618 948efa05eb63a6e3a3717c09314c090120f9607d637bdedd5936b14cdbcd028a +test/extractor-tests/generated/RefExpr/RefExpr.ql 971d00561693ee6c4bfed4931dd3ff9f8eda95ad7000868f6935bb95ffc897db fabfa54dce3da4a4b6cf0d86c8d01d55ca164053a4e57d75232614987f9d6542 +test/extractor-tests/generated/RefPat/RefPat.ql c39727f608a3d5376d78f6972b2e2040665fe6a87d962ea9dd2fefb049232ca4 5efe77286c990abc730b136e1bb26b3e61663406b5cc386e5db0ff6852bf6326 +test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql 28122f3106eb76b6b663c1b50469ef557b40bc19261b3e54f17de69de31c60a1 d79479e038a916d0047b34cb69405c413d2e998f92dcf82568b1a781f29e643d +test/extractor-tests/generated/Rename/Rename.ql a7a23af1ce58a9b259846a03e29f53bc36bf0665e39ecf2c979cef45ba91083e 8e135b8c863a0a7f78f91db04cd6627dda16472065fe32732208c1f2681d800b +test/extractor-tests/generated/RestPat/RestPat.ql 461e45119253061f1bb81b52fe710d363c9506a9a86ed1aa25e0f03dbd2f50f1 a91b8b97cfc24ffd0d2750fa3f06f9597ceb181cf64628aea34750d4345a36d5 +test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql 4e99e977ccb0ce043b7cd6dae57f2a03e79f3a4353dce2ef5cb25d7b65ec676d ee4777400d40d0376353bc41182f31aa5e514cf586494f37fda9a287312fddb2 +test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql 163c5b049d38254cfb7678073abf672e980ea6340423df0c3d26f84236b7b8a1 49dce8d5f5e476af46fc0102a86625c8a4306d6c6e0b95e7ad70d4c5376b1d74 +test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql b08a4d4ad63ea6e62f8b9646fd838cac9d122a93f5716ee91ff7c62fa987a1d0 264d485a301f4220eaa580ae90964b05c1a2b19b898698e7cdcc86b624ba3aba +test/extractor-tests/generated/SelfParam/SelfParam.ql c1d46b7a3786f0ddb20dcc1516f9dda890b19e0f2a938487f7fb025ebd821652 6a5382306b6a5ddf4617f10d5f9c58918719017e3f9f8a09b96e079e229b0263 +test/extractor-tests/generated/SlicePat/SlicePat.ql 5cebafa861e59823969023c0261c89756b164ff4b66d6d0b27e81a2e32791ba7 f7860597662cfd764ca858ced12d57a00efa0fdd8c8165343923388accae8f52 +test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql e247427510d6db23508bc88ce67a9ef653437b283a7a3cbc66bddd66ea256ac9 76142b987624281dbda5b6c661f1f0d8235d5c5b85d1959d0e8ff37f3bd78abb +test/extractor-tests/generated/SourceFile/SourceFile.ql 008e056aa3b5767db02f473e085997ee1f685cf61489a3f5ee94acbd0fddb05e 6a239712c44a6d04d737d0aac3a4c5e057db580e1b98fc2d44c879fa3ea8d3b0 +test/extractor-tests/generated/Static/Static.ql e5fee6156a5940a007a5f7103c8a3be0a42662384c4899f2824efb3471c187cc 53f51bcc61c4c71608b9518c5953fb0740ff91a1bd45ef2a1f24a354639efbdc +test/extractor-tests/generated/StmtList/StmtList.ql 3837f40540137cbed13e5a655c07a3030c1d1e12e1e7d461551f19d11dc600e7 332b132fae5b35f047a3221e6481e414a25a714d4c163c1940335d2700560e06 +test/extractor-tests/generated/Struct/Struct.ql 88065f0b52096fb90af497f7e9b340e7d3974d6ca9af9715a4706446f9a6c877 600484b716d5fb1dbe953cee92c1aeeeb7028ebea7e6c08dd84be9756b0769a2 +test/extractor-tests/generated/StructExpr/StructExpr.ql 219563f630469270f162cbab43091300e2441768d77c402c9ad135320c5059a0 ed50862bc7ac9ec2a76a75bc4a318d845a52f5aac87256d56bec8078b3c6cf88 +test/extractor-tests/generated/StructExprField/StructExprField.ql bd0a520d229544a186f03b9eff803fb1358f8e661d24997f3025e40a9a0680d4 d3073dbc5a65fcbf094ef6a9b803a6bcf68c1e5faa8bd8962924a832937ad746 +test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 95559d69ef1a343c6329da7eb004b4ee6e7cce1553ba9899da3f827f3d69885a f9dbcc7dce8371e23a827f91dd07f7da97bdda19107214c1a1e1cd39e4378e31 +test/extractor-tests/generated/StructField/StructField.ql 2ea449886dea1b6528001d318e25bbbe31804db9c15da505cda3f64bc83f0b94 10e0bb0a1d64a385cb9dd588b732684265ba66c3dbe80e7dc790aaff7d49bbea +test/extractor-tests/generated/StructFieldList/StructFieldList.ql fdeaed2216d64834c57b61c05ad45a2ebf1510561f3c68aac66988cc7c72c2bb 7567265ef5b878c269dcd311b7e23c1cb0946ee62c42b8bb47123ce33131cb01 +test/extractor-tests/generated/StructPat/StructPat.ql 130c5fbd23bd0fdf3ee10d94fc03572e40884e9c3c6242d3c43f44dc7edef0b3 4ee4eb291464273b0d17cc49ae2bb8aaa7ffe85bf5109a44848d92031cc7dc79 +test/extractor-tests/generated/StructPatField/StructPatField.ql 71707a256d378e9c4646bb3f69c04588f790cd1056ac54955f23356e516571c7 b78d2a04ef5749e2b0bf2d2190cbf467a2d6bb4af0b467195a2dc936e2250cec +test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql d458c2bd51dbea2ea8df9c9ec237edc49a7dd006e3800702dbbcc738dbbbd9be f1c061c750a42fcf7877300f27a935e608e3208deaeb79f55ec13e2822037690 +test/extractor-tests/generated/TokenTree/TokenTree.ql 55592f43a6fe99045d0b0b1e2323211d3a3fd64a8c7d2b083f2518d4c3e2e4b0 8eeef2060c80b0918857ba9b3a8543a4b866ca04be3d5ca18aae8a26cbdb836e +test/extractor-tests/generated/Trait/AssocItemList.ql 46a0cf0c5805dbd7f6f4618e4340fcc73c1b46c925446d2def373791fbc42fad 246d726e6d84d804f1bb6dac464352f78cc3f8c3f3700335a3557436b19cdfd7 +test/extractor-tests/generated/Trait/Trait.ql add2a891978f85b28274fe8ba2e2968a146b0775a16d3e1afa910b001f173efe 10bd9f99e90bac1f78318be5be50ef896e8ec6ef4fcdb4fdb9b963e3c64fc849 +test/extractor-tests/generated/TraitAlias/TraitAlias.ql 74853b3529a99f19bd3e9738052582f684459f9c6ca8d0835696eeb6a8575001 bcdb41a27aa1a4d25c006504ba1a52705233d64483c249d2ff66f74271f1dfe9 +test/extractor-tests/generated/TryExpr/TryExpr.ql 117b4d1b0c2b75f02a46c595efbbdc1f6f12914882c4d7e7a10c93ee6d777e24 381556ac2dfe36e6625b5f3d688ac89540efb09974aa7260437867108df084d7 +test/extractor-tests/generated/TupleExpr/TupleExpr.ql c5a18a976c1efbc8d0b0a187e0412d92c76e7dbbb568ea69da10d168a2148711 ed927c16e72b5320aa7cda120bfc2213874db4b7c5b32ea8afcd53361b7550e0 +test/extractor-tests/generated/TupleField/TupleField.ql 611cd986b821b25e7e537d61251904807c33b3635fd0c422b09ee70fc6cee665 89a9c0ba49d80bc0d97eb413d5e714d527dcddc8be821396f63c9d5696522fa3 +test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql 2d3f8a1338f1d01377d629b5a7eac29cfdd0cafb16d81e1f1d140a6455a6bcf7 f6c6accbe702a9a27aa87ee4d35a35e64bbf4f4a7498e412a96c49788196c044 +test/extractor-tests/generated/TuplePat/TuplePat.ql f6ba04e5cd2b02b46d09a23c99ef2f161616aab77bb1afbc2ea0a3166b4ab42e 05892d8c5f731a4abe877bbaa85e050d8df2a1044db026ebd761ed2b72179e4e +test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql 14efc97b6c7b657fda082a88367da78eb6222f625cd81f5dae63cd919687fb80 179686ba04d01e13b10bffa203a5d08ef4b764897c254b8a91d84af015d23e9d +test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 042d2bdcfd80894ff1dde1a1d267e6518ed8f860abc51304653f15526f41f222 e2cfe1d40fdde8018278dbbcfedd39f368d203a550ebda6d4efab16082d8b20b +test/extractor-tests/generated/TypeAlias/TypeAlias.ql ef7b8b47bf61330618e4bdef60b12ef8b1c4aa22f7dd06018b784192b8098b69 2130448d770d6f4e8a69db1481fcb778a5ddeb62572ee63ecdc15e69d8207d64 +test/extractor-tests/generated/TypeArg/TypeArg.ql f461f3151f37bdcf1da2212bfaec703573c387d82c7c71113964a526a93d9f5b 4eb7e89236d07ca6ebaa05296ccd76b9bc57bc3098f2f67c099975db20a11b5a +test/extractor-tests/generated/TypeBound/TypeBound.ql 570ba4456e76523ecdb8139713a7a63d1f90829c105c211c828dfe302898310a 00acce8eacd21bc0be57bb65fc7b0dd267f5678e1db389430023ecff327af7bc +test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql e3c13bbd169c3f8e4d6d0243bc1b2bb474b05b8e86c6eaad7eb842b51dd0aec5 e45984b4bdbc9f05614ec345c5a4626750ef8ae469a21a8486350d285f5af219 +test/extractor-tests/generated/TypeParam/TypeParam.ql 795e8b9d80e43a55418443981278b9f62abdc342795de7afa0e1956cd59799ba e83faaa1c48d9b8c89ac31fa47754f9ff147aec3d397f13b1d44dff281761a8f +test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql fd8e3f02dbcb660d76a8f567896026fc05d34a7377ccbff194b419c43f93071f 020ff884ed0ab6b08806b604450aad662b2214c131e8422495eaa591b7731c38 +test/extractor-tests/generated/Union/Union.ql bcaee20c97bd89ed10104df86da104d1f09538cb8b0208ce41dfaf7acada6360 ace13464c76107885d499463d96dc12b762aec08b46e454ba87871875a6d9067 +test/extractor-tests/generated/Use/Use.ql ed960f411be6d98bfed41d16640af9a070b06e2234f108da16b31720f936ca1b 2ec31c90f95c7b6771eabea338147329fc06bc0b876507b1a1589fcb03f3c526 +test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 2573dc28f705a1016724605d7860bbca4d389d33ffdb188b40be2d03d3345826 3898939cdcd333b25bd7f2fd8014519bde7fc9805af0cafb5ddbec612d8ceee9 +test/extractor-tests/generated/UseTree/UseTree.ql 6a7e7ab1e52afc0644d336f21d6bdfeb14cc43f04577d146cf14e6057134f08f 14b822ac2ff2fdc363b6ba4c8f8211edfb480a628c5c4d9e71c4700f5ff36c91 +test/extractor-tests/generated/UseTreeList/UseTreeList.ql 26c99ec196cd97cdc32dc770dc3aedc89622eca98bd984590f109d5aa7de21bf 8d114ced9062417f7cea485addc9f14658ac157514ec6b06e26c94cc7f76891c +test/extractor-tests/generated/Variant/Variant.ql 48768edd1cc9006288847e3efcbfd5361fe64ec9ff2db72fa65d4787558a9a6a ca35d4aaa6a5722c30e10f5a0cd16e0f5b7dfddfa983badf500f7b285278959f +test/extractor-tests/generated/VariantList/VariantList.ql 102856a74ef5409a2fc2d079a8d9c7dad8622aa017432e510709421527a17183 d0fd9f19c02814a8beb41cea7566854b90fc2cf0b679f743272bb3a380411457 +test/extractor-tests/generated/Visibility/Visibility.ql 0db452f1bf77c271b001745958ec226103bf6bc99f81bb0722d16e950644e186 7752fcc2f54cf7d19ec2ecac674977aff35e5912dd565bbe9a15f633153d0f8a +test/extractor-tests/generated/WhereClause/WhereClause.ql 6ae112390006c6af5b8296d95b528b5d48d8156183db4e1a5e24b3ffc35431ca 6d268bf500316b22ecbfe93eb126fc2aae75070e1c3ce2e03526b0c4d1b6251c +test/extractor-tests/generated/WherePred/WherePred.ql c74328a8e99d97c9dd01a135de35caef5a2f5b5c7cd3d08ed8e2db84b47e43cd a409013c55b46acefb0a43d7aaea0b6526df40896d470a523ac1e5c318d04745 +test/extractor-tests/generated/WhileExpr/WhileExpr.ql 70989278938c6e541dabb431a80cea8f4368adb1e891db1fa6c98569cbd78407 f28ac4090143a7ffc1d52ee8bd6c6809b4f09d718ea26d1637c22802f5c1735b +test/extractor-tests/generated/WildcardPat/WildcardPat.ql d36f52a1d00d338b43894b6f8e198ad0c409542f436e3e57d527205c3dfee38c 4e1321e714cedb606e0d84f10ed37c72da61b3a1616754b967f721ff0bc0e4ee +test/extractor-tests/generated/YeetExpr/YeetExpr.ql 59c3aba09061d43a5af7ff06319b5c55b389fdbe1f823331e9dec77790e9be56 64f033fb000762ab818f2b448449ccb7f26e9ec62d55c5a76029b62c1baad90d +test/extractor-tests/generated/YieldExpr/YieldExpr.ql f2aa61b98ed1251ee89da61a6f60e2b93094ec393c98d029614307ab37909ea9 fd3ec990dc1d7d47253db528c7eaf01131b0bb48a6bd1efba4937de58de7c4ae diff --git a/rust/ql/.gitattributes b/rust/ql/.gitattributes index 03d6e465cf0..ec352682e9f 100644 --- a/rust/ql/.gitattributes +++ b/rust/ql/.gitattributes @@ -660,612 +660,162 @@ /lib/codeql/rust/elements/internal/generated/YieldExpr.qll linguist-generated /lib/codeql/rust/elements.qll linguist-generated /test/extractor-tests/generated/Abi/Abi.ql linguist-generated -/test/extractor-tests/generated/Abi/Abi_getAbiString.ql linguist-generated /test/extractor-tests/generated/ArgList/ArgList.ql linguist-generated -/test/extractor-tests/generated/ArgList/ArgList_getArg.ql linguist-generated /test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql linguist-generated -/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql linguist-generated -/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql linguist-generated -/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql linguist-generated -/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql linguist-generated /test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql linguist-generated /test/extractor-tests/generated/AsmConst/AsmConst.ql linguist-generated -/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql linguist-generated /test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql linguist-generated /test/extractor-tests/generated/AsmExpr/AsmExpr.ql linguist-generated -/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql linguist-generated -/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql linguist-generated /test/extractor-tests/generated/AsmLabel/AsmLabel.ql linguist-generated -/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql linguist-generated /test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql linguist-generated -/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql linguist-generated -/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql linguist-generated /test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql linguist-generated -/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql linguist-generated -/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql linguist-generated /test/extractor-tests/generated/AsmOption/AsmOption.ql linguist-generated /test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql linguist-generated -/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql linguist-generated /test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql linguist-generated -/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql linguist-generated -/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql linguist-generated -/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql linguist-generated /test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql linguist-generated -/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql linguist-generated /test/extractor-tests/generated/AsmSym/AsmSym.ql linguist-generated -/test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql linguist-generated /test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql linguist-generated -/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/Attr/Attr.ql linguist-generated -/test/extractor-tests/generated/Attr/Attr_getMeta.ql linguist-generated /test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql linguist-generated -/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql linguist-generated -/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql linguist-generated -/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql linguist-generated -/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql linguist-generated -/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql linguist-generated /test/extractor-tests/generated/BlockExpr/BlockExpr.ql linguist-generated -/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql linguist-generated -/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql linguist-generated /test/extractor-tests/generated/BoxPat/BoxPat.ql linguist-generated -/test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql linguist-generated /test/extractor-tests/generated/BreakExpr/BreakExpr.ql linguist-generated -/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql linguist-generated -/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql linguist-generated /test/extractor-tests/generated/CallExpr/CallExpr.ql linguist-generated -/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql linguist-generated -/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql linguist-generated -/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql linguist-generated /test/extractor-tests/generated/CastExpr/CastExpr.ql linguist-generated -/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql linguist-generated -/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql linguist-generated -/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql linguist-generated /test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql linguist-generated -/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql linguist-generated /test/extractor-tests/generated/Comment/Comment.ql linguist-generated /test/extractor-tests/generated/Const/Const.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getAttr.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getBody.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getName.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Const/Const_getWhereClause.ql linguist-generated /test/extractor-tests/generated/ConstArg/ConstArg.ql linguist-generated -/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql linguist-generated /test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql linguist-generated -/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql linguist-generated /test/extractor-tests/generated/ConstParam/ConstParam.ql linguist-generated -/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql linguist-generated -/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql linguist-generated -/test/extractor-tests/generated/ConstParam/ConstParam_getName.ql linguist-generated -/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql linguist-generated -/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql linguist-generated /test/extractor-tests/generated/Crate/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql linguist-generated -/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql linguist-generated /test/extractor-tests/generated/Enum/Enum.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getAttr.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getName.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getVariantList.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Enum/Enum_getWhereClause.ql linguist-generated /test/extractor-tests/generated/ExprStmt/ExprStmt.ql linguist-generated -/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql linguist-generated /test/extractor-tests/generated/ExternBlock/ExternBlock.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql linguist-generated /test/extractor-tests/generated/ExternCrate/ExternCrate.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql linguist-generated -/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql linguist-generated /test/extractor-tests/generated/ExternItemList/ExternItemList.ql linguist-generated -/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql linguist-generated -/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql linguist-generated /test/extractor-tests/generated/FieldExpr/FieldExpr.ql linguist-generated -/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql linguist-generated -/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql linguist-generated /test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql linguist-generated -/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql linguist-generated -/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql linguist-generated -/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql linguist-generated /test/extractor-tests/generated/ForExpr/ForExpr.ql linguist-generated -/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql linguist-generated -/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql linguist-generated -/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql linguist-generated -/test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql linguist-generated /test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql linguist-generated -/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/Format.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql linguist-generated /test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql linguist-generated -/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql linguist-generated /test/extractor-tests/generated/Function/Function.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getAbi.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getAttr.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getBody.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getName.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getParam.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getParamList.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getRetType.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Function/Function_getWhereClause.ql linguist-generated /test/extractor-tests/generated/GenericArgList/GenericArgList.ql linguist-generated -/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql linguist-generated /test/extractor-tests/generated/GenericParamList/GenericParamList.ql linguist-generated -/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql linguist-generated /test/extractor-tests/generated/IdentPat/IdentPat.ql linguist-generated -/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql linguist-generated -/test/extractor-tests/generated/IdentPat/IdentPat_getName.ql linguist-generated -/test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql linguist-generated /test/extractor-tests/generated/IfExpr/IfExpr.ql linguist-generated -/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql linguist-generated -/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql linguist-generated -/test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql linguist-generated /test/extractor-tests/generated/Impl/Impl.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getAttr.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getSelfTy.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getTrait.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Impl/Impl_getWhereClause.ql linguist-generated /test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql linguist-generated -/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql linguist-generated /test/extractor-tests/generated/IndexExpr/IndexExpr.ql linguist-generated -/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql linguist-generated -/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql linguist-generated /test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql linguist-generated /test/extractor-tests/generated/ItemList/ItemList.ql linguist-generated -/test/extractor-tests/generated/ItemList/ItemList_getAttr.ql linguist-generated -/test/extractor-tests/generated/ItemList/ItemList_getItem.ql linguist-generated /test/extractor-tests/generated/Label/Label.ql linguist-generated -/test/extractor-tests/generated/Label/Label_getLifetime.ql linguist-generated /test/extractor-tests/generated/LetElse/LetElse.ql linguist-generated -/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql linguist-generated /test/extractor-tests/generated/LetExpr/LetExpr.ql linguist-generated -/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql linguist-generated -/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql linguist-generated /test/extractor-tests/generated/LetStmt/LetStmt.ql linguist-generated -/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql linguist-generated -/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql linguist-generated -/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql linguist-generated -/test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql linguist-generated -/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/Lifetime/Lifetime.ql linguist-generated -/test/extractor-tests/generated/Lifetime/Lifetime_getText.ql linguist-generated /test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql linguist-generated -/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql linguist-generated /test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql linguist-generated -/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql linguist-generated -/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql linguist-generated -/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql linguist-generated /test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql linguist-generated -/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql linguist-generated /test/extractor-tests/generated/LiteralPat/LiteralPat.ql linguist-generated -/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql linguist-generated /test/extractor-tests/generated/LoopExpr/LoopExpr.ql linguist-generated -/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql linguist-generated -/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql linguist-generated /test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql linguist-generated -/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql linguist-generated -/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql linguist-generated /test/extractor-tests/generated/MacroCall/MacroCall.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql linguist-generated -/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MacroDef/MacroDef.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql linguist-generated -/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql linguist-generated /test/extractor-tests/generated/MacroExpr/MacroExpr.ql linguist-generated -/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql linguist-generated /test/extractor-tests/generated/MacroItems/MacroItems.ql linguist-generated -/test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql linguist-generated /test/extractor-tests/generated/MacroPat/MacroPat.ql linguist-generated -/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql linguist-generated /test/extractor-tests/generated/MacroRules/MacroRules.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql linguist-generated -/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql linguist-generated /test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql linguist-generated -/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql linguist-generated /test/extractor-tests/generated/MatchArm/MatchArm.ql linguist-generated -/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql linguist-generated -/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql linguist-generated -/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql linguist-generated -/test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql linguist-generated /test/extractor-tests/generated/MatchArmList/MatchArmList.ql linguist-generated -/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql linguist-generated -/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql linguist-generated /test/extractor-tests/generated/MatchExpr/MatchExpr.ql linguist-generated -/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql linguist-generated -/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql linguist-generated /test/extractor-tests/generated/MatchGuard/MatchGuard.ql linguist-generated -/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql linguist-generated /test/extractor-tests/generated/Meta/Meta.ql linguist-generated -/test/extractor-tests/generated/Meta/Meta_getExpr.ql linguist-generated -/test/extractor-tests/generated/Meta/Meta_getPath.ql linguist-generated -/test/extractor-tests/generated/Meta/Meta_getTokenTree.ql linguist-generated /test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql linguist-generated /test/extractor-tests/generated/Module/Module.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getAttr.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getItemList.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getName.ql linguist-generated -/test/extractor-tests/generated/Module/Module_getVisibility.ql linguist-generated /test/extractor-tests/generated/Name/Name.ql linguist-generated -/test/extractor-tests/generated/Name/Name_getText.ql linguist-generated /test/extractor-tests/generated/NameRef/NameRef.ql linguist-generated -/test/extractor-tests/generated/NameRef/NameRef_getText.ql linguist-generated /test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql linguist-generated /test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql linguist-generated -/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql linguist-generated -/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/OrPat/OrPat.ql linguist-generated -/test/extractor-tests/generated/OrPat/OrPat_getPat.ql linguist-generated /test/extractor-tests/generated/Param/Param.ql linguist-generated -/test/extractor-tests/generated/Param/Param_getAttr.ql linguist-generated -/test/extractor-tests/generated/Param/Param_getPat.ql linguist-generated -/test/extractor-tests/generated/Param/Param_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/ParamList/ParamList.ql linguist-generated -/test/extractor-tests/generated/ParamList/ParamList_getParam.ql linguist-generated -/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql linguist-generated /test/extractor-tests/generated/ParenExpr/ParenExpr.ql linguist-generated -/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/ParenPat/ParenPat.ql linguist-generated -/test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql linguist-generated /test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql linguist-generated -/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql linguist-generated -/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql linguist-generated /test/extractor-tests/generated/Path/Path.ql linguist-generated /test/extractor-tests/generated/Path/PathExpr.ql linguist-generated -/test/extractor-tests/generated/Path/PathExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/Path/PathExpr_getPath.ql linguist-generated -/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql linguist-generated /test/extractor-tests/generated/Path/PathPat.ql linguist-generated -/test/extractor-tests/generated/Path/PathPat_getPath.ql linguist-generated -/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql linguist-generated /test/extractor-tests/generated/Path/PathSegment.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getRetType.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql linguist-generated -/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/Path/PathTypeRepr.ql linguist-generated -/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql linguist-generated -/test/extractor-tests/generated/Path/Path_getQualifier.ql linguist-generated -/test/extractor-tests/generated/Path/Path_getSegment.ql linguist-generated /test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql linguist-generated -/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql linguist-generated -/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql linguist-generated /test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql linguist-generated -/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/RangeExpr/RangeExpr.ql linguist-generated -/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql linguist-generated -/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql linguist-generated -/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql linguist-generated /test/extractor-tests/generated/RangePat/RangePat.ql linguist-generated -/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql linguist-generated -/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql linguist-generated -/test/extractor-tests/generated/RangePat/RangePat_getStart.ql linguist-generated /test/extractor-tests/generated/RefExpr/RefExpr.ql linguist-generated -/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/RefPat/RefPat.ql linguist-generated -/test/extractor-tests/generated/RefPat/RefPat_getPat.ql linguist-generated /test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql linguist-generated -/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql linguist-generated -/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/Rename/Rename.ql linguist-generated -/test/extractor-tests/generated/Rename/Rename_getName.ql linguist-generated /test/extractor-tests/generated/RestPat/RestPat.ql linguist-generated -/test/extractor-tests/generated/RestPat/RestPat_getAttr.ql linguist-generated /test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql linguist-generated -/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql linguist-generated -/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql linguist-generated /test/extractor-tests/generated/SelfParam/SelfParam.ql linguist-generated -/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql linguist-generated -/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql linguist-generated -/test/extractor-tests/generated/SelfParam/SelfParam_getName.ql linguist-generated -/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/SlicePat/SlicePat.ql linguist-generated -/test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql linguist-generated /test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql linguist-generated -/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/SourceFile/SourceFile.ql linguist-generated -/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql linguist-generated -/test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql linguist-generated /test/extractor-tests/generated/Static/Static.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getAttr.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getBody.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getName.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/Static/Static_getVisibility.ql linguist-generated /test/extractor-tests/generated/StmtList/StmtList.ql linguist-generated -/test/extractor-tests/generated/StmtList/StmtList_getAttr.ql linguist-generated -/test/extractor-tests/generated/StmtList/StmtList_getStatement.ql linguist-generated -/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql linguist-generated /test/extractor-tests/generated/Struct/Struct.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getAttr.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getFieldList.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getName.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Struct/Struct_getWhereClause.ql linguist-generated /test/extractor-tests/generated/StructExpr/StructExpr.ql linguist-generated -/test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql linguist-generated -/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql linguist-generated -/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql linguist-generated /test/extractor-tests/generated/StructExprField/StructExprField.ql linguist-generated -/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql linguist-generated -/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql linguist-generated -/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql linguist-generated /test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql linguist-generated -/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql linguist-generated -/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql linguist-generated -/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql linguist-generated /test/extractor-tests/generated/StructField/StructField.ql linguist-generated -/test/extractor-tests/generated/StructField/StructField_getAttr.ql linguist-generated -/test/extractor-tests/generated/StructField/StructField_getDefault.ql linguist-generated -/test/extractor-tests/generated/StructField/StructField_getName.ql linguist-generated -/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/StructField/StructField_getVisibility.ql linguist-generated /test/extractor-tests/generated/StructFieldList/StructFieldList.ql linguist-generated -/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql linguist-generated /test/extractor-tests/generated/StructPat/StructPat.ql linguist-generated -/test/extractor-tests/generated/StructPat/StructPat_getPath.ql linguist-generated -/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql linguist-generated -/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql linguist-generated /test/extractor-tests/generated/StructPatField/StructPatField.ql linguist-generated -/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql linguist-generated -/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql linguist-generated -/test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql linguist-generated /test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql linguist-generated -/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql linguist-generated -/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql linguist-generated /test/extractor-tests/generated/TokenTree/TokenTree.ql linguist-generated /test/extractor-tests/generated/Trait/AssocItemList.ql linguist-generated -/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql linguist-generated -/test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql linguist-generated /test/extractor-tests/generated/Trait/Trait.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getAttr.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getName.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql linguist-generated /test/extractor-tests/generated/TraitAlias/TraitAlias.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql linguist-generated -/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql linguist-generated /test/extractor-tests/generated/TryExpr/TryExpr.ql linguist-generated -/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/TupleExpr/TupleExpr.ql linguist-generated -/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql linguist-generated /test/extractor-tests/generated/TupleField/TupleField.ql linguist-generated -/test/extractor-tests/generated/TupleField/TupleField_getAttr.ql linguist-generated -/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql linguist-generated /test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql linguist-generated -/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql linguist-generated /test/extractor-tests/generated/TuplePat/TuplePat.ql linguist-generated -/test/extractor-tests/generated/TuplePat/TuplePat_getField.ql linguist-generated /test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql linguist-generated -/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql linguist-generated -/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql linguist-generated -/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql linguist-generated /test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql linguist-generated -/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql linguist-generated /test/extractor-tests/generated/TypeAlias/TypeAlias.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql linguist-generated -/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql linguist-generated /test/extractor-tests/generated/TypeArg/TypeArg.ql linguist-generated -/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/TypeBound/TypeBound.ql linguist-generated -/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql linguist-generated -/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql linguist-generated -/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql linguist-generated /test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql linguist-generated -/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql linguist-generated /test/extractor-tests/generated/TypeParam/TypeParam.ql linguist-generated -/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql linguist-generated -/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql linguist-generated -/test/extractor-tests/generated/TypeParam/TypeParam_getName.ql linguist-generated -/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql linguist-generated /test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql linguist-generated -/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql linguist-generated /test/extractor-tests/generated/Union/Union.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getAttr.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getName.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getStructFieldList.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getVisibility.ql linguist-generated -/test/extractor-tests/generated/Union/Union_getWhereClause.ql linguist-generated /test/extractor-tests/generated/Use/Use.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getAttr.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getUseTree.ql linguist-generated -/test/extractor-tests/generated/Use/Use_getVisibility.ql linguist-generated /test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql linguist-generated -/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql linguist-generated /test/extractor-tests/generated/UseTree/UseTree.ql linguist-generated -/test/extractor-tests/generated/UseTree/UseTree_getPath.ql linguist-generated -/test/extractor-tests/generated/UseTree/UseTree_getRename.ql linguist-generated -/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql linguist-generated /test/extractor-tests/generated/UseTreeList/UseTreeList.ql linguist-generated -/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql linguist-generated /test/extractor-tests/generated/Variant/Variant.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getAttr.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getFieldList.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getName.ql linguist-generated -/test/extractor-tests/generated/Variant/Variant_getVisibility.ql linguist-generated /test/extractor-tests/generated/VariantList/VariantList.ql linguist-generated -/test/extractor-tests/generated/VariantList/VariantList_getVariant.ql linguist-generated /test/extractor-tests/generated/Visibility/Visibility.ql linguist-generated -/test/extractor-tests/generated/Visibility/Visibility_getPath.ql linguist-generated /test/extractor-tests/generated/WhereClause/WhereClause.ql linguist-generated -/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql linguist-generated /test/extractor-tests/generated/WherePred/WherePred.ql linguist-generated -/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql linguist-generated -/test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql linguist-generated -/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql linguist-generated -/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql linguist-generated /test/extractor-tests/generated/WhileExpr/WhileExpr.ql linguist-generated -/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql linguist-generated -/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql linguist-generated -/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql linguist-generated /test/extractor-tests/generated/WildcardPat/WildcardPat.ql linguist-generated /test/extractor-tests/generated/YeetExpr/YeetExpr.ql linguist-generated -/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql linguist-generated /test/extractor-tests/generated/YieldExpr/YieldExpr.ql linguist-generated -/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql linguist-generated -/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql linguist-generated diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi.expected b/rust/ql/test/extractor-tests/generated/Abi/Abi.expected index 1184fc0e374..9a92f0924dd 100644 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi.expected +++ b/rust/ql/test/extractor-tests/generated/Abi/Abi.expected @@ -1 +1,4 @@ +instances | gen_abi.rs:7:5:7:14 | Abi | hasAbiString: | yes | +getAbiString +| gen_abi.rs:7:5:7:14 | Abi | "C" | diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi.ql b/rust/ql/test/extractor-tests/generated/Abi/Abi.ql index 3c0fd40eaeb..5b39b23704b 100644 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi.ql +++ b/rust/ql/test/extractor-tests/generated/Abi/Abi.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Abi x, string hasAbiString -where +query predicate instances(Abi x, string hasAbiString__label, string hasAbiString) { toBeTested(x) and not x.isUnknown() and + hasAbiString__label = "hasAbiString:" and if x.hasAbiString() then hasAbiString = "yes" else hasAbiString = "no" -select x, "hasAbiString:", hasAbiString +} + +query predicate getAbiString(Abi x, string getAbiString) { + toBeTested(x) and not x.isUnknown() and getAbiString = x.getAbiString() +} diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.expected b/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.expected deleted file mode 100644 index 278aa2d8325..00000000000 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_abi.rs:7:5:7:14 | Abi | "C" | diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.ql b/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.ql deleted file mode 100644 index 77104019b32..00000000000 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi_getAbiString.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Abi x -where toBeTested(x) and not x.isUnknown() -select x, x.getAbiString() diff --git a/rust/ql/test/extractor-tests/generated/Abi/Cargo.lock b/rust/ql/test/extractor-tests/generated/Abi/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Abi/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected index 86eca9460ef..8b04d7ad717 100644 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected +++ b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected @@ -1 +1,6 @@ +instances | gen_arg_list.rs:7:8:7:16 | ArgList | getNumberOfArgs: | 3 | +getArg +| gen_arg_list.rs:7:8:7:16 | ArgList | 0 | gen_arg_list.rs:7:9:7:9 | 1 | +| gen_arg_list.rs:7:8:7:16 | ArgList | 1 | gen_arg_list.rs:7:12:7:12 | 2 | +| gen_arg_list.rs:7:8:7:16 | ArgList | 2 | gen_arg_list.rs:7:15:7:15 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql index 0e8c23922b5..82b819a3305 100644 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql +++ b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from ArgList x, int getNumberOfArgs -where +query predicate instances(ArgList x, string getNumberOfArgs__label, int getNumberOfArgs) { toBeTested(x) and not x.isUnknown() and + getNumberOfArgs__label = "getNumberOfArgs:" and getNumberOfArgs = x.getNumberOfArgs() -select x, "getNumberOfArgs:", getNumberOfArgs +} + +query predicate getArg(ArgList x, int index, Expr getArg) { + toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.expected b/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.expected deleted file mode 100644 index 2cfb771d6cb..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_arg_list.rs:7:8:7:16 | ArgList | 0 | gen_arg_list.rs:7:9:7:9 | 1 | -| gen_arg_list.rs:7:8:7:16 | ArgList | 1 | gen_arg_list.rs:7:12:7:12 | 2 | -| gen_arg_list.rs:7:8:7:16 | ArgList | 2 | gen_arg_list.rs:7:15:7:15 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.ql b/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.ql deleted file mode 100644 index 253d13f2b56..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArgList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/ArgList/Cargo.lock b/rust/ql/test/extractor-tests/generated/ArgList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ArgList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected index 31fd8036aad..28e164ab0d9 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected @@ -1 +1,7 @@ +instances | gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 | getNumberOfAttrs: | 0 | +getExpr +| gen_array_list_expr.rs:5:5:5:13 | [...] | 0 | gen_array_list_expr.rs:5:6:5:6 | 1 | +| gen_array_list_expr.rs:5:5:5:13 | [...] | 1 | gen_array_list_expr.rs:5:9:5:9 | 2 | +| gen_array_list_expr.rs:5:5:5:13 | [...] | 2 | gen_array_list_expr.rs:5:12:5:12 | 3 | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql index 72f74d5ce34..30e5dd7b631 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ArrayListExpr x, int getNumberOfExprs, int getNumberOfAttrs -where +query predicate instances( + ArrayListExpr x, string getNumberOfExprs__label, int getNumberOfExprs, + string getNumberOfAttrs__label, int getNumberOfAttrs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfExprs__label = "getNumberOfExprs:" and getNumberOfExprs = x.getNumberOfExprs() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "getNumberOfExprs:", getNumberOfExprs, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getExpr(ArrayListExpr x, int index, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr(index) +} + +query predicate getAttr(ArrayListExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql deleted file mode 100644 index 10a9b3d52b3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayListExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.expected deleted file mode 100644 index ac836b145bd..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_array_list_expr.rs:5:5:5:13 | [...] | 0 | gen_array_list_expr.rs:5:6:5:6 | 1 | -| gen_array_list_expr.rs:5:5:5:13 | [...] | 1 | gen_array_list_expr.rs:5:9:5:9 | 2 | -| gen_array_list_expr.rs:5:5:5:13 | [...] | 2 | gen_array_list_expr.rs:5:12:5:12 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql deleted file mode 100644 index 96d635c3c17..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayListExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getExpr(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ArrayListExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ArrayListExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected index e19394137d9..bf13b122edc 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected @@ -1 +1,6 @@ +instances | gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getNumberOfExprs: | 2 | getNumberOfAttrs: | 0 | getRepeatOperand: | gen_array_repeat_expr.rs:5:6:5:6 | 1 | getRepeatLength: | gen_array_repeat_expr.rs:5:9:5:10 | 10 | +getExpr +| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 0 | gen_array_repeat_expr.rs:5:6:5:6 | 1 | +| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 1 | gen_array_repeat_expr.rs:5:9:5:10 | 10 | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql index cda59a0d638..ab822b84c41 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql @@ -2,15 +2,27 @@ import codeql.rust.elements import TestUtils -from - ArrayRepeatExpr x, int getNumberOfExprs, int getNumberOfAttrs, Expr getRepeatOperand, - Expr getRepeatLength -where +query predicate instances( + ArrayRepeatExpr x, string getNumberOfExprs__label, int getNumberOfExprs, + string getNumberOfAttrs__label, int getNumberOfAttrs, string getRepeatOperand__label, + Expr getRepeatOperand, string getRepeatLength__label, Expr getRepeatLength +) { toBeTested(x) and not x.isUnknown() and + getNumberOfExprs__label = "getNumberOfExprs:" and getNumberOfExprs = x.getNumberOfExprs() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getRepeatOperand__label = "getRepeatOperand:" and getRepeatOperand = x.getRepeatOperand() and + getRepeatLength__label = "getRepeatLength:" and getRepeatLength = x.getRepeatLength() -select x, "getNumberOfExprs:", getNumberOfExprs, "getNumberOfAttrs:", getNumberOfAttrs, - "getRepeatOperand:", getRepeatOperand, "getRepeatLength:", getRepeatLength +} + +query predicate getExpr(ArrayRepeatExpr x, int index, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr(index) +} + +query predicate getAttr(ArrayRepeatExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql deleted file mode 100644 index 30c64104eee..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayRepeatExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.expected deleted file mode 100644 index ccf6290172e..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 0 | gen_array_repeat_expr.rs:5:6:5:6 | 1 | -| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 1 | gen_array_repeat_expr.rs:5:9:5:10 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql deleted file mode 100644 index 63352ff7776..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayRepeatExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getExpr(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected index b19154aca0b..42cc87636b6 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected @@ -1 +1,6 @@ +instances | gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | hasConstArg: | yes | hasElementTypeRepr: | yes | +getConstArg +| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | gen_array_type_repr.rs:7:20:7:20 | ConstArg | +getElementTypeRepr +| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | gen_array_type_repr.rs:7:15:7:17 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql index 5ec3d499add..3bc2a65f431 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ArrayTypeRepr x, string hasConstArg, string hasElementTypeRepr -where +query predicate instances( + ArrayTypeRepr x, string hasConstArg__label, string hasConstArg, string hasElementTypeRepr__label, + string hasElementTypeRepr +) { toBeTested(x) and not x.isUnknown() and + hasConstArg__label = "hasConstArg:" and (if x.hasConstArg() then hasConstArg = "yes" else hasConstArg = "no") and + hasElementTypeRepr__label = "hasElementTypeRepr:" and if x.hasElementTypeRepr() then hasElementTypeRepr = "yes" else hasElementTypeRepr = "no" -select x, "hasConstArg:", hasConstArg, "hasElementTypeRepr:", hasElementTypeRepr +} + +query predicate getConstArg(ArrayTypeRepr x, ConstArg getConstArg) { + toBeTested(x) and not x.isUnknown() and getConstArg = x.getConstArg() +} + +query predicate getElementTypeRepr(ArrayTypeRepr x, TypeRepr getElementTypeRepr) { + toBeTested(x) and not x.isUnknown() and getElementTypeRepr = x.getElementTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.expected b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.expected deleted file mode 100644 index 9ab029133f6..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | gen_array_type_repr.rs:7:20:7:20 | ConstArg | diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql deleted file mode 100644 index f89dc93f5b8..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getConstArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getConstArg() diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.expected deleted file mode 100644 index 86b22f2f39d..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | gen_array_type_repr.rs:7:15:7:17 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql deleted file mode 100644 index f343cbd19c9..00000000000 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr_getElementTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ArrayTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getElementTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql b/rust/ql/test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql index 087663779db..65680442dfb 100644 --- a/rust/ql/test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql +++ b/rust/ql/test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from AsmClobberAbi x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(AsmClobberAbi x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/AsmClobberAbi/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmClobberAbi/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmClobberAbi/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected index 5a82c38127c..40e656f638e 100644 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected +++ b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected @@ -1 +1,4 @@ +instances | gen_asm_const.rs:8:30:8:37 | AsmConst | hasExpr: | yes | isConst: | yes | +getExpr +| gen_asm_const.rs:8:30:8:37 | AsmConst | gen_asm_const.rs:8:36:8:37 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql index 151d7a70fa2..01a77897fde 100644 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql +++ b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql @@ -2,10 +2,17 @@ import codeql.rust.elements import TestUtils -from AsmConst x, string hasExpr, string isConst -where +query predicate instances( + AsmConst x, string hasExpr__label, string hasExpr, string isConst__label, string isConst +) { toBeTested(x) and not x.isUnknown() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + isConst__label = "isConst:" and if x.isConst() then isConst = "yes" else isConst = "no" -select x, "hasExpr:", hasExpr, "isConst:", isConst +} + +query predicate getExpr(AsmConst x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.expected b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.expected deleted file mode 100644 index f1bb1ffc053..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_const.rs:8:30:8:37 | AsmConst | gen_asm_const.rs:8:36:8:37 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql deleted file mode 100644 index e01d9d86fbe..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmConst x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmConst/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmConst/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql b/rust/ql/test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql index 0d009492422..2507d0e2081 100644 --- a/rust/ql/test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql +++ b/rust/ql/test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from AsmDirSpec x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(AsmDirSpec x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/AsmDirSpec/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmDirSpec/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmDirSpec/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected index 3a039fe43fe..444113fa963 100644 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected @@ -1 +1,9 @@ +instances | gen_asm_expr.rs:6:9:7:59 | AsmExpr | getNumberOfAsmPieces: | 2 | getNumberOfAttrs: | 1 | getNumberOfTemplates: | 1 | +getAsmPiece +| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:7:39:7:47 | AsmOperandNamed | +| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 1 | gen_asm_expr.rs:7:50:7:58 | AsmOperandNamed | +getAttr +| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:6:9:6:25 | Attr | +getTemplate +| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:7:23:7:36 | "cmp {0}, {1}" | diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql index 1658328f7b6..3c7748a5058 100644 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql @@ -2,12 +2,29 @@ import codeql.rust.elements import TestUtils -from AsmExpr x, int getNumberOfAsmPieces, int getNumberOfAttrs, int getNumberOfTemplates -where +query predicate instances( + AsmExpr x, string getNumberOfAsmPieces__label, int getNumberOfAsmPieces, + string getNumberOfAttrs__label, int getNumberOfAttrs, string getNumberOfTemplates__label, + int getNumberOfTemplates +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAsmPieces__label = "getNumberOfAsmPieces:" and getNumberOfAsmPieces = x.getNumberOfAsmPieces() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfTemplates__label = "getNumberOfTemplates:" and getNumberOfTemplates = x.getNumberOfTemplates() -select x, "getNumberOfAsmPieces:", getNumberOfAsmPieces, "getNumberOfAttrs:", getNumberOfAttrs, - "getNumberOfTemplates:", getNumberOfTemplates +} + +query predicate getAsmPiece(AsmExpr x, int index, AsmPiece getAsmPiece) { + toBeTested(x) and not x.isUnknown() and getAsmPiece = x.getAsmPiece(index) +} + +query predicate getAttr(AsmExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTemplate(AsmExpr x, int index, Expr getTemplate) { + toBeTested(x) and not x.isUnknown() and getTemplate = x.getTemplate(index) +} diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.expected deleted file mode 100644 index 449113ff8fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:7:39:7:47 | AsmOperandNamed | -| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 1 | gen_asm_expr.rs:7:50:7:58 | AsmOperandNamed | diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql deleted file mode 100644 index a29ac3d4889..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAsmPiece.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAsmPiece(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.expected deleted file mode 100644 index 1e857299755..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:6:9:6:25 | Attr | diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql deleted file mode 100644 index 4455caf1aa5..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.expected deleted file mode 100644 index fa3414743e9..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:7:23:7:36 | "cmp {0}, {1}" | diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql deleted file mode 100644 index 71e98db67db..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr_getTemplate.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getTemplate(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected index e77dfa46a42..75bc10f415e 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected @@ -1 +1,4 @@ +instances | gen_asm_label.rs:10:9:10:47 | AsmLabel | hasBlockExpr: | yes | +getBlockExpr +| gen_asm_label.rs:10:9:10:47 | AsmLabel | gen_asm_label.rs:10:15:10:47 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql index fd81bc1820a..80f265240b3 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from AsmLabel x, string hasBlockExpr -where +query predicate instances(AsmLabel x, string hasBlockExpr__label, string hasBlockExpr) { toBeTested(x) and not x.isUnknown() and + hasBlockExpr__label = "hasBlockExpr:" and if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no" -select x, "hasBlockExpr:", hasBlockExpr +} + +query predicate getBlockExpr(AsmLabel x, BlockExpr getBlockExpr) { + toBeTested(x) and not x.isUnknown() and getBlockExpr = x.getBlockExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected deleted file mode 100644 index 8f99b753a28..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_label.rs:10:9:10:47 | AsmLabel | gen_asm_label.rs:10:15:10:47 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql deleted file mode 100644 index 910efd74be1..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel_getBlockExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmLabel x -where toBeTested(x) and not x.isUnknown() -select x, x.getBlockExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmLabel/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected index f7101833911..7874d02d91d 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected @@ -1,2 +1,9 @@ +instances | gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | hasInExpr: | yes | hasOutExpr: | yes | | gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | hasInExpr: | yes | hasOutExpr: | yes | +getInExpr +| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | gen_asm_operand_expr.rs:8:35:8:35 | x | +| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | gen_asm_operand_expr.rs:8:46:8:46 | y | +getOutExpr +| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | gen_asm_operand_expr.rs:8:35:8:35 | x | +| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | gen_asm_operand_expr.rs:8:46:8:46 | y | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql index b7ccc0b5722..ee316dd283f 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from AsmOperandExpr x, string hasInExpr, string hasOutExpr -where +query predicate instances( + AsmOperandExpr x, string hasInExpr__label, string hasInExpr, string hasOutExpr__label, + string hasOutExpr +) { toBeTested(x) and not x.isUnknown() and + hasInExpr__label = "hasInExpr:" and (if x.hasInExpr() then hasInExpr = "yes" else hasInExpr = "no") and + hasOutExpr__label = "hasOutExpr:" and if x.hasOutExpr() then hasOutExpr = "yes" else hasOutExpr = "no" -select x, "hasInExpr:", hasInExpr, "hasOutExpr:", hasOutExpr +} + +query predicate getInExpr(AsmOperandExpr x, Expr getInExpr) { + toBeTested(x) and not x.isUnknown() and getInExpr = x.getInExpr() +} + +query predicate getOutExpr(AsmOperandExpr x, Expr getOutExpr) { + toBeTested(x) and not x.isUnknown() and getOutExpr = x.getOutExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.expected b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.expected deleted file mode 100644 index 642838b0ef3..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | gen_asm_operand_expr.rs:8:35:8:35 | x | -| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | gen_asm_operand_expr.rs:8:46:8:46 | y | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql deleted file mode 100644 index 95aec8cc53d..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getInExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmOperandExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getInExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.expected b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.expected deleted file mode 100644 index 642838b0ef3..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | gen_asm_operand_expr.rs:8:35:8:35 | x | -| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | gen_asm_operand_expr.rs:8:46:8:46 | y | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql deleted file mode 100644 index a137533938a..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr_getOutExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmOperandExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getOutExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected index 4f8c21cb7ef..0401b9208bb 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected @@ -1,2 +1,8 @@ +instances | gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | hasAsmOperand: | yes | hasName: | no | | gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | hasAsmOperand: | yes | hasName: | yes | +getAsmOperand +| gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | gen_asm_operand_named.rs:8:34:8:43 | AsmRegOperand | +| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | gen_asm_operand_named.rs:8:54:8:62 | AsmRegOperand | +getName +| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | gen_asm_operand_named.rs:8:46:8:50 | input | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql index 7cb204f6b9e..d47556b27e8 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from AsmOperandNamed x, string hasAsmOperand, string hasName -where +query predicate instances( + AsmOperandNamed x, string hasAsmOperand__label, string hasAsmOperand, string hasName__label, + string hasName +) { toBeTested(x) and not x.isUnknown() and + hasAsmOperand__label = "hasAsmOperand:" and (if x.hasAsmOperand() then hasAsmOperand = "yes" else hasAsmOperand = "no") and + hasName__label = "hasName:" and if x.hasName() then hasName = "yes" else hasName = "no" -select x, "hasAsmOperand:", hasAsmOperand, "hasName:", hasName +} + +query predicate getAsmOperand(AsmOperandNamed x, AsmOperand getAsmOperand) { + toBeTested(x) and not x.isUnknown() and getAsmOperand = x.getAsmOperand() +} + +query predicate getName(AsmOperandNamed x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.expected b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.expected deleted file mode 100644 index 8e008a44f8a..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | gen_asm_operand_named.rs:8:34:8:43 | AsmRegOperand | -| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | gen_asm_operand_named.rs:8:54:8:62 | AsmRegOperand | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql deleted file mode 100644 index c3cd36b2ac5..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getAsmOperand.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmOperandNamed x -where toBeTested(x) and not x.isUnknown() -select x, x.getAsmOperand() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.expected b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.expected deleted file mode 100644 index aad90d4b5e8..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | gen_asm_operand_named.rs:8:46:8:50 | input | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql deleted file mode 100644 index a8b856ffaa8..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmOperandNamed x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmOption/AsmOption.ql b/rust/ql/test/extractor-tests/generated/AsmOption/AsmOption.ql index c9e3997ed42..3247f52ea36 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOption/AsmOption.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOption/AsmOption.ql @@ -2,9 +2,9 @@ import codeql.rust.elements import TestUtils -from AsmOption x, string isRaw -where +query predicate instances(AsmOption x, string isRaw__label, string isRaw) { toBeTested(x) and not x.isUnknown() and + isRaw__label = "isRaw:" and if x.isRaw() then isRaw = "yes" else isRaw = "no" -select x, "isRaw:", isRaw +} diff --git a/rust/ql/test/extractor-tests/generated/AsmOption/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmOption/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmOption/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected index 692d66164f8..35242695ee1 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected @@ -1 +1,5 @@ +instances | gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | getNumberOfAsmOptions: | 2 | +getAsmOption +| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 0 | gen_asm_options_list.rs:8:22:8:28 | AsmOption | +| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 1 | gen_asm_options_list.rs:8:31:8:35 | AsmOption | diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql index 77790bb8506..f4b36d1a97c 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from AsmOptionsList x, int getNumberOfAsmOptions -where +query predicate instances( + AsmOptionsList x, string getNumberOfAsmOptions__label, int getNumberOfAsmOptions +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAsmOptions__label = "getNumberOfAsmOptions:" and getNumberOfAsmOptions = x.getNumberOfAsmOptions() -select x, "getNumberOfAsmOptions:", getNumberOfAsmOptions +} + +query predicate getAsmOption(AsmOptionsList x, int index, AsmOption getAsmOption) { + toBeTested(x) and not x.isUnknown() and getAsmOption = x.getAsmOption(index) +} diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.expected b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.expected deleted file mode 100644 index f159de9080e..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 0 | gen_asm_options_list.rs:8:22:8:28 | AsmOption | -| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 1 | gen_asm_options_list.rs:8:31:8:35 | AsmOption | diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql deleted file mode 100644 index 06f2ba54b6e..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList_getAsmOption.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmOptionsList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAsmOption(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmOptionsList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmOptionsList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected index c9eca662143..10c0e5fbc8d 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected +++ b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected @@ -1,2 +1,12 @@ +instances | gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | hasAsmDirSpec: | yes | hasAsmOperandExpr: | yes | hasAsmRegSpec: | yes | | gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | hasAsmDirSpec: | yes | hasAsmOperandExpr: | yes | hasAsmRegSpec: | yes | +getAsmDirSpec +| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:26:8:28 | AsmDirSpec | +| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:38:8:39 | AsmDirSpec | +getAsmOperandExpr +| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:35:8:35 | AsmOperandExpr | +| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:46:8:46 | AsmOperandExpr | +getAsmRegSpec +| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:30:8:32 | AsmRegSpec | +| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:41:8:43 | AsmRegSpec | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql index 05685f3d994..64105ef2d77 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql +++ b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql @@ -2,12 +2,29 @@ import codeql.rust.elements import TestUtils -from AsmRegOperand x, string hasAsmDirSpec, string hasAsmOperandExpr, string hasAsmRegSpec -where +query predicate instances( + AsmRegOperand x, string hasAsmDirSpec__label, string hasAsmDirSpec, + string hasAsmOperandExpr__label, string hasAsmOperandExpr, string hasAsmRegSpec__label, + string hasAsmRegSpec +) { toBeTested(x) and not x.isUnknown() and + hasAsmDirSpec__label = "hasAsmDirSpec:" and (if x.hasAsmDirSpec() then hasAsmDirSpec = "yes" else hasAsmDirSpec = "no") and + hasAsmOperandExpr__label = "hasAsmOperandExpr:" and (if x.hasAsmOperandExpr() then hasAsmOperandExpr = "yes" else hasAsmOperandExpr = "no") and + hasAsmRegSpec__label = "hasAsmRegSpec:" and if x.hasAsmRegSpec() then hasAsmRegSpec = "yes" else hasAsmRegSpec = "no" -select x, "hasAsmDirSpec:", hasAsmDirSpec, "hasAsmOperandExpr:", hasAsmOperandExpr, - "hasAsmRegSpec:", hasAsmRegSpec +} + +query predicate getAsmDirSpec(AsmRegOperand x, AsmDirSpec getAsmDirSpec) { + toBeTested(x) and not x.isUnknown() and getAsmDirSpec = x.getAsmDirSpec() +} + +query predicate getAsmOperandExpr(AsmRegOperand x, AsmOperandExpr getAsmOperandExpr) { + toBeTested(x) and not x.isUnknown() and getAsmOperandExpr = x.getAsmOperandExpr() +} + +query predicate getAsmRegSpec(AsmRegOperand x, AsmRegSpec getAsmRegSpec) { + toBeTested(x) and not x.isUnknown() and getAsmRegSpec = x.getAsmRegSpec() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.expected b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.expected deleted file mode 100644 index e47c650ada0..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:26:8:28 | AsmDirSpec | -| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:38:8:39 | AsmDirSpec | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql deleted file mode 100644 index 5542617aea6..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmDirSpec.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmRegOperand x -where toBeTested(x) and not x.isUnknown() -select x, x.getAsmDirSpec() diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.expected b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.expected deleted file mode 100644 index c43a8ca1443..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:35:8:35 | AsmOperandExpr | -| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:46:8:46 | AsmOperandExpr | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql deleted file mode 100644 index bcda631ef9d..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmOperandExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmRegOperand x -where toBeTested(x) and not x.isUnknown() -select x, x.getAsmOperandExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.expected b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.expected deleted file mode 100644 index b1da1a4d1d4..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:30:8:32 | AsmRegSpec | -| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:41:8:43 | AsmRegSpec | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql deleted file mode 100644 index aaf03f13212..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand_getAsmRegSpec.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmRegOperand x -where toBeTested(x) and not x.isUnknown() -select x, x.getAsmRegSpec() diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmRegOperand/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmRegOperand/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected index 0ecd2dfbdf8..ed7ef775969 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected +++ b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected @@ -1,2 +1,5 @@ +instances | gen_asm_reg_spec.rs:8:30:8:34 | AsmRegSpec | hasIdentifier: | no | | gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | hasIdentifier: | yes | +getIdentifier +| gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | gen_asm_reg_spec.rs:8:43:8:45 | EBX | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql index 5fce70e50f9..dfa5dad3e23 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql +++ b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from AsmRegSpec x, string hasIdentifier -where +query predicate instances(AsmRegSpec x, string hasIdentifier__label, string hasIdentifier) { toBeTested(x) and not x.isUnknown() and + hasIdentifier__label = "hasIdentifier:" and if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -select x, "hasIdentifier:", hasIdentifier +} + +query predicate getIdentifier(AsmRegSpec x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.expected deleted file mode 100644 index d40d67cb6a7..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | gen_asm_reg_spec.rs:8:43:8:45 | EBX | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql deleted file mode 100644 index 3fe54bd3697..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmRegSpec x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmRegSpec/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmRegSpec/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected index 664c70d06ba..3644a5399a2 100644 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected +++ b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected @@ -1 +1,4 @@ +instances | gen_asm_sym.rs:8:30:8:44 | AsmSym | hasPath: | yes | +getPath +| gen_asm_sym.rs:8:30:8:44 | AsmSym | gen_asm_sym.rs:8:34:8:44 | my_function | diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql index e7841f07f68..d138bd6b7aa 100644 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql +++ b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from AsmSym x, string hasPath -where +query predicate instances(AsmSym x, string hasPath__label, string hasPath) { toBeTested(x) and not x.isUnknown() and + hasPath__label = "hasPath:" and if x.hasPath() then hasPath = "yes" else hasPath = "no" -select x, "hasPath:", hasPath +} + +query predicate getPath(AsmSym x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.expected b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.expected deleted file mode 100644 index 0bcf012c475..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_asm_sym.rs:8:30:8:44 | AsmSym | gen_asm_sym.rs:8:34:8:44 | my_function | diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql deleted file mode 100644 index b753181e728..00000000000 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AsmSym x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/Cargo.lock b/rust/ql/test/extractor-tests/generated/AsmSym/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AsmSym/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected index 2c62ef6594b..c7c15f5b58b 100644 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected +++ b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected @@ -1 +1,12 @@ +instances | gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | hasConstArg: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasParamList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTypeBoundList: | yes | +getConstArg +getGenericArgList +getIdentifier +| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | gen_assoc_type_arg.rs:9:21:9:24 | Item | +getParamList +getRetType +getReturnTypeSyntax +getTypeRepr +getTypeBoundList +| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | gen_assoc_type_arg.rs:9:27:9:31 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql index 52095924f85..7555e6b2b2a 100644 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql +++ b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql @@ -2,21 +2,61 @@ import codeql.rust.elements import TestUtils -from - AssocTypeArg x, string hasConstArg, string hasGenericArgList, string hasIdentifier, - string hasParamList, string hasRetType, string hasReturnTypeSyntax, string hasTypeRepr, - string hasTypeBoundList -where +query predicate instances( + AssocTypeArg x, string hasConstArg__label, string hasConstArg, string hasGenericArgList__label, + string hasGenericArgList, string hasIdentifier__label, string hasIdentifier, + string hasParamList__label, string hasParamList, string hasRetType__label, string hasRetType, + string hasReturnTypeSyntax__label, string hasReturnTypeSyntax, string hasTypeRepr__label, + string hasTypeRepr, string hasTypeBoundList__label, string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + hasConstArg__label = "hasConstArg:" and (if x.hasConstArg() then hasConstArg = "yes" else hasConstArg = "no") and + hasGenericArgList__label = "hasGenericArgList:" and (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and + hasIdentifier__label = "hasIdentifier:" and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and + hasParamList__label = "hasParamList:" and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and + hasRetType__label = "hasRetType:" and (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and + hasReturnTypeSyntax__label = "hasReturnTypeSyntax:" and (if x.hasReturnTypeSyntax() then hasReturnTypeSyntax = "yes" else hasReturnTypeSyntax = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "hasConstArg:", hasConstArg, "hasGenericArgList:", hasGenericArgList, "hasIdentifier:", - hasIdentifier, "hasParamList:", hasParamList, "hasRetType:", hasRetType, "hasReturnTypeSyntax:", - hasReturnTypeSyntax, "hasTypeRepr:", hasTypeRepr, "hasTypeBoundList:", hasTypeBoundList +} + +query predicate getConstArg(AssocTypeArg x, ConstArg getConstArg) { + toBeTested(x) and not x.isUnknown() and getConstArg = x.getConstArg() +} + +query predicate getGenericArgList(AssocTypeArg x, GenericArgList getGenericArgList) { + toBeTested(x) and not x.isUnknown() and getGenericArgList = x.getGenericArgList() +} + +query predicate getIdentifier(AssocTypeArg x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} + +query predicate getParamList(AssocTypeArg x, ParamList getParamList) { + toBeTested(x) and not x.isUnknown() and getParamList = x.getParamList() +} + +query predicate getRetType(AssocTypeArg x, RetTypeRepr getRetType) { + toBeTested(x) and not x.isUnknown() and getRetType = x.getRetType() +} + +query predicate getReturnTypeSyntax(AssocTypeArg x, ReturnTypeSyntax getReturnTypeSyntax) { + toBeTested(x) and not x.isUnknown() and getReturnTypeSyntax = x.getReturnTypeSyntax() +} + +query predicate getTypeRepr(AssocTypeArg x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getTypeBoundList(AssocTypeArg x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql deleted file mode 100644 index 6619858dfe3..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getConstArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getConstArg() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql deleted file mode 100644 index 09c1924f693..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getGenericArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericArgList() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.expected deleted file mode 100644 index 901ebce3a55..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | gen_assoc_type_arg.rs:9:21:9:24 | Item | diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql deleted file mode 100644 index ce4016622d4..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql deleted file mode 100644 index e745669c52d..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getParamList() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql deleted file mode 100644 index 413b05df0d4..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getRetType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getRetType() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql deleted file mode 100644 index f3929edba7e..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getReturnTypeSyntax.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getReturnTypeSyntax() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.expected deleted file mode 100644 index b6c9b7e740d..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | gen_assoc_type_arg.rs:9:27:9:31 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql deleted file mode 100644 index e798c8bbaa4..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql deleted file mode 100644 index 0e4d81812ed..00000000000 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocTypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/Cargo.lock b/rust/ql/test/extractor-tests/generated/AssocTypeArg/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AssocTypeArg/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr.expected b/rust/ql/test/extractor-tests/generated/Attr/Attr.expected index e0c63af7678..6b994a76ae4 100644 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr.expected +++ b/rust/ql/test/extractor-tests/generated/Attr/Attr.expected @@ -1 +1,4 @@ +instances | gen_attr.rs:7:5:7:20 | Attr | hasMeta: | yes | +getMeta +| gen_attr.rs:7:5:7:20 | Attr | gen_attr.rs:7:7:7:19 | Meta | diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr.ql b/rust/ql/test/extractor-tests/generated/Attr/Attr.ql index b80d3089be9..9ef4096d2ac 100644 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr.ql +++ b/rust/ql/test/extractor-tests/generated/Attr/Attr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Attr x, string hasMeta -where +query predicate instances(Attr x, string hasMeta__label, string hasMeta) { toBeTested(x) and not x.isUnknown() and + hasMeta__label = "hasMeta:" and if x.hasMeta() then hasMeta = "yes" else hasMeta = "no" -select x, "hasMeta:", hasMeta +} + +query predicate getMeta(Attr x, Meta getMeta) { + toBeTested(x) and not x.isUnknown() and getMeta = x.getMeta() +} diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.expected b/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.expected deleted file mode 100644 index 8b7c87927b2..00000000000 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_attr.rs:7:5:7:20 | Attr | gen_attr.rs:7:7:7:19 | Meta | diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.ql b/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.ql deleted file mode 100644 index dd4ed7f56ef..00000000000 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr_getMeta.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Attr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMeta() diff --git a/rust/ql/test/extractor-tests/generated/Attr/Cargo.lock b/rust/ql/test/extractor-tests/generated/Attr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Attr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected index 9104ba77e5f..0d562cf3c06 100644 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected @@ -1 +1,5 @@ +instances | gen_await_expr.rs:6:17:6:27 | await ... | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_await_expr.rs:6:17:6:27 | await ... | gen_await_expr.rs:6:17:6:21 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql index f78d81a3ec4..825cb9959b4 100644 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from AwaitExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + AwaitExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(AwaitExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(AwaitExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql deleted file mode 100644 index 9ac930312b5..00000000000 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AwaitExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.expected deleted file mode 100644 index a1ea7809bb0..00000000000 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_await_expr.rs:6:17:6:27 | await ... | gen_await_expr.rs:6:17:6:21 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql deleted file mode 100644 index 45e9d40ec73..00000000000 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AwaitExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/AwaitExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected index ce3e6a09690..75146fedb5c 100644 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected @@ -1 +1,5 @@ +instances | gen_become_expr.rs:8:10:8:36 | become ... | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_become_expr.rs:8:10:8:36 | become ... | gen_become_expr.rs:8:17:8:36 | fact_a(...) | diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql index e297230419c..2842afad332 100644 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from BecomeExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + BecomeExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(BecomeExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(BecomeExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql deleted file mode 100644 index aac3e259a32..00000000000 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BecomeExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.expected deleted file mode 100644 index d0cb86a0303..00000000000 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_become_expr.rs:8:10:8:36 | become ... | gen_become_expr.rs:8:17:8:36 | fact_a(...) | diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql deleted file mode 100644 index 697178d5e48..00000000000 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BecomeExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/BecomeExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected index 2f7a47933b1..e435ece76b3 100644 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected @@ -1,5 +1,25 @@ +instances | gen_binary_expr.rs:5:5:5:9 | ... + ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | | gen_binary_expr.rs:6:5:6:10 | ... && ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | | gen_binary_expr.rs:7:5:7:10 | ... <= ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | | gen_binary_expr.rs:8:5:8:9 | ... = ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | | gen_binary_expr.rs:9:5:9:10 | ... += ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | +getAttr +getLhs +| gen_binary_expr.rs:5:5:5:9 | ... + ... | gen_binary_expr.rs:5:5:5:5 | x | +| gen_binary_expr.rs:6:5:6:10 | ... && ... | gen_binary_expr.rs:6:5:6:5 | x | +| gen_binary_expr.rs:7:5:7:10 | ... <= ... | gen_binary_expr.rs:7:5:7:5 | x | +| gen_binary_expr.rs:8:5:8:9 | ... = ... | gen_binary_expr.rs:8:5:8:5 | x | +| gen_binary_expr.rs:9:5:9:10 | ... += ... | gen_binary_expr.rs:9:5:9:5 | x | +getOperatorName +| gen_binary_expr.rs:5:5:5:9 | ... + ... | + | +| gen_binary_expr.rs:6:5:6:10 | ... && ... | && | +| gen_binary_expr.rs:7:5:7:10 | ... <= ... | <= | +| gen_binary_expr.rs:8:5:8:9 | ... = ... | = | +| gen_binary_expr.rs:9:5:9:10 | ... += ... | += | +getRhs +| gen_binary_expr.rs:5:5:5:9 | ... + ... | gen_binary_expr.rs:5:9:5:9 | y | +| gen_binary_expr.rs:6:5:6:10 | ... && ... | gen_binary_expr.rs:6:10:6:10 | y | +| gen_binary_expr.rs:7:5:7:10 | ... <= ... | gen_binary_expr.rs:7:10:7:10 | y | +| gen_binary_expr.rs:8:5:8:9 | ... = ... | gen_binary_expr.rs:8:9:8:9 | y | +| gen_binary_expr.rs:9:5:9:10 | ... += ... | gen_binary_expr.rs:9:10:9:10 | y | diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql index 87c00d18e3e..dec60b16d6c 100644 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql @@ -2,13 +2,35 @@ import codeql.rust.elements import TestUtils -from BinaryExpr x, int getNumberOfAttrs, string hasLhs, string hasOperatorName, string hasRhs -where +query predicate instances( + BinaryExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLhs__label, + string hasLhs, string hasOperatorName__label, string hasOperatorName, string hasRhs__label, + string hasRhs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasLhs__label = "hasLhs:" and (if x.hasLhs() then hasLhs = "yes" else hasLhs = "no") and + hasOperatorName__label = "hasOperatorName:" and (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and + hasRhs__label = "hasRhs:" and if x.hasRhs() then hasRhs = "yes" else hasRhs = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasLhs:", hasLhs, "hasOperatorName:", - hasOperatorName, "hasRhs:", hasRhs +} + +query predicate getAttr(BinaryExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getLhs(BinaryExpr x, Expr getLhs) { + toBeTested(x) and not x.isUnknown() and getLhs = x.getLhs() +} + +query predicate getOperatorName(BinaryExpr x, string getOperatorName) { + toBeTested(x) and not x.isUnknown() and getOperatorName = x.getOperatorName() +} + +query predicate getRhs(BinaryExpr x, Expr getRhs) { + toBeTested(x) and not x.isUnknown() and getRhs = x.getRhs() +} diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql deleted file mode 100644 index 0d4503c82bd..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BinaryExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.expected deleted file mode 100644 index 9321ce0724a..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_binary_expr.rs:5:5:5:9 | ... + ... | gen_binary_expr.rs:5:5:5:5 | x | -| gen_binary_expr.rs:6:5:6:10 | ... && ... | gen_binary_expr.rs:6:5:6:5 | x | -| gen_binary_expr.rs:7:5:7:10 | ... <= ... | gen_binary_expr.rs:7:5:7:5 | x | -| gen_binary_expr.rs:8:5:8:9 | ... = ... | gen_binary_expr.rs:8:5:8:5 | x | -| gen_binary_expr.rs:9:5:9:10 | ... += ... | gen_binary_expr.rs:9:5:9:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql deleted file mode 100644 index a8b21f01495..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getLhs.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BinaryExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLhs() diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.expected deleted file mode 100644 index e55ca0c63a0..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_binary_expr.rs:5:5:5:9 | ... + ... | + | -| gen_binary_expr.rs:6:5:6:10 | ... && ... | && | -| gen_binary_expr.rs:7:5:7:10 | ... <= ... | <= | -| gen_binary_expr.rs:8:5:8:9 | ... = ... | = | -| gen_binary_expr.rs:9:5:9:10 | ... += ... | += | diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql deleted file mode 100644 index 05da704202d..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getOperatorName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BinaryExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getOperatorName() diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.expected deleted file mode 100644 index 9bd36da5fa6..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_binary_expr.rs:5:5:5:9 | ... + ... | gen_binary_expr.rs:5:9:5:9 | y | -| gen_binary_expr.rs:6:5:6:10 | ... && ... | gen_binary_expr.rs:6:10:6:10 | y | -| gen_binary_expr.rs:7:5:7:10 | ... <= ... | gen_binary_expr.rs:7:10:7:10 | y | -| gen_binary_expr.rs:8:5:8:9 | ... = ... | gen_binary_expr.rs:8:9:8:9 | y | -| gen_binary_expr.rs:9:5:9:10 | ... += ... | gen_binary_expr.rs:9:10:9:10 | y | diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql deleted file mode 100644 index 8c491b7f575..00000000000 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr_getRhs.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BinaryExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getRhs() diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/BinaryExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected index b6be24d0bb7..6dfca050bfe 100644 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected @@ -1,3 +1,11 @@ +instances | gen_block_expr.rs:3:28:12:1 | { ... } | hasLabel: | no | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | | gen_block_expr.rs:5:5:7:5 | { ... } | hasLabel: | no | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | | gen_block_expr.rs:8:5:11:5 | 'label: { ... } | hasLabel: | yes | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | +getLabel +| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | gen_block_expr.rs:8:5:8:11 | 'label | +getAttr +getStmtList +| gen_block_expr.rs:3:28:12:1 | { ... } | gen_block_expr.rs:3:28:12:1 | StmtList | +| gen_block_expr.rs:5:5:7:5 | { ... } | gen_block_expr.rs:5:5:7:5 | StmtList | +| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | gen_block_expr.rs:8:13:11:5 | StmtList | diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql index 992c06a605b..8c411738753 100644 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql @@ -2,21 +2,43 @@ import codeql.rust.elements import TestUtils -from - BlockExpr x, string hasLabel, int getNumberOfAttrs, string isAsync, string isConst, string isGen, - string isMove, string isTry, string isUnsafe, string hasStmtList -where +query predicate instances( + BlockExpr x, string hasLabel__label, string hasLabel, string getNumberOfAttrs__label, + int getNumberOfAttrs, string isAsync__label, string isAsync, string isConst__label, + string isConst, string isGen__label, string isGen, string isMove__label, string isMove, + string isTry__label, string isTry, string isUnsafe__label, string isUnsafe, + string hasStmtList__label, string hasStmtList +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isGen__label = "isGen:" and (if x.isGen() then isGen = "yes" else isGen = "no") and + isMove__label = "isMove:" and (if x.isMove() then isMove = "yes" else isMove = "no") and + isTry__label = "isTry:" and (if x.isTry() then isTry = "yes" else isTry = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasStmtList__label = "hasStmtList:" and if x.hasStmtList() then hasStmtList = "yes" else hasStmtList = "no" -select x, "hasLabel:", hasLabel, "getNumberOfAttrs:", getNumberOfAttrs, "isAsync:", isAsync, - "isConst:", isConst, "isGen:", isGen, "isMove:", isMove, "isTry:", isTry, "isUnsafe:", isUnsafe, - "hasStmtList:", hasStmtList +} + +query predicate getLabel(BlockExpr x, Label getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getAttr(BlockExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getStmtList(BlockExpr x, StmtList getStmtList) { + toBeTested(x) and not x.isUnknown() and getStmtList = x.getStmtList() +} diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql deleted file mode 100644 index b44ebf9d08d..00000000000 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BlockExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.expected deleted file mode 100644 index a6933d65b22..00000000000 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | gen_block_expr.rs:8:5:8:11 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql deleted file mode 100644 index 25f432e2a99..00000000000 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BlockExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.expected deleted file mode 100644 index 4863264491b..00000000000 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_block_expr.rs:3:28:12:1 | { ... } | gen_block_expr.rs:3:28:12:1 | StmtList | -| gen_block_expr.rs:5:5:7:5 | { ... } | gen_block_expr.rs:5:5:7:5 | StmtList | -| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | gen_block_expr.rs:8:13:11:5 | StmtList | diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql deleted file mode 100644 index 493e9ad5d4a..00000000000 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr_getStmtList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BlockExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getStmtList() diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/BlockExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/BlockExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected index 8ca2412e8ff..5ef37d197bc 100644 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected +++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected @@ -1,2 +1,6 @@ +instances | gen_box_pat.rs:6:9:6:27 | box ... | hasPat: | yes | | gen_box_pat.rs:7:9:7:24 | box ...::None | hasPat: | yes | +getPat +| gen_box_pat.rs:6:9:6:27 | box ... | gen_box_pat.rs:6:13:6:27 | ...::Some(...) | +| gen_box_pat.rs:7:9:7:24 | box ...::None | gen_box_pat.rs:7:13:7:24 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql index cee3b683e66..add8284cfba 100644 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql +++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from BoxPat x, string hasPat -where +query predicate instances(BoxPat x, string hasPat__label, string hasPat) { toBeTested(x) and not x.isUnknown() and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "hasPat:", hasPat +} + +query predicate getPat(BoxPat x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.expected b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.expected deleted file mode 100644 index a43975657a8..00000000000 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_box_pat.rs:6:9:6:27 | box ... | gen_box_pat.rs:6:13:6:27 | ...::Some(...) | -| gen_box_pat.rs:7:9:7:24 | box ...::None | gen_box_pat.rs:7:13:7:24 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql deleted file mode 100644 index d1a4ad6fca8..00000000000 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BoxPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/BoxPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/BoxPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected index 26a3ea2d998..1d42933c102 100644 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected @@ -1,3 +1,11 @@ +instances | gen_break_expr.rs:7:13:7:17 | break | getNumberOfAttrs: | 0 | hasExpr: | no | hasLifetime: | no | | gen_break_expr.rs:12:13:12:27 | break 'label 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasLifetime: | yes | | gen_break_expr.rs:17:13:17:27 | break 'label 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasLifetime: | yes | +getAttr +getExpr +| gen_break_expr.rs:12:13:12:27 | break 'label 42 | gen_break_expr.rs:12:26:12:27 | 42 | +| gen_break_expr.rs:17:13:17:27 | break 'label 42 | gen_break_expr.rs:17:26:17:27 | 42 | +getLifetime +| gen_break_expr.rs:12:13:12:27 | break 'label 42 | gen_break_expr.rs:12:19:12:24 | 'label | +| gen_break_expr.rs:17:13:17:27 | break 'label 42 | gen_break_expr.rs:17:19:17:24 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql index 1238e6e4231..821f1e73fa2 100644 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from BreakExpr x, int getNumberOfAttrs, string hasExpr, string hasLifetime -where +query predicate instances( + BreakExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string hasLifetime__label, string hasLifetime +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasLifetime__label = "hasLifetime:" and if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "hasLifetime:", hasLifetime +} + +query predicate getAttr(BreakExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(BreakExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getLifetime(BreakExpr x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql deleted file mode 100644 index dca05d9b890..00000000000 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BreakExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.expected deleted file mode 100644 index 276f1d3333b..00000000000 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_break_expr.rs:12:13:12:27 | break 'label 42 | gen_break_expr.rs:12:26:12:27 | 42 | -| gen_break_expr.rs:17:13:17:27 | break 'label 42 | gen_break_expr.rs:17:26:17:27 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql deleted file mode 100644 index 0ae64a4d533..00000000000 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BreakExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.expected b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.expected deleted file mode 100644 index 09f1132362f..00000000000 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_break_expr.rs:12:13:12:27 | break 'label 42 | gen_break_expr.rs:12:19:12:24 | 'label | -| gen_break_expr.rs:17:13:17:27 | break 'label 42 | gen_break_expr.rs:17:19:17:24 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql deleted file mode 100644 index c272d79f9cf..00000000000 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from BreakExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/BreakExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/BreakExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected index 31824b731a6..181a7dbff8c 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected @@ -1,4 +1,21 @@ +instances | gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | | gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | | gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | | gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +getArgList +| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:8:5:11 | ArgList | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:20:6:23 | ArgList | +| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:11:7:14 | ArgList | +| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:8:8:10 | ArgList | +getAttr +getArg +| gen_call_expr.rs:5:5:5:11 | foo(...) | 0 | gen_call_expr.rs:5:9:5:10 | 42 | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | 0 | gen_call_expr.rs:6:21:6:22 | 42 | +| gen_call_expr.rs:7:5:7:14 | ...(...) | 0 | gen_call_expr.rs:7:12:7:13 | 42 | +| gen_call_expr.rs:8:5:8:10 | foo(...) | 0 | gen_call_expr.rs:8:9:8:9 | 1 | +getFunction +| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:5:5:7 | foo | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:5:6:19 | foo::<...> | +| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:5:7:10 | foo[0] | +| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:5:8:7 | foo | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql index 8abf8b2a08e..fae788451cf 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql @@ -2,13 +2,35 @@ import codeql.rust.elements import TestUtils -from CallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, string hasFunction -where +query predicate instances( + CallExpr x, string hasArgList__label, string hasArgList, string getNumberOfAttrs__label, + int getNumberOfAttrs, string getNumberOfArgs__label, int getNumberOfArgs, + string hasFunction__label, string hasFunction +) { toBeTested(x) and not x.isUnknown() and + hasArgList__label = "hasArgList:" and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfArgs__label = "getNumberOfArgs:" and getNumberOfArgs = x.getNumberOfArgs() and + hasFunction__label = "hasFunction:" and if x.hasFunction() then hasFunction = "yes" else hasFunction = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", - getNumberOfArgs, "hasFunction:", hasFunction +} + +query predicate getArgList(CallExpr x, ArgList getArgList) { + toBeTested(x) and not x.isUnknown() and getArgList = x.getArgList() +} + +query predicate getAttr(CallExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getArg(CallExpr x, int index, Expr getArg) { + toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) +} + +query predicate getFunction(CallExpr x, Expr getFunction) { + toBeTested(x) and not x.isUnknown() and getFunction = x.getFunction() +} diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected deleted file mode 100644 index 2bf84953410..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | 0 | gen_call_expr.rs:5:9:5:10 | 42 | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | 0 | gen_call_expr.rs:6:21:6:22 | 42 | -| gen_call_expr.rs:7:5:7:14 | ...(...) | 0 | gen_call_expr.rs:7:12:7:13 | 42 | -| gen_call_expr.rs:8:5:8:10 | foo(...) | 0 | gen_call_expr.rs:8:9:8:9 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql deleted file mode 100644 index 37483c3e637..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.expected deleted file mode 100644 index 13c426db99d..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:8:5:11 | ArgList | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:20:6:23 | ArgList | -| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:11:7:14 | ArgList | -| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:8:8:10 | ArgList | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql deleted file mode 100644 index 088f92ec06d..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getArgList() diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql deleted file mode 100644 index 53b8ec257a6..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.expected deleted file mode 100644 index ecaaf15cebb..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:5:5:7 | foo | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:5:6:19 | foo::<...> | -| gen_call_expr.rs:7:5:7:14 | ...(...) | gen_call_expr.rs:7:5:7:10 | foo[0] | -| gen_call_expr.rs:8:5:8:10 | foo(...) | gen_call_expr.rs:8:5:8:7 | foo | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql deleted file mode 100644 index 61196bcd14d..00000000000 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr_getFunction.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getFunction() diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/CallExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/CallExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/CastExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/CastExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected index 76e6f567b06..8ed3a2a8416 100644 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected @@ -1 +1,7 @@ +instances | gen_cast_expr.rs:5:5:5:16 | value as u64 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasTypeRepr: | yes | +getAttr +getExpr +| gen_cast_expr.rs:5:5:5:16 | value as u64 | gen_cast_expr.rs:5:5:5:9 | value | +getTypeRepr +| gen_cast_expr.rs:5:5:5:16 | value as u64 | gen_cast_expr.rs:5:14:5:16 | u64 | diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql index 0c60d9f8c4e..c649242b576 100644 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from CastExpr x, int getNumberOfAttrs, string hasExpr, string hasTypeRepr -where +query predicate instances( + CastExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "hasTypeRepr:", hasTypeRepr +} + +query predicate getAttr(CastExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(CastExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getTypeRepr(CastExpr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql deleted file mode 100644 index afb47c82fdb..00000000000 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CastExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.expected deleted file mode 100644 index 01a710bfb53..00000000000 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_cast_expr.rs:5:5:5:16 | value as u64 | gen_cast_expr.rs:5:5:5:9 | value | diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql deleted file mode 100644 index 3d8c47f1354..00000000000 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CastExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.expected deleted file mode 100644 index 87c07babb02..00000000000 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_cast_expr.rs:5:5:5:16 | value as u64 | gen_cast_expr.rs:5:14:5:16 | u64 | diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql deleted file mode 100644 index 34ee4c5ef9d..00000000000 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from CastExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock b/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected index 66e669e9e9f..38a6da316b0 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected @@ -1 +1,4 @@ +instances | gen_closure_binder.rs:7:21:7:43 | ClosureBinder | hasGenericParamList: | yes | +getGenericParamList +| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | gen_closure_binder.rs:7:24:7:43 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql index b099f4aa548..a791e16c442 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from ClosureBinder x, string hasGenericParamList -where +query predicate instances( + ClosureBinder x, string hasGenericParamList__label, string hasGenericParamList +) { toBeTested(x) and not x.isUnknown() and + hasGenericParamList__label = "hasGenericParamList:" and if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no" -select x, "hasGenericParamList:", hasGenericParamList +} + +query predicate getGenericParamList(ClosureBinder x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected deleted file mode 100644 index f3d94f1b8fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | gen_closure_binder.rs:7:24:7:43 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql deleted file mode 100644 index 553bcf8970e..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureBinder x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ClosureExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected index d8a9b33ce0e..e76fbfeaf75 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected @@ -1,5 +1,31 @@ +instances | gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | | gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | | gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 2 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | | gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | | gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | +getParamList +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | gen_closure_expr.rs:5:5:5:7 | ParamList | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:10:6:17 | ParamList | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | gen_closure_expr.rs:7:11:7:21 | ParamList | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | gen_closure_expr.rs:9:5:9:7 | ParamList | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | gen_closure_expr.rs:11:13:11:15 | ParamList | +getAttr +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:8:6:8:17 | Attr | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:10:6:10:17 | Attr | +getParam +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | 0 | gen_closure_expr.rs:5:6:5:6 | ... | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | 0 | gen_closure_expr.rs:6:11:6:16 | ...: i32 | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 0 | gen_closure_expr.rs:7:12:7:17 | ...: i32 | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 1 | gen_closure_expr.rs:7:20:7:20 | ... | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:9:6:9:6 | ... | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:11:14:11:14 | ... | +getBody +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | gen_closure_expr.rs:5:9:5:13 | ... + ... | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:26:6:34 | { ... } | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | gen_closure_expr.rs:7:23:7:27 | ... + ... | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | gen_closure_expr.rs:9:9:9:15 | YieldExpr | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | gen_closure_expr.rs:11:17:11:23 | YieldExpr | +getClosureBinder +getRetType +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:19:6:24 | RetTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql index 6a5536c5be1..88aebe283c9 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql @@ -2,25 +2,60 @@ import codeql.rust.elements import TestUtils -from - ClosureExpr x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, string hasBody, - string hasClosureBinder, string isAsync, string isConst, string isGen, string isMove, - string isStatic, string hasRetType -where +query predicate instances( + ClosureExpr x, string hasParamList__label, string hasParamList, string getNumberOfAttrs__label, + int getNumberOfAttrs, string getNumberOfParams__label, int getNumberOfParams, + string hasBody__label, string hasBody, string hasClosureBinder__label, string hasClosureBinder, + string isAsync__label, string isAsync, string isConst__label, string isConst, string isGen__label, + string isGen, string isMove__label, string isMove, string isStatic__label, string isStatic, + string hasRetType__label, string hasRetType +) { toBeTested(x) and not x.isUnknown() and + hasParamList__label = "hasParamList:" and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + hasClosureBinder__label = "hasClosureBinder:" and (if x.hasClosureBinder() then hasClosureBinder = "yes" else hasClosureBinder = "no") and + isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isGen__label = "isGen:" and (if x.isGen() then isGen = "yes" else isGen = "no") and + isMove__label = "isMove:" and (if x.isMove() then isMove = "yes" else isMove = "no") and + isStatic__label = "isStatic:" and (if x.isStatic() then isStatic = "yes" else isStatic = "no") and + hasRetType__label = "hasRetType:" and if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" -select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, - "getNumberOfParams:", getNumberOfParams, "hasBody:", hasBody, "hasClosureBinder:", - hasClosureBinder, "isAsync:", isAsync, "isConst:", isConst, "isGen:", isGen, "isMove:", isMove, - "isStatic:", isStatic, "hasRetType:", hasRetType +} + +query predicate getParamList(ClosureExpr x, ParamList getParamList) { + toBeTested(x) and not x.isUnknown() and getParamList = x.getParamList() +} + +query predicate getAttr(ClosureExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getParam(ClosureExpr x, int index, Param getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} + +query predicate getBody(ClosureExpr x, Expr getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getClosureBinder(ClosureExpr x, ClosureBinder getClosureBinder) { + toBeTested(x) and not x.isUnknown() and getClosureBinder = x.getClosureBinder() +} + +query predicate getRetType(ClosureExpr x, RetTypeRepr getRetType) { + toBeTested(x) and not x.isUnknown() and getRetType = x.getRetType() +} diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.expected deleted file mode 100644 index 4de6e17d785..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:8:6:8:17 | Attr | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:10:6:10:17 | Attr | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql deleted file mode 100644 index b32da8e541b..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.expected deleted file mode 100644 index d7b6180e63b..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | gen_closure_expr.rs:5:9:5:13 | ... + ... | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:26:6:34 | { ... } | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | gen_closure_expr.rs:7:23:7:27 | ... + ... | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | gen_closure_expr.rs:9:9:9:15 | YieldExpr | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | gen_closure_expr.rs:11:17:11:23 | YieldExpr | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql deleted file mode 100644 index cee8662cc44..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql deleted file mode 100644 index fc838f8e254..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getClosureBinder.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getClosureBinder() diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected deleted file mode 100644 index 29be6ae9ef0..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | 0 | gen_closure_expr.rs:5:6:5:6 | ... | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | 0 | gen_closure_expr.rs:6:11:6:16 | ...: i32 | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 0 | gen_closure_expr.rs:7:12:7:17 | ...: i32 | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | 1 | gen_closure_expr.rs:7:20:7:20 | ... | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | 0 | gen_closure_expr.rs:9:6:9:6 | ... | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | 0 | gen_closure_expr.rs:11:14:11:14 | ... | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql deleted file mode 100644 index 06cef03f206..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.expected deleted file mode 100644 index 5945738433b..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | gen_closure_expr.rs:5:5:5:7 | ParamList | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:10:6:17 | ParamList | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | gen_closure_expr.rs:7:11:7:21 | ParamList | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | gen_closure_expr.rs:9:5:9:7 | ParamList | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | gen_closure_expr.rs:11:13:11:15 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql deleted file mode 100644 index d055aa69de3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getParamList() diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.expected deleted file mode 100644 index d5b2095eacc..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:19:6:24 | RetTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql deleted file mode 100644 index acafcc71062..00000000000 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr_getRetType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ClosureExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getRetType() diff --git a/rust/ql/test/extractor-tests/generated/Comment/Cargo.lock b/rust/ql/test/extractor-tests/generated/Comment/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Comment/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Comment/Comment.ql b/rust/ql/test/extractor-tests/generated/Comment/Comment.ql index 7e940186748..43aad9a404b 100644 --- a/rust/ql/test/extractor-tests/generated/Comment/Comment.ql +++ b/rust/ql/test/extractor-tests/generated/Comment/Comment.ql @@ -2,10 +2,13 @@ import codeql.rust.elements import TestUtils -from Comment x, AstNode getParent, string getText -where +query predicate instances( + Comment x, string getParent__label, AstNode getParent, string getText__label, string getText +) { toBeTested(x) and not x.isUnknown() and + getParent__label = "getParent:" and getParent = x.getParent() and + getText__label = "getText:" and getText = x.getText() -select x, "getParent:", getParent, "getText:", getText +} diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.expected b/rust/ql/test/extractor-tests/generated/Const/Const.expected index 09c791ffe4f..3a6cac12184 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.expected +++ b/rust/ql/test/extractor-tests/generated/Const/Const.expected @@ -1 +1,15 @@ +instances | gen_const.rs:4:5:7:22 | Const | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | hasGenericParamList: | no | isConst: | yes | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | yes | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getBody +| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:20:7:21 | 42 | +getGenericParamList +getName +| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:11:7:11 | X | +getTypeRepr +| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:14:7:16 | i32 | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.ql b/rust/ql/test/extractor-tests/generated/Const/Const.ql index 348f7bec1a6..536f02a0a27 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const.ql @@ -2,37 +2,93 @@ import codeql.rust.elements import TestUtils -from - Const x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, - string hasGenericParamList, string isConst, string isDefault, string hasName, string hasTypeRepr, - string hasVisibility, string hasWhereClause, string hasImplementation -where +query predicate instances( + Const x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasBody__label, string hasBody, string hasGenericParamList__label, + string hasGenericParamList, string isConst__label, string isConst, string isDefault__label, + string isDefault, string hasName__label, string hasName, string hasTypeRepr__label, + string hasTypeRepr, string hasVisibility__label, string hasVisibility, + string hasWhereClause__label, string hasWhereClause, string hasImplementation__label, + string hasImplementation +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and (if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and + hasImplementation__label = "hasImplementation:" and if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isConst:", isConst, - "isDefault:", isDefault, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause, "hasImplementation:", hasImplementation +} + +query predicate getExtendedCanonicalPath(Const x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Const x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Const x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(Const x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getBody(Const x, Expr getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getGenericParamList(Const x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Const x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeRepr(Const x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getVisibility(Const x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Const x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getAttr.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getAttr.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getAttr.ql deleted file mode 100644 index 0b4adeec093..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql deleted file mode 100644 index 4056751f972..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getBody.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getBody.expected deleted file mode 100644 index e6653a26b91..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:20:7:21 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getBody.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getBody.ql deleted file mode 100644 index 368aa82afb4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql deleted file mode 100644 index 644b9240980..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql deleted file mode 100644 index c11c4e0856d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql deleted file mode 100644 index 6c62c3eac40..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getName.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getName.expected deleted file mode 100644 index e0c9ac08554..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:11:7:11 | X | diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getName.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getName.ql deleted file mode 100644 index 23698a012eb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.expected deleted file mode 100644 index dde3546336a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const.rs:4:5:7:22 | Const | gen_const.rs:7:14:7:16 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.ql deleted file mode 100644 index 4185581df19..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.ql deleted file mode 100644 index c0599d921a0..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql deleted file mode 100644 index a6667b9b8d2..00000000000 --- a/rust/ql/test/extractor-tests/generated/Const/Const_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Const x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/Cargo.lock b/rust/ql/test/extractor-tests/generated/ConstArg/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ConstArg/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected index 56a3b5946fa..b6e35b39a8b 100644 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected +++ b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected @@ -1 +1,4 @@ +instances | gen_const_arg.rs:7:11:7:11 | ConstArg | hasExpr: | yes | +getExpr +| gen_const_arg.rs:7:11:7:11 | ConstArg | gen_const_arg.rs:7:11:7:11 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql index 4080bf099c4..57377f66c4a 100644 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql +++ b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from ConstArg x, string hasExpr -where +query predicate instances(ConstArg x, string hasExpr__label, string hasExpr) { toBeTested(x) and not x.isUnknown() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "hasExpr:", hasExpr +} + +query predicate getExpr(ConstArg x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.expected b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.expected deleted file mode 100644 index c26632a25e7..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const_arg.rs:7:11:7:11 | ConstArg | gen_const_arg.rs:7:11:7:11 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql deleted file mode 100644 index 702328c2aac..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/ConstBlockPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ConstBlockPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected index 21feba1f729..36c06854a29 100644 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected +++ b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected @@ -1 +1,4 @@ +instances | gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | hasBlockExpr: | yes | isConst: | yes | +getBlockExpr +| gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | gen_const_block_pat.rs:6:15:6:27 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql index 005f8a752c1..1a0ba771a6c 100644 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql +++ b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql @@ -2,10 +2,18 @@ import codeql.rust.elements import TestUtils -from ConstBlockPat x, string hasBlockExpr, string isConst -where +query predicate instances( + ConstBlockPat x, string hasBlockExpr__label, string hasBlockExpr, string isConst__label, + string isConst +) { toBeTested(x) and not x.isUnknown() and + hasBlockExpr__label = "hasBlockExpr:" and (if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no") and + isConst__label = "isConst:" and if x.isConst() then isConst = "yes" else isConst = "no" -select x, "hasBlockExpr:", hasBlockExpr, "isConst:", isConst +} + +query predicate getBlockExpr(ConstBlockPat x, BlockExpr getBlockExpr) { + toBeTested(x) and not x.isUnknown() and getBlockExpr = x.getBlockExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.expected b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.expected deleted file mode 100644 index 42cdb5ef4c3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | gen_const_block_pat.rs:6:15:6:27 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql deleted file mode 100644 index e2c0f644007..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat_getBlockExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstBlockPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getBlockExpr() diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/Cargo.lock b/rust/ql/test/extractor-tests/generated/ConstParam/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ConstParam/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected index 9632fea6dd5..0ed9b2a27cb 100644 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected +++ b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected @@ -1 +1,8 @@ +instances | gen_const_param.rs:7:17:7:30 | ConstParam | getNumberOfAttrs: | 0 | hasDefaultVal: | no | isConst: | yes | hasName: | yes | hasTypeRepr: | yes | +getAttr +getDefaultVal +getName +| gen_const_param.rs:7:17:7:30 | ConstParam | gen_const_param.rs:7:23:7:23 | N | +getTypeRepr +| gen_const_param.rs:7:17:7:30 | ConstParam | gen_const_param.rs:7:26:7:30 | usize | diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql index 4f7fbab909e..3cce74dd9d3 100644 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql +++ b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql @@ -2,16 +2,37 @@ import codeql.rust.elements import TestUtils -from - ConstParam x, int getNumberOfAttrs, string hasDefaultVal, string isConst, string hasName, - string hasTypeRepr -where +query predicate instances( + ConstParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefaultVal__label, + string hasDefaultVal, string isConst__label, string isConst, string hasName__label, + string hasName, string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasDefaultVal__label = "hasDefaultVal:" and (if x.hasDefaultVal() then hasDefaultVal = "yes" else hasDefaultVal = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasDefaultVal:", hasDefaultVal, "isConst:", - isConst, "hasName:", hasName, "hasTypeRepr:", hasTypeRepr +} + +query predicate getAttr(ConstParam x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getDefaultVal(ConstParam x, ConstArg getDefaultVal) { + toBeTested(x) and not x.isUnknown() and getDefaultVal = x.getDefaultVal() +} + +query predicate getName(ConstParam x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeRepr(ConstParam x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql deleted file mode 100644 index ed8406eecef..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstParam x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql deleted file mode 100644 index f4af24f39b7..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getDefaultVal.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getDefaultVal() diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.expected deleted file mode 100644 index 65eb953a20b..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const_param.rs:7:17:7:30 | ConstParam | gen_const_param.rs:7:23:7:23 | N | diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.ql deleted file mode 100644 index 7c627d43650..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.expected deleted file mode 100644 index 5a96f2d3ad6..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_const_param.rs:7:17:7:30 | ConstParam | gen_const_param.rs:7:26:7:30 | usize | diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql deleted file mode 100644 index d789f9eb144..00000000000 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ConstParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ContinueExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ContinueExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected index a09556b9a3f..9c3222ea810 100644 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected @@ -1,2 +1,6 @@ +instances | gen_continue_expr.rs:7:13:7:20 | continue | getNumberOfAttrs: | 0 | hasLifetime: | no | | gen_continue_expr.rs:12:13:12:27 | continue 'label | getNumberOfAttrs: | 0 | hasLifetime: | yes | +getAttr +getLifetime +| gen_continue_expr.rs:12:13:12:27 | continue 'label | gen_continue_expr.rs:12:22:12:27 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql index 9d2e2d5177d..87cbb63a73f 100644 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ContinueExpr x, int getNumberOfAttrs, string hasLifetime -where +query predicate instances( + ContinueExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLifetime__label, + string hasLifetime +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasLifetime__label = "hasLifetime:" and if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasLifetime:", hasLifetime +} + +query predicate getAttr(ContinueExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getLifetime(ContinueExpr x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql deleted file mode 100644 index d6166fe4a29..00000000000 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ContinueExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.expected b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.expected deleted file mode 100644 index 3260e45d1b7..00000000000 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_continue_expr.rs:12:13:12:27 | continue 'label | gen_continue_expr.rs:12:22:12:27 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql deleted file mode 100644 index 89bc6f68dd3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ContinueExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected index af1df824814..467ee4d57b5 100644 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected @@ -1 +1,4 @@ +instances | gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | hasTypeBoundList: | yes | +getTypeBoundList +| gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | gen_dyn_trait_type_repr.rs:7:17:7:21 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql index c67812dec36..a3b42f5c602 100644 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from DynTraitTypeRepr x, string hasTypeBoundList -where +query predicate instances( + DynTraitTypeRepr x, string hasTypeBoundList__label, string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "hasTypeBoundList:", hasTypeBoundList +} + +query predicate getTypeBoundList(DynTraitTypeRepr x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.expected deleted file mode 100644 index 63b58d830c1..00000000000 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | gen_dyn_trait_type_repr.rs:7:17:7:21 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql deleted file mode 100644 index f9c215991a3..00000000000 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from DynTraitTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected index cefb56b3334..97770de91d2 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected @@ -1 +1,14 @@ +instances | gen_enum.rs:4:5:7:34 | enum E | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasVariantList: | yes | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getDeriveMacroExpansion +getAttr +getGenericParamList +getName +| gen_enum.rs:4:5:7:34 | enum E | gen_enum.rs:7:10:7:10 | E | +getVariantList +| gen_enum.rs:4:5:7:34 | enum E | gen_enum.rs:7:12:7:34 | VariantList | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 4c7f7a835ac..194230c7b22 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -2,33 +2,85 @@ import codeql.rust.elements import TestUtils -from - Enum x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, string hasGenericParamList, - string hasName, string hasVariantList, string hasVisibility, string hasWhereClause -where +query predicate instances( + Enum x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, + int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasGenericParamList__label, string hasGenericParamList, string hasName__label, + string hasName, string hasVariantList__label, string hasVariantList, string hasVisibility__label, + string hasVisibility, string hasWhereClause__label, string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasVariantList__label = "hasVariantList:" and (if x.hasVariantList() then hasVariantList = "yes" else hasVariantList = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", - getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasVariantList:", hasVariantList, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(Enum x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Enum x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Enum x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getDeriveMacroExpansion(Enum x, int index, MacroItems getDeriveMacroExpansion) { + toBeTested(x) and not x.isUnknown() and getDeriveMacroExpansion = x.getDeriveMacroExpansion(index) +} + +query predicate getAttr(Enum x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(Enum x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Enum x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getVariantList(Enum x, VariantList getVariantList) { + toBeTested(x) and not x.isUnknown() and getVariantList = x.getVariantList() +} + +query predicate getVisibility(Enum x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Enum x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.ql deleted file mode 100644 index b2ffb4b5666..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql deleted file mode 100644 index 6f0623348c4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql deleted file mode 100644 index 07fdc2fe5cd..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql deleted file mode 100644 index 1bb9710f97d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getDeriveMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql deleted file mode 100644 index fa456ecd9d0..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql deleted file mode 100644 index 79486fad3eb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.expected deleted file mode 100644 index 0e5f3660d5e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_enum.rs:4:5:7:34 | enum E | gen_enum.rs:7:10:7:10 | E | diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.ql deleted file mode 100644 index 218e5ee494b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.expected deleted file mode 100644 index 4827f814fac..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_enum.rs:4:5:7:34 | enum E | gen_enum.rs:7:12:7:34 | VariantList | diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.ql deleted file mode 100644 index 35af7d9d396..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVariantList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getVariantList() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.ql deleted file mode 100644 index b437e30e2ca..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.ql deleted file mode 100644 index b9aaa3f3499..00000000000 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Enum x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/Cargo.lock b/rust/ql/test/extractor-tests/generated/ExprStmt/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExprStmt/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected index 61f85c10f9e..16b3cc14c46 100644 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected +++ b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected @@ -1,2 +1,6 @@ +instances | gen_expr_stmt.rs:5:5:5:12 | ExprStmt | hasExpr: | yes | | gen_expr_stmt.rs:6:5:6:13 | ExprStmt | hasExpr: | yes | +getExpr +| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | gen_expr_stmt.rs:5:5:5:11 | start(...) | +| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | gen_expr_stmt.rs:6:5:6:12 | finish(...) | diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql index 977516d1eea..587fb6731d8 100644 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql +++ b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from ExprStmt x, string hasExpr -where +query predicate instances(ExprStmt x, string hasExpr__label, string hasExpr) { toBeTested(x) and not x.isUnknown() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "hasExpr:", hasExpr +} + +query predicate getExpr(ExprStmt x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.expected b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.expected deleted file mode 100644 index 1cacf1e8424..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | gen_expr_stmt.rs:5:5:5:11 | start(...) | -| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | gen_expr_stmt.rs:6:5:6:12 | finish(...) | diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql deleted file mode 100644 index df142202a02..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExprStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/Cargo.lock b/rust/ql/test/extractor-tests/generated/ExternBlock/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected index 9c06abfad70..a523b209713 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected @@ -1 +1,10 @@ +instances | gen_extern_block.rs:7:5:9:5 | ExternBlock | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasAbi: | yes | getNumberOfAttrs: | 0 | hasExternItemList: | yes | isUnsafe: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAbi +| gen_extern_block.rs:7:5:9:5 | ExternBlock | gen_extern_block.rs:7:5:7:14 | Abi | +getAttr +getExternItemList +| gen_extern_block.rs:7:5:9:5 | ExternBlock | gen_extern_block.rs:7:16:9:5 | ExternItemList | diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql index e7ef0f90fe9..9985e3ceb0e 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql @@ -2,28 +2,61 @@ import codeql.rust.elements import TestUtils -from - ExternBlock x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, string hasAbi, int getNumberOfAttrs, string hasExternItemList, - string isUnsafe -where +query predicate instances( + ExternBlock x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string hasAbi__label, string hasAbi, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExternItemList__label, + string hasExternItemList, string isUnsafe__label, string isUnsafe +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + hasAbi__label = "hasAbi:" and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExternItemList__label = "hasExternItemList:" and (if x.hasExternItemList() then hasExternItemList = "yes" else hasExternItemList = "no") and + isUnsafe__label = "isUnsafe:" and if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAbi:", hasAbi, "getNumberOfAttrs:", - getNumberOfAttrs, "hasExternItemList:", hasExternItemList, "isUnsafe:", isUnsafe +} + +query predicate getExtendedCanonicalPath(ExternBlock x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(ExternBlock x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(ExternBlock x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAbi(ExternBlock x, Abi getAbi) { + toBeTested(x) and not x.isUnknown() and getAbi = x.getAbi() +} + +query predicate getAttr(ExternBlock x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExternItemList(ExternBlock x, ExternItemList getExternItemList) { + toBeTested(x) and not x.isUnknown() and getExternItemList = x.getExternItemList() +} diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.expected deleted file mode 100644 index ea8e7797362..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_extern_block.rs:7:5:9:5 | ExternBlock | gen_extern_block.rs:7:5:7:14 | Abi | diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql deleted file mode 100644 index d713045ef75..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAbi.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x -where toBeTested(x) and not x.isUnknown() -select x, x.getAbi() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql deleted file mode 100644 index 2ac7fc2aa72..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql deleted file mode 100644 index f3b6ad363fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql deleted file mode 100644 index 5be455fe7d2..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql deleted file mode 100644 index f0bd607a179..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.expected deleted file mode 100644 index 83bb34c61ab..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_extern_block.rs:7:5:9:5 | ExternBlock | gen_extern_block.rs:7:16:9:5 | ExternItemList | diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql deleted file mode 100644 index 6d04cb67441..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock_getExternItemList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternBlock x -where toBeTested(x) and not x.isUnknown() -select x, x.getExternItemList() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/Cargo.lock b/rust/ql/test/extractor-tests/generated/ExternCrate/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected index f47afb2acb5..5f58cb72be5 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected @@ -1 +1,10 @@ +instances | gen_extern_crate.rs:4:5:7:23 | ExternCrate | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasRename: | no | hasVisibility: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getIdentifier +| gen_extern_crate.rs:4:5:7:23 | ExternCrate | gen_extern_crate.rs:7:18:7:22 | serde | +getRename +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql index cbcfd462473..fd2054d942e 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql @@ -2,28 +2,65 @@ import codeql.rust.elements import TestUtils -from - ExternCrate x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasIdentifier, string hasRename, - string hasVisibility -where +query predicate instances( + ExternCrate x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasIdentifier__label, string hasIdentifier, string hasRename__label, string hasRename, + string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasIdentifier__label = "hasIdentifier:" and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and + hasRename__label = "hasRename:" and (if x.hasRename() then hasRename = "yes" else hasRename = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasIdentifier:", hasIdentifier, "hasRename:", hasRename, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(ExternCrate x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(ExternCrate x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(ExternCrate x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(ExternCrate x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getIdentifier(ExternCrate x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} + +query predicate getRename(ExternCrate x, Rename getRename) { + toBeTested(x) and not x.isUnknown() and getRename = x.getRename() +} + +query predicate getVisibility(ExternCrate x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql deleted file mode 100644 index 68edd573a7a..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql deleted file mode 100644 index 0c7c0e8c89d..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql deleted file mode 100644 index b6b74730fe4..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql deleted file mode 100644 index 15959426eed..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.expected deleted file mode 100644 index 3e545d1761d..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_extern_crate.rs:4:5:7:23 | ExternCrate | gen_extern_crate.rs:7:18:7:22 | serde | diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql deleted file mode 100644 index 1a8f5693f13..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql deleted file mode 100644 index 82df3d60e05..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getRename.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getRename() diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql deleted file mode 100644 index e7a9b316e1b..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternCrate x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/Cargo.lock b/rust/ql/test/extractor-tests/generated/ExternItemList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ExternItemList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected index 9cc7190339f..7d9cf0f9166 100644 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected +++ b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected @@ -1 +1,6 @@ +instances | gen_extern_item_list.rs:7:16:10:5 | ExternItemList | getNumberOfAttrs: | 0 | getNumberOfExternItems: | 2 | +getAttr +getExternItem +| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | 0 | gen_extern_item_list.rs:8:9:8:17 | fn foo | +| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | 1 | gen_extern_item_list.rs:9:9:9:24 | Static | diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql index e9530f3c1aa..d74448c8ce3 100644 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql +++ b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ExternItemList x, int getNumberOfAttrs, int getNumberOfExternItems -where +query predicate instances( + ExternItemList x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfExternItems__label, int getNumberOfExternItems +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfExternItems__label = "getNumberOfExternItems:" and getNumberOfExternItems = x.getNumberOfExternItems() -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfExternItems:", getNumberOfExternItems +} + +query predicate getAttr(ExternItemList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExternItem(ExternItemList x, int index, ExternItem getExternItem) { + toBeTested(x) and not x.isUnknown() and getExternItem = x.getExternItem(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.expected b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql deleted file mode 100644 index 33a1c2f4c5c..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.expected b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.expected deleted file mode 100644 index a1f1b91aca6..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | 0 | gen_extern_item_list.rs:8:9:8:17 | fn foo | -| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | 1 | gen_extern_item_list.rs:9:9:9:24 | Static | diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql deleted file mode 100644 index d4be03a1d47..00000000000 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList_getExternItem.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ExternItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getExternItem(index) diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/FieldExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/FieldExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected index 9bb0e244fd1..d527171975b 100644 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected +++ b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected @@ -1 +1,7 @@ +instances | gen_field_expr.rs:5:5:5:9 | x.foo | getNumberOfAttrs: | 0 | hasContainer: | yes | hasIdentifier: | yes | +getAttr +getContainer +| gen_field_expr.rs:5:5:5:9 | x.foo | gen_field_expr.rs:5:5:5:5 | x | +getIdentifier +| gen_field_expr.rs:5:5:5:9 | x.foo | gen_field_expr.rs:5:7:5:9 | foo | diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql index 631e15698b6..d335d09c35d 100644 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql +++ b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from FieldExpr x, int getNumberOfAttrs, string hasContainer, string hasIdentifier -where +query predicate instances( + FieldExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasContainer__label, + string hasContainer, string hasIdentifier__label, string hasIdentifier +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasContainer__label = "hasContainer:" and (if x.hasContainer() then hasContainer = "yes" else hasContainer = "no") and + hasIdentifier__label = "hasIdentifier:" and if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasContainer:", hasContainer, "hasIdentifier:", - hasIdentifier +} + +query predicate getAttr(FieldExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getContainer(FieldExpr x, Expr getContainer) { + toBeTested(x) and not x.isUnknown() and getContainer = x.getContainer() +} + +query predicate getIdentifier(FieldExpr x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql deleted file mode 100644 index eeaad96fb6a..00000000000 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FieldExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.expected b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.expected deleted file mode 100644 index 7d21f7f7af8..00000000000 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_field_expr.rs:5:5:5:9 | x.foo | gen_field_expr.rs:5:5:5:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql deleted file mode 100644 index b32e302ad91..00000000000 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getContainer.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FieldExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getContainer() diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.expected deleted file mode 100644 index 0722ca1aaf2..00000000000 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_field_expr.rs:5:5:5:9 | x.foo | gen_field_expr.rs:5:7:5:9 | foo | diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql deleted file mode 100644 index 766fc85ab0f..00000000000 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FieldExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected index e70c54798b2..705459cf980 100644 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected @@ -1 +1,7 @@ +instances | gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | hasAbi: | no | isAsync: | no | isConst: | no | isUnsafe: | no | hasParamList: | yes | hasRetType: | yes | +getAbi +getParamList +| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | gen_fn_ptr_type_repr.rs:7:14:7:18 | ParamList | +getRetType +| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | gen_fn_ptr_type_repr.rs:7:20:7:25 | RetTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql index a3f3b81fcde..a9504b4d1b6 100644 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql @@ -2,17 +2,35 @@ import codeql.rust.elements import TestUtils -from - FnPtrTypeRepr x, string hasAbi, string isAsync, string isConst, string isUnsafe, - string hasParamList, string hasRetType -where +query predicate instances( + FnPtrTypeRepr x, string hasAbi__label, string hasAbi, string isAsync__label, string isAsync, + string isConst__label, string isConst, string isUnsafe__label, string isUnsafe, + string hasParamList__label, string hasParamList, string hasRetType__label, string hasRetType +) { toBeTested(x) and not x.isUnknown() and + hasAbi__label = "hasAbi:" and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and + isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasParamList__label = "hasParamList:" and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and + hasRetType__label = "hasRetType:" and if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" -select x, "hasAbi:", hasAbi, "isAsync:", isAsync, "isConst:", isConst, "isUnsafe:", isUnsafe, - "hasParamList:", hasParamList, "hasRetType:", hasRetType +} + +query predicate getAbi(FnPtrTypeRepr x, Abi getAbi) { + toBeTested(x) and not x.isUnknown() and getAbi = x.getAbi() +} + +query predicate getParamList(FnPtrTypeRepr x, ParamList getParamList) { + toBeTested(x) and not x.isUnknown() and getParamList = x.getParamList() +} + +query predicate getRetType(FnPtrTypeRepr x, RetTypeRepr getRetType) { + toBeTested(x) and not x.isUnknown() and getRetType = x.getRetType() +} diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.expected b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql deleted file mode 100644 index 738031ddf22..00000000000 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getAbi.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FnPtrTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getAbi() diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.expected b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.expected deleted file mode 100644 index 26e6ae2ef9f..00000000000 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | gen_fn_ptr_type_repr.rs:7:14:7:18 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql deleted file mode 100644 index bc5b5d935ca..00000000000 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FnPtrTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getParamList() diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.expected b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.expected deleted file mode 100644 index 244765e9506..00000000000 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | gen_fn_ptr_type_repr.rs:7:20:7:25 | RetTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql deleted file mode 100644 index a0bd1df08d9..00000000000 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr_getRetType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FnPtrTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getRetType() diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ForExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ForExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected index afe5349abb5..46d37f6db4f 100644 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected @@ -1 +1,10 @@ +instances | gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | hasIterable: | yes | hasPat: | yes | +getLabel +getLoopBody +| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:20:9:5 | { ... } | +getAttr +getIterable +| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:14:7:18 | 0..10 | +getPat +| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:9:7:9 | x | diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql index 60f5ab1e080..3d76f1e06d1 100644 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql @@ -2,16 +2,41 @@ import codeql.rust.elements import TestUtils -from - ForExpr x, string hasLabel, string hasLoopBody, int getNumberOfAttrs, string hasIterable, - string hasPat -where +query predicate instances( + ForExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, string hasLoopBody, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasIterable__label, + string hasIterable, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + hasLoopBody__label = "hasLoopBody:" and (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasIterable__label = "hasIterable:" and (if x.hasIterable() then hasIterable = "yes" else hasIterable = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "hasLabel:", hasLabel, "hasLoopBody:", hasLoopBody, "getNumberOfAttrs:", getNumberOfAttrs, - "hasIterable:", hasIterable, "hasPat:", hasPat +} + +query predicate getLabel(ForExpr x, Label getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getLoopBody(ForExpr x, BlockExpr getLoopBody) { + toBeTested(x) and not x.isUnknown() and getLoopBody = x.getLoopBody() +} + +query predicate getAttr(ForExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getIterable(ForExpr x, Expr getIterable) { + toBeTested(x) and not x.isUnknown() and getIterable = x.getIterable() +} + +query predicate getPat(ForExpr x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql deleted file mode 100644 index c348759b84e..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.expected deleted file mode 100644 index d73979b6df8..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:14:7:18 | 0..10 | diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql deleted file mode 100644 index 74218990350..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getIterable.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getIterable() diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql deleted file mode 100644 index 019495fcf98..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.expected deleted file mode 100644 index d0460f8ed7a..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:20:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql deleted file mode 100644 index 5cc166fa96f..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getLoopBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLoopBody() diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.expected deleted file mode 100644 index 44c312073f9..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:9:7:9 | x | diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql deleted file mode 100644 index 9f83218ea31..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ForTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected index 6adad498f31..c86e0a2a5b3 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected @@ -1 +1,6 @@ +instances | gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | hasGenericParamList: | yes | hasTypeRepr: | yes | +getGenericParamList +| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | gen_for_type_repr.rs:9:15:9:18 | <...> | +getTypeRepr +| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | gen_for_type_repr.rs:9:20:9:41 | Fn | diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql index 5cb8aeecde1..5efdf7267db 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ForTypeRepr x, string hasGenericParamList, string hasTypeRepr -where +query predicate instances( + ForTypeRepr x, string hasGenericParamList__label, string hasGenericParamList, + string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "hasGenericParamList:", hasGenericParamList, "hasTypeRepr:", hasTypeRepr +} + +query predicate getGenericParamList(ForTypeRepr x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getTypeRepr(ForTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.expected deleted file mode 100644 index 0cb4ba87209..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | gen_for_type_repr.rs:9:15:9:18 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql deleted file mode 100644 index 3ee936fca2a..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.expected deleted file mode 100644 index 14610d6319f..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | gen_for_type_repr.rs:9:20:9:41 | Fn | diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql deleted file mode 100644 index 677f61b023d..00000000000 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ForTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected index efd593719cc..343766da1fe 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected @@ -1,3 +1,4 @@ +instances | gen_format.rs:5:21:5:22 | {} | getParent: | gen_format.rs:5:14:5:32 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | no | | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | getParent: | gen_format.rs:7:14:7:47 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | | gen_format.rs:11:15:11:20 | {name} | getParent: | gen_format.rs:11:14:11:35 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | @@ -15,3 +16,25 @@ | gen_format_args_expr.rs:9:24:9:26 | {y} | getParent: | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getIndex: | 3 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | getParent: | gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | getParent: | gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | +getArgumentRef +| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:22:7:26 | value | +| gen_format.rs:11:15:11:20 | {name} | gen_format.rs:11:16:11:19 | name | +| gen_format.rs:12:15:12:17 | {0} | gen_format.rs:12:16:12:16 | 0 | +| gen_format_args_expr.rs:7:19:7:21 | {b} | gen_format_args_expr.rs:7:20:7:20 | b | +| gen_format_args_expr.rs:7:27:7:31 | {a:?} | gen_format_args_expr.rs:7:28:7:28 | a | +| gen_format_args_expr.rs:9:19:9:21 | {x} | gen_format_args_expr.rs:9:20:9:20 | x | +| gen_format_args_expr.rs:9:24:9:26 | {y} | gen_format_args_expr.rs:9:25:9:25 | y | +| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:22:5:26 | value | +| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:22:7:22 | 0 | +getWidthArgument +| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:29:7:33 | width | +| gen_format.rs:16:15:16:23 | {:width$} | gen_format.rs:16:17:16:21 | width | +| gen_format.rs:17:15:17:19 | {:1$} | gen_format.rs:17:17:17:17 | 1 | +| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:29:5:33 | width | +| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:25:7:25 | 1 | +getPrecisionArgument +| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:36:7:44 | precision | +| gen_format.rs:21:15:21:23 | {:.prec$} | gen_format.rs:21:18:21:21 | prec | +| gen_format.rs:22:15:22:20 | {:.1$} | gen_format.rs:22:18:22:18 | 1 | +| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:36:5:44 | precision | +| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:28:7:28 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql index 5c7893ea65c..d4338607d07 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql @@ -2,16 +2,33 @@ import codeql.rust.elements import TestUtils -from - Format x, FormatArgsExpr getParent, int getIndex, string hasArgumentRef, string hasWidthArgument, - string hasPrecisionArgument -where +query predicate instances( + Format x, string getParent__label, FormatArgsExpr getParent, string getIndex__label, int getIndex, + string hasArgumentRef__label, string hasArgumentRef, string hasWidthArgument__label, + string hasWidthArgument, string hasPrecisionArgument__label, string hasPrecisionArgument +) { toBeTested(x) and not x.isUnknown() and + getParent__label = "getParent:" and getParent = x.getParent() and + getIndex__label = "getIndex:" and getIndex = x.getIndex() and + hasArgumentRef__label = "hasArgumentRef:" and (if x.hasArgumentRef() then hasArgumentRef = "yes" else hasArgumentRef = "no") and + hasWidthArgument__label = "hasWidthArgument:" and (if x.hasWidthArgument() then hasWidthArgument = "yes" else hasWidthArgument = "no") and + hasPrecisionArgument__label = "hasPrecisionArgument:" and if x.hasPrecisionArgument() then hasPrecisionArgument = "yes" else hasPrecisionArgument = "no" -select x, "getParent:", getParent, "getIndex:", getIndex, "hasArgumentRef:", hasArgumentRef, - "hasWidthArgument:", hasWidthArgument, "hasPrecisionArgument:", hasPrecisionArgument +} + +query predicate getArgumentRef(Format x, FormatArgument getArgumentRef) { + toBeTested(x) and not x.isUnknown() and getArgumentRef = x.getArgumentRef() +} + +query predicate getWidthArgument(Format x, FormatArgument getWidthArgument) { + toBeTested(x) and not x.isUnknown() and getWidthArgument = x.getWidthArgument() +} + +query predicate getPrecisionArgument(Format x, FormatArgument getPrecisionArgument) { + toBeTested(x) and not x.isUnknown() and getPrecisionArgument = x.getPrecisionArgument() +} diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected index e1ce7c44998..7a5d087c888 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected @@ -1,3 +1,4 @@ +instances | gen_format.rs:5:26:5:32 | FormatArgsArg | hasExpr: | yes | hasName: | no | | gen_format.rs:12:35:12:38 | FormatArgsArg | hasExpr: | yes | hasName: | no | | gen_format.rs:16:27:16:28 | FormatArgsArg | hasExpr: | yes | hasName: | no | @@ -14,3 +15,23 @@ | gen_format_argument.rs:7:34:7:38 | FormatArgsArg | hasExpr: | yes | hasName: | no | | gen_format_argument.rs:7:41:7:45 | FormatArgsArg | hasExpr: | yes | hasName: | no | | gen_format_argument.rs:7:48:7:56 | FormatArgsArg | hasExpr: | yes | hasName: | no | +getExpr +| gen_format.rs:5:26:5:32 | FormatArgsArg | gen_format.rs:5:26:5:32 | "world" | +| gen_format.rs:12:35:12:38 | FormatArgsArg | gen_format.rs:12:35:12:38 | name | +| gen_format.rs:16:27:16:28 | FormatArgsArg | gen_format.rs:16:27:16:28 | PI | +| gen_format.rs:17:23:17:24 | FormatArgsArg | gen_format.rs:17:23:17:24 | PI | +| gen_format.rs:17:27:17:31 | FormatArgsArg | gen_format.rs:17:27:17:31 | width | +| gen_format.rs:21:27:21:28 | FormatArgsArg | gen_format.rs:21:27:21:28 | PI | +| gen_format.rs:22:24:22:25 | FormatArgsArg | gen_format.rs:22:24:22:25 | PI | +| gen_format.rs:22:28:22:31 | FormatArgsArg | gen_format.rs:22:28:22:31 | prec | +| gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | gen_format_args_arg.rs:5:32:5:38 | "world" | +| gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | gen_format_args_expr.rs:6:33:6:33 | 1 | +| gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | gen_format_args_expr.rs:6:36:6:36 | 2 | +| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | gen_format_args_expr.rs:7:37:7:37 | 1 | +| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | gen_format_args_expr.rs:7:42:7:42 | 2 | +| gen_format_argument.rs:7:34:7:38 | FormatArgsArg | gen_format_argument.rs:7:34:7:38 | value | +| gen_format_argument.rs:7:41:7:45 | FormatArgsArg | gen_format_argument.rs:7:41:7:45 | width | +| gen_format_argument.rs:7:48:7:56 | FormatArgsArg | gen_format_argument.rs:7:48:7:56 | precision | +getName +| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | gen_format_args_expr.rs:7:35:7:35 | a | +| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | gen_format_args_expr.rs:7:40:7:40 | b | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql index 428bd82909f..5da9bdc575e 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql @@ -2,10 +2,21 @@ import codeql.rust.elements import TestUtils -from FormatArgsArg x, string hasExpr, string hasName -where +query predicate instances( + FormatArgsArg x, string hasExpr__label, string hasExpr, string hasName__label, string hasName +) { toBeTested(x) and not x.isUnknown() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasName__label = "hasName:" and if x.hasName() then hasName = "yes" else hasName = "no" -select x, "hasExpr:", hasExpr, "hasName:", hasName +} + +query predicate getExpr(FormatArgsArg x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getName(FormatArgsArg x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.expected deleted file mode 100644 index 326f5d0415e..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.expected +++ /dev/null @@ -1,16 +0,0 @@ -| gen_format.rs:5:26:5:32 | FormatArgsArg | gen_format.rs:5:26:5:32 | "world" | -| gen_format.rs:12:35:12:38 | FormatArgsArg | gen_format.rs:12:35:12:38 | name | -| gen_format.rs:16:27:16:28 | FormatArgsArg | gen_format.rs:16:27:16:28 | PI | -| gen_format.rs:17:23:17:24 | FormatArgsArg | gen_format.rs:17:23:17:24 | PI | -| gen_format.rs:17:27:17:31 | FormatArgsArg | gen_format.rs:17:27:17:31 | width | -| gen_format.rs:21:27:21:28 | FormatArgsArg | gen_format.rs:21:27:21:28 | PI | -| gen_format.rs:22:24:22:25 | FormatArgsArg | gen_format.rs:22:24:22:25 | PI | -| gen_format.rs:22:28:22:31 | FormatArgsArg | gen_format.rs:22:28:22:31 | prec | -| gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | gen_format_args_arg.rs:5:32:5:38 | "world" | -| gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | gen_format_args_expr.rs:6:33:6:33 | 1 | -| gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | gen_format_args_expr.rs:6:36:6:36 | 2 | -| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | gen_format_args_expr.rs:7:37:7:37 | 1 | -| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | gen_format_args_expr.rs:7:42:7:42 | 2 | -| gen_format_argument.rs:7:34:7:38 | FormatArgsArg | gen_format_argument.rs:7:34:7:38 | value | -| gen_format_argument.rs:7:41:7:45 | FormatArgsArg | gen_format_argument.rs:7:41:7:45 | width | -| gen_format_argument.rs:7:48:7:56 | FormatArgsArg | gen_format_argument.rs:7:48:7:56 | precision | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql deleted file mode 100644 index ee67794f93a..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.expected deleted file mode 100644 index ad5d7ab4ab2..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | gen_format_args_expr.rs:7:35:7:35 | a | -| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | gen_format_args_expr.rs:7:40:7:40 | b | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql deleted file mode 100644 index 8f4bdb2a0c8..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected index d3319ded2fb..06d53d41b5c 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected @@ -1,3 +1,4 @@ +instances | gen_format.rs:5:14:5:32 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | | gen_format.rs:7:14:7:47 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | | gen_format.rs:11:14:11:35 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | @@ -13,3 +14,55 @@ | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 2 | | gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | | gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getNumberOfArgs: | 3 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | +getArg +| gen_format.rs:5:14:5:32 | FormatArgsExpr | 0 | gen_format.rs:5:26:5:32 | FormatArgsArg | +| gen_format.rs:12:14:12:38 | FormatArgsExpr | 0 | gen_format.rs:12:35:12:38 | FormatArgsArg | +| gen_format.rs:16:14:16:28 | FormatArgsExpr | 0 | gen_format.rs:16:27:16:28 | FormatArgsArg | +| gen_format.rs:17:14:17:31 | FormatArgsExpr | 0 | gen_format.rs:17:23:17:24 | FormatArgsArg | +| gen_format.rs:17:14:17:31 | FormatArgsExpr | 1 | gen_format.rs:17:27:17:31 | FormatArgsArg | +| gen_format.rs:21:14:21:28 | FormatArgsExpr | 0 | gen_format.rs:21:27:21:28 | FormatArgsArg | +| gen_format.rs:22:14:22:31 | FormatArgsExpr | 0 | gen_format.rs:22:24:22:25 | FormatArgsArg | +| gen_format.rs:22:14:22:31 | FormatArgsExpr | 1 | gen_format.rs:22:28:22:31 | FormatArgsArg | +| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | 0 | gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 0 | gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 1 | gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 0 | gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 1 | gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 0 | gen_format_argument.rs:7:34:7:38 | FormatArgsArg | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 1 | gen_format_argument.rs:7:41:7:45 | FormatArgsArg | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 2 | gen_format_argument.rs:7:48:7:56 | FormatArgsArg | +getAttr +getTemplate +| gen_format.rs:5:14:5:32 | FormatArgsExpr | gen_format.rs:5:14:5:23 | "Hello {}\\n" | +| gen_format.rs:7:14:7:47 | FormatArgsExpr | gen_format.rs:7:14:7:47 | "Value {value:#width$.precisio... | +| gen_format.rs:11:14:11:35 | FormatArgsExpr | gen_format.rs:11:14:11:35 | "{name} in wonderland\\n" | +| gen_format.rs:12:14:12:38 | FormatArgsExpr | gen_format.rs:12:14:12:32 | "{0} in wonderland\\n" | +| gen_format.rs:16:14:16:28 | FormatArgsExpr | gen_format.rs:16:14:16:24 | "{:width$}\\n" | +| gen_format.rs:17:14:17:31 | FormatArgsExpr | gen_format.rs:17:14:17:20 | "{:1$}\\n" | +| gen_format.rs:21:14:21:28 | FormatArgsExpr | gen_format.rs:21:14:21:24 | "{:.prec$}\\n" | +| gen_format.rs:22:14:22:31 | FormatArgsExpr | gen_format.rs:22:14:22:21 | "{:.1$}\\n" | +| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | gen_format_args_arg.rs:5:18:5:29 | "Hello, {}!" | +| gen_format_args_expr.rs:5:17:5:27 | FormatArgsExpr | gen_format_args_expr.rs:5:18:5:26 | "no args" | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | gen_format_args_expr.rs:6:18:6:30 | "{} foo {:?}" | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | gen_format_args_expr.rs:7:18:7:32 | "{b} foo {a:?}" | +| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | gen_format_args_expr.rs:9:18:9:27 | "{x}, {y}" | +| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | gen_format_argument.rs:5:14:5:47 | "Value {value:#width$.precisio... | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | gen_format_argument.rs:7:14:7:31 | "Value {0:#1$.2$}\\n" | +getFormat +| gen_format.rs:5:14:5:32 | FormatArgsExpr | 0 | gen_format.rs:5:21:5:22 | {} | +| gen_format.rs:7:14:7:47 | FormatArgsExpr | 0 | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | +| gen_format.rs:11:14:11:35 | FormatArgsExpr | 0 | gen_format.rs:11:15:11:20 | {name} | +| gen_format.rs:12:14:12:38 | FormatArgsExpr | 0 | gen_format.rs:12:15:12:17 | {0} | +| gen_format.rs:16:14:16:28 | FormatArgsExpr | 0 | gen_format.rs:16:15:16:23 | {:width$} | +| gen_format.rs:17:14:17:31 | FormatArgsExpr | 0 | gen_format.rs:17:15:17:19 | {:1$} | +| gen_format.rs:21:14:21:28 | FormatArgsExpr | 0 | gen_format.rs:21:15:21:23 | {:.prec$} | +| gen_format.rs:22:14:22:31 | FormatArgsExpr | 0 | gen_format.rs:22:15:22:20 | {:.1$} | +| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | 0 | gen_format_args_arg.rs:5:26:5:27 | {} | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 0 | gen_format_args_expr.rs:6:19:6:20 | {} | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 1 | gen_format_args_expr.rs:6:26:6:29 | {:?} | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 0 | gen_format_args_expr.rs:7:19:7:21 | {b} | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 1 | gen_format_args_expr.rs:7:27:7:31 | {a:?} | +| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | 0 | gen_format_args_expr.rs:9:19:9:21 | {x} | +| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | 1 | gen_format_args_expr.rs:9:24:9:26 | {y} | +| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | 0 | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 0 | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql index 6a43bc1ea0a..25a605ba291 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql @@ -2,15 +2,35 @@ import codeql.rust.elements import TestUtils -from - FormatArgsExpr x, int getNumberOfArgs, int getNumberOfAttrs, string hasTemplate, - int getNumberOfFormats -where +query predicate instances( + FormatArgsExpr x, string getNumberOfArgs__label, int getNumberOfArgs, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTemplate__label, + string hasTemplate, string getNumberOfFormats__label, int getNumberOfFormats +) { toBeTested(x) and not x.isUnknown() and + getNumberOfArgs__label = "getNumberOfArgs:" and getNumberOfArgs = x.getNumberOfArgs() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasTemplate__label = "hasTemplate:" and (if x.hasTemplate() then hasTemplate = "yes" else hasTemplate = "no") and + getNumberOfFormats__label = "getNumberOfFormats:" and getNumberOfFormats = x.getNumberOfFormats() -select x, "getNumberOfArgs:", getNumberOfArgs, "getNumberOfAttrs:", getNumberOfAttrs, - "hasTemplate:", hasTemplate, "getNumberOfFormats:", getNumberOfFormats +} + +query predicate getArg(FormatArgsExpr x, int index, FormatArgsArg getArg) { + toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) +} + +query predicate getAttr(FormatArgsExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTemplate(FormatArgsExpr x, Expr getTemplate) { + toBeTested(x) and not x.isUnknown() and getTemplate = x.getTemplate() +} + +query predicate getFormat(FormatArgsExpr x, int index, Format getFormat) { + toBeTested(x) and not x.isUnknown() and getFormat = x.getFormat(index) +} diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.expected deleted file mode 100644 index 8a6e0ba1227..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.expected +++ /dev/null @@ -1,16 +0,0 @@ -| gen_format.rs:5:14:5:32 | FormatArgsExpr | 0 | gen_format.rs:5:26:5:32 | FormatArgsArg | -| gen_format.rs:12:14:12:38 | FormatArgsExpr | 0 | gen_format.rs:12:35:12:38 | FormatArgsArg | -| gen_format.rs:16:14:16:28 | FormatArgsExpr | 0 | gen_format.rs:16:27:16:28 | FormatArgsArg | -| gen_format.rs:17:14:17:31 | FormatArgsExpr | 0 | gen_format.rs:17:23:17:24 | FormatArgsArg | -| gen_format.rs:17:14:17:31 | FormatArgsExpr | 1 | gen_format.rs:17:27:17:31 | FormatArgsArg | -| gen_format.rs:21:14:21:28 | FormatArgsExpr | 0 | gen_format.rs:21:27:21:28 | FormatArgsArg | -| gen_format.rs:22:14:22:31 | FormatArgsExpr | 0 | gen_format.rs:22:24:22:25 | FormatArgsArg | -| gen_format.rs:22:14:22:31 | FormatArgsExpr | 1 | gen_format.rs:22:28:22:31 | FormatArgsArg | -| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | 0 | gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 0 | gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 1 | gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 0 | gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 1 | gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 0 | gen_format_argument.rs:7:34:7:38 | FormatArgsArg | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 1 | gen_format_argument.rs:7:41:7:45 | FormatArgsArg | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 2 | gen_format_argument.rs:7:48:7:56 | FormatArgsArg | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql deleted file mode 100644 index 1bf575a0f86..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql deleted file mode 100644 index bfaf15b6ff5..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.expected deleted file mode 100644 index 3b6486bcfdb..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.expected +++ /dev/null @@ -1,17 +0,0 @@ -| gen_format.rs:5:14:5:32 | FormatArgsExpr | 0 | gen_format.rs:5:21:5:22 | {} | -| gen_format.rs:7:14:7:47 | FormatArgsExpr | 0 | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | -| gen_format.rs:11:14:11:35 | FormatArgsExpr | 0 | gen_format.rs:11:15:11:20 | {name} | -| gen_format.rs:12:14:12:38 | FormatArgsExpr | 0 | gen_format.rs:12:15:12:17 | {0} | -| gen_format.rs:16:14:16:28 | FormatArgsExpr | 0 | gen_format.rs:16:15:16:23 | {:width$} | -| gen_format.rs:17:14:17:31 | FormatArgsExpr | 0 | gen_format.rs:17:15:17:19 | {:1$} | -| gen_format.rs:21:14:21:28 | FormatArgsExpr | 0 | gen_format.rs:21:15:21:23 | {:.prec$} | -| gen_format.rs:22:14:22:31 | FormatArgsExpr | 0 | gen_format.rs:22:15:22:20 | {:.1$} | -| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | 0 | gen_format_args_arg.rs:5:26:5:27 | {} | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 0 | gen_format_args_expr.rs:6:19:6:20 | {} | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | 1 | gen_format_args_expr.rs:6:26:6:29 | {:?} | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 0 | gen_format_args_expr.rs:7:19:7:21 | {b} | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | 1 | gen_format_args_expr.rs:7:27:7:31 | {a:?} | -| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | 0 | gen_format_args_expr.rs:9:19:9:21 | {x} | -| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | 1 | gen_format_args_expr.rs:9:24:9:26 | {y} | -| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | 0 | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | 0 | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql deleted file mode 100644 index ca61ca2bebd..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getFormat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getFormat(index) diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.expected deleted file mode 100644 index 3ef17d6470a..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.expected +++ /dev/null @@ -1,15 +0,0 @@ -| gen_format.rs:5:14:5:32 | FormatArgsExpr | gen_format.rs:5:14:5:23 | "Hello {}\\n" | -| gen_format.rs:7:14:7:47 | FormatArgsExpr | gen_format.rs:7:14:7:47 | "Value {value:#width$.precisio... | -| gen_format.rs:11:14:11:35 | FormatArgsExpr | gen_format.rs:11:14:11:35 | "{name} in wonderland\\n" | -| gen_format.rs:12:14:12:38 | FormatArgsExpr | gen_format.rs:12:14:12:32 | "{0} in wonderland\\n" | -| gen_format.rs:16:14:16:28 | FormatArgsExpr | gen_format.rs:16:14:16:24 | "{:width$}\\n" | -| gen_format.rs:17:14:17:31 | FormatArgsExpr | gen_format.rs:17:14:17:20 | "{:1$}\\n" | -| gen_format.rs:21:14:21:28 | FormatArgsExpr | gen_format.rs:21:14:21:24 | "{:.prec$}\\n" | -| gen_format.rs:22:14:22:31 | FormatArgsExpr | gen_format.rs:22:14:22:21 | "{:.1$}\\n" | -| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | gen_format_args_arg.rs:5:18:5:29 | "Hello, {}!" | -| gen_format_args_expr.rs:5:17:5:27 | FormatArgsExpr | gen_format_args_expr.rs:5:18:5:26 | "no args" | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | gen_format_args_expr.rs:6:18:6:30 | "{} foo {:?}" | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | gen_format_args_expr.rs:7:18:7:32 | "{b} foo {a:?}" | -| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | gen_format_args_expr.rs:9:18:9:27 | "{x}, {y}" | -| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | gen_format_argument.rs:5:14:5:47 | "Value {value:#width$.precisio... | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | gen_format_argument.rs:7:14:7:31 | "Value {0:#1$.2$}\\n" | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql deleted file mode 100644 index b43b24ed4f2..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr_getTemplate.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgsExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTemplate() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected index 6da44e9d84b..05488044629 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected @@ -1,3 +1,4 @@ +instances | gen_format.rs:7:22:7:26 | value | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | | gen_format.rs:7:29:7:33 | width | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | | gen_format.rs:7:36:7:44 | precision | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | @@ -17,3 +18,15 @@ | gen_format_argument.rs:7:22:7:22 | 0 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | | gen_format_argument.rs:7:25:7:25 | 1 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | | gen_format_argument.rs:7:28:7:28 | 2 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | +getVariable +| gen_format.rs:7:22:7:26 | value | gen_format.rs:7:22:7:26 | value | +| gen_format.rs:7:29:7:33 | width | gen_format.rs:7:29:7:33 | width | +| gen_format.rs:7:36:7:44 | precision | gen_format.rs:7:36:7:44 | precision | +| gen_format.rs:11:16:11:19 | name | gen_format.rs:11:16:11:19 | name | +| gen_format.rs:16:17:16:21 | width | gen_format.rs:16:17:16:21 | width | +| gen_format.rs:21:18:21:21 | prec | gen_format.rs:21:18:21:21 | prec | +| gen_format_args_expr.rs:9:20:9:20 | x | gen_format_args_expr.rs:9:20:9:20 | x | +| gen_format_args_expr.rs:9:25:9:25 | y | gen_format_args_expr.rs:9:25:9:25 | y | +| gen_format_argument.rs:5:22:5:26 | value | gen_format_argument.rs:5:22:5:26 | value | +| gen_format_argument.rs:5:29:5:33 | width | gen_format_argument.rs:5:29:5:33 | width | +| gen_format_argument.rs:5:36:5:44 | precision | gen_format_argument.rs:5:36:5:44 | precision | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql index ed57154f7e8..803f657e089 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql @@ -2,10 +2,18 @@ import codeql.rust.elements import TestUtils -from FormatArgument x, Format getParent, string hasVariable -where +query predicate instances( + FormatArgument x, string getParent__label, Format getParent, string hasVariable__label, + string hasVariable +) { toBeTested(x) and not x.isUnknown() and + getParent__label = "getParent:" and getParent = x.getParent() and + hasVariable__label = "hasVariable:" and if x.hasVariable() then hasVariable = "yes" else hasVariable = "no" -select x, "getParent:", getParent, "hasVariable:", hasVariable +} + +query predicate getVariable(FormatArgument x, FormatTemplateVariableAccess getVariable) { + toBeTested(x) and not x.isUnknown() and getVariable = x.getVariable() +} diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.expected deleted file mode 100644 index 46b5e6255e1..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.expected +++ /dev/null @@ -1,11 +0,0 @@ -| gen_format.rs:7:22:7:26 | value | gen_format.rs:7:22:7:26 | value | -| gen_format.rs:7:29:7:33 | width | gen_format.rs:7:29:7:33 | width | -| gen_format.rs:7:36:7:44 | precision | gen_format.rs:7:36:7:44 | precision | -| gen_format.rs:11:16:11:19 | name | gen_format.rs:11:16:11:19 | name | -| gen_format.rs:16:17:16:21 | width | gen_format.rs:16:17:16:21 | width | -| gen_format.rs:21:18:21:21 | prec | gen_format.rs:21:18:21:21 | prec | -| gen_format_args_expr.rs:9:20:9:20 | x | gen_format_args_expr.rs:9:20:9:20 | x | -| gen_format_args_expr.rs:9:25:9:25 | y | gen_format_args_expr.rs:9:25:9:25 | y | -| gen_format_argument.rs:5:22:5:26 | value | gen_format_argument.rs:5:22:5:26 | value | -| gen_format_argument.rs:5:29:5:33 | width | gen_format_argument.rs:5:29:5:33 | width | -| gen_format_argument.rs:5:36:5:44 | precision | gen_format_argument.rs:5:36:5:44 | precision | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql deleted file mode 100644 index 5d303bc4b6c..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument_getVariable.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from FormatArgument x -where toBeTested(x) and not x.isUnknown() -select x, x.getVariable() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql index 4f43ca11870..8a75f9cdb54 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from FormatTemplateVariableAccess x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(FormatTemplateVariableAccess x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.expected deleted file mode 100644 index 5df8716a659..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.expected +++ /dev/null @@ -1,9 +0,0 @@ -| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:22:7:26 | value | -| gen_format.rs:11:15:11:20 | {name} | gen_format.rs:11:16:11:19 | name | -| gen_format.rs:12:15:12:17 | {0} | gen_format.rs:12:16:12:16 | 0 | -| gen_format_args_expr.rs:7:19:7:21 | {b} | gen_format_args_expr.rs:7:20:7:20 | b | -| gen_format_args_expr.rs:7:27:7:31 | {a:?} | gen_format_args_expr.rs:7:28:7:28 | a | -| gen_format_args_expr.rs:9:19:9:21 | {x} | gen_format_args_expr.rs:9:20:9:20 | x | -| gen_format_args_expr.rs:9:24:9:26 | {y} | gen_format_args_expr.rs:9:25:9:25 | y | -| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:22:5:26 | value | -| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:22:7:22 | 0 | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql deleted file mode 100644 index e9958bcf0fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getArgumentRef.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Format x -where toBeTested(x) and not x.isUnknown() -select x, x.getArgumentRef() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.expected deleted file mode 100644 index 21a246404d7..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:36:7:44 | precision | -| gen_format.rs:21:15:21:23 | {:.prec$} | gen_format.rs:21:18:21:21 | prec | -| gen_format.rs:22:15:22:20 | {:.1$} | gen_format.rs:22:18:22:18 | 1 | -| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:36:5:44 | precision | -| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:28:7:28 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql deleted file mode 100644 index 4b690bb0cc1..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getPrecisionArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Format x -where toBeTested(x) and not x.isUnknown() -select x, x.getPrecisionArgument() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.expected deleted file mode 100644 index 9e009ee4fd1..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:29:7:33 | width | -| gen_format.rs:16:15:16:23 | {:width$} | gen_format.rs:16:17:16:21 | width | -| gen_format.rs:17:15:17:19 | {:1$} | gen_format.rs:17:17:17:17 | 1 | -| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | gen_format_argument.rs:5:29:5:33 | width | -| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | gen_format_argument.rs:7:25:7:25 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql deleted file mode 100644 index 62fe11f48eb..00000000000 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format_getWidthArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Format x -where toBeTested(x) and not x.isUnknown() -select x, x.getWidthArgument() diff --git a/rust/ql/test/extractor-tests/generated/Function/Cargo.lock b/rust/ql/test/extractor-tests/generated/Function/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Function/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index 967606c2542..2bcd8aa2f59 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,2 +1,27 @@ +instances | gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | yes | | gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | no | +getParamList +| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:7:4:14 | ParamList | +| gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:11:7:12 | ParamList | +getAttr +getParam +| gen_function.rs:3:1:4:38 | fn foo | 0 | gen_function.rs:4:8:4:13 | ...: u32 | +getExtendedCanonicalPath +| gen_function.rs:3:1:4:38 | fn foo | crate::gen_function::foo | +| gen_function.rs:7:5:7:13 | fn bar | crate::gen_function::Trait::bar | +getCrateOrigin +| gen_function.rs:3:1:4:38 | fn foo | repo::test | +| gen_function.rs:7:5:7:13 | fn bar | repo::test | +getAttributeMacroExpansion +getAbi +getBody +| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:23:4:38 | { ... } | +getGenericParamList +getName +| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:4:4:6 | foo | +| gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:8:7:10 | bar | +getRetType +| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:16:4:21 | RetTypeRepr | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index 5e50f7a4ac0..3eeabcbe35c 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -2,46 +2,120 @@ import codeql.rust.elements import TestUtils -from - Function x, string hasParamList, int getNumberOfAttrs, int getNumberOfParams, - string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - string hasAbi, string hasBody, string hasGenericParamList, string isAsync, string isConst, - string isDefault, string isGen, string isUnsafe, string hasName, string hasRetType, - string hasVisibility, string hasWhereClause, string hasImplementation -where +query predicate instances( + Function x, string hasParamList__label, string hasParamList, string getNumberOfAttrs__label, + int getNumberOfAttrs, string getNumberOfParams__label, int getNumberOfParams, + string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string hasAbi__label, string hasAbi, string hasBody__label, + string hasBody, string hasGenericParamList__label, string hasGenericParamList, + string isAsync__label, string isAsync, string isConst__label, string isConst, + string isDefault__label, string isDefault, string isGen__label, string isGen, + string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, + string hasRetType__label, string hasRetType, string hasVisibility__label, string hasVisibility, + string hasWhereClause__label, string hasWhereClause, string hasImplementation__label, + string hasImplementation +) { toBeTested(x) and not x.isUnknown() and + hasParamList__label = "hasParamList:" and (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + hasAbi__label = "hasAbi:" and (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and + isGen__label = "isGen:" and (if x.isGen() then isGen = "yes" else isGen = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasRetType__label = "hasRetType:" and (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and (if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and + hasImplementation__label = "hasImplementation:" and if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no" -select x, "hasParamList:", hasParamList, "getNumberOfAttrs:", getNumberOfAttrs, - "getNumberOfParams:", getNumberOfParams, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, - "hasCrateOrigin:", hasCrateOrigin, "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, - "hasAbi:", hasAbi, "hasBody:", hasBody, "hasGenericParamList:", hasGenericParamList, "isAsync:", - isAsync, "isConst:", isConst, "isDefault:", isDefault, "isGen:", isGen, "isUnsafe:", isUnsafe, - "hasName:", hasName, "hasRetType:", hasRetType, "hasVisibility:", hasVisibility, - "hasWhereClause:", hasWhereClause, "hasImplementation:", hasImplementation +} + +query predicate getParamList(Function x, ParamList getParamList) { + toBeTested(x) and not x.isUnknown() and getParamList = x.getParamList() +} + +query predicate getAttr(Function x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getParam(Function x, int index, Param getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} + +query predicate getExtendedCanonicalPath(Function x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Function x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Function x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAbi(Function x, Abi getAbi) { + toBeTested(x) and not x.isUnknown() and getAbi = x.getAbi() +} + +query predicate getBody(Function x, BlockExpr getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getGenericParamList(Function x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Function x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getRetType(Function x, RetTypeRepr getRetType) { + toBeTested(x) and not x.isUnknown() and getRetType = x.getRetType() +} + +query predicate getVisibility(Function x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Function x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAbi.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getAbi.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAbi.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getAbi.ql deleted file mode 100644 index a1317ed761f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getAbi.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getAbi() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAttr.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAttr.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getAttr.ql deleted file mode 100644 index 239c6da56c4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql deleted file mode 100644 index 4bb6e2852cb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getBody.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getBody.expected deleted file mode 100644 index 894900b3eaa..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:23:4:38 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getBody.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getBody.ql deleted file mode 100644 index 5b3191cac00..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.expected deleted file mode 100644 index eabc941bd5b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | repo::test | -| gen_function.rs:7:5:7:13 | fn bar | repo::test | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql deleted file mode 100644 index 933e5867d84..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.expected deleted file mode 100644 index 2c0059ebc2a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | crate::gen_function::foo | -| gen_function.rs:7:5:7:13 | fn bar | crate::gen_function::Trait::bar | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql deleted file mode 100644 index f2c413748de..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.ql deleted file mode 100644 index 410d28c3ef8..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getName.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getName.expected deleted file mode 100644 index 7e889e82d28..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:4:4:6 | foo | -| gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:8:7:10 | bar | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getName.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getName.ql deleted file mode 100644 index 8d1e2fbfe20..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected deleted file mode 100644 index 6a7340509a7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | 0 | gen_function.rs:4:8:4:13 | ...: u32 | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql deleted file mode 100644 index c936ea99da7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.expected deleted file mode 100644 index df581061919..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:7:4:14 | ParamList | -| gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:11:7:12 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.ql deleted file mode 100644 index 6d9fed49b7b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getParamList() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.expected deleted file mode 100644 index f9778c63c7e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:16:4:21 | RetTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.ql deleted file mode 100644 index 123640add8b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getRetType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getRetType() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.ql deleted file mode 100644 index 1aa04da90e9..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.ql deleted file mode 100644 index b4f5bd56274..00000000000 --- a/rust/ql/test/extractor-tests/generated/Function/Function_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Function x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/Cargo.lock b/rust/ql/test/extractor-tests/generated/GenericArgList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/GenericArgList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected index d2a5b7bcd8f..12c897e3ba9 100644 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected +++ b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected @@ -1 +1,5 @@ +instances | gen_generic_arg_list.rs:5:10:5:21 | <...> | getNumberOfGenericArgs: | 2 | +getGenericArg +| gen_generic_arg_list.rs:5:10:5:21 | <...> | 0 | gen_generic_arg_list.rs:5:13:5:15 | TypeArg | +| gen_generic_arg_list.rs:5:10:5:21 | <...> | 1 | gen_generic_arg_list.rs:5:18:5:20 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql index bd3e8bfb63f..6d4d6790931 100644 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql +++ b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from GenericArgList x, int getNumberOfGenericArgs -where +query predicate instances( + GenericArgList x, string getNumberOfGenericArgs__label, int getNumberOfGenericArgs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericArgs__label = "getNumberOfGenericArgs:" and getNumberOfGenericArgs = x.getNumberOfGenericArgs() -select x, "getNumberOfGenericArgs:", getNumberOfGenericArgs +} + +query predicate getGenericArg(GenericArgList x, int index, GenericArg getGenericArg) { + toBeTested(x) and not x.isUnknown() and getGenericArg = x.getGenericArg(index) +} diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.expected b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.expected deleted file mode 100644 index 69e416a57ad..00000000000 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_generic_arg_list.rs:5:10:5:21 | <...> | 0 | gen_generic_arg_list.rs:5:13:5:15 | TypeArg | -| gen_generic_arg_list.rs:5:10:5:21 | <...> | 1 | gen_generic_arg_list.rs:5:18:5:20 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql deleted file mode 100644 index cc13c85782a..00000000000 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList_getGenericArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from GenericArgList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericArg(index) diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/Cargo.lock b/rust/ql/test/extractor-tests/generated/GenericParamList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/GenericParamList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected index 22f71c13aa6..e5cfac8b7f8 100644 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected +++ b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected @@ -1,2 +1,8 @@ +instances | gen_generic_param_list.rs:5:9:5:14 | <...> | getNumberOfGenericParams: | 2 | | gen_generic_param_list.rs:7:13:7:20 | <...> | getNumberOfGenericParams: | 2 | +getGenericParam +| gen_generic_param_list.rs:5:9:5:14 | <...> | 0 | gen_generic_param_list.rs:5:10:5:10 | A | +| gen_generic_param_list.rs:5:9:5:14 | <...> | 1 | gen_generic_param_list.rs:5:13:5:13 | B | +| gen_generic_param_list.rs:7:13:7:20 | <...> | 0 | gen_generic_param_list.rs:7:14:7:15 | T1 | +| gen_generic_param_list.rs:7:13:7:20 | <...> | 1 | gen_generic_param_list.rs:7:18:7:19 | T2 | diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql index b79afcf33f7..3fc02a5ce09 100644 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql +++ b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from GenericParamList x, int getNumberOfGenericParams -where +query predicate instances( + GenericParamList x, string getNumberOfGenericParams__label, int getNumberOfGenericParams +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericParams__label = "getNumberOfGenericParams:" and getNumberOfGenericParams = x.getNumberOfGenericParams() -select x, "getNumberOfGenericParams:", getNumberOfGenericParams +} + +query predicate getGenericParam(GenericParamList x, int index, GenericParam getGenericParam) { + toBeTested(x) and not x.isUnknown() and getGenericParam = x.getGenericParam(index) +} diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.expected b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.expected deleted file mode 100644 index 01af2d987e9..00000000000 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_generic_param_list.rs:5:9:5:14 | <...> | 0 | gen_generic_param_list.rs:5:10:5:10 | A | -| gen_generic_param_list.rs:5:9:5:14 | <...> | 1 | gen_generic_param_list.rs:5:13:5:13 | B | -| gen_generic_param_list.rs:7:13:7:20 | <...> | 0 | gen_generic_param_list.rs:7:14:7:15 | T1 | -| gen_generic_param_list.rs:7:13:7:20 | <...> | 1 | gen_generic_param_list.rs:7:18:7:19 | T2 | diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql deleted file mode 100644 index 323c11e3841..00000000000 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList_getGenericParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from GenericParamList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericParam(index) diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/IdentPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/IdentPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected index e00fd230ad1..b70e2bfec0c 100644 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected +++ b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected @@ -1,2 +1,9 @@ +instances | gen_ident_pat.rs:6:22:6:22 | y | getNumberOfAttrs: | 0 | isMut: | no | isRef: | no | hasName: | yes | hasPat: | no | | gen_ident_pat.rs:10:9:10:25 | y @ ... | getNumberOfAttrs: | 0 | isMut: | no | isRef: | no | hasName: | yes | hasPat: | yes | +getAttr +getName +| gen_ident_pat.rs:6:22:6:22 | y | gen_ident_pat.rs:6:22:6:22 | y | +| gen_ident_pat.rs:10:9:10:25 | y @ ... | gen_ident_pat.rs:10:9:10:9 | y | +getPat +| gen_ident_pat.rs:10:9:10:25 | y @ ... | gen_ident_pat.rs:10:11:10:25 | ...::Some(...) | diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql index 3587ccff9ae..11414905db3 100644 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql +++ b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql @@ -2,14 +2,33 @@ import codeql.rust.elements import TestUtils -from IdentPat x, int getNumberOfAttrs, string isMut, string isRef, string hasName, string hasPat -where +query predicate instances( + IdentPat x, string getNumberOfAttrs__label, int getNumberOfAttrs, string isMut__label, + string isMut, string isRef__label, string isRef, string hasName__label, string hasName, + string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + isRef__label = "isRef:" and (if x.isRef() then isRef = "yes" else isRef = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "isMut:", isMut, "isRef:", isRef, "hasName:", - hasName, "hasPat:", hasPat +} + +query predicate getAttr(IdentPat x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getName(IdentPat x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getPat(IdentPat x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.expected b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql deleted file mode 100644 index 8dde5cce1ca..00000000000 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IdentPat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.expected b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.expected deleted file mode 100644 index c3009e862a4..00000000000 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_ident_pat.rs:6:22:6:22 | y | gen_ident_pat.rs:6:22:6:22 | y | -| gen_ident_pat.rs:10:9:10:25 | y @ ... | gen_ident_pat.rs:10:9:10:9 | y | diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.ql b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.ql deleted file mode 100644 index e96736741f5..00000000000 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IdentPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.expected b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.expected deleted file mode 100644 index 6ae1d9f978a..00000000000 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_ident_pat.rs:10:9:10:25 | y @ ... | gen_ident_pat.rs:10:11:10:25 | ...::Some(...) | diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql deleted file mode 100644 index 14d979626d4..00000000000 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IdentPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/IfExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/IfExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected index d9a33ad74f7..e4f4ca3a621 100644 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected +++ b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected @@ -1,2 +1,12 @@ +instances | gen_if_expr.rs:5:5:7:5 | if ... {...} | getNumberOfAttrs: | 0 | hasCondition: | yes | hasElse: | no | hasThen: | yes | | gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | getNumberOfAttrs: | 0 | hasCondition: | yes | hasElse: | yes | hasThen: | yes | +getAttr +getCondition +| gen_if_expr.rs:5:5:7:5 | if ... {...} | gen_if_expr.rs:5:8:5:14 | ... == ... | +| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:8:16:8:20 | ... > ... | +getElse +| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:10:12:12:5 | { ... } | +getThen +| gen_if_expr.rs:5:5:7:5 | if ... {...} | gen_if_expr.rs:5:16:7:5 | { ... } | +| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:8:22:10:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql index e7281627957..68623b44d2e 100644 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql +++ b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql @@ -2,13 +2,34 @@ import codeql.rust.elements import TestUtils -from IfExpr x, int getNumberOfAttrs, string hasCondition, string hasElse, string hasThen -where +query predicate instances( + IfExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasCondition__label, + string hasCondition, string hasElse__label, string hasElse, string hasThen__label, string hasThen +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasCondition__label = "hasCondition:" and (if x.hasCondition() then hasCondition = "yes" else hasCondition = "no") and + hasElse__label = "hasElse:" and (if x.hasElse() then hasElse = "yes" else hasElse = "no") and + hasThen__label = "hasThen:" and if x.hasThen() then hasThen = "yes" else hasThen = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasCondition:", hasCondition, "hasElse:", hasElse, - "hasThen:", hasThen +} + +query predicate getAttr(IfExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getCondition(IfExpr x, Expr getCondition) { + toBeTested(x) and not x.isUnknown() and getCondition = x.getCondition() +} + +query predicate getElse(IfExpr x, Expr getElse) { + toBeTested(x) and not x.isUnknown() and getElse = x.getElse() +} + +query predicate getThen(IfExpr x, BlockExpr getThen) { + toBeTested(x) and not x.isUnknown() and getThen = x.getThen() +} diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql deleted file mode 100644 index 46f5bde3e3b..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IfExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.expected deleted file mode 100644 index 4990a47bc96..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_if_expr.rs:5:5:7:5 | if ... {...} | gen_if_expr.rs:5:8:5:14 | ... == ... | -| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:8:16:8:20 | ... > ... | diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql deleted file mode 100644 index 459d6961e5a..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getCondition.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IfExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getCondition() diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.expected deleted file mode 100644 index a03626f5e5d..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:10:12:12:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql deleted file mode 100644 index 187637aab21..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getElse.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IfExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getElse() diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.expected deleted file mode 100644 index 6080b004f38..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_if_expr.rs:5:5:7:5 | if ... {...} | gen_if_expr.rs:5:16:7:5 | { ... } | -| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | gen_if_expr.rs:8:22:10:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql deleted file mode 100644 index 35fa0919661..00000000000 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr_getThen.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IfExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getThen() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Cargo.lock b/rust/ql/test/extractor-tests/generated/Impl/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Impl/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl.expected index 5297703e7d8..8984fd58233 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.expected +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.expected @@ -1 +1,15 @@ +instances | gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isConst: | no | isDefault: | no | isUnsafe: | no | hasSelfTy: | yes | hasTrait: | yes | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAssocItemList +| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:29:9:5 | AssocItemList | +getAttr +getGenericParamList +getSelfTy +| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:22:7:27 | MyType | +getTrait +| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:10:7:16 | MyTrait | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql index fa92053a217..d8f94a612ad 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql @@ -2,37 +2,92 @@ import codeql.rust.elements import TestUtils -from - Impl x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - string hasAssocItemList, int getNumberOfAttrs, string hasGenericParamList, string isConst, - string isDefault, string isUnsafe, string hasSelfTy, string hasTrait, string hasVisibility, - string hasWhereClause -where +query predicate instances( + Impl x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string hasAssocItemList__label, string hasAssocItemList, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasGenericParamList__label, + string hasGenericParamList, string isConst__label, string isConst, string isDefault__label, + string isDefault, string isUnsafe__label, string isUnsafe, string hasSelfTy__label, + string hasSelfTy, string hasTrait__label, string hasTrait, string hasVisibility__label, + string hasVisibility, string hasWhereClause__label, string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + hasAssocItemList__label = "hasAssocItemList:" and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasSelfTy__label = "hasSelfTy:" and (if x.hasSelfTy() then hasSelfTy = "yes" else hasSelfTy = "no") and + hasTrait__label = "hasTrait:" and (if x.hasTrait() then hasTrait = "yes" else hasTrait = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAssocItemList:", hasAssocItemList, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isConst:", - isConst, "isDefault:", isDefault, "isUnsafe:", isUnsafe, "hasSelfTy:", hasSelfTy, "hasTrait:", - hasTrait, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(Impl x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Impl x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Impl x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAssocItemList(Impl x, AssocItemList getAssocItemList) { + toBeTested(x) and not x.isUnknown() and getAssocItemList = x.getAssocItemList() +} + +query predicate getAttr(Impl x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(Impl x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getSelfTy(Impl x, TypeRepr getSelfTy) { + toBeTested(x) and not x.isUnknown() and getSelfTy = x.getSelfTy() +} + +query predicate getTrait(Impl x, TypeRepr getTrait) { + toBeTested(x) and not x.isUnknown() and getTrait = x.getTrait() +} + +query predicate getVisibility(Impl x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Impl x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.expected deleted file mode 100644 index ae3d1f4a97f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:29:9:5 | AssocItemList | diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql deleted file mode 100644 index 8365b6b0dfe..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAssocItemList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAssocItemList() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.ql deleted file mode 100644 index d6c01005755..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql deleted file mode 100644 index 3496b9cebe7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql deleted file mode 100644 index b9d428ce94a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql deleted file mode 100644 index 140490fcaff..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql deleted file mode 100644 index 2b24c7d73a9..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.expected deleted file mode 100644 index 3d38010c592..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:22:7:27 | MyType | diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.ql deleted file mode 100644 index 283903e8d34..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getSelfTy.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getSelfTy() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.expected deleted file mode 100644 index 9c0392972e1..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | gen_impl.rs:7:10:7:16 | MyTrait | diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.ql deleted file mode 100644 index 7551a5e960e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getTrait.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getTrait() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.ql deleted file mode 100644 index f50c36bc834..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.ql deleted file mode 100644 index e2e87ef03c4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Impl x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected index 27a8426d9c2..fc8f34a4858 100644 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected @@ -1 +1,4 @@ +instances | gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | hasTypeBoundList: | yes | +getTypeBoundList +| gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | gen_impl_trait_type_repr.rs:7:22:7:41 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql index 8ff70bd976d..d46c574cf36 100644 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from ImplTraitTypeRepr x, string hasTypeBoundList -where +query predicate instances( + ImplTraitTypeRepr x, string hasTypeBoundList__label, string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "hasTypeBoundList:", hasTypeBoundList +} + +query predicate getTypeBoundList(ImplTraitTypeRepr x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.expected deleted file mode 100644 index fbab626faa2..00000000000 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | gen_impl_trait_type_repr.rs:7:22:7:41 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql deleted file mode 100644 index 32c100f1907..00000000000 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ImplTraitTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/IndexExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/IndexExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected index 614afc3040f..68d241a9f93 100644 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected +++ b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected @@ -1,2 +1,10 @@ +instances | gen_index_expr.rs:5:5:5:12 | list[42] | getNumberOfAttrs: | 0 | hasBase: | yes | hasIndex: | yes | | gen_index_expr.rs:6:5:6:12 | list[42] | getNumberOfAttrs: | 0 | hasBase: | yes | hasIndex: | yes | +getAttr +getBase +| gen_index_expr.rs:5:5:5:12 | list[42] | gen_index_expr.rs:5:5:5:8 | list | +| gen_index_expr.rs:6:5:6:12 | list[42] | gen_index_expr.rs:6:5:6:8 | list | +getIndex +| gen_index_expr.rs:5:5:5:12 | list[42] | gen_index_expr.rs:5:10:5:11 | 42 | +| gen_index_expr.rs:6:5:6:12 | list[42] | gen_index_expr.rs:6:10:6:11 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql index a4b7139c97e..f899d8c5995 100644 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql +++ b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from IndexExpr x, int getNumberOfAttrs, string hasBase, string hasIndex -where +query predicate instances( + IndexExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasBase__label, + string hasBase, string hasIndex__label, string hasIndex +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasBase__label = "hasBase:" and (if x.hasBase() then hasBase = "yes" else hasBase = "no") and + hasIndex__label = "hasIndex:" and if x.hasIndex() then hasIndex = "yes" else hasIndex = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasBase:", hasBase, "hasIndex:", hasIndex +} + +query predicate getAttr(IndexExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getBase(IndexExpr x, Expr getBase) { + toBeTested(x) and not x.isUnknown() and getBase = x.getBase() +} + +query predicate getIndex(IndexExpr x, Expr getIndex) { + toBeTested(x) and not x.isUnknown() and getIndex = x.getIndex() +} diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql deleted file mode 100644 index 504f8e56cbe..00000000000 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IndexExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.expected b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.expected deleted file mode 100644 index 13fb9a2c6a6..00000000000 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_index_expr.rs:5:5:5:12 | list[42] | gen_index_expr.rs:5:5:5:8 | list | -| gen_index_expr.rs:6:5:6:12 | list[42] | gen_index_expr.rs:6:5:6:8 | list | diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql deleted file mode 100644 index b4debab06d7..00000000000 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getBase.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IndexExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getBase() diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.expected b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.expected deleted file mode 100644 index dfca8204088..00000000000 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_index_expr.rs:5:5:5:12 | list[42] | gen_index_expr.rs:5:10:5:11 | 42 | -| gen_index_expr.rs:6:5:6:12 | list[42] | gen_index_expr.rs:6:10:6:11 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql deleted file mode 100644 index f6d5b1e5998..00000000000 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr_getIndex.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from IndexExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getIndex() diff --git a/rust/ql/test/extractor-tests/generated/InferTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/InferTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/InferTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql b/rust/ql/test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql index 97f91c3307e..5ee772eee5c 100644 --- a/rust/ql/test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from InferTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(InferTypeRepr x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/ItemList/Cargo.lock b/rust/ql/test/extractor-tests/generated/ItemList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ItemList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected index 482eff5695c..1f5e35e1d2b 100644 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected +++ b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected @@ -1 +1,6 @@ +instances | gen_item_list.rs:7:11:10:5 | ItemList | getNumberOfAttrs: | 0 | getNumberOfItems: | 2 | +getAttr +getItem +| gen_item_list.rs:7:11:10:5 | ItemList | 0 | gen_item_list.rs:8:9:8:19 | fn foo | +| gen_item_list.rs:7:11:10:5 | ItemList | 1 | gen_item_list.rs:9:9:9:17 | struct S | diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql index b656fd73500..8272b2d6ab9 100644 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql +++ b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ItemList x, int getNumberOfAttrs, int getNumberOfItems -where +query predicate instances( + ItemList x, string getNumberOfAttrs__label, int getNumberOfAttrs, string getNumberOfItems__label, + int getNumberOfItems +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfItems__label = "getNumberOfItems:" and getNumberOfItems = x.getNumberOfItems() -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfItems:", getNumberOfItems +} + +query predicate getAttr(ItemList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getItem(ItemList x, int index, Item getItem) { + toBeTested(x) and not x.isUnknown() and getItem = x.getItem(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.expected b/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.ql b/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.ql deleted file mode 100644 index b49e5c18d37..00000000000 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.expected b/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.expected deleted file mode 100644 index 1ea2c7b8fc7..00000000000 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_item_list.rs:7:11:10:5 | ItemList | 0 | gen_item_list.rs:8:9:8:19 | fn foo | -| gen_item_list.rs:7:11:10:5 | ItemList | 1 | gen_item_list.rs:9:9:9:17 | struct S | diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.ql b/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.ql deleted file mode 100644 index f9e65903fe9..00000000000 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList_getItem.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getItem(index) diff --git a/rust/ql/test/extractor-tests/generated/Label/Cargo.lock b/rust/ql/test/extractor-tests/generated/Label/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Label/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Label/Label.expected b/rust/ql/test/extractor-tests/generated/Label/Label.expected index 7525044aaa2..567a5114c57 100644 --- a/rust/ql/test/extractor-tests/generated/Label/Label.expected +++ b/rust/ql/test/extractor-tests/generated/Label/Label.expected @@ -1 +1,4 @@ +instances | gen_label.rs:5:5:5:11 | 'label | hasLifetime: | yes | +getLifetime +| gen_label.rs:5:5:5:11 | 'label | gen_label.rs:5:5:5:10 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/Label/Label.ql b/rust/ql/test/extractor-tests/generated/Label/Label.ql index 92f4d44230e..55e2e69abb0 100644 --- a/rust/ql/test/extractor-tests/generated/Label/Label.ql +++ b/rust/ql/test/extractor-tests/generated/Label/Label.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Label x, string hasLifetime -where +query predicate instances(Label x, string hasLifetime__label, string hasLifetime) { toBeTested(x) and not x.isUnknown() and + hasLifetime__label = "hasLifetime:" and if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -select x, "hasLifetime:", hasLifetime +} + +query predicate getLifetime(Label x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} diff --git a/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.expected b/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.expected deleted file mode 100644 index 9bbe9151913..00000000000 --- a/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_label.rs:5:5:5:11 | 'label | gen_label.rs:5:5:5:10 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.ql b/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.ql deleted file mode 100644 index ba555d1209c..00000000000 --- a/rust/ql/test/extractor-tests/generated/Label/Label_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Label x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/LetElse/Cargo.lock b/rust/ql/test/extractor-tests/generated/LetElse/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LetElse/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected index 64b1e39e01d..550258840ce 100644 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected +++ b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected @@ -1 +1,4 @@ +instances | gen_let_else.rs:7:23:9:5 | else {...} | hasBlockExpr: | yes | +getBlockExpr +| gen_let_else.rs:7:23:9:5 | else {...} | gen_let_else.rs:7:28:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql index 288e99d5a47..e09442cec21 100644 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql +++ b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from LetElse x, string hasBlockExpr -where +query predicate instances(LetElse x, string hasBlockExpr__label, string hasBlockExpr) { toBeTested(x) and not x.isUnknown() and + hasBlockExpr__label = "hasBlockExpr:" and if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no" -select x, "hasBlockExpr:", hasBlockExpr +} + +query predicate getBlockExpr(LetElse x, BlockExpr getBlockExpr) { + toBeTested(x) and not x.isUnknown() and getBlockExpr = x.getBlockExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.expected b/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.expected deleted file mode 100644 index 0083f6a3df5..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_let_else.rs:7:23:9:5 | else {...} | gen_let_else.rs:7:28:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql b/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql deleted file mode 100644 index daebdb30613..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse_getBlockExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetElse x -where toBeTested(x) and not x.isUnknown() -select x, x.getBlockExpr() diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/LetExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LetExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected index 115493214ea..4d6657846b1 100644 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected @@ -1 +1,7 @@ +instances | gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasPat: | yes | +getAttr +getScrutinee +| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | gen_let_expr.rs:5:22:5:31 | maybe_some | +getPat +| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | gen_let_expr.rs:5:12:5:18 | Some(...) | diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql index 60aa8b90892..6947eb900db 100644 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from LetExpr x, int getNumberOfAttrs, string hasScrutinee, string hasPat -where +query predicate instances( + LetExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasScrutinee__label, + string hasScrutinee, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasScrutinee__label = "hasScrutinee:" and (if x.hasScrutinee() then hasScrutinee = "yes" else hasScrutinee = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasScrutinee:", hasScrutinee, "hasPat:", hasPat +} + +query predicate getAttr(LetExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getScrutinee(LetExpr x, Expr getScrutinee) { + toBeTested(x) and not x.isUnknown() and getScrutinee = x.getScrutinee() +} + +query predicate getPat(LetExpr x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql deleted file mode 100644 index 24330c4b19b..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.expected b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.expected deleted file mode 100644 index b935bd98013..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | gen_let_expr.rs:5:12:5:18 | Some(...) | diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql deleted file mode 100644 index bd358b49c04..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.expected b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.expected deleted file mode 100644 index 0080ab4ee6e..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | gen_let_expr.rs:5:22:5:31 | maybe_some | diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql deleted file mode 100644 index 2c144c2ac3c..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr_getScrutinee.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getScrutinee() diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/Cargo.lock b/rust/ql/test/extractor-tests/generated/LetStmt/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LetStmt/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected index 8f01e57d3e9..3518fb2b863 100644 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected +++ b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected @@ -1,6 +1,25 @@ +instances | gen_let_stmt.rs:5:5:5:15 | let ... = 42 | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | | gen_let_stmt.rs:6:5:6:20 | let ... = 42 | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | yes | | gen_let_stmt.rs:7:5:7:15 | let ... | getNumberOfAttrs: | 0 | hasInitializer: | no | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | yes | | gen_let_stmt.rs:8:5:8:10 | let ... | getNumberOfAttrs: | 0 | hasInitializer: | no | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | | gen_let_stmt.rs:9:5:9:24 | let ... = ... | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | | gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | yes | hasPat: | yes | hasTypeRepr: | no | +getAttr +getInitializer +| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | gen_let_stmt.rs:5:13:5:14 | 42 | +| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:18:6:19 | 42 | +| gen_let_stmt.rs:9:5:9:24 | let ... = ... | gen_let_stmt.rs:9:18:9:23 | TupleExpr | +| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:19:10:38 | ...::var(...) | +getLetElse +| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:40:12:5 | else {...} | +getPat +| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | gen_let_stmt.rs:5:9:5:9 | x | +| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:9:6:9 | x | +| gen_let_stmt.rs:7:5:7:15 | let ... | gen_let_stmt.rs:7:9:7:9 | x | +| gen_let_stmt.rs:8:5:8:10 | let ... | gen_let_stmt.rs:8:9:8:9 | x | +| gen_let_stmt.rs:9:5:9:24 | let ... = ... | gen_let_stmt.rs:9:9:9:14 | TuplePat | +| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:9:10:15 | Some(...) | +getTypeRepr +| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:12:6:14 | i32 | +| gen_let_stmt.rs:7:5:7:15 | let ... | gen_let_stmt.rs:7:12:7:14 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql index 0501354dfa1..34a6ba11adf 100644 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql +++ b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql @@ -2,16 +2,41 @@ import codeql.rust.elements import TestUtils -from - LetStmt x, int getNumberOfAttrs, string hasInitializer, string hasLetElse, string hasPat, - string hasTypeRepr -where +query predicate instances( + LetStmt x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasInitializer__label, + string hasInitializer, string hasLetElse__label, string hasLetElse, string hasPat__label, + string hasPat, string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasInitializer__label = "hasInitializer:" and (if x.hasInitializer() then hasInitializer = "yes" else hasInitializer = "no") and + hasLetElse__label = "hasLetElse:" and (if x.hasLetElse() then hasLetElse = "yes" else hasLetElse = "no") and + hasPat__label = "hasPat:" and (if x.hasPat() then hasPat = "yes" else hasPat = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasInitializer:", hasInitializer, "hasLetElse:", - hasLetElse, "hasPat:", hasPat, "hasTypeRepr:", hasTypeRepr +} + +query predicate getAttr(LetStmt x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getInitializer(LetStmt x, Expr getInitializer) { + toBeTested(x) and not x.isUnknown() and getInitializer = x.getInitializer() +} + +query predicate getLetElse(LetStmt x, LetElse getLetElse) { + toBeTested(x) and not x.isUnknown() and getLetElse = x.getLetElse() +} + +query predicate getPat(LetStmt x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} + +query predicate getTypeRepr(LetStmt x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql deleted file mode 100644 index 82f56332351..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetStmt x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.expected deleted file mode 100644 index bd8368e351f..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | gen_let_stmt.rs:5:13:5:14 | 42 | -| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:18:6:19 | 42 | -| gen_let_stmt.rs:9:5:9:24 | let ... = ... | gen_let_stmt.rs:9:18:9:23 | TupleExpr | -| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:19:10:38 | ...::var(...) | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql deleted file mode 100644 index cac847aa726..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getInitializer.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getInitializer() diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.expected deleted file mode 100644 index 5e8090859af..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:40:12:5 | else {...} | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql deleted file mode 100644 index f29257c0b28..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getLetElse.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getLetElse() diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.expected deleted file mode 100644 index cd4c3f8cc64..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | gen_let_stmt.rs:5:9:5:9 | x | -| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:9:6:9 | x | -| gen_let_stmt.rs:7:5:7:15 | let ... | gen_let_stmt.rs:7:9:7:9 | x | -| gen_let_stmt.rs:8:5:8:10 | let ... | gen_let_stmt.rs:8:9:8:9 | x | -| gen_let_stmt.rs:9:5:9:24 | let ... = ... | gen_let_stmt.rs:9:9:9:14 | TuplePat | -| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | gen_let_stmt.rs:10:9:10:15 | Some(...) | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql deleted file mode 100644 index fd10317a287..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.expected deleted file mode 100644 index 489647f4793..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | gen_let_stmt.rs:6:12:6:14 | i32 | -| gen_let_stmt.rs:7:5:7:15 | let ... | gen_let_stmt.rs:7:12:7:14 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql deleted file mode 100644 index 7c5a8872bc3..00000000000 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LetStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Cargo.lock b/rust/ql/test/extractor-tests/generated/Lifetime/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Lifetime/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected index bb57ab8de87..c56c25c82b4 100644 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected +++ b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected @@ -1,2 +1,6 @@ +instances | gen_lifetime.rs:7:12:7:13 | 'a | hasText: | yes | | gen_lifetime.rs:7:20:7:21 | 'a | hasText: | yes | +getText +| gen_lifetime.rs:7:12:7:13 | 'a | 'a | +| gen_lifetime.rs:7:20:7:21 | 'a | 'a | diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql index e07b53ec7a0..da18e00fec8 100644 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql +++ b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Lifetime x, string hasText -where +query predicate instances(Lifetime x, string hasText__label, string hasText) { toBeTested(x) and not x.isUnknown() and + hasText__label = "hasText:" and if x.hasText() then hasText = "yes" else hasText = "no" -select x, "hasText:", hasText +} + +query predicate getText(Lifetime x, string getText) { + toBeTested(x) and not x.isUnknown() and getText = x.getText() +} diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.expected b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.expected deleted file mode 100644 index 3570dcab91a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_lifetime.rs:7:12:7:13 | 'a | 'a | -| gen_lifetime.rs:7:20:7:21 | 'a | 'a | diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.ql b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.ql deleted file mode 100644 index 471b3a2405b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime_getText.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Lifetime x -where toBeTested(x) and not x.isUnknown() -select x, x.getText() diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/Cargo.lock b/rust/ql/test/extractor-tests/generated/LifetimeArg/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LifetimeArg/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected index 07554eee9bc..7e443594c8a 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected +++ b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected @@ -1 +1,4 @@ +instances | gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | hasLifetime: | yes | +getLifetime +| gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | gen_lifetime_arg.rs:7:20:7:21 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql index 83033e27af9..46bcdc8080a 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql +++ b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from LifetimeArg x, string hasLifetime -where +query predicate instances(LifetimeArg x, string hasLifetime__label, string hasLifetime) { toBeTested(x) and not x.isUnknown() and + hasLifetime__label = "hasLifetime:" and if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -select x, "hasLifetime:", hasLifetime +} + +query predicate getLifetime(LifetimeArg x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.expected b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.expected deleted file mode 100644 index 598bae0390f..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | gen_lifetime_arg.rs:7:20:7:21 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql deleted file mode 100644 index 0fe36ad8514..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LifetimeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/Cargo.lock b/rust/ql/test/extractor-tests/generated/LifetimeParam/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LifetimeParam/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected index 2055797b2fd..c6ac19d43d2 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected +++ b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected @@ -1 +1,6 @@ +instances | gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | getNumberOfAttrs: | 0 | hasLifetime: | yes | hasTypeBoundList: | no | +getAttr +getLifetime +| gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | gen_lifetime_param.rs:7:12:7:13 | 'a | +getTypeBoundList diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql index abe4635c285..bae165c98f0 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql +++ b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from LifetimeParam x, int getNumberOfAttrs, string hasLifetime, string hasTypeBoundList -where +query predicate instances( + LifetimeParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLifetime__label, + string hasLifetime, string hasTypeBoundList__label, string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasLifetime__label = "hasLifetime:" and (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasLifetime:", hasLifetime, "hasTypeBoundList:", - hasTypeBoundList +} + +query predicate getAttr(LifetimeParam x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getLifetime(LifetimeParam x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} + +query predicate getTypeBoundList(LifetimeParam x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.expected b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql deleted file mode 100644 index 6053ca9b5fe..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LifetimeParam x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.expected b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.expected deleted file mode 100644 index 1d1bc5bf0b0..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | gen_lifetime_param.rs:7:12:7:13 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql deleted file mode 100644 index 0cc315fabe0..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LifetimeParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql deleted file mode 100644 index 67370167084..00000000000 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LifetimeParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/LiteralExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LiteralExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected index afe42a48f8f..402e4027459 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected @@ -1,3 +1,4 @@ +instances | gen_literal_expr.rs:5:5:5:6 | 42 | getNumberOfAttrs: | 0 | hasTextValue: | yes | | gen_literal_expr.rs:6:5:6:8 | 42.0 | getNumberOfAttrs: | 0 | hasTextValue: | yes | | gen_literal_expr.rs:7:5:7:19 | "Hello, world!" | getNumberOfAttrs: | 0 | hasTextValue: | yes | @@ -6,3 +7,13 @@ | gen_literal_expr.rs:10:5:10:8 | b'x' | getNumberOfAttrs: | 0 | hasTextValue: | yes | | gen_literal_expr.rs:11:5:11:20 | r"Hello, world!" | getNumberOfAttrs: | 0 | hasTextValue: | yes | | gen_literal_expr.rs:12:5:12:8 | true | getNumberOfAttrs: | 0 | hasTextValue: | yes | +getAttr +getTextValue +| gen_literal_expr.rs:5:5:5:6 | 42 | 42 | +| gen_literal_expr.rs:6:5:6:8 | 42.0 | 42.0 | +| gen_literal_expr.rs:7:5:7:19 | "Hello, world!" | "Hello, world!" | +| gen_literal_expr.rs:8:5:8:20 | b"Hello, world!" | b"Hello, world!" | +| gen_literal_expr.rs:9:5:9:7 | 'x' | 'x' | +| gen_literal_expr.rs:10:5:10:8 | b'x' | b'x' | +| gen_literal_expr.rs:11:5:11:20 | r"Hello, world!" | r"Hello, world!" | +| gen_literal_expr.rs:12:5:12:8 | true | true | diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql index c33f15d8aff..1fd80258c3d 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from LiteralExpr x, int getNumberOfAttrs, string hasTextValue -where +query predicate instances( + LiteralExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTextValue__label, + string hasTextValue +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasTextValue__label = "hasTextValue:" and if x.hasTextValue() then hasTextValue = "yes" else hasTextValue = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasTextValue:", hasTextValue +} + +query predicate getAttr(LiteralExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTextValue(LiteralExpr x, string getTextValue) { + toBeTested(x) and not x.isUnknown() and getTextValue = x.getTextValue() +} diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql deleted file mode 100644 index a4362a3ea72..00000000000 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LiteralExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.expected b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.expected deleted file mode 100644 index c41aeee97ec..00000000000 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.expected +++ /dev/null @@ -1,8 +0,0 @@ -| gen_literal_expr.rs:5:5:5:6 | 42 | 42 | -| gen_literal_expr.rs:6:5:6:8 | 42.0 | 42.0 | -| gen_literal_expr.rs:7:5:7:19 | "Hello, world!" | "Hello, world!" | -| gen_literal_expr.rs:8:5:8:20 | b"Hello, world!" | b"Hello, world!" | -| gen_literal_expr.rs:9:5:9:7 | 'x' | 'x' | -| gen_literal_expr.rs:10:5:10:8 | b'x' | b'x' | -| gen_literal_expr.rs:11:5:11:20 | r"Hello, world!" | r"Hello, world!" | -| gen_literal_expr.rs:12:5:12:8 | true | true | diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql deleted file mode 100644 index 147110b9333..00000000000 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr_getTextValue.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LiteralExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTextValue() diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/LiteralPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LiteralPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected index d4734ef3dac..e5995b6603d 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected +++ b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected @@ -1 +1,4 @@ +instances | gen_literal_pat.rs:6:9:6:10 | 42 | hasLiteral: | yes | +getLiteral +| gen_literal_pat.rs:6:9:6:10 | 42 | gen_literal_pat.rs:6:9:6:10 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql index 6052b07a005..7923514d942 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql +++ b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from LiteralPat x, string hasLiteral -where +query predicate instances(LiteralPat x, string hasLiteral__label, string hasLiteral) { toBeTested(x) and not x.isUnknown() and + hasLiteral__label = "hasLiteral:" and if x.hasLiteral() then hasLiteral = "yes" else hasLiteral = "no" -select x, "hasLiteral:", hasLiteral +} + +query predicate getLiteral(LiteralPat x, LiteralExpr getLiteral) { + toBeTested(x) and not x.isUnknown() and getLiteral = x.getLiteral() +} diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.expected b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.expected deleted file mode 100644 index 487f239737b..00000000000 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_literal_pat.rs:6:9:6:10 | 42 | gen_literal_pat.rs:6:9:6:10 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql deleted file mode 100644 index ca6ff418b1a..00000000000 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat_getLiteral.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LiteralPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getLiteral() diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/LoopExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/LoopExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected index b0adbe40897..2266e27c495 100644 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected @@ -1,3 +1,11 @@ +instances | gen_loop_expr.rs:5:5:7:5 | loop { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | | gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | hasLabel: | yes | hasLoopBody: | yes | getNumberOfAttrs: | 0 | | gen_loop_expr.rs:13:5:19:5 | loop { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | +getLabel +| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | gen_loop_expr.rs:8:5:8:11 | 'label | +getLoopBody +| gen_loop_expr.rs:5:5:7:5 | loop { ... } | gen_loop_expr.rs:5:10:7:5 | { ... } | +| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | gen_loop_expr.rs:8:18:11:5 | { ... } | +| gen_loop_expr.rs:13:5:19:5 | loop { ... } | gen_loop_expr.rs:13:10:19:5 | { ... } | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql index 92248ab5ec0..a4d08c56bff 100644 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from LoopExpr x, string hasLabel, string hasLoopBody, int getNumberOfAttrs -where +query predicate instances( + LoopExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, + string hasLoopBody, string getNumberOfAttrs__label, int getNumberOfAttrs +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + hasLoopBody__label = "hasLoopBody:" and (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "hasLabel:", hasLabel, "hasLoopBody:", hasLoopBody, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getLabel(LoopExpr x, Label getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getLoopBody(LoopExpr x, BlockExpr getLoopBody) { + toBeTested(x) and not x.isUnknown() and getLoopBody = x.getLoopBody() +} + +query predicate getAttr(LoopExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql deleted file mode 100644 index 6367edb6421..00000000000 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LoopExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.expected b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.expected deleted file mode 100644 index e2dc2fdf895..00000000000 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | gen_loop_expr.rs:8:5:8:11 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql deleted file mode 100644 index 9617abd7f34..00000000000 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LoopExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.expected b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.expected deleted file mode 100644 index 9cf0c64dd0b..00000000000 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_loop_expr.rs:5:5:7:5 | loop { ... } | gen_loop_expr.rs:5:10:7:5 | { ... } | -| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | gen_loop_expr.rs:8:18:11:5 | { ... } | -| gen_loop_expr.rs:13:5:19:5 | loop { ... } | gen_loop_expr.rs:13:10:19:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql deleted file mode 100644 index bd44b0ac733..00000000000 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr_getLoopBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from LoopExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLoopBody() diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected index 4bf0740b930..ddcc6c03f09 100644 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected @@ -1 +1,5 @@ +instances | gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | hasTailExpr: | yes | getNumberOfStatements: | 0 | +getTailExpr +| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | gen_macro_block_expr.rs:5:14:5:28 | { ... } | +getStatement diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql index c003ca232f1..6dfa2128609 100644 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from MacroBlockExpr x, string hasTailExpr, int getNumberOfStatements -where +query predicate instances( + MacroBlockExpr x, string hasTailExpr__label, string hasTailExpr, + string getNumberOfStatements__label, int getNumberOfStatements +) { toBeTested(x) and not x.isUnknown() and + hasTailExpr__label = "hasTailExpr:" and (if x.hasTailExpr() then hasTailExpr = "yes" else hasTailExpr = "no") and + getNumberOfStatements__label = "getNumberOfStatements:" and getNumberOfStatements = x.getNumberOfStatements() -select x, "hasTailExpr:", hasTailExpr, "getNumberOfStatements:", getNumberOfStatements +} + +query predicate getTailExpr(MacroBlockExpr x, Expr getTailExpr) { + toBeTested(x) and not x.isUnknown() and getTailExpr = x.getTailExpr() +} + +query predicate getStatement(MacroBlockExpr x, int index, Stmt getStatement) { + toBeTested(x) and not x.isUnknown() and getStatement = x.getStatement(index) +} diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql deleted file mode 100644 index a5d58c0e32d..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getStatement.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroBlockExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getStatement(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected deleted file mode 100644 index ed7fbf364cf..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | gen_macro_block_expr.rs:5:14:5:28 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql deleted file mode 100644 index 4fdb10bc351..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr_getTailExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroBlockExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTailExpr() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroCall/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroCall/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected index 1192db0ba7e..d39e22f331f 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected @@ -1,2 +1,16 @@ +instances | gen_macro_call.rs:7:5:7:29 | println!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasMacroCallExpansion: | yes | | gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasMacroCallExpansion: | yes | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getPath +| gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:5:7:11 | println | +| gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | gen_macro_call.rs:7:5:7:29 | ...::format_args_nl | +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:14:7:28 | ...::format_args_nl!... | gen_macro_call.rs:7:14:7:28 | FormatArgsExpr | diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql index b9461abfcf1..ca0c5d1d28f 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql @@ -2,29 +2,65 @@ import codeql.rust.elements import TestUtils -from - MacroCall x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasPath, string hasTokenTree, - string hasMacroCallExpansion -where +query predicate instances( + MacroCall x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasPath__label, string hasPath, string hasTokenTree__label, string hasTokenTree, + string hasMacroCallExpansion__label, string hasMacroCallExpansion +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + hasTokenTree__label = "hasTokenTree:" and (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and + hasMacroCallExpansion__label = "hasMacroCallExpansion:" and if x.hasMacroCallExpansion() then hasMacroCallExpansion = "yes" else hasMacroCallExpansion = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasPath:", hasPath, "hasTokenTree:", hasTokenTree, "hasMacroCallExpansion:", - hasMacroCallExpansion +} + +query predicate getExtendedCanonicalPath(MacroCall x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(MacroCall x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(MacroCall x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(MacroCall x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getPath(MacroCall x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getTokenTree(MacroCall x, TokenTree getTokenTree) { + toBeTested(x) and not x.isUnknown() and getTokenTree = x.getTokenTree() +} + +query predicate getMacroCallExpansion(MacroCall x, AstNode getMacroCallExpansion) { + toBeTested(x) and not x.isUnknown() and getMacroCallExpansion = x.getMacroCallExpansion() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql deleted file mode 100644 index ef6a94400f0..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql deleted file mode 100644 index 7931273e757..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql deleted file mode 100644 index 60e32669e7f..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql deleted file mode 100644 index 0fffb4f4384..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected deleted file mode 100644 index e93d36c8ac2..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:14:7:28 | MacroBlockExpr | -| 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/generated/MacroCall/MacroCall_getMacroCallExpansion.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql deleted file mode 100644 index 6ce5fd6e7c8..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getMacroCallExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getMacroCallExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.expected deleted file mode 100644 index 0f17b0ddd12..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_macro_call.rs:7:5:7:29 | println!... | gen_macro_call.rs:7:5:7:11 | println | -| gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | gen_macro_call.rs:7:5:7:29 | ...::format_args_nl | diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql deleted file mode 100644 index 729ce15fb3f..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.expected deleted file mode 100644 index 833429dd94f..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.expected +++ /dev/null @@ -1,2 +0,0 @@ -| 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 | diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql deleted file mode 100644 index 3186e5c6297..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall_getTokenTree.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroCall x -where toBeTested(x) and not x.isUnknown() -select x, x.getTokenTree() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroDef/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroDef/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected index 2aa118cbfbc..44df502e99a 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected @@ -1 +1,14 @@ +instances | gen_macro_def.rs:4:5:9:5 | MacroDef | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasArgs: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasName: | yes | hasVisibility: | yes | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getArgs +| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:25:7:39 | TokenTree | +getAttr +getBody +| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:41:9:5 | TokenTree | +getName +| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:15:7:24 | vec_of_two | +getVisibility +| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:5:7:7 | Visibility | diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql index 3ec25748abd..cd18500210a 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql @@ -2,30 +2,71 @@ import codeql.rust.elements import TestUtils -from - MacroDef x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, string hasArgs, int getNumberOfAttrs, string hasBody, - string hasName, string hasVisibility -where +query predicate instances( + MacroDef x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string hasArgs__label, string hasArgs, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasBody__label, string hasBody, + string hasName__label, string hasName, string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + hasArgs__label = "hasArgs:" and (if x.hasArgs() then hasArgs = "yes" else hasArgs = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasArgs:", hasArgs, - "getNumberOfAttrs:", getNumberOfAttrs, "hasBody:", hasBody, "hasName:", hasName, "hasVisibility:", - hasVisibility +} + +query predicate getExtendedCanonicalPath(MacroDef x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(MacroDef x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(MacroDef x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getArgs(MacroDef x, TokenTree getArgs) { + toBeTested(x) and not x.isUnknown() and getArgs = x.getArgs() +} + +query predicate getAttr(MacroDef x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getBody(MacroDef x, TokenTree getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getName(MacroDef x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getVisibility(MacroDef x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.expected deleted file mode 100644 index fecd14ff2ba..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:25:7:39 | TokenTree | diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql deleted file mode 100644 index 304f6f8d5e3..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getArgs.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getArgs() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql deleted file mode 100644 index 28e5f418c01..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql deleted file mode 100644 index be299283916..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.expected deleted file mode 100644 index 776a64f484a..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:41:9:5 | TokenTree | diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql deleted file mode 100644 index 0c2f4e329fd..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql deleted file mode 100644 index 81aa4aa3fad..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql deleted file mode 100644 index c30de43e669..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.expected deleted file mode 100644 index 7b7e532ab2e..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:15:7:24 | vec_of_two | diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql deleted file mode 100644 index 49cba18e277..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.expected deleted file mode 100644 index 74234db763b..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_def.rs:4:5:9:5 | MacroDef | gen_macro_def.rs:7:5:7:7 | Visibility | diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql deleted file mode 100644 index 11323b3a581..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroDef x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected index 819ac71ef40..552aa2b6c5c 100644 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected @@ -1 +1,4 @@ +instances | gen_macro_expr.rs:7:13:7:25 | MacroExpr | hasMacroCall: | yes | +getMacroCall +| gen_macro_expr.rs:7:13:7:25 | MacroExpr | gen_macro_expr.rs:7:13:7:25 | vec!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql index a2c2d431512..ec98b02d40d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from MacroExpr x, string hasMacroCall -where +query predicate instances(MacroExpr x, string hasMacroCall__label, string hasMacroCall) { toBeTested(x) and not x.isUnknown() and + hasMacroCall__label = "hasMacroCall:" and if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -select x, "hasMacroCall:", hasMacroCall +} + +query predicate getMacroCall(MacroExpr x, MacroCall getMacroCall) { + toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.expected deleted file mode 100644 index 493f2f88291..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_expr.rs:7:13:7:25 | MacroExpr | gen_macro_expr.rs:7:13:7:25 | vec!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql deleted file mode 100644 index 7c1d6c44c26..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr_getMacroCall.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroItems/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroItems/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected index 00f51a7b82b..03c22ed5d1d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected @@ -1,2 +1,7 @@ +instances | gen_macro_items.rs:5:5:5:38 | MacroItems | getNumberOfItems: | 2 | | gen_macro_items.rs:13:12:13:14 | MacroItems | getNumberOfItems: | 1 | +getItem +| gen_macro_items.rs:5:5:5:38 | MacroItems | 0 | gen_macro_items.rs:5:5:5:38 | use ...::Path | +| gen_macro_items.rs:5:5:5:38 | MacroItems | 1 | gen_macro_items.rs:5:5:5:38 | fn get_parent | +| gen_macro_items.rs:13:12:13:14 | MacroItems | 0 | gen_macro_items.rs:13:12:13:14 | impl ...::Debug for Bar::<...> { ... } | diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql index cd72b24c18d..e0b156e5f52 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from MacroItems x, int getNumberOfItems -where +query predicate instances(MacroItems x, string getNumberOfItems__label, int getNumberOfItems) { toBeTested(x) and not x.isUnknown() and + getNumberOfItems__label = "getNumberOfItems:" and getNumberOfItems = x.getNumberOfItems() -select x, "getNumberOfItems:", getNumberOfItems +} + +query predicate getItem(MacroItems x, int index, Item getItem) { + toBeTested(x) and not x.isUnknown() and getItem = x.getItem(index) +} diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected deleted file mode 100644 index 803bf159c94..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_macro_items.rs:5:5:5:38 | MacroItems | 0 | gen_macro_items.rs:5:5:5:38 | use ...::Path | -| gen_macro_items.rs:5:5:5:38 | MacroItems | 1 | gen_macro_items.rs:5:5:5:38 | fn get_parent | -| gen_macro_items.rs:13:12:13:14 | MacroItems | 0 | gen_macro_items.rs:13:12:13:14 | impl ...::Debug for Bar::<...> { ... } | diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql deleted file mode 100644 index 09aaa2b8be7..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems_getItem.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroItems x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getItem(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected index b56789484ff..8849d48a788 100644 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected +++ b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected @@ -1 +1,4 @@ +instances | gen_macro_pat.rs:13:9:13:19 | MacroPat | hasMacroCall: | yes | +getMacroCall +| gen_macro_pat.rs:13:9:13:19 | MacroPat | gen_macro_pat.rs:13:9:13:19 | my_macro!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql index d54889e043b..29ee657cf7b 100644 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql +++ b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from MacroPat x, string hasMacroCall -where +query predicate instances(MacroPat x, string hasMacroCall__label, string hasMacroCall) { toBeTested(x) and not x.isUnknown() and + hasMacroCall__label = "hasMacroCall:" and if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -select x, "hasMacroCall:", hasMacroCall +} + +query predicate getMacroCall(MacroPat x, MacroCall getMacroCall) { + toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.expected deleted file mode 100644 index faa6c1d7e6d..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_pat.rs:13:9:13:19 | MacroPat | gen_macro_pat.rs:13:9:13:19 | my_macro!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql deleted file mode 100644 index 9c8f0846ede..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat_getMacroCall.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroRules/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroRules/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected index db582f99f87..02be2612b26 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected @@ -1 +1,11 @@ +instances | gen_macro_rules.rs:4:5:9:5 | MacroRules | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasName: | yes | hasTokenTree: | yes | hasVisibility: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getName +| gen_macro_rules.rs:4:5:9:5 | MacroRules | gen_macro_rules.rs:5:18:5:25 | my_macro | +getTokenTree +| gen_macro_rules.rs:4:5:9:5 | MacroRules | gen_macro_rules.rs:5:27:9:5 | TokenTree | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql index 5e1ebacd573..09b4f896913 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql @@ -2,28 +2,65 @@ import codeql.rust.elements import TestUtils -from - MacroRules x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasName, string hasTokenTree, - string hasVisibility -where +query predicate instances( + MacroRules x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasName__label, string hasName, string hasTokenTree__label, string hasTokenTree, + string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTokenTree__label = "hasTokenTree:" and (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasName:", hasName, "hasTokenTree:", hasTokenTree, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(MacroRules x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(MacroRules x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(MacroRules x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(MacroRules x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getName(MacroRules x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTokenTree(MacroRules x, TokenTree getTokenTree) { + toBeTested(x) and not x.isUnknown() and getTokenTree = x.getTokenTree() +} + +query predicate getVisibility(MacroRules x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql deleted file mode 100644 index 4fa5d762c62..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql deleted file mode 100644 index b7b01f36fe7..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql deleted file mode 100644 index 987a91f5706..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql deleted file mode 100644 index b2fa0cc9f7e..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.expected deleted file mode 100644 index 08044386ded..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_rules.rs:4:5:9:5 | MacroRules | gen_macro_rules.rs:5:18:5:25 | my_macro | diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql deleted file mode 100644 index 7a1fd49401a..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.expected deleted file mode 100644 index 9aafcc37389..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_rules.rs:4:5:9:5 | MacroRules | gen_macro_rules.rs:5:27:9:5 | TokenTree | diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql deleted file mode 100644 index 7fae79438fc..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getTokenTree.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getTokenTree() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql deleted file mode 100644 index bd50e49e339..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroRules x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected index 2f91b7f8d00..afc7a2cd6a4 100644 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected @@ -1 +1,4 @@ +instances | gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | hasMacroCall: | yes | +getMacroCall +| gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | gen_macro_type_repr.rs:10:14:10:26 | macro_type!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql index 466d4cf0405..026653c1709 100644 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from MacroTypeRepr x, string hasMacroCall -where +query predicate instances(MacroTypeRepr x, string hasMacroCall__label, string hasMacroCall) { toBeTested(x) and not x.isUnknown() and + hasMacroCall__label = "hasMacroCall:" and if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -select x, "hasMacroCall:", hasMacroCall +} + +query predicate getMacroCall(MacroTypeRepr x, MacroCall getMacroCall) { + toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() +} diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.expected deleted file mode 100644 index 896e3e199b2..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | gen_macro_type_repr.rs:10:14:10:26 | macro_type!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql deleted file mode 100644 index 22aa72d039b..00000000000 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr_getMacroCall.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MacroTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/Cargo.lock b/rust/ql/test/extractor-tests/generated/MatchArm/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MatchArm/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected index b3eb4c178b2..469d2098b99 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected +++ b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected @@ -1,4 +1,18 @@ +instances | gen_match_arm.rs:6:9:6:29 | ... => y | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | | gen_match_arm.rs:7:9:7:26 | ...::None => 0 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | | gen_match_arm.rs:10:9:10:35 | ... if ... => ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | yes | hasPat: | yes | | gen_match_arm.rs:11:9:11:15 | _ => 0 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | +getAttr +getExpr +| gen_match_arm.rs:6:9:6:29 | ... => y | gen_match_arm.rs:6:28:6:28 | y | +| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | gen_match_arm.rs:7:25:7:25 | 0 | +| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:30:10:34 | ... / ... | +| gen_match_arm.rs:11:9:11:15 | _ => 0 | gen_match_arm.rs:11:14:11:14 | 0 | +getGuard +| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:17:10:25 | MatchGuard | +getPat +| gen_match_arm.rs:6:9:6:29 | ... => y | gen_match_arm.rs:6:9:6:23 | ...::Some(...) | +| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | gen_match_arm.rs:7:9:7:20 | ...::None | +| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:9:10:15 | Some(...) | +| gen_match_arm.rs:11:9:11:15 | _ => 0 | gen_match_arm.rs:11:9:11:9 | _ | diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql index 9161cdadf73..b2b197d7d64 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql +++ b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql @@ -2,13 +2,34 @@ import codeql.rust.elements import TestUtils -from MatchArm x, int getNumberOfAttrs, string hasExpr, string hasGuard, string hasPat -where +query predicate instances( + MatchArm x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string hasGuard__label, string hasGuard, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasGuard__label = "hasGuard:" and (if x.hasGuard() then hasGuard = "yes" else hasGuard = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "hasGuard:", hasGuard, - "hasPat:", hasPat +} + +query predicate getAttr(MatchArm x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(MatchArm x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getGuard(MatchArm x, MatchGuard getGuard) { + toBeTested(x) and not x.isUnknown() and getGuard = x.getGuard() +} + +query predicate getPat(MatchArm x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql deleted file mode 100644 index d86de1bb46d..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArm x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.expected deleted file mode 100644 index 95d4a7fc2f2..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_match_arm.rs:6:9:6:29 | ... => y | gen_match_arm.rs:6:28:6:28 | y | -| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | gen_match_arm.rs:7:25:7:25 | 0 | -| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:30:10:34 | ... / ... | -| gen_match_arm.rs:11:9:11:15 | _ => 0 | gen_match_arm.rs:11:14:11:14 | 0 | diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql deleted file mode 100644 index b488c8cd7ad..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArm x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.expected deleted file mode 100644 index 00291745547..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:17:10:25 | MatchGuard | diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql deleted file mode 100644 index 508c72779ed..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getGuard.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArm x -where toBeTested(x) and not x.isUnknown() -select x, x.getGuard() diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.expected deleted file mode 100644 index d4adba7f838..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_match_arm.rs:6:9:6:29 | ... => y | gen_match_arm.rs:6:9:6:23 | ...::Some(...) | -| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | gen_match_arm.rs:7:9:7:20 | ...::None | -| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | gen_match_arm.rs:10:9:10:15 | Some(...) | -| gen_match_arm.rs:11:9:11:15 | _ => 0 | gen_match_arm.rs:11:9:11:9 | _ | diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql deleted file mode 100644 index ff83947901a..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArm x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/Cargo.lock b/rust/ql/test/extractor-tests/generated/MatchArmList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MatchArmList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected index 8a796ef9a55..c3b2d8d0fb0 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected +++ b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected @@ -1 +1,7 @@ +instances | gen_match_arm_list.rs:7:13:11:5 | MatchArmList | getNumberOfArms: | 3 | getNumberOfAttrs: | 0 | +getArm +| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 0 | gen_match_arm_list.rs:8:9:8:19 | 1 => "one" | +| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 1 | gen_match_arm_list.rs:9:9:9:19 | 2 => "two" | +| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 2 | gen_match_arm_list.rs:10:9:10:21 | _ => "other" | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql index be4583a9501..e255b1bd137 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql +++ b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from MatchArmList x, int getNumberOfArms, int getNumberOfAttrs -where +query predicate instances( + MatchArmList x, string getNumberOfArms__label, int getNumberOfArms, + string getNumberOfAttrs__label, int getNumberOfAttrs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfArms__label = "getNumberOfArms:" and getNumberOfArms = x.getNumberOfArms() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "getNumberOfArms:", getNumberOfArms, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getArm(MatchArmList x, int index, MatchArm getArm) { + toBeTested(x) and not x.isUnknown() and getArm = x.getArm(index) +} + +query predicate getAttr(MatchArmList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.expected b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.expected deleted file mode 100644 index 5a53f429e98..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 0 | gen_match_arm_list.rs:8:9:8:19 | 1 => "one" | -| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 1 | gen_match_arm_list.rs:9:9:9:19 | 2 => "two" | -| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 2 | gen_match_arm_list.rs:10:9:10:21 | _ => "other" | diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql deleted file mode 100644 index 3d29c573158..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getArm.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArmList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArm(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.expected b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql deleted file mode 100644 index 0992c49ba30..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchArmList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/MatchExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MatchExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected index 8c5b0a32a8f..10d265e63b1 100644 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected @@ -1,2 +1,10 @@ +instances | gen_match_expr.rs:5:5:8:5 | match x { ... } | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasMatchArmList: | yes | | gen_match_expr.rs:9:5:12:5 | match x { ... } | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasMatchArmList: | yes | +getAttr +getScrutinee +| gen_match_expr.rs:5:5:8:5 | match x { ... } | gen_match_expr.rs:5:11:5:11 | x | +| gen_match_expr.rs:9:5:12:5 | match x { ... } | gen_match_expr.rs:9:11:9:11 | x | +getMatchArmList +| gen_match_expr.rs:5:5:8:5 | match x { ... } | gen_match_expr.rs:5:13:8:5 | MatchArmList | +| gen_match_expr.rs:9:5:12:5 | match x { ... } | gen_match_expr.rs:9:13:12:5 | MatchArmList | diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql index 0847933e937..9a57f43eda4 100644 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from MatchExpr x, int getNumberOfAttrs, string hasScrutinee, string hasMatchArmList -where +query predicate instances( + MatchExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasScrutinee__label, + string hasScrutinee, string hasMatchArmList__label, string hasMatchArmList +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasScrutinee__label = "hasScrutinee:" and (if x.hasScrutinee() then hasScrutinee = "yes" else hasScrutinee = "no") and + hasMatchArmList__label = "hasMatchArmList:" and if x.hasMatchArmList() then hasMatchArmList = "yes" else hasMatchArmList = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasScrutinee:", hasScrutinee, "hasMatchArmList:", - hasMatchArmList +} + +query predicate getAttr(MatchExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getScrutinee(MatchExpr x, Expr getScrutinee) { + toBeTested(x) and not x.isUnknown() and getScrutinee = x.getScrutinee() +} + +query predicate getMatchArmList(MatchExpr x, MatchArmList getMatchArmList) { + toBeTested(x) and not x.isUnknown() and getMatchArmList = x.getMatchArmList() +} diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql deleted file mode 100644 index 51c49a77073..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.expected b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.expected deleted file mode 100644 index f5e25db5b39..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_match_expr.rs:5:5:8:5 | match x { ... } | gen_match_expr.rs:5:13:8:5 | MatchArmList | -| gen_match_expr.rs:9:5:12:5 | match x { ... } | gen_match_expr.rs:9:13:12:5 | MatchArmList | diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql deleted file mode 100644 index d6dc36bfc91..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getMatchArmList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMatchArmList() diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.expected b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.expected deleted file mode 100644 index 427af7c6ed0..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_match_expr.rs:5:5:8:5 | match x { ... } | gen_match_expr.rs:5:11:5:11 | x | -| gen_match_expr.rs:9:5:12:5 | match x { ... } | gen_match_expr.rs:9:11:9:11 | x | diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql deleted file mode 100644 index 4d29f21fbfb..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr_getScrutinee.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getScrutinee() diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/Cargo.lock b/rust/ql/test/extractor-tests/generated/MatchGuard/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MatchGuard/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected index 2005c2a1c3d..dc85bdda7a1 100644 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected +++ b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected @@ -1 +1,4 @@ +instances | gen_match_guard.rs:8:11:8:18 | MatchGuard | hasCondition: | yes | +getCondition +| gen_match_guard.rs:8:11:8:18 | MatchGuard | gen_match_guard.rs:8:14:8:18 | ... > ... | diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql index d31138b1d95..71038463195 100644 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql +++ b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from MatchGuard x, string hasCondition -where +query predicate instances(MatchGuard x, string hasCondition__label, string hasCondition) { toBeTested(x) and not x.isUnknown() and + hasCondition__label = "hasCondition:" and if x.hasCondition() then hasCondition = "yes" else hasCondition = "no" -select x, "hasCondition:", hasCondition +} + +query predicate getCondition(MatchGuard x, Expr getCondition) { + toBeTested(x) and not x.isUnknown() and getCondition = x.getCondition() +} diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.expected b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.expected deleted file mode 100644 index e6d76089e71..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_match_guard.rs:8:11:8:18 | MatchGuard | gen_match_guard.rs:8:14:8:18 | ... > ... | diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql deleted file mode 100644 index 1334666a960..00000000000 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard_getCondition.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MatchGuard x -where toBeTested(x) and not x.isUnknown() -select x, x.getCondition() diff --git a/rust/ql/test/extractor-tests/generated/Meta/Cargo.lock b/rust/ql/test/extractor-tests/generated/Meta/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Meta/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta.expected b/rust/ql/test/extractor-tests/generated/Meta/Meta.expected index 0aa36a59d61..94a040700ec 100644 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta.expected +++ b/rust/ql/test/extractor-tests/generated/Meta/Meta.expected @@ -1,2 +1,10 @@ +instances | gen_meta.rs:7:7:7:46 | Meta | hasExpr: | yes | isUnsafe: | yes | hasPath: | yes | hasTokenTree: | no | | gen_meta.rs:9:7:9:72 | Meta | hasExpr: | no | isUnsafe: | no | hasPath: | yes | hasTokenTree: | yes | +getExpr +| gen_meta.rs:7:7:7:46 | Meta | gen_meta.rs:7:27:7:45 | "reason_for_bypass" | +getPath +| gen_meta.rs:7:7:7:46 | Meta | gen_meta.rs:7:14:7:23 | ...::name | +| gen_meta.rs:9:7:9:72 | Meta | gen_meta.rs:9:7:9:16 | deprecated | +getTokenTree +| gen_meta.rs:9:7:9:72 | Meta | gen_meta.rs:9:17:9:72 | TokenTree | diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta.ql b/rust/ql/test/extractor-tests/generated/Meta/Meta.ql index 72a0426d809..158986f1db3 100644 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta.ql +++ b/rust/ql/test/extractor-tests/generated/Meta/Meta.ql @@ -2,13 +2,30 @@ import codeql.rust.elements import TestUtils -from Meta x, string hasExpr, string isUnsafe, string hasPath, string hasTokenTree -where +query predicate instances( + Meta x, string hasExpr__label, string hasExpr, string isUnsafe__label, string isUnsafe, + string hasPath__label, string hasPath, string hasTokenTree__label, string hasTokenTree +) { toBeTested(x) and not x.isUnknown() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + hasTokenTree__label = "hasTokenTree:" and if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no" -select x, "hasExpr:", hasExpr, "isUnsafe:", isUnsafe, "hasPath:", hasPath, "hasTokenTree:", - hasTokenTree +} + +query predicate getExpr(Meta x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getPath(Meta x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getTokenTree(Meta x, TokenTree getTokenTree) { + toBeTested(x) and not x.isUnknown() and getTokenTree = x.getTokenTree() +} diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.expected b/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.expected deleted file mode 100644 index b4c0ec93734..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_meta.rs:7:7:7:46 | Meta | gen_meta.rs:7:27:7:45 | "reason_for_bypass" | diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.ql b/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.ql deleted file mode 100644 index a93132dd15a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Meta x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.expected b/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.expected deleted file mode 100644 index ad4a23a5e2a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_meta.rs:7:7:7:46 | Meta | gen_meta.rs:7:14:7:23 | ...::name | -| gen_meta.rs:9:7:9:72 | Meta | gen_meta.rs:9:7:9:16 | deprecated | diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.ql b/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.ql deleted file mode 100644 index 759c013a975..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Meta x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.expected b/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.expected deleted file mode 100644 index ffeca33dd3a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_meta.rs:9:7:9:72 | Meta | gen_meta.rs:9:17:9:72 | TokenTree | diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.ql b/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.ql deleted file mode 100644 index b0425a57bd3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta_getTokenTree.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Meta x -where toBeTested(x) and not x.isUnknown() -select x, x.getTokenTree() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/MethodCallExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected index 516e47d8b39..abb0f11e089 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected @@ -1,2 +1,20 @@ +instances | gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | | gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | +getArgList +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:10:5:13 | ArgList | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:22:6:25 | ArgList | +getAttr +getArg +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | 0 | gen_method_call_expr.rs:5:11:5:12 | 42 | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | 0 | gen_method_call_expr.rs:6:23:6:24 | 42 | +getResolvedPath +getResolvedCrateOrigin +getGenericArgList +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:10:6:21 | <...> | +getIdentifier +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:7:5:9 | foo | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:7:6:9 | foo | +getReceiver +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:5:5:5 | x | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:5:6:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql index 518d3dee36e..5d515f99a2b 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql @@ -2,26 +2,65 @@ import codeql.rust.elements import TestUtils -from - MethodCallExpr x, string hasArgList, int getNumberOfAttrs, int getNumberOfArgs, - string hasResolvedPath, string hasResolvedCrateOrigin, string hasGenericArgList, - string hasIdentifier, string hasReceiver -where +query predicate instances( + MethodCallExpr x, string hasArgList__label, string hasArgList, string getNumberOfAttrs__label, + int getNumberOfAttrs, string getNumberOfArgs__label, int getNumberOfArgs, + string hasResolvedPath__label, string hasResolvedPath, string hasResolvedCrateOrigin__label, + string hasResolvedCrateOrigin, string hasGenericArgList__label, string hasGenericArgList, + string hasIdentifier__label, string hasIdentifier, string hasReceiver__label, string hasReceiver +) { toBeTested(x) and not x.isUnknown() and + hasArgList__label = "hasArgList:" and (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfArgs__label = "getNumberOfArgs:" and getNumberOfArgs = x.getNumberOfArgs() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasGenericArgList__label = "hasGenericArgList:" and (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and + hasIdentifier__label = "hasIdentifier:" and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and + hasReceiver__label = "hasReceiver:" and if x.hasReceiver() then hasReceiver = "yes" else hasReceiver = "no" -select x, "hasArgList:", hasArgList, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfArgs:", - getNumberOfArgs, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", - hasResolvedCrateOrigin, "hasGenericArgList:", hasGenericArgList, "hasIdentifier:", hasIdentifier, - "hasReceiver:", hasReceiver +} + +query predicate getArgList(MethodCallExpr x, ArgList getArgList) { + toBeTested(x) and not x.isUnknown() and getArgList = x.getArgList() +} + +query predicate getAttr(MethodCallExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getArg(MethodCallExpr x, int index, Expr getArg) { + toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) +} + +query predicate getResolvedPath(MethodCallExpr x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(MethodCallExpr x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getGenericArgList(MethodCallExpr x, GenericArgList getGenericArgList) { + toBeTested(x) and not x.isUnknown() and getGenericArgList = x.getGenericArgList() +} + +query predicate getIdentifier(MethodCallExpr x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} + +query predicate getReceiver(MethodCallExpr x, Expr getReceiver) { + toBeTested(x) and not x.isUnknown() and getReceiver = x.getReceiver() +} diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected deleted file mode 100644 index 36af4e22c50..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | 0 | gen_method_call_expr.rs:5:11:5:12 | 42 | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | 0 | gen_method_call_expr.rs:6:23:6:24 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql deleted file mode 100644 index 58529cebfe5..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.expected deleted file mode 100644 index c9d10231cd9..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:10:5:13 | ArgList | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:22:6:25 | ArgList | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql deleted file mode 100644 index 3e6eb43ba1f..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getArgList() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql deleted file mode 100644 index 5cffc6cd43b..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.expected deleted file mode 100644 index 51e1108ebb2..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:10:6:21 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql deleted file mode 100644 index d68ec9fa0ca..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getGenericArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericArgList() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.expected deleted file mode 100644 index 9f20d2b07dd..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:7:5:9 | foo | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:7:6:9 | foo | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql deleted file mode 100644 index f14399765d8..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.expected deleted file mode 100644 index b909a0f7793..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:5:5:5 | x | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:5:6:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql deleted file mode 100644 index 853315863fb..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getReceiver.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getReceiver() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql deleted file mode 100644 index dfb29218133..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql deleted file mode 100644 index df94686cbf6..00000000000 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from MethodCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/Module/Cargo.lock b/rust/ql/test/extractor-tests/generated/Module/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Module/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.expected b/rust/ql/test/extractor-tests/generated/Module/Module.expected index 9383e08f281..b1d63ea22fa 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module.expected @@ -1,3 +1,21 @@ +instances | gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | | gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | | lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +getExtendedCanonicalPath +| gen_module.rs:3:1:4:8 | mod foo | crate::gen_module::foo | +| gen_module.rs:5:1:7:1 | mod bar | crate::gen_module::bar | +| lib.rs:1:1:1:15 | mod gen_module | crate::gen_module | +getCrateOrigin +| gen_module.rs:3:1:4:8 | mod foo | repo::test | +| gen_module.rs:5:1:7:1 | mod bar | repo::test | +| lib.rs:1:1:1:15 | mod gen_module | repo::test | +getAttributeMacroExpansion +getAttr +getItemList +| gen_module.rs:5:1:7:1 | mod bar | gen_module.rs:5:9:7:1 | ItemList | +getName +| gen_module.rs:3:1:4:8 | mod foo | gen_module.rs:4:5:4:7 | foo | +| gen_module.rs:5:1:7:1 | mod bar | gen_module.rs:5:5:5:7 | bar | +| lib.rs:1:1:1:15 | mod gen_module | lib.rs:1:5:1:14 | gen_module | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.ql b/rust/ql/test/extractor-tests/generated/Module/Module.ql index bd668e40b66..638cba130dd 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.ql +++ b/rust/ql/test/extractor-tests/generated/Module/Module.ql @@ -2,28 +2,65 @@ import codeql.rust.elements import TestUtils -from - Module x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasItemList, string hasName, - string hasVisibility -where +query predicate instances( + Module x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasItemList__label, string hasItemList, string hasName__label, string hasName, + string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasItemList__label = "hasItemList:" and (if x.hasItemList() then hasItemList = "yes" else hasItemList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasItemList:", hasItemList, "hasName:", hasName, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(Module x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Module x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Module x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(Module x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getItemList(Module x, ItemList getItemList) { + toBeTested(x) and not x.isUnknown() and getItemList = x.getItemList() +} + +query predicate getName(Module x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getVisibility(Module x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getAttr.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getAttr.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getAttr.ql deleted file mode 100644 index 1efd9a937c3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql deleted file mode 100644 index 1a7c70f63b6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.expected deleted file mode 100644 index 0164fbb8e29..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_module.rs:3:1:4:8 | mod foo | repo::test | -| gen_module.rs:5:1:7:1 | mod bar | repo::test | -| lib.rs:1:1:1:15 | mod gen_module | repo::test | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql deleted file mode 100644 index 7a95cdcc772..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.expected deleted file mode 100644 index c573ef164eb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_module.rs:3:1:4:8 | mod foo | crate::gen_module::foo | -| gen_module.rs:5:1:7:1 | mod bar | crate::gen_module::bar | -| lib.rs:1:1:1:15 | mod gen_module | crate::gen_module | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql deleted file mode 100644 index 9c810fe65c6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.expected deleted file mode 100644 index 8edc36efa73..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_module.rs:5:1:7:1 | mod bar | gen_module.rs:5:9:7:1 | ItemList | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.ql deleted file mode 100644 index 0654df37918..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getItemList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getItemList() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected deleted file mode 100644 index 1874862befe..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getName.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_module.rs:3:1:4:8 | mod foo | gen_module.rs:4:5:4:7 | foo | -| gen_module.rs:5:1:7:1 | mod bar | gen_module.rs:5:5:5:7 | bar | -| lib.rs:1:1:1:15 | mod gen_module | lib.rs:1:5:1:14 | gen_module | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getName.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getName.ql deleted file mode 100644 index dbda0724b1e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.ql deleted file mode 100644 index 064f520d6a7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Module/Module_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Module x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Name/Cargo.lock b/rust/ql/test/extractor-tests/generated/Name/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Name/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Name/Name.expected b/rust/ql/test/extractor-tests/generated/Name/Name.expected index 28a23a6d392..d32b6f0e228 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name.expected +++ b/rust/ql/test/extractor-tests/generated/Name/Name.expected @@ -1,3 +1,8 @@ +instances | gen_name.rs:3:4:3:12 | test_name | hasText: | yes | | gen_name.rs:7:9:7:11 | foo | hasText: | yes | | lib.rs:1:5:1:12 | gen_name | hasText: | yes | +getText +| gen_name.rs:3:4:3:12 | test_name | test_name | +| gen_name.rs:7:9:7:11 | foo | foo | +| lib.rs:1:5:1:12 | gen_name | gen_name | diff --git a/rust/ql/test/extractor-tests/generated/Name/Name.ql b/rust/ql/test/extractor-tests/generated/Name/Name.ql index 6685f4f9b7a..66c4076f98e 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name.ql +++ b/rust/ql/test/extractor-tests/generated/Name/Name.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Name x, string hasText -where +query predicate instances(Name x, string hasText__label, string hasText) { toBeTested(x) and not x.isUnknown() and + hasText__label = "hasText:" and if x.hasText() then hasText = "yes" else hasText = "no" -select x, "hasText:", hasText +} + +query predicate getText(Name x, string getText) { + toBeTested(x) and not x.isUnknown() and getText = x.getText() +} diff --git a/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected b/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected deleted file mode 100644 index 3098a78003b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Name/Name_getText.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_name.rs:3:4:3:12 | test_name | test_name | -| gen_name.rs:7:9:7:11 | foo | foo | -| lib.rs:1:5:1:12 | gen_name | gen_name | diff --git a/rust/ql/test/extractor-tests/generated/Name/Name_getText.ql b/rust/ql/test/extractor-tests/generated/Name/Name_getText.ql deleted file mode 100644 index 90ff2d3e04b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Name/Name_getText.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Name x -where toBeTested(x) and not x.isUnknown() -select x, x.getText() diff --git a/rust/ql/test/extractor-tests/generated/NameRef/Cargo.lock b/rust/ql/test/extractor-tests/generated/NameRef/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/NameRef/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected index a73f8a02945..acefbd4cf95 100644 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected +++ b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected @@ -1 +1,4 @@ +instances | gen_name_ref.rs:7:7:7:9 | foo | hasText: | yes | +getText +| gen_name_ref.rs:7:7:7:9 | foo | foo | diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql index cb5ab8652f8..77dc3cc6802 100644 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql +++ b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from NameRef x, string hasText -where +query predicate instances(NameRef x, string hasText__label, string hasText) { toBeTested(x) and not x.isUnknown() and + hasText__label = "hasText:" and if x.hasText() then hasText = "yes" else hasText = "no" -select x, "hasText:", hasText +} + +query predicate getText(NameRef x, string getText) { + toBeTested(x) and not x.isUnknown() and getText = x.getText() +} diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.expected b/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.expected deleted file mode 100644 index 1b98842e5ec..00000000000 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_name_ref.rs:7:7:7:9 | foo | foo | diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.ql b/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.ql deleted file mode 100644 index daa44134dca..00000000000 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef_getText.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from NameRef x -where toBeTested(x) and not x.isUnknown() -select x, x.getText() diff --git a/rust/ql/test/extractor-tests/generated/NeverTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/NeverTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/NeverTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql b/rust/ql/test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql index 71ab05928df..0cdfe366eed 100644 --- a/rust/ql/test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from NeverTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(NeverTypeRepr x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected index 4f8705ab0da..0c32955b483 100644 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected +++ b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected @@ -1 +1,7 @@ +instances | gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 1 | hasTypeRepr: | yes | +getAttr +getField +| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | 0 | gen_offset_of_expr.rs:5:33:5:37 | field | +getTypeRepr +| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | gen_offset_of_expr.rs:5:25:5:30 | Struct | diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql index afcd0de84df..f9c837932bb 100644 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql +++ b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql @@ -2,12 +2,29 @@ import codeql.rust.elements import TestUtils -from OffsetOfExpr x, int getNumberOfAttrs, int getNumberOfFields, string hasTypeRepr -where +query predicate instances( + OffsetOfExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfFields__label, int getNumberOfFields, string hasTypeRepr__label, + string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfFields:", getNumberOfFields, - "hasTypeRepr:", hasTypeRepr +} + +query predicate getAttr(OffsetOfExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getField(OffsetOfExpr x, int index, NameRef getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} + +query predicate getTypeRepr(OffsetOfExpr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql deleted file mode 100644 index c038e83f2f5..00000000000 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from OffsetOfExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.expected b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.expected deleted file mode 100644 index bec224d18ce..00000000000 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | 0 | gen_offset_of_expr.rs:5:33:5:37 | field | diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql deleted file mode 100644 index c5b41700f64..00000000000 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from OffsetOfExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.expected deleted file mode 100644 index e2e11abb6a0..00000000000 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | gen_offset_of_expr.rs:5:25:5:30 | Struct | diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql deleted file mode 100644 index 5f2a647d807..00000000000 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from OffsetOfExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/OrPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/OrPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/OrPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected index 1d67a8509b9..a077d8de689 100644 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected +++ b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected @@ -1 +1,5 @@ +instances | gen_or_pat.rs:6:9:6:38 | ... \| ...::None | getNumberOfPats: | 2 | +getPat +| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 0 | gen_or_pat.rs:6:9:6:23 | ...::Some(...) | +| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 1 | gen_or_pat.rs:6:27:6:38 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql index 11b3bb7394c..2487f6f2365 100644 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql +++ b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from OrPat x, int getNumberOfPats -where +query predicate instances(OrPat x, string getNumberOfPats__label, int getNumberOfPats) { toBeTested(x) and not x.isUnknown() and + getNumberOfPats__label = "getNumberOfPats:" and getNumberOfPats = x.getNumberOfPats() -select x, "getNumberOfPats:", getNumberOfPats +} + +query predicate getPat(OrPat x, int index, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat(index) +} diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.expected b/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.expected deleted file mode 100644 index 9e50c27e035..00000000000 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 0 | gen_or_pat.rs:6:9:6:23 | ...::Some(...) | -| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 1 | gen_or_pat.rs:6:27:6:38 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.ql b/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.ql deleted file mode 100644 index 468619511dd..00000000000 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from OrPat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getPat(index) diff --git a/rust/ql/test/extractor-tests/generated/Param/Cargo.lock b/rust/ql/test/extractor-tests/generated/Param/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Param/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Param/Param.expected b/rust/ql/test/extractor-tests/generated/Param/Param.expected index c8218bdaec5..304467f0b76 100644 --- a/rust/ql/test/extractor-tests/generated/Param/Param.expected +++ b/rust/ql/test/extractor-tests/generated/Param/Param.expected @@ -1 +1,7 @@ +instances | gen_param.rs:5:12:5:15 | ...: T | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasPat: | yes | +getAttr +getTypeRepr +| gen_param.rs:5:12:5:15 | ...: T | gen_param.rs:5:15:5:15 | T | +getPat +| gen_param.rs:5:12:5:15 | ...: T | gen_param.rs:5:12:5:12 | x | diff --git a/rust/ql/test/extractor-tests/generated/Param/Param.ql b/rust/ql/test/extractor-tests/generated/Param/Param.ql index c471f2aeb39..ba1d62c59d1 100644 --- a/rust/ql/test/extractor-tests/generated/Param/Param.ql +++ b/rust/ql/test/extractor-tests/generated/Param/Param.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from Param x, int getNumberOfAttrs, string hasTypeRepr, string hasPat -where +query predicate instances( + Param x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, + string hasTypeRepr, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasTypeRepr:", hasTypeRepr, "hasPat:", hasPat +} + +query predicate getAttr(Param x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTypeRepr(Param x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getPat(Param x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getAttr.expected b/rust/ql/test/extractor-tests/generated/Param/Param_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getAttr.ql b/rust/ql/test/extractor-tests/generated/Param/Param_getAttr.ql deleted file mode 100644 index 72c78863531..00000000000 --- a/rust/ql/test/extractor-tests/generated/Param/Param_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Param x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getPat.expected b/rust/ql/test/extractor-tests/generated/Param/Param_getPat.expected deleted file mode 100644 index c42d7ce0b9f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Param/Param_getPat.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_param.rs:5:12:5:15 | ...: T | gen_param.rs:5:12:5:12 | x | diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getPat.ql b/rust/ql/test/extractor-tests/generated/Param/Param_getPat.ql deleted file mode 100644 index 5e8e11356c7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Param/Param_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Param x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.expected deleted file mode 100644 index 10bf906af5d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_param.rs:5:12:5:15 | ...: T | gen_param.rs:5:15:5:15 | T | diff --git a/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.ql deleted file mode 100644 index 0e03e4b5118..00000000000 --- a/rust/ql/test/extractor-tests/generated/Param/Param_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Param x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ParamList/Cargo.lock b/rust/ql/test/extractor-tests/generated/ParamList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ParamList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected index bb999506a0c..57db5f779fa 100644 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected +++ b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected @@ -1,2 +1,7 @@ +instances | gen_param_list.rs:3:19:3:20 | ParamList | getNumberOfParams: | 0 | hasSelfParam: | no | | gen_param_list.rs:7:11:7:26 | ParamList | getNumberOfParams: | 2 | hasSelfParam: | no | +getParam +| gen_param_list.rs:7:11:7:26 | ParamList | 0 | gen_param_list.rs:7:12:7:17 | ...: i32 | +| gen_param_list.rs:7:11:7:26 | ParamList | 1 | gen_param_list.rs:7:20:7:25 | ...: i32 | +getSelfParam diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql index 9e65fbf7f7f..d60469a20fb 100644 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql +++ b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ParamList x, int getNumberOfParams, string hasSelfParam -where +query predicate instances( + ParamList x, string getNumberOfParams__label, int getNumberOfParams, string hasSelfParam__label, + string hasSelfParam +) { toBeTested(x) and not x.isUnknown() and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() and + hasSelfParam__label = "hasSelfParam:" and if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no" -select x, "getNumberOfParams:", getNumberOfParams, "hasSelfParam:", hasSelfParam +} + +query predicate getParam(ParamList x, int index, Param getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} + +query predicate getSelfParam(ParamList x, SelfParam getSelfParam) { + toBeTested(x) and not x.isUnknown() and getSelfParam = x.getSelfParam() +} diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.expected b/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.expected deleted file mode 100644 index 9006caf6916..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_param_list.rs:7:11:7:26 | ParamList | 0 | gen_param_list.rs:7:12:7:17 | ...: i32 | -| gen_param_list.rs:7:11:7:26 | ParamList | 1 | gen_param_list.rs:7:20:7:25 | ...: i32 | diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.ql b/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.ql deleted file mode 100644 index d0a24b09409..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParamList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.expected b/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql b/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql deleted file mode 100644 index bdd98b434d7..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList_getSelfParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParamList x -where toBeTested(x) and not x.isUnknown() -select x, x.getSelfParam() diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ParenExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ParenExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected index efe22fdb625..b279ca134ad 100644 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected @@ -1 +1,5 @@ +instances | gen_paren_expr.rs:7:5:7:11 | (...) | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_paren_expr.rs:7:5:7:11 | (...) | gen_paren_expr.rs:7:6:7:10 | ... + ... | diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql index 114bf888239..df5520d210c 100644 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ParenExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + ParenExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(ParenExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(ParenExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql deleted file mode 100644 index c2352453b9a..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParenExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.expected deleted file mode 100644 index c20c0ec66fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_paren_expr.rs:7:5:7:11 | (...) | gen_paren_expr.rs:7:6:7:10 | ... + ... | diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql deleted file mode 100644 index c8a007478c3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParenExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/ParenPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ParenPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected index 7b9b66a886d..e0b1631be04 100644 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected +++ b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected @@ -1 +1,4 @@ +instances | gen_paren_pat.rs:7:9:7:11 | (...) | hasPat: | yes | +getPat +| gen_paren_pat.rs:7:9:7:11 | (...) | gen_paren_pat.rs:7:10:7:10 | x | diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql index bf9724edde3..7e235b04873 100644 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql +++ b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from ParenPat x, string hasPat -where +query predicate instances(ParenPat x, string hasPat__label, string hasPat) { toBeTested(x) and not x.isUnknown() and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "hasPat:", hasPat +} + +query predicate getPat(ParenPat x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.expected b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.expected deleted file mode 100644 index 832d823866f..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_paren_pat.rs:7:9:7:11 | (...) | gen_paren_pat.rs:7:10:7:10 | x | diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql deleted file mode 100644 index 648fbfd9df0..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParenPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected index fd5d8310d17..98d26b50c12 100644 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected @@ -1 +1,4 @@ +instances | gen_paren_type_repr.rs:7:12:7:16 | (i32) | hasTypeRepr: | yes | +getTypeRepr +| gen_paren_type_repr.rs:7:12:7:16 | (i32) | gen_paren_type_repr.rs:7:13:7:15 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql index 83a4f846add..92f1d241d20 100644 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from ParenTypeRepr x, string hasTypeRepr -where +query predicate instances(ParenTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { toBeTested(x) and not x.isUnknown() and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "hasTypeRepr:", hasTypeRepr +} + +query predicate getTypeRepr(ParenTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.expected deleted file mode 100644 index b4167e4201a..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_paren_type_repr.rs:7:12:7:16 | (i32) | gen_paren_type_repr.rs:7:13:7:15 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql deleted file mode 100644 index 2b3a274fc08..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParenTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/Cargo.lock b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected index 317d43de72d..cb6c4c651bb 100644 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected +++ b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected @@ -1 +1,5 @@ +instances | gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | getNumberOfTypeArgs: | 2 | +getTypeArg +| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 0 | gen_parenthesized_arg_list.rs:9:15:9:17 | TypeArg | +| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 1 | gen_parenthesized_arg_list.rs:9:20:9:25 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql index 73080b26f2d..72a7ac182ef 100644 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql +++ b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from ParenthesizedArgList x, int getNumberOfTypeArgs -where +query predicate instances( + ParenthesizedArgList x, string getNumberOfTypeArgs__label, int getNumberOfTypeArgs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfTypeArgs__label = "getNumberOfTypeArgs:" and getNumberOfTypeArgs = x.getNumberOfTypeArgs() -select x, "getNumberOfTypeArgs:", getNumberOfTypeArgs +} + +query predicate getTypeArg(ParenthesizedArgList x, int index, TypeArg getTypeArg) { + toBeTested(x) and not x.isUnknown() and getTypeArg = x.getTypeArg(index) +} diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.expected b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.expected deleted file mode 100644 index 8ae7aa526d3..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 0 | gen_parenthesized_arg_list.rs:9:15:9:17 | TypeArg | -| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 1 | gen_parenthesized_arg_list.rs:9:20:9:25 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql deleted file mode 100644 index 04247f8ff64..00000000000 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList_getTypeArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ParenthesizedArgList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getTypeArg(index) diff --git a/rust/ql/test/extractor-tests/generated/Path/Cargo.lock b/rust/ql/test/extractor-tests/generated/Path/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Path/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Path/Path.expected b/rust/ql/test/extractor-tests/generated/Path/Path.expected index 7cf8362293e..c0a0e4b5515 100644 --- a/rust/ql/test/extractor-tests/generated/Path/Path.expected +++ b/rust/ql/test/extractor-tests/generated/Path/Path.expected @@ -1,3 +1,4 @@ +instances | gen_path.rs:5:9:5:18 | some_crate | hasQualifier: | no | hasSegment: | yes | | gen_path.rs:5:9:5:31 | ...::some_module | hasQualifier: | yes | hasSegment: | yes | | gen_path.rs:5:9:5:42 | ...::some_item | hasQualifier: | yes | hasSegment: | yes | @@ -23,3 +24,40 @@ | gen_path_type_repr.rs:5:45:5:47 | i32 | hasQualifier: | no | hasSegment: | yes | | gen_path_type_repr.rs:6:14:6:14 | X | hasQualifier: | no | hasSegment: | yes | | gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasQualifier: | yes | hasSegment: | yes | +getQualifier +| gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:9:5:18 | some_crate | +| gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:9:5:31 | ...::some_module | +| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:5:6:7 | foo | +| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:13:6:15 | foo | +| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:15 | <...> | +| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:13:8:31 | <...> | +| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:9:6:11 | Foo | +| gen_path_type_repr.rs:5:14:5:29 | ...::collections | gen_path_type_repr.rs:5:14:5:16 | std | +| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:14:5:29 | ...::collections | +| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:14:6:14 | X | +getSegment +| gen_path.rs:5:9:5:18 | some_crate | gen_path.rs:5:9:5:18 | some_crate | +| gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:21:5:31 | some_module | +| gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:34:5:42 | some_item | +| gen_path.rs:6:5:6:7 | foo | gen_path.rs:6:5:6:7 | foo | +| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:10:6:12 | bar | +| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:15 | foo | gen_path_expr.rs:6:13:6:15 | foo | +| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:18:6:20 | bar | +| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:13:7:15 | <...> | +| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:18:7:20 | foo | +| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:13:8:31 | <...> | +| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:34:8:36 | foo | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | +| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo | +| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:14:6:16 | Bar | +| gen_path_type_repr.rs:5:14:5:16 | std | gen_path_type_repr.rs:5:14:5:16 | std | +| gen_path_type_repr.rs:5:14:5:29 | ...::collections | gen_path_type_repr.rs:5:19:5:29 | collections | +| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | +| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:14 | X | gen_path_type_repr.rs:6:14:6:14 | X | +| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:17:6:20 | Item | diff --git a/rust/ql/test/extractor-tests/generated/Path/Path.ql b/rust/ql/test/extractor-tests/generated/Path/Path.ql index 2f32fa34147..10440b7f626 100644 --- a/rust/ql/test/extractor-tests/generated/Path/Path.ql +++ b/rust/ql/test/extractor-tests/generated/Path/Path.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from Path x, string hasQualifier, string hasSegment -where +query predicate instances( + Path x, string hasQualifier__label, string hasQualifier, string hasSegment__label, + string hasSegment +) { toBeTested(x) and not x.isUnknown() and + hasQualifier__label = "hasQualifier:" and (if x.hasQualifier() then hasQualifier = "yes" else hasQualifier = "no") and + hasSegment__label = "hasSegment:" and if x.hasSegment() then hasSegment = "yes" else hasSegment = "no" -select x, "hasQualifier:", hasQualifier, "hasSegment:", hasSegment +} + +query predicate getQualifier(Path x, Path getQualifier) { + toBeTested(x) and not x.isUnknown() and getQualifier = x.getQualifier() +} + +query predicate getSegment(Path x, PathSegment getSegment) { + toBeTested(x) and not x.isUnknown() and getSegment = x.getSegment() +} diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected index 25bc95ed055..5befb7ad87f 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected @@ -1,6 +1,17 @@ +instances | gen_path.rs:6:5:6:12 | ...::bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | | gen_path_expr.rs:5:13:5:20 | variable | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | | gen_path_expr.rs:6:13:6:20 | ...::bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | | gen_path_expr.rs:7:13:7:20 | ...::foo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | | gen_path_expr.rs:8:13:8:36 | ...::foo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | | gen_path_pat.rs:5:11:5:11 | x | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | +getResolvedPath +getResolvedCrateOrigin +getPath +| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:5:6:12 | ...::bar | +| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:13:6:20 | ...::bar | +| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:20 | ...::foo | +| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:13:8:36 | ...::foo | +| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql index 41b7414d24c..df7d4e6b054 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql @@ -2,19 +2,39 @@ import codeql.rust.elements import TestUtils -from - PathExpr x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath, - int getNumberOfAttrs -where +query predicate instances( + PathExpr x, string hasResolvedPath__label, string hasResolvedPath, + string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, + string hasPath, string getNumberOfAttrs__label, int getNumberOfAttrs +) { toBeTested(x) and not x.isUnknown() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, - "hasPath:", hasPath, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getResolvedPath(PathExpr x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(PathExpr x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getPath(PathExpr x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getAttr(PathExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.ql deleted file mode 100644 index 0c0ed2aa7e4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.expected deleted file mode 100644 index e9680024dc1..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:5:6:12 | ...::bar | -| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | -| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:13:6:20 | ...::bar | -| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:20 | ...::foo | -| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:13:8:36 | ...::foo | -| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.ql deleted file mode 100644 index a776443137e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql deleted file mode 100644 index 24e07918484..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql deleted file mode 100644 index 10e6ceb2a0b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat.expected b/rust/ql/test/extractor-tests/generated/Path/PathPat.expected index cf90175a84c..44b0c407ce7 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathPat.expected @@ -1 +1,6 @@ +instances | gen_path_pat.rs:6:9:6:16 | ...::Bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | +getResolvedPath +getResolvedCrateOrigin +getPath +| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:9:6:16 | ...::Bar | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat.ql b/rust/ql/test/extractor-tests/generated/Path/PathPat.ql index a105c20c39e..babe2238d2d 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathPat.ql @@ -2,16 +2,33 @@ import codeql.rust.elements import TestUtils -from PathPat x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath -where +query predicate instances( + PathPat x, string hasResolvedPath__label, string hasResolvedPath, + string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, + string hasPath +) { toBeTested(x) and not x.isUnknown() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasPath__label = "hasPath:" and if x.hasPath() then hasPath = "yes" else hasPath = "no" -select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, - "hasPath:", hasPath +} + +query predicate getResolvedPath(PathPat x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(PathPat x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getPath(PathPat x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.expected b/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.expected deleted file mode 100644 index 3a601023f3f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:9:6:16 | ...::Bar | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.ql b/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.ql deleted file mode 100644 index 820b1028de2..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql deleted file mode 100644 index 7ed41155d77..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql deleted file mode 100644 index cbe1932925a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected index a37dd8cbd96..28347072ffe 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected @@ -1,3 +1,4 @@ +instances | gen_path.rs:5:9:5:18 | some_crate | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | | gen_path.rs:5:21:5:31 | some_module | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | | gen_path.rs:5:34:5:42 | some_item | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | @@ -23,3 +24,37 @@ | gen_path_type_repr.rs:5:45:5:47 | i32 | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | | gen_path_type_repr.rs:6:14:6:14 | X | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | | gen_path_type_repr.rs:6:17:6:20 | Item | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | +getGenericArgList +| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | gen_path_type_repr.rs:5:39:5:48 | <...> | +getIdentifier +| gen_path.rs:5:9:5:18 | some_crate | gen_path.rs:5:9:5:18 | some_crate | +| gen_path.rs:5:21:5:31 | some_module | gen_path.rs:5:21:5:31 | some_module | +| gen_path.rs:5:34:5:42 | some_item | gen_path.rs:5:34:5:42 | some_item | +| gen_path.rs:6:5:6:7 | foo | gen_path.rs:6:5:6:7 | foo | +| gen_path.rs:6:10:6:12 | bar | gen_path.rs:6:10:6:12 | bar | +| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:15 | foo | gen_path_expr.rs:6:13:6:15 | foo | +| gen_path_expr.rs:6:18:6:20 | bar | gen_path_expr.rs:6:18:6:20 | bar | +| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:7:18:7:20 | foo | gen_path_expr.rs:7:18:7:20 | foo | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_expr.rs:8:34:8:36 | foo | gen_path_expr.rs:8:34:8:36 | foo | +| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | +| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo | +| gen_path_pat.rs:6:14:6:16 | Bar | gen_path_pat.rs:6:14:6:16 | Bar | +| gen_path_type_repr.rs:5:14:5:16 | std | gen_path_type_repr.rs:5:14:5:16 | std | +| gen_path_type_repr.rs:5:19:5:29 | collections | gen_path_type_repr.rs:5:19:5:29 | collections | +| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | gen_path_type_repr.rs:5:32:5:38 | HashMap | +| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:14 | X | gen_path_type_repr.rs:6:14:6:14 | X | +| gen_path_type_repr.rs:6:17:6:20 | Item | gen_path_type_repr.rs:6:17:6:20 | Item | +getParenthesizedArgList +getRetType +getReturnTypeSyntax +getTypeRepr +| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:14:8:21 | TypeRepr | +getTraitTypeRepr +| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:26:8:30 | Trait | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql index 5bfa26039b1..bdaf115d135 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql @@ -2,24 +2,59 @@ import codeql.rust.elements import TestUtils -from - PathSegment x, string hasGenericArgList, string hasIdentifier, string hasParenthesizedArgList, - string hasRetType, string hasReturnTypeSyntax, string hasTypeRepr, string hasTraitTypeRepr -where +query predicate instances( + PathSegment x, string hasGenericArgList__label, string hasGenericArgList, + string hasIdentifier__label, string hasIdentifier, string hasParenthesizedArgList__label, + string hasParenthesizedArgList, string hasRetType__label, string hasRetType, + string hasReturnTypeSyntax__label, string hasReturnTypeSyntax, string hasTypeRepr__label, + string hasTypeRepr, string hasTraitTypeRepr__label, string hasTraitTypeRepr +) { toBeTested(x) and not x.isUnknown() and + hasGenericArgList__label = "hasGenericArgList:" and (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and + hasIdentifier__label = "hasIdentifier:" and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and + hasParenthesizedArgList__label = "hasParenthesizedArgList:" and ( if x.hasParenthesizedArgList() then hasParenthesizedArgList = "yes" else hasParenthesizedArgList = "no" ) and + hasRetType__label = "hasRetType:" and (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and + hasReturnTypeSyntax__label = "hasReturnTypeSyntax:" and (if x.hasReturnTypeSyntax() then hasReturnTypeSyntax = "yes" else hasReturnTypeSyntax = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasTraitTypeRepr__label = "hasTraitTypeRepr:" and if x.hasTraitTypeRepr() then hasTraitTypeRepr = "yes" else hasTraitTypeRepr = "no" -select x, "hasGenericArgList:", hasGenericArgList, "hasIdentifier:", hasIdentifier, - "hasParenthesizedArgList:", hasParenthesizedArgList, "hasRetType:", hasRetType, - "hasReturnTypeSyntax:", hasReturnTypeSyntax, "hasTypeRepr:", hasTypeRepr, "hasTraitTypeRepr:", - hasTraitTypeRepr +} + +query predicate getGenericArgList(PathSegment x, GenericArgList getGenericArgList) { + toBeTested(x) and not x.isUnknown() and getGenericArgList = x.getGenericArgList() +} + +query predicate getIdentifier(PathSegment x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} + +query predicate getParenthesizedArgList(PathSegment x, ParenthesizedArgList getParenthesizedArgList) { + toBeTested(x) and not x.isUnknown() and getParenthesizedArgList = x.getParenthesizedArgList() +} + +query predicate getRetType(PathSegment x, RetTypeRepr getRetType) { + toBeTested(x) and not x.isUnknown() and getRetType = x.getRetType() +} + +query predicate getReturnTypeSyntax(PathSegment x, ReturnTypeSyntax getReturnTypeSyntax) { + toBeTested(x) and not x.isUnknown() and getReturnTypeSyntax = x.getReturnTypeSyntax() +} + +query predicate getTypeRepr(PathSegment x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getTraitTypeRepr(PathSegment x, PathTypeRepr getTraitTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTraitTypeRepr = x.getTraitTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.expected deleted file mode 100644 index ff0110440ae..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | gen_path_type_repr.rs:5:39:5:48 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql deleted file mode 100644 index a9367578003..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getGenericArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericArgList() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.expected deleted file mode 100644 index dfa33cf9611..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.expected +++ /dev/null @@ -1,23 +0,0 @@ -| gen_path.rs:5:9:5:18 | some_crate | gen_path.rs:5:9:5:18 | some_crate | -| gen_path.rs:5:21:5:31 | some_module | gen_path.rs:5:21:5:31 | some_module | -| gen_path.rs:5:34:5:42 | some_item | gen_path.rs:5:34:5:42 | some_item | -| gen_path.rs:6:5:6:7 | foo | gen_path.rs:6:5:6:7 | foo | -| gen_path.rs:6:10:6:12 | bar | gen_path.rs:6:10:6:12 | bar | -| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | -| gen_path_expr.rs:6:13:6:15 | foo | gen_path_expr.rs:6:13:6:15 | foo | -| gen_path_expr.rs:6:18:6:20 | bar | gen_path_expr.rs:6:18:6:20 | bar | -| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | -| gen_path_expr.rs:7:18:7:20 | foo | gen_path_expr.rs:7:18:7:20 | foo | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | -| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | -| gen_path_expr.rs:8:34:8:36 | foo | gen_path_expr.rs:8:34:8:36 | foo | -| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | -| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo | -| gen_path_pat.rs:6:14:6:16 | Bar | gen_path_pat.rs:6:14:6:16 | Bar | -| gen_path_type_repr.rs:5:14:5:16 | std | gen_path_type_repr.rs:5:14:5:16 | std | -| gen_path_type_repr.rs:5:19:5:29 | collections | gen_path_type_repr.rs:5:19:5:29 | collections | -| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | gen_path_type_repr.rs:5:32:5:38 | HashMap | -| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | -| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | -| gen_path_type_repr.rs:6:14:6:14 | X | gen_path_type_repr.rs:6:14:6:14 | X | -| gen_path_type_repr.rs:6:17:6:20 | Item | gen_path_type_repr.rs:6:17:6:20 | Item | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql deleted file mode 100644 index 23c06cef506..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql deleted file mode 100644 index 917567c100f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getParenthesizedArgList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getParenthesizedArgList() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.ql deleted file mode 100644 index 311642a5f85..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getRetType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getRetType() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql deleted file mode 100644 index f978f70c8a6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getReturnTypeSyntax.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getReturnTypeSyntax() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.expected deleted file mode 100644 index bb178b90970..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:26:8:30 | Trait | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql deleted file mode 100644 index 11675883d6a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTraitTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getTraitTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.expected deleted file mode 100644 index 99ac97381b3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:14:7:14 | T | -| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:14:8:21 | TypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql deleted file mode 100644 index 98303f7f0fb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathSegment x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected index 37988d0dfd7..1877b675dcd 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected @@ -1,3 +1,4 @@ +instances | gen_path_expr.rs:7:14:7:14 | T | hasPath: | yes | | gen_path_expr.rs:8:14:8:21 | TypeRepr | hasPath: | yes | | gen_path_expr.rs:8:26:8:30 | Trait | hasPath: | yes | @@ -5,3 +6,11 @@ | gen_path_type_repr.rs:5:40:5:42 | i32 | hasPath: | yes | | gen_path_type_repr.rs:5:45:5:47 | i32 | hasPath: | yes | | gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasPath: | yes | +getPath +| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | +| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:14:6:20 | ...::Item | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql index 0be55070a1b..cb641af4078 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from PathTypeRepr x, string hasPath -where +query predicate instances(PathTypeRepr x, string hasPath__label, string hasPath) { toBeTested(x) and not x.isUnknown() and + hasPath__label = "hasPath:" and if x.hasPath() then hasPath = "yes" else hasPath = "no" -select x, "hasPath:", hasPath +} + +query predicate getPath(PathTypeRepr x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.expected b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.expected deleted file mode 100644 index 57b46ef2813..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.expected +++ /dev/null @@ -1,7 +0,0 @@ -| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | -| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | -| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | -| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | -| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | -| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:14:6:20 | ...::Item | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql deleted file mode 100644 index b90c858b4cf..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PathTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.expected b/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.expected deleted file mode 100644 index de116eaca6a..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.expected +++ /dev/null @@ -1,10 +0,0 @@ -| gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:9:5:18 | some_crate | -| gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:9:5:31 | ...::some_module | -| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:5:6:7 | foo | -| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:13:6:15 | foo | -| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:13:7:15 | <...> | -| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:13:8:31 | <...> | -| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:9:6:11 | Foo | -| gen_path_type_repr.rs:5:14:5:29 | ...::collections | gen_path_type_repr.rs:5:14:5:16 | std | -| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:14:5:29 | ...::collections | -| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:14:6:14 | X | diff --git a/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.ql b/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.ql deleted file mode 100644 index 7678cffceca..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/Path_getQualifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Path x -where toBeTested(x) and not x.isUnknown() -select x, x.getQualifier() diff --git a/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.expected b/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.expected deleted file mode 100644 index 54cad7249d6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.expected +++ /dev/null @@ -1,25 +0,0 @@ -| gen_path.rs:5:9:5:18 | some_crate | gen_path.rs:5:9:5:18 | some_crate | -| gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:21:5:31 | some_module | -| gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:34:5:42 | some_item | -| gen_path.rs:6:5:6:7 | foo | gen_path.rs:6:5:6:7 | foo | -| gen_path.rs:6:5:6:12 | ...::bar | gen_path.rs:6:10:6:12 | bar | -| gen_path_expr.rs:5:13:5:20 | variable | gen_path_expr.rs:5:13:5:20 | variable | -| gen_path_expr.rs:6:13:6:15 | foo | gen_path_expr.rs:6:13:6:15 | foo | -| gen_path_expr.rs:6:13:6:20 | ...::bar | gen_path_expr.rs:6:18:6:20 | bar | -| gen_path_expr.rs:7:13:7:15 | <...> | gen_path_expr.rs:7:13:7:15 | <...> | -| gen_path_expr.rs:7:13:7:20 | ...::foo | gen_path_expr.rs:7:18:7:20 | foo | -| gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | -| gen_path_expr.rs:8:13:8:31 | <...> | gen_path_expr.rs:8:13:8:31 | <...> | -| gen_path_expr.rs:8:13:8:36 | ...::foo | gen_path_expr.rs:8:34:8:36 | foo | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | -| gen_path_expr.rs:8:26:8:30 | Trait | gen_path_expr.rs:8:26:8:30 | Trait | -| gen_path_pat.rs:5:11:5:11 | x | gen_path_pat.rs:5:11:5:11 | x | -| gen_path_pat.rs:6:9:6:11 | Foo | gen_path_pat.rs:6:9:6:11 | Foo | -| gen_path_pat.rs:6:9:6:16 | ...::Bar | gen_path_pat.rs:6:14:6:16 | Bar | -| gen_path_type_repr.rs:5:14:5:16 | std | gen_path_type_repr.rs:5:14:5:16 | std | -| gen_path_type_repr.rs:5:14:5:29 | ...::collections | gen_path_type_repr.rs:5:19:5:29 | collections | -| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | -| gen_path_type_repr.rs:5:40:5:42 | i32 | gen_path_type_repr.rs:5:40:5:42 | i32 | -| gen_path_type_repr.rs:5:45:5:47 | i32 | gen_path_type_repr.rs:5:45:5:47 | i32 | -| gen_path_type_repr.rs:6:14:6:14 | X | gen_path_type_repr.rs:6:14:6:14 | X | -| gen_path_type_repr.rs:6:14:6:20 | ...::Item | gen_path_type_repr.rs:6:17:6:20 | Item | diff --git a/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.ql b/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.ql deleted file mode 100644 index 7ccbefb4149..00000000000 --- a/rust/ql/test/extractor-tests/generated/Path/Path_getSegment.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Path x -where toBeTested(x) and not x.isUnknown() -select x, x.getSegment() diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/PrefixExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/PrefixExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected index 01ebd0f099c..9a7bf83a06e 100644 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected +++ b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected @@ -1,3 +1,13 @@ +instances | gen_prefix_expr.rs:5:13:5:15 | - ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | | gen_prefix_expr.rs:6:13:6:17 | ! ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | | gen_prefix_expr.rs:7:13:7:16 | * ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | +getAttr +getExpr +| gen_prefix_expr.rs:5:13:5:15 | - ... | gen_prefix_expr.rs:5:14:5:15 | 42 | +| gen_prefix_expr.rs:6:13:6:17 | ! ... | gen_prefix_expr.rs:6:14:6:17 | true | +| gen_prefix_expr.rs:7:13:7:16 | * ... | gen_prefix_expr.rs:7:14:7:16 | ptr | +getOperatorName +| gen_prefix_expr.rs:5:13:5:15 | - ... | - | +| gen_prefix_expr.rs:6:13:6:17 | ! ... | ! | +| gen_prefix_expr.rs:7:13:7:16 | * ... | * | diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql index 67d69c5363b..b263291ff6e 100644 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql +++ b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from PrefixExpr x, int getNumberOfAttrs, string hasExpr, string hasOperatorName -where +query predicate instances( + PrefixExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string hasOperatorName__label, string hasOperatorName +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasOperatorName__label = "hasOperatorName:" and if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "hasOperatorName:", - hasOperatorName +} + +query predicate getAttr(PrefixExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(PrefixExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getOperatorName(PrefixExpr x, string getOperatorName) { + toBeTested(x) and not x.isUnknown() and getOperatorName = x.getOperatorName() +} diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql deleted file mode 100644 index 813cb53ae4f..00000000000 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PrefixExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.expected deleted file mode 100644 index 6c9edcba00d..00000000000 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_prefix_expr.rs:5:13:5:15 | - ... | gen_prefix_expr.rs:5:14:5:15 | 42 | -| gen_prefix_expr.rs:6:13:6:17 | ! ... | gen_prefix_expr.rs:6:14:6:17 | true | -| gen_prefix_expr.rs:7:13:7:16 | * ... | gen_prefix_expr.rs:7:14:7:16 | ptr | diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql deleted file mode 100644 index d3e054d5eb8..00000000000 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PrefixExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.expected b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.expected deleted file mode 100644 index 0cee9c31bc3..00000000000 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_prefix_expr.rs:5:13:5:15 | - ... | - | -| gen_prefix_expr.rs:6:13:6:17 | ! ... | ! | -| gen_prefix_expr.rs:7:13:7:16 | * ... | * | diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql deleted file mode 100644 index 0246ef2465c..00000000000 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr_getOperatorName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PrefixExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getOperatorName() diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected index b975dde09ff..f66639667e1 100644 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected @@ -1,2 +1,6 @@ +instances | gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | isConst: | yes | isMut: | no | hasTypeRepr: | yes | | gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | isConst: | no | isMut: | yes | hasTypeRepr: | yes | +getTypeRepr +| gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | gen_ptr_type_repr.rs:7:19:7:21 | i32 | +| gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | gen_ptr_type_repr.rs:8:17:8:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql index 4cbda847f32..6220e06fc0d 100644 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql @@ -2,11 +2,20 @@ import codeql.rust.elements import TestUtils -from PtrTypeRepr x, string isConst, string isMut, string hasTypeRepr -where +query predicate instances( + PtrTypeRepr x, string isConst__label, string isConst, string isMut__label, string isMut, + string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "isConst:", isConst, "isMut:", isMut, "hasTypeRepr:", hasTypeRepr +} + +query predicate getTypeRepr(PtrTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.expected deleted file mode 100644 index 8006e33f1d6..00000000000 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | gen_ptr_type_repr.rs:7:19:7:21 | i32 | -| gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | gen_ptr_type_repr.rs:8:17:8:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql deleted file mode 100644 index 8200677c2b5..00000000000 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from PtrTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/RangeExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RangeExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected index 7d8aeff6dfa..25ce7a4fe32 100644 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected +++ b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected @@ -1,6 +1,24 @@ +instances | gen_range_expr.rs:5:13:5:18 | 1..=10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | | gen_range_expr.rs:6:13:6:17 | 1..10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | | gen_range_expr.rs:7:13:7:16 | 10.. | getNumberOfAttrs: | 0 | hasEnd: | no | hasOperatorName: | yes | hasStart: | yes | | gen_range_expr.rs:8:13:8:16 | ..10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | | gen_range_expr.rs:9:13:9:17 | ..=10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | | gen_range_expr.rs:10:13:10:14 | .. | getNumberOfAttrs: | 0 | hasEnd: | no | hasOperatorName: | yes | hasStart: | no | +getAttr +getEnd +| gen_range_expr.rs:5:13:5:18 | 1..=10 | gen_range_expr.rs:5:17:5:18 | 10 | +| gen_range_expr.rs:6:13:6:17 | 1..10 | gen_range_expr.rs:6:16:6:17 | 10 | +| gen_range_expr.rs:8:13:8:16 | ..10 | gen_range_expr.rs:8:15:8:16 | 10 | +| gen_range_expr.rs:9:13:9:17 | ..=10 | gen_range_expr.rs:9:16:9:17 | 10 | +getOperatorName +| gen_range_expr.rs:5:13:5:18 | 1..=10 | ..= | +| gen_range_expr.rs:6:13:6:17 | 1..10 | .. | +| gen_range_expr.rs:7:13:7:16 | 10.. | .. | +| gen_range_expr.rs:8:13:8:16 | ..10 | .. | +| gen_range_expr.rs:9:13:9:17 | ..=10 | ..= | +| gen_range_expr.rs:10:13:10:14 | .. | .. | +getStart +| gen_range_expr.rs:5:13:5:18 | 1..=10 | gen_range_expr.rs:5:13:5:13 | 1 | +| gen_range_expr.rs:6:13:6:17 | 1..10 | gen_range_expr.rs:6:13:6:13 | 1 | +| gen_range_expr.rs:7:13:7:16 | 10.. | gen_range_expr.rs:7:13:7:14 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql index c664f1d747e..cd6baaf169d 100644 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql +++ b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql @@ -2,13 +2,35 @@ import codeql.rust.elements import TestUtils -from RangeExpr x, int getNumberOfAttrs, string hasEnd, string hasOperatorName, string hasStart -where +query predicate instances( + RangeExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasEnd__label, + string hasEnd, string hasOperatorName__label, string hasOperatorName, string hasStart__label, + string hasStart +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasEnd__label = "hasEnd:" and (if x.hasEnd() then hasEnd = "yes" else hasEnd = "no") and + hasOperatorName__label = "hasOperatorName:" and (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and + hasStart__label = "hasStart:" and if x.hasStart() then hasStart = "yes" else hasStart = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasEnd:", hasEnd, "hasOperatorName:", - hasOperatorName, "hasStart:", hasStart +} + +query predicate getAttr(RangeExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getEnd(RangeExpr x, Expr getEnd) { + toBeTested(x) and not x.isUnknown() and getEnd = x.getEnd() +} + +query predicate getOperatorName(RangeExpr x, string getOperatorName) { + toBeTested(x) and not x.isUnknown() and getOperatorName = x.getOperatorName() +} + +query predicate getStart(RangeExpr x, Expr getStart) { + toBeTested(x) and not x.isUnknown() and getStart = x.getStart() +} diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql deleted file mode 100644 index 1c538e88c29..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangeExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.expected deleted file mode 100644 index 46f5dba778c..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_range_expr.rs:5:13:5:18 | 1..=10 | gen_range_expr.rs:5:17:5:18 | 10 | -| gen_range_expr.rs:6:13:6:17 | 1..10 | gen_range_expr.rs:6:16:6:17 | 10 | -| gen_range_expr.rs:8:13:8:16 | ..10 | gen_range_expr.rs:8:15:8:16 | 10 | -| gen_range_expr.rs:9:13:9:17 | ..=10 | gen_range_expr.rs:9:16:9:17 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql deleted file mode 100644 index c39a039099d..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getEnd.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangeExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getEnd() diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.expected deleted file mode 100644 index ee9172ac1ce..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_range_expr.rs:5:13:5:18 | 1..=10 | ..= | -| gen_range_expr.rs:6:13:6:17 | 1..10 | .. | -| gen_range_expr.rs:7:13:7:16 | 10.. | .. | -| gen_range_expr.rs:8:13:8:16 | ..10 | .. | -| gen_range_expr.rs:9:13:9:17 | ..=10 | ..= | -| gen_range_expr.rs:10:13:10:14 | .. | .. | diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql deleted file mode 100644 index f554a9ecf74..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getOperatorName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangeExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getOperatorName() diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.expected deleted file mode 100644 index 7f58ee5299f..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_range_expr.rs:5:13:5:18 | 1..=10 | gen_range_expr.rs:5:13:5:13 | 1 | -| gen_range_expr.rs:6:13:6:17 | 1..10 | gen_range_expr.rs:6:13:6:13 | 1 | -| gen_range_expr.rs:7:13:7:16 | 10.. | gen_range_expr.rs:7:13:7:14 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql deleted file mode 100644 index d47b9e81b86..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr_getStart.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangeExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getStart() diff --git a/rust/ql/test/extractor-tests/generated/RangePat/Cargo.lock b/rust/ql/test/extractor-tests/generated/RangePat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RangePat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected index ec32f2a5a1c..6cbb8331bfe 100644 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected +++ b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected @@ -1,3 +1,14 @@ +instances | gen_range_pat.rs:6:9:6:12 | RangePat | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | | gen_range_pat.rs:7:9:7:15 | RangePat | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | | gen_range_pat.rs:8:9:8:12 | RangePat | hasEnd: | no | hasOperatorName: | yes | hasStart: | yes | +getEnd +| gen_range_pat.rs:6:9:6:12 | RangePat | gen_range_pat.rs:6:11:6:12 | 15 | +| gen_range_pat.rs:7:9:7:15 | RangePat | gen_range_pat.rs:7:14:7:15 | 25 | +getOperatorName +| gen_range_pat.rs:6:9:6:12 | RangePat | .. | +| gen_range_pat.rs:7:9:7:15 | RangePat | ..= | +| gen_range_pat.rs:8:9:8:12 | RangePat | .. | +getStart +| gen_range_pat.rs:7:9:7:15 | RangePat | gen_range_pat.rs:7:9:7:10 | 16 | +| gen_range_pat.rs:8:9:8:12 | RangePat | gen_range_pat.rs:8:9:8:10 | 26 | diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql index d9b4bb41348..feb5488d4ab 100644 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql +++ b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from RangePat x, string hasEnd, string hasOperatorName, string hasStart -where +query predicate instances( + RangePat x, string hasEnd__label, string hasEnd, string hasOperatorName__label, + string hasOperatorName, string hasStart__label, string hasStart +) { toBeTested(x) and not x.isUnknown() and + hasEnd__label = "hasEnd:" and (if x.hasEnd() then hasEnd = "yes" else hasEnd = "no") and + hasOperatorName__label = "hasOperatorName:" and (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and + hasStart__label = "hasStart:" and if x.hasStart() then hasStart = "yes" else hasStart = "no" -select x, "hasEnd:", hasEnd, "hasOperatorName:", hasOperatorName, "hasStart:", hasStart +} + +query predicate getEnd(RangePat x, Pat getEnd) { + toBeTested(x) and not x.isUnknown() and getEnd = x.getEnd() +} + +query predicate getOperatorName(RangePat x, string getOperatorName) { + toBeTested(x) and not x.isUnknown() and getOperatorName = x.getOperatorName() +} + +query predicate getStart(RangePat x, Pat getStart) { + toBeTested(x) and not x.isUnknown() and getStart = x.getStart() +} diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.expected b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.expected deleted file mode 100644 index 38ded3fb940..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_range_pat.rs:6:9:6:12 | RangePat | gen_range_pat.rs:6:11:6:12 | 15 | -| gen_range_pat.rs:7:9:7:15 | RangePat | gen_range_pat.rs:7:14:7:15 | 25 | diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql deleted file mode 100644 index 61a27c77543..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getEnd.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangePat x -where toBeTested(x) and not x.isUnknown() -select x, x.getEnd() diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.expected b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.expected deleted file mode 100644 index 537608104c7..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_range_pat.rs:6:9:6:12 | RangePat | .. | -| gen_range_pat.rs:7:9:7:15 | RangePat | ..= | -| gen_range_pat.rs:8:9:8:12 | RangePat | .. | diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql deleted file mode 100644 index f2f3052eae3..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getOperatorName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangePat x -where toBeTested(x) and not x.isUnknown() -select x, x.getOperatorName() diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.expected b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.expected deleted file mode 100644 index ac6eadaf08c..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_range_pat.rs:7:9:7:15 | RangePat | gen_range_pat.rs:7:9:7:10 | 16 | -| gen_range_pat.rs:8:9:8:12 | RangePat | gen_range_pat.rs:8:9:8:10 | 26 | diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.ql b/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.ql deleted file mode 100644 index 29bbeda81cf..00000000000 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat_getStart.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RangePat x -where toBeTested(x) and not x.isUnknown() -select x, x.getStart() diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/RefExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RefExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected index 412f8214206..31d723fb1f4 100644 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected +++ b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected @@ -1,4 +1,11 @@ +instances | gen_ref_expr.rs:5:25:5:28 | &foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | no | isRaw: | no | | gen_ref_expr.rs:6:23:6:30 | &mut foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | yes | isRaw: | no | | gen_ref_expr.rs:7:35:7:48 | &raw const foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | yes | isMut: | no | isRaw: | yes | | gen_ref_expr.rs:8:33:8:44 | &raw mut foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | yes | isRaw: | yes | +getAttr +getExpr +| gen_ref_expr.rs:5:25:5:28 | &foo | gen_ref_expr.rs:5:26:5:28 | foo | +| gen_ref_expr.rs:6:23:6:30 | &mut foo | gen_ref_expr.rs:6:28:6:30 | foo | +| gen_ref_expr.rs:7:35:7:48 | &raw const foo | gen_ref_expr.rs:7:46:7:48 | foo | +| gen_ref_expr.rs:8:33:8:44 | &raw mut foo | gen_ref_expr.rs:8:42:8:44 | foo | diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql index a2567b81ed7..5d7b325e202 100644 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql +++ b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql @@ -2,14 +2,29 @@ import codeql.rust.elements import TestUtils -from RefExpr x, int getNumberOfAttrs, string hasExpr, string isConst, string isMut, string isRaw -where +query predicate instances( + RefExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string isConst__label, string isConst, string isMut__label, string isMut, + string isRaw__label, string isRaw +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + isRaw__label = "isRaw:" and if x.isRaw() then isRaw = "yes" else isRaw = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "isConst:", isConst, "isMut:", - isMut, "isRaw:", isRaw +} + +query predicate getAttr(RefExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(RefExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql deleted file mode 100644 index 7ef6d44228e..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RefExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.expected deleted file mode 100644 index 7709668f6fd..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_ref_expr.rs:5:25:5:28 | &foo | gen_ref_expr.rs:5:26:5:28 | foo | -| gen_ref_expr.rs:6:23:6:30 | &mut foo | gen_ref_expr.rs:6:28:6:30 | foo | -| gen_ref_expr.rs:7:35:7:48 | &raw const foo | gen_ref_expr.rs:7:46:7:48 | foo | -| gen_ref_expr.rs:8:33:8:44 | &raw mut foo | gen_ref_expr.rs:8:42:8:44 | foo | diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql deleted file mode 100644 index b1404db9783..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RefExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/RefPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/RefPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RefPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected index a9dfaf87456..3bbcbc2fed7 100644 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected +++ b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected @@ -1,2 +1,6 @@ +instances | gen_ref_pat.rs:6:9:6:28 | &mut ... | isMut: | yes | hasPat: | yes | | gen_ref_pat.rs:7:9:7:21 | &...::None | isMut: | no | hasPat: | yes | +getPat +| gen_ref_pat.rs:6:9:6:28 | &mut ... | gen_ref_pat.rs:6:14:6:28 | ...::Some(...) | +| gen_ref_pat.rs:7:9:7:21 | &...::None | gen_ref_pat.rs:7:10:7:21 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql index 4ae72433dad..c6b6afa5854 100644 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql +++ b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql @@ -2,10 +2,17 @@ import codeql.rust.elements import TestUtils -from RefPat x, string isMut, string hasPat -where +query predicate instances( + RefPat x, string isMut__label, string isMut, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "isMut:", isMut, "hasPat:", hasPat +} + +query predicate getPat(RefPat x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.expected b/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.expected deleted file mode 100644 index 029fd9fa172..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_ref_pat.rs:6:9:6:28 | &mut ... | gen_ref_pat.rs:6:14:6:28 | ...::Some(...) | -| gen_ref_pat.rs:7:9:7:21 | &...::None | gen_ref_pat.rs:7:10:7:21 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.ql b/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.ql deleted file mode 100644 index 758e4e7895e..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RefPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/RefTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RefTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected index da74246c0db..30f641c5dc7 100644 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected @@ -1,2 +1,7 @@ +instances | gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | isMut: | no | hasLifetime: | no | hasTypeRepr: | yes | | gen_ref_type_repr.rs:8:12:8:19 | RefTypeRepr | isMut: | yes | hasLifetime: | no | hasTypeRepr: | yes | +getLifetime +getTypeRepr +| gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | gen_ref_type_repr.rs:7:13:7:15 | i32 | +| gen_ref_type_repr.rs:8:12:8:19 | RefTypeRepr | gen_ref_type_repr.rs:8:17:8:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql index e60d7faa8ed..61918497373 100644 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql @@ -2,11 +2,24 @@ import codeql.rust.elements import TestUtils -from RefTypeRepr x, string isMut, string hasLifetime, string hasTypeRepr -where +query predicate instances( + RefTypeRepr x, string isMut__label, string isMut, string hasLifetime__label, string hasLifetime, + string hasTypeRepr__label, string hasTypeRepr +) { toBeTested(x) and not x.isUnknown() and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + hasLifetime__label = "hasLifetime:" and (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "isMut:", isMut, "hasLifetime:", hasLifetime, "hasTypeRepr:", hasTypeRepr +} + +query predicate getLifetime(RefTypeRepr x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} + +query predicate getTypeRepr(RefTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.expected b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql deleted file mode 100644 index 9d857300ea4..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RefTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.expected deleted file mode 100644 index 59518bf3743..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | gen_ref_type_repr.rs:7:13:7:15 | i32 | -| gen_ref_type_repr.rs:8:12:8:19 | RefTypeRepr | gen_ref_type_repr.rs:8:17:8:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql deleted file mode 100644 index 1e04fa75ab3..00000000000 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RefTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Rename/Cargo.lock b/rust/ql/test/extractor-tests/generated/Rename/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Rename/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename.expected b/rust/ql/test/extractor-tests/generated/Rename/Rename.expected index 3568d798d28..a4131b35c0e 100644 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename.expected +++ b/rust/ql/test/extractor-tests/generated/Rename/Rename.expected @@ -1 +1,4 @@ +instances | gen_rename.rs:7:13:7:18 | Rename | hasName: | yes | +getName +| gen_rename.rs:7:13:7:18 | Rename | gen_rename.rs:7:16:7:18 | bar | diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename.ql b/rust/ql/test/extractor-tests/generated/Rename/Rename.ql index 91e748797f2..5875619c2ab 100644 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename.ql +++ b/rust/ql/test/extractor-tests/generated/Rename/Rename.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Rename x, string hasName -where +query predicate instances(Rename x, string hasName__label, string hasName) { toBeTested(x) and not x.isUnknown() and + hasName__label = "hasName:" and if x.hasName() then hasName = "yes" else hasName = "no" -select x, "hasName:", hasName +} + +query predicate getName(Rename x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.expected b/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.expected deleted file mode 100644 index 323982f910d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_rename.rs:7:13:7:18 | Rename | gen_rename.rs:7:16:7:18 | bar | diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.ql b/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.ql deleted file mode 100644 index 59df9dcf5ca..00000000000 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Rename x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/RestPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/RestPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RestPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected index c5d19cda38d..8dfb600e638 100644 --- a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected +++ b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected @@ -1 +1,3 @@ +instances | gen_rest_pat.rs:7:13:7:14 | .. | getNumberOfAttrs: | 0 | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql index c3cb2a24f83..dbf8f55b0ed 100644 --- a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql +++ b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from RestPat x, int getNumberOfAttrs -where +query predicate instances(RestPat x, string getNumberOfAttrs__label, int getNumberOfAttrs) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getAttr(RestPat x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.expected b/rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.ql b/rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.ql deleted file mode 100644 index e85a7975b6b..00000000000 --- a/rust/ql/test/extractor-tests/generated/RestPat/RestPat_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RestPat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/RetTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/RetTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected index 18726b694bf..0729c6815bb 100644 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected @@ -1,2 +1,6 @@ +instances | gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | hasTypeRepr: | yes | | gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | hasTypeRepr: | yes | +getTypeRepr +| gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | gen_ret_type_repr.rs:3:28:3:29 | TupleTypeRepr | +| gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | gen_ret_type_repr.rs:7:17:7:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql index d03f9d4f1b6..c892ab67a45 100644 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from RetTypeRepr x, string hasTypeRepr -where +query predicate instances(RetTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { toBeTested(x) and not x.isUnknown() and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "hasTypeRepr:", hasTypeRepr +} + +query predicate getTypeRepr(RetTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.expected deleted file mode 100644 index c150253243e..00000000000 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | gen_ret_type_repr.rs:3:28:3:29 | TupleTypeRepr | -| gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | gen_ret_type_repr.rs:7:17:7:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql deleted file mode 100644 index b2a7bf73d76..00000000000 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from RetTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/ReturnExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ReturnExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected index 83220773989..7a36d488d40 100644 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected @@ -1,2 +1,6 @@ +instances | gen_return_expr.rs:5:5:5:13 | return 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | | gen_return_expr.rs:8:5:8:10 | return | getNumberOfAttrs: | 0 | hasExpr: | no | +getAttr +getExpr +| gen_return_expr.rs:5:5:5:13 | return 42 | gen_return_expr.rs:5:12:5:13 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql index aa8c4d886a7..b15b1483d67 100644 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from ReturnExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + ReturnExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(ReturnExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(ReturnExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql deleted file mode 100644 index 23366928f39..00000000000 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ReturnExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.expected deleted file mode 100644 index c75ecd0b23c..00000000000 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_return_expr.rs:5:5:5:13 | return 42 | gen_return_expr.rs:5:12:5:13 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql deleted file mode 100644 index 8f682d7a5b1..00000000000 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from ReturnExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/Cargo.lock b/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql b/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql index e29f818af43..0b84f93a9b2 100644 --- a/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql +++ b/rust/ql/test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from ReturnTypeSyntax x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(ReturnTypeSyntax x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/Cargo.lock b/rust/ql/test/extractor-tests/generated/SelfParam/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/SelfParam/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected index ba8ab1e624d..373ea50f5ec 100644 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected +++ b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected @@ -1,5 +1,16 @@ +instances | gen_self_param.rs:6:10:6:14 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | no | hasLifetime: | no | hasName: | yes | | gen_self_param.rs:7:10:7:18 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | yes | hasLifetime: | no | hasName: | yes | | gen_self_param.rs:8:12:8:15 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | no | isMut: | no | hasLifetime: | no | hasName: | yes | | gen_self_param.rs:9:11:9:18 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | no | isMut: | yes | hasLifetime: | no | hasName: | yes | | gen_self_param.rs:10:15:10:22 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | no | hasLifetime: | yes | hasName: | yes | +getAttr +getTypeRepr +getLifetime +| gen_self_param.rs:10:15:10:22 | SelfParam | gen_self_param.rs:10:16:10:17 | 'a | +getName +| gen_self_param.rs:6:10:6:14 | SelfParam | gen_self_param.rs:6:11:6:14 | self | +| gen_self_param.rs:7:10:7:18 | SelfParam | gen_self_param.rs:7:15:7:18 | self | +| gen_self_param.rs:8:12:8:15 | SelfParam | gen_self_param.rs:8:12:8:15 | self | +| gen_self_param.rs:9:11:9:18 | SelfParam | gen_self_param.rs:9:15:9:18 | self | +| gen_self_param.rs:10:15:10:22 | SelfParam | gen_self_param.rs:10:19:10:22 | self | diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql index 3f09c3ece20..e785b0b8ba8 100644 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql +++ b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql @@ -2,17 +2,39 @@ import codeql.rust.elements import TestUtils -from - SelfParam x, int getNumberOfAttrs, string hasTypeRepr, string isRef, string isMut, - string hasLifetime, string hasName -where +query predicate instances( + SelfParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, + string hasTypeRepr, string isRef__label, string isRef, string isMut__label, string isMut, + string hasLifetime__label, string hasLifetime, string hasName__label, string hasName +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + isRef__label = "isRef:" and (if x.isRef() then isRef = "yes" else isRef = "no") and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + hasLifetime__label = "hasLifetime:" and (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and + hasName__label = "hasName:" and if x.hasName() then hasName = "yes" else hasName = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasTypeRepr:", hasTypeRepr, "isRef:", isRef, - "isMut:", isMut, "hasLifetime:", hasLifetime, "hasName:", hasName +} + +query predicate getAttr(SelfParam x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTypeRepr(SelfParam x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getLifetime(SelfParam x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} + +query predicate getName(SelfParam x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql deleted file mode 100644 index 682c1a9374a..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SelfParam x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.expected deleted file mode 100644 index cfe91c68c85..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_self_param.rs:10:15:10:22 | SelfParam | gen_self_param.rs:10:16:10:17 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql deleted file mode 100644 index a64eb368a71..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SelfParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.expected deleted file mode 100644 index 6b57cfe1570..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.expected +++ /dev/null @@ -1,5 +0,0 @@ -| gen_self_param.rs:6:10:6:14 | SelfParam | gen_self_param.rs:6:11:6:14 | self | -| gen_self_param.rs:7:10:7:18 | SelfParam | gen_self_param.rs:7:15:7:18 | self | -| gen_self_param.rs:8:12:8:15 | SelfParam | gen_self_param.rs:8:12:8:15 | self | -| gen_self_param.rs:9:11:9:18 | SelfParam | gen_self_param.rs:9:15:9:18 | self | -| gen_self_param.rs:10:15:10:22 | SelfParam | gen_self_param.rs:10:19:10:22 | self | diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.ql deleted file mode 100644 index 7a99270bfa5..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SelfParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql deleted file mode 100644 index 0be0ec9902d..00000000000 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SelfParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/Cargo.lock b/rust/ql/test/extractor-tests/generated/SlicePat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/SlicePat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected index 0821ea23323..dbdb09c2693 100644 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected +++ b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected @@ -1,3 +1,18 @@ +instances | gen_slice_pat.rs:6:9:6:23 | SlicePat | getNumberOfPats: | 5 | | gen_slice_pat.rs:7:9:7:18 | SlicePat | getNumberOfPats: | 3 | | gen_slice_pat.rs:8:9:8:24 | SlicePat | getNumberOfPats: | 5 | +getPat +| gen_slice_pat.rs:6:9:6:23 | SlicePat | 0 | gen_slice_pat.rs:6:10:6:10 | 1 | +| gen_slice_pat.rs:6:9:6:23 | SlicePat | 1 | gen_slice_pat.rs:6:13:6:13 | 2 | +| gen_slice_pat.rs:6:9:6:23 | SlicePat | 2 | gen_slice_pat.rs:6:16:6:16 | 3 | +| gen_slice_pat.rs:6:9:6:23 | SlicePat | 3 | gen_slice_pat.rs:6:19:6:19 | 4 | +| gen_slice_pat.rs:6:9:6:23 | SlicePat | 4 | gen_slice_pat.rs:6:22:6:22 | 5 | +| gen_slice_pat.rs:7:9:7:18 | SlicePat | 0 | gen_slice_pat.rs:7:10:7:10 | 1 | +| gen_slice_pat.rs:7:9:7:18 | SlicePat | 1 | gen_slice_pat.rs:7:13:7:13 | 2 | +| gen_slice_pat.rs:7:9:7:18 | SlicePat | 2 | gen_slice_pat.rs:7:16:7:17 | .. | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | 0 | gen_slice_pat.rs:8:10:8:10 | x | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | 1 | gen_slice_pat.rs:8:13:8:13 | y | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | 2 | gen_slice_pat.rs:8:16:8:17 | .. | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | 3 | gen_slice_pat.rs:8:20:8:20 | z | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | 4 | gen_slice_pat.rs:8:23:8:23 | 7 | diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql index 2b6c51f9da6..0013b1df2b4 100644 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql +++ b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from SlicePat x, int getNumberOfPats -where +query predicate instances(SlicePat x, string getNumberOfPats__label, int getNumberOfPats) { toBeTested(x) and not x.isUnknown() and + getNumberOfPats__label = "getNumberOfPats:" and getNumberOfPats = x.getNumberOfPats() -select x, "getNumberOfPats:", getNumberOfPats +} + +query predicate getPat(SlicePat x, int index, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat(index) +} diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.expected b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.expected deleted file mode 100644 index 0725988f37f..00000000000 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.expected +++ /dev/null @@ -1,13 +0,0 @@ -| gen_slice_pat.rs:6:9:6:23 | SlicePat | 0 | gen_slice_pat.rs:6:10:6:10 | 1 | -| gen_slice_pat.rs:6:9:6:23 | SlicePat | 1 | gen_slice_pat.rs:6:13:6:13 | 2 | -| gen_slice_pat.rs:6:9:6:23 | SlicePat | 2 | gen_slice_pat.rs:6:16:6:16 | 3 | -| gen_slice_pat.rs:6:9:6:23 | SlicePat | 3 | gen_slice_pat.rs:6:19:6:19 | 4 | -| gen_slice_pat.rs:6:9:6:23 | SlicePat | 4 | gen_slice_pat.rs:6:22:6:22 | 5 | -| gen_slice_pat.rs:7:9:7:18 | SlicePat | 0 | gen_slice_pat.rs:7:10:7:10 | 1 | -| gen_slice_pat.rs:7:9:7:18 | SlicePat | 1 | gen_slice_pat.rs:7:13:7:13 | 2 | -| gen_slice_pat.rs:7:9:7:18 | SlicePat | 2 | gen_slice_pat.rs:7:16:7:17 | .. | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | 0 | gen_slice_pat.rs:8:10:8:10 | x | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | 1 | gen_slice_pat.rs:8:13:8:13 | y | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | 2 | gen_slice_pat.rs:8:16:8:17 | .. | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | 3 | gen_slice_pat.rs:8:20:8:20 | z | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | 4 | gen_slice_pat.rs:8:23:8:23 | 7 | diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql deleted file mode 100644 index 37194fd2f1d..00000000000 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SlicePat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getPat(index) diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected index dfcfb754437..b87a8caad8c 100644 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected @@ -1 +1,4 @@ +instances | gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | hasTypeRepr: | yes | +getTypeRepr +| gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | gen_slice_type_repr.rs:7:14:7:16 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql index 4f60ce58624..d43ab3185f9 100644 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from SliceTypeRepr x, string hasTypeRepr -where +query predicate instances(SliceTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { toBeTested(x) and not x.isUnknown() and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "hasTypeRepr:", hasTypeRepr +} + +query predicate getTypeRepr(SliceTypeRepr x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.expected deleted file mode 100644 index 7c0b5e94e2f..00000000000 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | gen_slice_type_repr.rs:7:14:7:16 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql deleted file mode 100644 index 80d2c59ba29..00000000000 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SliceTypeRepr x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/Cargo.lock b/rust/ql/test/extractor-tests/generated/SourceFile/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/SourceFile/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected index e354381a921..e6b44060e33 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected @@ -1,2 +1,7 @@ +instances | gen_source_file.rs:1:1:9:2 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | | lib.rs:1:1:1:20 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | +getAttr +getItem +| gen_source_file.rs:1:1:9:2 | SourceFile | 0 | gen_source_file.rs:3:1:9:1 | fn test_source_file | +| lib.rs:1:1:1:20 | SourceFile | 0 | lib.rs:1:1:1:20 | mod gen_source_file | diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql index b904bf731a8..2c1d76f6330 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from SourceFile x, int getNumberOfAttrs, int getNumberOfItems -where +query predicate instances( + SourceFile x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfItems__label, int getNumberOfItems +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfItems__label = "getNumberOfItems:" and getNumberOfItems = x.getNumberOfItems() -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfItems:", getNumberOfItems +} + +query predicate getAttr(SourceFile x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getItem(SourceFile x, int index, Item getItem) { + toBeTested(x) and not x.isUnknown() and getItem = x.getItem(index) +} diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql deleted file mode 100644 index d1842052239..00000000000 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SourceFile x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected deleted file mode 100644 index 236a2a0755b..00000000000 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_source_file.rs:1:1:9:2 | SourceFile | 0 | gen_source_file.rs:3:1:9:1 | fn test_source_file | -| lib.rs:1:1:1:20 | SourceFile | 0 | lib.rs:1:1:1:20 | mod gen_source_file | diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql deleted file mode 100644 index 339ea18c216..00000000000 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile_getItem.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from SourceFile x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getItem(index) diff --git a/rust/ql/test/extractor-tests/generated/Static/Cargo.lock b/rust/ql/test/extractor-tests/generated/Static/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Static/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.expected b/rust/ql/test/extractor-tests/generated/Static/Static.expected index 076578efe68..bb95e6994f0 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.expected +++ b/rust/ql/test/extractor-tests/generated/Static/Static.expected @@ -1 +1,13 @@ +instances | gen_static.rs:4:5:7:23 | Static | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | isMut: | no | isStatic: | yes | isUnsafe: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getBody +| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:21:7:22 | 42 | +getName +| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:12:7:12 | X | +getTypeRepr +| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:15:7:17 | i32 | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.ql b/rust/ql/test/extractor-tests/generated/Static/Static.ql index 96a1fbd9814..67e70e864ea 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.ql +++ b/rust/ql/test/extractor-tests/generated/Static/Static.ql @@ -2,33 +2,78 @@ import codeql.rust.elements import TestUtils -from - Static x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasBody, string isMut, - string isStatic, string isUnsafe, string hasName, string hasTypeRepr, string hasVisibility -where +query predicate instances( + Static x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasBody__label, string hasBody, string isMut__label, string isMut, string isStatic__label, + string isStatic, string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, + string hasTypeRepr__label, string hasTypeRepr, string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and + isStatic__label = "isStatic:" and (if x.isStatic() then isStatic = "yes" else isStatic = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasBody:", hasBody, "isMut:", isMut, "isStatic:", isStatic, "isUnsafe:", isUnsafe, "hasName:", - hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(Static x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Static x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Static x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(Static x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getBody(Static x, Expr getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getName(Static x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeRepr(Static x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getVisibility(Static x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getAttr.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getAttr.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getAttr.ql deleted file mode 100644 index df76d9642d2..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql deleted file mode 100644 index 500484b60b3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getBody.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getBody.expected deleted file mode 100644 index 1c7305c4991..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:21:7:22 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getBody.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getBody.ql deleted file mode 100644 index 3983685f7fa..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql deleted file mode 100644 index 373b6bd45f4..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql deleted file mode 100644 index 32b3a0c127e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getName.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getName.expected deleted file mode 100644 index 96c219c64db..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:12:7:12 | X | diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getName.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getName.ql deleted file mode 100644 index 714d58c3892..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.expected deleted file mode 100644 index 556c5467484..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_static.rs:4:5:7:23 | Static | gen_static.rs:7:15:7:17 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.ql deleted file mode 100644 index 6aa9e4108e9..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.ql deleted file mode 100644 index 7ba134e17bc..00000000000 --- a/rust/ql/test/extractor-tests/generated/Static/Static_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Static x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/StmtList/Cargo.lock b/rust/ql/test/extractor-tests/generated/StmtList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StmtList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected index 46bdea2a71c..6511305ed81 100644 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected +++ b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected @@ -1,2 +1,9 @@ +instances | gen_stmt_list.rs:3:27:12:1 | StmtList | getNumberOfAttrs: | 0 | getNumberOfStatements: | 0 | hasTailExpr: | yes | | gen_stmt_list.rs:7:5:10:5 | StmtList | getNumberOfAttrs: | 0 | getNumberOfStatements: | 2 | hasTailExpr: | no | +getAttr +getStatement +| gen_stmt_list.rs:7:5:10:5 | StmtList | 0 | gen_stmt_list.rs:8:9:8:18 | let ... = 1 | +| gen_stmt_list.rs:7:5:10:5 | StmtList | 1 | gen_stmt_list.rs:9:9:9:18 | let ... = 2 | +getTailExpr +| gen_stmt_list.rs:3:27:12:1 | StmtList | gen_stmt_list.rs:7:5:10:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql index e24be9ebffe..a9717e52fe4 100644 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql +++ b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql @@ -2,12 +2,29 @@ import codeql.rust.elements import TestUtils -from StmtList x, int getNumberOfAttrs, int getNumberOfStatements, string hasTailExpr -where +query predicate instances( + StmtList x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfStatements__label, int getNumberOfStatements, string hasTailExpr__label, + string hasTailExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfStatements__label = "getNumberOfStatements:" and getNumberOfStatements = x.getNumberOfStatements() and + hasTailExpr__label = "hasTailExpr:" and if x.hasTailExpr() then hasTailExpr = "yes" else hasTailExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfStatements:", getNumberOfStatements, - "hasTailExpr:", hasTailExpr +} + +query predicate getAttr(StmtList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getStatement(StmtList x, int index, Stmt getStatement) { + toBeTested(x) and not x.isUnknown() and getStatement = x.getStatement(index) +} + +query predicate getTailExpr(StmtList x, Expr getTailExpr) { + toBeTested(x) and not x.isUnknown() and getTailExpr = x.getTailExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.expected b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.ql b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.ql deleted file mode 100644 index a1a2079e938..00000000000 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StmtList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.expected b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.expected deleted file mode 100644 index 46bda795699..00000000000 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_stmt_list.rs:7:5:10:5 | StmtList | 0 | gen_stmt_list.rs:8:9:8:18 | let ... = 1 | -| gen_stmt_list.rs:7:5:10:5 | StmtList | 1 | gen_stmt_list.rs:9:9:9:18 | let ... = 2 | diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.ql b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.ql deleted file mode 100644 index f895ca9fa01..00000000000 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getStatement.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StmtList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getStatement(index) diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.expected b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.expected deleted file mode 100644 index 998a40aea79..00000000000 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_stmt_list.rs:3:27:12:1 | StmtList | gen_stmt_list.rs:7:5:10:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql b/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql deleted file mode 100644 index 592c6085451..00000000000 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList_getTailExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StmtList x -where toBeTested(x) and not x.isUnknown() -select x, x.getTailExpr() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected index 971e141a202..1432ab9864f 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected @@ -1 +1,14 @@ +instances | gen_struct.rs:4:5:8:5 | struct Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasFieldList: | yes | hasGenericParamList: | no | hasName: | yes | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getDeriveMacroExpansion +getAttr +getFieldList +| gen_struct.rs:4:5:8:5 | struct Point | gen_struct.rs:5:18:8:5 | StructFieldList | +getGenericParamList +getName +| gen_struct.rs:4:5:8:5 | struct Point | gen_struct.rs:5:12:5:16 | Point | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index f5f0439f175..aa0faaab091 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -2,34 +2,85 @@ import codeql.rust.elements import TestUtils -from - Struct x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, - string hasFieldList, string hasGenericParamList, string hasName, string hasVisibility, - string hasWhereClause -where +query predicate instances( + Struct x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, + int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasFieldList__label, string hasFieldList, string hasGenericParamList__label, + string hasGenericParamList, string hasName__label, string hasName, string hasVisibility__label, + string hasVisibility, string hasWhereClause__label, string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasFieldList__label = "hasFieldList:" and (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", - getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasFieldList:", - hasFieldList, "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(Struct x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Struct x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Struct x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getDeriveMacroExpansion(Struct x, int index, MacroItems getDeriveMacroExpansion) { + toBeTested(x) and not x.isUnknown() and getDeriveMacroExpansion = x.getDeriveMacroExpansion(index) +} + +query predicate getAttr(Struct x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getFieldList(Struct x, FieldList getFieldList) { + toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() +} + +query predicate getGenericParamList(Struct x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Struct x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getVisibility(Struct x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Struct x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.ql deleted file mode 100644 index 11789c109f0..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql deleted file mode 100644 index 7673f2d669e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql deleted file mode 100644 index cafe120d4de..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql deleted file mode 100644 index 3009a782a88..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getDeriveMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql deleted file mode 100644 index f502a347b3e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.expected deleted file mode 100644 index b2233206f64..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_struct.rs:4:5:8:5 | struct Point | gen_struct.rs:5:18:8:5 | StructFieldList | diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.ql deleted file mode 100644 index cdbdf6a37be..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getFieldList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getFieldList() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql deleted file mode 100644 index 31a30a865f7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.expected deleted file mode 100644 index 6912576e6fb..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_struct.rs:4:5:8:5 | struct Point | gen_struct.rs:5:12:5:16 | Point | diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.ql deleted file mode 100644 index 40a167b3f2e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.ql deleted file mode 100644 index a86863cb1c7..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.ql deleted file mode 100644 index b1df6874c1d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Struct x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected index b9d3562413c..1a7d410b7a9 100644 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected +++ b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected @@ -1,4 +1,17 @@ +instances | gen_struct_expr.rs:5:17:5:34 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | | gen_struct_expr.rs:6:18:6:38 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | | gen_struct_expr.rs:7:5:7:22 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | | gen_struct_expr.rs:8:5:8:14 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | +getResolvedPath +getResolvedCrateOrigin +getPath +| gen_struct_expr.rs:5:17:5:34 | Foo {...} | gen_struct_expr.rs:5:17:5:19 | Foo | +| gen_struct_expr.rs:6:18:6:38 | Foo {...} | gen_struct_expr.rs:6:18:6:20 | Foo | +| gen_struct_expr.rs:7:5:7:22 | Foo {...} | gen_struct_expr.rs:7:5:7:7 | Foo | +| gen_struct_expr.rs:8:5:8:14 | Foo {...} | gen_struct_expr.rs:8:5:8:7 | Foo | +getStructExprFieldList +| gen_struct_expr.rs:5:17:5:34 | Foo {...} | gen_struct_expr.rs:5:21:5:34 | StructExprFieldList | +| gen_struct_expr.rs:6:18:6:38 | Foo {...} | gen_struct_expr.rs:6:22:6:38 | StructExprFieldList | +| gen_struct_expr.rs:7:5:7:22 | Foo {...} | gen_struct_expr.rs:7:9:7:22 | StructExprFieldList | +| gen_struct_expr.rs:8:5:8:14 | Foo {...} | gen_struct_expr.rs:8:9:8:14 | StructExprFieldList | diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql index 6b4189951a5..4d9bf5d6a8e 100644 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql +++ b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql @@ -2,21 +2,41 @@ import codeql.rust.elements import TestUtils -from - StructExpr x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath, - string hasStructExprFieldList -where +query predicate instances( + StructExpr x, string hasResolvedPath__label, string hasResolvedPath, + string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, + string hasPath, string hasStructExprFieldList__label, string hasStructExprFieldList +) { toBeTested(x) and not x.isUnknown() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + hasStructExprFieldList__label = "hasStructExprFieldList:" and if x.hasStructExprFieldList() then hasStructExprFieldList = "yes" else hasStructExprFieldList = "no" -select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, - "hasPath:", hasPath, "hasStructExprFieldList:", hasStructExprFieldList +} + +query predicate getResolvedPath(StructExpr x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(StructExpr x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getPath(StructExpr x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getStructExprFieldList(StructExpr x, StructExprFieldList getStructExprFieldList) { + toBeTested(x) and not x.isUnknown() and getStructExprFieldList = x.getStructExprFieldList() +} diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.expected deleted file mode 100644 index ca22511d4c1..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_struct_expr.rs:5:17:5:34 | Foo {...} | gen_struct_expr.rs:5:17:5:19 | Foo | -| gen_struct_expr.rs:6:18:6:38 | Foo {...} | gen_struct_expr.rs:6:18:6:20 | Foo | -| gen_struct_expr.rs:7:5:7:22 | Foo {...} | gen_struct_expr.rs:7:5:7:7 | Foo | -| gen_struct_expr.rs:8:5:8:14 | Foo {...} | gen_struct_expr.rs:8:5:8:7 | Foo | diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql deleted file mode 100644 index dd6682ca28b..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql deleted file mode 100644 index 10d7894e2e1..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql deleted file mode 100644 index 49876f1872a..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.expected deleted file mode 100644 index cf201f27ca2..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_struct_expr.rs:5:17:5:34 | Foo {...} | gen_struct_expr.rs:5:21:5:34 | StructExprFieldList | -| gen_struct_expr.rs:6:18:6:38 | Foo {...} | gen_struct_expr.rs:6:22:6:38 | StructExprFieldList | -| gen_struct_expr.rs:7:5:7:22 | Foo {...} | gen_struct_expr.rs:7:9:7:22 | StructExprFieldList | -| gen_struct_expr.rs:8:5:8:14 | Foo {...} | gen_struct_expr.rs:8:9:8:14 | StructExprFieldList | diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql deleted file mode 100644 index 4e8e74dca36..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr_getStructExprFieldList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getStructExprFieldList() diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructExprField/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructExprField/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected index 952656c39aa..84a6fd60682 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected +++ b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected @@ -1,2 +1,10 @@ +instances | gen_struct_expr_field.rs:5:11:5:14 | a: 1 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasIdentifier: | yes | | gen_struct_expr_field.rs:5:17:5:20 | b: 2 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasIdentifier: | yes | +getAttr +getExpr +| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | gen_struct_expr_field.rs:5:14:5:14 | 1 | +| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | gen_struct_expr_field.rs:5:20:5:20 | 2 | +getIdentifier +| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | gen_struct_expr_field.rs:5:11:5:11 | a | +| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | gen_struct_expr_field.rs:5:17:5:17 | b | diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql index 3d383af10dc..a8142d07dc7 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql +++ b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from StructExprField x, int getNumberOfAttrs, string hasExpr, string hasIdentifier -where +query predicate instances( + StructExprField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr, string hasIdentifier__label, string hasIdentifier +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and + hasIdentifier__label = "hasIdentifier:" and if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr, "hasIdentifier:", - hasIdentifier +} + +query predicate getAttr(StructExprField x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(StructExprField x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} + +query predicate getIdentifier(StructExprField x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.expected b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql deleted file mode 100644 index 2742907ba87..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprField x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.expected b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.expected deleted file mode 100644 index ee1f3e2a9fe..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | gen_struct_expr_field.rs:5:14:5:14 | 1 | -| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | gen_struct_expr_field.rs:5:20:5:20 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql deleted file mode 100644 index f301995d0b9..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprField x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.expected deleted file mode 100644 index feb2debc66e..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | gen_struct_expr_field.rs:5:11:5:11 | a | -| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | gen_struct_expr_field.rs:5:17:5:17 | b | diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql deleted file mode 100644 index 6d6b06cf3d5..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprField x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructExprFieldList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructExprFieldList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected index 16e48f1e4f9..b81d8eac119 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected @@ -1 +1,7 @@ +instances | gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | hasSpread: | no | +getAttr +getField +| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | 0 | gen_struct_expr_field_list.rs:7:11:7:14 | a: 1 | +| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | 1 | gen_struct_expr_field_list.rs:7:17:7:20 | b: 2 | +getSpread diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql index 75690e39e19..4ce42a59421 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from StructExprFieldList x, int getNumberOfAttrs, int getNumberOfFields, string hasSpread -where +query predicate instances( + StructExprFieldList x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfFields__label, int getNumberOfFields, string hasSpread__label, string hasSpread +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() and + hasSpread__label = "hasSpread:" and if x.hasSpread() then hasSpread = "yes" else hasSpread = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfFields:", getNumberOfFields, - "hasSpread:", hasSpread +} + +query predicate getAttr(StructExprFieldList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getField(StructExprFieldList x, int index, StructExprField getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} + +query predicate getSpread(StructExprFieldList x, Expr getSpread) { + toBeTested(x) and not x.isUnknown() and getSpread = x.getSpread() +} diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.expected b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql deleted file mode 100644 index 2285cd246d6..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprFieldList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.expected b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.expected deleted file mode 100644 index a9e8edc6aae..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | 0 | gen_struct_expr_field_list.rs:7:11:7:14 | a: 1 | -| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | 1 | gen_struct_expr_field_list.rs:7:17:7:20 | b: 2 | diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql deleted file mode 100644 index 3872d178afc..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprFieldList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.expected b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql deleted file mode 100644 index d3a50472592..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList_getSpread.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructExprFieldList x -where toBeTested(x) and not x.isUnknown() -select x, x.getSpread() diff --git a/rust/ql/test/extractor-tests/generated/StructField/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructField/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructField/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField.expected index 52a70f01feb..1423f2e71d6 100644 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField.expected +++ b/rust/ql/test/extractor-tests/generated/StructField/StructField.expected @@ -1 +1,9 @@ +instances | gen_struct_field.rs:7:16:7:21 | StructField | getNumberOfAttrs: | 0 | hasDefault: | no | isUnsafe: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | +getAttr +getDefault +getName +| gen_struct_field.rs:7:16:7:21 | StructField | gen_struct_field.rs:7:16:7:16 | x | +getTypeRepr +| gen_struct_field.rs:7:16:7:21 | StructField | gen_struct_field.rs:7:19:7:21 | i32 | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField.ql index cf7b3d995e1..455dc16438b 100644 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField.ql +++ b/rust/ql/test/extractor-tests/generated/StructField/StructField.ql @@ -2,17 +2,43 @@ import codeql.rust.elements import TestUtils -from - StructField x, int getNumberOfAttrs, string hasDefault, string isUnsafe, string hasName, - string hasTypeRepr, string hasVisibility -where +query predicate instances( + StructField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefault__label, + string hasDefault, string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, + string hasTypeRepr__label, string hasTypeRepr, string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasDefault__label = "hasDefault:" and (if x.hasDefault() then hasDefault = "yes" else hasDefault = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasDefault:", hasDefault, "isUnsafe:", isUnsafe, - "hasName:", hasName, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", hasVisibility +} + +query predicate getAttr(StructField x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getDefault(StructField x, Expr getDefault) { + toBeTested(x) and not x.isUnknown() and getDefault = x.getDefault() +} + +query predicate getName(StructField x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeRepr(StructField x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getVisibility(StructField x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.ql deleted file mode 100644 index 61661be4490..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructField x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.ql deleted file mode 100644 index dbdd22c00e0..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getDefault.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructField x -where toBeTested(x) and not x.isUnknown() -select x, x.getDefault() diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.expected deleted file mode 100644 index 1b66b3a883b..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_struct_field.rs:7:16:7:21 | StructField | gen_struct_field.rs:7:16:7:16 | x | diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.ql deleted file mode 100644 index a8078e8a34e..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructField x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.expected deleted file mode 100644 index ad77aac4601..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_struct_field.rs:7:16:7:21 | StructField | gen_struct_field.rs:7:19:7:21 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql deleted file mode 100644 index 27cd539c0be..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructField x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.ql deleted file mode 100644 index 43ebca77656..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructField x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructFieldList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructFieldList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected index f07a535897f..6d100043abd 100644 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected @@ -1 +1,5 @@ +instances | gen_struct_field_list.rs:7:14:7:31 | StructFieldList | getNumberOfFields: | 2 | +getField +| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 0 | gen_struct_field_list.rs:7:16:7:21 | StructField | +| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 1 | gen_struct_field_list.rs:7:24:7:29 | StructField | diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql index 62725f6189b..81f5991e669 100644 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from StructFieldList x, int getNumberOfFields -where +query predicate instances(StructFieldList x, string getNumberOfFields__label, int getNumberOfFields) { toBeTested(x) and not x.isUnknown() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "getNumberOfFields:", getNumberOfFields +} + +query predicate getField(StructFieldList x, int index, StructField getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.expected b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.expected deleted file mode 100644 index cd2ac33b4c9..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 0 | gen_struct_field_list.rs:7:16:7:21 | StructField | -| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 1 | gen_struct_field_list.rs:7:24:7:29 | StructField | diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql deleted file mode 100644 index f1c7d0b58dc..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructFieldList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/StructPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected index 976f45ab4cd..e95115ae69a 100644 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected +++ b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected @@ -1,2 +1,11 @@ +instances | gen_struct_pat.rs:6:9:6:26 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructPatFieldList: | yes | | gen_struct_pat.rs:7:9:7:18 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructPatFieldList: | yes | +getResolvedPath +getResolvedCrateOrigin +getPath +| gen_struct_pat.rs:6:9:6:26 | Foo {...} | gen_struct_pat.rs:6:9:6:11 | Foo | +| gen_struct_pat.rs:7:9:7:18 | Foo {...} | gen_struct_pat.rs:7:9:7:11 | Foo | +getStructPatFieldList +| gen_struct_pat.rs:6:9:6:26 | Foo {...} | gen_struct_pat.rs:6:13:6:26 | StructPatFieldList | +| gen_struct_pat.rs:7:9:7:18 | Foo {...} | gen_struct_pat.rs:7:13:7:18 | StructPatFieldList | diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql index 9df81390d42..82f0034da47 100644 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql +++ b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql @@ -2,19 +2,39 @@ import codeql.rust.elements import TestUtils -from - StructPat x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath, - string hasStructPatFieldList -where +query predicate instances( + StructPat x, string hasResolvedPath__label, string hasResolvedPath, + string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, + string hasPath, string hasStructPatFieldList__label, string hasStructPatFieldList +) { toBeTested(x) and not x.isUnknown() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + hasStructPatFieldList__label = "hasStructPatFieldList:" and if x.hasStructPatFieldList() then hasStructPatFieldList = "yes" else hasStructPatFieldList = "no" -select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, - "hasPath:", hasPath, "hasStructPatFieldList:", hasStructPatFieldList +} + +query predicate getResolvedPath(StructPat x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(StructPat x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getPath(StructPat x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getStructPatFieldList(StructPat x, StructPatFieldList getStructPatFieldList) { + toBeTested(x) and not x.isUnknown() and getStructPatFieldList = x.getStructPatFieldList() +} diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.expected deleted file mode 100644 index 1430d89402a..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_pat.rs:6:9:6:26 | Foo {...} | gen_struct_pat.rs:6:9:6:11 | Foo | -| gen_struct_pat.rs:7:9:7:18 | Foo {...} | gen_struct_pat.rs:7:9:7:11 | Foo | diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.ql deleted file mode 100644 index 078813c2700..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql deleted file mode 100644 index 1fdff67b735..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql deleted file mode 100644 index f7a60efc20e..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.expected deleted file mode 100644 index 33464196b16..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_pat.rs:6:9:6:26 | Foo {...} | gen_struct_pat.rs:6:13:6:26 | StructPatFieldList | -| gen_struct_pat.rs:7:9:7:18 | Foo {...} | gen_struct_pat.rs:7:13:7:18 | StructPatFieldList | diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql deleted file mode 100644 index 1304a8e16f3..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat_getStructPatFieldList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getStructPatFieldList() diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructPatField/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructPatField/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected index bb492dabd12..a8c40fcb68f 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected +++ b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected @@ -1,2 +1,10 @@ +instances | gen_struct_pat_field.rs:5:15:5:18 | a: 1 | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasPat: | yes | | gen_struct_pat_field.rs:5:21:5:24 | b: 2 | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasPat: | yes | +getAttr +getIdentifier +| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | gen_struct_pat_field.rs:5:15:5:15 | a | +| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | gen_struct_pat_field.rs:5:21:5:21 | b | +getPat +| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | gen_struct_pat_field.rs:5:18:5:18 | 1 | +| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | gen_struct_pat_field.rs:5:24:5:24 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql index a68d2b52614..67eb1d7c99d 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql +++ b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql @@ -2,11 +2,28 @@ import codeql.rust.elements import TestUtils -from StructPatField x, int getNumberOfAttrs, string hasIdentifier, string hasPat -where +query predicate instances( + StructPatField x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasIdentifier__label, string hasIdentifier, string hasPat__label, string hasPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasIdentifier__label = "hasIdentifier:" and (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and + hasPat__label = "hasPat:" and if x.hasPat() then hasPat = "yes" else hasPat = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasIdentifier:", hasIdentifier, "hasPat:", hasPat +} + +query predicate getAttr(StructPatField x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getIdentifier(StructPatField x, NameRef getIdentifier) { + toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() +} + +query predicate getPat(StructPatField x, Pat getPat) { + toBeTested(x) and not x.isUnknown() and getPat = x.getPat() +} diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.expected b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql deleted file mode 100644 index 4dd2a726473..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPatField x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.expected b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.expected deleted file mode 100644 index b2f9c496747..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | gen_struct_pat_field.rs:5:15:5:15 | a | -| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | gen_struct_pat_field.rs:5:21:5:21 | b | diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql deleted file mode 100644 index e03a98229b3..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getIdentifier.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPatField x -where toBeTested(x) and not x.isUnknown() -select x, x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.expected b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.expected deleted file mode 100644 index 28e7c4313b0..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | gen_struct_pat_field.rs:5:18:5:18 | 1 | -| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | gen_struct_pat_field.rs:5:24:5:24 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql deleted file mode 100644 index 4a8cbbd794b..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField_getPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPatField x -where toBeTested(x) and not x.isUnknown() -select x, x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/Cargo.lock b/rust/ql/test/extractor-tests/generated/StructPatFieldList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/StructPatFieldList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected index a52d73ab6c8..54c067a025b 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected @@ -1 +1,6 @@ +instances | gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | getNumberOfFields: | 2 | hasRestPat: | no | +getField +| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 0 | gen_struct_pat_field_list.rs:7:15:7:15 | ... | +| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 1 | gen_struct_pat_field_list.rs:7:18:7:18 | ... | +getRestPat diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql index 051b28b0718..f0e4c5f2185 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from StructPatFieldList x, int getNumberOfFields, string hasRestPat -where +query predicate instances( + StructPatFieldList x, string getNumberOfFields__label, int getNumberOfFields, + string hasRestPat__label, string hasRestPat +) { toBeTested(x) and not x.isUnknown() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() and + hasRestPat__label = "hasRestPat:" and if x.hasRestPat() then hasRestPat = "yes" else hasRestPat = "no" -select x, "getNumberOfFields:", getNumberOfFields, "hasRestPat:", hasRestPat +} + +query predicate getField(StructPatFieldList x, int index, StructPatField getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} + +query predicate getRestPat(StructPatFieldList x, RestPat getRestPat) { + toBeTested(x) and not x.isUnknown() and getRestPat = x.getRestPat() +} diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.expected b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.expected deleted file mode 100644 index c2d445a5a3f..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 0 | gen_struct_pat_field_list.rs:7:15:7:15 | ... | -| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 1 | gen_struct_pat_field_list.rs:7:18:7:18 | ... | diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql deleted file mode 100644 index 65e6d34b0f8..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPatFieldList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.expected b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql deleted file mode 100644 index 6ba00441e92..00000000000 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList_getRestPat.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from StructPatFieldList x -where toBeTested(x) and not x.isUnknown() -select x, x.getRestPat() diff --git a/rust/ql/test/extractor-tests/generated/TokenTree/Cargo.lock b/rust/ql/test/extractor-tests/generated/TokenTree/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TokenTree/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TokenTree/TokenTree.ql b/rust/ql/test/extractor-tests/generated/TokenTree/TokenTree.ql index 299c1e48b6b..9e4496fc718 100644 --- a/rust/ql/test/extractor-tests/generated/TokenTree/TokenTree.ql +++ b/rust/ql/test/extractor-tests/generated/TokenTree/TokenTree.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from TokenTree x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(TokenTree x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected index 123a2da6653..07cfc7acf83 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected @@ -1,2 +1,8 @@ +instances | gen_trait.rs:4:20:8:1 | AssocItemList | getNumberOfAssocItems: | 3 | getNumberOfAttrs: | 0 | | gen_trait.rs:10:56:10:57 | AssocItemList | getNumberOfAssocItems: | 0 | getNumberOfAttrs: | 0 | +getAssocItem +| gen_trait.rs:4:20:8:1 | AssocItemList | 0 | gen_trait.rs:5:3:5:18 | type Frobinator | +| gen_trait.rs:4:20:8:1 | AssocItemList | 1 | gen_trait.rs:6:3:6:20 | type Result | +| gen_trait.rs:4:20:8:1 | AssocItemList | 2 | gen_trait.rs:7:3:7:72 | fn frobinize_with | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql index eebd261c6bd..c0e5ffde800 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from AssocItemList x, int getNumberOfAssocItems, int getNumberOfAttrs -where +query predicate instances( + AssocItemList x, string getNumberOfAssocItems__label, int getNumberOfAssocItems, + string getNumberOfAttrs__label, int getNumberOfAttrs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAssocItems__label = "getNumberOfAssocItems:" and getNumberOfAssocItems = x.getNumberOfAssocItems() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "getNumberOfAssocItems:", getNumberOfAssocItems, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getAssocItem(AssocItemList x, int index, AssocItem getAssocItem) { + toBeTested(x) and not x.isUnknown() and getAssocItem = x.getAssocItem(index) +} + +query predicate getAttr(AssocItemList x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.expected b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.expected deleted file mode 100644 index a8b21eb8466..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_trait.rs:4:20:8:1 | AssocItemList | 0 | gen_trait.rs:5:3:5:18 | type Frobinator | -| gen_trait.rs:4:20:8:1 | AssocItemList | 1 | gen_trait.rs:6:3:6:20 | type Result | -| gen_trait.rs:4:20:8:1 | AssocItemList | 2 | gen_trait.rs:7:3:7:72 | fn frobinize_with | diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql deleted file mode 100644 index 01d36f7cc54..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAssocItem.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAssocItem(index) diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.expected b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql deleted file mode 100644 index 72b5f366737..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from AssocItemList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Trait/Cargo.lock b/rust/ql/test/extractor-tests/generated/Trait/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Trait/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected index de921f246b4..c7ed1fef545 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected @@ -1,2 +1,24 @@ +instances | gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | | gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | +getExtendedCanonicalPath +| gen_trait.rs:3:1:8:1 | trait Frobinizable | crate::gen_trait::Frobinizable | +| gen_trait.rs:10:1:10:57 | trait Foo | crate::gen_trait::Foo | +getCrateOrigin +| gen_trait.rs:3:1:8:1 | trait Frobinizable | repo::test | +| gen_trait.rs:10:1:10:57 | trait Foo | repo::test | +getAttributeMacroExpansion +getAssocItemList +| gen_trait.rs:3:1:8:1 | trait Frobinizable | gen_trait.rs:4:20:8:1 | AssocItemList | +| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:56:10:57 | AssocItemList | +getAttr +getGenericParamList +| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:14:10:30 | <...> | +getName +| gen_trait.rs:3:1:8:1 | trait Frobinizable | gen_trait.rs:4:7:4:18 | Frobinizable | +| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:11:10:13 | Foo | +getTypeBoundList +getVisibility +| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:1:10:3 | Visibility | +getWhereClause +| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:32:10:54 | WhereClause | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql index 2e8173a21af..9079f66cfc0 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql @@ -2,36 +2,90 @@ import codeql.rust.elements import TestUtils -from - Trait x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, string hasAssocItemList, int getNumberOfAttrs, - string hasGenericParamList, string isAuto, string isUnsafe, string hasName, - string hasTypeBoundList, string hasVisibility, string hasWhereClause -where +query predicate instances( + Trait x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string hasAssocItemList__label, string hasAssocItemList, + string getNumberOfAttrs__label, int getNumberOfAttrs, string hasGenericParamList__label, + string hasGenericParamList, string isAuto__label, string isAuto, string isUnsafe__label, + string isUnsafe, string hasName__label, string hasName, string hasTypeBoundList__label, + string hasTypeBoundList, string hasVisibility__label, string hasVisibility, + string hasWhereClause__label, string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + hasAssocItemList__label = "hasAssocItemList:" and (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + isAuto__label = "isAuto:" and (if x.isAuto() then isAuto = "yes" else isAuto = "no") and + isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "hasAssocItemList:", hasAssocItemList, - "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", hasGenericParamList, "isAuto:", - isAuto, "isUnsafe:", isUnsafe, "hasName:", hasName, "hasTypeBoundList:", hasTypeBoundList, - "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(Trait x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Trait x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Trait x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAssocItemList(Trait x, AssocItemList getAssocItemList) { + toBeTested(x) and not x.isUnknown() and getAssocItemList = x.getAssocItemList() +} + +query predicate getAttr(Trait x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(Trait x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Trait x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeBoundList(Trait x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} + +query predicate getVisibility(Trait x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Trait x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.expected deleted file mode 100644 index b60c89c8d3f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | gen_trait.rs:4:20:8:1 | AssocItemList | -| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:56:10:57 | AssocItemList | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql deleted file mode 100644 index 94a59605021..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAssocItemList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getAssocItemList() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.ql deleted file mode 100644 index 219303af515..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql deleted file mode 100644 index 9499d03e9cc..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.expected deleted file mode 100644 index 1e42bb43731..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | repo::test | -| gen_trait.rs:10:1:10:57 | trait Foo | repo::test | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql deleted file mode 100644 index 8c2c71a918e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.expected deleted file mode 100644 index 6a5e8203673..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | crate::gen_trait::Frobinizable | -| gen_trait.rs:10:1:10:57 | trait Foo | crate::gen_trait::Foo | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql deleted file mode 100644 index 5281a18656b..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.expected deleted file mode 100644 index ba9e996565f..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:14:10:30 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql deleted file mode 100644 index db979636892..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.expected deleted file mode 100644 index 1c087cdea89..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_trait.rs:3:1:8:1 | trait Frobinizable | gen_trait.rs:4:7:4:18 | Frobinizable | -| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:11:10:13 | Foo | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.ql deleted file mode 100644 index eeb7b6f4802..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql deleted file mode 100644 index f5544da39d3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.expected deleted file mode 100644 index 56576624e47..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:1:10:3 | Visibility | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.ql deleted file mode 100644 index 1405d15127e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.expected deleted file mode 100644 index d46ac2d04cd..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_trait.rs:10:1:10:57 | trait Foo | gen_trait.rs:10:32:10:54 | WhereClause | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql deleted file mode 100644 index fb7448f8196..00000000000 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Trait x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/Cargo.lock b/rust/ql/test/extractor-tests/generated/TraitAlias/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected index 0a5b69dcd5e..62b759298c8 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected @@ -1 +1,13 @@ +instances | gen_trait_alias.rs:7:5:7:26 | TraitAlias | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasTypeBoundList: | yes | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getGenericParamList +getName +| gen_trait_alias.rs:7:5:7:26 | TraitAlias | gen_trait_alias.rs:7:11:7:13 | Foo | +getTypeBoundList +| gen_trait_alias.rs:7:5:7:26 | TraitAlias | gen_trait_alias.rs:7:17:7:25 | TypeBoundList | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql index 319f65e3730..5a6d695ae6e 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql @@ -2,31 +2,79 @@ import codeql.rust.elements import TestUtils -from - TraitAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, - string hasName, string hasTypeBoundList, string hasVisibility, string hasWhereClause -where +query predicate instances( + TraitAlias x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasGenericParamList__label, string hasGenericParamList, string hasName__label, + string hasName, string hasTypeBoundList__label, string hasTypeBoundList, + string hasVisibility__label, string hasVisibility, string hasWhereClause__label, + string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "hasName:", hasName, "hasTypeBoundList:", - hasTypeBoundList, "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(TraitAlias x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(TraitAlias x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(TraitAlias x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(TraitAlias x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(TraitAlias x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(TraitAlias x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeBoundList(TraitAlias x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} + +query predicate getVisibility(TraitAlias x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(TraitAlias x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql deleted file mode 100644 index 3ca992de122..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql deleted file mode 100644 index 6a0c43cfc87..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql deleted file mode 100644 index 6f9ccf89262..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql deleted file mode 100644 index 6326e730c33..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql deleted file mode 100644 index 3372d78e89e..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.expected deleted file mode 100644 index e0aae353801..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_trait_alias.rs:7:5:7:26 | TraitAlias | gen_trait_alias.rs:7:11:7:13 | Foo | diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql deleted file mode 100644 index 2b64f27e19d..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.expected deleted file mode 100644 index 797921bf4dd..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_trait_alias.rs:7:5:7:26 | TraitAlias | gen_trait_alias.rs:7:17:7:25 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql deleted file mode 100644 index 28f7588ec9f..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql deleted file mode 100644 index 1dde55e9663..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql deleted file mode 100644 index 91e39d5e646..00000000000 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TraitAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/TryExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TryExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected index 214ca5597ec..1a81eb0f477 100644 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected +++ b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected @@ -1 +1,5 @@ +instances | gen_try_expr.rs:7:13:7:18 | TryExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_try_expr.rs:7:13:7:18 | TryExpr | gen_try_expr.rs:7:13:7:17 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql index be3c70a933c..6f22b28067c 100644 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql +++ b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from TryExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + TryExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(TryExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(TryExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql deleted file mode 100644 index 1073bec1860..00000000000 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TryExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.expected deleted file mode 100644 index fb0c8042969..00000000000 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_try_expr.rs:7:13:7:18 | TryExpr | gen_try_expr.rs:7:13:7:17 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql deleted file mode 100644 index 477a2bb5811..00000000000 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TryExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/TupleExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TupleExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected index 2bd4e57c30e..c78dbfcbcbd 100644 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected +++ b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected @@ -1,2 +1,9 @@ +instances | gen_tuple_expr.rs:5:5:5:14 | TupleExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | | gen_tuple_expr.rs:6:5:6:14 | TupleExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | +getAttr +getField +| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | 0 | gen_tuple_expr.rs:5:6:5:6 | 1 | +| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | 1 | gen_tuple_expr.rs:5:9:5:13 | "one" | +| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | 0 | gen_tuple_expr.rs:6:6:6:6 | 2 | +| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | 1 | gen_tuple_expr.rs:6:9:6:13 | "two" | diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql index 573d7936d6c..d3d04608a5f 100644 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql +++ b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from TupleExpr x, int getNumberOfAttrs, int getNumberOfFields -where +query predicate instances( + TupleExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, + string getNumberOfFields__label, int getNumberOfFields +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "getNumberOfAttrs:", getNumberOfAttrs, "getNumberOfFields:", getNumberOfFields +} + +query predicate getAttr(TupleExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getField(TupleExpr x, int index, Expr getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql deleted file mode 100644 index 6736dada82b..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.expected b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.expected deleted file mode 100644 index 11cd1614ccd..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.expected +++ /dev/null @@ -1,4 +0,0 @@ -| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | 0 | gen_tuple_expr.rs:5:6:5:6 | 1 | -| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | 1 | gen_tuple_expr.rs:5:9:5:13 | "one" | -| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | 0 | gen_tuple_expr.rs:6:6:6:6 | 2 | -| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | 1 | gen_tuple_expr.rs:6:9:6:13 | "two" | diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql deleted file mode 100644 index 79c25f047d0..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleField/Cargo.lock b/rust/ql/test/extractor-tests/generated/TupleField/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TupleField/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected index 4c658836ad9..86985a0ceb1 100644 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected +++ b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected @@ -1,2 +1,8 @@ +instances | gen_tuple_field.rs:7:14:7:16 | TupleField | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasVisibility: | no | | gen_tuple_field.rs:7:19:7:24 | TupleField | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasVisibility: | no | +getAttr +getTypeRepr +| gen_tuple_field.rs:7:14:7:16 | TupleField | gen_tuple_field.rs:7:14:7:16 | i32 | +| gen_tuple_field.rs:7:19:7:24 | TupleField | gen_tuple_field.rs:7:19:7:24 | String | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql index 15401629a60..52720718de5 100644 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql +++ b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql @@ -2,12 +2,28 @@ import codeql.rust.elements import TestUtils -from TupleField x, int getNumberOfAttrs, string hasTypeRepr, string hasVisibility -where +query predicate instances( + TupleField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, + string hasTypeRepr, string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasTypeRepr:", hasTypeRepr, "hasVisibility:", - hasVisibility +} + +query predicate getAttr(TupleField x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getTypeRepr(TupleField x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getVisibility(TupleField x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.expected b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.ql b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.ql deleted file mode 100644 index 23481ed001a..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleField x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.expected deleted file mode 100644 index 31c4849e7a3..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_tuple_field.rs:7:14:7:16 | TupleField | gen_tuple_field.rs:7:14:7:16 | i32 | -| gen_tuple_field.rs:7:19:7:24 | TupleField | gen_tuple_field.rs:7:19:7:24 | String | diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql deleted file mode 100644 index b68e736cec3..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleField x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.expected b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql b/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql deleted file mode 100644 index 457bbd1a57b..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleField x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/Cargo.lock b/rust/ql/test/extractor-tests/generated/TupleFieldList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TupleFieldList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected index 5101ab7bf19..59c97d1032d 100644 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected @@ -1 +1,5 @@ +instances | gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | getNumberOfFields: | 2 | +getField +| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 0 | gen_tuple_field_list.rs:7:14:7:16 | TupleField | +| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 1 | gen_tuple_field_list.rs:7:19:7:24 | TupleField | diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql index fd25929804e..1edeb8b3060 100644 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from TupleFieldList x, int getNumberOfFields -where +query predicate instances(TupleFieldList x, string getNumberOfFields__label, int getNumberOfFields) { toBeTested(x) and not x.isUnknown() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "getNumberOfFields:", getNumberOfFields +} + +query predicate getField(TupleFieldList x, int index, TupleField getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.expected b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.expected deleted file mode 100644 index 77b15f1aa42..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 0 | gen_tuple_field_list.rs:7:14:7:16 | TupleField | -| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 1 | gen_tuple_field_list.rs:7:19:7:24 | TupleField | diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql deleted file mode 100644 index 8483c03f1d7..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleFieldList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/Cargo.lock b/rust/ql/test/extractor-tests/generated/TuplePat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TuplePat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected index d6522bb7bf1..3d4877a21b7 100644 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected +++ b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected @@ -1,2 +1,10 @@ +instances | gen_tuple_pat.rs:5:9:5:14 | TuplePat | getNumberOfFields: | 2 | | gen_tuple_pat.rs:6:9:6:22 | TuplePat | getNumberOfFields: | 4 | +getField +| gen_tuple_pat.rs:5:9:5:14 | TuplePat | 0 | gen_tuple_pat.rs:5:10:5:10 | x | +| gen_tuple_pat.rs:5:9:5:14 | TuplePat | 1 | gen_tuple_pat.rs:5:13:5:13 | y | +| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 0 | gen_tuple_pat.rs:6:10:6:10 | a | +| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 1 | gen_tuple_pat.rs:6:13:6:13 | b | +| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 2 | gen_tuple_pat.rs:6:16:6:17 | .. | +| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 3 | gen_tuple_pat.rs:6:21:6:21 | z | diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql index 6e65f167985..514e7aed8b2 100644 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql +++ b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from TuplePat x, int getNumberOfFields -where +query predicate instances(TuplePat x, string getNumberOfFields__label, int getNumberOfFields) { toBeTested(x) and not x.isUnknown() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "getNumberOfFields:", getNumberOfFields +} + +query predicate getField(TuplePat x, int index, Pat getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.expected b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.expected deleted file mode 100644 index 78e00f39c92..00000000000 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.expected +++ /dev/null @@ -1,6 +0,0 @@ -| gen_tuple_pat.rs:5:9:5:14 | TuplePat | 0 | gen_tuple_pat.rs:5:10:5:10 | x | -| gen_tuple_pat.rs:5:9:5:14 | TuplePat | 1 | gen_tuple_pat.rs:5:13:5:13 | y | -| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 0 | gen_tuple_pat.rs:6:10:6:10 | a | -| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 1 | gen_tuple_pat.rs:6:13:6:13 | b | -| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 2 | gen_tuple_pat.rs:6:16:6:17 | .. | -| gen_tuple_pat.rs:6:9:6:22 | TuplePat | 3 | gen_tuple_pat.rs:6:21:6:21 | z | diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.ql b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.ql deleted file mode 100644 index 5366bc445f1..00000000000 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TuplePat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/TupleStructPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TupleStructPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected index 9e9de534b1e..1c703883b79 100644 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected +++ b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected @@ -1,3 +1,18 @@ +instances | gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 4 | | gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 2 | | gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 1 | +getResolvedPath +getResolvedCrateOrigin +getPath +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | gen_tuple_struct_pat.rs:6:9:6:13 | Tuple | +| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | gen_tuple_struct_pat.rs:7:9:7:13 | Tuple | +| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | gen_tuple_struct_pat.rs:8:9:8:13 | Tuple | +getField +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:6:15:6:17 | "a" | +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 1 | gen_tuple_struct_pat.rs:6:20:6:20 | 1 | +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 2 | gen_tuple_struct_pat.rs:6:23:6:23 | 2 | +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 3 | gen_tuple_struct_pat.rs:6:26:6:26 | 3 | +| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:7:15:7:16 | .. | +| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | 1 | gen_tuple_struct_pat.rs:7:19:7:19 | 3 | +| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:8:15:8:16 | .. | diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql index af59101fe75..dafac11e38f 100644 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql +++ b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql @@ -2,19 +2,39 @@ import codeql.rust.elements import TestUtils -from - TupleStructPat x, string hasResolvedPath, string hasResolvedCrateOrigin, string hasPath, - int getNumberOfFields -where +query predicate instances( + TupleStructPat x, string hasResolvedPath__label, string hasResolvedPath, + string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, + string hasPath, string getNumberOfFields__label, int getNumberOfFields +) { toBeTested(x) and not x.isUnknown() and + hasResolvedPath__label = "hasResolvedPath:" and (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and + hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and ( if x.hasResolvedCrateOrigin() then hasResolvedCrateOrigin = "yes" else hasResolvedCrateOrigin = "no" ) and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "hasResolvedPath:", hasResolvedPath, "hasResolvedCrateOrigin:", hasResolvedCrateOrigin, - "hasPath:", hasPath, "getNumberOfFields:", getNumberOfFields +} + +query predicate getResolvedPath(TupleStructPat x, string getResolvedPath) { + toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() +} + +query predicate getResolvedCrateOrigin(TupleStructPat x, string getResolvedCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getResolvedCrateOrigin = x.getResolvedCrateOrigin() +} + +query predicate getPath(TupleStructPat x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getField(TupleStructPat x, int index, Pat getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.expected deleted file mode 100644 index 21e1a701963..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.expected +++ /dev/null @@ -1,7 +0,0 @@ -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:6:15:6:17 | "a" | -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 1 | gen_tuple_struct_pat.rs:6:20:6:20 | 1 | -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 2 | gen_tuple_struct_pat.rs:6:23:6:23 | 2 | -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | 3 | gen_tuple_struct_pat.rs:6:26:6:26 | 3 | -| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:7:15:7:16 | .. | -| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | 1 | gen_tuple_struct_pat.rs:7:19:7:19 | 3 | -| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | 0 | gen_tuple_struct_pat.rs:8:15:8:16 | .. | diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql deleted file mode 100644 index b3919608ce8..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleStructPat x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.expected deleted file mode 100644 index 34f30ed8ae1..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | gen_tuple_struct_pat.rs:6:9:6:13 | Tuple | -| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | gen_tuple_struct_pat.rs:7:9:7:13 | Tuple | -| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | gen_tuple_struct_pat.rs:8:9:8:13 | Tuple | diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql deleted file mode 100644 index bc5318bc103..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleStructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql deleted file mode 100644 index 144302946a9..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleStructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql deleted file mode 100644 index 561c303d968..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat_getResolvedPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleStructPat x -where toBeTested(x) and not x.isUnknown() -select x, x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/Cargo.lock b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected index f3dcaadb7a2..17dfb6a02f6 100644 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected @@ -1,2 +1,6 @@ +instances | gen_tuple_type_repr.rs:3:30:3:31 | TupleTypeRepr | getNumberOfFields: | 0 | | gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | getNumberOfFields: | 2 | +getField +| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 0 | gen_tuple_type_repr.rs:7:13:7:15 | i32 | +| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 1 | gen_tuple_type_repr.rs:7:18:7:23 | String | diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql index 79bf87b93a6..d8e508fa30a 100644 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from TupleTypeRepr x, int getNumberOfFields -where +query predicate instances(TupleTypeRepr x, string getNumberOfFields__label, int getNumberOfFields) { toBeTested(x) and not x.isUnknown() and + getNumberOfFields__label = "getNumberOfFields:" and getNumberOfFields = x.getNumberOfFields() -select x, "getNumberOfFields:", getNumberOfFields +} + +query predicate getField(TupleTypeRepr x, int index, TypeRepr getField) { + toBeTested(x) and not x.isUnknown() and getField = x.getField(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.expected b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.expected deleted file mode 100644 index c4d5db977c5..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 0 | gen_tuple_type_repr.rs:7:13:7:15 | i32 | -| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 1 | gen_tuple_type_repr.rs:7:18:7:23 | String | diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql deleted file mode 100644 index 3f11b1aa415..00000000000 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr_getField.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TupleTypeRepr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/Cargo.lock b/rust/ql/test/extractor-tests/generated/TypeAlias/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected index 8fbbae07cc3..cc59e1cb15c 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected @@ -1,2 +1,16 @@ +instances | gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | | gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getGenericParamList +getName +| gen_type_alias.rs:4:5:5:26 | type Point | gen_type_alias.rs:5:10:5:14 | Point | +| gen_type_alias.rs:8:9:8:20 | type Output | gen_type_alias.rs:8:14:8:19 | Output | +getTypeRepr +| gen_type_alias.rs:4:5:5:26 | type Point | gen_type_alias.rs:5:18:5:25 | TupleTypeRepr | +getTypeBoundList +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql index dd8183b6d41..0cfc0006d9b 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql @@ -2,35 +2,88 @@ import codeql.rust.elements import TestUtils -from - TypeAlias x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfAttrs, string hasGenericParamList, - string isDefault, string hasName, string hasTypeRepr, string hasTypeBoundList, - string hasVisibility, string hasWhereClause -where +query predicate instances( + TypeAlias x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasGenericParamList__label, string hasGenericParamList, string isDefault__label, + string isDefault, string hasName__label, string hasName, string hasTypeRepr__label, + string hasTypeRepr, string hasTypeBoundList__label, string hasTypeBoundList, + string hasVisibility__label, string hasVisibility, string hasWhereClause__label, + string hasWhereClause +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasGenericParamList:", hasGenericParamList, "isDefault:", isDefault, "hasName:", hasName, - "hasTypeRepr:", hasTypeRepr, "hasTypeBoundList:", hasTypeBoundList, "hasVisibility:", - hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(TypeAlias x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(TypeAlias x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(TypeAlias x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(TypeAlias x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(TypeAlias x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(TypeAlias x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeRepr(TypeAlias x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getTypeBoundList(TypeAlias x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} + +query predicate getVisibility(TypeAlias x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(TypeAlias x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql deleted file mode 100644 index 2eabe53ca6d..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql deleted file mode 100644 index 62be0d7b829..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql deleted file mode 100644 index 9a4de0cd9b8..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql deleted file mode 100644 index 1f99c759556..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql deleted file mode 100644 index 9742b1a9bb7..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.expected deleted file mode 100644 index 57aefa9327d..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_type_alias.rs:4:5:5:26 | type Point | gen_type_alias.rs:5:10:5:14 | Point | -| gen_type_alias.rs:8:9:8:20 | type Output | gen_type_alias.rs:8:14:8:19 | Output | diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql deleted file mode 100644 index 95b90c69e39..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql deleted file mode 100644 index 6988a3baf7d..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.expected deleted file mode 100644 index a15078cc57d..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_type_alias.rs:4:5:5:26 | type Point | gen_type_alias.rs:5:18:5:25 | TupleTypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql deleted file mode 100644 index 82be0a670ec..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql deleted file mode 100644 index 78bb19e876a..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql deleted file mode 100644 index becbdac3016..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeAlias x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/Cargo.lock b/rust/ql/test/extractor-tests/generated/TypeArg/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeArg/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected index d81b48448fa..c38de158720 100644 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected +++ b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected @@ -1 +1,4 @@ +instances | gen_type_arg.rs:7:11:7:13 | TypeArg | hasTypeRepr: | yes | +getTypeRepr +| gen_type_arg.rs:7:11:7:13 | TypeArg | gen_type_arg.rs:7:11:7:13 | u32 | diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql index 03464c38218..dffd1c7e8d6 100644 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql +++ b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from TypeArg x, string hasTypeRepr -where +query predicate instances(TypeArg x, string hasTypeRepr__label, string hasTypeRepr) { toBeTested(x) and not x.isUnknown() and + hasTypeRepr__label = "hasTypeRepr:" and if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -select x, "hasTypeRepr:", hasTypeRepr +} + +query predicate getTypeRepr(TypeArg x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.expected deleted file mode 100644 index f1bb3e460e1..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_type_arg.rs:7:11:7:13 | TypeArg | gen_type_arg.rs:7:11:7:13 | u32 | diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql deleted file mode 100644 index d1a4956f460..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeArg x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/Cargo.lock b/rust/ql/test/extractor-tests/generated/TypeBound/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeBound/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected index 40e38f919ce..76122292da0 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected +++ b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected @@ -1 +1,6 @@ +instances | gen_type_bound.rs:7:15:7:19 | TypeBound | isAsync: | no | isConst: | no | hasLifetime: | no | hasTypeRepr: | yes | hasUseBoundGenericArgs: | no | +getLifetime +getTypeRepr +| gen_type_bound.rs:7:15:7:19 | TypeBound | gen_type_bound.rs:7:15:7:19 | Debug | +getUseBoundGenericArgs diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql index efd099905db..e14a26d735c 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql +++ b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql @@ -2,18 +2,35 @@ import codeql.rust.elements import TestUtils -from - TypeBound x, string isAsync, string isConst, string hasLifetime, string hasTypeRepr, - string hasUseBoundGenericArgs -where +query predicate instances( + TypeBound x, string isAsync__label, string isAsync, string isConst__label, string isConst, + string hasLifetime__label, string hasLifetime, string hasTypeRepr__label, string hasTypeRepr, + string hasUseBoundGenericArgs__label, string hasUseBoundGenericArgs +) { toBeTested(x) and not x.isUnknown() and + isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and + isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and + hasLifetime__label = "hasLifetime:" and (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasUseBoundGenericArgs__label = "hasUseBoundGenericArgs:" and if x.hasUseBoundGenericArgs() then hasUseBoundGenericArgs = "yes" else hasUseBoundGenericArgs = "no" -select x, "isAsync:", isAsync, "isConst:", isConst, "hasLifetime:", hasLifetime, "hasTypeRepr:", - hasTypeRepr, "hasUseBoundGenericArgs:", hasUseBoundGenericArgs +} + +query predicate getLifetime(TypeBound x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} + +query predicate getTypeRepr(TypeBound x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getUseBoundGenericArgs(TypeBound x, UseBoundGenericArgs getUseBoundGenericArgs) { + toBeTested(x) and not x.isUnknown() and getUseBoundGenericArgs = x.getUseBoundGenericArgs() +} diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.expected b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql deleted file mode 100644 index 267ed0dd7ae..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeBound x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.expected deleted file mode 100644 index 7d9cf96f2ad..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_type_bound.rs:7:15:7:19 | TypeBound | gen_type_bound.rs:7:15:7:19 | Debug | diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql deleted file mode 100644 index d8ed0d05256..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeBound x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.expected b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql deleted file mode 100644 index a265464633e..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound_getUseBoundGenericArgs.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeBound x -where toBeTested(x) and not x.isUnknown() -select x, x.getUseBoundGenericArgs() diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/Cargo.lock b/rust/ql/test/extractor-tests/generated/TypeBoundList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeBoundList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected index 3044718de47..a842c9926e5 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected +++ b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected @@ -1 +1,5 @@ +instances | gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | getNumberOfBounds: | 2 | +getBound +| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 0 | gen_type_bound_list.rs:7:15:7:19 | TypeBound | +| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 1 | gen_type_bound_list.rs:7:23:7:27 | TypeBound | diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql index c5da2906153..99900b675ba 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql +++ b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from TypeBoundList x, int getNumberOfBounds -where +query predicate instances(TypeBoundList x, string getNumberOfBounds__label, int getNumberOfBounds) { toBeTested(x) and not x.isUnknown() and + getNumberOfBounds__label = "getNumberOfBounds:" and getNumberOfBounds = x.getNumberOfBounds() -select x, "getNumberOfBounds:", getNumberOfBounds +} + +query predicate getBound(TypeBoundList x, int index, TypeBound getBound) { + toBeTested(x) and not x.isUnknown() and getBound = x.getBound(index) +} diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.expected b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.expected deleted file mode 100644 index 7106e5ae664..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 0 | gen_type_bound_list.rs:7:15:7:19 | TypeBound | -| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 1 | gen_type_bound_list.rs:7:23:7:27 | TypeBound | diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql deleted file mode 100644 index d06ceb53fae..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList_getBound.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeBoundList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getBound(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/Cargo.lock b/rust/ql/test/extractor-tests/generated/TypeParam/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/TypeParam/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected index 1ba76dc60d3..6d42fbae86a 100644 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected +++ b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected @@ -1 +1,7 @@ +instances | gen_type_param.rs:7:12:7:12 | T | getNumberOfAttrs: | 0 | hasDefaultType: | no | hasName: | yes | hasTypeBoundList: | no | +getAttr +getDefaultType +getName +| gen_type_param.rs:7:12:7:12 | T | gen_type_param.rs:7:12:7:12 | T | +getTypeBoundList diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql index d81ec72681c..31c20f55813 100644 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql +++ b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql @@ -2,14 +2,35 @@ import codeql.rust.elements import TestUtils -from - TypeParam x, int getNumberOfAttrs, string hasDefaultType, string hasName, string hasTypeBoundList -where +query predicate instances( + TypeParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefaultType__label, + string hasDefaultType, string hasName__label, string hasName, string hasTypeBoundList__label, + string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasDefaultType__label = "hasDefaultType:" and (if x.hasDefaultType() then hasDefaultType = "yes" else hasDefaultType = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasDefaultType:", hasDefaultType, "hasName:", - hasName, "hasTypeBoundList:", hasTypeBoundList +} + +query predicate getAttr(TypeParam x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getDefaultType(TypeParam x, TypeRepr getDefaultType) { + toBeTested(x) and not x.isUnknown() and getDefaultType = x.getDefaultType() +} + +query predicate getName(TypeParam x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getTypeBoundList(TypeParam x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql deleted file mode 100644 index fdbefc1b5bd..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeParam x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql deleted file mode 100644 index 8afef31826a..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getDefaultType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getDefaultType() diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.expected deleted file mode 100644 index a51942c95c2..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_type_param.rs:7:12:7:12 | T | gen_type_param.rs:7:12:7:12 | T | diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.ql deleted file mode 100644 index 37b18a8b39c..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql deleted file mode 100644 index b496a7793a6..00000000000 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from TypeParam x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected index ea89e8b29b4..5c4feab55f8 100644 --- a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected +++ b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected @@ -1 +1,3 @@ +instances | gen_underscore_expr.rs:5:5:5:5 | _ | getNumberOfAttrs: | 0 | +getAttr diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql index 1dc793e9d6e..58f09bb43f4 100644 --- a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql +++ b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from UnderscoreExpr x, int getNumberOfAttrs -where +query predicate instances(UnderscoreExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() -select x, "getNumberOfAttrs:", getNumberOfAttrs +} + +query predicate getAttr(UnderscoreExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql deleted file mode 100644 index 8b2b16e2904..00000000000 --- a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UnderscoreExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.expected b/rust/ql/test/extractor-tests/generated/Union/Union.expected index 22d383104ea..9cad6b80520 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.expected +++ b/rust/ql/test/extractor-tests/generated/Union/Union.expected @@ -1 +1,14 @@ +instances | gen_union.rs:4:5:7:32 | union U | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasStructFieldList: | yes | hasVisibility: | no | hasWhereClause: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getDeriveMacroExpansion +getAttr +getGenericParamList +getName +| gen_union.rs:4:5:7:32 | union U | gen_union.rs:7:11:7:11 | U | +getStructFieldList +| gen_union.rs:4:5:7:32 | union U | gen_union.rs:7:13:7:32 | StructFieldList | +getVisibility +getWhereClause diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index a67dee68ec1..a944a937360 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -2,34 +2,86 @@ import codeql.rust.elements import TestUtils -from - Union x, string hasExtendedCanonicalPath, string hasCrateOrigin, - string hasAttributeMacroExpansion, int getNumberOfDeriveMacroExpansions, int getNumberOfAttrs, - string hasGenericParamList, string hasName, string hasStructFieldList, string hasVisibility, +query predicate instances( + Union x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, + int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasGenericParamList__label, string hasGenericParamList, string hasName__label, + string hasName, string hasStructFieldList__label, string hasStructFieldList, + string hasVisibility__label, string hasVisibility, string hasWhereClause__label, string hasWhereClause -where +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasStructFieldList__label = "hasStructFieldList:" and (if x.hasStructFieldList() then hasStructFieldList = "yes" else hasStructFieldList = "no") and + hasVisibility__label = "hasVisibility:" and (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and + hasWhereClause__label = "hasWhereClause:" and if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfDeriveMacroExpansions:", - getNumberOfDeriveMacroExpansions, "getNumberOfAttrs:", getNumberOfAttrs, "hasGenericParamList:", - hasGenericParamList, "hasName:", hasName, "hasStructFieldList:", hasStructFieldList, - "hasVisibility:", hasVisibility, "hasWhereClause:", hasWhereClause +} + +query predicate getExtendedCanonicalPath(Union x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Union x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Union x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getDeriveMacroExpansion(Union x, int index, MacroItems getDeriveMacroExpansion) { + toBeTested(x) and not x.isUnknown() and getDeriveMacroExpansion = x.getDeriveMacroExpansion(index) +} + +query predicate getAttr(Union x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getGenericParamList(Union x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getName(Union x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getStructFieldList(Union x, StructFieldList getStructFieldList) { + toBeTested(x) and not x.isUnknown() and getStructFieldList = x.getStructFieldList() +} + +query predicate getVisibility(Union x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} + +query predicate getWhereClause(Union x, WhereClause getWhereClause) { + toBeTested(x) and not x.isUnknown() and getWhereClause = x.getWhereClause() +} diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getAttr.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getAttr.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getAttr.ql deleted file mode 100644 index a4ae6761d23..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql deleted file mode 100644 index 3edc4b71aa3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql deleted file mode 100644 index fdbd56d9e88..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql deleted file mode 100644 index 1851791caef..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getDeriveMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getDeriveMacroExpansion(index) diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql deleted file mode 100644 index fb20efa8f29..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.ql deleted file mode 100644 index e9ba2bbeef6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getName.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getName.expected deleted file mode 100644 index 02b0d8ebc8c..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getName.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_union.rs:4:5:7:32 | union U | gen_union.rs:7:11:7:11 | U | diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getName.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getName.ql deleted file mode 100644 index e452a2ff63e..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.expected deleted file mode 100644 index 3613a0fcb38..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_union.rs:4:5:7:32 | union U | gen_union.rs:7:13:7:32 | StructFieldList | diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.ql deleted file mode 100644 index 2afeaa6c3f1..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getStructFieldList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getStructFieldList() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.ql deleted file mode 100644 index 5b1688250a5..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.expected b/rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.ql b/rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.ql deleted file mode 100644 index 083aea2ba01..00000000000 --- a/rust/ql/test/extractor-tests/generated/Union/Union_getWhereClause.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Union x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhereClause() diff --git a/rust/ql/test/extractor-tests/generated/Use/Cargo.lock b/rust/ql/test/extractor-tests/generated/Use/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Use/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.expected b/rust/ql/test/extractor-tests/generated/Use/Use.expected index e016b067371..6aa50c92f01 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.expected +++ b/rust/ql/test/extractor-tests/generated/Use/Use.expected @@ -1 +1,9 @@ +instances | gen_use.rs:4:5:5:34 | use ...::HashMap | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasUseTree: | yes | hasVisibility: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttributeMacroExpansion +getAttr +getUseTree +| gen_use.rs:4:5:5:34 | use ...::HashMap | gen_use.rs:5:9:5:33 | ...::HashMap | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.ql b/rust/ql/test/extractor-tests/generated/Use/Use.ql index 9dbf23d628a..097c0ef76e5 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.ql +++ b/rust/ql/test/extractor-tests/generated/Use/Use.ql @@ -2,26 +2,58 @@ import codeql.rust.elements import TestUtils -from - Use x, string hasExtendedCanonicalPath, string hasCrateOrigin, string hasAttributeMacroExpansion, - int getNumberOfAttrs, string hasUseTree, string hasVisibility -where +query predicate instances( + Use x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, + string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasUseTree__label, string hasUseTree, string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and ( if x.hasAttributeMacroExpansion() then hasAttributeMacroExpansion = "yes" else hasAttributeMacroExpansion = "no" ) and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasUseTree__label = "hasUseTree:" and (if x.hasUseTree() then hasUseTree = "yes" else hasUseTree = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "hasAttributeMacroExpansion:", hasAttributeMacroExpansion, "getNumberOfAttrs:", getNumberOfAttrs, - "hasUseTree:", hasUseTree, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(Use x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Use x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttributeMacroExpansion(Use x, MacroItems getAttributeMacroExpansion) { + toBeTested(x) and + not x.isUnknown() and + getAttributeMacroExpansion = x.getAttributeMacroExpansion() +} + +query predicate getAttr(Use x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getUseTree(Use x, UseTree getUseTree) { + toBeTested(x) and not x.isUnknown() and getUseTree = x.getUseTree() +} + +query predicate getVisibility(Use x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getAttr.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getAttr.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getAttr.ql deleted file mode 100644 index 35b975fa0e6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql deleted file mode 100644 index 1b83be27986..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getAttributeMacroExpansion.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttributeMacroExpansion() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql deleted file mode 100644 index 8e90afcc335..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql deleted file mode 100644 index 64c633c6c7d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.expected deleted file mode 100644 index 81b2c2c8ad3..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_use.rs:4:5:5:34 | use ...::HashMap | gen_use.rs:5:9:5:33 | ...::HashMap | diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.ql deleted file mode 100644 index 863d1617d40..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getUseTree.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x -where toBeTested(x) and not x.isUnknown() -select x, x.getUseTree() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.ql deleted file mode 100644 index 122499de581..00000000000 --- a/rust/ql/test/extractor-tests/generated/Use/Use_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Use x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/Cargo.lock b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected index 3ea69e78251..a7df429d1de 100644 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected +++ b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected @@ -1 +1,6 @@ +instances | gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | getNumberOfUseBoundGenericArgs: | 3 | +getUseBoundGenericArg +| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 0 | gen_use_bound_generic_args.rs:7:63:7:64 | 'a | +| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 1 | gen_use_bound_generic_args.rs:7:67:7:67 | T | +| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 2 | gen_use_bound_generic_args.rs:7:70:7:70 | N | diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql index 5100891c77a..7179177aeb1 100644 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql +++ b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql @@ -2,9 +2,18 @@ import codeql.rust.elements import TestUtils -from UseBoundGenericArgs x, int getNumberOfUseBoundGenericArgs -where +query predicate instances( + UseBoundGenericArgs x, string getNumberOfUseBoundGenericArgs__label, + int getNumberOfUseBoundGenericArgs +) { toBeTested(x) and not x.isUnknown() and + getNumberOfUseBoundGenericArgs__label = "getNumberOfUseBoundGenericArgs:" and getNumberOfUseBoundGenericArgs = x.getNumberOfUseBoundGenericArgs() -select x, "getNumberOfUseBoundGenericArgs:", getNumberOfUseBoundGenericArgs +} + +query predicate getUseBoundGenericArg( + UseBoundGenericArgs x, int index, UseBoundGenericArg getUseBoundGenericArg +) { + toBeTested(x) and not x.isUnknown() and getUseBoundGenericArg = x.getUseBoundGenericArg(index) +} diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.expected b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.expected deleted file mode 100644 index 9cae2694f99..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 0 | gen_use_bound_generic_args.rs:7:63:7:64 | 'a | -| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 1 | gen_use_bound_generic_args.rs:7:67:7:67 | T | -| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 2 | gen_use_bound_generic_args.rs:7:70:7:70 | N | diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql deleted file mode 100644 index 794bf615b04..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs_getUseBoundGenericArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UseBoundGenericArgs x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getUseBoundGenericArg(index) diff --git a/rust/ql/test/extractor-tests/generated/UseTree/Cargo.lock b/rust/ql/test/extractor-tests/generated/UseTree/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/UseTree/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected index ac5d1b77295..480e15b3ae1 100644 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected +++ b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected @@ -1,3 +1,4 @@ +instances | gen_use_tree.rs:5:9:5:33 | ...::HashMap | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | | gen_use_tree.rs:6:9:6:27 | ...::collections::* | isGlob: | yes | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | | gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | isGlob: | no | hasPath: | yes | hasRename: | yes | hasUseTreeList: | no | @@ -5,3 +6,15 @@ | gen_use_tree.rs:8:28:8:31 | self | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | | gen_use_tree.rs:8:34:8:40 | HashMap | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | | gen_use_tree.rs:8:43:8:49 | HashSet | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | +getPath +| gen_use_tree.rs:5:9:5:33 | ...::HashMap | gen_use_tree.rs:5:9:5:33 | ...::HashMap | +| gen_use_tree.rs:6:9:6:27 | ...::collections::* | gen_use_tree.rs:6:9:6:24 | ...::collections | +| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | gen_use_tree.rs:7:9:7:33 | ...::HashMap | +| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | gen_use_tree.rs:8:9:8:24 | ...::collections | +| gen_use_tree.rs:8:28:8:31 | self | gen_use_tree.rs:8:28:8:31 | self | +| gen_use_tree.rs:8:34:8:40 | HashMap | gen_use_tree.rs:8:34:8:40 | HashMap | +| gen_use_tree.rs:8:43:8:49 | HashSet | gen_use_tree.rs:8:43:8:49 | HashSet | +getRename +| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | gen_use_tree.rs:7:35:7:46 | Rename | +getUseTreeList +| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | gen_use_tree.rs:8:27:8:50 | UseTreeList | diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql index f4294877043..d7ed0484402 100644 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql +++ b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql @@ -2,13 +2,30 @@ import codeql.rust.elements import TestUtils -from UseTree x, string isGlob, string hasPath, string hasRename, string hasUseTreeList -where +query predicate instances( + UseTree x, string isGlob__label, string isGlob, string hasPath__label, string hasPath, + string hasRename__label, string hasRename, string hasUseTreeList__label, string hasUseTreeList +) { toBeTested(x) and not x.isUnknown() and + isGlob__label = "isGlob:" and (if x.isGlob() then isGlob = "yes" else isGlob = "no") and + hasPath__label = "hasPath:" and (if x.hasPath() then hasPath = "yes" else hasPath = "no") and + hasRename__label = "hasRename:" and (if x.hasRename() then hasRename = "yes" else hasRename = "no") and + hasUseTreeList__label = "hasUseTreeList:" and if x.hasUseTreeList() then hasUseTreeList = "yes" else hasUseTreeList = "no" -select x, "isGlob:", isGlob, "hasPath:", hasPath, "hasRename:", hasRename, "hasUseTreeList:", - hasUseTreeList +} + +query predicate getPath(UseTree x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} + +query predicate getRename(UseTree x, Rename getRename) { + toBeTested(x) and not x.isUnknown() and getRename = x.getRename() +} + +query predicate getUseTreeList(UseTree x, UseTreeList getUseTreeList) { + toBeTested(x) and not x.isUnknown() and getUseTreeList = x.getUseTreeList() +} diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.expected b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.expected deleted file mode 100644 index b6164b65342..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.expected +++ /dev/null @@ -1,7 +0,0 @@ -| gen_use_tree.rs:5:9:5:33 | ...::HashMap | gen_use_tree.rs:5:9:5:33 | ...::HashMap | -| gen_use_tree.rs:6:9:6:27 | ...::collections::* | gen_use_tree.rs:6:9:6:24 | ...::collections | -| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | gen_use_tree.rs:7:9:7:33 | ...::HashMap | -| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | gen_use_tree.rs:8:9:8:24 | ...::collections | -| gen_use_tree.rs:8:28:8:31 | self | gen_use_tree.rs:8:28:8:31 | self | -| gen_use_tree.rs:8:34:8:40 | HashMap | gen_use_tree.rs:8:34:8:40 | HashMap | -| gen_use_tree.rs:8:43:8:49 | HashSet | gen_use_tree.rs:8:43:8:49 | HashSet | diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.ql b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.ql deleted file mode 100644 index 74f892d46f8..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UseTree x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.expected b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.expected deleted file mode 100644 index 77c4b31a86a..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | gen_use_tree.rs:7:35:7:46 | Rename | diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.ql b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.ql deleted file mode 100644 index 754d167eefd..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getRename.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UseTree x -where toBeTested(x) and not x.isUnknown() -select x, x.getRename() diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.expected b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.expected deleted file mode 100644 index 547fb0bd37b..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | gen_use_tree.rs:8:27:8:50 | UseTreeList | diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql b/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql deleted file mode 100644 index 5e57b7a6b69..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree_getUseTreeList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UseTree x -where toBeTested(x) and not x.isUnknown() -select x, x.getUseTreeList() diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/Cargo.lock b/rust/ql/test/extractor-tests/generated/UseTreeList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/UseTreeList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected index 1d1bbfd4e14..65ebdac21c2 100644 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected +++ b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected @@ -1 +1,5 @@ +instances | gen_use_tree_list.rs:7:14:7:21 | UseTreeList | getNumberOfUseTrees: | 2 | +getUseTree +| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 0 | gen_use_tree_list.rs:7:15:7:16 | fs | +| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 1 | gen_use_tree_list.rs:7:19:7:20 | io | diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql index ebcfc59a58f..9f2dac1fc16 100644 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql +++ b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from UseTreeList x, int getNumberOfUseTrees -where +query predicate instances(UseTreeList x, string getNumberOfUseTrees__label, int getNumberOfUseTrees) { toBeTested(x) and not x.isUnknown() and + getNumberOfUseTrees__label = "getNumberOfUseTrees:" and getNumberOfUseTrees = x.getNumberOfUseTrees() -select x, "getNumberOfUseTrees:", getNumberOfUseTrees +} + +query predicate getUseTree(UseTreeList x, int index, UseTree getUseTree) { + toBeTested(x) and not x.isUnknown() and getUseTree = x.getUseTree(index) +} diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.expected b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.expected deleted file mode 100644 index 1bfef2daee1..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 0 | gen_use_tree_list.rs:7:15:7:16 | fs | -| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 1 | gen_use_tree_list.rs:7:19:7:20 | io | diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql deleted file mode 100644 index dc7262d7ab5..00000000000 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList_getUseTree.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from UseTreeList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getUseTree(index) diff --git a/rust/ql/test/extractor-tests/generated/Variant/Cargo.lock b/rust/ql/test/extractor-tests/generated/Variant/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Variant/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant.expected index cca0757d458..a7c1184b925 100644 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant.expected +++ b/rust/ql/test/extractor-tests/generated/Variant/Variant.expected @@ -1,3 +1,16 @@ +instances | gen_variant.rs:7:14:7:14 | A | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | no | hasName: | yes | hasVisibility: | no | | gen_variant.rs:7:17:7:22 | B | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | yes | hasName: | yes | hasVisibility: | no | | gen_variant.rs:7:25:7:36 | C | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | yes | hasName: | yes | hasVisibility: | no | +getExtendedCanonicalPath +getCrateOrigin +getAttr +getDiscriminant +getFieldList +| gen_variant.rs:7:17:7:22 | B | gen_variant.rs:7:18:7:22 | TupleFieldList | +| gen_variant.rs:7:25:7:36 | C | gen_variant.rs:7:27:7:36 | StructFieldList | +getName +| gen_variant.rs:7:14:7:14 | A | gen_variant.rs:7:14:7:14 | A | +| gen_variant.rs:7:17:7:22 | B | gen_variant.rs:7:17:7:17 | B | +| gen_variant.rs:7:25:7:36 | C | gen_variant.rs:7:25:7:25 | C | +getVisibility diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant.ql index a21c0509978..ccd2f09881c 100644 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant.ql +++ b/rust/ql/test/extractor-tests/generated/Variant/Variant.ql @@ -2,23 +2,59 @@ import codeql.rust.elements import TestUtils -from - Variant x, string hasExtendedCanonicalPath, string hasCrateOrigin, int getNumberOfAttrs, - string hasDiscriminant, string hasFieldList, string hasName, string hasVisibility -where +query predicate instances( + Variant x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, + string hasCrateOrigin__label, string hasCrateOrigin, string getNumberOfAttrs__label, + int getNumberOfAttrs, string hasDiscriminant__label, string hasDiscriminant, + string hasFieldList__label, string hasFieldList, string hasName__label, string hasName, + string hasVisibility__label, string hasVisibility +) { toBeTested(x) and not x.isUnknown() and + hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and ( if x.hasExtendedCanonicalPath() then hasExtendedCanonicalPath = "yes" else hasExtendedCanonicalPath = "no" ) and + hasCrateOrigin__label = "hasCrateOrigin:" and (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasDiscriminant__label = "hasDiscriminant:" and (if x.hasDiscriminant() then hasDiscriminant = "yes" else hasDiscriminant = "no") and + hasFieldList__label = "hasFieldList:" and (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasVisibility__label = "hasVisibility:" and if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -select x, "hasExtendedCanonicalPath:", hasExtendedCanonicalPath, "hasCrateOrigin:", hasCrateOrigin, - "getNumberOfAttrs:", getNumberOfAttrs, "hasDiscriminant:", hasDiscriminant, "hasFieldList:", - hasFieldList, "hasName:", hasName, "hasVisibility:", hasVisibility +} + +query predicate getExtendedCanonicalPath(Variant x, string getExtendedCanonicalPath) { + toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() +} + +query predicate getCrateOrigin(Variant x, string getCrateOrigin) { + toBeTested(x) and not x.isUnknown() and getCrateOrigin = x.getCrateOrigin() +} + +query predicate getAttr(Variant x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getDiscriminant(Variant x, Expr getDiscriminant) { + toBeTested(x) and not x.isUnknown() and getDiscriminant = x.getDiscriminant() +} + +query predicate getFieldList(Variant x, FieldList getFieldList) { + toBeTested(x) and not x.isUnknown() and getFieldList = x.getFieldList() +} + +query predicate getName(Variant x, Name getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getVisibility(Variant x, Visibility getVisibility) { + toBeTested(x) and not x.isUnknown() and getVisibility = x.getVisibility() +} diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.ql deleted file mode 100644 index 99972ef847d..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql deleted file mode 100644 index 0acfd9827fe..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getCrateOrigin.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getCrateOrigin() diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql deleted file mode 100644 index cde11c30887..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getDiscriminant.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getDiscriminant() diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql deleted file mode 100644 index ad8aaf86a5c..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getExtendedCanonicalPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.expected deleted file mode 100644 index 9461de62cc6..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_variant.rs:7:17:7:22 | B | gen_variant.rs:7:18:7:22 | TupleFieldList | -| gen_variant.rs:7:25:7:36 | C | gen_variant.rs:7:27:7:36 | StructFieldList | diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.ql deleted file mode 100644 index e1bae7650ba..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getFieldList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getFieldList() diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.expected deleted file mode 100644 index 87faede2aad..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_variant.rs:7:14:7:14 | A | gen_variant.rs:7:14:7:14 | A | -| gen_variant.rs:7:17:7:22 | B | gen_variant.rs:7:17:7:17 | B | -| gen_variant.rs:7:25:7:36 | C | gen_variant.rs:7:25:7:25 | C | diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.ql deleted file mode 100644 index 73f4ff33e40..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.ql deleted file mode 100644 index 7edb649fbda..00000000000 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant_getVisibility.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Variant x -where toBeTested(x) and not x.isUnknown() -select x, x.getVisibility() diff --git a/rust/ql/test/extractor-tests/generated/VariantList/Cargo.lock b/rust/ql/test/extractor-tests/generated/VariantList/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/VariantList/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected index b7b25116f58..61ec4edbab7 100644 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected +++ b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected @@ -1 +1,6 @@ +instances | gen_variant_list.rs:7:12:7:22 | VariantList | getNumberOfVariants: | 3 | +getVariant +| gen_variant_list.rs:7:12:7:22 | VariantList | 0 | gen_variant_list.rs:7:14:7:14 | A | +| gen_variant_list.rs:7:12:7:22 | VariantList | 1 | gen_variant_list.rs:7:17:7:17 | B | +| gen_variant_list.rs:7:12:7:22 | VariantList | 2 | gen_variant_list.rs:7:20:7:20 | C | diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql index 213e4d447dc..c858f92bfab 100644 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql +++ b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from VariantList x, int getNumberOfVariants -where +query predicate instances(VariantList x, string getNumberOfVariants__label, int getNumberOfVariants) { toBeTested(x) and not x.isUnknown() and + getNumberOfVariants__label = "getNumberOfVariants:" and getNumberOfVariants = x.getNumberOfVariants() -select x, "getNumberOfVariants:", getNumberOfVariants +} + +query predicate getVariant(VariantList x, int index, Variant getVariant) { + toBeTested(x) and not x.isUnknown() and getVariant = x.getVariant(index) +} diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.expected b/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.expected deleted file mode 100644 index c62dfe00472..00000000000 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.expected +++ /dev/null @@ -1,3 +0,0 @@ -| gen_variant_list.rs:7:12:7:22 | VariantList | 0 | gen_variant_list.rs:7:14:7:14 | A | -| gen_variant_list.rs:7:12:7:22 | VariantList | 1 | gen_variant_list.rs:7:17:7:17 | B | -| gen_variant_list.rs:7:12:7:22 | VariantList | 2 | gen_variant_list.rs:7:20:7:20 | C | diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.ql b/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.ql deleted file mode 100644 index fe1800104a3..00000000000 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList_getVariant.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from VariantList x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getVariant(index) diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Cargo.lock b/rust/ql/test/extractor-tests/generated/Visibility/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/Visibility/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected index 7be919b547e..f9c6ebbeb7a 100644 --- a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected +++ b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected @@ -1 +1,3 @@ +instances | gen_visibility.rs:7:7:7:9 | Visibility | hasPath: | no | +getPath diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql index adf0833c12c..d071e76cf33 100644 --- a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql +++ b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql @@ -2,9 +2,13 @@ import codeql.rust.elements import TestUtils -from Visibility x, string hasPath -where +query predicate instances(Visibility x, string hasPath__label, string hasPath) { toBeTested(x) and not x.isUnknown() and + hasPath__label = "hasPath:" and if x.hasPath() then hasPath = "yes" else hasPath = "no" -select x, "hasPath:", hasPath +} + +query predicate getPath(Visibility x, Path getPath) { + toBeTested(x) and not x.isUnknown() and getPath = x.getPath() +} diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.expected b/rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.ql b/rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.ql deleted file mode 100644 index 0f0b641d212..00000000000 --- a/rust/ql/test/extractor-tests/generated/Visibility/Visibility_getPath.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from Visibility x -where toBeTested(x) and not x.isUnknown() -select x, x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/Cargo.lock b/rust/ql/test/extractor-tests/generated/WhereClause/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/WhereClause/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected index 4610fc7dea1..cfa28e51e44 100644 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected +++ b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected @@ -1 +1,4 @@ +instances | gen_where_clause.rs:7:21:7:34 | WhereClause | getNumberOfPredicates: | 1 | +getPredicate +| gen_where_clause.rs:7:21:7:34 | WhereClause | 0 | gen_where_clause.rs:7:27:7:34 | WherePred | diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql index 891b8d55fc2..df436c29f57 100644 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql +++ b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql @@ -2,9 +2,15 @@ import codeql.rust.elements import TestUtils -from WhereClause x, int getNumberOfPredicates -where +query predicate instances( + WhereClause x, string getNumberOfPredicates__label, int getNumberOfPredicates +) { toBeTested(x) and not x.isUnknown() and + getNumberOfPredicates__label = "getNumberOfPredicates:" and getNumberOfPredicates = x.getNumberOfPredicates() -select x, "getNumberOfPredicates:", getNumberOfPredicates +} + +query predicate getPredicate(WhereClause x, int index, WherePred getPredicate) { + toBeTested(x) and not x.isUnknown() and getPredicate = x.getPredicate(index) +} diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.expected b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.expected deleted file mode 100644 index b8fcba86a6a..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_where_clause.rs:7:21:7:34 | WhereClause | 0 | gen_where_clause.rs:7:27:7:34 | WherePred | diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql deleted file mode 100644 index 4b0c8ab7b7d..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause_getPredicate.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WhereClause x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getPredicate(index) diff --git a/rust/ql/test/extractor-tests/generated/WherePred/Cargo.lock b/rust/ql/test/extractor-tests/generated/WherePred/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/WherePred/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected index d2988eb245d..8d5dc840361 100644 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected +++ b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected @@ -1,2 +1,11 @@ +instances | gen_where_pred.rs:7:36:7:43 | WherePred | hasGenericParamList: | no | hasLifetime: | no | hasTypeRepr: | yes | hasTypeBoundList: | yes | | gen_where_pred.rs:7:46:7:53 | WherePred | hasGenericParamList: | no | hasLifetime: | no | hasTypeRepr: | yes | hasTypeBoundList: | yes | +getGenericParamList +getLifetime +getTypeRepr +| gen_where_pred.rs:7:36:7:43 | WherePred | gen_where_pred.rs:7:36:7:36 | T | +| gen_where_pred.rs:7:46:7:53 | WherePred | gen_where_pred.rs:7:46:7:46 | U | +getTypeBoundList +| gen_where_pred.rs:7:36:7:43 | WherePred | gen_where_pred.rs:7:39:7:43 | TypeBoundList | +| gen_where_pred.rs:7:46:7:53 | WherePred | gen_where_pred.rs:7:49:7:53 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql index a4471e43ef6..7e18fec77c4 100644 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql +++ b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql @@ -2,15 +2,35 @@ import codeql.rust.elements import TestUtils -from - WherePred x, string hasGenericParamList, string hasLifetime, string hasTypeRepr, - string hasTypeBoundList -where +query predicate instances( + WherePred x, string hasGenericParamList__label, string hasGenericParamList, + string hasLifetime__label, string hasLifetime, string hasTypeRepr__label, string hasTypeRepr, + string hasTypeBoundList__label, string hasTypeBoundList +) { toBeTested(x) and not x.isUnknown() and + hasGenericParamList__label = "hasGenericParamList:" and (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and + hasLifetime__label = "hasLifetime:" and (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and + hasTypeRepr__label = "hasTypeRepr:" and (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and + hasTypeBoundList__label = "hasTypeBoundList:" and if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -select x, "hasGenericParamList:", hasGenericParamList, "hasLifetime:", hasLifetime, "hasTypeRepr:", - hasTypeRepr, "hasTypeBoundList:", hasTypeBoundList +} + +query predicate getGenericParamList(WherePred x, GenericParamList getGenericParamList) { + toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() +} + +query predicate getLifetime(WherePred x, Lifetime getLifetime) { + toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() +} + +query predicate getTypeRepr(WherePred x, TypeRepr getTypeRepr) { + toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() +} + +query predicate getTypeBoundList(WherePred x, TypeBoundList getTypeBoundList) { + toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() +} diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql deleted file mode 100644 index ef15cd7f4f8..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getGenericParamList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WherePred x -where toBeTested(x) and not x.isUnknown() -select x, x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql deleted file mode 100644 index a0bd226ca4f..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getLifetime.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WherePred x -where toBeTested(x) and not x.isUnknown() -select x, x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.expected deleted file mode 100644 index 2b3b7d1172a..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_where_pred.rs:7:36:7:43 | WherePred | gen_where_pred.rs:7:39:7:43 | TypeBoundList | -| gen_where_pred.rs:7:46:7:53 | WherePred | gen_where_pred.rs:7:49:7:53 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql deleted file mode 100644 index 0f269fa9140..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeBoundList.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WherePred x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.expected deleted file mode 100644 index 92c8489eda0..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.expected +++ /dev/null @@ -1,2 +0,0 @@ -| gen_where_pred.rs:7:36:7:43 | WherePred | gen_where_pred.rs:7:36:7:36 | T | -| gen_where_pred.rs:7:46:7:53 | WherePred | gen_where_pred.rs:7:46:7:46 | U | diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql deleted file mode 100644 index e1992ba278e..00000000000 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred_getTypeRepr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WherePred x -where toBeTested(x) and not x.isUnknown() -select x, x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/WhileExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/WhileExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected index 547e3e0ad2e..7ec0c386713 100644 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected +++ b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected @@ -1 +1,8 @@ +instances | gen_while_expr.rs:7:5:9:5 | while ... { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | hasCondition: | yes | +getLabel +getLoopBody +| gen_while_expr.rs:7:5:9:5 | while ... { ... } | gen_while_expr.rs:7:18:9:5 | { ... } | +getAttr +getCondition +| gen_while_expr.rs:7:5:9:5 | while ... { ... } | gen_while_expr.rs:7:11:7:16 | ... < ... | diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql index 8544014e571..c33cb0b915d 100644 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql +++ b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql @@ -2,13 +2,35 @@ import codeql.rust.elements import TestUtils -from WhileExpr x, string hasLabel, string hasLoopBody, int getNumberOfAttrs, string hasCondition -where +query predicate instances( + WhileExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, + string hasLoopBody, string getNumberOfAttrs__label, int getNumberOfAttrs, + string hasCondition__label, string hasCondition +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + hasLoopBody__label = "hasLoopBody:" and (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasCondition__label = "hasCondition:" and if x.hasCondition() then hasCondition = "yes" else hasCondition = "no" -select x, "hasLabel:", hasLabel, "hasLoopBody:", hasLoopBody, "getNumberOfAttrs:", getNumberOfAttrs, - "hasCondition:", hasCondition +} + +query predicate getLabel(WhileExpr x, Label getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getLoopBody(WhileExpr x, BlockExpr getLoopBody) { + toBeTested(x) and not x.isUnknown() and getLoopBody = x.getLoopBody() +} + +query predicate getAttr(WhileExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getCondition(WhileExpr x, Expr getCondition) { + toBeTested(x) and not x.isUnknown() and getCondition = x.getCondition() +} diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql deleted file mode 100644 index eeb05dcc0b0..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WhileExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.expected deleted file mode 100644 index 1b6f53eeea0..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_while_expr.rs:7:5:9:5 | while ... { ... } | gen_while_expr.rs:7:11:7:16 | ... < ... | diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql deleted file mode 100644 index 184dc6f8a7c..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getCondition.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WhileExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getCondition() diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql deleted file mode 100644 index 59865e97014..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WhileExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.expected deleted file mode 100644 index 54fd5ed5152..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_while_expr.rs:7:5:9:5 | while ... { ... } | gen_while_expr.rs:7:18:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql deleted file mode 100644 index 3d19f2e7341..00000000000 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr_getLoopBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from WhileExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getLoopBody() diff --git a/rust/ql/test/extractor-tests/generated/WildcardPat/Cargo.lock b/rust/ql/test/extractor-tests/generated/WildcardPat/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/WildcardPat/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/WildcardPat/WildcardPat.ql b/rust/ql/test/extractor-tests/generated/WildcardPat/WildcardPat.ql index cac335f3b7f..e64d55357a3 100644 --- a/rust/ql/test/extractor-tests/generated/WildcardPat/WildcardPat.ql +++ b/rust/ql/test/extractor-tests/generated/WildcardPat/WildcardPat.ql @@ -2,6 +2,4 @@ import codeql.rust.elements import TestUtils -from WildcardPat x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(WildcardPat x) { toBeTested(x) and not x.isUnknown() } diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/YeetExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/YeetExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected index 3bce2660fe3..6b644bf82e0 100644 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected +++ b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected @@ -1 +1,5 @@ +instances | gen_yeet_expr.rs:6:8:6:36 | YeetExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_yeet_expr.rs:6:8:6:36 | YeetExpr | gen_yeet_expr.rs:6:16:6:36 | "index out of bounds" | diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql index 165bd667d3c..18b65e5d174 100644 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql +++ b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from YeetExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + YeetExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(YeetExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(YeetExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql deleted file mode 100644 index a246607b779..00000000000 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from YeetExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.expected deleted file mode 100644 index e1d96684eec..00000000000 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_yeet_expr.rs:6:8:6:36 | YeetExpr | gen_yeet_expr.rs:6:16:6:36 | "index out of bounds" | diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql deleted file mode 100644 index edb0e0676a7..00000000000 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from YeetExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/Cargo.lock b/rust/ql/test/extractor-tests/generated/YieldExpr/Cargo.lock new file mode 100644 index 00000000000..b9856cfaf77 --- /dev/null +++ b/rust/ql/test/extractor-tests/generated/YieldExpr/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "test" +version = "0.0.1" diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected index 5045b11d25d..c2513181c84 100644 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected +++ b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected @@ -1 +1,5 @@ +instances | gen_yield_expr.rs:7:13:7:19 | YieldExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +getAttr +getExpr +| gen_yield_expr.rs:7:13:7:19 | YieldExpr | gen_yield_expr.rs:7:19:7:19 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql index 47f32503bfc..3d684a51dbf 100644 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql +++ b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql @@ -2,10 +2,22 @@ import codeql.rust.elements import TestUtils -from YieldExpr x, int getNumberOfAttrs, string hasExpr -where +query predicate instances( + YieldExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, + string hasExpr +) { toBeTested(x) and not x.isUnknown() and + getNumberOfAttrs__label = "getNumberOfAttrs:" and getNumberOfAttrs = x.getNumberOfAttrs() and + hasExpr__label = "hasExpr:" and if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -select x, "getNumberOfAttrs:", getNumberOfAttrs, "hasExpr:", hasExpr +} + +query predicate getAttr(YieldExpr x, int index, Attr getAttr) { + toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) +} + +query predicate getExpr(YieldExpr x, Expr getExpr) { + toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() +} diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.expected b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql deleted file mode 100644 index 9c6b01bc228..00000000000 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getAttr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from YieldExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.expected b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.expected deleted file mode 100644 index 96884087f9d..00000000000 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.expected +++ /dev/null @@ -1 +0,0 @@ -| gen_yield_expr.rs:7:13:7:19 | YieldExpr | gen_yield_expr.rs:7:19:7:19 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql deleted file mode 100644 index bdaa4755e6d..00000000000 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr_getExpr.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen, do not edit -import codeql.rust.elements -import TestUtils - -from YieldExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getExpr() diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index f693ce9e9fc..90d81e9a1bd 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -1032,111 +1032,37 @@ lib/codeql/swift/generated/type/UnownedStorageType.qll bbab372902a625c16b2d9a058 lib/codeql/swift/generated/type/UnresolvedType.qll 3b99e19ca7177619fb79e6e8511df915811b7b9078c0bc9ae47cf3b79e923407 b715e01583738b5e8fb2f6640d8f390bad8f5ad6d8c25ad771dfabbe5736bfaa lib/codeql/swift/generated/type/VariadicSequenceType.qll 7ece2c953e24d1c51715610f2813bd97f6d9fc6e58e5df0aacadad31e1fd1d8f be0005d973fd7c4c937fc340711fafe7ceba592ac407b88731bc35a1c2800aeb lib/codeql/swift/generated/type/WeakStorageType.qll d46b67f2b7bcc8aa7599e38506e91c219f894df4668ff1f0b5b66c1858040f5b c8e34ec9df085d938e36492d172fbf84ca56fc9d805713b8ada92e1b4c7bef54 -test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql f174aa20e00010baed0000eddee62f7b70d4ce950e5f9c0cb0bd5b6f1d8dc908 170049771ebcf54ceb603e089f93516749322dd6d7bf89e4636e3b4eedd773e0 -test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql 6ee83b1f24d961c736a1579c0282ca560a2a916ffe73bb9eb2c6d14b3cddcdb0 fee90d8b1c1379bd2f7443387a3a1eb3afd7e3e7f65d39b665cc08e9f83f362f +test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql 6f199a90eff4f349ce695c84eeed2c64aa442a85cc1f1df5fe422b521d292016 967b1a60e51815af1d828528f2db568d6c88bfac2647211bad80492566f223f3 test/extractor-tests/generated/Comment/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/Diagnostics/Diagnostics.ql ee50220080a1a5df7772ab043e8aae30e3d83e45b69aa40bda12c7d272d33568 c1b41b0cfa03a0431b8a2d23dde2f194e5b9262f5a317103818b595e4f00fee0 -test/extractor-tests/generated/File/File.ql c0af919359546affceeff4f0152b8bfffe430b647016da803d6650acbb142920 e6441061e0eb14577a4e00e8e25c38219ab749b49dc66b26fe786ab5e080a8e5 -test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql fa80af728ad8ca6da700925ada7f166324de6691acef51e01a29b10387312f76 9314cda502475b1fee74903c9fd8f1e2c930f5b16a824d9f3f5a2fbb1730ef6e -test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql 40442888d4673d92b7d4a20cbb487f887fee1dc8674d98b68fc4ab0837f9c5de 7612174b502524749c26800599d6a332a4022ef544c39fc86733193a18d6811d -test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql 8c33add02f42abcd9814b7e138bee9d650f6f6360ce792fb0b5d49552513d7bf 16efaf1af88c67c64e0c7a88dbf2c5c6c259a40115cb520e5d2e9545e0ea20e0 -test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql c55da7366086c0a927e23fbaf5cb2ebab50ac4eafde206b59efad96edd0545ff dc1cd851d68fd307a1f101a4cd94ec971475bdd2b26fb82a8566b4a99d0aa505 +test/extractor-tests/generated/Diagnostics/Diagnostics.ql c1f8be2c283e13c1a4dadaa008e42f660ea09d9ee1de22b0e8493ef76384546e d84efa40eaecbce6b928a5b235e10bf1e4409a9d0778c365ec19d2fade7ab3ab +test/extractor-tests/generated/File/File.ql a1385ef2080e04e8757f61b8e1d0129df9f955edf03fbb3b83cc9cb5498b4e95 0364d8c7f108d01b2641f996efedab7084956307e875e6bc078ea677d04267e0 +test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql 502cdf0e7f31922cb5cb4ab9904a4ce0d6c8f135f087f116de7822488f033eef 0b4ca2b92f850d51abbcccee6733d702620b32e8ca8ef99604000325b2a02fe7 test/extractor-tests/generated/OtherAvailabilitySpec/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/PlatformVersionAvailabilitySpec/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/Accessor/Accessor.ql fb3e3b8096ed6f9de299f73383194520bcd0a96f4e215e1945456e0c2beaa2a0 cc66788194840b4c5c57e9cbd8f7072655fa9947f2da36cf9f59463ea070d409 -test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql 89660097038fe210b72373ed6ea4d6e6cc6505a45d8e0892b53e265bb1d2c398 9abec75977ca2f5328ff6730b3b40c264cc385961c2685351c869a359c5afeb4 -test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql 15011012186c6111d5eace2f5ad34747adaa5e84d044a98bb7da17b08695c69d 60411e7886e5cfc211c10881b6e061e02597690eccd714fff2a51874e4088d27 -test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql 92b13b69f0b64abd16eecbf38eae4ff1a7006617639b80c0f22b651caeb40da6 06113682dda3ff88688b6689953e21b0b8ead5d019fc56ff7752b19b46711a4d -test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql 84b36dc43f829791db6407df98e563ea4a87b42f69aad41358e175bf3f352afa 854e6bc7f0fe1dc4d3a9f069e2eb8921ea176874c44ad153dca03c2aa46d8c69 -test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql df32edf0b05ade5f99508182473d2bf0ee3c69d8a58db2741d13c65d16c2ea52 0d4feea5683ca76b614a7e3da6f48ba9aefc188b77dc5bf3fa9234289f38f638 -test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql f1ab4808a4222ea6b1e649a5009f2667b7b2be471cea87b26a2cf91751555bcb 519e608cba95a9a20bcfee3049bb89b61b1b4ffec042ba5f15e554712187a809 -test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql 8d4a1d9ad69b5b227b9b6a6ba546ad15c4b948b32f5871d18db17c24a8f94454 812a80f1670d4ce5392da523d53007910df3de71a43ee34da852a543dd5a9f92 -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql 9a22cd6a43fb6b46df471bd544b3330d5118e64cca3aef2c5ce3b0ba7fd9b8fa 30dd927155853ac2374752c5713605afe925f40547fbe9314159e343837c7e00 -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql 7c399b5b1f763df5a92fe9e7258e1bca0bd57b4854865bd2f1b03154cc1e5bb4 f89a5913baa4c530bad70218660be764608e59608a104d6a219e980f2e6f1625 -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql 778ef3e569f5774ae3bce286fb47342cb6cda9b47b8074942b542a1c8f18b169 2aec4012a21cf0ee4f1a7c5c726c233d61a2051210e13b2028a2ae7457609e88 -test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql 2730b05c8835a78815f97e0be1dfe38140a32ed81b3bd660428265fb898efbbd 3837a2cf9436aeb730f18a144934af75e6f9343b72e331200c53a64d02a0c3af -test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql c0ec9ec2677d30a3ffe9ed4e02a0a104fdb1245467c38dbb218a672a6996db7d 4b7e83d64879c63a234a7f66e0dd455b2fbd31ba0d718ec8eb32c35eef867496 -test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql ef3bb618dc93fe6862ab2fdf05067ee59946b6ae12af5709ea66892a6806dd2d 5d2c42b3517826ed3fac5d06f15e54cd20abf72e980c7397251fecf79176fd40 -test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql bf372b6dd01a22ff4705a9bba5ab8524081eb586c17201dcad257cff5b3fc159 06c9ead259d50321db18e259b32734a473b070c40eb76c9bdf11b1f8f72cd57b -test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql da903d8cd38e725a0ad9d754c4d65aa576d906da930628b4d1351a0760e8c5b6 6b4d68db4f2aa2053b700b96171504f7c5dde433397987356b001d198a847331 -test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql a34a907c3b0809e2a24cdba315a20993eff60c0d7cf2e015e26f70f240357f93 b12262cf6b27973375e623e221f9ff1084376cb5266289b2728f29095671cb7c -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql baf497f323a7aea6966f0ad475a238dddd1162a18fccde12c7fe62559f07b97b 8ce68bab8901b911459d4a61fe23abe6c70670137670867a466af3a31238c691 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql aa3777eeb59781b9f0a48e6d077f60704c73752fd348e66a4cdaaf1f18990c0b b59c2621b2147723ff1055f35dba143e3a7c464f27ebcdb4627d6bf399195f3e -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql 98829d2dfd0a0f268b116f377f8956e18afe8ef293b30870bc6fca1a6abd1ad9 c080da788925c79302d2f8d0a731d6e8dc6bc03362176f1a64a55bdbbb544025 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql dd014d28ef8542a220461740b02268331f8b3d2118a09276d4d3fc47060e82d0 c4b8748d4a8a6f95d4e65c69c6b4833b1bf7e7444eeb494ede8ac34367f15445 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql bfea99ccd17bf2b8bf32efc7ce9889b2075a009f2dc8a3eead69b793deed5a54 6b3b87195b0cb19f48c7a28bc6eb167dc98b09d169587d31b1c2b12216826ab8 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql fc806a2fe3e41463fb1e89d03e33ad1fd5adb75614c1fe0698a8f8f587f6745d 35f470623dc23b5f8c2839f305e3881181a16a06ab15c2fe8adb39c41d84a527 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql bee0520be50b0b2567a31e204a23c5ee95ee8d96e2644661915ac87cd4308df7 d755aaedf1255fc29235fcbeac49c01b889443573ef3e653708f058dc9bc3cde -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql 9aea239684dc11eb93a6b43a0ffba5a24c2be2d870a086189d87625d803f1f95 ccad85fe6eb6f42b85c43c881746f2bd25687d142aaba7e3bc7b34740645ffc4 -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql 6ab6f45c518af82b5c96767c83bb11fd20e9ea82c6c334f88584f06d082a5c23 56e71de6ab53cd24532cfd441d1c05e863dd200db23448d9d35ea6be2e54472b -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql 61a3ff69ca5833184f6f43aeb676734f2ef4d62cd30a122f6749e6dbf139e531 100ee61c1977e441d0bee9dd45753541312bf51e530dd3e1d9486b78b3d63170 +test/extractor-tests/generated/decl/Accessor/Accessor.ql ae47bd44cd76d59a24307c02eef594880c5c2c5eb07730d3328218c52e6d7dee 6ccba4549134280101e208961947273586976155b8df0f2c942b29a0a71ab166 +test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql f3b9a5297b172476edd97088fb332d1e8abb590ed9f6796e7a4a490cd76fbd82 fef7c5b8eb37cd04a5e1ef5581f0514738568230788c16a75bc22434eecd5b6d +test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql 6a87d0369a845512af295909cdbfe2b1a4f87e9a0b6a91a15ef563b2459cb5fb 44a1560eaae49bf4cd060187e6da4088b4536f085c945c3916dd24cb9df3756a +test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql fe7d77e072686225c70b15c0c3dfdafde1680c758095dc814f483ff70f9a99ef 084c352b7019bc84463e4b6a46a7633987a3b75b26145698eba82634549168ee +test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql 4b003a42c171041ab0719e66cc9f398653600bdbaace200f3b96f508b8776209 ca793775f296c723d396bd0d1ae9327d94c3837127b5407defd8cbd598eff6b9 test/extractor-tests/generated/decl/Deinitializer/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql 8c7faa72f99cbd02360f3a0ac37059952fbf58d54ad79dc5b81dff209953c433 631836e15e8cd7530fdcb4470ad82ff759b61086a50139d7d91ab8dd26bb6938 -test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql bb20d76f377bc895884e0830990291e721d9a0f6570e6d0e8fcc67419aaf1712 2888b9a300a946461886337670acd028f018d1cfbc826910c173308ba79bfe3b -test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql 9351d7a2595a431f1f9a52fe1fddc64acdf8923b708e8dcece6a8e00c3895c58 855c122ca985bf9cb7ee439f212912187bc13789e968e46ff6536e712ba1a6b0 -test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql 8a7ba0cd48fdf52f229ea1679c5828d79df9e800f76df8dfe9a878992f034f88 dfdede262a1323b1db2618721b01a5fd4b30c172bf8a374fe48a0d9f6b21bd39 -test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql b70205b500419d71909a8899d9f2099b2b8340978a0ec4e275f2007bfa610f8d b5009c8c3efba9e96bbcf15eb61644d8e77a95d1b955dabcbfc75c6c084d7ca0 -test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql f55ba6b8a76621fc899eceab6bbeaba3619a1a4382c318369fc3dc17bc806082 ea0cff9bc7fd87efbec16bec998d672ab5b5a8f1f4e93c10dd87ac254076887c -test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql 5a4de48886bd8fd05b9e730aefcffbba28a090ed2d8d1aa331277820ab836b7f 999c92856eff3b34839adfe9daece97834ce9ede7fad1cfe0c2055e0f019f7ab -test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql bd00c56cf1d05707f29c4f31defc6a3ff25f41928688c2be992a92d4c5624859 3bd69b639f883e164fa6d1d4a3ad18aed86f88b93358636c5e118f1ca96eb878 -test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql e40260a5689d26c9bf2dfe17617e8a1480c720523e47f50273aeb7160a69f244 7ee294373de5bd22fc2c64a7acae4a94e9bdebf808c8e73a16a57b0dc3c295ac -test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql a507e55efcc13544d93c91c343a3df14b79114f259cb4dbec56d6f56e804d4e8 587bf774b4c4451ff873506624ccd379dd2fd7689460b4e24af96fbccadc0e6d -test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 11a15a67f7b19e3d1fb5a2616420c23fde400848c8dbfcadb8e52a40130b92ad 502831fd3465ff06eba1dc6be365bee5fc2fcec96be44967a6579bbbdd395a32 -test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql bc57c794b106df3b9da47432ef3241849145d5e86ebf601cec08729f05e15956 bce4e2150ca2efe495e544a3a074c7ebc81f68bd2f3280a76f565d31acb091e2 -test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql 0883fcc244e06329738f242a36d0c33ee5228500e8f9d4508e4b5b32d863edfe 4fa99729397085d19b25415ed40e62dc2a555d7581c6c98895e635f7d502689b -test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql 040731ade8fb6cfe989fb62874c405a24256ca3947251d6799c8f53e144d2ce9 d5b37f663a19fba137735b85c070405d687d3e84c1850d93f43b50f77524357f +test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql 9ec947283ea1369cc0e22c767524e36c62ee1effc198b392b6142f9434918f03 272337f27bd6299737242a57ef06e0ab7b4fe542156e01030fca5614933c07bd +test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql ec9d008ff7683c76cf3574d24e499d687ffe18ca966202be8e55475895bf30c1 2fb78d8e466d4f3ec3daf8bfa41e8aba89387e2a7a7464341e3a52131ecb5632 +test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql f163fb082c06fa7d1d1f68b6b586bc597e0366ad8761c29cdd7506c3d45a5d03 eec3a2f7444bb766dea8d22ce3a660cf660b87477db8519d5ba2f498cb361397 +test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 6cfdfbe68b1cc3c31b61475c88b884dc10160fe1da26179e6394f6c03a542dda 511da6c1e4130c1af977452d2e9d7b0a89dac5312009735bec32ab0bc68c4660 test/extractor-tests/generated/decl/GenericTypeParamDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql 5ae0037ea3fbe733ee57d4c9a77c6dbb9da7c2675f29e5c3222a01b000e950fc c3445704a6c19ba1ea0972538512d1bab4d754dadecb377266053bba33ceb368 -test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql f8696eac357db4c69919baf49ab48a2ce972032414e6cac4af17cc8b45cfde18 fda5ce16fa25c68b10fb03817b0b62b759c85c4276bb9c71ccf94d53caf48820 -test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql d6cc4bf47ccd2886030480d979ca22b9eae294243bccf58e60a8d8cf3a9746fa 0e1b6be4f315efdd1680b11c48dbe35e38ad2831c09d904862f1e090891f3515 -test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql e35450ce046e77b9f52bf57a0560f5a1b5a2d009d2f91eb7373d6f0f6e97796b 1d4a4fb376d8f07cf21081867a5b8698f71b7fb911d42e6457e790a08ff39f51 -test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql 5333ed76c38fcab69269778e8c7df40ef48470cda50b2f239c1b563976b241c2 d0e0b472c777b386c8c4c83ff6a18093ec9237eef2e96adcb8c7e8c7055a8f7a -test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql 40e7c9d069e0c0e3d949c6de07c11fe5fffc45b37f0bfb5980c6b2941f007f6f 564c883c4e353b6bcf63a7bb89d6814f48ca39c170b624c0f87ae0c481e88729 -test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql e9960f040d3824e1398858433e90a22924bed3a3a83d59ced742a8db123edb69 9d4ca7ea49b9c2e3987b5b94ff68fbf76b68aa0eb50a2290fc69d534bebc777c +test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql 014fbec10916b7b7f19c54e02c2c853a08dee971b8ed1d90d2cdba6729eda7e4 ab736878f14e3ad2658591d301fce3bbe9cd3036c396ff3b836b7ba5cbf3d1d3 +test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql cce94d0eeff92d5323aaa02a6faf3293c7ff3d54eb68183942b484d351f741b8 c442eec49ae84e5928013a6e6418d2bece51daeaa8cc7f3191bdf69e89409aac test/extractor-tests/generated/decl/InfixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/Initializer/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql eb4881d91d1e690c636c66fd4b99f2080ad9be9107a4c037217cfd6bf55f7262 9d6abf1cf95fa591c3b091ebaaa723fb45540f6ef183353b5467f7e8539cb09f -test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql 6e48f56b27dd9722722af0297bc7e4b09bf553eedf3878d1ba381cf7b7cfe7ff 4438b07be12663dbd3652c365fe7cd5bcd8441829e5123fa450cd1645886e306 -test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql 38958bd32f98f921a163bccd5586c50298b4ea7ca3a4cd4d8c77741ad104df41 852b70f1fb3f623ef533df2be321c58a7d83ec60096717d0fb946288d1bd33b9 -test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql a18f48ca9d1b9e2bd153e0b53d199eb24fa4a3fc57fd4089c1d6422cef8aa33c e20f1f8bea29b486a622825c3b86709a0c820c5e2497d48dfa765b142c1dd3ac -test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql ae3ed80e2847f2ee948eaa5969f11a974a149191a86d5f547a4ee3ddfba718ac 7ecd29a5088000aafaa782b550fe050911ee7ed84b5adcdbc6de0d8db0987e36 -test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql 3b4446673db0e3efff7941bbf849cbb7c2e0700db0c41ab3fd7372e9aa3b0795 fd3b4ca3ea7f6ec98535e94ce00c336097d4603dd17af1d7652508775d9d7ea2 -test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql 3528a1dafa45e79b6fe25f6fcf9a2970afef8aeba482080fd9abc237ccfc3b0c 3d8773c7fc18e048ea735f4caf690a6b17d7ba0b398f5e68b205c73b9b77bdd7 -test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql 56bc7324c16dd4dc5bba987cefdb0741c9d0d636304d71db67e13463236ad463 7804da20b8ace3e6bdce2739fda4329536c5e846a1b53f9cb543925bc5443cda -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql 00a8664146a134eb7d238a34b879c5db6ea86c842d18f0ea9ea53684a94fd889 9fee72637869bc2aa52d60eff2cf524e087dbf35d0764011754e9b84e95c8d97 -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql e80e2594595d646f857807a719575c5588778e2d116a60d8f222bb58e72148c5 f2d5dcd5a63e4ead11f8f93c0e17ed09a0cb0fd8aa1023d91ef725c848fca590 -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql d85c12bc7fe2732594ca27cf85de1649ab3ecb64c49439b48a18353386e250ea ed58651f5d1c767dcb17a679a780d4248d5de779d7fb1ffff13675867071ef6f -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql 624711472413d1bbcdcd01a805667bdebce7f4959f39016a5b4df60610eed019 e30f3e09e160784ae6170e05075b10cc03df7d3e44b9647be193abd7733e19e9 -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql 2e6fad621c4a301b124336977ba5a6489e143d37e33deb330b993a06bf263069 c4622cd12ecf94fa1e413413ee3e5d38625d8c8ea6694473baf6b6e05d222ad9 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql bf58ac96d6fbc3294c5780000539486d52b7ed9ff797647b83c5914ee9c12cf2 5294555db2567fd78e7580ff899819ed4bb3000c8046a806828ae67098b3e743 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql 365c3f2bcf802880455e0523bc6d992740d08119cc307751f6accb031f60a8b9 0f0b9ff9c0dbebb0b7b177e01d9082647f5544fa4cb9fd4c2ac228538f37cd87 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql 25d10d0d28cdf5eb73dc2be56eaefed13ccd9bf5808480a950f9d91a26db93e9 fcb2af9a0032c60d08a2025688886905c5f3792a6d017f0552bdfbb8c736c118 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql 60873ee0c149f7a66572c79a7e86e2c15e7b13bae618988e6a70b7f62ea01b65 be346e023edd258cd050645b6bcb2b1dfbab8a3012b473abd33ea1386471a4ea -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql ab250e09cb289eacd7914ecdc45e9a7eafe6f95390fa2dee6257ab3083cc86a8 2adaeb858591ee6e94b36d53c4433fe6c0a88a4543c0857db0cd1d27d8d83372 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql 7583b5d08f9a3809afb50b44c5bc9afa57ba23359080f132f25f21ef2bf41c73 4d89e13890f86e754389f21ecf75153d7c65abcce2b00a08a4911b49f3e5288d -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql ae14b7e9c8dacc609056669a5670f6bd8008ac3a2406873c665a43f41703a987 06442212a80ba6c6122fd6301fb817389abf37afb607e77c4c1ebeb4cc57cdfa -test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql 7865a28cc038cf79f7e9d024f33d8ce17e40ab209bfec99771177a1d77819ba4 ab31689af637c6ffa77abe59adfe24a4635be937ef65d1933f5f84c3ba544fa0 -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql 0e0261995e03922dd427815c2619c85671dc604a953d80d8494e59678a3be8be a428d7835bad44c0599a5235011d981ca99c0f30b3a07fa6c68087563ebb835d -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql 374c83dc94491225480d8d89cb5c84714eec5f0b690e2cba2d1417b1c4f54710 eb1190d2521ec51ecfdb7ad0fa9809e11a5a8a862dbd6e6a5084a686021be491 -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql 68981db766e452118ef9c7dec3e98cd4747c5feaf5659f91a599efc010450c86 af6a67a8b08b26636da566e69d983888cb3bf33bae7165ee486e4faf94b287b7 -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql 7bca8500dc892ad210f12d1152a833d4403d6fecf24d3e4dde513c614d631664 e1e1e41c05c92eb56ff2ef5c53764af290fba40ecbb56f92435930c47a7759a8 -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql f6d173a46cec223774ee8ac91333b522f14ac132cfe844ef2b2a9aeb2e526835 7e2fab576df939d919ccb176c3b06bc5c0055a74088ffac1cb56775684549620 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql 4d6ebd63d1f4ba2754223d12ac3663dd287844d18d270764f5b36a02b5f135a9 ff388dad1c27b80fe07d26061e25b75483932e7ee9e4172662c5d1c022f7f7d7 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql 2a382b42cbad2ebda489ff33fab56e667cee5257eae5f81d5adbdbd29ef3de9d e807c59dc5c946046ec455147a828c0417578879727eec96c65c13454f40f49d -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql 7a0b15bda897a0ab8ab6a96166835e558da3cf7d828bf3cc89d57c01b9447349 ddc401516f880131dea231933fafc440f7ca6bc8948318969f657c0f163146d7 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql eb1956b4b3ba60e9bd2f81b96ff8adf64f362648f7fdcecd59deaae2e0171d0a fef83c7a3417cd2bdcc4c62afc601bc12689cc1912c806eb633c120a98b4eb0a -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql 76a598f7252807b1e6cfd58753da8286701697694071838c601b012bdd3d1158 c0939d1c1ed5d9d44cb410a7c9103d7fcb8f6f97071b59db00183262d117a8e3 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql 7b7b7a0c2b9da446896ec089bfbbfc4d9b469f55d6ff0156ea2346309a9aff73 d0e2de47ccb6e16bd3ec43f6627fa6d5886f0b097deec25ac1fc9ac99625cf47 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql d6914b0aa2cf831aa4cb41389dbd5686ae9b16182630384ca1fec54e8c19473a 89dd7c0441c73916cc144a7d09477e64738343bde064f818c37a7ed3f3c3efaf -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql 846f8c0c12bb8b98e76275b16cec4978c957ca2948e914af81c7f738275997cc b25efe315ca330ddcee3486e4db9b313879328af819b940d95891805b3db5676 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql b55800ca26b39c12aa59076863030ed5d9ed9e6b80cc89aa40959165dca68018 ff90f5597344b68bcf66290b870d567128721c7e69555310882dab8fb26f6d5b -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql ba01112d11cc89bb75f71480799cecea66f64e4a9ed43dc15a692dcba79ccf44 20176bc553075971d6811fd8dc928e8c9142b60b262cf16da14d7e84b402ec22 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql ff7b6dc6bc37dee3c7ba1731d0ac251b3d839195bbb67e00dc5d58a172b4079a 73c37603fe51f4cc3dfe009fa0c5a7a22d6fd73f4dcac1fc29c680b14759c695 -test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql c72bffe648b6f914a08858ccfb065980cd79e177d27a4e685bd3961886edc156 4cff3c7a6314619699349fc61922ef85371c3a854b3eba1935385ac4ea50f9c2 +test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql c9f9721356e659affa7cd868a1974dd5df11a323f0e0763a0c1ae7a5651d4baf e1443de1040786c4e79ed4c4477b30643d51712a7e2900197b5194bb8c3bba62 +test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql 53f52161bf7734b61164acc1312fb0ba2c95d8e00b855bf63284e3f7366860fe 0fe47abd9ae26b82527e3dd812d0c6f5666fa23deccb7013effefdace7ab60a8 +test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql 639397528c54774decbd4ae3c0dd39e27514a2c44c5c3f3c2b7e086fd682ea23 0988e38a30eaa20adbd474f4ca6222b4dd4ec96a661d7658158a0249a7944102 +test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql d6da7228a3db42d82fd8abfeb48242088c9c7bc60bd61fc66f17712a49e6294f 6a90aa7263ac62bb1f3aa169396032947619e1985ae0a8c52fc0b194c005cdb9 +test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql bb86d80f67c2011a780e981d6219de46f97e5237c7abc964a744e36b943a3e3d 045148b344759060166157277de19a71f3ac9d74e35a9c839294ee51f6e32cec +test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql d66a29d906e70d82c50ebe27520448961bfde2355db50fa6579c74afc29fa894 37b7e4f112462d55f703453f6b4d68669173992ddb33ae1a271f537c1e4e7c6f test/extractor-tests/generated/decl/PatternBindingDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/PostfixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql 5e11a8fef0037610e695e82a9dca7d172d9e622cf675c92159e45780658f0ba1 ba0bd5706e5ac9bb7ee312043ac2dbf26119e84a177ace1b526fc0f025abee0a -test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql a0e0e7271ab731c5fafab59779b5d09fa9ef97329867a8f35ddfcf6cfca5650c 3ebb0c8d3ca9c07e2d2422a17a9dc3f3ae3941ffce81efbf01bfbb0f28266a33 +test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql 2c1b4957764602352f820ce3fd3bacb80b0b9a3aa04d2b077ce7f20553c3958c ba28928fd8caa3f8b8f85b73fbb0d926120bc497fbfda4088795cdf45a78b901 test/extractor-tests/generated/decl/PrecedenceGroupDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/PrefixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/ProtocolDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1144,8 +1070,7 @@ test/extractor-tests/generated/decl/StructDecl/MISSING_SOURCE.txt 35fb32ea539315 test/extractor-tests/generated/decl/SubscriptDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/TopLevelCodeDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/TypeAliasDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql db909e46bbe481831ed1ee3e2dd234e497cbc8ed938a68e5a1c5c6c4a1093e00 76ee36cb8403e6363300fac336719a16fd797b9f83dfe4b581c0a8e3d21b91a9 -test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql 9c646eefbd283a23df8ed8e55eb685afa25c0b2e0921eb602b178de62f0baa44 45016066204a86f2c262d083d4a7477d141f5052841347a0298ab65819aa4085 +test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql 88a9ba46c3437e48cd14d4190ae2e5603e1c50f52df49b0fb3095db591494d7b 4890daf58ac006f2023f8928dd32a93b2add05ce2b8008110f67a2dcf11ccde2 test/extractor-tests/generated/expr/Argument/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ArrayExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/AssignExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1157,85 +1082,57 @@ test/extractor-tests/generated/expr/CallExpr/MISSING_SOURCE.txt 35fb32ea5393152e test/extractor-tests/generated/expr/CaptureListExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/CoerceExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ConditionalCheckedCastExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql 03b2c373c44b17f1c4bb2e59ae6498d8606edcaa2b867967db0be145347308d2 6a5b9c123a7ba66562a86b38f200a1234bbe8381f59af4b6b4c6640c4bb2badd -test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql dea6fd74bdcb23ed6ede61f151345ee871d303c00c72c1952c3d5f850c0a9b42 14f535828aefcc522bbbbcb63a9911ef562cb78f67bd5aee1bb630b627b5646a -test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql ad3cd8aff3f63ed4617ae0776f26a86a13cf0b14f90b1d94e4d0fc561ae9ff4f 569353ba4ae3f1e454d465de47bf9faafbce7eb5f9c4a3a5a4d1b9a6741cf739 -test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql a6e83955f0379973d46a753075e048dcb387981ba1a7a1b80b710296f034bada ced53e5dc099e6ed8bb70219893ea12658df5b6b90bc98f51054376d70412a94 +test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql e06b95ffab44f50ef3c44803879bac739bdf3ecddaed64afc1f2c17a8136dcfc 07c7dfb15adeb56c2e6d8d8b8f237a313f48af6aa47d7a48069687187836a94a +test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql a78cb132bcbf2c9b4c1a3ad8c1c961915ad273869b80b797a772cae8033dc0a2 492672964a3cc0f53c0233d5392ce6fc1fa577246177ae6cafcb83918e1045bd test/extractor-tests/generated/expr/DeclRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DefaultArgumentExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DictionaryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DiscardAssignmentExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DotSyntaxBaseIgnoredExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql c164e54f841680d6609b6430201f649bfa54c71ee91cd9f45f1c93d0623ed758 2638c431e5260404852ef30e136a7329a60a086c2388fad913f021e0fad14a14 -test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql d14112baba2b31b4036f5b476233894e531d2fca6e5a6441474e04bdf5d6fcbe e7d4143006444d16d800eb1fabece36e3d66241684c3d8bfe2fb5848d569e1d0 -test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql 9a79c9596f098aa6055fea72e096181ecc11ddcf2acf93fa42d7e40f97993e55 594720e72f010c6f897a2b9c8c7ce3faa0495c600c15fb74f99cc03666f402b9 -test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql 858c8801041988b038d126e416a4e79a546a8bf91225f1190b46c44eef0382e9 7de40ed3b8dcbfeef8cb6ad7f98f477a2dd2eda630c2ed02ad224de5f0bedb1e -test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql 3aa9fdfc5cc4a9c95c7a9271d94f531d1491827cb31171491cf939578da901e8 10223bd610359bafefcad20651312b7a821ea9e744fde934ef8dc4db0eca5791 -test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql c21ae7f270755000dfb03d15aff39736de4c94441f4a1839475a5eccbb58ccce 65993d85c154fe74e4a79b6ff3798b176e3f8d408c42b03955260d333ca3d349 +test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql 31786adbee4984621937005dc268026d252dde7bf4d8de1889fef90e4db92250 3b0f2a276de100fa20f261091e00bc6c3ae49f09cfcf388662bb31d136634efa +test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql 4f8f20e27e34b1fcc57249621987339d9b0789b51e3e491842bbae82a0e20ff7 109968fd71a44c98231c555b8af53d15832ff1accf1a63429b44a1270538a63d test/extractor-tests/generated/expr/DynamicTypeExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql 426837e6acd80fd5c4f79f756919c99df132f6666aae9d07274c4b95711123bd 451393b79359a46070db84d8d35ad3c7f14cc20eddd3df2a70126575d2200297 -test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql 9deff1a2a2271c2dbe44b2aeef42f9adadd73b0e09eb6d71c68ac5bd8d315447 bdc07aec1fa2ced3f8b4c2dcede0354b8943488acf13e559f882f01161172318 +test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql cc82c780010a55b054b2a89b7721b593820659fe1333db491c4e3075245d0aa8 8c5ded1ed9a014f21065acb3a730b8085fb8fdaa29aed0637350b95718c13696 test/extractor-tests/generated/expr/ExplicitClosureExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql 7c4666a86e962726a505e76c57196483c6eb5259463a1cbdb6239f5ccbb33a13 2b5acd61e85a46b1c565104ba6f58b58813ffeba3548dacd776f72db552d5d65 -test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql 487c727c721ff925861b265d9a4f78029f04dba3b94e064529d89c7ee55ac343 3bfdadc09b8672b9030f43c2f0cab6395af803e79ddc17089c43c3da93d69979 +test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql d5bdd7a642d0856773c3f478ce7f5f6d96ade1263607be32f98b884c979005fc cdb84fd0afe23435e0a6f94e27f48e839cc248bbcad69ef7dd1198bfddc4098b test/extractor-tests/generated/expr/FloatLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForceTryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForceValueExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForcedCheckedCastExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql c873205fc042fedf96692e2ff20158f76d355342d97f4a76ebe14cf7c08457be 23a554131367a46fa1629c4779de47fd3dc972ed0e7237cd5ccaa0a7ec264296 -test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql 0ebcaed85409f23969ab4abde51a1c23a46ea76d48c7c82abc179b9f0cd85cfe 34f21b1dc5a189df88f0ea8e897a360240a93bed3399663517e3734fafa1b489 +test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql 48854de45173d4e2c460efc689c9cdbfee0a310e1ab6164a1ddf64a84b50eb65 4e1254dd4dbab68510eafda4161761b757cfdb9321e0b31c151572541e468d6a test/extractor-tests/generated/expr/IfExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql 35496181655b08d872e6d670053515f591c844250c4da987d22d9eae549b5eaf 3f9f1cf0d50da0d76653e3fa93129b7bc87f7751f8d952e8cc1fea554c24eeb8 -test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql a2bd400ee044596059299fe75eb51467bcd368b747eb9eb221f81fabc5e2b95d 3908c24e5dfd15faa592eafe7f8ab4f458dde29b7bf3121912ea493b5dd020ab +test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql 9076b7dd47a4fd64aa33175167af5bb045a4168b858c70f1f05abab80a4120bd 7a5773c610f06274b9bc282aa7b71ee023ae22da707f68f0962f130d6ef150dc test/extractor-tests/generated/expr/InOutExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql aee0658164807f3b04ef6c0f628e7f8cb72e8e2b8af00d79bf22ce3cb409dca0 e023826e691d3c3ba781c6e0be802dfebf65b2f169b3f8e028f8e8f8f81b427d -test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql 11ab14e77000bb67fd0276b26c1b535c696984975bb6cfdf96db2a003fd0d4bd a4d17e6b22b7f03a34b11249b9092af991efa9b06db5ec9f1020c706c618a075 -test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql cc48d5a0b2caacfc7ff12f45cabaa170200721506ddd688c26619c1c6a685ae0 97ac2e6232e7369891ee9c4bd9f2f874df4d6a177bb8705446713b28cab20086 +test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql 7e722ec2fa7692b8b988fb11d7a0809221bf2ba06bb420e4d60c5abe170bffd4 0706c0dd26023bf2b02bc9581513c8449318738b0e942124d1e2db196c8bc14f test/extractor-tests/generated/expr/IntegerLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/InterpolatedStringLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/IsExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/KeyPathApplicationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/KeyPathDotExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql f52a9003e106bf86082ed0fddfa809dd253746a01b2eb400d8dd11940f89e75a 072424ddeeda48d348cdc847da0467836a9921eb12e9f4133a1da4d75191b1e1 -test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql ccd6b01bfc67abbab5d2f9a64e7d042c2bb47d85bd7c844418f0eda37188c307 d5f2119ae5d153a36eea5d82aa7fd2c2628827a110dfc539e04629f0a5ebd82e -test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql f73fbce049d8918d6fd4001c75fdd32ae4cb4cc54d48d8a3681ee213b00b3c59 147c93af7c138ddade5542ba43cc6317a91cff4eabf5d2e2175bb4899f8ea77b -test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql c7e20412261a1a2df5bc55e6fafaebe27c33b76ebac7a74a2c5d24df4744aee2 b91c4498d52bcc618a1af70c41f8084368dc7f46c132c8428bc9f94dbf9d0f8c +test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql 22116bc9e6bc90c8ab5beb59ba69344ce2c0eca1ddb10f6bfc2c28156678b5a0 034abff6eb54649da0661798a0d73180feac2e6669e9424c5cea81e3d8c4e65d test/extractor-tests/generated/expr/LazyInitializationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MagicIdentifierLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MakeTemporarilyEscapableExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MemberRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql d424b72dc8d3a443f7d0c90d3efa660fd98dce68aec971afc62f99f5243080b7 d0cc33345c0aeb00cb88c1e952897ef896ce02edeb9d2d9785aea1ea68fdfc6a -test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql 9b7ea8241e213758e11c9954d912200641d723302cc3f9be53deeab50b8fbd06 ddb041799a2c025c2ab2d5dcdb263fc9b4eee610dae377efff08a15d6c7701d8 -test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql 52f2a341d784146bde524b06a96dba2b5a15190f8a56288355282693635a9224 bef08f3ee3f2d33ef027329827382eee57a4889eb03ac73717d86675a7934d02 +test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql 436ae4c6fd6b1c870da204dc12def2a3ecad4cee5c10dd2af635d3964d7fec08 c1e089fc3612b1439b8b8e18c49b1de372a654e018671a7c37f0cf72c64941e0 test/extractor-tests/generated/expr/NilLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql bfd0654446bb5ac4326cbc637024f68fd3dd3314ed104d93db4a818cebe1c0a6 2fec0d977e211b154b8c90233be05730fd71d66489ed2c384e916befd8816e2f -test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql 2357a88c0b80b702e26afc7ddff51c564136682949a456ede1287fca37bbe117 aaa956a55f895e979948b44df3c401cd02cef67184d41004534df12ee8a19212 -test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql f6ea109525c2f41bcfc15a96246d70acce844510ae72d8f04dd4e03e6573e733 c6ba2f99c977616a62abeb7cd4138a9e9748c92715163f4238a2f0e4c456d560 +test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql 05768e0d59e314b716e9cf3a41d57cf15bede2023c8466ef1e3ad762b582150c b7661b1052db0731365b4d1cffc38fd2ce141ffa2634714cff5c00764eee0a79 test/extractor-tests/generated/expr/OneWayExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OpaqueValueExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql 9657d2a968de2bcac5839701c6102f87f6d6947c50b1b3eef27729cc5af4b9ba 99f1b3a0f0186242a5517fef226c4d7c1a3ef5f9660844aee608b3918727db5a -test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql 37411aa9c53dbbc5f1c32ec9e24a8a5bf152ce11d15b1d78078e0fce41b3a8ec e043f9f86417efb480815cb04ef7dd2b22340f849be203935d523d9f2e8589f0 +test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql f324111c422127d9251c231f971da57a64c28bfa1fb61f1a8acaea6997996126 7f1bc62003ecc03897fb3c4e0389135277a9d56cb224a73a0f7e102c78cac127 test/extractor-tests/generated/expr/OptionalEvaluationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OptionalTryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OtherInitializerRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql cf429544725932933dcd3b0ce2e53ef8d63aeae6ba64db3b65c307c03243fa10 0e0f52920d0c9277b6d673115314df7e7f76434964e2200ca6245cfc0ae5cf10 -test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql 09c403da048393b3b0b82432991104267c4e6c7daa5793641faabb572c09f129 b6ac95f43a761937dc9f50bdd57a7d5e02296ea4d337e2b566af534e4c217137 -test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql f969396327b9b93d936513bdf036f9e6fac523318ea03e03b4064a33525d36bc 452527d074d72182f3e1898fea8d5679ccfccb2ff73af70f7927850d49d652e4 -test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql 23458a971238804f43baab06090ab3a281134db112b4908771c23d91c06b0b18 c5a6c792977304ed6e87aaf5e4e983055d00227e92ba661ff87adcefed0532a4 -test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql 8f7d3eae5fa5e3e210b8357ced549944a064ec3193de695b415f1cf62d25eb0c a17bca0032f9747d12a789774a19d3beaff35b911ceeebae3484ae3d8824e153 -test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql db1ed61c2b644e73200d719565d8e0183b2dcad0b11e65050315c38cf82a693c 961611d2055ff1defc060f117cdb7790c63cd0c8a45d182b8592de54862a6192 -test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql 33e6a49d0ae7773a1c70e765d216de1b68c8df5ed69fe16f8a44c1ba39323059 b6889eb338629a3615f09c89db2d146af84c40d9915b1390167175ec50721099 -test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql d5eb8c28926a1a22df7880b311f9e91aa80e69ffb978fdd4ed431ab4e368ad84 744413eec3114687e0b0f9d0fc7b8118b0938117789aedf1dcd6d8f046b254c1 -test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql 49b0bd3f1048c6ceb904a16b084a6646ed587f55578c70ae8c57b2fb3c78ed68 a46e8af5368774166a73357c2e245decb677d81791c355f2fe74e41a430d55ad +test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql 7b3532a0b1c21100c2362f721f6f3f95277d9934bb22a2928070713f247b4480 9c6fb2be429fa21582b5babb8da9edf09e1e28a29e1c6e0cf1c9802b111e889b +test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql cf22bbffb7c0586a190324e56aecc3ecb0559257ff728ea7f4f9ecce1e67d6a3 1c3fb6ec13b61ed1eca88eb20f8c3b4f34018c28aaa88acec04a1b0e82a10412 +test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql 8c6c61391eca3058547ff66a374ce6578f25f358d917b24e3d0e8ee949fb6d30 2bd9310feedbe7a68700814519b95c5082345b4529c95684d367a5d659b44b2e +test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql bfa3b681b3e50aed4304dfdc11789a3875afd6a5a16072c090ce8ff382028c1b a0bbffd7f622bc0e7c9eaec948b2d4ac65c73ace45c136ccc41c4e70648ac1c8 test/extractor-tests/generated/expr/PrefixUnaryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql 21122074264476b5edae71790e7fb6627e747f8c5d44c8d1176a1767cc17605f 68d6d79312fcf229b0eaa7be69f0cc9403143d128c3058678d73b9a1f6b4e41f -test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql 6ccc25288e4aba93066a8b8cdbe5c5d82d346107836f2d1748fc38b43b8d01ce ee6afc9d0c6dee117fb96923874a19f3dee9d8e617c023c24daec567c272b364 -test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql bc827e88b77cce3f0f0df3a5dbca2cdc35199a3f566dc25b8f23edcb2f56e26d 68d9e91f44bd9e75f115aba6353d38979ca5b37f284b6357c67d5cf21630462d +test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql d1a7dee25b0b69ce898d305deea3f6f883595d0dda70dee8726cf3bc90504792 daec9bde6192c9b9e6fb87f1669d109a777fd16cef31a862e1d09f5da798f0f9 test/extractor-tests/generated/expr/RebindSelfInInitializerExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/RegexLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql 57837f6c123a5e89266b81feb7250f917d14b4899b426984304b9e970da7c4bc 338720ee352398436a054f46bc69425ffecebb8c9f7d2cb04b1a26638c2c9e7b -test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql cf99bc20cdbdafc77bc574ea0c96b47b04941cc108864db8e36b82a106c00bd7 3fa585eb56d89c252f399be3f46787e3b31c69b419d88c0c9acf1a9aecf85791 -test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql 95598451a0ffaa0f2aeb1e478a507efcc380c30d10aa90efefb6cbc14a9167a9 f511a9a527c68b76d8591c15c5e63decd56d9ef7b12d470889ebf4518bddf6d0 +test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql 974a773308132a076a2dded006658b5e61b2f72ab7192d9653239eeb7aea7168 ee603a1fce41760044475858de9df9b86d18b299d272324a2eac1193049712a6 +test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql 5dea0a19b45feedee2808d81cda006b94c15d253ea80ef66dfc67d199bfec29b 49b07c7695a47935f1fdabbb547c6508360bd5269fbcd4743a486a6f9029d6c2 test/extractor-tests/generated/expr/StringLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/SubscriptExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/SuperRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1244,8 +1141,7 @@ test/extractor-tests/generated/expr/TryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb test/extractor-tests/generated/expr/TupleElementExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TupleExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TypeExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql 93ebaff4938dd18f3626533cbf23094c4d7eac7ce84325b743f78dd36d8831e5 c3bc6b6f7a18ca5a32084207fac2468f6306b81cd6a7af1ecf117b1a37147266 -test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql da07880497965cf7f7e28fb3c3a8e8223368685fdacb62d7e562757f01fd521c 9be644216f6adf12adf102ecfac5b3820c2fe7916a86586744ae71d1c11d9704 +test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql 6c961000667082800ce02e73f627124028826a6e9ae64b9a44a5f62c3b64cf6f e8298da860d16edd30ffff341cef248e0e4faa377842ebd2ba6639c79d208ff4 test/extractor-tests/generated/expr/VarargExpansionExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/AnyPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/BindingPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1263,31 +1159,21 @@ test/extractor-tests/generated/stmt/BreakStmt/MISSING_SOURCE.txt 35fb32ea5393152 test/extractor-tests/generated/stmt/ConditionElement/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/ContinueStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/DeferStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql 0170171a2b75ba6beab62726a2b6a1530b11fb4b5d9b95b645a07f1671d3dad4 ef8fad038be90f35930fab0c374137e200557051cedaa89ef1cbbcaf41850530 +test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql 0f4ce5a2ea261ad66f7d9aa9fb4c2917d0ecc627c1d660f203c0b3e62550f463 6dc9e5e3d83c5b94fd0a72a06fc3046883f1766dcfc91b7e7063bf1c66582f69 test/extractor-tests/generated/stmt/DoCatchStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/DoStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql db2d21fe1b01949180ff11416f2dc0a6a561f9ac9e6a5654156f947c584971de 2cf787b54819077dd2b4da870b722396ebf953e05bf0b1c393affef2b1fe11ba +test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql 70eb21a0717e68bcf59ba9861d474aaa5f7791c39fccea4015bca47fc8d082f1 18eaafd230e4eaaeb114466db17bb480591af6357d5ed7bafe74a3352b806690 test/extractor-tests/generated/stmt/FallthroughStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql 093a6619940636974e2a59f085937f9fa8645a134199c130ee99babfd2c1f1a0 068daffb2da1be9135eb818190926af3958d503c3c61de2659c0c0e167b2d11c -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql 1b8689dda5defd45c8bb743b30d723ed7b0c80ca54b81fb0f5fcf76620ec4ef4 1e48e40cff37194e0ea2b69997177237145fa1070e84c8f701a03d71416652b5 -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql 1cf0663cd16886d4361bedad93759ab84fcaf54d5fbf16d7d2f4108f74c38683 129778f5f36d10e8a10452f333304fef9b95919cfe367ce6ff7309e2d3f3ab3b -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql 503106f20025ec479ffe46daf13ff80f5d824b657c43da8185ae2d74af8740a3 551e33f70028268e3b3790c17907101be768c42811b62978ed10ffc0a65e25d0 -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql 749149b5164f493bb49726e1d54cdd1c85607566c0ba7adfc3514ea953b1f40e 1695a631aeeb47e6a0d22ec18d713f1fe2f730684269fc6e50c70020a78fbf3c -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql 536af56264054a7af626a5ca4bb5bcc5b8f13299d11c499a110e4f12e2c166b6 bfd8b355342b0a03ced022b31d39e9adc6d7820a28394315392a9e2fc7647555 +test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql afb6c63f2114317b41c5d9ab33fdd83402badbba9d8761b1eaf51cad62598959 6454d689a0178bb6704e8e18a84fd8e6e3bd622fdba44838ea3576c37aebfd1e test/extractor-tests/generated/stmt/GuardStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/IfStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql 46b702865ef1dc4d9d8332a3d68ba295a1f8ce9737dbcb07a5ef4c701c021789 07eaec1abc763a4f2339466fd0f06d12c4ca21d9eeb21ab1f7366916dafc4854 +test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql dbe340f6f2468a6c5ff42785101d3529ca11ce49d28cc607cbc842678b9f0b61 96aea7859f0a606ea032850339d78907406dcdcc2d3ac5b15ea8c7bd2cd36eb1 test/extractor-tests/generated/stmt/RepeatWhileStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/ReturnStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/StmtCondition/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql a1e1e34aa999175017c4dfefe91086d2ebd6b9b95c1680c95f2f43df39ab9487 421c8bc1b3ea40f67790c11bb414e7aa9025465a690421a23448842805f5f759 -test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql 1bca85242d8513b9300673f666938ed59ef7f610854d97a820a09b3bab661188 1f15e6b2a29eeca1b9186e5bfd61225dadd6632bf727c79f1611653031c27de9 -test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql e7faadfde4c2da17c06cb2cbe9d8c7dee6b2641eca0cd13374f8ad5ed6f33e14 a96d1b1e169f296b2a9ea959fcde417521e04391e58372ed04bd717928548a02 -test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql 287245a6c6770c1d3a780baf6d93ff7a012720095a770f2699a344032a2fa146 d3ad9559c06fd3c22c50ecdb92118a94860ce4d872eb7ce53c47b3053e47e716 -test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql 6da5d7afa12c5de2a9e012aa2867d97c563945ebc2cc05961934070486b4c70b 546b7cbe145302b90cc3377c81be06d47248e7fe4e64af2ac455ffee8033aba4 -test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql d779d040e0d7aa77a2445c0217c5e5057b42b18b431fb2a785c0f0248ed98baf 281be139df50e84a8d390e0fd80a7d6e2ac07855f488288511b4ebe2d6ab187e -test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql 7df55f86cd90358245ba360160e41ab990f530ec2717a0b99438f248d879e289 f1ef8e30efe60d0ed7c312a83a789f1dd113e201bc5caff339daed1317500667 -test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql 5b6a5916ad1a04f23fb79923f4df5543c55cf187d7d6e1cc7161cad717d3ff15 27eede6ded0c4d446f63c10c232afff9d5241014bba5c9a6e6c52c25231f3c13 +test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql 93280609dc6ed32a2a4bf841f5634be468b0cfbd292e350cd1da4551fce600f5 990ccf7781a13c132bde62ae78a5e988f65c56a882d73a7d4f1869b623c86d9b +test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql 776687b32f3817d41457b3c59ca06fba6566409b8746e91e03d2c06a53bc0879 5625c682730bae276505221411c49515f3dd9918af61b4c61439e25afbef781c +test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql 689815400a7f3c6b3cd9992fad5a66b7354ee6c3d0371e0f388ca8ff9f9d791f a0aa7adb9050bf6ecfb99d4737e57ee7e26745204c2767094757af7ca831979f test/extractor-tests/generated/stmt/ThrowStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/WhileStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/YieldStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1295,58 +1181,42 @@ test/extractor-tests/generated/type/ArraySliceType/MISSING_SOURCE.txt 35fb32ea53 test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 5838694bf4d035aa764e25c9bd768f63ddea7b9b1cbd0386401c24f33b7fab17 cdeedab8f8b4e28a98ee6d2775e77cf359df541827d1ea592c46ed43ec76cdb6 -test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql 4f32fdf145ee62a4bb9e29175356b7f9f47bceceb7ee20a4fc93445d99f33117 a1454fa426f528d5ed8d98a84454d1e8118a4f1bb745d4ad4fffa69e5c798180 -test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql 0c50885643a7b460bd7da1610f404a983085f8022adc4dc02c337f84a06385fc 2f6e9d85c2a8d7f0d3f248619a9025c33f907028e132f8b67056719a3808f771 +test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 73bc348dc4be941cd417da61d8f2043c04390e4435eccf7afc851a477829b110 4d8276ce10df5ee74a65d436261de4d2397404a65058320bfa4cad2de6c56d15 +test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql 83a861b3ad63bed272f892031adc5bc651ed244cfcd53fc3090a2cea3f9d6a8d 197689774e28406b4bd798059fc57078695b43ca0833a7a4ef9dabd519e62d0d test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/DependentMemberType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/DictionaryType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql 3214d8a7fcc076c880988b3ab2079ad0d77834e7dedcb063c6640b2d92ad2a41 3306c659f68b132941b5d013b2414122f81bfff6c7cbbabf6fce4328df38a9f9 +test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql 62da270e23b080f8ceb9ec5c130f84ccd779c43cf30c88db526ef061269c5ce9 390cb48fd7873210f5f5b4e8f275347348336a1e8161c72d3fafa5f7fee90f93 test/extractor-tests/generated/type/EnumType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/ExistentialMetatypeType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql 5f5c1e44519519eca7bb8bee28e58d79317c1b972549bbbdc135da11cba9a62f 3cc92fa9fb139485aa53e5c13b411360ba3cd1185ca497d84251e5b9212db676 +test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql 7e09bbea166a4f269ecef1113229e98dfd7ea68ea5d4025af492fcce48698420 a4d00ff4100138020af51e8264d1d243156e52ab417bb150d33e9e1cc8cb0a69 test/extractor-tests/generated/type/FunctionType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/GenericFunctionType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/GenericTypeParamType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/InOutType/InOutType.ql a3591003defc284ba9c1c8492ccea5f46ff1de2d86a2240da3a501598d236f8e 4915db95b101c199dcf194e8b974a3c7c94f8ac1d4d9dbf6144822beb4ec0b66 -test/extractor-tests/generated/type/IntegerType/IntegerType.ql 7c911b67a801d8a4f0fe695c66318f6a08278b632adacb58bb10578474a43d49 9590080054ad1280eecb97d2f5265de8c2d2eeca03af24654cac5e2818240e85 +test/extractor-tests/generated/type/InOutType/InOutType.ql 611aea3776fbcd3763d798b58eba36522db9d4f8ae95dad133562abc6b9d0a9c 184e35f8ef3aa77b52d7d6dbd784fe4749793c50f0484195bd91f49bc2838509 +test/extractor-tests/generated/type/IntegerType/IntegerType.ql 6f18b3b5b4c53ca5d5302a78b04fea929bce478fa5c342f01951379a405b4c8a 486c1ceef03d02b064381ba514ad19eeca250c83ce54354a08c3a7c94bd4fd11 test/extractor-tests/generated/type/LValueType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/MetatypeType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/ModuleType/ModuleType.ql a65f7a166068b3bc622864b4b7464a25e41cd8a02f2bdce214ae59475acb9893 89a165e1c0f5b1de549d6c73e893cbc520832d534f801ba5d9144ac2ae3a9b8a -test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql be3663ab96b8c566ca07b72a40c08822dda7feaac65f9e0a27fee0b139dcac22 d031a8f27d4a57248c3b9edbbbbc9bbfeac8bd4507406ad3c21fa2bb241e7a8c -test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql e14e32f950cc38b2b47210d44391c619ae14ed9a836a9a9882e26e6981b32926 b0f4988b72f2146ddb71d28227aa3f67fd6c6de1f754c4d95d4847a1b5fb7ef2 -test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql 4a7b5fd2a764d8fa50b9408e055d34160064dfaeb90fa64b1854fda1f39e3385 0d70b14dab911499c2275476355332f1b5048150016e978c2835cb9f7a8244f9 -test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql 8f3ccc86bac852ec6d6a4e9522aa07ca66ff410b586b8275e35b7c0745726f05 8b3224c86f29b22a927f4c2ea90b120732eff7bac6c96d431bcc0cd3bcd7c1a4 -test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql f3da83a9a32d0945ade1015103eb911a6d8a5420980fb3c2ee9b6884ab4d0be4 8d5025b9432df8b0b3d3a27f9228befbbb95f550528c4e4219ca4e6d942e1e4b -test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql f64968fc58d977e5c867010fdda3fa40162a2203f65067082b2d6608e3a31af8 f5ef6bb98c1f7a280fe5b84f19884dff3a8d073a410b81905307a8f41e757761 +test/extractor-tests/generated/type/ModuleType/ModuleType.ql 7d78142dc82b06e454b9875a47890d5c2364e51f6e496640d6c4d20327f535b7 cecd45f6a4b0f137cdd7e694259044016ab01da6a42e73c3a361b4d00b594133 +test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql 84e8d21e87bbac3057df2b87623681e7d18b191d58310e90bb9b5bc380d892fb b808ee970c1cda6a48b8b5f0987179b3f08c260ac2184ea7d286eebcf0c17257 +test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql 51f3a697bb924c7569ed4d3eaa66d8006aa627dc61c06a368aea693506f60f4d 617eff2e028ca1fc3d219d4518379f38ec347c3c14ef620a5e7ccbfb4af13db5 test/extractor-tests/generated/type/OptionalType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql 961338f1919320b6ba8f597f7c92b715a56a411b03fd6911a008f9d842a01298 cce7edb034f5257c7df3bc193dc972a5d95be55c51a1e76143566dc8bf003323 -test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql 5f86e39a8332e5f5cefc38498cb5cc88a226e48921ade2f1541aa9b0ed58f1cb 7f46a7c01a47a7386363960dd865c564927898327ff3677d1239be1e051b4728 -test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql 1ff8e6414c03eb1c2a989febcf470b659d93b99d82df3dd8da52e300ae9f6a1f f4bed98c9e1c379eb013a44486bba66d523bae22ce2001afcbeae4b7dda96e29 -test/extractor-tests/generated/type/PackType/PackArchetypeType.ql b518d42787b5bdc1cdfd902c2823cc900c288f238403dd9592c102c7f59929fd ea53016b56c25734f4ef88c907183b438becfd000f181ea1f22545e200f9e175 -test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql 624112c36fb26ccb9954b30ca843c8a626e263ccf5823a6d7deb24393fa9b452 dfd5f27860addc7d9385f36b50dfa72790f212eec6a40de0a9cb81a0327cdcb3 -test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql 9afe056468a5042cf36437dd96badeeeef0019e06ed562d75349ae142ce4fe12 c8f8fbe02636bb8397d6b8f69eff540a386e8bbc977cabcaeaa0aaa90148526c -test/extractor-tests/generated/type/PackType/PackElementType.ql a26d73996f04ddb5c4e8f89c5e5587cafb0c147669f9bd77e66971f89f708c89 ba9c89e450666411b6ff3c09916de794099676f935706adb9c216c8b79f643df -test/extractor-tests/generated/type/PackType/PackExpansionType.ql 6f0c75a1edcb627b7589a68767da5146d09fdc428ebb80a6ab81704035f19a11 71580fbfc27f2e8b1b94c687692b29e1199a61b06eeec2a264a3e702ff637f29 -test/extractor-tests/generated/type/PackType/PackType.ql cc1d69305a72720566ee10d55e0248c99f7b78ade0334905c4efa20f940df451 94b3dafd5fc037fd2ee5433c4d731f9fe9c0e1d6220298949fa45735647ac01c -test/extractor-tests/generated/type/PackType/PackType_getElement.ql ab01262c3c6b8d29c89d83463b0c9d58640d9fbfa705dfeadb458380a7f17d50 290458051bb49dda441c3f8f0c397c874c4022ffcb58b5a803f138b0f17fe2bf -test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql 74b52173c4d39d74497d8e2d3d3dbbae8a1e84190642af2ab786464e804bbfa7 9a6a77b65c345430c768c660ae66755671d034f73c96a88b2935fed66d96b592 -test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql d51d20195b1ad8d31a3b2d165b81b90883d9e55a96b1b421419814964bb05519 f354fe8f23507e094a2d8ec75cb9d3ab6426c009bac02b7a96dae6970b0377db +test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql 69cedea6ad2fb2d8dab357f5c6442e59fd2c329548c3d414431b3ccbd8ccbab5 675c1bbde4e5652626cd8d11bf1f3890f2921c99ebca74a6146a3fd43cffcf4e +test/extractor-tests/generated/type/PackType/PackArchetypeType.ql 7abbf651e726374b2b5a74533b8adf7e48ba3b04306ab65a65fbba974eade7bf 44fdada7fa7f5a20e4238c391fd0572866247c1580a675795832b35699a3e105 +test/extractor-tests/generated/type/PackType/PackElementType.ql 8f78e329812bb16d0ab644944c3dffba9701dffcd980018accf22c4540828315 adf4b155e1d5ba0c54177b9a296e0e5d06d2566dafcb43d60403fcf94a009009 +test/extractor-tests/generated/type/PackType/PackExpansionType.ql 4ae76353b2312ca356a11191b3b8c235fc5a394b91c9a1de48da1fbc9986f14c c676192e609e434c1c617d9c32752f39d2aa7119a9c00bd092f30734099c89dc +test/extractor-tests/generated/type/PackType/PackType.ql c90ac94fe7a04c68c6be69efae60db4222b04cdccc66c621018a29e3440c9dce 9ffa5b1a5c5861c7a41304cb966dcd4c51e696e959f173a55bab10863866d3db +test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql 4f21c14b26c5caa56ecf1e920a4a28a44c39a7fc450a21379c214ba69457f6cd 0c2d519cdf6772ff03fb93eab88faefdc5988ea92601301c9949cfde4d476a93 test/extractor-tests/generated/type/ParenType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql aa737251785d2467ed77f4a6710ff81a1affcc93fb974faf28244ab2b70cfc0d e6622799754179ba47e0a278f914980c3c7f51529cff97eb93e2759675e957ec -test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql 96af09aefc45241d7d732cee7cfa91ff814f83a40544ec0835e2ecdbd05dcff6 45f06c1395f5f17430b7bed1d2c8f43c7380b027e41b4fe5046a8f3aa37e7dc6 -test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql a3877509c52ef4c9212bb4e266be6cc4945cde0fe99319a61a871661eeafbadc a476de7749334b20d2547971d8646662e125c3d0435bbbb8001fa4e88635e373 -test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql 91a151f8ffa2050bc9434cd02929c3ddadad589e85e102d1904cd41417bbdd8b c68994e8101b9392a704de138780152c30f91882bec9587b6a6359e7a37116f9 -test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql 08856a749fa3bebb09364b47d63d1524672572e1c26c525879af24d34920a68f 7764540b5fd98a6540045c6fa91027ff9344f603d77251c2d803afb966bdab2a +test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql 4091dea43f9581727efe73cdfb0020dd7e9142161c0e1e024da972fa215cac43 84f422c35ef2552fcbf93e641ee161b57314260276c8f5b9a69d61db002db549 +test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql 7464ecd9faf7fa1a2d1c73db8a9d0de83410f840cf35990fe173ef76c66f8d8a 20359be7f01a0d870331c96961d9cf05a6e51d4af6096657a31dad5a0936d1a5 test/extractor-tests/generated/type/ProtocolType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/StructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/TupleType/TupleType.ql 265690da7f0733ca88d20efbcf07c0c452f4d44b49488f624f2673670cac56c6 2da4185f0a870c38297b58a61b295531a140b50db9be31a0c298df7921adb3ba -test/extractor-tests/generated/type/TupleType/TupleType_getName.ql 79dfaf4d6aa52572f4b43e89079876249949b1b335168cb30b6c6f6db00423ac 17a35226afc2392bd4c69eaf9cf896e0556d28a2d9086c33b5686985959798bf -test/extractor-tests/generated/type/TupleType/TupleType_getType.ql a402d5c07829ccfde5521fb5b8c5d6846126e2bc8ae0a0254a8353babdc2f2e5 ccdcf490e4ec3c2fcd3c7b1b9ffddcd0b85229b25db8ab5c1802866c8e3e03af +test/extractor-tests/generated/type/TupleType/TupleType.ql 566acfb4e12c09dc8cee7ac89244cb9b6209820cba633d4ef42e958bbec01882 974e270501e10e82d94653c181dc7bfd06d2b9903440ba1d7d44ec61f8b974d2 test/extractor-tests/generated/type/TypeAliasType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/TypeRepr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/UnboundGenericType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql 841cc663df467772d7af7fdfe88dbc4f588e4f6781ce1f3cb2d4f3f75444bd95 4a64c07f3bf06792e052b154b5a0a6fb62575562935603ad63ca6d81de5dd04f -test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql 6369df2814fffb6f83135bfaa610d9dfec106459470b552e8d875d74d2fae8dd 56fba1c55bd6d1f149a5a92d98b3dded158898dcdcfdd617e7537a435508a6eb -test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql d52a0248c8f0a0cfb2ff01d470d66d11a38fcd6a12314d8e6eb752e6aa1f9b1c ceb3cb90ca6f5e5b4724890ede6179675d3ec5d834b7067a80c99e7951ef3d3f -test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql 2b37d5fa22a78747c9ec3f924e9992f7083d3e8a3372a0c9aeed6211f47930cd d20ba54dada2388064f060967bd8577605baa30d19bb696339b7449a14fc1dbd +test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql c66172a8fd9c0e9efea6db0d05beee176b02cc65d838c95f2b4f995dfdd89035 57b1e46011eaaa91472d6c58f15587eadd44341ddf8d500a0886ebe6962fa431 +test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql 678e0cb7fdb9ddf6cdde9a68b6f6b8e3ff915681e1a5caeb49b3f1da5dfa9edd 49e2214c32edcfdd7a867a6a490dc37de654b1cc61ca0a39270bd71daaafc2c0 +test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql b10c35a7500d8e5847a55fd076b0a6bfb3b6ef8b53a13a706dc5c9925727d7fc f288b3bfc5c64fcb14d2fd92f88b1abd406786c78bd22980128301599ed1937c +test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql a5d4d46ed3162dda95fae4ba8b21150370329a3454c7854a5340f9b948e1f6ac 429a7f9a9eb69b5e6e87a5d666f0ab974380bd2bd9c79f7a4654850aa9006161 diff --git a/swift/ql/.gitattributes b/swift/ql/.gitattributes index 761b2efeb7c..068b4274967 100644 --- a/swift/ql/.gitattributes +++ b/swift/ql/.gitattributes @@ -1035,110 +1035,36 @@ /lib/codeql/swift/generated/type/VariadicSequenceType.qll linguist-generated /lib/codeql/swift/generated/type/WeakStorageType.qll linguist-generated /test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql linguist-generated -/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql linguist-generated /test/extractor-tests/generated/Comment/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/Diagnostics/Diagnostics.ql linguist-generated /test/extractor-tests/generated/File/File.ql linguist-generated /test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql linguist-generated -/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql linguist-generated -/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql linguist-generated -/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql linguist-generated /test/extractor-tests/generated/OtherAvailabilitySpec/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/PlatformVersionAvailabilitySpec/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/Accessor/Accessor.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql linguist-generated -/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql linguist-generated /test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql linguist-generated -/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql linguist-generated -/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql linguist-generated -/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql linguist-generated -/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql linguist-generated -/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql linguist-generated /test/extractor-tests/generated/decl/Deinitializer/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql linguist-generated /test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql linguist-generated /test/extractor-tests/generated/decl/GenericTypeParamDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql linguist-generated -/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql linguist-generated -/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql linguist-generated -/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql linguist-generated -/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/InfixOperatorDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/Initializer/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql linguist-generated /test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql linguist-generated -/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql linguist-generated /test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql linguist-generated -/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql linguist-generated -/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql linguist-generated -/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql linguist-generated -/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql linguist-generated /test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql linguist-generated -/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql linguist-generated -/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql linguist-generated -/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql linguist-generated /test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql linguist-generated -/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql linguist-generated /test/extractor-tests/generated/decl/PatternBindingDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/PostfixOperatorDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql linguist-generated -/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql linguist-generated /test/extractor-tests/generated/decl/PrecedenceGroupDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/PrefixOperatorDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/ProtocolDecl/MISSING_SOURCE.txt linguist-generated @@ -1147,7 +1073,6 @@ /test/extractor-tests/generated/decl/TopLevelCodeDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/decl/TypeAliasDecl/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql linguist-generated -/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/Argument/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ArrayExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/AssignExpr/MISSING_SOURCE.txt linguist-generated @@ -1160,83 +1085,55 @@ /test/extractor-tests/generated/expr/CoerceExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ConditionalCheckedCastExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql linguist-generated -/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql linguist-generated -/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/DeclRefExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/DefaultArgumentExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/DictionaryExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/DiscardAssignmentExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/DotSyntaxBaseIgnoredExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql linguist-generated -/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql linguist-generated -/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql linguist-generated -/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql linguist-generated -/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/DynamicTypeExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql linguist-generated -/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/ExplicitClosureExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql linguist-generated -/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/FloatLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ForceTryExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ForceValueExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ForcedCheckedCastExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql linguist-generated -/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/IfExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql linguist-generated -/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/InOutExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql linguist-generated -/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql linguist-generated -/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/IntegerLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/InterpolatedStringLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/IsExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/KeyPathApplicationExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/KeyPathDotExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql linguist-generated -/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql linguist-generated -/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql linguist-generated -/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/LazyInitializationExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/MagicIdentifierLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/MakeTemporarilyEscapableExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/MemberRefExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql linguist-generated -/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql linguist-generated -/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/NilLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql linguist-generated -/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql linguist-generated -/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/OneWayExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/OpaqueValueExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql linguist-generated -/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/OptionalEvaluationExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/OptionalTryExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/OtherInitializerRefExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql linguist-generated -/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql linguist-generated -/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql linguist-generated -/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql linguist-generated -/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql linguist-generated -/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/PrefixUnaryExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql linguist-generated -/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql linguist-generated -/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql linguist-generated /test/extractor-tests/generated/expr/RebindSelfInInitializerExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/RegexLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql linguist-generated -/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql linguist-generated /test/extractor-tests/generated/expr/StringLiteralExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/SubscriptExpr/MISSING_SOURCE.txt linguist-generated @@ -1247,7 +1144,6 @@ /test/extractor-tests/generated/expr/TupleExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/TypeExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql linguist-generated -/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql linguist-generated /test/extractor-tests/generated/expr/VarargExpansionExpr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/pattern/AnyPattern/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/pattern/BindingPattern/MISSING_SOURCE.txt linguist-generated @@ -1271,11 +1167,6 @@ /test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql linguist-generated /test/extractor-tests/generated/stmt/FallthroughStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql linguist-generated -/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql linguist-generated -/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql linguist-generated -/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql linguist-generated -/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql linguist-generated -/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql linguist-generated /test/extractor-tests/generated/stmt/GuardStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/IfStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql linguist-generated @@ -1283,13 +1174,8 @@ /test/extractor-tests/generated/stmt/ReturnStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/StmtCondition/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql linguist-generated -/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql linguist-generated /test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql linguist-generated -/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql linguist-generated -/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql linguist-generated /test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql linguist-generated -/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql linguist-generated -/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql linguist-generated /test/extractor-tests/generated/stmt/ThrowStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/WhileStmt/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/stmt/YieldStmt/MISSING_SOURCE.txt linguist-generated @@ -1298,7 +1184,6 @@ /test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql linguist-generated -/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql linguist-generated /test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql linguist-generated /test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/DependentMemberType/MISSING_SOURCE.txt linguist-generated @@ -1316,35 +1201,20 @@ /test/extractor-tests/generated/type/MetatypeType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/ModuleType/ModuleType.ql linguist-generated /test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql linguist-generated -/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql linguist-generated -/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql linguist-generated /test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql linguist-generated -/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql linguist-generated -/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql linguist-generated /test/extractor-tests/generated/type/OptionalType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql linguist-generated -/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql linguist-generated -/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql linguist-generated /test/extractor-tests/generated/type/PackType/PackArchetypeType.ql linguist-generated -/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql linguist-generated -/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql linguist-generated /test/extractor-tests/generated/type/PackType/PackElementType.ql linguist-generated /test/extractor-tests/generated/type/PackType/PackExpansionType.ql linguist-generated /test/extractor-tests/generated/type/PackType/PackType.ql linguist-generated -/test/extractor-tests/generated/type/PackType/PackType_getElement.ql linguist-generated /test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql linguist-generated -/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql linguist-generated /test/extractor-tests/generated/type/ParenType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql linguist-generated -/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql linguist-generated -/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql linguist-generated /test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql linguist-generated -/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql linguist-generated /test/extractor-tests/generated/type/ProtocolType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/StructType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/TupleType/TupleType.ql linguist-generated -/test/extractor-tests/generated/type/TupleType/TupleType_getName.ql linguist-generated -/test/extractor-tests/generated/type/TupleType/TupleType_getType.ql linguist-generated /test/extractor-tests/generated/type/TypeAliasType/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/TypeRepr/MISSING_SOURCE.txt linguist-generated /test/extractor-tests/generated/type/UnboundGenericType/MISSING_SOURCE.txt linguist-generated diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected index 9f56de5ccdb..aaa2782bdea 100644 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected +++ b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected @@ -1,2 +1,9 @@ +instances | test.swift:1:4:1:27 | #available | isUnavailable: | no | getNumberOfSpecs: | 2 | | test.swift:5:4:5:45 | #unavailable | isUnavailable: | yes | getNumberOfSpecs: | 3 | +getSpec +| test.swift:1:4:1:27 | #available | 0 | test.swift:1:15:1:21 | macOS 142 | +| test.swift:1:4:1:27 | #available | 1 | test.swift:1:26:1:26 | * | +| test.swift:5:4:5:45 | #unavailable | 0 | test.swift:5:17:5:21 | iOS 10 | +| test.swift:5:4:5:45 | #unavailable | 1 | test.swift:5:25:5:33 | watchOS 10 | +| test.swift:5:4:5:45 | #unavailable | 2 | test.swift:5:37:5:43 | macOS 10 | diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql index ae10b4bb767..5bc4b6072a8 100644 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql +++ b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from AvailabilityInfo x, string isUnavailable, int getNumberOfSpecs -where +query predicate instances( + AvailabilityInfo x, string isUnavailable__label, string isUnavailable, + string getNumberOfSpecs__label, int getNumberOfSpecs +) { toBeTested(x) and not x.isUnknown() and + isUnavailable__label = "isUnavailable:" and (if x.isUnavailable() then isUnavailable = "yes" else isUnavailable = "no") and + getNumberOfSpecs__label = "getNumberOfSpecs:" and getNumberOfSpecs = x.getNumberOfSpecs() -select x, "isUnavailable:", isUnavailable, "getNumberOfSpecs:", getNumberOfSpecs +} + +query predicate getSpec(AvailabilityInfo x, int index, AvailabilitySpec getSpec) { + toBeTested(x) and not x.isUnknown() and getSpec = x.getSpec(index) +} diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.expected b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.expected deleted file mode 100644 index 83e9450d76b..00000000000 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.expected +++ /dev/null @@ -1,5 +0,0 @@ -| test.swift:1:4:1:27 | #available | 0 | test.swift:1:15:1:21 | macOS 142 | -| test.swift:1:4:1:27 | #available | 1 | test.swift:1:26:1:26 | * | -| test.swift:5:4:5:45 | #unavailable | 0 | test.swift:5:17:5:21 | iOS 10 | -| test.swift:5:4:5:45 | #unavailable | 1 | test.swift:5:25:5:33 | watchOS 10 | -| test.swift:5:4:5:45 | #unavailable | 2 | test.swift:5:37:5:43 | macOS 10 | diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql deleted file mode 100644 index 418f5251eff..00000000000 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo_getSpec.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from AvailabilityInfo x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getSpec(index) diff --git a/swift/ql/test/extractor-tests/generated/Diagnostics/Diagnostics.ql b/swift/ql/test/extractor-tests/generated/Diagnostics/Diagnostics.ql index 18e302cfaa6..ef370f93d92 100644 --- a/swift/ql/test/extractor-tests/generated/Diagnostics/Diagnostics.ql +++ b/swift/ql/test/extractor-tests/generated/Diagnostics/Diagnostics.ql @@ -2,10 +2,13 @@ import codeql.swift.elements import TestUtils -from Diagnostics x, string getText, int getKind -where +query predicate instances( + Diagnostics x, string getText__label, string getText, string getKind__label, int getKind +) { toBeTested(x) and not x.isUnknown() and + getText__label = "getText:" and getText = x.getText() and + getKind__label = "getKind:" and getKind = x.getKind() -select x, "getText:", getText, "getKind:", getKind +} diff --git a/swift/ql/test/extractor-tests/generated/File/File.ql b/swift/ql/test/extractor-tests/generated/File/File.ql index 3614bcc5073..75690caf90f 100644 --- a/swift/ql/test/extractor-tests/generated/File/File.ql +++ b/swift/ql/test/extractor-tests/generated/File/File.ql @@ -2,13 +2,17 @@ import codeql.swift.elements import TestUtils -from File x, string getName, string isSuccessfullyExtracted -where +query predicate instances( + File x, string primaryQlClasses, string getName__label, string getName, + string isSuccessfullyExtracted__label, string isSuccessfullyExtracted +) { toBeTested(x) and not x.isUnknown() and + primaryQlClasses = x.getPrimaryQlClasses() and + getName__label = "getName:" and getName = x.getName() and + isSuccessfullyExtracted__label = "isSuccessfullyExtracted:" and if x.isSuccessfullyExtracted() then isSuccessfullyExtracted = "yes" else isSuccessfullyExtracted = "no" -select x, x.getPrimaryQlClasses(), "getName:", getName, "isSuccessfullyExtracted:", - isSuccessfullyExtracted +} diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected index 90bfc4f4f2a..edffa1037b7 100644 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected +++ b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected @@ -1,3 +1,4 @@ +instances | file://:0:0:0:0 | KeyPathComponent | getKind: | 7 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int? | | key_path_expr.swift:11:17:11:17 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | | key_path_expr.swift:12:24:12:26 | KeyPathComponent | getKind: | 4 | getNumberOfSubscriptArguments: | 1 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | @@ -12,3 +13,16 @@ | key_path_expr.swift:16:30:16:30 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | | key_path_expr.swift:17:16:17:16 | KeyPathComponent | getKind: | 8 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int | | key_path_expr.swift:18:32:18:32 | KeyPathComponent | getKind: | 9 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | yes | hasDeclRef: | no | getComponentType: | Int | +getSubscriptArgument +| key_path_expr.swift:12:24:12:26 | KeyPathComponent | 0 | key_path_expr.swift:12:25:12:25 | : 0 | +| key_path_expr.swift:13:34:13:38 | KeyPathComponent | 0 | key_path_expr.swift:13:35:13:35 | : a | +getTupleIndex +| key_path_expr.swift:18:32:18:32 | KeyPathComponent | 0 | +getDeclRef +| key_path_expr.swift:11:17:11:17 | KeyPathComponent | key_path_expr.swift:7:9:7:9 | value | +| key_path_expr.swift:12:24:12:26 | KeyPathComponent | file://:0:0:0:0 | subscript ... | +| key_path_expr.swift:13:34:13:38 | KeyPathComponent | file://:0:0:0:0 | subscript ... | +| key_path_expr.swift:15:21:15:21 | KeyPathComponent | key_path_expr.swift:8:9:8:9 | opt | +| key_path_expr.swift:15:26:15:26 | KeyPathComponent | key_path_expr.swift:3:9:3:9 | opt | +| key_path_expr.swift:16:25:16:25 | KeyPathComponent | key_path_expr.swift:8:9:8:9 | opt | +| key_path_expr.swift:16:30:16:30 | KeyPathComponent | key_path_expr.swift:2:9:2:9 | value | diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql index 06d9851feb6..aaad6bfa8d6 100644 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql +++ b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql @@ -2,16 +2,34 @@ import codeql.swift.elements import TestUtils -from - KeyPathComponent x, int getKind, int getNumberOfSubscriptArguments, string hasTupleIndex, - string hasDeclRef, Type getComponentType -where +query predicate instances( + KeyPathComponent x, string getKind__label, int getKind, + string getNumberOfSubscriptArguments__label, int getNumberOfSubscriptArguments, + string hasTupleIndex__label, string hasTupleIndex, string hasDeclRef__label, string hasDeclRef, + string getComponentType__label, Type getComponentType +) { toBeTested(x) and not x.isUnknown() and + getKind__label = "getKind:" and getKind = x.getKind() and + getNumberOfSubscriptArguments__label = "getNumberOfSubscriptArguments:" and getNumberOfSubscriptArguments = x.getNumberOfSubscriptArguments() and + hasTupleIndex__label = "hasTupleIndex:" and (if x.hasTupleIndex() then hasTupleIndex = "yes" else hasTupleIndex = "no") and + hasDeclRef__label = "hasDeclRef:" and (if x.hasDeclRef() then hasDeclRef = "yes" else hasDeclRef = "no") and + getComponentType__label = "getComponentType:" and getComponentType = x.getComponentType() -select x, "getKind:", getKind, "getNumberOfSubscriptArguments:", getNumberOfSubscriptArguments, - "hasTupleIndex:", hasTupleIndex, "hasDeclRef:", hasDeclRef, "getComponentType:", getComponentType +} + +query predicate getSubscriptArgument(KeyPathComponent x, int index, Argument getSubscriptArgument) { + toBeTested(x) and not x.isUnknown() and getSubscriptArgument = x.getSubscriptArgument(index) +} + +query predicate getTupleIndex(KeyPathComponent x, int getTupleIndex) { + toBeTested(x) and not x.isUnknown() and getTupleIndex = x.getTupleIndex() +} + +query predicate getDeclRef(KeyPathComponent x, ValueDecl getDeclRef) { + toBeTested(x) and not x.isUnknown() and getDeclRef = x.getDeclRef() +} diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.expected b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.expected deleted file mode 100644 index 74dc644cb80..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.expected +++ /dev/null @@ -1,7 +0,0 @@ -| key_path_expr.swift:11:17:11:17 | KeyPathComponent | key_path_expr.swift:7:9:7:9 | value | -| key_path_expr.swift:12:24:12:26 | KeyPathComponent | file://:0:0:0:0 | subscript ... | -| key_path_expr.swift:13:34:13:38 | KeyPathComponent | file://:0:0:0:0 | subscript ... | -| key_path_expr.swift:15:21:15:21 | KeyPathComponent | key_path_expr.swift:8:9:8:9 | opt | -| key_path_expr.swift:15:26:15:26 | KeyPathComponent | key_path_expr.swift:3:9:3:9 | opt | -| key_path_expr.swift:16:25:16:25 | KeyPathComponent | key_path_expr.swift:8:9:8:9 | opt | -| key_path_expr.swift:16:30:16:30 | KeyPathComponent | key_path_expr.swift:2:9:2:9 | value | diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql deleted file mode 100644 index 74174fd4bd2..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getDeclRef.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathComponent x -where toBeTested(x) and not x.isUnknown() -select x, x.getDeclRef() diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.expected b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.expected deleted file mode 100644 index c86fff6a006..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.expected +++ /dev/null @@ -1,2 +0,0 @@ -| key_path_expr.swift:12:24:12:26 | KeyPathComponent | 0 | key_path_expr.swift:12:25:12:25 | : 0 | -| key_path_expr.swift:13:34:13:38 | KeyPathComponent | 0 | key_path_expr.swift:13:35:13:35 | : a | diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql deleted file mode 100644 index 30b149e8204..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getSubscriptArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathComponent x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getSubscriptArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.expected b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.expected deleted file mode 100644 index d4563136606..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.expected +++ /dev/null @@ -1 +0,0 @@ -| key_path_expr.swift:18:32:18:32 | KeyPathComponent | 0 | diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql deleted file mode 100644 index 40e2e8924a8..00000000000 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent_getTupleIndex.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathComponent x -where toBeTested(x) and not x.isUnknown() -select x, x.getTupleIndex() diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected index 15b05916e44..853e0647575 100644 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected +++ b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected @@ -1,3 +1,4 @@ +instances | accessors.swift:2:9:2:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | | accessors.swift:2:9:2:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | | accessors.swift:2:9:2:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | @@ -34,3 +35,131 @@ | accessors.swift:38:9:38:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | | accessors.swift:39:9:41:9 | unsafeAddress | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> UnsafePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | yes | isUnsafeMutableAddress: | no | | accessors.swift:42:9:44:9 | unsafeMutableAddress | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> UnsafeMutablePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | yes | +getName +| accessors.swift:2:9:2:9 | _modify | (unnamed function decl) | +| accessors.swift:2:9:2:9 | get | (unnamed function decl) | +| accessors.swift:2:9:2:9 | set | (unnamed function decl) | +| accessors.swift:3:9:3:9 | _modify | (unnamed function decl) | +| accessors.swift:4:9:4:28 | get | (unnamed function decl) | +| accessors.swift:5:9:5:42 | set | (unnamed function decl) | +| accessors.swift:7:9:7:9 | _modify | (unnamed function decl) | +| accessors.swift:7:9:7:9 | get | (unnamed function decl) | +| accessors.swift:7:9:7:9 | set | (unnamed function decl) | +| accessors.swift:8:9:8:29 | willSet | (unnamed function decl) | +| accessors.swift:11:9:11:9 | _modify | (unnamed function decl) | +| accessors.swift:11:9:11:9 | get | (unnamed function decl) | +| accessors.swift:11:9:11:9 | set | (unnamed function decl) | +| accessors.swift:12:9:12:19 | willSet | (unnamed function decl) | +| accessors.swift:15:9:15:9 | _modify | (unnamed function decl) | +| accessors.swift:15:9:15:9 | get | (unnamed function decl) | +| accessors.swift:15:9:15:9 | set | (unnamed function decl) | +| accessors.swift:16:9:16:28 | didSet | (unnamed function decl) | +| accessors.swift:19:9:19:9 | _modify | (unnamed function decl) | +| accessors.swift:19:9:19:9 | get | (unnamed function decl) | +| accessors.swift:19:9:19:9 | set | (unnamed function decl) | +| accessors.swift:20:9:20:18 | didSet | (unnamed function decl) | +| accessors.swift:23:9:23:9 | _modify | (unnamed function decl) | +| accessors.swift:23:9:23:9 | get | (unnamed function decl) | +| accessors.swift:23:9:23:9 | set | (unnamed function decl) | +| accessors.swift:24:9:24:19 | willSet | (unnamed function decl) | +| accessors.swift:26:9:26:18 | didSet | (unnamed function decl) | +| accessors.swift:29:9:29:9 | get | (unnamed function decl) | +| accessors.swift:29:9:29:9 | set | (unnamed function decl) | +| accessors.swift:30:9:32:9 | _read | (unnamed function decl) | +| accessors.swift:33:9:35:9 | _modify | (unnamed function decl) | +| accessors.swift:38:9:38:9 | _modify | (unnamed function decl) | +| accessors.swift:38:9:38:9 | get | (unnamed function decl) | +| accessors.swift:38:9:38:9 | set | (unnamed function decl) | +| accessors.swift:39:9:41:9 | unsafeAddress | (unnamed function decl) | +| accessors.swift:42:9:44:9 | unsafeMutableAddress | (unnamed function decl) | +getSelfParam +| accessors.swift:2:9:2:9 | _modify | accessors.swift:2:9:2:9 | self | +| accessors.swift:2:9:2:9 | get | accessors.swift:2:9:2:9 | self | +| accessors.swift:2:9:2:9 | set | accessors.swift:2:9:2:9 | self | +| accessors.swift:3:9:3:9 | _modify | accessors.swift:3:9:3:9 | self | +| accessors.swift:4:9:4:28 | get | accessors.swift:4:9:4:9 | self | +| accessors.swift:5:9:5:42 | set | accessors.swift:5:9:5:9 | self | +| accessors.swift:7:9:7:9 | _modify | accessors.swift:7:9:7:9 | self | +| accessors.swift:7:9:7:9 | get | accessors.swift:7:9:7:9 | self | +| accessors.swift:7:9:7:9 | set | accessors.swift:7:9:7:9 | self | +| accessors.swift:8:9:8:29 | willSet | accessors.swift:8:9:8:9 | self | +| accessors.swift:11:9:11:9 | _modify | accessors.swift:11:9:11:9 | self | +| accessors.swift:11:9:11:9 | get | accessors.swift:11:9:11:9 | self | +| accessors.swift:11:9:11:9 | set | accessors.swift:11:9:11:9 | self | +| accessors.swift:12:9:12:19 | willSet | accessors.swift:12:9:12:9 | self | +| accessors.swift:15:9:15:9 | _modify | accessors.swift:15:9:15:9 | self | +| accessors.swift:15:9:15:9 | get | accessors.swift:15:9:15:9 | self | +| accessors.swift:15:9:15:9 | set | accessors.swift:15:9:15:9 | self | +| accessors.swift:16:9:16:28 | didSet | accessors.swift:16:9:16:9 | self | +| accessors.swift:19:9:19:9 | _modify | accessors.swift:19:9:19:9 | self | +| accessors.swift:19:9:19:9 | get | accessors.swift:19:9:19:9 | self | +| accessors.swift:19:9:19:9 | set | accessors.swift:19:9:19:9 | self | +| accessors.swift:20:9:20:18 | didSet | accessors.swift:20:9:20:9 | self | +| accessors.swift:23:9:23:9 | _modify | accessors.swift:23:9:23:9 | self | +| accessors.swift:23:9:23:9 | get | accessors.swift:23:9:23:9 | self | +| accessors.swift:23:9:23:9 | set | accessors.swift:23:9:23:9 | self | +| accessors.swift:24:9:24:19 | willSet | accessors.swift:24:9:24:9 | self | +| accessors.swift:26:9:26:18 | didSet | accessors.swift:26:9:26:9 | self | +| accessors.swift:29:9:29:9 | get | accessors.swift:29:9:29:9 | self | +| accessors.swift:29:9:29:9 | set | accessors.swift:29:9:29:9 | self | +| accessors.swift:30:9:32:9 | _read | accessors.swift:30:9:30:9 | self | +| accessors.swift:33:9:35:9 | _modify | accessors.swift:33:9:33:9 | self | +| accessors.swift:38:9:38:9 | _modify | accessors.swift:38:9:38:9 | self | +| accessors.swift:38:9:38:9 | get | accessors.swift:38:9:38:9 | self | +| accessors.swift:38:9:38:9 | set | accessors.swift:38:9:38:9 | self | +| accessors.swift:39:9:41:9 | unsafeAddress | accessors.swift:39:9:39:9 | self | +| accessors.swift:42:9:44:9 | unsafeMutableAddress | accessors.swift:42:9:42:9 | self | +getParam +| accessors.swift:2:9:2:9 | set | 0 | accessors.swift:2:9:2:9 | value | +| accessors.swift:5:9:5:42 | set | 0 | accessors.swift:5:13:5:13 | newValue | +| accessors.swift:7:9:7:9 | set | 0 | accessors.swift:7:9:7:9 | value | +| accessors.swift:8:9:8:29 | willSet | 0 | accessors.swift:8:17:8:17 | newValue | +| accessors.swift:11:9:11:9 | set | 0 | accessors.swift:11:9:11:9 | value | +| accessors.swift:12:9:12:19 | willSet | 0 | accessors.swift:12:9:12:9 | newValue | +| accessors.swift:15:9:15:9 | set | 0 | accessors.swift:15:9:15:9 | value | +| accessors.swift:16:9:16:28 | didSet | 0 | accessors.swift:16:16:16:16 | oldValue | +| accessors.swift:19:9:19:9 | set | 0 | accessors.swift:19:9:19:9 | value | +| accessors.swift:23:9:23:9 | set | 0 | accessors.swift:23:9:23:9 | value | +| accessors.swift:24:9:24:19 | willSet | 0 | accessors.swift:24:9:24:9 | newValue | +| accessors.swift:29:9:29:9 | set | 0 | accessors.swift:29:9:29:9 | value | +| accessors.swift:38:9:38:9 | set | 0 | accessors.swift:38:9:38:9 | value | +getBody +| accessors.swift:2:9:2:9 | _modify | accessors.swift:2:9:2:9 | { ... } | +| accessors.swift:2:9:2:9 | get | accessors.swift:2:9:2:9 | { ... } | +| accessors.swift:2:9:2:9 | set | accessors.swift:2:9:2:9 | { ... } | +| accessors.swift:3:9:3:9 | _modify | accessors.swift:3:9:3:9 | { ... } | +| accessors.swift:4:9:4:28 | get | accessors.swift:4:13:4:28 | { ... } | +| accessors.swift:5:9:5:42 | set | accessors.swift:5:23:5:42 | { ... } | +| accessors.swift:7:9:7:9 | _modify | accessors.swift:7:9:7:9 | { ... } | +| accessors.swift:7:9:7:9 | get | accessors.swift:7:9:7:9 | { ... } | +| accessors.swift:7:9:7:9 | set | accessors.swift:7:9:7:9 | { ... } | +| accessors.swift:8:9:8:29 | willSet | accessors.swift:8:27:8:29 | { ... } | +| accessors.swift:11:9:11:9 | _modify | accessors.swift:11:9:11:9 | { ... } | +| accessors.swift:11:9:11:9 | get | accessors.swift:11:9:11:9 | { ... } | +| accessors.swift:11:9:11:9 | set | accessors.swift:11:9:11:9 | { ... } | +| accessors.swift:12:9:12:19 | willSet | accessors.swift:12:17:12:19 | { ... } | +| accessors.swift:15:9:15:9 | _modify | accessors.swift:15:9:15:9 | { ... } | +| accessors.swift:15:9:15:9 | get | accessors.swift:15:9:15:9 | { ... } | +| accessors.swift:15:9:15:9 | set | accessors.swift:15:9:15:9 | { ... } | +| accessors.swift:16:9:16:28 | didSet | accessors.swift:16:26:16:28 | { ... } | +| accessors.swift:19:9:19:9 | _modify | accessors.swift:19:9:19:9 | { ... } | +| accessors.swift:19:9:19:9 | get | accessors.swift:19:9:19:9 | { ... } | +| accessors.swift:19:9:19:9 | set | accessors.swift:19:9:19:9 | { ... } | +| accessors.swift:20:9:20:18 | didSet | accessors.swift:20:16:20:18 | { ... } | +| accessors.swift:23:9:23:9 | _modify | accessors.swift:23:9:23:9 | { ... } | +| accessors.swift:23:9:23:9 | get | accessors.swift:23:9:23:9 | { ... } | +| accessors.swift:23:9:23:9 | set | accessors.swift:23:9:23:9 | { ... } | +| accessors.swift:24:9:24:19 | willSet | accessors.swift:24:17:24:19 | { ... } | +| accessors.swift:26:9:26:18 | didSet | accessors.swift:26:16:26:18 | { ... } | +| accessors.swift:29:9:29:9 | get | accessors.swift:29:9:29:9 | { ... } | +| accessors.swift:29:9:29:9 | set | accessors.swift:29:9:29:9 | { ... } | +| accessors.swift:30:9:32:9 | _read | accessors.swift:30:15:32:9 | { ... } | +| accessors.swift:33:9:35:9 | _modify | accessors.swift:33:17:35:9 | { ... } | +| accessors.swift:38:9:38:9 | _modify | accessors.swift:38:9:38:9 | { ... } | +| accessors.swift:38:9:38:9 | get | accessors.swift:38:9:38:9 | { ... } | +| accessors.swift:38:9:38:9 | set | accessors.swift:38:9:38:9 | { ... } | +| accessors.swift:39:9:41:9 | unsafeAddress | accessors.swift:39:23:41:9 | { ... } | +| accessors.swift:42:9:44:9 | unsafeMutableAddress | accessors.swift:42:30:44:9 | { ... } | +getCapture +getGenericTypeParam +getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql index f4e231c7671..177163b71c2 100644 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql +++ b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql @@ -2,38 +2,83 @@ import codeql.swift.elements import TestUtils -from - Accessor x, string hasName, string hasSelfParam, int getNumberOfParams, string hasBody, - int getNumberOfCaptures, int getNumberOfGenericTypeParams, ModuleDecl getModule, - int getNumberOfMembers, Type getInterfaceType, string isGetter, string isSetter, string isWillSet, - string isDidSet, string isRead, string isModify, string isUnsafeAddress, +query predicate instances( + Accessor x, string hasName__label, string hasName, string hasSelfParam__label, + string hasSelfParam, string getNumberOfParams__label, int getNumberOfParams, + string hasBody__label, string hasBody, string getNumberOfCaptures__label, int getNumberOfCaptures, + string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string isGetter__label, string isGetter, string isSetter__label, string isSetter, + string isWillSet__label, string isWillSet, string isDidSet__label, string isDidSet, + string isRead__label, string isRead, string isModify__label, string isModify, + string isUnsafeAddress__label, string isUnsafeAddress, string isUnsafeMutableAddress__label, string isUnsafeMutableAddress -where +) { toBeTested(x) and not x.isUnknown() and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasSelfParam__label = "hasSelfParam:" and (if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no") and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + getNumberOfCaptures__label = "getNumberOfCaptures:" and getNumberOfCaptures = x.getNumberOfCaptures() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + isGetter__label = "isGetter:" and (if x.isGetter() then isGetter = "yes" else isGetter = "no") and + isSetter__label = "isSetter:" and (if x.isSetter() then isSetter = "yes" else isSetter = "no") and + isWillSet__label = "isWillSet:" and (if x.isWillSet() then isWillSet = "yes" else isWillSet = "no") and + isDidSet__label = "isDidSet:" and (if x.isDidSet() then isDidSet = "yes" else isDidSet = "no") and + isRead__label = "isRead:" and (if x.isRead() then isRead = "yes" else isRead = "no") and + isModify__label = "isModify:" and (if x.isModify() then isModify = "yes" else isModify = "no") and + isUnsafeAddress__label = "isUnsafeAddress:" and (if x.isUnsafeAddress() then isUnsafeAddress = "yes" else isUnsafeAddress = "no") and + isUnsafeMutableAddress__label = "isUnsafeMutableAddress:" and if x.isUnsafeMutableAddress() then isUnsafeMutableAddress = "yes" else isUnsafeMutableAddress = "no" -select x, "hasName:", hasName, "hasSelfParam:", hasSelfParam, "getNumberOfParams:", - getNumberOfParams, "hasBody:", hasBody, "getNumberOfCaptures:", getNumberOfCaptures, - "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "isGetter:", - isGetter, "isSetter:", isSetter, "isWillSet:", isWillSet, "isDidSet:", isDidSet, "isRead:", - isRead, "isModify:", isModify, "isUnsafeAddress:", isUnsafeAddress, "isUnsafeMutableAddress:", - isUnsafeMutableAddress +} + +query predicate getName(Accessor x, string getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getSelfParam(Accessor x, ParamDecl getSelfParam) { + toBeTested(x) and not x.isUnknown() and getSelfParam = x.getSelfParam() +} + +query predicate getParam(Accessor x, int index, ParamDecl getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} + +query predicate getBody(Accessor x, BraceStmt getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getCapture(Accessor x, int index, CapturedDecl getCapture) { + toBeTested(x) and not x.isUnknown() and getCapture = x.getCapture(index) +} + +query predicate getGenericTypeParam(Accessor x, int index, GenericTypeParamDecl getGenericTypeParam) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(Accessor x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.expected deleted file mode 100644 index 7eccbae719f..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.expected +++ /dev/null @@ -1,36 +0,0 @@ -| accessors.swift:2:9:2:9 | _modify | accessors.swift:2:9:2:9 | { ... } | -| accessors.swift:2:9:2:9 | get | accessors.swift:2:9:2:9 | { ... } | -| accessors.swift:2:9:2:9 | set | accessors.swift:2:9:2:9 | { ... } | -| accessors.swift:3:9:3:9 | _modify | accessors.swift:3:9:3:9 | { ... } | -| accessors.swift:4:9:4:28 | get | accessors.swift:4:13:4:28 | { ... } | -| accessors.swift:5:9:5:42 | set | accessors.swift:5:23:5:42 | { ... } | -| accessors.swift:7:9:7:9 | _modify | accessors.swift:7:9:7:9 | { ... } | -| accessors.swift:7:9:7:9 | get | accessors.swift:7:9:7:9 | { ... } | -| accessors.swift:7:9:7:9 | set | accessors.swift:7:9:7:9 | { ... } | -| accessors.swift:8:9:8:29 | willSet | accessors.swift:8:27:8:29 | { ... } | -| accessors.swift:11:9:11:9 | _modify | accessors.swift:11:9:11:9 | { ... } | -| accessors.swift:11:9:11:9 | get | accessors.swift:11:9:11:9 | { ... } | -| accessors.swift:11:9:11:9 | set | accessors.swift:11:9:11:9 | { ... } | -| accessors.swift:12:9:12:19 | willSet | accessors.swift:12:17:12:19 | { ... } | -| accessors.swift:15:9:15:9 | _modify | accessors.swift:15:9:15:9 | { ... } | -| accessors.swift:15:9:15:9 | get | accessors.swift:15:9:15:9 | { ... } | -| accessors.swift:15:9:15:9 | set | accessors.swift:15:9:15:9 | { ... } | -| accessors.swift:16:9:16:28 | didSet | accessors.swift:16:26:16:28 | { ... } | -| accessors.swift:19:9:19:9 | _modify | accessors.swift:19:9:19:9 | { ... } | -| accessors.swift:19:9:19:9 | get | accessors.swift:19:9:19:9 | { ... } | -| accessors.swift:19:9:19:9 | set | accessors.swift:19:9:19:9 | { ... } | -| accessors.swift:20:9:20:18 | didSet | accessors.swift:20:16:20:18 | { ... } | -| accessors.swift:23:9:23:9 | _modify | accessors.swift:23:9:23:9 | { ... } | -| accessors.swift:23:9:23:9 | get | accessors.swift:23:9:23:9 | { ... } | -| accessors.swift:23:9:23:9 | set | accessors.swift:23:9:23:9 | { ... } | -| accessors.swift:24:9:24:19 | willSet | accessors.swift:24:17:24:19 | { ... } | -| accessors.swift:26:9:26:18 | didSet | accessors.swift:26:16:26:18 | { ... } | -| accessors.swift:29:9:29:9 | get | accessors.swift:29:9:29:9 | { ... } | -| accessors.swift:29:9:29:9 | set | accessors.swift:29:9:29:9 | { ... } | -| accessors.swift:30:9:32:9 | _read | accessors.swift:30:15:32:9 | { ... } | -| accessors.swift:33:9:35:9 | _modify | accessors.swift:33:17:35:9 | { ... } | -| accessors.swift:38:9:38:9 | _modify | accessors.swift:38:9:38:9 | { ... } | -| accessors.swift:38:9:38:9 | get | accessors.swift:38:9:38:9 | { ... } | -| accessors.swift:38:9:38:9 | set | accessors.swift:38:9:38:9 | { ... } | -| accessors.swift:39:9:41:9 | unsafeAddress | accessors.swift:39:23:41:9 | { ... } | -| accessors.swift:42:9:44:9 | unsafeMutableAddress | accessors.swift:42:30:44:9 | { ... } | diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql deleted file mode 100644 index ad96f239082..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql deleted file mode 100644 index 173f3067c0c..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getCapture.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getCapture(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql deleted file mode 100644 index 2c4d348c550..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql deleted file mode 100644 index 3d4fe6d2972..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.expected deleted file mode 100644 index 929255a57ed..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.expected +++ /dev/null @@ -1,36 +0,0 @@ -| accessors.swift:2:9:2:9 | _modify | (unnamed function decl) | -| accessors.swift:2:9:2:9 | get | (unnamed function decl) | -| accessors.swift:2:9:2:9 | set | (unnamed function decl) | -| accessors.swift:3:9:3:9 | _modify | (unnamed function decl) | -| accessors.swift:4:9:4:28 | get | (unnamed function decl) | -| accessors.swift:5:9:5:42 | set | (unnamed function decl) | -| accessors.swift:7:9:7:9 | _modify | (unnamed function decl) | -| accessors.swift:7:9:7:9 | get | (unnamed function decl) | -| accessors.swift:7:9:7:9 | set | (unnamed function decl) | -| accessors.swift:8:9:8:29 | willSet | (unnamed function decl) | -| accessors.swift:11:9:11:9 | _modify | (unnamed function decl) | -| accessors.swift:11:9:11:9 | get | (unnamed function decl) | -| accessors.swift:11:9:11:9 | set | (unnamed function decl) | -| accessors.swift:12:9:12:19 | willSet | (unnamed function decl) | -| accessors.swift:15:9:15:9 | _modify | (unnamed function decl) | -| accessors.swift:15:9:15:9 | get | (unnamed function decl) | -| accessors.swift:15:9:15:9 | set | (unnamed function decl) | -| accessors.swift:16:9:16:28 | didSet | (unnamed function decl) | -| accessors.swift:19:9:19:9 | _modify | (unnamed function decl) | -| accessors.swift:19:9:19:9 | get | (unnamed function decl) | -| accessors.swift:19:9:19:9 | set | (unnamed function decl) | -| accessors.swift:20:9:20:18 | didSet | (unnamed function decl) | -| accessors.swift:23:9:23:9 | _modify | (unnamed function decl) | -| accessors.swift:23:9:23:9 | get | (unnamed function decl) | -| accessors.swift:23:9:23:9 | set | (unnamed function decl) | -| accessors.swift:24:9:24:19 | willSet | (unnamed function decl) | -| accessors.swift:26:9:26:18 | didSet | (unnamed function decl) | -| accessors.swift:29:9:29:9 | get | (unnamed function decl) | -| accessors.swift:29:9:29:9 | set | (unnamed function decl) | -| accessors.swift:30:9:32:9 | _read | (unnamed function decl) | -| accessors.swift:33:9:35:9 | _modify | (unnamed function decl) | -| accessors.swift:38:9:38:9 | _modify | (unnamed function decl) | -| accessors.swift:38:9:38:9 | get | (unnamed function decl) | -| accessors.swift:38:9:38:9 | set | (unnamed function decl) | -| accessors.swift:39:9:41:9 | unsafeAddress | (unnamed function decl) | -| accessors.swift:42:9:44:9 | unsafeMutableAddress | (unnamed function decl) | diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql deleted file mode 100644 index 9d29b101bdc..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.expected deleted file mode 100644 index e0544b5d4f5..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.expected +++ /dev/null @@ -1,13 +0,0 @@ -| accessors.swift:2:9:2:9 | set | 0 | accessors.swift:2:9:2:9 | value | -| accessors.swift:5:9:5:42 | set | 0 | accessors.swift:5:13:5:13 | newValue | -| accessors.swift:7:9:7:9 | set | 0 | accessors.swift:7:9:7:9 | value | -| accessors.swift:8:9:8:29 | willSet | 0 | accessors.swift:8:17:8:17 | newValue | -| accessors.swift:11:9:11:9 | set | 0 | accessors.swift:11:9:11:9 | value | -| accessors.swift:12:9:12:19 | willSet | 0 | accessors.swift:12:9:12:9 | newValue | -| accessors.swift:15:9:15:9 | set | 0 | accessors.swift:15:9:15:9 | value | -| accessors.swift:16:9:16:28 | didSet | 0 | accessors.swift:16:16:16:16 | oldValue | -| accessors.swift:19:9:19:9 | set | 0 | accessors.swift:19:9:19:9 | value | -| accessors.swift:23:9:23:9 | set | 0 | accessors.swift:23:9:23:9 | value | -| accessors.swift:24:9:24:19 | willSet | 0 | accessors.swift:24:9:24:9 | newValue | -| accessors.swift:29:9:29:9 | set | 0 | accessors.swift:29:9:29:9 | value | -| accessors.swift:38:9:38:9 | set | 0 | accessors.swift:38:9:38:9 | value | diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql deleted file mode 100644 index 0640648bf1b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.expected deleted file mode 100644 index 62143cca406..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.expected +++ /dev/null @@ -1,36 +0,0 @@ -| accessors.swift:2:9:2:9 | _modify | accessors.swift:2:9:2:9 | self | -| accessors.swift:2:9:2:9 | get | accessors.swift:2:9:2:9 | self | -| accessors.swift:2:9:2:9 | set | accessors.swift:2:9:2:9 | self | -| accessors.swift:3:9:3:9 | _modify | accessors.swift:3:9:3:9 | self | -| accessors.swift:4:9:4:28 | get | accessors.swift:4:9:4:9 | self | -| accessors.swift:5:9:5:42 | set | accessors.swift:5:9:5:9 | self | -| accessors.swift:7:9:7:9 | _modify | accessors.swift:7:9:7:9 | self | -| accessors.swift:7:9:7:9 | get | accessors.swift:7:9:7:9 | self | -| accessors.swift:7:9:7:9 | set | accessors.swift:7:9:7:9 | self | -| accessors.swift:8:9:8:29 | willSet | accessors.swift:8:9:8:9 | self | -| accessors.swift:11:9:11:9 | _modify | accessors.swift:11:9:11:9 | self | -| accessors.swift:11:9:11:9 | get | accessors.swift:11:9:11:9 | self | -| accessors.swift:11:9:11:9 | set | accessors.swift:11:9:11:9 | self | -| accessors.swift:12:9:12:19 | willSet | accessors.swift:12:9:12:9 | self | -| accessors.swift:15:9:15:9 | _modify | accessors.swift:15:9:15:9 | self | -| accessors.swift:15:9:15:9 | get | accessors.swift:15:9:15:9 | self | -| accessors.swift:15:9:15:9 | set | accessors.swift:15:9:15:9 | self | -| accessors.swift:16:9:16:28 | didSet | accessors.swift:16:9:16:9 | self | -| accessors.swift:19:9:19:9 | _modify | accessors.swift:19:9:19:9 | self | -| accessors.swift:19:9:19:9 | get | accessors.swift:19:9:19:9 | self | -| accessors.swift:19:9:19:9 | set | accessors.swift:19:9:19:9 | self | -| accessors.swift:20:9:20:18 | didSet | accessors.swift:20:9:20:9 | self | -| accessors.swift:23:9:23:9 | _modify | accessors.swift:23:9:23:9 | self | -| accessors.swift:23:9:23:9 | get | accessors.swift:23:9:23:9 | self | -| accessors.swift:23:9:23:9 | set | accessors.swift:23:9:23:9 | self | -| accessors.swift:24:9:24:19 | willSet | accessors.swift:24:9:24:9 | self | -| accessors.swift:26:9:26:18 | didSet | accessors.swift:26:9:26:9 | self | -| accessors.swift:29:9:29:9 | get | accessors.swift:29:9:29:9 | self | -| accessors.swift:29:9:29:9 | set | accessors.swift:29:9:29:9 | self | -| accessors.swift:30:9:32:9 | _read | accessors.swift:30:9:30:9 | self | -| accessors.swift:33:9:35:9 | _modify | accessors.swift:33:9:33:9 | self | -| accessors.swift:38:9:38:9 | _modify | accessors.swift:38:9:38:9 | self | -| accessors.swift:38:9:38:9 | get | accessors.swift:38:9:38:9 | self | -| accessors.swift:38:9:38:9 | set | accessors.swift:38:9:38:9 | self | -| accessors.swift:39:9:41:9 | unsafeAddress | accessors.swift:39:9:39:9 | self | -| accessors.swift:42:9:44:9 | unsafeMutableAddress | accessors.swift:42:9:42:9 | self | diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql deleted file mode 100644 index 2e98f9d74cb..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor_getSelfParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from Accessor x -where toBeTested(x) and not x.isUnknown() -select x, x.getSelfParam() diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected index ee463332f1d..232470336aa 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected @@ -1,2 +1,6 @@ +instances | associated_type.swift:2:5:2:20 | Bar | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Bar.Type | getName: | Bar | getNumberOfInheritedTypes: | 0 | | associated_type.swift:3:5:3:25 | Baz | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 1 | +getMember +getInheritedType +| associated_type.swift:3:5:3:25 | Baz | 0 | Equatable | diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql index 057981c2364..b81a9b93e63 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - AssociatedTypeDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, - string getName, int getNumberOfInheritedTypes -where +query predicate instances( + AssociatedTypeDecl x, string getModule__label, ModuleDecl getModule, + string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, + string getNumberOfInheritedTypes__label, int getNumberOfInheritedTypes +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getName:", getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes +} + +query predicate getMember(AssociatedTypeDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getInheritedType(AssociatedTypeDecl x, int index, Type getInheritedType) { + toBeTested(x) and not x.isUnknown() and getInheritedType = x.getInheritedType(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected deleted file mode 100644 index 6cd068031f6..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.expected +++ /dev/null @@ -1 +0,0 @@ -| associated_type.swift:3:5:3:25 | Baz | 0 | Equatable | diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql deleted file mode 100644 index 2c0f23a876a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getInheritedType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from AssociatedTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql deleted file mode 100644 index c36cb6ef4f9..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from AssociatedTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected index 371312cb6cb..8c20593f598 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected @@ -1,3 +1,4 @@ +instances | closures.swift:8:12:8:12 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:7:6:7:6 | x | isDirect: | yes | isEscaping: | no | | closures.swift:9:12:9:12 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:6:7:6:7 | y | isDirect: | yes | isEscaping: | no | | closures.swift:16:3:16:3 | escape | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:12:5:12:5 | escape | isDirect: | yes | isEscaping: | yes | @@ -39,3 +40,4 @@ | closures.swift:164:21:164:21 | next | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:163:9:163:9 | next | isDirect: | yes | isEscaping: | yes | | closures.swift:164:36:164:36 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:158:10:158:15 | x | isDirect: | yes | isEscaping: | yes | | closures.swift:195:3:195:3 | g | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:68:5:68:5 | g | isDirect: | yes | isEscaping: | yes | +getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql index 189558f3767..1f76d90ee2e 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql @@ -2,16 +2,25 @@ import codeql.swift.elements import TestUtils -from - CapturedDecl x, ModuleDecl getModule, int getNumberOfMembers, ValueDecl getDecl, string isDirect, - string isEscaping -where +query predicate instances( + CapturedDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getDecl__label, ValueDecl getDecl, string isDirect__label, + string isDirect, string isEscaping__label, string isEscaping +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getDecl__label = "getDecl:" and getDecl = x.getDecl() and + isDirect__label = "isDirect:" and (if x.isDirect() then isDirect = "yes" else isDirect = "no") and + isEscaping__label = "isEscaping:" and if x.isEscaping() then isEscaping = "yes" else isEscaping = "no" -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getDecl:", getDecl, - "isDirect:", isDirect, "isEscaping:", isEscaping +} + +query predicate getMember(CapturedDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql deleted file mode 100644 index 2709cc86f6f..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from CapturedDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected index c09b98045cf..ad3f2429988 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected @@ -1,3 +1,23 @@ +instances | class.swift:1:1:7:1 | Foo | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 4 | getInterfaceType: | Foo.Type | getName: | Foo | getNumberOfInheritedTypes: | 0 | getType: | Foo | | class.swift:11:1:14:1 | Generic | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 6 | getInterfaceType: | Generic.Type | getName: | Generic | getNumberOfInheritedTypes: | 0 | getType: | Generic | | class.swift:16:1:17:1 | Baz | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 2 | getInterfaceType: | Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 2 | getType: | Baz | +getGenericTypeParam +| class.swift:11:1:14:1 | Generic | 0 | class.swift:11:15:11:15 | X | +| class.swift:11:1:14:1 | Generic | 1 | class.swift:11:18:11:18 | Y | +getMember +| class.swift:1:1:7:1 | Foo | 0 | class.swift:2:5:2:16 | var ... = ... | +| class.swift:1:1:7:1 | Foo | 1 | class.swift:2:9:2:9 | field | +| class.swift:1:1:7:1 | Foo | 2 | class.swift:4:5:6:5 | Foo.init() | +| class.swift:1:1:7:1 | Foo | 3 | class.swift:1:7:1:7 | Foo.deinit() | +| class.swift:11:1:14:1 | Generic | 0 | class.swift:12:5:12:13 | var ... = ... | +| class.swift:11:1:14:1 | Generic | 1 | class.swift:12:9:12:9 | x | +| class.swift:11:1:14:1 | Generic | 2 | class.swift:13:5:13:13 | var ... = ... | +| class.swift:11:1:14:1 | Generic | 3 | class.swift:13:9:13:9 | y | +| class.swift:11:1:14:1 | Generic | 4 | class.swift:11:7:11:7 | Generic.deinit() | +| class.swift:11:1:14:1 | Generic | 5 | class.swift:11:7:11:7 | Generic.init() | +| class.swift:16:1:17:1 | Baz | 0 | class.swift:16:7:16:7 | Baz.deinit() | +| class.swift:16:1:17:1 | Baz | 1 | class.swift:16:21:16:21 | Baz.init() | +getInheritedType +| class.swift:16:1:17:1 | Baz | 0 | Foo | +| class.swift:16:1:17:1 | Baz | 1 | Bar | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql index 31cec2c9f7c..a9e86d07108 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql @@ -2,19 +2,39 @@ import codeql.swift.elements import TestUtils -from - ClassDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfInheritedTypes, Type getType -where +query predicate instances( + ClassDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getName__label, string getName, string getNumberOfInheritedTypes__label, + int getNumberOfInheritedTypes, string getType__label, Type getType +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and + getType__label = "getType:" and getType = x.getType() -select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getType:", getType +} + +query predicate getGenericTypeParam(ClassDecl x, int index, GenericTypeParamDecl getGenericTypeParam) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(ClassDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getInheritedType(ClassDecl x, int index, Type getInheritedType) { + toBeTested(x) and not x.isUnknown() and getInheritedType = x.getInheritedType(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.expected deleted file mode 100644 index 8dd0e061d97..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.expected +++ /dev/null @@ -1,2 +0,0 @@ -| class.swift:11:1:14:1 | Generic | 0 | class.swift:11:15:11:15 | X | -| class.swift:11:1:14:1 | Generic | 1 | class.swift:11:18:11:18 | Y | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql deleted file mode 100644 index 382d756d584..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ClassDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected deleted file mode 100644 index 8d0be1c0267..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| class.swift:16:1:17:1 | Baz | 0 | Foo | -| class.swift:16:1:17:1 | Baz | 1 | Bar | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql deleted file mode 100644 index 92e9fc52b7a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getInheritedType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ClassDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.expected deleted file mode 100644 index 6c7b4ce0130..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.expected +++ /dev/null @@ -1,12 +0,0 @@ -| class.swift:1:1:7:1 | Foo | 0 | class.swift:2:5:2:16 | var ... = ... | -| class.swift:1:1:7:1 | Foo | 1 | class.swift:2:9:2:9 | field | -| class.swift:1:1:7:1 | Foo | 2 | class.swift:4:5:6:5 | Foo.init() | -| class.swift:1:1:7:1 | Foo | 3 | class.swift:1:7:1:7 | Foo.deinit() | -| class.swift:11:1:14:1 | Generic | 0 | class.swift:12:5:12:13 | var ... = ... | -| class.swift:11:1:14:1 | Generic | 1 | class.swift:12:9:12:9 | x | -| class.swift:11:1:14:1 | Generic | 2 | class.swift:13:5:13:13 | var ... = ... | -| class.swift:11:1:14:1 | Generic | 3 | class.swift:13:9:13:9 | y | -| class.swift:11:1:14:1 | Generic | 4 | class.swift:11:7:11:7 | Generic.deinit() | -| class.swift:11:1:14:1 | Generic | 5 | class.swift:11:7:11:7 | Generic.init() | -| class.swift:16:1:17:1 | Baz | 0 | class.swift:16:7:16:7 | Baz.deinit() | -| class.swift:16:1:17:1 | Baz | 1 | class.swift:16:21:16:21 | Baz.init() | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql deleted file mode 100644 index c7651a702b2..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ClassDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected index 9e05b623dd7..75fc7aa41cd 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected @@ -1,3 +1,4 @@ +instances | var_decls.swift:2:7:2:7 | i | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | i | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | | var_decls.swift:2:12:2:12 | $i$generator | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | IndexingIterator> | getNumberOfAccessors: | 0 | getName: | $i$generator | getType: | IndexingIterator> | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | | var_decls.swift:4:7:4:7 | i | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | i | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | @@ -26,3 +27,111 @@ | var_decls.swift:65:34:65:34 | $match | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | $match | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | | var_decls.swift:67:15:67:15 | $match | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | $match | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | | var_decls.swift:67:22:67:22 | unused_case_variable | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | unused_case_variable | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | +getMember +getAccessor +| var_decls.swift:10:12:10:12 | numbers | 0 | var_decls.swift:10:12:10:12 | get | +| var_decls.swift:15:7:15:7 | wrappedValue | 0 | var_decls.swift:15:7:15:7 | get | +| var_decls.swift:15:7:15:7 | wrappedValue | 1 | var_decls.swift:15:7:15:7 | set | +| var_decls.swift:15:7:15:7 | wrappedValue | 2 | var_decls.swift:15:7:15:7 | _modify | +| var_decls.swift:20:7:20:7 | wrappedValue | 0 | var_decls.swift:20:7:20:7 | get | +| var_decls.swift:20:7:20:7 | wrappedValue | 1 | var_decls.swift:20:7:20:7 | set | +| var_decls.swift:20:7:20:7 | wrappedValue | 2 | var_decls.swift:20:7:20:7 | _modify | +| var_decls.swift:24:15:24:15 | _wrapped | 0 | var_decls.swift:24:15:24:15 | get | +| var_decls.swift:24:15:24:15 | _wrapped | 1 | var_decls.swift:24:15:24:15 | set | +| var_decls.swift:24:15:24:15 | _wrapped | 2 | var_decls.swift:24:15:24:15 | _modify | +| var_decls.swift:24:15:24:15 | wrapped | 0 | var_decls.swift:24:15:24:15 | get | +| var_decls.swift:24:15:24:15 | wrapped | 1 | var_decls.swift:24:15:24:15 | set | +| var_decls.swift:24:15:24:15 | wrapped | 2 | var_decls.swift:24:15:24:15 | _modify | +| var_decls.swift:28:7:28:7 | wrappedValue | 0 | var_decls.swift:28:7:28:7 | get | +| var_decls.swift:28:7:28:7 | wrappedValue | 1 | var_decls.swift:28:7:28:7 | set | +| var_decls.swift:28:7:28:7 | wrappedValue | 2 | var_decls.swift:28:7:28:7 | _modify | +| var_decls.swift:34:7:34:7 | wrappedValue | 0 | var_decls.swift:34:7:34:7 | get | +| var_decls.swift:34:7:34:7 | wrappedValue | 1 | var_decls.swift:34:7:34:7 | set | +| var_decls.swift:34:7:34:7 | wrappedValue | 2 | var_decls.swift:34:7:34:7 | _modify | +| var_decls.swift:35:7:35:7 | projectedValue | 0 | var_decls.swift:35:7:35:7 | get | +| var_decls.swift:35:7:35:7 | projectedValue | 1 | var_decls.swift:35:7:35:7 | set | +| var_decls.swift:35:7:35:7 | projectedValue | 2 | var_decls.swift:35:7:35:7 | _modify | +| var_decls.swift:39:7:39:7 | wrappedValue | 0 | var_decls.swift:39:7:39:7 | get | +| var_decls.swift:39:7:39:7 | wrappedValue | 1 | var_decls.swift:39:7:39:7 | set | +| var_decls.swift:39:7:39:7 | wrappedValue | 2 | var_decls.swift:39:7:39:7 | _modify | +| var_decls.swift:40:7:40:7 | projectedValue | 0 | var_decls.swift:40:7:40:7 | get | +| var_decls.swift:40:7:40:7 | projectedValue | 1 | var_decls.swift:40:7:40:7 | set | +| var_decls.swift:40:7:40:7 | projectedValue | 2 | var_decls.swift:40:7:40:7 | _modify | +| var_decls.swift:54:10:54:10 | w1 | 0 | var_decls.swift:54:10:54:10 | get | +| var_decls.swift:54:10:54:10 | w1 | 1 | var_decls.swift:54:10:54:10 | set | +| var_decls.swift:55:24:55:24 | w2 | 0 | var_decls.swift:55:24:55:24 | get | +| var_decls.swift:55:24:55:24 | w2 | 1 | var_decls.swift:55:24:55:24 | set | +| var_decls.swift:56:29:56:29 | $w3 | 0 | var_decls.swift:56:29:56:29 | get | +| var_decls.swift:56:29:56:29 | $w3 | 1 | var_decls.swift:56:29:56:29 | set | +| var_decls.swift:56:29:56:29 | w3 | 0 | var_decls.swift:56:29:56:29 | get | +| var_decls.swift:56:29:56:29 | w3 | 1 | var_decls.swift:56:29:56:29 | set | +| var_decls.swift:57:36:57:36 | $w4 | 0 | var_decls.swift:57:36:57:36 | get | +| var_decls.swift:57:36:57:36 | $w4 | 1 | var_decls.swift:57:36:57:36 | set | +| var_decls.swift:57:36:57:36 | w4 | 0 | var_decls.swift:57:36:57:36 | get | +| var_decls.swift:57:36:57:36 | w4 | 1 | var_decls.swift:57:36:57:36 | set | +getAttachedPropertyWrapperType +| var_decls.swift:24:15:24:15 | wrapped | X | +| var_decls.swift:54:10:54:10 | w1 | X | +| var_decls.swift:55:24:55:24 | w2 | WrapperWithInit | +| var_decls.swift:56:29:56:29 | w3 | WrapperWithProjected | +| var_decls.swift:57:36:57:36 | w4 | WrapperWithProjectedAndInit | +getParentPattern +| var_decls.swift:2:7:2:7 | i | var_decls.swift:2:7:2:7 | i | +| var_decls.swift:2:12:2:12 | $i$generator | var_decls.swift:2:12:2:12 | $i$generator | +| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:7:4:7 | i | +| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:5:7:5 | numbers | +| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:12:10:12 | numbers | +| var_decls.swift:15:7:15:7 | wrappedValue | var_decls.swift:15:7:15:21 | ... as ... | +| var_decls.swift:20:7:20:7 | wrappedValue | var_decls.swift:20:7:20:21 | ... as ... | +| var_decls.swift:24:15:24:15 | _wrapped | var_decls.swift:24:15:24:15 | ... as ... | +| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:25 | ... as ... | +| var_decls.swift:28:7:28:7 | wrappedValue | var_decls.swift:28:7:28:22 | ... as ... | +| var_decls.swift:34:7:34:7 | wrappedValue | var_decls.swift:34:7:34:22 | ... as ... | +| var_decls.swift:35:7:35:7 | projectedValue | var_decls.swift:35:7:35:24 | ... as ... | +| var_decls.swift:39:7:39:7 | wrappedValue | var_decls.swift:39:7:39:22 | ... as ... | +| var_decls.swift:40:7:40:7 | projectedValue | var_decls.swift:40:7:40:24 | ... as ... | +| var_decls.swift:54:10:54:10 | _w1 | var_decls.swift:54:10:54:10 | ... as ... | +| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | w1 | +| var_decls.swift:55:24:55:24 | _w2 | var_decls.swift:55:24:55:24 | ... as ... | +| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | w2 | +| var_decls.swift:56:29:56:29 | $w3 | var_decls.swift:56:29:56:29 | ... as ... | +| var_decls.swift:56:29:56:29 | _w3 | var_decls.swift:56:29:56:29 | ... as ... | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | w3 | +| var_decls.swift:57:36:57:36 | $w4 | var_decls.swift:57:36:57:36 | ... as ... | +| var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:36:57:36 | ... as ... | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | w4 | +| var_decls.swift:65:19:65:19 | case_variable | var_decls.swift:65:8:65:35 | .value(...) | +| var_decls.swift:67:22:67:22 | unused_case_variable | var_decls.swift:67:8:67:42 | .value(...) | +getParentInitializer +| var_decls.swift:2:12:2:12 | $i$generator | var_decls.swift:2:12:2:16 | call to makeIterator() | +| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:11:4:11 | 0 | +| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:15:7:18 | [...] | +| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:22:10:35 | [...] | +| var_decls.swift:34:7:34:7 | wrappedValue | var_decls.swift:34:28:34:28 | 42 | +| var_decls.swift:35:7:35:7 | projectedValue | var_decls.swift:35:31:35:31 | false | +| var_decls.swift:54:10:54:10 | _w1 | var_decls.swift:54:4:54:15 | call to X.init(wrappedValue:) | +| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:4:54:15 | call to X.init(wrappedValue:) | +| var_decls.swift:55:24:55:24 | _w2 | var_decls.swift:55:4:55:29 | call to WrapperWithInit.init(wrappedValue:) | +| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:4:55:29 | call to WrapperWithInit.init(wrappedValue:) | +| var_decls.swift:56:29:56:29 | _w3 | var_decls.swift:56:4:56:34 | call to WrapperWithProjected.init(wrappedValue:projectedValue:) | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:4:56:34 | call to WrapperWithProjected.init(wrappedValue:projectedValue:) | +| var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | +getPropertyWrapperBackingVarBinding +| var_decls.swift:24:15:24:15 | wrapped | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:54:10:54:10 | w1 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:55:24:55:24 | w2 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +getPropertyWrapperBackingVar +| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | _wrapped | +| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | _w1 | +| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | _w2 | +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | _w3 | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | _w4 | +getPropertyWrapperProjectionVarBinding +| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | +| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | +getPropertyWrapperProjectionVar +| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | $w3 | +| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | $w4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql index 2dd21cf6a17..6569901dcbe 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql @@ -2,55 +2,121 @@ import codeql.swift.elements import TestUtils -from - ConcreteVarDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, - int getNumberOfAccessors, string getName, Type getType, string hasAttachedPropertyWrapperType, - string hasParentPattern, string hasParentInitializer, string hasPropertyWrapperBackingVarBinding, - string hasPropertyWrapperBackingVar, string hasPropertyWrapperProjectionVarBinding, - string hasPropertyWrapperProjectionVar, int getIntroducerInt -where +query predicate instances( + ConcreteVarDecl x, string getModule__label, ModuleDecl getModule, + string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, + Type getInterfaceType, string getNumberOfAccessors__label, int getNumberOfAccessors, + string getName__label, string getName, string getType__label, Type getType, + string hasAttachedPropertyWrapperType__label, string hasAttachedPropertyWrapperType, + string hasParentPattern__label, string hasParentPattern, string hasParentInitializer__label, + string hasParentInitializer, string hasPropertyWrapperBackingVarBinding__label, + string hasPropertyWrapperBackingVarBinding, string hasPropertyWrapperBackingVar__label, + string hasPropertyWrapperBackingVar, string hasPropertyWrapperProjectionVarBinding__label, + string hasPropertyWrapperProjectionVarBinding, string hasPropertyWrapperProjectionVar__label, + string hasPropertyWrapperProjectionVar, string getIntroducerInt__label, int getIntroducerInt +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getNumberOfAccessors__label = "getNumberOfAccessors:" and getNumberOfAccessors = x.getNumberOfAccessors() and + getName__label = "getName:" and getName = x.getName() and + getType__label = "getType:" and getType = x.getType() and + hasAttachedPropertyWrapperType__label = "hasAttachedPropertyWrapperType:" and ( if x.hasAttachedPropertyWrapperType() then hasAttachedPropertyWrapperType = "yes" else hasAttachedPropertyWrapperType = "no" ) and + hasParentPattern__label = "hasParentPattern:" and (if x.hasParentPattern() then hasParentPattern = "yes" else hasParentPattern = "no") and + hasParentInitializer__label = "hasParentInitializer:" and (if x.hasParentInitializer() then hasParentInitializer = "yes" else hasParentInitializer = "no") and + hasPropertyWrapperBackingVarBinding__label = "hasPropertyWrapperBackingVarBinding:" and ( if x.hasPropertyWrapperBackingVarBinding() then hasPropertyWrapperBackingVarBinding = "yes" else hasPropertyWrapperBackingVarBinding = "no" ) and + hasPropertyWrapperBackingVar__label = "hasPropertyWrapperBackingVar:" and ( if x.hasPropertyWrapperBackingVar() then hasPropertyWrapperBackingVar = "yes" else hasPropertyWrapperBackingVar = "no" ) and + hasPropertyWrapperProjectionVarBinding__label = "hasPropertyWrapperProjectionVarBinding:" and ( if x.hasPropertyWrapperProjectionVarBinding() then hasPropertyWrapperProjectionVarBinding = "yes" else hasPropertyWrapperProjectionVarBinding = "no" ) and + hasPropertyWrapperProjectionVar__label = "hasPropertyWrapperProjectionVar:" and ( if x.hasPropertyWrapperProjectionVar() then hasPropertyWrapperProjectionVar = "yes" else hasPropertyWrapperProjectionVar = "no" ) and + getIntroducerInt__label = "getIntroducerInt:" and getIntroducerInt = x.getIntroducerInt() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getNumberOfAccessors:", getNumberOfAccessors, "getName:", getName, "getType:", - getType, "hasAttachedPropertyWrapperType:", hasAttachedPropertyWrapperType, "hasParentPattern:", - hasParentPattern, "hasParentInitializer:", hasParentInitializer, - "hasPropertyWrapperBackingVarBinding:", hasPropertyWrapperBackingVarBinding, - "hasPropertyWrapperBackingVar:", hasPropertyWrapperBackingVar, - "hasPropertyWrapperProjectionVarBinding:", hasPropertyWrapperProjectionVarBinding, - "hasPropertyWrapperProjectionVar:", hasPropertyWrapperProjectionVar, "getIntroducerInt:", - getIntroducerInt +} + +query predicate getMember(ConcreteVarDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getAccessor(ConcreteVarDecl x, int index, Accessor getAccessor) { + toBeTested(x) and not x.isUnknown() and getAccessor = x.getAccessor(index) +} + +query predicate getAttachedPropertyWrapperType( + ConcreteVarDecl x, Type getAttachedPropertyWrapperType +) { + toBeTested(x) and + not x.isUnknown() and + getAttachedPropertyWrapperType = x.getAttachedPropertyWrapperType() +} + +query predicate getParentPattern(ConcreteVarDecl x, Pattern getParentPattern) { + toBeTested(x) and not x.isUnknown() and getParentPattern = x.getParentPattern() +} + +query predicate getParentInitializer(ConcreteVarDecl x, Expr getParentInitializer) { + toBeTested(x) and not x.isUnknown() and getParentInitializer = x.getParentInitializer() +} + +query predicate getPropertyWrapperBackingVarBinding( + ConcreteVarDecl x, PatternBindingDecl getPropertyWrapperBackingVarBinding +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperBackingVarBinding = x.getPropertyWrapperBackingVarBinding() +} + +query predicate getPropertyWrapperBackingVar(ConcreteVarDecl x, VarDecl getPropertyWrapperBackingVar) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperBackingVar = x.getPropertyWrapperBackingVar() +} + +query predicate getPropertyWrapperProjectionVarBinding( + ConcreteVarDecl x, PatternBindingDecl getPropertyWrapperProjectionVarBinding +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperProjectionVarBinding = x.getPropertyWrapperProjectionVarBinding() +} + +query predicate getPropertyWrapperProjectionVar( + ConcreteVarDecl x, VarDecl getPropertyWrapperProjectionVar +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperProjectionVar = x.getPropertyWrapperProjectionVar() +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.expected deleted file mode 100644 index 956ca097bd1..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.expected +++ /dev/null @@ -1,40 +0,0 @@ -| var_decls.swift:10:12:10:12 | numbers | 0 | var_decls.swift:10:12:10:12 | get | -| var_decls.swift:15:7:15:7 | wrappedValue | 0 | var_decls.swift:15:7:15:7 | get | -| var_decls.swift:15:7:15:7 | wrappedValue | 1 | var_decls.swift:15:7:15:7 | set | -| var_decls.swift:15:7:15:7 | wrappedValue | 2 | var_decls.swift:15:7:15:7 | _modify | -| var_decls.swift:20:7:20:7 | wrappedValue | 0 | var_decls.swift:20:7:20:7 | get | -| var_decls.swift:20:7:20:7 | wrappedValue | 1 | var_decls.swift:20:7:20:7 | set | -| var_decls.swift:20:7:20:7 | wrappedValue | 2 | var_decls.swift:20:7:20:7 | _modify | -| var_decls.swift:24:15:24:15 | _wrapped | 0 | var_decls.swift:24:15:24:15 | get | -| var_decls.swift:24:15:24:15 | _wrapped | 1 | var_decls.swift:24:15:24:15 | set | -| var_decls.swift:24:15:24:15 | _wrapped | 2 | var_decls.swift:24:15:24:15 | _modify | -| var_decls.swift:24:15:24:15 | wrapped | 0 | var_decls.swift:24:15:24:15 | get | -| var_decls.swift:24:15:24:15 | wrapped | 1 | var_decls.swift:24:15:24:15 | set | -| var_decls.swift:24:15:24:15 | wrapped | 2 | var_decls.swift:24:15:24:15 | _modify | -| var_decls.swift:28:7:28:7 | wrappedValue | 0 | var_decls.swift:28:7:28:7 | get | -| var_decls.swift:28:7:28:7 | wrappedValue | 1 | var_decls.swift:28:7:28:7 | set | -| var_decls.swift:28:7:28:7 | wrappedValue | 2 | var_decls.swift:28:7:28:7 | _modify | -| var_decls.swift:34:7:34:7 | wrappedValue | 0 | var_decls.swift:34:7:34:7 | get | -| var_decls.swift:34:7:34:7 | wrappedValue | 1 | var_decls.swift:34:7:34:7 | set | -| var_decls.swift:34:7:34:7 | wrappedValue | 2 | var_decls.swift:34:7:34:7 | _modify | -| var_decls.swift:35:7:35:7 | projectedValue | 0 | var_decls.swift:35:7:35:7 | get | -| var_decls.swift:35:7:35:7 | projectedValue | 1 | var_decls.swift:35:7:35:7 | set | -| var_decls.swift:35:7:35:7 | projectedValue | 2 | var_decls.swift:35:7:35:7 | _modify | -| var_decls.swift:39:7:39:7 | wrappedValue | 0 | var_decls.swift:39:7:39:7 | get | -| var_decls.swift:39:7:39:7 | wrappedValue | 1 | var_decls.swift:39:7:39:7 | set | -| var_decls.swift:39:7:39:7 | wrappedValue | 2 | var_decls.swift:39:7:39:7 | _modify | -| var_decls.swift:40:7:40:7 | projectedValue | 0 | var_decls.swift:40:7:40:7 | get | -| var_decls.swift:40:7:40:7 | projectedValue | 1 | var_decls.swift:40:7:40:7 | set | -| var_decls.swift:40:7:40:7 | projectedValue | 2 | var_decls.swift:40:7:40:7 | _modify | -| var_decls.swift:54:10:54:10 | w1 | 0 | var_decls.swift:54:10:54:10 | get | -| var_decls.swift:54:10:54:10 | w1 | 1 | var_decls.swift:54:10:54:10 | set | -| var_decls.swift:55:24:55:24 | w2 | 0 | var_decls.swift:55:24:55:24 | get | -| var_decls.swift:55:24:55:24 | w2 | 1 | var_decls.swift:55:24:55:24 | set | -| var_decls.swift:56:29:56:29 | $w3 | 0 | var_decls.swift:56:29:56:29 | get | -| var_decls.swift:56:29:56:29 | $w3 | 1 | var_decls.swift:56:29:56:29 | set | -| var_decls.swift:56:29:56:29 | w3 | 0 | var_decls.swift:56:29:56:29 | get | -| var_decls.swift:56:29:56:29 | w3 | 1 | var_decls.swift:56:29:56:29 | set | -| var_decls.swift:57:36:57:36 | $w4 | 0 | var_decls.swift:57:36:57:36 | get | -| var_decls.swift:57:36:57:36 | $w4 | 1 | var_decls.swift:57:36:57:36 | set | -| var_decls.swift:57:36:57:36 | w4 | 0 | var_decls.swift:57:36:57:36 | get | -| var_decls.swift:57:36:57:36 | w4 | 1 | var_decls.swift:57:36:57:36 | set | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql deleted file mode 100644 index d169f10c812..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAccessor.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAccessor(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected deleted file mode 100644 index 0212cc38f14..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.expected +++ /dev/null @@ -1,5 +0,0 @@ -| var_decls.swift:24:15:24:15 | wrapped | X | -| var_decls.swift:54:10:54:10 | w1 | X | -| var_decls.swift:55:24:55:24 | w2 | WrapperWithInit | -| var_decls.swift:56:29:56:29 | w3 | WrapperWithProjected | -| var_decls.swift:57:36:57:36 | w4 | WrapperWithProjectedAndInit | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql deleted file mode 100644 index ef8e58e6371..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getAttachedPropertyWrapperType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttachedPropertyWrapperType() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql deleted file mode 100644 index e559cfeae78..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected deleted file mode 100644 index 913adec2f2b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.expected +++ /dev/null @@ -1,14 +0,0 @@ -| var_decls.swift:2:12:2:12 | $i$generator | var_decls.swift:2:12:2:16 | call to makeIterator() | -| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:11:4:11 | 0 | -| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:15:7:18 | [...] | -| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:22:10:35 | [...] | -| var_decls.swift:34:7:34:7 | wrappedValue | var_decls.swift:34:28:34:28 | 42 | -| var_decls.swift:35:7:35:7 | projectedValue | var_decls.swift:35:31:35:31 | false | -| var_decls.swift:54:10:54:10 | _w1 | var_decls.swift:54:4:54:15 | call to X.init(wrappedValue:) | -| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:4:54:15 | call to X.init(wrappedValue:) | -| var_decls.swift:55:24:55:24 | _w2 | var_decls.swift:55:4:55:29 | call to WrapperWithInit.init(wrappedValue:) | -| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:4:55:29 | call to WrapperWithInit.init(wrappedValue:) | -| var_decls.swift:56:29:56:29 | _w3 | var_decls.swift:56:4:56:34 | call to WrapperWithProjected.init(wrappedValue:projectedValue:) | -| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:4:56:34 | call to WrapperWithProjected.init(wrappedValue:projectedValue:) | -| var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | -| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:4:57:41 | call to WrapperWithProjectedAndInit.init(wrappedValue:) | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql deleted file mode 100644 index cc09f9a38af..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentInitializer.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getParentInitializer() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected deleted file mode 100644 index e59322e36c1..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.expected +++ /dev/null @@ -1,26 +0,0 @@ -| var_decls.swift:2:7:2:7 | i | var_decls.swift:2:7:2:7 | i | -| var_decls.swift:2:12:2:12 | $i$generator | var_decls.swift:2:12:2:12 | $i$generator | -| var_decls.swift:4:7:4:7 | i | var_decls.swift:4:7:4:7 | i | -| var_decls.swift:7:5:7:5 | numbers | var_decls.swift:7:5:7:5 | numbers | -| var_decls.swift:10:12:10:12 | numbers | var_decls.swift:10:12:10:12 | numbers | -| var_decls.swift:15:7:15:7 | wrappedValue | var_decls.swift:15:7:15:21 | ... as ... | -| var_decls.swift:20:7:20:7 | wrappedValue | var_decls.swift:20:7:20:21 | ... as ... | -| var_decls.swift:24:15:24:15 | _wrapped | var_decls.swift:24:15:24:15 | ... as ... | -| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:25 | ... as ... | -| var_decls.swift:28:7:28:7 | wrappedValue | var_decls.swift:28:7:28:22 | ... as ... | -| var_decls.swift:34:7:34:7 | wrappedValue | var_decls.swift:34:7:34:22 | ... as ... | -| var_decls.swift:35:7:35:7 | projectedValue | var_decls.swift:35:7:35:24 | ... as ... | -| var_decls.swift:39:7:39:7 | wrappedValue | var_decls.swift:39:7:39:22 | ... as ... | -| var_decls.swift:40:7:40:7 | projectedValue | var_decls.swift:40:7:40:24 | ... as ... | -| var_decls.swift:54:10:54:10 | _w1 | var_decls.swift:54:10:54:10 | ... as ... | -| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | w1 | -| var_decls.swift:55:24:55:24 | _w2 | var_decls.swift:55:24:55:24 | ... as ... | -| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | w2 | -| var_decls.swift:56:29:56:29 | $w3 | var_decls.swift:56:29:56:29 | ... as ... | -| var_decls.swift:56:29:56:29 | _w3 | var_decls.swift:56:29:56:29 | ... as ... | -| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | w3 | -| var_decls.swift:57:36:57:36 | $w4 | var_decls.swift:57:36:57:36 | ... as ... | -| var_decls.swift:57:36:57:36 | _w4 | var_decls.swift:57:36:57:36 | ... as ... | -| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | w4 | -| var_decls.swift:65:19:65:19 | case_variable | var_decls.swift:65:8:65:35 | .value(...) | -| var_decls.swift:67:22:67:22 | unused_case_variable | var_decls.swift:67:8:67:42 | .value(...) | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql deleted file mode 100644 index 2fb533a5a69..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getParentPattern.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getParentPattern() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.expected deleted file mode 100644 index b32567e0cbb..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.expected +++ /dev/null @@ -1,5 +0,0 @@ -| var_decls.swift:24:15:24:15 | wrapped | var_decls.swift:24:15:24:15 | _wrapped | -| var_decls.swift:54:10:54:10 | w1 | var_decls.swift:54:10:54:10 | _w1 | -| var_decls.swift:55:24:55:24 | w2 | var_decls.swift:55:24:55:24 | _w2 | -| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | _w3 | -| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | _w4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql deleted file mode 100644 index b57a2cd02b7..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperBackingVar() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.expected deleted file mode 100644 index d6069ccf602..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.expected +++ /dev/null @@ -1,5 +0,0 @@ -| var_decls.swift:24:15:24:15 | wrapped | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:54:10:54:10 | w1 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:55:24:55:24 | w2 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql deleted file mode 100644 index 27d1215c98a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperBackingVarBinding.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperBackingVarBinding() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.expected deleted file mode 100644 index 720938bab9b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.expected +++ /dev/null @@ -1,2 +0,0 @@ -| var_decls.swift:56:29:56:29 | w3 | var_decls.swift:56:29:56:29 | $w3 | -| var_decls.swift:57:36:57:36 | w4 | var_decls.swift:57:36:57:36 | $w4 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql deleted file mode 100644 index 6376fc809b5..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperProjectionVar() diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.expected deleted file mode 100644 index cb47a922746..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.expected +++ /dev/null @@ -1,2 +0,0 @@ -| var_decls.swift:56:29:56:29 | w3 | file://:0:0:0:0 | var ... = ... | -| var_decls.swift:57:36:57:36 | w4 | file://:0:0:0:0 | var ... = ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql deleted file mode 100644 index 7e513c831a7..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl_getPropertyWrapperProjectionVarBinding.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConcreteVarDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperProjectionVarBinding() diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected index 754ef2c4f19..4f4fe8cfa1b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected @@ -1,3 +1,4 @@ +instances | enums.swift:2:5:2:18 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 2 | | enums.swift:3:5:3:26 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 3 | | enums.swift:8:5:8:18 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 2 | @@ -10,3 +11,23 @@ | enums.swift:24:5:24:25 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | | enums.swift:25:5:25:24 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | | enums.swift:26:5:26:44 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | +getMember +getElement +| enums.swift:2:5:2:18 | case ... | 0 | enums.swift:2:10:2:10 | value1 | +| enums.swift:2:5:2:18 | case ... | 1 | enums.swift:2:18:2:18 | value2 | +| enums.swift:3:5:3:26 | case ... | 0 | enums.swift:3:10:3:10 | value3 | +| enums.swift:3:5:3:26 | case ... | 1 | enums.swift:3:18:3:18 | value4 | +| enums.swift:3:5:3:26 | case ... | 2 | enums.swift:3:26:3:26 | value5 | +| enums.swift:8:5:8:18 | case ... | 0 | enums.swift:8:10:8:10 | value1 | +| enums.swift:8:5:8:18 | case ... | 1 | enums.swift:8:18:8:18 | value2 | +| enums.swift:9:5:9:26 | case ... | 0 | enums.swift:9:10:9:10 | value3 | +| enums.swift:9:5:9:26 | case ... | 1 | enums.swift:9:18:9:18 | value4 | +| enums.swift:9:5:9:26 | case ... | 2 | enums.swift:9:26:9:26 | value5 | +| enums.swift:13:5:13:22 | case ... | 0 | enums.swift:13:10:13:22 | nodata1 | +| enums.swift:14:5:14:21 | case ... | 0 | enums.swift:14:10:14:21 | intdata | +| enums.swift:15:5:15:35 | case ... | 0 | enums.swift:15:10:15:35 | tuple | +| enums.swift:19:5:19:10 | case ... | 0 | enums.swift:19:10:19:10 | none | +| enums.swift:20:5:20:16 | case ... | 0 | enums.swift:20:10:20:16 | some | +| enums.swift:24:5:24:25 | case ... | 0 | enums.swift:24:10:24:25 | nodata1 | +| enums.swift:25:5:25:24 | case ... | 0 | enums.swift:25:10:25:24 | intdata | +| enums.swift:26:5:26:44 | case ... | 0 | enums.swift:26:10:26:44 | tuple | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql index b0cf267f645..77c68ef40e9 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql @@ -2,12 +2,24 @@ import codeql.swift.elements import TestUtils -from EnumCaseDecl x, ModuleDecl getModule, int getNumberOfMembers, int getNumberOfElements -where +query predicate instances( + EnumCaseDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getNumberOfElements__label, int getNumberOfElements +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getNumberOfElements__label = "getNumberOfElements:" and getNumberOfElements = x.getNumberOfElements() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, - "getNumberOfElements:", getNumberOfElements +} + +query predicate getMember(EnumCaseDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getElement(EnumCaseDecl x, int index, EnumElementDecl getElement) { + toBeTested(x) and not x.isUnknown() and getElement = x.getElement(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.expected deleted file mode 100644 index d5082606f66..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.expected +++ /dev/null @@ -1,18 +0,0 @@ -| enums.swift:2:5:2:18 | case ... | 0 | enums.swift:2:10:2:10 | value1 | -| enums.swift:2:5:2:18 | case ... | 1 | enums.swift:2:18:2:18 | value2 | -| enums.swift:3:5:3:26 | case ... | 0 | enums.swift:3:10:3:10 | value3 | -| enums.swift:3:5:3:26 | case ... | 1 | enums.swift:3:18:3:18 | value4 | -| enums.swift:3:5:3:26 | case ... | 2 | enums.swift:3:26:3:26 | value5 | -| enums.swift:8:5:8:18 | case ... | 0 | enums.swift:8:10:8:10 | value1 | -| enums.swift:8:5:8:18 | case ... | 1 | enums.swift:8:18:8:18 | value2 | -| enums.swift:9:5:9:26 | case ... | 0 | enums.swift:9:10:9:10 | value3 | -| enums.swift:9:5:9:26 | case ... | 1 | enums.swift:9:18:9:18 | value4 | -| enums.swift:9:5:9:26 | case ... | 2 | enums.swift:9:26:9:26 | value5 | -| enums.swift:13:5:13:22 | case ... | 0 | enums.swift:13:10:13:22 | nodata1 | -| enums.swift:14:5:14:21 | case ... | 0 | enums.swift:14:10:14:21 | intdata | -| enums.swift:15:5:15:35 | case ... | 0 | enums.swift:15:10:15:35 | tuple | -| enums.swift:19:5:19:10 | case ... | 0 | enums.swift:19:10:19:10 | none | -| enums.swift:20:5:20:16 | case ... | 0 | enums.swift:20:10:20:16 | some | -| enums.swift:24:5:24:25 | case ... | 0 | enums.swift:24:10:24:25 | nodata1 | -| enums.swift:25:5:25:24 | case ... | 0 | enums.swift:25:10:25:24 | intdata | -| enums.swift:26:5:26:44 | case ... | 0 | enums.swift:26:10:26:44 | tuple | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql deleted file mode 100644 index bbc22666cc0..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getElement.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumCaseDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getElement(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql deleted file mode 100644 index 630e99f9f57..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumCaseDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected index 694cf7d1035..3f499934751 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected @@ -1,5 +1,49 @@ +instances | enums.swift:1:1:4:1 | EnumValues | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValues.Type | getName: | EnumValues | getNumberOfInheritedTypes: | 0 | getType: | EnumValues | | enums.swift:7:1:10:1 | EnumValuesWithBase | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValuesWithBase.Type | getName: | EnumValuesWithBase | getNumberOfInheritedTypes: | 1 | getType: | EnumValuesWithBase | | enums.swift:12:1:16:1 | EnumWithParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithParams.Type | getName: | EnumWithParams | getNumberOfInheritedTypes: | 0 | getType: | EnumWithParams | | enums.swift:18:1:21:1 | GenericEnum | getNumberOfGenericTypeParams: | 1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 4 | getInterfaceType: | GenericEnum.Type | getName: | GenericEnum | getNumberOfInheritedTypes: | 0 | getType: | GenericEnum | | enums.swift:23:1:27:1 | EnumWithNamedParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithNamedParams.Type | getName: | EnumWithNamedParams | getNumberOfInheritedTypes: | 0 | getType: | EnumWithNamedParams | +getGenericTypeParam +| enums.swift:18:1:21:1 | GenericEnum | 0 | enums.swift:18:18:18:18 | T | +getMember +| enums.swift:1:1:4:1 | EnumValues | 0 | enums.swift:2:5:2:18 | case ... | +| enums.swift:1:1:4:1 | EnumValues | 1 | enums.swift:2:10:2:10 | value1 | +| enums.swift:1:1:4:1 | EnumValues | 2 | enums.swift:2:18:2:18 | value2 | +| enums.swift:1:1:4:1 | EnumValues | 3 | enums.swift:3:5:3:26 | case ... | +| enums.swift:1:1:4:1 | EnumValues | 4 | enums.swift:3:10:3:10 | value3 | +| enums.swift:1:1:4:1 | EnumValues | 5 | enums.swift:3:18:3:18 | value4 | +| enums.swift:1:1:4:1 | EnumValues | 6 | enums.swift:3:26:3:26 | value5 | +| enums.swift:1:1:4:1 | EnumValues | 7 | file://:0:0:0:0 | __derived_enum_equals(_:_:) | +| enums.swift:1:1:4:1 | EnumValues | 8 | file://:0:0:0:0 | hashValue | +| enums.swift:1:1:4:1 | EnumValues | 9 | file://:0:0:0:0 | var ... = ... | +| enums.swift:1:1:4:1 | EnumValues | 10 | file://:0:0:0:0 | hash(into:) | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 0 | enums.swift:8:5:8:18 | case ... | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 1 | enums.swift:8:10:8:10 | value1 | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 2 | enums.swift:8:18:8:18 | value2 | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 3 | enums.swift:9:5:9:26 | case ... | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 4 | enums.swift:9:10:9:10 | value3 | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 5 | enums.swift:9:18:9:18 | value4 | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 6 | enums.swift:9:26:9:26 | value5 | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 7 | file://:0:0:0:0 | RawValue | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 8 | file://:0:0:0:0 | EnumValuesWithBase.init(rawValue:) | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 9 | file://:0:0:0:0 | rawValue | +| enums.swift:7:1:10:1 | EnumValuesWithBase | 10 | file://:0:0:0:0 | var ... = ... | +| enums.swift:12:1:16:1 | EnumWithParams | 0 | enums.swift:13:5:13:22 | case ... | +| enums.swift:12:1:16:1 | EnumWithParams | 1 | enums.swift:13:10:13:22 | nodata1 | +| enums.swift:12:1:16:1 | EnumWithParams | 2 | enums.swift:14:5:14:21 | case ... | +| enums.swift:12:1:16:1 | EnumWithParams | 3 | enums.swift:14:10:14:21 | intdata | +| enums.swift:12:1:16:1 | EnumWithParams | 4 | enums.swift:15:5:15:35 | case ... | +| enums.swift:12:1:16:1 | EnumWithParams | 5 | enums.swift:15:10:15:35 | tuple | +| enums.swift:18:1:21:1 | GenericEnum | 0 | enums.swift:19:5:19:10 | case ... | +| enums.swift:18:1:21:1 | GenericEnum | 1 | enums.swift:19:10:19:10 | none | +| enums.swift:18:1:21:1 | GenericEnum | 2 | enums.swift:20:5:20:16 | case ... | +| enums.swift:18:1:21:1 | GenericEnum | 3 | enums.swift:20:10:20:16 | some | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 0 | enums.swift:24:5:24:25 | case ... | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 1 | enums.swift:24:10:24:25 | nodata1 | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 2 | enums.swift:25:5:25:24 | case ... | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 3 | enums.swift:25:10:25:24 | intdata | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 4 | enums.swift:26:5:26:44 | case ... | +| enums.swift:23:1:27:1 | EnumWithNamedParams | 5 | enums.swift:26:10:26:44 | tuple | +getInheritedType +| enums.swift:7:1:10:1 | EnumValuesWithBase | 0 | Double | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql index 5a8d80276ef..3eee947b9f6 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql @@ -2,19 +2,39 @@ import codeql.swift.elements import TestUtils -from - EnumDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfInheritedTypes, Type getType -where +query predicate instances( + EnumDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getName__label, string getName, string getNumberOfInheritedTypes__label, + int getNumberOfInheritedTypes, string getType__label, Type getType +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and + getType__label = "getType:" and getType = x.getType() -select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getType:", getType +} + +query predicate getGenericTypeParam(EnumDecl x, int index, GenericTypeParamDecl getGenericTypeParam) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(EnumDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getInheritedType(EnumDecl x, int index, Type getInheritedType) { + toBeTested(x) and not x.isUnknown() and getInheritedType = x.getInheritedType(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.expected deleted file mode 100644 index 47a6b335d76..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.expected +++ /dev/null @@ -1 +0,0 @@ -| enums.swift:18:1:21:1 | GenericEnum | 0 | enums.swift:18:18:18:18 | T | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql deleted file mode 100644 index 02d75edf7b3..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected deleted file mode 100644 index 764f6f21697..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.expected +++ /dev/null @@ -1 +0,0 @@ -| enums.swift:7:1:10:1 | EnumValuesWithBase | 0 | Double | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql deleted file mode 100644 index 2ea47f737f8..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getInheritedType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.expected deleted file mode 100644 index 8d4ba0c5e72..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.expected +++ /dev/null @@ -1,38 +0,0 @@ -| enums.swift:1:1:4:1 | EnumValues | 0 | enums.swift:2:5:2:18 | case ... | -| enums.swift:1:1:4:1 | EnumValues | 1 | enums.swift:2:10:2:10 | value1 | -| enums.swift:1:1:4:1 | EnumValues | 2 | enums.swift:2:18:2:18 | value2 | -| enums.swift:1:1:4:1 | EnumValues | 3 | enums.swift:3:5:3:26 | case ... | -| enums.swift:1:1:4:1 | EnumValues | 4 | enums.swift:3:10:3:10 | value3 | -| enums.swift:1:1:4:1 | EnumValues | 5 | enums.swift:3:18:3:18 | value4 | -| enums.swift:1:1:4:1 | EnumValues | 6 | enums.swift:3:26:3:26 | value5 | -| enums.swift:1:1:4:1 | EnumValues | 7 | file://:0:0:0:0 | __derived_enum_equals(_:_:) | -| enums.swift:1:1:4:1 | EnumValues | 8 | file://:0:0:0:0 | hashValue | -| enums.swift:1:1:4:1 | EnumValues | 9 | file://:0:0:0:0 | var ... = ... | -| enums.swift:1:1:4:1 | EnumValues | 10 | file://:0:0:0:0 | hash(into:) | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 0 | enums.swift:8:5:8:18 | case ... | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 1 | enums.swift:8:10:8:10 | value1 | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 2 | enums.swift:8:18:8:18 | value2 | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 3 | enums.swift:9:5:9:26 | case ... | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 4 | enums.swift:9:10:9:10 | value3 | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 5 | enums.swift:9:18:9:18 | value4 | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 6 | enums.swift:9:26:9:26 | value5 | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 7 | file://:0:0:0:0 | RawValue | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 8 | file://:0:0:0:0 | EnumValuesWithBase.init(rawValue:) | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 9 | file://:0:0:0:0 | rawValue | -| enums.swift:7:1:10:1 | EnumValuesWithBase | 10 | file://:0:0:0:0 | var ... = ... | -| enums.swift:12:1:16:1 | EnumWithParams | 0 | enums.swift:13:5:13:22 | case ... | -| enums.swift:12:1:16:1 | EnumWithParams | 1 | enums.swift:13:10:13:22 | nodata1 | -| enums.swift:12:1:16:1 | EnumWithParams | 2 | enums.swift:14:5:14:21 | case ... | -| enums.swift:12:1:16:1 | EnumWithParams | 3 | enums.swift:14:10:14:21 | intdata | -| enums.swift:12:1:16:1 | EnumWithParams | 4 | enums.swift:15:5:15:35 | case ... | -| enums.swift:12:1:16:1 | EnumWithParams | 5 | enums.swift:15:10:15:35 | tuple | -| enums.swift:18:1:21:1 | GenericEnum | 0 | enums.swift:19:5:19:10 | case ... | -| enums.swift:18:1:21:1 | GenericEnum | 1 | enums.swift:19:10:19:10 | none | -| enums.swift:18:1:21:1 | GenericEnum | 2 | enums.swift:20:5:20:16 | case ... | -| enums.swift:18:1:21:1 | GenericEnum | 3 | enums.swift:20:10:20:16 | some | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 0 | enums.swift:24:5:24:25 | case ... | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 1 | enums.swift:24:10:24:25 | nodata1 | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 2 | enums.swift:25:5:25:24 | case ... | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 3 | enums.swift:25:10:25:24 | intdata | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 4 | enums.swift:26:5:26:44 | case ... | -| enums.swift:23:1:27:1 | EnumWithNamedParams | 5 | enums.swift:26:10:26:44 | tuple | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql deleted file mode 100644 index 28b99b8dc96..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected index 76a4a119153..dd0bc7bdc22 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected @@ -1,3 +1,4 @@ +instances | enums.swift:2:10:2:10 | value1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value1 | getNumberOfParams: | 0 | | enums.swift:2:18:2:18 | value2 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value2 | getNumberOfParams: | 0 | | enums.swift:3:10:3:10 | value3 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value3 | getNumberOfParams: | 0 | @@ -16,3 +17,16 @@ | enums.swift:24:10:24:25 | nodata1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Void) -> EnumWithNamedParams | getName: | nodata1 | getNumberOfParams: | 1 | | enums.swift:25:10:25:24 | intdata | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int) -> EnumWithNamedParams | getName: | intdata | getNumberOfParams: | 1 | | enums.swift:26:10:26:44 | tuple | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int, String, Double) -> EnumWithNamedParams | getName: | tuple | getNumberOfParams: | 3 | +getMember +getParam +| enums.swift:13:10:13:22 | nodata1 | 0 | enums.swift:13:18:13:18 | _ | +| enums.swift:14:10:14:21 | intdata | 0 | enums.swift:14:18:14:18 | _ | +| enums.swift:15:10:15:35 | tuple | 0 | enums.swift:15:16:15:16 | _ | +| enums.swift:15:10:15:35 | tuple | 1 | enums.swift:15:21:15:21 | _ | +| enums.swift:15:10:15:35 | tuple | 2 | enums.swift:15:29:15:29 | _ | +| enums.swift:20:10:20:16 | some | 0 | enums.swift:20:15:20:15 | _ | +| enums.swift:24:10:24:25 | nodata1 | 0 | enums.swift:24:18:24:21 | v | +| enums.swift:25:10:25:24 | intdata | 0 | enums.swift:25:18:25:21 | i | +| enums.swift:26:10:26:44 | tuple | 0 | enums.swift:26:16:26:19 | i | +| enums.swift:26:10:26:44 | tuple | 1 | enums.swift:26:24:26:27 | s | +| enums.swift:26:10:26:44 | tuple | 2 | enums.swift:26:35:26:38 | d | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql index 1ff638217b0..13e0e10ea54 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - EnumElementDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, - string getName, int getNumberOfParams -where +query predicate instances( + EnumElementDecl x, string getModule__label, ModuleDecl getModule, + string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getNumberOfParams__label, + int getNumberOfParams +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getName:", getName, "getNumberOfParams:", getNumberOfParams +} + +query predicate getMember(EnumElementDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getParam(EnumElementDecl x, int index, ParamDecl getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql deleted file mode 100644 index 2a500be3149..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumElementDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.expected deleted file mode 100644 index 15e0149f595..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.expected +++ /dev/null @@ -1,11 +0,0 @@ -| enums.swift:13:10:13:22 | nodata1 | 0 | enums.swift:13:18:13:18 | _ | -| enums.swift:14:10:14:21 | intdata | 0 | enums.swift:14:18:14:18 | _ | -| enums.swift:15:10:15:35 | tuple | 0 | enums.swift:15:16:15:16 | _ | -| enums.swift:15:10:15:35 | tuple | 1 | enums.swift:15:21:15:21 | _ | -| enums.swift:15:10:15:35 | tuple | 2 | enums.swift:15:29:15:29 | _ | -| enums.swift:20:10:20:16 | some | 0 | enums.swift:20:15:20:15 | _ | -| enums.swift:24:10:24:25 | nodata1 | 0 | enums.swift:24:18:24:21 | v | -| enums.swift:25:10:25:24 | intdata | 0 | enums.swift:25:18:25:21 | i | -| enums.swift:26:10:26:44 | tuple | 0 | enums.swift:26:16:26:19 | i | -| enums.swift:26:10:26:44 | tuple | 1 | enums.swift:26:24:26:27 | s | -| enums.swift:26:10:26:44 | tuple | 2 | enums.swift:26:35:26:38 | d | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql deleted file mode 100644 index 80621f6d6fa..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumElementDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected index bd70109bed0..712149164f6 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected @@ -1,4 +1,19 @@ +instances | extensions.swift:5:1:9:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 0 | | extensions.swift:11:1:15:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 0 | | extensions.swift:21:1:23:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 1 | | extensions.swift:27:1:29:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 2 | +getMember +| extensions.swift:5:1:9:1 | extension of S | 0 | extensions.swift:6:5:6:37 | var ... = ... | +| extensions.swift:5:1:9:1 | extension of S | 1 | extensions.swift:6:9:6:9 | x | +| extensions.swift:5:1:9:1 | extension of S | 2 | extensions.swift:8:5:8:17 | foo() | +| extensions.swift:11:1:15:1 | extension of C | 0 | extensions.swift:12:5:12:38 | var ... = ... | +| extensions.swift:11:1:15:1 | extension of C | 1 | extensions.swift:12:9:12:9 | y | +| extensions.swift:11:1:15:1 | extension of C | 2 | extensions.swift:14:5:14:17 | bar() | +| extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:22:5:22:17 | baz() | +| extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:28:5:28:17 | baz() | +getGenericTypeParam +getProtocol +| extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:17:1:19:1 | P1 | +| extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:17:1:19:1 | P1 | +| extensions.swift:27:1:29:1 | extension of C | 1 | extensions.swift:25:1:25:14 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql index 725a9082047..05fdef80f8e 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql @@ -2,17 +2,36 @@ import codeql.swift.elements import TestUtils -from - ExtensionDecl x, ModuleDecl getModule, int getNumberOfMembers, int getNumberOfGenericTypeParams, - NominalTypeDecl getExtendedTypeDecl, int getNumberOfProtocols -where +query predicate instances( + ExtensionDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getNumberOfGenericTypeParams__label, + int getNumberOfGenericTypeParams, string getExtendedTypeDecl__label, + NominalTypeDecl getExtendedTypeDecl, string getNumberOfProtocols__label, int getNumberOfProtocols +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getExtendedTypeDecl__label = "getExtendedTypeDecl:" and getExtendedTypeDecl = x.getExtendedTypeDecl() and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, - "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getExtendedTypeDecl:", - getExtendedTypeDecl, "getNumberOfProtocols:", getNumberOfProtocols +} + +query predicate getMember(ExtensionDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getGenericTypeParam( + ExtensionDecl x, int index, GenericTypeParamDecl getGenericTypeParam +) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getProtocol(ExtensionDecl x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql deleted file mode 100644 index 4f67a7edefc..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ExtensionDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.expected deleted file mode 100644 index 0d89d932b42..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.expected +++ /dev/null @@ -1,8 +0,0 @@ -| extensions.swift:5:1:9:1 | extension of S | 0 | extensions.swift:6:5:6:37 | var ... = ... | -| extensions.swift:5:1:9:1 | extension of S | 1 | extensions.swift:6:9:6:9 | x | -| extensions.swift:5:1:9:1 | extension of S | 2 | extensions.swift:8:5:8:17 | foo() | -| extensions.swift:11:1:15:1 | extension of C | 0 | extensions.swift:12:5:12:38 | var ... = ... | -| extensions.swift:11:1:15:1 | extension of C | 1 | extensions.swift:12:9:12:9 | y | -| extensions.swift:11:1:15:1 | extension of C | 2 | extensions.swift:14:5:14:17 | bar() | -| extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:22:5:22:17 | baz() | -| extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:28:5:28:17 | baz() | diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql deleted file mode 100644 index 7025173bb21..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ExtensionDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.expected b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.expected deleted file mode 100644 index 9a8915164b4..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.expected +++ /dev/null @@ -1,3 +0,0 @@ -| extensions.swift:21:1:23:1 | extension of S | 0 | extensions.swift:17:1:19:1 | P1 | -| extensions.swift:27:1:29:1 | extension of C | 0 | extensions.swift:17:1:19:1 | P1 | -| extensions.swift:27:1:29:1 | extension of C | 1 | extensions.swift:25:1:25:14 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql deleted file mode 100644 index 9983f602e8b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ExtensionDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected index e69de29bb2d..c7826fe6321 100644 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.expected @@ -0,0 +1,3 @@ +instances +getMember +getActiveElement diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql index 2bb062dbb8f..31bf9b9c00e 100644 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql @@ -2,12 +2,24 @@ import codeql.swift.elements import TestUtils -from IfConfigDecl x, ModuleDecl getModule, int getNumberOfMembers, int getNumberOfActiveElements -where +query predicate instances( + IfConfigDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getNumberOfActiveElements__label, int getNumberOfActiveElements +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getNumberOfActiveElements__label = "getNumberOfActiveElements:" and getNumberOfActiveElements = x.getNumberOfActiveElements() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, - "getNumberOfActiveElements:", getNumberOfActiveElements +} + +query predicate getMember(IfConfigDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getActiveElement(IfConfigDecl x, int index, AstNode getActiveElement) { + toBeTested(x) and not x.isUnknown() and getActiveElement = x.getActiveElement(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql deleted file mode 100644 index d1613f30389..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getActiveElement.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from IfConfigDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getActiveElement(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql deleted file mode 100644 index d2b1b6961a3..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from IfConfigDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected index 2b781c5e359..b20c6b2f2f9 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected @@ -1,5 +1,19 @@ +instances | import.swift:1:1:1:8 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 0 | | import.swift:2:1:2:24 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | | import.swift:3:12:3:32 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | yes | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | | import.swift:4:1:4:19 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 2 | | import.swift:5:1:5:23 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | +getMember +getImportedModule +| import.swift:1:1:1:8 | import ... | file://:0:0:0:0 | Swift | +| import.swift:2:1:2:24 | import ... | file://:0:0:0:0 | Swift | +| import.swift:3:12:3:32 | import ... | file://:0:0:0:0 | Swift | +| import.swift:4:1:4:19 | import ... | file://:0:0:0:0 | Swift | +| import.swift:5:1:5:23 | import ... | file://:0:0:0:0 | Swift | +getDeclaration +| import.swift:2:1:2:24 | import ... | 0 | file://:0:0:0:0 | Int | +| import.swift:3:12:3:32 | import ... | 0 | file://:0:0:0:0 | Double | +| import.swift:4:1:4:19 | import ... | 0 | file://:0:0:0:0 | print(_:separator:terminator:) | +| import.swift:4:1:4:19 | import ... | 1 | file://:0:0:0:0 | print(_:separator:terminator:to:) | +| import.swift:5:1:5:23 | import ... | 0 | file://:0:0:0:0 | Hashable | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql index c773f2890a5..247e10d9fa4 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql @@ -2,17 +2,34 @@ import codeql.swift.elements import TestUtils -from - ImportDecl x, ModuleDecl getModule, int getNumberOfMembers, string isExported, - string hasImportedModule, int getNumberOfDeclarations -where +query predicate instances( + ImportDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string isExported__label, string isExported, + string hasImportedModule__label, string hasImportedModule, string getNumberOfDeclarations__label, + int getNumberOfDeclarations +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + isExported__label = "isExported:" and (if x.isExported() then isExported = "yes" else isExported = "no") and + hasImportedModule__label = "hasImportedModule:" and (if x.hasImportedModule() then hasImportedModule = "yes" else hasImportedModule = "no") and + getNumberOfDeclarations__label = "getNumberOfDeclarations:" and getNumberOfDeclarations = x.getNumberOfDeclarations() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "isExported:", - isExported, "hasImportedModule:", hasImportedModule, "getNumberOfDeclarations:", - getNumberOfDeclarations +} + +query predicate getMember(ImportDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getImportedModule(ImportDecl x, ModuleDecl getImportedModule) { + toBeTested(x) and not x.isUnknown() and getImportedModule = x.getImportedModule() +} + +query predicate getDeclaration(ImportDecl x, int index, ValueDecl getDeclaration) { + toBeTested(x) and not x.isUnknown() and getDeclaration = x.getDeclaration(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected deleted file mode 100644 index b877b113bc6..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.expected +++ /dev/null @@ -1,5 +0,0 @@ -| import.swift:2:1:2:24 | import ... | 0 | file://:0:0:0:0 | Int | -| import.swift:3:12:3:32 | import ... | 0 | file://:0:0:0:0 | Double | -| import.swift:4:1:4:19 | import ... | 0 | file://:0:0:0:0 | print(_:separator:terminator:) | -| import.swift:4:1:4:19 | import ... | 1 | file://:0:0:0:0 | print(_:separator:terminator:to:) | -| import.swift:5:1:5:23 | import ... | 0 | file://:0:0:0:0 | Hashable | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql deleted file mode 100644 index 0c9b586186b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getDeclaration.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ImportDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getDeclaration(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.expected deleted file mode 100644 index 8d064a70744..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.expected +++ /dev/null @@ -1,5 +0,0 @@ -| import.swift:1:1:1:8 | import ... | file://:0:0:0:0 | Swift | -| import.swift:2:1:2:24 | import ... | file://:0:0:0:0 | Swift | -| import.swift:3:12:3:32 | import ... | file://:0:0:0:0 | Swift | -| import.swift:4:1:4:19 | import ... | file://:0:0:0:0 | Swift | -| import.swift:5:1:5:23 | import ... | file://:0:0:0:0 | Swift | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql deleted file mode 100644 index 9fe8acad96e..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getImportedModule.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ImportDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getImportedModule() diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql deleted file mode 100644 index 2aa0c828947..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ImportDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected index 65bec16eea0..58d9959602b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected @@ -1,3 +1,12 @@ +instances | test.swift:2:1:2:50 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | A() | getNumberOfParameters: | 0 | getNumberOfRoles: | 1 | | test.swift:4:1:4:15 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | B() | getNumberOfParameters: | 0 | getNumberOfRoles: | 1 | | test.swift:7:1:7:15 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | C() | getNumberOfParameters: | 0 | getNumberOfRoles: | 2 | +getGenericTypeParam +getMember +getParameter +getRole +| test.swift:2:1:2:50 | MacroDecl | 0 | test.swift:1:2:1:26 | #freestanding(declaration) | +| test.swift:4:1:4:15 | MacroDecl | 0 | test.swift:3:2:3:25 | #freestanding(expression) | +| test.swift:7:1:7:15 | MacroDecl | 0 | test.swift:6:2:6:20 | @attached(extension) | +| test.swift:7:1:7:15 | MacroDecl | 1 | test.swift:5:2:5:17 | @attached(member) | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql index 4d8c6e77aae..0e9c8fdd337 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql @@ -2,19 +2,43 @@ import codeql.swift.elements import TestUtils -from - MacroDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfParameters, int getNumberOfRoles -where +query predicate instances( + MacroDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getName__label, string getName, string getNumberOfParameters__label, + int getNumberOfParameters, string getNumberOfRoles__label, int getNumberOfRoles +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfParameters__label = "getNumberOfParameters:" and getNumberOfParameters = x.getNumberOfParameters() and + getNumberOfRoles__label = "getNumberOfRoles:" and getNumberOfRoles = x.getNumberOfRoles() -select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfParameters:", getNumberOfParameters, "getNumberOfRoles:", getNumberOfRoles +} + +query predicate getGenericTypeParam(MacroDecl x, int index, GenericTypeParamDecl getGenericTypeParam) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(MacroDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getParameter(MacroDecl x, int index, ParamDecl getParameter) { + toBeTested(x) and not x.isUnknown() and getParameter = x.getParameter(index) +} + +query predicate getRole(MacroDecl x, int index, MacroRole getRole) { + toBeTested(x) and not x.isUnknown() and getRole = x.getRole(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql deleted file mode 100644 index c74a66c6b06..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql deleted file mode 100644 index 1de9c7f2493..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql deleted file mode 100644 index 1e4c8754e34..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getParameter.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParameter(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.expected deleted file mode 100644 index faa0a6256a6..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.expected +++ /dev/null @@ -1,4 +0,0 @@ -| test.swift:2:1:2:50 | MacroDecl | 0 | test.swift:1:2:1:26 | #freestanding(declaration) | -| test.swift:4:1:4:15 | MacroDecl | 0 | test.swift:3:2:3:25 | #freestanding(expression) | -| test.swift:7:1:7:15 | MacroDecl | 0 | test.swift:6:2:6:20 | @attached(extension) | -| test.swift:7:1:7:15 | MacroDecl | 1 | test.swift:5:2:5:17 | @attached(member) | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql deleted file mode 100644 index cce29824f2a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl_getRole.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getRole(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected index 036d4f7ff6e..31f4cfbf929 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected @@ -1,3 +1,4 @@ +instances | file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | | file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | | file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | @@ -18,3 +19,7 @@ | test.swift:3:2:3:25 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | | test.swift:5:2:5:17 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | | test.swift:6:2:6:20 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | +getConformance +getName +| file://:0:0:0:0 | @attached(peer) | 0 | $() | +| file://:0:0:0:0 | @attached(peer) | 0 | _lldb_summary() | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql index fb72920ffa4..0b8c8b53113 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql @@ -2,13 +2,27 @@ import codeql.swift.elements import TestUtils -from MacroRole x, int getKind, int getMacroSyntax, int getNumberOfConformances, int getNumberOfNames -where +query predicate instances( + MacroRole x, string getKind__label, int getKind, string getMacroSyntax__label, int getMacroSyntax, + string getNumberOfConformances__label, int getNumberOfConformances, + string getNumberOfNames__label, int getNumberOfNames +) { toBeTested(x) and not x.isUnknown() and + getKind__label = "getKind:" and getKind = x.getKind() and + getMacroSyntax__label = "getMacroSyntax:" and getMacroSyntax = x.getMacroSyntax() and + getNumberOfConformances__label = "getNumberOfConformances:" and getNumberOfConformances = x.getNumberOfConformances() and + getNumberOfNames__label = "getNumberOfNames:" and getNumberOfNames = x.getNumberOfNames() -select x, "getKind:", getKind, "getMacroSyntax:", getMacroSyntax, "getNumberOfConformances:", - getNumberOfConformances, "getNumberOfNames:", getNumberOfNames +} + +query predicate getConformance(MacroRole x, int index, Expr getConformance) { + toBeTested(x) and not x.isUnknown() and getConformance = x.getConformance(index) +} + +query predicate getName(MacroRole x, int index, string getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql deleted file mode 100644 index c3b8627010e..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getConformance.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroRole x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getConformance(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.expected deleted file mode 100644 index 0c42bfc4601..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.expected +++ /dev/null @@ -1,2 +0,0 @@ -| file://:0:0:0:0 | @attached(peer) | 0 | $() | -| file://:0:0:0:0 | @attached(peer) | 0 | _lldb_summary() | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql deleted file mode 100644 index 296037f35c5..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MacroRole x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getName(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected index 37ee373dc83..da5bfd2898f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected @@ -1,3 +1,20 @@ +instances | file://:0:0:0:0 | Foo | getModule: | file://:0:0:0:0 | Foo | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | Foo | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 5 | getNumberOfExportedModules: | 1 | | file://:0:0:0:0 | __ObjC | getModule: | file://:0:0:0:0 | __ObjC | getNumberOfMembers: | 0 | getInterfaceType: | module<__ObjC> | getName: | __ObjC | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 1 | getNumberOfExportedModules: | 0 | | file://:0:0:0:0 | default_module_name | getModule: | file://:0:0:0:0 | default_module_name | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | default_module_name | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 5 | getNumberOfExportedModules: | 0 | +getMember +getInheritedType +getAnImportedModule +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | Swift | +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | SwiftOnoneSupport | +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _Concurrency | +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _StringProcessing | +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _SwiftConcurrencyShims | +| file://:0:0:0:0 | __ObjC | file://:0:0:0:0 | Swift | +| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | Swift | +| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | SwiftOnoneSupport | +| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _Concurrency | +| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _StringProcessing | +| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _SwiftConcurrencyShims | +getAnExportedModule +| file://:0:0:0:0 | Foo | file://:0:0:0:0 | Swift | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql index f48c8ae976c..d6224946d4b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql @@ -2,24 +2,49 @@ import codeql.swift.elements import TestUtils -from - ModuleDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, string getName, - int getNumberOfInheritedTypes, string isBuiltinModule, string isSystemModule, - int getNumberOfImportedModules, int getNumberOfExportedModules -where +query predicate instances( + ModuleDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getName__label, string getName, string getNumberOfInheritedTypes__label, + int getNumberOfInheritedTypes, string isBuiltinModule__label, string isBuiltinModule, + string isSystemModule__label, string isSystemModule, string getNumberOfImportedModules__label, + int getNumberOfImportedModules, string getNumberOfExportedModules__label, + int getNumberOfExportedModules +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and + isBuiltinModule__label = "isBuiltinModule:" and (if x.isBuiltinModule() then isBuiltinModule = "yes" else isBuiltinModule = "no") and + isSystemModule__label = "isSystemModule:" and (if x.isSystemModule() then isSystemModule = "yes" else isSystemModule = "no") and + getNumberOfImportedModules__label = "getNumberOfImportedModules:" and getNumberOfImportedModules = x.getNumberOfImportedModules() and + getNumberOfExportedModules__label = "getNumberOfExportedModules:" and getNumberOfExportedModules = x.getNumberOfExportedModules() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getName:", getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, - "isBuiltinModule:", isBuiltinModule, "isSystemModule:", isSystemModule, - "getNumberOfImportedModules:", getNumberOfImportedModules, "getNumberOfExportedModules:", - getNumberOfExportedModules +} + +query predicate getMember(ModuleDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getInheritedType(ModuleDecl x, int index, Type getInheritedType) { + toBeTested(x) and not x.isUnknown() and getInheritedType = x.getInheritedType(index) +} + +query predicate getAnImportedModule(ModuleDecl x, ModuleDecl getAnImportedModule) { + toBeTested(x) and not x.isUnknown() and getAnImportedModule = x.getAnImportedModule() +} + +query predicate getAnExportedModule(ModuleDecl x, ModuleDecl getAnExportedModule) { + toBeTested(x) and not x.isUnknown() and getAnExportedModule = x.getAnExportedModule() +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.expected deleted file mode 100644 index 271c68f34fd..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.expected +++ /dev/null @@ -1 +0,0 @@ -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | Swift | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql deleted file mode 100644 index 1a0476fb658..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnExportedModule.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ModuleDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAnExportedModule() diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.expected deleted file mode 100644 index 57f89e195bc..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.expected +++ /dev/null @@ -1,11 +0,0 @@ -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | Swift | -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | SwiftOnoneSupport | -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _Concurrency | -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _StringProcessing | -| file://:0:0:0:0 | Foo | file://:0:0:0:0 | _SwiftConcurrencyShims | -| file://:0:0:0:0 | __ObjC | file://:0:0:0:0 | Swift | -| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | Swift | -| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | SwiftOnoneSupport | -| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _Concurrency | -| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _StringProcessing | -| file://:0:0:0:0 | default_module_name | file://:0:0:0:0 | _SwiftConcurrencyShims | diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql deleted file mode 100644 index fa399bef432..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getAnImportedModule.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ModuleDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAnImportedModule() diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql deleted file mode 100644 index 1a144659637..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getInheritedType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ModuleDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql deleted file mode 100644 index 1510213d287..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ModuleDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected index 975da093321..cfb439d0246 100644 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected +++ b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected @@ -1,5 +1,31 @@ +instances | functions.swift:1:1:3:1 | foo() | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | () -> Int | | functions.swift:5:1:7:1 | bar(_:d:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int, Double) -> Int | | functions.swift:10:5:10:28 | noBody(x:) | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | no | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Self) -> (Int) -> Int | | functions.swift:13:1:15:1 | variadic(_:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int...) -> () | | functions.swift:17:1:19:1 | generic(x:y:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (X, Y) -> () | +getName +| functions.swift:1:1:3:1 | foo() | foo() | +| functions.swift:5:1:7:1 | bar(_:d:) | bar(_:d:) | +| functions.swift:10:5:10:28 | noBody(x:) | noBody(x:) | +| functions.swift:13:1:15:1 | variadic(_:) | variadic(_:) | +| functions.swift:17:1:19:1 | generic(x:y:) | generic(x:y:) | +getSelfParam +| functions.swift:10:5:10:28 | noBody(x:) | functions.swift:10:10:10:10 | self | +getParam +| functions.swift:5:1:7:1 | bar(_:d:) | 0 | functions.swift:5:10:5:15 | x | +| functions.swift:5:1:7:1 | bar(_:d:) | 1 | functions.swift:5:20:5:25 | y | +| functions.swift:10:5:10:28 | noBody(x:) | 0 | functions.swift:10:17:10:20 | x | +| functions.swift:13:1:15:1 | variadic(_:) | 0 | functions.swift:13:15:13:26 | ints | +| functions.swift:17:1:19:1 | generic(x:y:) | 0 | functions.swift:17:20:17:23 | x | +| functions.swift:17:1:19:1 | generic(x:y:) | 1 | functions.swift:17:26:17:29 | y | +getBody +| functions.swift:1:1:3:1 | foo() | functions.swift:1:19:3:1 | { ... } | +| functions.swift:5:1:7:1 | bar(_:d:) | functions.swift:5:40:7:1 | { ... } | +| functions.swift:13:1:15:1 | variadic(_:) | functions.swift:13:31:15:1 | { ... } | +| functions.swift:17:1:19:1 | generic(x:y:) | functions.swift:17:32:19:1 | { ... } | +getCapture +getGenericTypeParam +| functions.swift:17:1:19:1 | generic(x:y:) | 0 | functions.swift:17:14:17:14 | X | +| functions.swift:17:1:19:1 | generic(x:y:) | 1 | functions.swift:17:17:17:17 | Y | +getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql index b040631d9b0..ce58d119f3c 100644 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql +++ b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql @@ -2,23 +2,62 @@ import codeql.swift.elements import TestUtils -from - NamedFunction x, string hasName, string hasSelfParam, int getNumberOfParams, string hasBody, - int getNumberOfCaptures, int getNumberOfGenericTypeParams, ModuleDecl getModule, - int getNumberOfMembers, Type getInterfaceType -where +query predicate instances( + NamedFunction x, string hasName__label, string hasName, string hasSelfParam__label, + string hasSelfParam, string getNumberOfParams__label, int getNumberOfParams, + string hasBody__label, string hasBody, string getNumberOfCaptures__label, int getNumberOfCaptures, + string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType +) { toBeTested(x) and not x.isUnknown() and + hasName__label = "hasName:" and (if x.hasName() then hasName = "yes" else hasName = "no") and + hasSelfParam__label = "hasSelfParam:" and (if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no") and + getNumberOfParams__label = "getNumberOfParams:" and getNumberOfParams = x.getNumberOfParams() and + hasBody__label = "hasBody:" and (if x.hasBody() then hasBody = "yes" else hasBody = "no") and + getNumberOfCaptures__label = "getNumberOfCaptures:" and getNumberOfCaptures = x.getNumberOfCaptures() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() -select x, "hasName:", hasName, "hasSelfParam:", hasSelfParam, "getNumberOfParams:", - getNumberOfParams, "hasBody:", hasBody, "getNumberOfCaptures:", getNumberOfCaptures, - "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType +} + +query predicate getName(NamedFunction x, string getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName() +} + +query predicate getSelfParam(NamedFunction x, ParamDecl getSelfParam) { + toBeTested(x) and not x.isUnknown() and getSelfParam = x.getSelfParam() +} + +query predicate getParam(NamedFunction x, int index, ParamDecl getParam) { + toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) +} + +query predicate getBody(NamedFunction x, BraceStmt getBody) { + toBeTested(x) and not x.isUnknown() and getBody = x.getBody() +} + +query predicate getCapture(NamedFunction x, int index, CapturedDecl getCapture) { + toBeTested(x) and not x.isUnknown() and getCapture = x.getCapture(index) +} + +query predicate getGenericTypeParam( + NamedFunction x, int index, GenericTypeParamDecl getGenericTypeParam +) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(NamedFunction x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.expected deleted file mode 100644 index 54fddb5c57c..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.expected +++ /dev/null @@ -1,4 +0,0 @@ -| functions.swift:1:1:3:1 | foo() | functions.swift:1:19:3:1 | { ... } | -| functions.swift:5:1:7:1 | bar(_:d:) | functions.swift:5:40:7:1 | { ... } | -| functions.swift:13:1:15:1 | variadic(_:) | functions.swift:13:31:15:1 | { ... } | -| functions.swift:17:1:19:1 | generic(x:y:) | functions.swift:17:32:19:1 | { ... } | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql deleted file mode 100644 index 8f02d92b3d7..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getBody.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x -where toBeTested(x) and not x.isUnknown() -select x, x.getBody() diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql deleted file mode 100644 index ebb3474649b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getCapture.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getCapture(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.expected deleted file mode 100644 index 0b0d62753ce..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.expected +++ /dev/null @@ -1,2 +0,0 @@ -| functions.swift:17:1:19:1 | generic(x:y:) | 0 | functions.swift:17:14:17:14 | X | -| functions.swift:17:1:19:1 | generic(x:y:) | 1 | functions.swift:17:17:17:17 | Y | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql deleted file mode 100644 index 03110243256..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql deleted file mode 100644 index ec7c7476c68..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.expected deleted file mode 100644 index 2cca221fe4d..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.expected +++ /dev/null @@ -1,5 +0,0 @@ -| functions.swift:1:1:3:1 | foo() | foo() | -| functions.swift:5:1:7:1 | bar(_:d:) | bar(_:d:) | -| functions.swift:10:5:10:28 | noBody(x:) | noBody(x:) | -| functions.swift:13:1:15:1 | variadic(_:) | variadic(_:) | -| functions.swift:17:1:19:1 | generic(x:y:) | generic(x:y:) | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql deleted file mode 100644 index 553f3a3292d..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x -where toBeTested(x) and not x.isUnknown() -select x, x.getName() diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.expected deleted file mode 100644 index f549b8615ad..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.expected +++ /dev/null @@ -1,6 +0,0 @@ -| functions.swift:5:1:7:1 | bar(_:d:) | 0 | functions.swift:5:10:5:15 | x | -| functions.swift:5:1:7:1 | bar(_:d:) | 1 | functions.swift:5:20:5:25 | y | -| functions.swift:10:5:10:28 | noBody(x:) | 0 | functions.swift:10:17:10:20 | x | -| functions.swift:13:1:15:1 | variadic(_:) | 0 | functions.swift:13:15:13:26 | ints | -| functions.swift:17:1:19:1 | generic(x:y:) | 0 | functions.swift:17:20:17:23 | x | -| functions.swift:17:1:19:1 | generic(x:y:) | 1 | functions.swift:17:26:17:29 | y | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql deleted file mode 100644 index 1755058ad72..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.expected deleted file mode 100644 index fb6370f56e8..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.expected +++ /dev/null @@ -1 +0,0 @@ -| functions.swift:10:5:10:28 | noBody(x:) | functions.swift:10:10:10:10 | self | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql deleted file mode 100644 index 11a4563f6f1..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction_getSelfParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from NamedFunction x -where toBeTested(x) and not x.isUnknown() -select x, x.getSelfParam() diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected index c93a86b2164..1e73472bcfe 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected @@ -1,4 +1,13 @@ +instances | file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some Base).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:9:1:9:51 | baz(_:) | getNumberOfOpaqueGenericParams: | 1 | | file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:5:1:5:45 | bar(_:) | getNumberOfOpaqueGenericParams: | 1 | | file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:13:1:13:59 | bazz() | getNumberOfOpaqueGenericParams: | 1 | | file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some SignedInteger).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:1:1:1:45 | foo() | getNumberOfOpaqueGenericParams: | 1 | +getGenericTypeParam +getMember +getInheritedType +getOpaqueGenericParam +| file://:0:0:0:0 | _ | 0 | \u03c4_0_0 | +| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | +| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | +| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql index c81a2adc293..a959441a79b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql @@ -2,22 +2,50 @@ import codeql.swift.elements import TestUtils -from - OpaqueTypeDecl x, int getNumberOfGenericTypeParams, ModuleDecl getModule, int getNumberOfMembers, - Type getInterfaceType, string getName, int getNumberOfInheritedTypes, - ValueDecl getNamingDeclaration, int getNumberOfOpaqueGenericParams -where +query predicate instances( + OpaqueTypeDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, + string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getName__label, string getName, string getNumberOfInheritedTypes__label, + int getNumberOfInheritedTypes, string getNamingDeclaration__label, ValueDecl getNamingDeclaration, + string getNumberOfOpaqueGenericParams__label, int getNumberOfOpaqueGenericParams +) { toBeTested(x) and not x.isUnknown() and + getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getName__label = "getName:" and getName = x.getName() and + getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and + getNamingDeclaration__label = "getNamingDeclaration:" and getNamingDeclaration = x.getNamingDeclaration() and + getNumberOfOpaqueGenericParams__label = "getNumberOfOpaqueGenericParams:" and getNumberOfOpaqueGenericParams = x.getNumberOfOpaqueGenericParams() -select x, "getNumberOfGenericTypeParams:", getNumberOfGenericTypeParams, "getModule:", getModule, - "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", getInterfaceType, "getName:", - getName, "getNumberOfInheritedTypes:", getNumberOfInheritedTypes, "getNamingDeclaration:", - getNamingDeclaration, "getNumberOfOpaqueGenericParams:", getNumberOfOpaqueGenericParams +} + +query predicate getGenericTypeParam( + OpaqueTypeDecl x, int index, GenericTypeParamDecl getGenericTypeParam +) { + toBeTested(x) and not x.isUnknown() and getGenericTypeParam = x.getGenericTypeParam(index) +} + +query predicate getMember(OpaqueTypeDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getInheritedType(OpaqueTypeDecl x, int index, Type getInheritedType) { + toBeTested(x) and not x.isUnknown() and getInheritedType = x.getInheritedType(index) +} + +query predicate getOpaqueGenericParam( + OpaqueTypeDecl x, int index, GenericTypeParamType getOpaqueGenericParam +) { + toBeTested(x) and not x.isUnknown() and getOpaqueGenericParam = x.getOpaqueGenericParam(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql deleted file mode 100644 index 68e19d5d16c..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getGenericTypeParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getGenericTypeParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql deleted file mode 100644 index dd9f8245b20..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getInheritedType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getInheritedType(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql deleted file mode 100644 index a1962a41c80..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.expected deleted file mode 100644 index 922da8a9c1a..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.expected +++ /dev/null @@ -1,4 +0,0 @@ -| file://:0:0:0:0 | _ | 0 | \u03c4_0_0 | -| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | -| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | -| file://:0:0:0:0 | _ | 0 | \u03c4_1_0 | diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql deleted file mode 100644 index aca25644dbb..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl_getOpaqueGenericParam.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getOpaqueGenericParam(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected index ffb1fa02072..558f987e504 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected @@ -1,3 +1,4 @@ +instances | file://:0:0:0:0 | x | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | x | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | | file://:0:0:0:0 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | y | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | | param_decls.swift:1:10:1:13 | _ | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | _ | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | @@ -57,3 +58,22 @@ | param_decls.swift:41:10:41:26 | projectedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 0 | getName: | projectedValue | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | | param_decls.swift:48:18:48:22 | p1 | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | p1 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | yes | | param_decls.swift:49:26:49:30 | p2 | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | p2 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | yes | +getMember +getAccessor +getAttachedPropertyWrapperType +| param_decls.swift:48:18:48:22 | p1 | Wrapper | +| param_decls.swift:49:26:49:30 | p2 | WrapperWithInit | +getParentPattern +getParentInitializer +getPropertyWrapperBackingVarBinding +| param_decls.swift:48:18:48:22 | p1 | file://:0:0:0:0 | var ... = ... | +| param_decls.swift:49:26:49:30 | p2 | file://:0:0:0:0 | var ... = ... | +getPropertyWrapperBackingVar +| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | _p1 | +| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | _p2 | +getPropertyWrapperProjectionVarBinding +getPropertyWrapperProjectionVar +getPropertyWrapperLocalWrappedVarBinding +getPropertyWrapperLocalWrappedVar +| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | p1 | +| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | p2 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql index eed0fb15c3e..a308ceb3fc8 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql @@ -2,65 +2,146 @@ import codeql.swift.elements import TestUtils -from - ParamDecl x, ModuleDecl getModule, int getNumberOfMembers, Type getInterfaceType, - int getNumberOfAccessors, string getName, Type getType, string hasAttachedPropertyWrapperType, - string hasParentPattern, string hasParentInitializer, string hasPropertyWrapperBackingVarBinding, - string hasPropertyWrapperBackingVar, string hasPropertyWrapperProjectionVarBinding, - string hasPropertyWrapperProjectionVar, string isInout, - string hasPropertyWrapperLocalWrappedVarBinding, string hasPropertyWrapperLocalWrappedVar -where +query predicate instances( + ParamDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, + int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, + string getNumberOfAccessors__label, int getNumberOfAccessors, string getName__label, + string getName, string getType__label, Type getType, string hasAttachedPropertyWrapperType__label, + string hasAttachedPropertyWrapperType, string hasParentPattern__label, string hasParentPattern, + string hasParentInitializer__label, string hasParentInitializer, + string hasPropertyWrapperBackingVarBinding__label, string hasPropertyWrapperBackingVarBinding, + string hasPropertyWrapperBackingVar__label, string hasPropertyWrapperBackingVar, + string hasPropertyWrapperProjectionVarBinding__label, + string hasPropertyWrapperProjectionVarBinding, string hasPropertyWrapperProjectionVar__label, + string hasPropertyWrapperProjectionVar, string isInout__label, string isInout, + string hasPropertyWrapperLocalWrappedVarBinding__label, + string hasPropertyWrapperLocalWrappedVarBinding, string hasPropertyWrapperLocalWrappedVar__label, + string hasPropertyWrapperLocalWrappedVar +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + getNumberOfAccessors__label = "getNumberOfAccessors:" and getNumberOfAccessors = x.getNumberOfAccessors() and + getName__label = "getName:" and getName = x.getName() and + getType__label = "getType:" and getType = x.getType() and + hasAttachedPropertyWrapperType__label = "hasAttachedPropertyWrapperType:" and ( if x.hasAttachedPropertyWrapperType() then hasAttachedPropertyWrapperType = "yes" else hasAttachedPropertyWrapperType = "no" ) and + hasParentPattern__label = "hasParentPattern:" and (if x.hasParentPattern() then hasParentPattern = "yes" else hasParentPattern = "no") and + hasParentInitializer__label = "hasParentInitializer:" and (if x.hasParentInitializer() then hasParentInitializer = "yes" else hasParentInitializer = "no") and + hasPropertyWrapperBackingVarBinding__label = "hasPropertyWrapperBackingVarBinding:" and ( if x.hasPropertyWrapperBackingVarBinding() then hasPropertyWrapperBackingVarBinding = "yes" else hasPropertyWrapperBackingVarBinding = "no" ) and + hasPropertyWrapperBackingVar__label = "hasPropertyWrapperBackingVar:" and ( if x.hasPropertyWrapperBackingVar() then hasPropertyWrapperBackingVar = "yes" else hasPropertyWrapperBackingVar = "no" ) and + hasPropertyWrapperProjectionVarBinding__label = "hasPropertyWrapperProjectionVarBinding:" and ( if x.hasPropertyWrapperProjectionVarBinding() then hasPropertyWrapperProjectionVarBinding = "yes" else hasPropertyWrapperProjectionVarBinding = "no" ) and + hasPropertyWrapperProjectionVar__label = "hasPropertyWrapperProjectionVar:" and ( if x.hasPropertyWrapperProjectionVar() then hasPropertyWrapperProjectionVar = "yes" else hasPropertyWrapperProjectionVar = "no" ) and + isInout__label = "isInout:" and (if x.isInout() then isInout = "yes" else isInout = "no") and + hasPropertyWrapperLocalWrappedVarBinding__label = "hasPropertyWrapperLocalWrappedVarBinding:" and ( if x.hasPropertyWrapperLocalWrappedVarBinding() then hasPropertyWrapperLocalWrappedVarBinding = "yes" else hasPropertyWrapperLocalWrappedVarBinding = "no" ) and + hasPropertyWrapperLocalWrappedVar__label = "hasPropertyWrapperLocalWrappedVar:" and if x.hasPropertyWrapperLocalWrappedVar() then hasPropertyWrapperLocalWrappedVar = "yes" else hasPropertyWrapperLocalWrappedVar = "no" -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getInterfaceType:", - getInterfaceType, "getNumberOfAccessors:", getNumberOfAccessors, "getName:", getName, "getType:", - getType, "hasAttachedPropertyWrapperType:", hasAttachedPropertyWrapperType, "hasParentPattern:", - hasParentPattern, "hasParentInitializer:", hasParentInitializer, - "hasPropertyWrapperBackingVarBinding:", hasPropertyWrapperBackingVarBinding, - "hasPropertyWrapperBackingVar:", hasPropertyWrapperBackingVar, - "hasPropertyWrapperProjectionVarBinding:", hasPropertyWrapperProjectionVarBinding, - "hasPropertyWrapperProjectionVar:", hasPropertyWrapperProjectionVar, "isInout:", isInout, - "hasPropertyWrapperLocalWrappedVarBinding:", hasPropertyWrapperLocalWrappedVarBinding, - "hasPropertyWrapperLocalWrappedVar:", hasPropertyWrapperLocalWrappedVar +} + +query predicate getMember(ParamDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} + +query predicate getAccessor(ParamDecl x, int index, Accessor getAccessor) { + toBeTested(x) and not x.isUnknown() and getAccessor = x.getAccessor(index) +} + +query predicate getAttachedPropertyWrapperType(ParamDecl x, Type getAttachedPropertyWrapperType) { + toBeTested(x) and + not x.isUnknown() and + getAttachedPropertyWrapperType = x.getAttachedPropertyWrapperType() +} + +query predicate getParentPattern(ParamDecl x, Pattern getParentPattern) { + toBeTested(x) and not x.isUnknown() and getParentPattern = x.getParentPattern() +} + +query predicate getParentInitializer(ParamDecl x, Expr getParentInitializer) { + toBeTested(x) and not x.isUnknown() and getParentInitializer = x.getParentInitializer() +} + +query predicate getPropertyWrapperBackingVarBinding( + ParamDecl x, PatternBindingDecl getPropertyWrapperBackingVarBinding +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperBackingVarBinding = x.getPropertyWrapperBackingVarBinding() +} + +query predicate getPropertyWrapperBackingVar(ParamDecl x, VarDecl getPropertyWrapperBackingVar) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperBackingVar = x.getPropertyWrapperBackingVar() +} + +query predicate getPropertyWrapperProjectionVarBinding( + ParamDecl x, PatternBindingDecl getPropertyWrapperProjectionVarBinding +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperProjectionVarBinding = x.getPropertyWrapperProjectionVarBinding() +} + +query predicate getPropertyWrapperProjectionVar(ParamDecl x, VarDecl getPropertyWrapperProjectionVar) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperProjectionVar = x.getPropertyWrapperProjectionVar() +} + +query predicate getPropertyWrapperLocalWrappedVarBinding( + ParamDecl x, PatternBindingDecl getPropertyWrapperLocalWrappedVarBinding +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperLocalWrappedVarBinding = x.getPropertyWrapperLocalWrappedVarBinding() +} + +query predicate getPropertyWrapperLocalWrappedVar( + ParamDecl x, VarDecl getPropertyWrapperLocalWrappedVar +) { + toBeTested(x) and + not x.isUnknown() and + getPropertyWrapperLocalWrappedVar = x.getPropertyWrapperLocalWrappedVar() +} diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql deleted file mode 100644 index e6e886f9cb8..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAccessor.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getAccessor(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected deleted file mode 100644 index b8a99db3f8f..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| param_decls.swift:48:18:48:22 | p1 | Wrapper | -| param_decls.swift:49:26:49:30 | p2 | WrapperWithInit | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql deleted file mode 100644 index fb67e3687ae..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getAttachedPropertyWrapperType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getAttachedPropertyWrapperType() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql deleted file mode 100644 index a313de88390..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql deleted file mode 100644 index fb122e5676e..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentInitializer.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getParentInitializer() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql deleted file mode 100644 index 7f32c32313e..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getParentPattern.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getParentPattern() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.expected deleted file mode 100644 index 5a58e14fe48..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.expected +++ /dev/null @@ -1,2 +0,0 @@ -| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | _p1 | -| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | _p2 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql deleted file mode 100644 index a75d4ace3fa..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperBackingVar() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.expected deleted file mode 100644 index b3dc664e1db..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.expected +++ /dev/null @@ -1,2 +0,0 @@ -| param_decls.swift:48:18:48:22 | p1 | file://:0:0:0:0 | var ... = ... | -| param_decls.swift:49:26:49:30 | p2 | file://:0:0:0:0 | var ... = ... | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql deleted file mode 100644 index 2db7190cb95..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperBackingVarBinding.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperBackingVarBinding() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.expected deleted file mode 100644 index e1b555437d3..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.expected +++ /dev/null @@ -1,2 +0,0 @@ -| param_decls.swift:48:18:48:22 | p1 | param_decls.swift:48:18:48:18 | p1 | -| param_decls.swift:49:26:49:30 | p2 | param_decls.swift:49:26:49:26 | p2 | diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql deleted file mode 100644 index 9ebb3df90f0..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperLocalWrappedVar() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql deleted file mode 100644 index 4a33cbcb268..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperLocalWrappedVarBinding.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperLocalWrappedVarBinding() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql deleted file mode 100644 index e919653b36b..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperProjectionVar() diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql deleted file mode 100644 index 47643738f7f..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl_getPropertyWrapperProjectionVarBinding.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParamDecl x -where toBeTested(x) and not x.isUnknown() -select x, x.getPropertyWrapperProjectionVarBinding() diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected index af19c86dec2..baca0687415 100644 --- a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected @@ -1,2 +1,4 @@ +instances | diagnostics.swift:2:1:2:25 | #warning(...) | getModule: | file://:0:0:0:0 | diagnostics | getNumberOfMembers: | 0 | getKind: | 2 | getMessage: | diagnostics.swift:2:10:2:10 | I'm a warning | | diagnostics.swift:3:1:3:26 | #error(...) | getModule: | file://:0:0:0:0 | diagnostics | getNumberOfMembers: | 0 | getKind: | 1 | getMessage: | diagnostics.swift:3:8:3:8 | And I'm an error | +getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql index 4b4b1a2c132..438cb255468 100644 --- a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql @@ -2,15 +2,23 @@ import codeql.swift.elements import TestUtils -from - PoundDiagnosticDecl x, ModuleDecl getModule, int getNumberOfMembers, int getKind, - StringLiteralExpr getMessage -where +query predicate instances( + PoundDiagnosticDecl x, string getModule__label, ModuleDecl getModule, + string getNumberOfMembers__label, int getNumberOfMembers, string getKind__label, int getKind, + string getMessage__label, StringLiteralExpr getMessage +) { toBeTested(x) and not x.isUnknown() and + getModule__label = "getModule:" and getModule = x.getModule() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() and + getKind__label = "getKind:" and getKind = x.getKind() and + getMessage__label = "getMessage:" and getMessage = x.getMessage() -select x, "getModule:", getModule, "getNumberOfMembers:", getNumberOfMembers, "getKind:", getKind, - "getMessage:", getMessage +} + +query predicate getMember(PoundDiagnosticDecl x, int index, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.expected b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql deleted file mode 100644 index 9cae7c9ded0..00000000000 --- a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PoundDiagnosticDecl x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.expected b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.expected index e69de29bb2d..26ca47278ce 100644 --- a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.expected @@ -0,0 +1,2 @@ +instances +getType diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql index 4e14ce4e2f5..ecbbcb102eb 100644 --- a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql @@ -2,12 +2,22 @@ import codeql.swift.elements import TestUtils -from AppliedPropertyWrapperExpr x, string hasType, int getKind, Expr getValue, ParamDecl getParam -where +query predicate instances( + AppliedPropertyWrapperExpr x, string hasType__label, string hasType, string getKind__label, + int getKind, string getValue__label, Expr getValue, string getParam__label, ParamDecl getParam +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getKind__label = "getKind:" and getKind = x.getKind() and + getValue__label = "getValue:" and getValue = x.getValue() and + getParam__label = "getParam:" and getParam = x.getParam() -select x, "hasType:", hasType, "getKind:", getKind, "getValue:", getValue, "getParam:", getParam +} + +query predicate getType(AppliedPropertyWrapperExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getParam.expected b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getParam.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql deleted file mode 100644 index 92562542130..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from AppliedPropertyWrapperExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getValue.expected b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr_getValue.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected index d9a7b040f1a..383f4260b52 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected @@ -1 +1,4 @@ +instances | move_semantics.swift:5:9:5:17 | ConsumeExpr | hasType: | yes | getSubExpr: | move_semantics.swift:5:17:5:17 | x | +getType +| move_semantics.swift:5:9:5:17 | ConsumeExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql index 8ff10e1d430..b52718a1511 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql @@ -2,10 +2,17 @@ import codeql.swift.elements import TestUtils -from ConsumeExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + ConsumeExpr x, string hasType__label, string hasType, string getSubExpr__label, Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(ConsumeExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.expected deleted file mode 100644 index 7935a7393d6..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| move_semantics.swift:5:9:5:17 | ConsumeExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql deleted file mode 100644 index af4c8fe9115..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ConsumeExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected index fe6116b6ba0..8355a090082 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected @@ -1 +1,4 @@ +instances | move_semantics.swift:4:9:4:14 | CopyExpr | hasType: | yes | getSubExpr: | move_semantics.swift:4:14:4:14 | x | +getType +| move_semantics.swift:4:9:4:14 | CopyExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql index 63145b175ba..8cd71d590a6 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql @@ -2,10 +2,17 @@ import codeql.swift.elements import TestUtils -from CopyExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + CopyExpr x, string hasType__label, string hasType, string getSubExpr__label, Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(CopyExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.expected deleted file mode 100644 index bd5fe619f05..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| move_semantics.swift:4:9:4:14 | CopyExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql deleted file mode 100644 index f5d74cb8a08..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from CopyExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected index e69de29bb2d..3f78b481a7a 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.expected @@ -0,0 +1,3 @@ +instances +getType +getArgument diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql index 37eb9989db3..ca06b579a22 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql @@ -2,13 +2,27 @@ import codeql.swift.elements import TestUtils -from DotSyntaxCallExpr x, string hasType, Expr getFunction, int getNumberOfArguments, Expr getBase -where +query predicate instances( + DotSyntaxCallExpr x, string hasType__label, string hasType, string getFunction__label, + Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments, + string getBase__label, Expr getBase +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getFunction__label = "getFunction:" and getFunction = x.getFunction() and + getNumberOfArguments__label = "getNumberOfArguments:" and getNumberOfArguments = x.getNumberOfArguments() and + getBase__label = "getBase:" and getBase = x.getBase() -select x, "hasType:", hasType, "getFunction:", getFunction, "getNumberOfArguments:", - getNumberOfArguments, "getBase:", getBase +} + +query predicate getType(DotSyntaxCallExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getArgument(DotSyntaxCallExpr x, int index, Argument getArgument) { + toBeTested(x) and not x.isUnknown() and getArgument = x.getArgument(index) +} diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql deleted file mode 100644 index 69ca0a32f8a..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from DotSyntaxCallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql deleted file mode 100644 index 985d4935a2e..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from DotSyntaxCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected index e188be2275f..ffb84297c49 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected @@ -1,2 +1,9 @@ +instances | dynamic_lookup.swift:15:1:15:3 | .foo(_:) | DynamicMemberRefExpr | hasType: | yes | getBase: | dynamic_lookup.swift:15:1:15:1 | OpaqueValueExpr | hasMember: | yes | | dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | DynamicSubscriptExpr | hasType: | yes | getBase: | dynamic_lookup.swift:16:5:16:5 | OpaqueValueExpr | hasMember: | yes | +getType +| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | ((Int) -> ())? | +| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | Int? | +getMember +| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | dynamic_lookup.swift:6:9:6:28 | foo(_:) | +| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | dynamic_lookup.swift:7:9:9:3 | subscript ... | diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql index c32568da04e..02c7cd23191 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql @@ -2,11 +2,25 @@ import codeql.swift.elements import TestUtils -from DynamicLookupExpr x, string hasType, Expr getBase, string hasMember -where +query predicate instances( + DynamicLookupExpr x, string primaryQlClasses, string hasType__label, string hasType, + string getBase__label, Expr getBase, string hasMember__label, string hasMember +) { toBeTested(x) and not x.isUnknown() and + primaryQlClasses = x.getPrimaryQlClasses() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getBase__label = "getBase:" and getBase = x.getBase() and + hasMember__label = "hasMember:" and if x.hasMember() then hasMember = "yes" else hasMember = "no" -select x, x.getPrimaryQlClasses(), "hasType:", hasType, "getBase:", getBase, "hasMember:", hasMember +} + +query predicate getType(DynamicLookupExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getMember(DynamicLookupExpr x, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.expected b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.expected deleted file mode 100644 index 3752eb753d2..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.expected +++ /dev/null @@ -1,2 +0,0 @@ -| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | dynamic_lookup.swift:6:9:6:28 | foo(_:) | -| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | dynamic_lookup.swift:7:9:9:3 | subscript ... | diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql deleted file mode 100644 index aa38b203636..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from DynamicLookupExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMember() diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.expected deleted file mode 100644 index 981d75caf98..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | ((Int) -> ())? | -| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | Int? | diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql deleted file mode 100644 index 18ac781cd1f..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from DynamicLookupExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected index b40ec4fe41d..e428b7e7502 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -1,3 +1,4 @@ +instances | enum_is_case.swift:4:1:4:17 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:5:1:5:32 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:6:1:6:1 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getElement: | file://:0:0:0:0 | some | @@ -8,3 +9,14 @@ | enum_is_case.swift:22:1:22:10 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:23:1:23:10 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getElement: | file://:0:0:0:0 | some | | enum_is_case.swift:24:1:24:8 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to Set.init() | getElement: | file://:0:0:0:0 | some | +getType +| enum_is_case.swift:4:1:4:17 | ... is some | Bool | +| enum_is_case.swift:5:1:5:32 | ... is some | Bool | +| enum_is_case.swift:6:1:6:1 | ... is some | Bool | +| enum_is_case.swift:7:1:7:1 | ... is some | Bool | +| enum_is_case.swift:9:1:9:19 | ... is some | Bool | +| enum_is_case.swift:19:1:19:18 | ... is some | Bool | +| enum_is_case.swift:21:1:21:5 | ... is some | Bool | +| enum_is_case.swift:22:1:22:10 | ... is some | Bool | +| enum_is_case.swift:23:1:23:10 | ... is some | Bool | +| enum_is_case.swift:24:1:24:8 | ... is some | Bool | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql index 5c232456192..804bf908fc5 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql @@ -2,11 +2,20 @@ import codeql.swift.elements import TestUtils -from EnumIsCaseExpr x, string hasType, Expr getSubExpr, EnumElementDecl getElement -where +query predicate instances( + EnumIsCaseExpr x, string hasType__label, string hasType, string getSubExpr__label, + Expr getSubExpr, string getElement__label, EnumElementDecl getElement +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() and + getElement__label = "getElement:" and getElement = x.getElement() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr, "getElement:", getElement +} + +query predicate getType(EnumIsCaseExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected deleted file mode 100644 index f1a8bd34fda..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.expected +++ /dev/null @@ -1,10 +0,0 @@ -| enum_is_case.swift:4:1:4:17 | ... is some | Bool | -| enum_is_case.swift:5:1:5:32 | ... is some | Bool | -| enum_is_case.swift:6:1:6:1 | ... is some | Bool | -| enum_is_case.swift:7:1:7:1 | ... is some | Bool | -| enum_is_case.swift:9:1:9:19 | ... is some | Bool | -| enum_is_case.swift:19:1:19:18 | ... is some | Bool | -| enum_is_case.swift:21:1:21:5 | ... is some | Bool | -| enum_is_case.swift:22:1:22:10 | ... is some | Bool | -| enum_is_case.swift:23:1:23:10 | ... is some | Bool | -| enum_is_case.swift:24:1:24:8 | ... is some | Bool | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql deleted file mode 100644 index 33154f7aa0f..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from EnumIsCaseExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected index aabc59fac99..bf8aef3f595 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected @@ -1 +1,4 @@ +instances | extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | hasType: | yes | getFunctionExpr: | extract_function_isolation.swift:2:21:2:21 | x | +getType +| extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | (any Actor)? | diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql index f133b61f9b6..5128cab6a05 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from ExtractFunctionIsolationExpr x, string hasType, Expr getFunctionExpr -where +query predicate instances( + ExtractFunctionIsolationExpr x, string hasType__label, string hasType, + string getFunctionExpr__label, Expr getFunctionExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getFunctionExpr__label = "getFunctionExpr:" and getFunctionExpr = x.getFunctionExpr() -select x, "hasType:", hasType, "getFunctionExpr:", getFunctionExpr +} + +query predicate getType(ExtractFunctionIsolationExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.expected deleted file mode 100644 index 2c6a32f914c..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | (any Actor)? | diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql deleted file mode 100644 index b7e9c6a7ba0..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ExtractFunctionIsolationExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected index 9f489226544..57a2f657242 100644 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected @@ -1,3 +1,4 @@ +instances | identity_expressions.swift:5:9:5:14 | .self | DotSelfExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:9:5:9 | self | | identity_expressions.swift:5:9:5:21 | .self | DotSelfExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:9:5:19 | .x | | identity_expressions.swift:5:28:5:31 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:29:5:29 | 42 | @@ -7,3 +8,13 @@ | identity_expressions.swift:15:5:15:21 | await ... | AwaitExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:15:11:15:21 | call to process() | | identity_expressions.swift:15:11:15:19 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:15:12:15:12 | process() | | identity_expressions.swift:18:9:18:17 | BorrowExpr | BorrowExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:18:17:18:17 | x | +getType +| identity_expressions.swift:5:9:5:14 | .self | A | +| identity_expressions.swift:5:9:5:21 | .self | @lvalue Int | +| identity_expressions.swift:5:28:5:31 | (...) | Int | +| identity_expressions.swift:9:5:9:9 | (...) | A | +| identity_expressions.swift:12:28:12:43 | (...) | A | +| identity_expressions.swift:12:29:12:42 | await ... | A | +| identity_expressions.swift:15:5:15:21 | await ... | () | +| identity_expressions.swift:15:11:15:19 | (...) | () async -> () | +| identity_expressions.swift:18:9:18:17 | BorrowExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql index c21556e9736..4753f00c190 100644 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql @@ -2,10 +2,19 @@ import codeql.swift.elements import TestUtils -from IdentityExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + IdentityExpr x, string primaryQlClasses, string hasType__label, string hasType, + string getSubExpr__label, Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + primaryQlClasses = x.getPrimaryQlClasses() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, x.getPrimaryQlClasses(), "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(IdentityExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.expected deleted file mode 100644 index 7922f8fdeed..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.expected +++ /dev/null @@ -1,9 +0,0 @@ -| identity_expressions.swift:5:9:5:14 | .self | A | -| identity_expressions.swift:5:9:5:21 | .self | @lvalue Int | -| identity_expressions.swift:5:28:5:31 | (...) | Int | -| identity_expressions.swift:9:5:9:9 | (...) | A | -| identity_expressions.swift:12:28:12:43 | (...) | A | -| identity_expressions.swift:12:29:12:42 | await ... | A | -| identity_expressions.swift:15:5:15:21 | await ... | () | -| identity_expressions.swift:15:11:15:19 | (...) | () async -> () | -| identity_expressions.swift:18:9:18:17 | BorrowExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql deleted file mode 100644 index d682c3be3d0..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from IdentityExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected index ac122e39f9f..a1d053485a8 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected @@ -1,3 +1,4 @@ +instances | implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | StringToPointerExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:2:3:2:3 | Hello | | implicit_conversions.swift:4:16:4:16 | (Int?) ... | InjectIntoOptionalExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:4:16:4:16 | 42 | | implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | ErasureExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:5:25:5:25 | 42 | @@ -5,3 +6,11 @@ | implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | InjectIntoOptionalExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:12:9:12:10 | { ... } | | implicit_conversions.swift:24:3:24:5 | (Array) ... | UnsafeCastExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | | implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | LoadExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | .a | +getType +| implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | UnsafePointer | +| implicit_conversions.swift:4:16:4:16 | (Int?) ... | Int? | +| implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | any Equatable | +| implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | @lvalue (() -> Void)? | +| implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | (() -> Void)? | +| implicit_conversions.swift:24:3:24:5 | (Array) ... | Array | +| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | [any Sendable] | diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql index 3e197676bb8..962f5bf0f1d 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql @@ -2,10 +2,19 @@ import codeql.swift.elements import TestUtils -from ImplicitConversionExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + ImplicitConversionExpr x, string primaryQlClasses, string hasType__label, string hasType, + string getSubExpr__label, Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + primaryQlClasses = x.getPrimaryQlClasses() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, x.getPrimaryQlClasses(), "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(ImplicitConversionExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected deleted file mode 100644 index 8254ef3cc8a..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.expected +++ /dev/null @@ -1,7 +0,0 @@ -| implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | UnsafePointer | -| implicit_conversions.swift:4:16:4:16 | (Int?) ... | Int? | -| implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | any Equatable | -| implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | @lvalue (() -> Void)? | -| implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | (() -> Void)? | -| implicit_conversions.swift:24:3:24:5 | (Array) ... | Array | -| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | [any Sendable] | diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql deleted file mode 100644 index 6e9053dca6a..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ImplicitConversionExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.expected b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.expected index e69de29bb2d..3f78b481a7a 100644 --- a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.expected @@ -0,0 +1,3 @@ +instances +getType +getArgument diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql index 117eb37809b..ab687383b32 100644 --- a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql @@ -2,14 +2,27 @@ import codeql.swift.elements import TestUtils -from - InitializerRefCallExpr x, string hasType, Expr getFunction, int getNumberOfArguments, Expr getBase -where +query predicate instances( + InitializerRefCallExpr x, string hasType__label, string hasType, string getFunction__label, + Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments, + string getBase__label, Expr getBase +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getFunction__label = "getFunction:" and getFunction = x.getFunction() and + getNumberOfArguments__label = "getNumberOfArguments:" and getNumberOfArguments = x.getNumberOfArguments() and + getBase__label = "getBase:" and getBase = x.getBase() -select x, "hasType:", hasType, "getFunction:", getFunction, "getNumberOfArguments:", - getNumberOfArguments, "getBase:", getBase +} + +query predicate getType(InitializerRefCallExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getArgument(InitializerRefCallExpr x, int index, Argument getArgument) { + toBeTested(x) and not x.isUnknown() and getArgument = x.getArgument(index) +} diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql deleted file mode 100644 index 91382b53cae..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from InitializerRefCallExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql deleted file mode 100644 index 70db9dde340..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from InitializerRefCallExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected index 68e4a6ed34d..af54b35d8e1 100644 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected @@ -1,3 +1,4 @@ +instances | key_path_expr.swift:11:12:11:17 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | | key_path_expr.swift:12:18:12:26 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | | key_path_expr.swift:13:19:13:38 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | @@ -6,3 +7,36 @@ | key_path_expr.swift:16:20:16:30 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 4 | | key_path_expr.swift:17:11:17:16 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | | key_path_expr.swift:18:20:18:32 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | +getType +| key_path_expr.swift:11:12:11:17 | #keyPath(...) | WritableKeyPath | +| key_path_expr.swift:12:18:12:26 | #keyPath(...) | WritableKeyPath<[Int], Int> | +| key_path_expr.swift:13:19:13:38 | #keyPath(...) | WritableKeyPath<[String : Int], Int?> | +| key_path_expr.swift:14:16:14:35 | #keyPath(...) | WritableKeyPath, Int> | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | KeyPath | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | KeyPath | +| key_path_expr.swift:17:11:17:16 | #keyPath(...) | WritableKeyPath | +| key_path_expr.swift:18:20:18:32 | #keyPath(...) | WritableKeyPath<(Int, Int), Int> | +getRoot +| key_path_expr.swift:11:12:11:17 | #keyPath(...) | key_path_expr.swift:11:13:11:13 | Foo | +| key_path_expr.swift:12:18:12:26 | #keyPath(...) | key_path_expr.swift:12:19:12:23 | [Int] | +| key_path_expr.swift:13:19:13:38 | #keyPath(...) | key_path_expr.swift:13:20:13:33 | [String : Int] | +| key_path_expr.swift:14:16:14:35 | #keyPath(...) | key_path_expr.swift:14:17:14:29 | Optional | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | key_path_expr.swift:15:17:15:17 | Foo | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | key_path_expr.swift:16:21:16:21 | Foo | +| key_path_expr.swift:17:11:17:16 | #keyPath(...) | key_path_expr.swift:17:12:17:12 | Int | +| key_path_expr.swift:18:20:18:32 | #keyPath(...) | key_path_expr.swift:18:21:18:30 | (Int, Int) | +getComponent +| key_path_expr.swift:11:12:11:17 | #keyPath(...) | 0 | key_path_expr.swift:11:17:11:17 | KeyPathComponent | +| key_path_expr.swift:12:18:12:26 | #keyPath(...) | 0 | key_path_expr.swift:12:24:12:26 | KeyPathComponent | +| key_path_expr.swift:13:19:13:38 | #keyPath(...) | 0 | key_path_expr.swift:13:34:13:38 | KeyPathComponent | +| key_path_expr.swift:14:16:14:35 | #keyPath(...) | 0 | key_path_expr.swift:14:31:14:31 | KeyPathComponent | +| key_path_expr.swift:14:16:14:35 | #keyPath(...) | 1 | key_path_expr.swift:14:31:14:31 | KeyPathComponent | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 0 | key_path_expr.swift:15:21:15:21 | KeyPathComponent | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 1 | key_path_expr.swift:15:24:15:24 | KeyPathComponent | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 2 | key_path_expr.swift:15:26:15:26 | KeyPathComponent | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 0 | key_path_expr.swift:16:25:16:25 | KeyPathComponent | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 1 | key_path_expr.swift:16:28:16:28 | KeyPathComponent | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 2 | key_path_expr.swift:16:30:16:30 | KeyPathComponent | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 3 | file://:0:0:0:0 | KeyPathComponent | +| key_path_expr.swift:17:11:17:16 | #keyPath(...) | 0 | key_path_expr.swift:17:16:17:16 | KeyPathComponent | +| key_path_expr.swift:18:20:18:32 | #keyPath(...) | 0 | key_path_expr.swift:18:32:18:32 | KeyPathComponent | diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql index 627e5b130db..781ca756dfe 100644 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql @@ -2,11 +2,28 @@ import codeql.swift.elements import TestUtils -from KeyPathExpr x, string hasType, string hasRoot, int getNumberOfComponents -where +query predicate instances( + KeyPathExpr x, string hasType__label, string hasType, string hasRoot__label, string hasRoot, + string getNumberOfComponents__label, int getNumberOfComponents +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + hasRoot__label = "hasRoot:" and (if x.hasRoot() then hasRoot = "yes" else hasRoot = "no") and + getNumberOfComponents__label = "getNumberOfComponents:" and getNumberOfComponents = x.getNumberOfComponents() -select x, "hasType:", hasType, "hasRoot:", hasRoot, "getNumberOfComponents:", getNumberOfComponents +} + +query predicate getType(KeyPathExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getRoot(KeyPathExpr x, TypeRepr getRoot) { + toBeTested(x) and not x.isUnknown() and getRoot = x.getRoot() +} + +query predicate getComponent(KeyPathExpr x, int index, KeyPathComponent getComponent) { + toBeTested(x) and not x.isUnknown() and getComponent = x.getComponent(index) +} diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.expected b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.expected deleted file mode 100644 index 673c01e775f..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.expected +++ /dev/null @@ -1,14 +0,0 @@ -| key_path_expr.swift:11:12:11:17 | #keyPath(...) | 0 | key_path_expr.swift:11:17:11:17 | KeyPathComponent | -| key_path_expr.swift:12:18:12:26 | #keyPath(...) | 0 | key_path_expr.swift:12:24:12:26 | KeyPathComponent | -| key_path_expr.swift:13:19:13:38 | #keyPath(...) | 0 | key_path_expr.swift:13:34:13:38 | KeyPathComponent | -| key_path_expr.swift:14:16:14:35 | #keyPath(...) | 0 | key_path_expr.swift:14:31:14:31 | KeyPathComponent | -| key_path_expr.swift:14:16:14:35 | #keyPath(...) | 1 | key_path_expr.swift:14:31:14:31 | KeyPathComponent | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 0 | key_path_expr.swift:15:21:15:21 | KeyPathComponent | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 1 | key_path_expr.swift:15:24:15:24 | KeyPathComponent | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | 2 | key_path_expr.swift:15:26:15:26 | KeyPathComponent | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 0 | key_path_expr.swift:16:25:16:25 | KeyPathComponent | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 1 | key_path_expr.swift:16:28:16:28 | KeyPathComponent | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 2 | key_path_expr.swift:16:30:16:30 | KeyPathComponent | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | 3 | file://:0:0:0:0 | KeyPathComponent | -| key_path_expr.swift:17:11:17:16 | #keyPath(...) | 0 | key_path_expr.swift:17:16:17:16 | KeyPathComponent | -| key_path_expr.swift:18:20:18:32 | #keyPath(...) | 0 | key_path_expr.swift:18:32:18:32 | KeyPathComponent | diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql deleted file mode 100644 index dc7eda14948..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getComponent.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getComponent(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.expected b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.expected deleted file mode 100644 index 4106b8b42fa..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.expected +++ /dev/null @@ -1,8 +0,0 @@ -| key_path_expr.swift:11:12:11:17 | #keyPath(...) | key_path_expr.swift:11:13:11:13 | Foo | -| key_path_expr.swift:12:18:12:26 | #keyPath(...) | key_path_expr.swift:12:19:12:23 | [Int] | -| key_path_expr.swift:13:19:13:38 | #keyPath(...) | key_path_expr.swift:13:20:13:33 | [String : Int] | -| key_path_expr.swift:14:16:14:35 | #keyPath(...) | key_path_expr.swift:14:17:14:29 | Optional | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | key_path_expr.swift:15:17:15:17 | Foo | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | key_path_expr.swift:16:21:16:21 | Foo | -| key_path_expr.swift:17:11:17:16 | #keyPath(...) | key_path_expr.swift:17:12:17:12 | Int | -| key_path_expr.swift:18:20:18:32 | #keyPath(...) | key_path_expr.swift:18:21:18:30 | (Int, Int) | diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql deleted file mode 100644 index 10d5ee29d43..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getRoot.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getRoot() diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.expected deleted file mode 100644 index de0945572cf..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.expected +++ /dev/null @@ -1,8 +0,0 @@ -| key_path_expr.swift:11:12:11:17 | #keyPath(...) | WritableKeyPath | -| key_path_expr.swift:12:18:12:26 | #keyPath(...) | WritableKeyPath<[Int], Int> | -| key_path_expr.swift:13:19:13:38 | #keyPath(...) | WritableKeyPath<[String : Int], Int?> | -| key_path_expr.swift:14:16:14:35 | #keyPath(...) | WritableKeyPath, Int> | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | KeyPath | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | KeyPath | -| key_path_expr.swift:17:11:17:16 | #keyPath(...) | WritableKeyPath | -| key_path_expr.swift:18:20:18:32 | #keyPath(...) | WritableKeyPath<(Int, Int), Int> | diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql deleted file mode 100644 index 84c2a6c37d8..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from KeyPathExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected index 8e528ff32a2..6154c2a7958 100644 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected @@ -1,3 +1,4 @@ +instances | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | UnownedSerialExecutor.Type | hasMember: | yes | getMethodRef: | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | | method_lookups.swift:7:13:7:13 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:7:13:7:13 | self | hasMember: | no | getMethodRef: | method_lookups.swift:7:13:7:13 | { ... } | | method_lookups.swift:7:13:7:13 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:7:13:7:13 | baz(_:) | @@ -27,3 +28,58 @@ | method_lookups.swift:53:11:53:23 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:53:18:53:20 | call to Z.init() | hasMember: | no | getMethodRef: | method_lookups.swift:53:23:53:23 | { ... } | | method_lookups.swift:53:18:53:18 | Z.init() | hasType: | yes | getBase: | method_lookups.swift:53:18:53:18 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:53:18:53:18 | Z.init() | | method_lookups.swift:53:23:53:23 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:53:23:53:23 | baz(_:) | +getType +| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | (Builtin.Executor) -> UnownedSerialExecutor | +| method_lookups.swift:7:13:7:13 | (no string representation) | (Int) -> () | +| method_lookups.swift:7:13:7:13 | .baz(_:) | (Int) -> () | +| method_lookups.swift:16:13:16:13 | (no string representation) | (Int) -> () | +| method_lookups.swift:16:13:16:13 | .baz(_:) | (Int) -> () | +| method_lookups.swift:27:13:27:13 | (no string representation) | @MainActor (Int) -> () | +| method_lookups.swift:27:13:27:13 | .baz(_:) | (Int) -> () | +| method_lookups.swift:32:3:32:5 | .foo(_:_:) | (Int, Int) -> () | +| method_lookups.swift:33:3:33:5 | .bar() | () -> () | +| method_lookups.swift:34:3:34:3 | X.init() | () -> X | +| method_lookups.swift:34:3:34:7 | .baz(_:) | (Int) -> () | +| method_lookups.swift:36:11:36:13 | .bar() | () -> () | +| method_lookups.swift:37:11:37:11 | X.init() | () -> X | +| method_lookups.swift:37:11:37:15 | (no string representation) | (Int) -> () | +| method_lookups.swift:37:15:37:15 | .baz(_:) | (Int) -> () | +| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | (TaskPriority?, sending @escaping @isolated(any) () async -> ()) -> Task<(), Never> | +| method_lookups.swift:41:3:41:5 | .foo(_:_:) | (Int, Int) -> () | +| method_lookups.swift:42:9:42:9 | Y.init() | () -> Y | +| method_lookups.swift:42:9:42:13 | .baz(_:) | (Int) -> () | +| method_lookups.swift:44:11:44:13 | .foo(_:_:) | (Int, Int) -> () | +| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | (TaskPriority?, sending @escaping @isolated(any) () async -> ()) -> Task<(), Never> | +| method_lookups.swift:48:9:48:11 | .foo(_:_:) | @MainActor (Int, Int) -> () | +| method_lookups.swift:49:9:49:11 | .bar() | () -> () | +| method_lookups.swift:50:9:50:9 | Z.init() | @MainActor () -> Z | +| method_lookups.swift:50:9:50:13 | .baz(_:) | @MainActor (Int) -> () | +| method_lookups.swift:52:11:52:13 | .bar() | () -> () | +| method_lookups.swift:53:11:53:23 | (no string representation) | @MainActor (Int) -> () | +| method_lookups.swift:53:18:53:18 | Z.init() | @MainActor () -> Z | +| method_lookups.swift:53:23:53:23 | .baz(_:) | (Int) -> () | +getMember +| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | +| method_lookups.swift:7:13:7:13 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | +| method_lookups.swift:16:13:16:13 | .baz(_:) | method_lookups.swift:13:3:13:21 | baz(_:) | +| method_lookups.swift:27:13:27:13 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | +| method_lookups.swift:32:3:32:5 | .foo(_:_:) | method_lookups.swift:2:3:2:35 | foo(_:_:) | +| method_lookups.swift:33:3:33:5 | .bar() | method_lookups.swift:3:3:3:21 | bar() | +| method_lookups.swift:34:3:34:3 | X.init() | method_lookups.swift:6:3:8:3 | X.init() | +| method_lookups.swift:34:3:34:7 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | +| method_lookups.swift:36:11:36:13 | .bar() | method_lookups.swift:3:3:3:21 | bar() | +| method_lookups.swift:37:11:37:11 | X.init() | method_lookups.swift:6:3:8:3 | X.init() | +| method_lookups.swift:37:15:37:15 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | +| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | file://:0:0:0:0 | Task.init(priority:operation:) | +| method_lookups.swift:41:3:41:5 | .foo(_:_:) | method_lookups.swift:12:3:12:35 | foo(_:_:) | +| method_lookups.swift:42:9:42:9 | Y.init() | method_lookups.swift:15:3:17:3 | Y.init() | +| method_lookups.swift:42:9:42:13 | .baz(_:) | method_lookups.swift:13:3:13:21 | baz(_:) | +| method_lookups.swift:44:11:44:13 | .foo(_:_:) | method_lookups.swift:12:3:12:35 | foo(_:_:) | +| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | file://:0:0:0:0 | Task.init(priority:operation:) | +| method_lookups.swift:48:9:48:11 | .foo(_:_:) | method_lookups.swift:22:3:22:35 | foo(_:_:) | +| method_lookups.swift:49:9:49:11 | .bar() | method_lookups.swift:23:15:23:33 | bar() | +| method_lookups.swift:50:9:50:9 | Z.init() | method_lookups.swift:26:3:28:3 | Z.init() | +| method_lookups.swift:50:9:50:13 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | +| method_lookups.swift:52:11:52:13 | .bar() | method_lookups.swift:23:15:23:33 | bar() | +| method_lookups.swift:53:18:53:18 | Z.init() | method_lookups.swift:26:3:28:3 | Z.init() | +| method_lookups.swift:53:23:53:23 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql index 74a45c0bad3..42847d62bd5 100644 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql @@ -2,13 +2,26 @@ import codeql.swift.elements import TestUtils -from MethodLookupExpr x, string hasType, Expr getBase, string hasMember, Expr getMethodRef -where +query predicate instances( + MethodLookupExpr x, string hasType__label, string hasType, string getBase__label, Expr getBase, + string hasMember__label, string hasMember, string getMethodRef__label, Expr getMethodRef +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getBase__label = "getBase:" and getBase = x.getBase() and + hasMember__label = "hasMember:" and (if x.hasMember() then hasMember = "yes" else hasMember = "no") and + getMethodRef__label = "getMethodRef:" and getMethodRef = x.getMethodRef() -select x, "hasType:", hasType, "getBase:", getBase, "hasMember:", hasMember, "getMethodRef:", - getMethodRef +} + +query predicate getType(MethodLookupExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getMember(MethodLookupExpr x, Decl getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.expected b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.expected deleted file mode 100644 index a272e0da941..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.expected +++ /dev/null @@ -1,24 +0,0 @@ -| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | -| method_lookups.swift:7:13:7:13 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | -| method_lookups.swift:16:13:16:13 | .baz(_:) | method_lookups.swift:13:3:13:21 | baz(_:) | -| method_lookups.swift:27:13:27:13 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | -| method_lookups.swift:32:3:32:5 | .foo(_:_:) | method_lookups.swift:2:3:2:35 | foo(_:_:) | -| method_lookups.swift:33:3:33:5 | .bar() | method_lookups.swift:3:3:3:21 | bar() | -| method_lookups.swift:34:3:34:3 | X.init() | method_lookups.swift:6:3:8:3 | X.init() | -| method_lookups.swift:34:3:34:7 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | -| method_lookups.swift:36:11:36:13 | .bar() | method_lookups.swift:3:3:3:21 | bar() | -| method_lookups.swift:37:11:37:11 | X.init() | method_lookups.swift:6:3:8:3 | X.init() | -| method_lookups.swift:37:15:37:15 | .baz(_:) | method_lookups.swift:4:3:4:21 | baz(_:) | -| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | file://:0:0:0:0 | Task.init(priority:operation:) | -| method_lookups.swift:41:3:41:5 | .foo(_:_:) | method_lookups.swift:12:3:12:35 | foo(_:_:) | -| method_lookups.swift:42:9:42:9 | Y.init() | method_lookups.swift:15:3:17:3 | Y.init() | -| method_lookups.swift:42:9:42:13 | .baz(_:) | method_lookups.swift:13:3:13:21 | baz(_:) | -| method_lookups.swift:44:11:44:13 | .foo(_:_:) | method_lookups.swift:12:3:12:35 | foo(_:_:) | -| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | file://:0:0:0:0 | Task.init(priority:operation:) | -| method_lookups.swift:48:9:48:11 | .foo(_:_:) | method_lookups.swift:22:3:22:35 | foo(_:_:) | -| method_lookups.swift:49:9:49:11 | .bar() | method_lookups.swift:23:15:23:33 | bar() | -| method_lookups.swift:50:9:50:9 | Z.init() | method_lookups.swift:26:3:28:3 | Z.init() | -| method_lookups.swift:50:9:50:13 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | -| method_lookups.swift:52:11:52:13 | .bar() | method_lookups.swift:23:15:23:33 | bar() | -| method_lookups.swift:53:18:53:18 | Z.init() | method_lookups.swift:26:3:28:3 | Z.init() | -| method_lookups.swift:53:23:53:23 | .baz(_:) | method_lookups.swift:24:3:24:21 | baz(_:) | diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql deleted file mode 100644 index 5ac3ed35002..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MethodLookupExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getMember() diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.expected deleted file mode 100644 index 7ea638a186c..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.expected +++ /dev/null @@ -1,29 +0,0 @@ -| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | (Builtin.Executor) -> UnownedSerialExecutor | -| method_lookups.swift:7:13:7:13 | (no string representation) | (Int) -> () | -| method_lookups.swift:7:13:7:13 | .baz(_:) | (Int) -> () | -| method_lookups.swift:16:13:16:13 | (no string representation) | (Int) -> () | -| method_lookups.swift:16:13:16:13 | .baz(_:) | (Int) -> () | -| method_lookups.swift:27:13:27:13 | (no string representation) | @MainActor (Int) -> () | -| method_lookups.swift:27:13:27:13 | .baz(_:) | (Int) -> () | -| method_lookups.swift:32:3:32:5 | .foo(_:_:) | (Int, Int) -> () | -| method_lookups.swift:33:3:33:5 | .bar() | () -> () | -| method_lookups.swift:34:3:34:3 | X.init() | () -> X | -| method_lookups.swift:34:3:34:7 | .baz(_:) | (Int) -> () | -| method_lookups.swift:36:11:36:13 | .bar() | () -> () | -| method_lookups.swift:37:11:37:11 | X.init() | () -> X | -| method_lookups.swift:37:11:37:15 | (no string representation) | (Int) -> () | -| method_lookups.swift:37:15:37:15 | .baz(_:) | (Int) -> () | -| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | (TaskPriority?, sending @escaping @isolated(any) () async -> ()) -> Task<(), Never> | -| method_lookups.swift:41:3:41:5 | .foo(_:_:) | (Int, Int) -> () | -| method_lookups.swift:42:9:42:9 | Y.init() | () -> Y | -| method_lookups.swift:42:9:42:13 | .baz(_:) | (Int) -> () | -| method_lookups.swift:44:11:44:13 | .foo(_:_:) | (Int, Int) -> () | -| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | (TaskPriority?, sending @escaping @isolated(any) () async -> ()) -> Task<(), Never> | -| method_lookups.swift:48:9:48:11 | .foo(_:_:) | @MainActor (Int, Int) -> () | -| method_lookups.swift:49:9:49:11 | .bar() | () -> () | -| method_lookups.swift:50:9:50:9 | Z.init() | @MainActor () -> Z | -| method_lookups.swift:50:9:50:13 | .baz(_:) | @MainActor (Int) -> () | -| method_lookups.swift:52:11:52:13 | .bar() | () -> () | -| method_lookups.swift:53:11:53:23 | (no string representation) | @MainActor (Int) -> () | -| method_lookups.swift:53:18:53:18 | Z.init() | @MainActor () -> Z | -| method_lookups.swift:53:23:53:23 | .baz(_:) | (Int) -> () | diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql deleted file mode 100644 index 63641a8fc5f..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MethodLookupExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected index 46cfc6b8a79..74d12295b90 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected @@ -1,3 +1,15 @@ +instances | object_literals.swift:5:5:5:42 | #fileLiteral(...) | hasType: | yes | getKind: | 0 | getNumberOfArguments: | 1 | | object_literals.swift:6:5:6:61 | #colorLiteral(...) | hasType: | yes | getKind: | 2 | getNumberOfArguments: | 4 | | object_literals.swift:7:5:7:44 | #imageLiteral(...) | hasType: | yes | getKind: | 1 | getNumberOfArguments: | 1 | +getType +| object_literals.swift:5:5:5:42 | #fileLiteral(...) | <> | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | <> | +| object_literals.swift:7:5:7:44 | #imageLiteral(...) | <> | +getArgument +| object_literals.swift:5:5:5:42 | #fileLiteral(...) | 0 | object_literals.swift:5:18:5:32 | resourceName: file.txt | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 0 | object_literals.swift:6:19:6:24 | red: 255 | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 1 | object_literals.swift:6:29:6:36 | green: 255 | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 2 | object_literals.swift:6:41:6:47 | blue: 255 | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 3 | object_literals.swift:6:52:6:59 | alpha: 50 | +| object_literals.swift:7:5:7:44 | #imageLiteral(...) | 0 | object_literals.swift:7:19:7:33 | resourceName: image.gif | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql index 229da3ff942..c4c48c022b0 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql @@ -2,11 +2,24 @@ import codeql.swift.elements import TestUtils -from ObjectLiteralExpr x, string hasType, int getKind, int getNumberOfArguments -where +query predicate instances( + ObjectLiteralExpr x, string hasType__label, string hasType, string getKind__label, int getKind, + string getNumberOfArguments__label, int getNumberOfArguments +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getKind__label = "getKind:" and getKind = x.getKind() and + getNumberOfArguments__label = "getNumberOfArguments:" and getNumberOfArguments = x.getNumberOfArguments() -select x, "hasType:", hasType, "getKind:", getKind, "getNumberOfArguments:", getNumberOfArguments +} + +query predicate getType(ObjectLiteralExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getArgument(ObjectLiteralExpr x, int index, Argument getArgument) { + toBeTested(x) and not x.isUnknown() and getArgument = x.getArgument(index) +} diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.expected deleted file mode 100644 index aa581dfdd81..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.expected +++ /dev/null @@ -1,6 +0,0 @@ -| object_literals.swift:5:5:5:42 | #fileLiteral(...) | 0 | object_literals.swift:5:18:5:32 | resourceName: file.txt | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 0 | object_literals.swift:6:19:6:24 | red: 255 | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 1 | object_literals.swift:6:29:6:36 | green: 255 | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 2 | object_literals.swift:6:41:6:47 | blue: 255 | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | 3 | object_literals.swift:6:52:6:59 | alpha: 50 | -| object_literals.swift:7:5:7:44 | #imageLiteral(...) | 0 | object_literals.swift:7:19:7:33 | resourceName: image.gif | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql deleted file mode 100644 index ee6d74c73f0..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ObjectLiteralExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.expected deleted file mode 100644 index 49fcd7db593..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.expected +++ /dev/null @@ -1,3 +0,0 @@ -| object_literals.swift:5:5:5:42 | #fileLiteral(...) | <> | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | <> | -| object_literals.swift:7:5:7:44 | #imageLiteral(...) | <> | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql deleted file mode 100644 index 98378261fd0..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ObjectLiteralExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected index 4d2e4f05c6e..bddb0fdef4c 100644 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected @@ -1 +1,4 @@ +instances | open_existentials.swift:14:5:14:19 | OpenExistentialExpr | hasType: | yes | getSubExpr: | open_existentials.swift:14:5:14:19 | call to foo() | getExistential: | open_existentials.swift:14:5:14:13 | call to createP() | getOpaqueExpr: | open_existentials.swift:14:5:14:13 | OpaqueValueExpr | +getType +| open_existentials.swift:14:5:14:19 | OpenExistentialExpr | () | diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql index 86e0c488872..26f8e8e9eaa 100644 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql @@ -2,15 +2,23 @@ import codeql.swift.elements import TestUtils -from - OpenExistentialExpr x, string hasType, Expr getSubExpr, Expr getExistential, +query predicate instances( + OpenExistentialExpr x, string hasType__label, string hasType, string getSubExpr__label, + Expr getSubExpr, string getExistential__label, Expr getExistential, string getOpaqueExpr__label, OpaqueValueExpr getOpaqueExpr -where +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() and + getExistential__label = "getExistential:" and getExistential = x.getExistential() and + getOpaqueExpr__label = "getOpaqueExpr:" and getOpaqueExpr = x.getOpaqueExpr() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr, "getExistential:", getExistential, - "getOpaqueExpr:", getOpaqueExpr +} + +query predicate getType(OpenExistentialExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.expected deleted file mode 100644 index 2103b344895..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| open_existentials.swift:14:5:14:19 | OpenExistentialExpr | () | diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql deleted file mode 100644 index 3e6f5ad9700..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpenExistentialExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.expected index e69de29bb2d..26ca47278ce 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.expected @@ -0,0 +1,2 @@ +instances +getType diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql index 190e4009893..51d3a87b1ac 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from MaterializePackExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + MaterializePackExpr x, string hasType__label, string hasType, string getSubExpr__label, + Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(MaterializePackExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql deleted file mode 100644 index e1c8ad68ca4..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from MaterializePackExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected index da55509ca55..4f4eb6cd416 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected @@ -1 +1,4 @@ +instances | test.swift:2:18:2:23 | PackElementExpr | hasType: | yes | getSubExpr: | test.swift:2:23:2:23 | t | +getType +| test.swift:2:18:2:23 | PackElementExpr | \u03c4_1_0 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql index c86c6235de8..11c6fe8d1b4 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from PackElementExpr x, string hasType, Expr getSubExpr -where +query predicate instances( + PackElementExpr x, string hasType__label, string hasType, string getSubExpr__label, + Expr getSubExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, "hasType:", hasType, "getSubExpr:", getSubExpr +} + +query predicate getType(PackElementExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.expected deleted file mode 100644 index b2a455ec7f3..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| test.swift:2:18:2:23 | PackElementExpr | \u03c4_1_0 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql deleted file mode 100644 index 7e43978e2b2..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PackElementExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected index 071187d2746..fc1acfc68c9 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected @@ -1 +1,4 @@ +instances | test.swift:2:11:2:23 | PackExpansionExpr | hasType: | yes | getPatternExpr: | test.swift:2:18:2:23 | PackElementExpr | +getType +| test.swift:2:11:2:23 | PackExpansionExpr | repeat each T | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql index a7a19b30b9e..13b78136f54 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from PackExpansionExpr x, string hasType, Expr getPatternExpr -where +query predicate instances( + PackExpansionExpr x, string hasType__label, string hasType, string getPatternExpr__label, + Expr getPatternExpr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getPatternExpr__label = "getPatternExpr:" and getPatternExpr = x.getPatternExpr() -select x, "hasType:", hasType, "getPatternExpr:", getPatternExpr +} + +query predicate getType(PackExpansionExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.expected deleted file mode 100644 index c391c208118..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| test.swift:2:11:2:23 | PackExpansionExpr | repeat each T | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql deleted file mode 100644 index a7d8aec2bf3..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PackExpansionExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected index 4207559e85e..9a52e0a25c8 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected @@ -1,2 +1,9 @@ +instances | postfix.swift:1:5:1:6 | call to ...(_:) | hasType: | yes | getFunction: | postfix.swift:1:6:1:6 | ....(_:) | getNumberOfArguments: | 1 | | postfix.swift:7:1:7:2 | call to **(_:) | hasType: | yes | getFunction: | postfix.swift:7:2:7:2 | **(_:) | getNumberOfArguments: | 1 | +getType +| postfix.swift:1:5:1:6 | call to ...(_:) | PartialRangeFrom | +| postfix.swift:7:1:7:2 | call to **(_:) | () | +getArgument +| postfix.swift:1:5:1:6 | call to ...(_:) | 0 | postfix.swift:1:5:1:5 | : 3 | +| postfix.swift:7:1:7:2 | call to **(_:) | 0 | postfix.swift:7:1:7:1 | : 3 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql index cbdd281f5d6..6df8be9a8a6 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql @@ -2,12 +2,24 @@ import codeql.swift.elements import TestUtils -from PostfixUnaryExpr x, string hasType, Expr getFunction, int getNumberOfArguments -where +query predicate instances( + PostfixUnaryExpr x, string hasType__label, string hasType, string getFunction__label, + Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getFunction__label = "getFunction:" and getFunction = x.getFunction() and + getNumberOfArguments__label = "getNumberOfArguments:" and getNumberOfArguments = x.getNumberOfArguments() -select x, "hasType:", hasType, "getFunction:", getFunction, "getNumberOfArguments:", - getNumberOfArguments +} + +query predicate getType(PostfixUnaryExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getArgument(PostfixUnaryExpr x, int index, Argument getArgument) { + toBeTested(x) and not x.isUnknown() and getArgument = x.getArgument(index) +} diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.expected b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.expected deleted file mode 100644 index 8529faaf7a4..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.expected +++ /dev/null @@ -1,2 +0,0 @@ -| postfix.swift:1:5:1:6 | call to ...(_:) | 0 | postfix.swift:1:5:1:5 | : 3 | -| postfix.swift:7:1:7:2 | call to **(_:) | 0 | postfix.swift:7:1:7:1 | : 3 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql deleted file mode 100644 index f8d2dbc0b8f..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getArgument.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PostfixUnaryExpr x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArgument(index) diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.expected deleted file mode 100644 index caa5cc7f158..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| postfix.swift:1:5:1:6 | call to ...(_:) | PartialRangeFrom | -| postfix.swift:7:1:7:2 | call to **(_:) | () | diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql deleted file mode 100644 index 175b51cc516..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PostfixUnaryExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected index 9fda9feadaf..54cba7a2a04 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected @@ -1 +1,6 @@ +instances | property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | hasType: | yes | hasWrappedValue: | yes | getPlaceholder: | property_wrapper_value_placeholder.swift:12:26:12:26 | OpaqueValueExpr | +getType +| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | Int | +getWrappedValue +| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | property_wrapper_value_placeholder.swift:12:26:12:26 | 42 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql index 7d385ce8430..5bb768043f8 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql @@ -2,14 +2,25 @@ import codeql.swift.elements import TestUtils -from - PropertyWrapperValuePlaceholderExpr x, string hasType, string hasWrappedValue, +query predicate instances( + PropertyWrapperValuePlaceholderExpr x, string hasType__label, string hasType, + string hasWrappedValue__label, string hasWrappedValue, string getPlaceholder__label, OpaqueValueExpr getPlaceholder -where +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + hasWrappedValue__label = "hasWrappedValue:" and (if x.hasWrappedValue() then hasWrappedValue = "yes" else hasWrappedValue = "no") and + getPlaceholder__label = "getPlaceholder:" and getPlaceholder = x.getPlaceholder() -select x, "hasType:", hasType, "hasWrappedValue:", hasWrappedValue, "getPlaceholder:", - getPlaceholder +} + +query predicate getType(PropertyWrapperValuePlaceholderExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} + +query predicate getWrappedValue(PropertyWrapperValuePlaceholderExpr x, Expr getWrappedValue) { + toBeTested(x) and not x.isUnknown() and getWrappedValue = x.getWrappedValue() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.expected deleted file mode 100644 index c8ac89e2844..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.expected +++ /dev/null @@ -1 +0,0 @@ -| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql deleted file mode 100644 index 530cbc87283..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PropertyWrapperValuePlaceholderExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.expected b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.expected deleted file mode 100644 index 042308c9ea3..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.expected +++ /dev/null @@ -1 +0,0 @@ -| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | property_wrapper_value_placeholder.swift:12:26:12:26 | 42 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql deleted file mode 100644 index 028c492631b..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr_getWrappedValue.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PropertyWrapperValuePlaceholderExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getWrappedValue() diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected index 336aca667ee..a25d72d1157 100644 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected @@ -1,2 +1,6 @@ +instances | test.swift:2:3:7:3 | SingleValueStmtExpr | hasType: | yes | getStmt: | test.swift:2:3:7:3 | switch x { ... } | | test.swift:11:3:11:30 | SingleValueStmtExpr | hasType: | yes | getStmt: | test.swift:11:3:11:30 | if ... then { ... } else { ... } | +getType +| test.swift:2:3:7:3 | SingleValueStmtExpr | Int | +| test.swift:11:3:11:30 | SingleValueStmtExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql index 79e304da1d7..1ce8d70b9d1 100644 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql @@ -2,10 +2,17 @@ import codeql.swift.elements import TestUtils -from SingleValueStmtExpr x, string hasType, Stmt getStmt -where +query predicate instances( + SingleValueStmtExpr x, string hasType__label, string hasType, string getStmt__label, Stmt getStmt +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getStmt__label = "getStmt:" and getStmt = x.getStmt() -select x, "hasType:", hasType, "getStmt:", getStmt +} + +query predicate getType(SingleValueStmtExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.expected deleted file mode 100644 index 9d533e94cda..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| test.swift:2:3:7:3 | SingleValueStmtExpr | Int | -| test.swift:11:3:11:30 | SingleValueStmtExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql deleted file mode 100644 index bd8354df61d..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from SingleValueStmtExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql index a03b5a6b9ae..d98b8553bd1 100644 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql +++ b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql @@ -2,9 +2,9 @@ import codeql.swift.elements import TestUtils -from ThenStmt x, Expr getResult -where +query predicate instances(ThenStmt x, string getResult__label, Expr getResult) { toBeTested(x) and not x.isUnknown() and + getResult__label = "getResult:" and getResult = x.getResult() -select x, "getResult:", getResult +} diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected index 685ff810fcf..b141bd02461 100644 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected @@ -1,2 +1,6 @@ +instances | type_value_exprs.swift:4:13:4:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | N | | type_value_exprs.swift:5:13:5:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | N | +getType +| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | Int | +| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql index d434781d152..7d8d93de33d 100644 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from TypeValueExpr x, string hasType, TypeRepr getTypeRepr -where +query predicate instances( + TypeValueExpr x, string hasType__label, string hasType, string getTypeRepr__label, + TypeRepr getTypeRepr +) { toBeTested(x) and not x.isUnknown() and + hasType__label = "hasType:" and (if x.hasType() then hasType = "yes" else hasType = "no") and + getTypeRepr__label = "getTypeRepr:" and getTypeRepr = x.getTypeRepr() -select x, "hasType:", hasType, "getTypeRepr:", getTypeRepr +} + +query predicate getType(TypeValueExpr x, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType() +} diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected deleted file mode 100644 index 43e48141790..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.expected +++ /dev/null @@ -1,2 +0,0 @@ -| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | Int | -| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql deleted file mode 100644 index 3c08a5c76d4..00000000000 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from TypeValueExpr x -where toBeTested(x) and not x.isUnknown() -select x, x.getType() diff --git a/swift/ql/test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql index 6d8807ea063..9837c935851 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/DiscardStmt/DiscardStmt.ql @@ -2,9 +2,9 @@ import codeql.swift.elements import TestUtils -from DiscardStmt x, Expr getSubExpr -where +query predicate instances(DiscardStmt x, string getSubExpr__label, Expr getSubExpr) { toBeTested(x) and not x.isUnknown() and + getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() -select x, "getSubExpr:", getSubExpr +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql index 94e0f118092..b66674e3cd4 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql @@ -2,6 +2,4 @@ import codeql.swift.elements import TestUtils -from FailStmt x -where toBeTested(x) and not x.isUnknown() -select x +query predicate instances(FailStmt x) { toBeTested(x) and not x.isUnknown() } diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected index 2fd2e5d318e..e31e88b4abb 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected @@ -1,3 +1,19 @@ +instances | for.swift:4:5:6:5 | for ... in ... where ... { ... } | hasLabel: | no | getNumberOfVariables: | 2 | getPattern: | for.swift:4:9:4:9 | x | hasWhere: | yes | hasIteratorVar: | yes | hasNextCall: | yes | getBody: | for.swift:4:32:6:5 | { ... } | | for.swift:7:5:9:5 | for ... in ... { ... } | hasLabel: | no | getNumberOfVariables: | 2 | getPattern: | for.swift:7:9:7:9 | s | hasWhere: | no | hasIteratorVar: | yes | hasNextCall: | yes | getBody: | for.swift:7:23:9:5 | { ... } | | for.swift:13:5:17:5 | for ... in ... { ... } | hasLabel: | no | getNumberOfVariables: | 1 | getPattern: | for.swift:13:9:13:9 | x | hasWhere: | no | hasIteratorVar: | no | hasNextCall: | no | getBody: | for.swift:13:32:17:5 | { ... } | +getLabel +getVariable +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | 0 | for.swift:4:9:4:9 | x | +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | 1 | for.swift:4:14:4:14 | $x$generator | +| for.swift:7:5:9:5 | for ... in ... { ... } | 0 | for.swift:7:9:7:9 | s | +| for.swift:7:5:9:5 | for ... in ... { ... } | 1 | for.swift:7:14:7:14 | $s$generator | +| for.swift:13:5:17:5 | for ... in ... { ... } | 0 | for.swift:13:9:13:9 | x | +getWhere +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:25:4:30 | ... .!=(_:_:) ... | +getIteratorVar +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | file://:0:0:0:0 | var ... = ... | +| for.swift:7:5:9:5 | for ... in ... { ... } | file://:0:0:0:0 | var ... = ... | +getNextCall +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:5:4:5 | call to next() | +| for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:5:7:5 | call to next() | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql index bb659c7855a..043e77e5e45 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql @@ -2,19 +2,46 @@ import codeql.swift.elements import TestUtils -from - ForEachStmt x, string hasLabel, int getNumberOfVariables, Pattern getPattern, string hasWhere, - string hasIteratorVar, string hasNextCall, BraceStmt getBody -where +query predicate instances( + ForEachStmt x, string hasLabel__label, string hasLabel, string getNumberOfVariables__label, + int getNumberOfVariables, string getPattern__label, Pattern getPattern, string hasWhere__label, + string hasWhere, string hasIteratorVar__label, string hasIteratorVar, string hasNextCall__label, + string hasNextCall, string getBody__label, BraceStmt getBody +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + getNumberOfVariables__label = "getNumberOfVariables:" and getNumberOfVariables = x.getNumberOfVariables() and + getPattern__label = "getPattern:" and getPattern = x.getPattern() and + hasWhere__label = "hasWhere:" and (if x.hasWhere() then hasWhere = "yes" else hasWhere = "no") and + hasIteratorVar__label = "hasIteratorVar:" and (if x.hasIteratorVar() then hasIteratorVar = "yes" else hasIteratorVar = "no") and + hasNextCall__label = "hasNextCall:" and (if x.hasNextCall() then hasNextCall = "yes" else hasNextCall = "no") and + getBody__label = "getBody:" and getBody = x.getBody() -select x, "hasLabel:", hasLabel, "getNumberOfVariables:", getNumberOfVariables, "getPattern:", - getPattern, "hasWhere:", hasWhere, "hasIteratorVar:", hasIteratorVar, "hasNextCall:", hasNextCall, - "getBody:", getBody +} + +query predicate getLabel(ForEachStmt x, string getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getVariable(ForEachStmt x, int index, VarDecl getVariable) { + toBeTested(x) and not x.isUnknown() and getVariable = x.getVariable(index) +} + +query predicate getWhere(ForEachStmt x, Expr getWhere) { + toBeTested(x) and not x.isUnknown() and getWhere = x.getWhere() +} + +query predicate getIteratorVar(ForEachStmt x, PatternBindingDecl getIteratorVar) { + toBeTested(x) and not x.isUnknown() and getIteratorVar = x.getIteratorVar() +} + +query predicate getNextCall(ForEachStmt x, Expr getNextCall) { + toBeTested(x) and not x.isUnknown() and getNextCall = x.getNextCall() +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.expected deleted file mode 100644 index 72e969cbaa4..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.expected +++ /dev/null @@ -1,2 +0,0 @@ -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | file://:0:0:0:0 | var ... = ... | -| for.swift:7:5:9:5 | for ... in ... { ... } | file://:0:0:0:0 | var ... = ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql deleted file mode 100644 index 76c004d4e56..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getIteratorVar.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ForEachStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getIteratorVar() diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql deleted file mode 100644 index 218668c2e28..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ForEachStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.expected deleted file mode 100644 index 191a8f2196b..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.expected +++ /dev/null @@ -1,2 +0,0 @@ -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:5:4:5 | call to next() | -| for.swift:7:5:9:5 | for ... in ... { ... } | for.swift:7:5:7:5 | call to next() | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql deleted file mode 100644 index 1b52342b92c..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getNextCall.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ForEachStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getNextCall() diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.expected deleted file mode 100644 index 9762122d43d..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.expected +++ /dev/null @@ -1,5 +0,0 @@ -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | 0 | for.swift:4:9:4:9 | x | -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | 1 | for.swift:4:14:4:14 | $x$generator | -| for.swift:7:5:9:5 | for ... in ... { ... } | 0 | for.swift:7:9:7:9 | s | -| for.swift:7:5:9:5 | for ... in ... { ... } | 1 | for.swift:7:14:7:14 | $s$generator | -| for.swift:13:5:17:5 | for ... in ... { ... } | 0 | for.swift:13:9:13:9 | x | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql deleted file mode 100644 index 9981a03570a..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getVariable.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ForEachStmt x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getVariable(index) diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.expected deleted file mode 100644 index 991ace80dd3..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.expected +++ /dev/null @@ -1 +0,0 @@ -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | for.swift:4:25:4:30 | ... .!=(_:_:) ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql deleted file mode 100644 index 176846c278c..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt_getWhere.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ForEachStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getWhere() diff --git a/swift/ql/test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql index b87fecd5d03..cafb34acd4c 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql @@ -2,10 +2,14 @@ import codeql.swift.elements import TestUtils -from PoundAssertStmt x, Expr getCondition, string getMessage -where +query predicate instances( + PoundAssertStmt x, string getCondition__label, Expr getCondition, string getMessage__label, + string getMessage +) { toBeTested(x) and not x.isUnknown() and + getCondition__label = "getCondition:" and getCondition = x.getCondition() and + getMessage__label = "getMessage:" and getMessage = x.getMessage() -select x, "getCondition:", getCondition, "getMessage:", getMessage +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected index 0254cddd8e0..5f8b4bd6e34 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected @@ -1,3 +1,4 @@ +instances | switch.swift:3:9:3:9 | =~ ... | getPattern: | switch.swift:3:9:3:9 | =~ ... | hasGuard: | no | | switch.swift:6:9:6:9 | =~ ... | getPattern: | switch.swift:6:9:6:9 | =~ ... | hasGuard: | no | | switch.swift:6:12:6:12 | =~ ... | getPattern: | switch.swift:6:12:6:12 | =~ ... | hasGuard: | no | @@ -11,3 +12,6 @@ | switch.swift:35:13:35:13 | =~ ... | getPattern: | switch.swift:35:13:35:13 | =~ ... | hasGuard: | no | | switch.swift:37:8:37:8 | _ | getPattern: | switch.swift:37:8:37:8 | _ | hasGuard: | no | | switch.swift:40:3:40:3 | _ | getPattern: | switch.swift:40:3:40:3 | _ | hasGuard: | no | +getGuard +| switch.swift:8:9:8:26 | x where ... | switch.swift:8:21:8:26 | ... .>=(_:_:) ... | +| switch.swift:24:8:24:40 | .two(...) where ... | switch.swift:24:33:24:40 | ... .==(_:_:) ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql index 9808b8ab7d0..9c4f6e85dde 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql @@ -2,10 +2,18 @@ import codeql.swift.elements import TestUtils -from CaseLabelItem x, Pattern getPattern, string hasGuard -where +query predicate instances( + CaseLabelItem x, string getPattern__label, Pattern getPattern, string hasGuard__label, + string hasGuard +) { toBeTested(x) and not x.isUnknown() and + getPattern__label = "getPattern:" and getPattern = x.getPattern() and + hasGuard__label = "hasGuard:" and if x.hasGuard() then hasGuard = "yes" else hasGuard = "no" -select x, "getPattern:", getPattern, "hasGuard:", hasGuard +} + +query predicate getGuard(CaseLabelItem x, Expr getGuard) { + toBeTested(x) and not x.isUnknown() and getGuard = x.getGuard() +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.expected deleted file mode 100644 index 34766875463..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.expected +++ /dev/null @@ -1,2 +0,0 @@ -| switch.swift:8:9:8:26 | x where ... | switch.swift:8:21:8:26 | ... .>=(_:_:) ... | -| switch.swift:24:8:24:40 | .two(...) where ... | switch.swift:24:33:24:40 | ... .==(_:_:) ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql deleted file mode 100644 index 08e9260bc8e..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem_getGuard.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from CaseLabelItem x -where toBeTested(x) and not x.isUnknown() -select x, x.getGuard() diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected index ed701018d38..c00a1ba287d 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected @@ -1,3 +1,4 @@ +instances | switch.swift:3:4:5:7 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:4:7:5:7 | { ... } | | switch.swift:6:4:7:20 | case ... | getNumberOfLabels: | 2 | getNumberOfVariables: | 0 | getBody: | switch.swift:7:7:7:20 | { ... } | | switch.swift:8:4:9:18 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 1 | getBody: | switch.swift:9:7:9:18 | { ... } | @@ -10,3 +11,25 @@ | switch.swift:35:8:36:16 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:36:10:36:16 | { ... } | | switch.swift:37:8:38:16 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:38:10:38:16 | { ... } | | switch.swift:40:3:41:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:41:5:41:5 | { ... } | +getLabel +| switch.swift:3:4:5:7 | case ... | 0 | switch.swift:3:9:3:9 | =~ ... | +| switch.swift:6:4:7:20 | case ... | 0 | switch.swift:6:9:6:9 | =~ ... | +| switch.swift:6:4:7:20 | case ... | 1 | switch.swift:6:12:6:12 | =~ ... | +| switch.swift:8:4:9:18 | case ... | 0 | switch.swift:8:9:8:26 | x where ... | +| switch.swift:10:4:11:22 | case ... | 0 | switch.swift:10:4:10:4 | _ | +| switch.swift:22:3:23:5 | case ... | 0 | switch.swift:22:8:22:9 | .one | +| switch.swift:24:3:25:5 | case ... | 0 | switch.swift:24:8:24:40 | .two(...) where ... | +| switch.swift:26:3:27:5 | case ... | 0 | switch.swift:26:8:26:25 | .two(...) | +| switch.swift:28:3:29:5 | case ... | 0 | switch.swift:28:8:28:23 | .three(...) | +| switch.swift:33:3:39:5 | case ... | 0 | switch.swift:33:8:33:21 | .two(...) | +| switch.swift:35:8:36:16 | case ... | 0 | switch.swift:35:13:35:13 | =~ ... | +| switch.swift:37:8:38:16 | case ... | 0 | switch.swift:37:8:37:8 | _ | +| switch.swift:40:3:41:5 | case ... | 0 | switch.swift:40:3:40:3 | _ | +getVariable +| switch.swift:8:4:9:18 | case ... | 0 | switch.swift:8:13:8:13 | x | +| switch.swift:24:3:25:5 | case ... | 0 | switch.swift:24:17:24:17 | a | +| switch.swift:24:3:25:5 | case ... | 1 | switch.swift:24:24:24:24 | b | +| switch.swift:26:3:27:5 | case ... | 0 | switch.swift:26:17:26:17 | c | +| switch.swift:26:3:27:5 | case ... | 1 | switch.swift:26:24:26:24 | d | +| switch.swift:28:3:29:5 | case ... | 0 | switch.swift:28:22:28:22 | e | +| switch.swift:33:3:39:5 | case ... | 0 | switch.swift:33:17:33:17 | a | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql index 8951cdb1cb8..e1b30f7ec9b 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql @@ -2,12 +2,24 @@ import codeql.swift.elements import TestUtils -from CaseStmt x, int getNumberOfLabels, int getNumberOfVariables, Stmt getBody -where +query predicate instances( + CaseStmt x, string getNumberOfLabels__label, int getNumberOfLabels, + string getNumberOfVariables__label, int getNumberOfVariables, string getBody__label, Stmt getBody +) { toBeTested(x) and not x.isUnknown() and + getNumberOfLabels__label = "getNumberOfLabels:" and getNumberOfLabels = x.getNumberOfLabels() and + getNumberOfVariables__label = "getNumberOfVariables:" and getNumberOfVariables = x.getNumberOfVariables() and + getBody__label = "getBody:" and getBody = x.getBody() -select x, "getNumberOfLabels:", getNumberOfLabels, "getNumberOfVariables:", getNumberOfVariables, - "getBody:", getBody +} + +query predicate getLabel(CaseStmt x, int index, CaseLabelItem getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel(index) +} + +query predicate getVariable(CaseStmt x, int index, VarDecl getVariable) { + toBeTested(x) and not x.isUnknown() and getVariable = x.getVariable(index) +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.expected deleted file mode 100644 index 240872c9ece..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.expected +++ /dev/null @@ -1,13 +0,0 @@ -| switch.swift:3:4:5:7 | case ... | 0 | switch.swift:3:9:3:9 | =~ ... | -| switch.swift:6:4:7:20 | case ... | 0 | switch.swift:6:9:6:9 | =~ ... | -| switch.swift:6:4:7:20 | case ... | 1 | switch.swift:6:12:6:12 | =~ ... | -| switch.swift:8:4:9:18 | case ... | 0 | switch.swift:8:9:8:26 | x where ... | -| switch.swift:10:4:11:22 | case ... | 0 | switch.swift:10:4:10:4 | _ | -| switch.swift:22:3:23:5 | case ... | 0 | switch.swift:22:8:22:9 | .one | -| switch.swift:24:3:25:5 | case ... | 0 | switch.swift:24:8:24:40 | .two(...) where ... | -| switch.swift:26:3:27:5 | case ... | 0 | switch.swift:26:8:26:25 | .two(...) | -| switch.swift:28:3:29:5 | case ... | 0 | switch.swift:28:8:28:23 | .three(...) | -| switch.swift:33:3:39:5 | case ... | 0 | switch.swift:33:8:33:21 | .two(...) | -| switch.swift:35:8:36:16 | case ... | 0 | switch.swift:35:13:35:13 | =~ ... | -| switch.swift:37:8:38:16 | case ... | 0 | switch.swift:37:8:37:8 | _ | -| switch.swift:40:3:41:5 | case ... | 0 | switch.swift:40:3:40:3 | _ | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql deleted file mode 100644 index a4047035457..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from CaseStmt x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getLabel(index) diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.expected deleted file mode 100644 index 6e1b31a4809..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.expected +++ /dev/null @@ -1,7 +0,0 @@ -| switch.swift:8:4:9:18 | case ... | 0 | switch.swift:8:13:8:13 | x | -| switch.swift:24:3:25:5 | case ... | 0 | switch.swift:24:17:24:17 | a | -| switch.swift:24:3:25:5 | case ... | 1 | switch.swift:24:24:24:24 | b | -| switch.swift:26:3:27:5 | case ... | 0 | switch.swift:26:17:26:17 | c | -| switch.swift:26:3:27:5 | case ... | 1 | switch.swift:26:24:26:24 | d | -| switch.swift:28:3:29:5 | case ... | 0 | switch.swift:28:22:28:22 | e | -| switch.swift:33:3:39:5 | case ... | 0 | switch.swift:33:17:33:17 | a | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql deleted file mode 100644 index 14d32d18ddf..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt_getVariable.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from CaseStmt x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getVariable(index) diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected index e7258f337da..235550c775b 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected @@ -1,4 +1,21 @@ +instances | switch.swift:2:1:12:1 | switch index { ... } | hasLabel: | no | getExpr: | switch.swift:2:8:2:8 | index | getNumberOfCases: | 4 | | switch.swift:21:1:30:1 | switch x { ... } | hasLabel: | no | getExpr: | switch.swift:21:8:21:8 | x | getNumberOfCases: | 4 | | switch.swift:32:1:42:1 | switch x { ... } | hasLabel: | yes | getExpr: | switch.swift:32:15:32:15 | x | getNumberOfCases: | 2 | | switch.swift:34:5:39:5 | switch a { ... } | hasLabel: | yes | getExpr: | switch.swift:34:19:34:19 | a | getNumberOfCases: | 2 | +getLabel +| switch.swift:32:1:42:1 | switch x { ... } | outer | +| switch.swift:34:5:39:5 | switch a { ... } | inner | +getCase +| switch.swift:2:1:12:1 | switch index { ... } | 0 | switch.swift:3:4:5:7 | case ... | +| switch.swift:2:1:12:1 | switch index { ... } | 1 | switch.swift:6:4:7:20 | case ... | +| switch.swift:2:1:12:1 | switch index { ... } | 2 | switch.swift:8:4:9:18 | case ... | +| switch.swift:2:1:12:1 | switch index { ... } | 3 | switch.swift:10:4:11:22 | case ... | +| switch.swift:21:1:30:1 | switch x { ... } | 0 | switch.swift:22:3:23:5 | case ... | +| switch.swift:21:1:30:1 | switch x { ... } | 1 | switch.swift:24:3:25:5 | case ... | +| switch.swift:21:1:30:1 | switch x { ... } | 2 | switch.swift:26:3:27:5 | case ... | +| switch.swift:21:1:30:1 | switch x { ... } | 3 | switch.swift:28:3:29:5 | case ... | +| switch.swift:32:1:42:1 | switch x { ... } | 0 | switch.swift:33:3:39:5 | case ... | +| switch.swift:32:1:42:1 | switch x { ... } | 1 | switch.swift:40:3:41:5 | case ... | +| switch.swift:34:5:39:5 | switch a { ... } | 0 | switch.swift:35:8:36:16 | case ... | +| switch.swift:34:5:39:5 | switch a { ... } | 1 | switch.swift:37:8:38:16 | case ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql index 2844d4ebd90..ebc79dacf4e 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql @@ -2,11 +2,24 @@ import codeql.swift.elements import TestUtils -from SwitchStmt x, string hasLabel, Expr getExpr, int getNumberOfCases -where +query predicate instances( + SwitchStmt x, string hasLabel__label, string hasLabel, string getExpr__label, Expr getExpr, + string getNumberOfCases__label, int getNumberOfCases +) { toBeTested(x) and not x.isUnknown() and + hasLabel__label = "hasLabel:" and (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and + getExpr__label = "getExpr:" and getExpr = x.getExpr() and + getNumberOfCases__label = "getNumberOfCases:" and getNumberOfCases = x.getNumberOfCases() -select x, "hasLabel:", hasLabel, "getExpr:", getExpr, "getNumberOfCases:", getNumberOfCases +} + +query predicate getLabel(SwitchStmt x, string getLabel) { + toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() +} + +query predicate getCase(SwitchStmt x, int index, CaseStmt getCase) { + toBeTested(x) and not x.isUnknown() and getCase = x.getCase(index) +} diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.expected deleted file mode 100644 index 93c4db76adc..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.expected +++ /dev/null @@ -1,12 +0,0 @@ -| switch.swift:2:1:12:1 | switch index { ... } | 0 | switch.swift:3:4:5:7 | case ... | -| switch.swift:2:1:12:1 | switch index { ... } | 1 | switch.swift:6:4:7:20 | case ... | -| switch.swift:2:1:12:1 | switch index { ... } | 2 | switch.swift:8:4:9:18 | case ... | -| switch.swift:2:1:12:1 | switch index { ... } | 3 | switch.swift:10:4:11:22 | case ... | -| switch.swift:21:1:30:1 | switch x { ... } | 0 | switch.swift:22:3:23:5 | case ... | -| switch.swift:21:1:30:1 | switch x { ... } | 1 | switch.swift:24:3:25:5 | case ... | -| switch.swift:21:1:30:1 | switch x { ... } | 2 | switch.swift:26:3:27:5 | case ... | -| switch.swift:21:1:30:1 | switch x { ... } | 3 | switch.swift:28:3:29:5 | case ... | -| switch.swift:32:1:42:1 | switch x { ... } | 0 | switch.swift:33:3:39:5 | case ... | -| switch.swift:32:1:42:1 | switch x { ... } | 1 | switch.swift:40:3:41:5 | case ... | -| switch.swift:34:5:39:5 | switch a { ... } | 0 | switch.swift:35:8:36:16 | case ... | -| switch.swift:34:5:39:5 | switch a { ... } | 1 | switch.swift:37:8:38:16 | case ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql deleted file mode 100644 index c9f55f3b1d2..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getCase.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from SwitchStmt x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getCase(index) diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.expected deleted file mode 100644 index 99df95b0249..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.expected +++ /dev/null @@ -1,2 +0,0 @@ -| switch.swift:32:1:42:1 | switch x { ... } | outer | -| switch.swift:34:5:39:5 | switch a { ... } | inner | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql deleted file mode 100644 index 2d9aaf45845..00000000000 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt_getLabel.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from SwitchStmt x -where toBeTested(x) and not x.isUnknown() -select x, x.getLabel() diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected index d57e72a708b..db9d4a652c5 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected @@ -1,5 +1,11 @@ +instances | Builtin.Int8 | getName: | Int8 | getCanonicalType: | Builtin.Int8 | hasWidth: | yes | | Builtin.Int16 | getName: | Int16 | getCanonicalType: | Builtin.Int16 | hasWidth: | yes | | Builtin.Int32 | getName: | Int32 | getCanonicalType: | Builtin.Int32 | hasWidth: | yes | | Builtin.Int64 | getName: | Int64 | getCanonicalType: | Builtin.Int64 | hasWidth: | yes | | Builtin.Word | getName: | Word | getCanonicalType: | Builtin.Word | hasWidth: | no | +getWidth +| Builtin.Int8 | 8 | +| Builtin.Int16 | 16 | +| Builtin.Int32 | 32 | +| Builtin.Int64 | 64 | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql index ea32bf91d74..65c78478d15 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql @@ -2,11 +2,20 @@ import codeql.swift.elements import TestUtils -from BuiltinIntegerType x, string getName, Type getCanonicalType, string hasWidth -where +query predicate instances( + BuiltinIntegerType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string hasWidth__label, string hasWidth +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + hasWidth__label = "hasWidth:" and if x.hasWidth() then hasWidth = "yes" else hasWidth = "no" -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "hasWidth:", hasWidth +} + +query predicate getWidth(BuiltinIntegerType x, int getWidth) { + toBeTested(x) and not x.isUnknown() and getWidth = x.getWidth() +} diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected deleted file mode 100644 index 350ab9ee53a..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.expected +++ /dev/null @@ -1,4 +0,0 @@ -| Builtin.Int8 | 8 | -| Builtin.Int16 | 16 | -| Builtin.Int32 | 32 | -| Builtin.Int64 | 64 | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql deleted file mode 100644 index 15fcefae59f..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType_getWidth.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from BuiltinIntegerType x -where toBeTested(x) and not x.isUnknown() -select x, x.getWidth() diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql index 6488c2a3065..984542fc002 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql @@ -2,10 +2,15 @@ import codeql.swift.elements import TestUtils -from BuiltinType x, string getName, Type getCanonicalType -where +query predicate instances( + BuiltinType x, string primaryQlClasses, string getName__label, string getName, + string getCanonicalType__label, Type getCanonicalType +) { toBeTested(x) and not x.isUnknown() and + primaryQlClasses = x.getPrimaryQlClasses() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() -select x, x.getPrimaryQlClasses(), "getName:", getName, "getCanonicalType:", getCanonicalType +} diff --git a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql index 24849d7c8df..1883c35ca75 100644 --- a/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql +++ b/swift/ql/test/extractor-tests/generated/type/DynamicSelfType/DynamicSelfType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from DynamicSelfType x, string getName, Type getCanonicalType, Type getStaticSelfType -where +query predicate instances( + DynamicSelfType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getStaticSelfType__label, Type getStaticSelfType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getStaticSelfType__label = "getStaticSelfType:" and getStaticSelfType = x.getStaticSelfType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getStaticSelfType:", - getStaticSelfType +} diff --git a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql index 84eb1eeef21..96200b1f27c 100644 --- a/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ExistentialType/ExistentialType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from ExistentialType x, string getName, Type getCanonicalType, Type getConstraint -where +query predicate instances( + ExistentialType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getConstraint__label, Type getConstraint +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getConstraint__label = "getConstraint:" and getConstraint = x.getConstraint() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getConstraint:", - getConstraint +} diff --git a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql index 9cb466a5dbf..59ae14054a4 100644 --- a/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql +++ b/swift/ql/test/extractor-tests/generated/type/InOutType/InOutType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from InOutType x, string getName, Type getCanonicalType, Type getObjectType -where +query predicate instances( + InOutType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getObjectType__label, Type getObjectType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getObjectType__label = "getObjectType:" and getObjectType = x.getObjectType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getObjectType:", - getObjectType +} diff --git a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql index dea3771c7c5..31f187e8ad2 100644 --- a/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql +++ b/swift/ql/test/extractor-tests/generated/type/IntegerType/IntegerType.ql @@ -2,11 +2,16 @@ import codeql.swift.elements import TestUtils -from IntegerType x, string getName, Type getCanonicalType, string getValue -where +query predicate instances( + IntegerType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getValue__label, string getValue +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getValue__label = "getValue:" and getValue = x.getValue() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getValue:", getValue +} diff --git a/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql index b02c0ae4ee7..b9988d0f44b 100644 --- a/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ModuleType/ModuleType.ql @@ -2,11 +2,16 @@ import codeql.swift.elements import TestUtils -from ModuleType x, string getName, Type getCanonicalType, ModuleDecl getModule -where +query predicate instances( + ModuleType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getModule__label, ModuleDecl getModule +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getModule__label = "getModule:" and getModule = x.getModule() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getModule:", getModule +} diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected index 2b14e261f28..c700d4be751 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected @@ -1,4 +1,11 @@ +instances | some Base | getName: | some Base | getCanonicalType: | some Base | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | yes | getNumberOfProtocols: | 0 | getDeclaration: | file://:0:0:0:0 | _ | | some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | | some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | | some SignedInteger | getName: | some SignedInteger | getCanonicalType: | some SignedInteger | getInterfaceType: | \u03c4_0_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | +getSuperclass +| some Base | Base | +getProtocol +| some P | 0 | opaque_types.swift:3:1:3:13 | P | +| some P | 0 | opaque_types.swift:3:1:3:13 | P | +| some SignedInteger | 0 | file://:0:0:0:0 | SignedInteger | diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql index fab7fccc357..9e5aae9eeba 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql @@ -2,18 +2,32 @@ import codeql.swift.elements import TestUtils -from - OpaqueTypeArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, - string hasSuperclass, int getNumberOfProtocols, OpaqueTypeDecl getDeclaration -where +query predicate instances( + OpaqueTypeArchetypeType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, + string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, + int getNumberOfProtocols, string getDeclaration__label, OpaqueTypeDecl getDeclaration +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + hasSuperclass__label = "hasSuperclass:" and (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() and + getDeclaration__label = "getDeclaration:" and getDeclaration = x.getDeclaration() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", - getInterfaceType, "hasSuperclass:", hasSuperclass, "getNumberOfProtocols:", getNumberOfProtocols, - "getDeclaration:", getDeclaration +} + +query predicate getSuperclass(OpaqueTypeArchetypeType x, Type getSuperclass) { + toBeTested(x) and not x.isUnknown() and getSuperclass = x.getSuperclass() +} + +query predicate getProtocol(OpaqueTypeArchetypeType x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.expected deleted file mode 100644 index 1ca3b350aeb..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.expected +++ /dev/null @@ -1,3 +0,0 @@ -| some P | 0 | opaque_types.swift:3:1:3:13 | P | -| some P | 0 | opaque_types.swift:3:1:3:13 | P | -| some SignedInteger | 0 | file://:0:0:0:0 | SignedInteger | diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql deleted file mode 100644 index ac3498c699a..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeArchetypeType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.expected deleted file mode 100644 index d8f0ecac66b..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.expected +++ /dev/null @@ -1 +0,0 @@ -| some Base | Base | diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql deleted file mode 100644 index e32a97a7cee..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType_getSuperclass.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpaqueTypeArchetypeType x -where toBeTested(x) and not x.isUnknown() -select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected index 24471c96e6c..88adae3da25 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected @@ -1 +1,7 @@ +instances | any C & P1 & P2 | getName: | any C & P1 & P2 | getCanonicalType: | any C & P1 & P2 | getInterfaceType: | \u03c4_0_0 | hasSuperclass: | yes | getNumberOfProtocols: | 2 | +getSuperclass +| any C & P1 & P2 | C | +getProtocol +| any C & P1 & P2 | 0 | opened_archetypes.swift:3:1:3:14 | P1 | +| any C & P1 & P2 | 1 | opened_archetypes.swift:9:1:9:14 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql index 418367b34da..c17fe10d5a4 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - OpenedArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, - string hasSuperclass, int getNumberOfProtocols -where +query predicate instances( + OpenedArchetypeType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, + string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, + int getNumberOfProtocols +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + hasSuperclass__label = "hasSuperclass:" and (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", - getInterfaceType, "hasSuperclass:", hasSuperclass, "getNumberOfProtocols:", getNumberOfProtocols +} + +query predicate getSuperclass(OpenedArchetypeType x, Type getSuperclass) { + toBeTested(x) and not x.isUnknown() and getSuperclass = x.getSuperclass() +} + +query predicate getProtocol(OpenedArchetypeType x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected deleted file mode 100644 index 691608328bb..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.expected +++ /dev/null @@ -1,2 +0,0 @@ -| any C & P1 & P2 | 0 | opened_archetypes.swift:3:1:3:14 | P1 | -| any C & P1 & P2 | 1 | opened_archetypes.swift:9:1:9:14 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql deleted file mode 100644 index e3408e77e8f..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpenedArchetypeType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected deleted file mode 100644 index dffe6bf270a..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.expected +++ /dev/null @@ -1 +0,0 @@ -| any C & P1 & P2 | C | diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql deleted file mode 100644 index 6dcddb59c26..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType_getSuperclass.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from OpenedArchetypeType x -where toBeTested(x) and not x.isUnknown() -select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected index 5bfa71a3481..4b4b7087b89 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected @@ -1 +1,6 @@ +instances | \u03c4_1_0 | getName: | \u03c4_1_0 | getCanonicalType: | \u03c4_1_0 | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 2 | +getSuperclass +getProtocol +| \u03c4_1_0 | 0 | file://:0:0:0:0 | Copyable | +| \u03c4_1_0 | 1 | file://:0:0:0:0 | Escapable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql index 3b1e13580ed..25aff50f211 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - ElementArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, - string hasSuperclass, int getNumberOfProtocols -where +query predicate instances( + ElementArchetypeType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, + string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, + int getNumberOfProtocols +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + hasSuperclass__label = "hasSuperclass:" and (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", - getInterfaceType, "hasSuperclass:", hasSuperclass, "getNumberOfProtocols:", getNumberOfProtocols +} + +query predicate getSuperclass(ElementArchetypeType x, Type getSuperclass) { + toBeTested(x) and not x.isUnknown() and getSuperclass = x.getSuperclass() +} + +query predicate getProtocol(ElementArchetypeType x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.expected deleted file mode 100644 index f6d6dae2dc5..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.expected +++ /dev/null @@ -1,2 +0,0 @@ -| \u03c4_1_0 | 0 | file://:0:0:0:0 | Copyable | -| \u03c4_1_0 | 1 | file://:0:0:0:0 | Escapable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql deleted file mode 100644 index 57385c7695f..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ElementArchetypeType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql deleted file mode 100644 index 01204fdd059..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType_getSuperclass.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ElementArchetypeType x -where toBeTested(x) and not x.isUnknown() -select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected index c53f468dc52..3bfdff36c41 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected @@ -1,2 +1,9 @@ +instances | each Arg | getName: | each Arg | getCanonicalType: | each Arg | getInterfaceType: | each Arg | hasSuperclass: | no | getNumberOfProtocols: | 2 | | each T | getName: | each T | getCanonicalType: | each T | getInterfaceType: | each T | hasSuperclass: | no | getNumberOfProtocols: | 2 | +getSuperclass +getProtocol +| each Arg | 0 | file://:0:0:0:0 | Copyable | +| each Arg | 1 | file://:0:0:0:0 | Escapable | +| each T | 0 | file://:0:0:0:0 | Copyable | +| each T | 1 | file://:0:0:0:0 | Escapable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql index 4f98b8a7e4e..279d7f1bba0 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - PackArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, - string hasSuperclass, int getNumberOfProtocols -where +query predicate instances( + PackArchetypeType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, + string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, + int getNumberOfProtocols +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + hasSuperclass__label = "hasSuperclass:" and (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", - getInterfaceType, "hasSuperclass:", hasSuperclass, "getNumberOfProtocols:", getNumberOfProtocols +} + +query predicate getSuperclass(PackArchetypeType x, Type getSuperclass) { + toBeTested(x) and not x.isUnknown() and getSuperclass = x.getSuperclass() +} + +query predicate getProtocol(PackArchetypeType x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.expected deleted file mode 100644 index 7ba05a259c8..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.expected +++ /dev/null @@ -1,4 +0,0 @@ -| each Arg | 0 | file://:0:0:0:0 | Copyable | -| each Arg | 1 | file://:0:0:0:0 | Escapable | -| each T | 0 | file://:0:0:0:0 | Copyable | -| each T | 1 | file://:0:0:0:0 | Escapable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql deleted file mode 100644 index 653fe7b7371..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PackArchetypeType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.expected deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql deleted file mode 100644 index b22b1750eb4..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType_getSuperclass.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PackArchetypeType x -where toBeTested(x) and not x.isUnknown() -select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackElementType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackElementType.ql index af95548518a..2a8864b3a72 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackElementType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackElementType.ql @@ -2,11 +2,16 @@ import codeql.swift.elements import TestUtils -from PackElementType x, string getName, Type getCanonicalType, Type getPackType -where +query predicate instances( + PackElementType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getPackType__label, Type getPackType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getPackType__label = "getPackType:" and getPackType = x.getPackType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getPackType:", getPackType +} diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackExpansionType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackExpansionType.ql index d429b165a6c..88623889054 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackExpansionType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackExpansionType.ql @@ -2,14 +2,19 @@ import codeql.swift.elements import TestUtils -from - PackExpansionType x, string getName, Type getCanonicalType, Type getPatternType, Type getCountType -where +query predicate instances( + PackExpansionType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getPatternType__label, Type getPatternType, + string getCountType__label, Type getCountType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getPatternType__label = "getPatternType:" and getPatternType = x.getPatternType() and + getCountType__label = "getCountType:" and getCountType = x.getCountType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getPatternType:", - getPatternType, "getCountType:", getCountType +} diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected index d9c928366b2..17c5639053f 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected @@ -1 +1,5 @@ +instances | Pack{String, Int} | getName: | Pack{String, Int} | getCanonicalType: | Pack{String, Int} | getNumberOfElements: | 2 | +getElement +| Pack{String, Int} | 0 | String | +| Pack{String, Int} | 1 | Int | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql index 1843314a052..26a787908f6 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql @@ -2,12 +2,20 @@ import codeql.swift.elements import TestUtils -from PackType x, string getName, Type getCanonicalType, int getNumberOfElements -where +query predicate instances( + PackType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getNumberOfElements__label, int getNumberOfElements +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getNumberOfElements__label = "getNumberOfElements:" and getNumberOfElements = x.getNumberOfElements() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getNumberOfElements:", - getNumberOfElements +} + +query predicate getElement(PackType x, int index, Type getElement) { + toBeTested(x) and not x.isUnknown() and getElement = x.getElement(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.expected deleted file mode 100644 index bf46cc6a812..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.expected +++ /dev/null @@ -1,2 +0,0 @@ -| Pack{String, Int} | 0 | String | -| Pack{String, Int} | 1 | Int | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.ql deleted file mode 100644 index efd27f79901..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType_getElement.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PackType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getElement(index) diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected index 309665f809f..efc7ef07fa2 100644 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected @@ -1,3 +1,4 @@ +instances | P | getName: | P | getCanonicalType: | P | getBase: | P | getNumberOfArgs: | 2 | | RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | | RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | @@ -15,3 +16,22 @@ | RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | | RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | | RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | +getArg +| P | 0 | Int | +| P | 1 | String | +| RawRepresentable | 0 | Bool | +| RawRepresentable | 0 | Double | +| RawRepresentable | 0 | Float | +| RawRepresentable | 0 | Int8 | +| RawRepresentable | 0 | Int16 | +| RawRepresentable | 0 | Int32 | +| RawRepresentable | 0 | Int64 | +| RawRepresentable | 0 | Int128 | +| RawRepresentable | 0 | Int | +| RawRepresentable | 0 | String | +| RawRepresentable | 0 | UInt8 | +| RawRepresentable | 0 | UInt16 | +| RawRepresentable | 0 | UInt32 | +| RawRepresentable | 0 | UInt64 | +| RawRepresentable | 0 | UInt128 | +| RawRepresentable | 0 | UInt | diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql index f01ab88af8e..7bbf5794693 100644 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql @@ -2,15 +2,23 @@ import codeql.swift.elements import TestUtils -from - ParameterizedProtocolType x, string getName, Type getCanonicalType, ProtocolType getBase, - int getNumberOfArgs -where +query predicate instances( + ParameterizedProtocolType x, string getName__label, string getName, + string getCanonicalType__label, Type getCanonicalType, string getBase__label, + ProtocolType getBase, string getNumberOfArgs__label, int getNumberOfArgs +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getBase__label = "getBase:" and getBase = x.getBase() and + getNumberOfArgs__label = "getNumberOfArgs:" and getNumberOfArgs = x.getNumberOfArgs() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getBase:", getBase, - "getNumberOfArgs:", getNumberOfArgs +} + +query predicate getArg(ParameterizedProtocolType x, int index, Type getArg) { + toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.expected b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.expected deleted file mode 100644 index 2762281ade2..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.expected +++ /dev/null @@ -1,18 +0,0 @@ -| P | 0 | Int | -| P | 1 | String | -| RawRepresentable | 0 | Bool | -| RawRepresentable | 0 | Double | -| RawRepresentable | 0 | Float | -| RawRepresentable | 0 | Int8 | -| RawRepresentable | 0 | Int16 | -| RawRepresentable | 0 | Int32 | -| RawRepresentable | 0 | Int64 | -| RawRepresentable | 0 | Int128 | -| RawRepresentable | 0 | Int | -| RawRepresentable | 0 | String | -| RawRepresentable | 0 | UInt8 | -| RawRepresentable | 0 | UInt16 | -| RawRepresentable | 0 | UInt32 | -| RawRepresentable | 0 | UInt64 | -| RawRepresentable | 0 | UInt128 | -| RawRepresentable | 0 | UInt | diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql deleted file mode 100644 index 7ec2d6a6ca6..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType_getArg.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ParameterizedProtocolType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getArg(index) diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected index 2ea99b1e227..1382d4439e2 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected @@ -1,3 +1,4 @@ +instances | Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | no | getNumberOfProtocols: | 1 | | Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | no | getNumberOfProtocols: | 1 | | Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | yes | getNumberOfProtocols: | 0 | @@ -6,3 +7,17 @@ | ParamWithProtocols | getName: | ParamWithProtocols | getCanonicalType: | ParamWithProtocols | getInterfaceType: | ParamWithProtocols | hasSuperclass: | no | getNumberOfProtocols: | 2 | | ParamWithSuperclass | getName: | ParamWithSuperclass | getCanonicalType: | ParamWithSuperclass | getInterfaceType: | ParamWithSuperclass | hasSuperclass: | yes | getNumberOfProtocols: | 0 | | ParamWithSuperclassAndProtocols | getName: | ParamWithSuperclassAndProtocols | getCanonicalType: | ParamWithSuperclassAndProtocols | getInterfaceType: | ParamWithSuperclassAndProtocols | hasSuperclass: | yes | getNumberOfProtocols: | 2 | +getSuperclass +| Base | S | +| Base | S2 | +| ParamWithSuperclass | S | +| ParamWithSuperclassAndProtocols | S | +getProtocol +| Base | 0 | primary_archetypes.swift:4:1:4:13 | P | +| Base | 0 | primary_archetypes.swift:5:1:5:14 | P2 | +| Param | 0 | file://:0:0:0:0 | Copyable | +| Param | 1 | file://:0:0:0:0 | Escapable | +| ParamWithProtocols | 0 | file://:0:0:0:0 | Equatable | +| ParamWithProtocols | 1 | primary_archetypes.swift:4:1:4:13 | P | +| ParamWithSuperclassAndProtocols | 0 | file://:0:0:0:0 | Equatable | +| ParamWithSuperclassAndProtocols | 1 | primary_archetypes.swift:4:1:4:13 | P | diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql index 009b17a3eb5..f91f41253e9 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql @@ -2,16 +2,30 @@ import codeql.swift.elements import TestUtils -from - PrimaryArchetypeType x, string getName, Type getCanonicalType, Type getInterfaceType, - string hasSuperclass, int getNumberOfProtocols -where +query predicate instances( + PrimaryArchetypeType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, + string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, + int getNumberOfProtocols +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and + hasSuperclass__label = "hasSuperclass:" and (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and + getNumberOfProtocols__label = "getNumberOfProtocols:" and getNumberOfProtocols = x.getNumberOfProtocols() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getInterfaceType:", - getInterfaceType, "hasSuperclass:", hasSuperclass, "getNumberOfProtocols:", getNumberOfProtocols +} + +query predicate getSuperclass(PrimaryArchetypeType x, Type getSuperclass) { + toBeTested(x) and not x.isUnknown() and getSuperclass = x.getSuperclass() +} + +query predicate getProtocol(PrimaryArchetypeType x, int index, ProtocolDecl getProtocol) { + toBeTested(x) and not x.isUnknown() and getProtocol = x.getProtocol(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.expected b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.expected deleted file mode 100644 index 3c0810fd7c2..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.expected +++ /dev/null @@ -1,8 +0,0 @@ -| Base | 0 | primary_archetypes.swift:4:1:4:13 | P | -| Base | 0 | primary_archetypes.swift:5:1:5:14 | P2 | -| Param | 0 | file://:0:0:0:0 | Copyable | -| Param | 1 | file://:0:0:0:0 | Escapable | -| ParamWithProtocols | 0 | file://:0:0:0:0 | Equatable | -| ParamWithProtocols | 1 | primary_archetypes.swift:4:1:4:13 | P | -| ParamWithSuperclassAndProtocols | 0 | file://:0:0:0:0 | Equatable | -| ParamWithSuperclassAndProtocols | 1 | primary_archetypes.swift:4:1:4:13 | P | diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql deleted file mode 100644 index 1f3a116e24f..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getProtocol.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PrimaryArchetypeType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getProtocol(index) diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.expected b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.expected deleted file mode 100644 index 35f9793baaa..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.expected +++ /dev/null @@ -1,4 +0,0 @@ -| Base | S | -| Base | S2 | -| ParamWithSuperclass | S | -| ParamWithSuperclassAndProtocols | S | diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql deleted file mode 100644 index 821aea03829..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType_getSuperclass.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from PrimaryArchetypeType x -where toBeTested(x) and not x.isUnknown() -select x, x.getSuperclass() diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected index f8278a6bae9..41ed05fc067 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected @@ -1,3 +1,12 @@ +instances | P1 & P2 & P3 | getName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | getNumberOfMembers: | 3 | | P1 & P23 | getName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | getNumberOfMembers: | 2 | | P2 & P4 | getName: | P2 & P4 | getCanonicalType: | P2 & P4 | getNumberOfMembers: | 2 | +getMember +| P1 & P2 & P3 | 0 | P1 | +| P1 & P2 & P3 | 1 | P2 | +| P1 & P2 & P3 | 2 | P3 | +| P1 & P23 | 0 | P1 | +| P1 & P23 | 1 | P23 | +| P2 & P4 | 0 | P2 | +| P2 & P4 | 1 | P4 | diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql index c681ba74789..8513b85251e 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql @@ -2,12 +2,20 @@ import codeql.swift.elements import TestUtils -from ProtocolCompositionType x, string getName, Type getCanonicalType, int getNumberOfMembers -where +query predicate instances( + ProtocolCompositionType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getNumberOfMembers__label, int getNumberOfMembers +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getNumberOfMembers__label = "getNumberOfMembers:" and getNumberOfMembers = x.getNumberOfMembers() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getNumberOfMembers:", - getNumberOfMembers +} + +query predicate getMember(ProtocolCompositionType x, int index, Type getMember) { + toBeTested(x) and not x.isUnknown() and getMember = x.getMember(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected deleted file mode 100644 index 40aa86c2da1..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.expected +++ /dev/null @@ -1,7 +0,0 @@ -| P1 & P2 & P3 | 0 | P1 | -| P1 & P2 & P3 | 1 | P2 | -| P1 & P2 & P3 | 2 | P3 | -| P1 & P23 | 0 | P1 | -| P1 & P23 | 1 | P23 | -| P2 & P4 | 0 | P2 | -| P2 & P4 | 1 | P4 | diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql deleted file mode 100644 index 5eb99395660..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType_getMember.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from ProtocolCompositionType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getMember(index) diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected index 9649b1f618e..13d906d36c2 100644 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected +++ b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected @@ -1,6 +1,29 @@ +instances | (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | getNumberOfTypes: | 2 | | (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | getNumberOfTypes: | 2 | | (Int, Int, Int, Int, Int) | getName: | (Int, Int, Int, Int, Int) | getCanonicalType: | (Int, Int, Int, Int, Int) | getNumberOfTypes: | 5 | | (Int, String, Double) | getName: | (Int, String, Double) | getCanonicalType: | (Int, String, Double) | getNumberOfTypes: | 3 | | (Int, s: String, Double) | getName: | (Int, s: String, Double) | getCanonicalType: | (Int, s: String, Double) | getNumberOfTypes: | 3 | | (x: Int, y: Int) | getName: | (x: Int, y: Int) | getCanonicalType: | (x: Int, y: Int) | getNumberOfTypes: | 2 | +getType +| (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | +| (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | +| (Builtin.IntLiteral, Builtin.IntLiteral) | 1 | Builtin.IntLiteral | +| (Builtin.IntLiteral, Builtin.IntLiteral) | 1 | Builtin.IntLiteral | +| (Int, Int, Int, Int, Int) | 0 | Int | +| (Int, Int, Int, Int, Int) | 1 | Int | +| (Int, Int, Int, Int, Int) | 2 | Int | +| (Int, Int, Int, Int, Int) | 3 | Int | +| (Int, Int, Int, Int, Int) | 4 | Int | +| (Int, String, Double) | 0 | Int | +| (Int, String, Double) | 1 | String | +| (Int, String, Double) | 2 | Double | +| (Int, s: String, Double) | 0 | Int | +| (Int, s: String, Double) | 1 | String | +| (Int, s: String, Double) | 2 | Double | +| (x: Int, y: Int) | 0 | Int | +| (x: Int, y: Int) | 1 | Int | +getName +| (Int, s: String, Double) | 1 | s | +| (x: Int, y: Int) | 0 | x | +| (x: Int, y: Int) | 1 | y | diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql index a14cf6786cc..f03c545171e 100644 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql +++ b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql @@ -2,12 +2,24 @@ import codeql.swift.elements import TestUtils -from TupleType x, string getName, Type getCanonicalType, int getNumberOfTypes -where +query predicate instances( + TupleType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getNumberOfTypes__label, int getNumberOfTypes +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getNumberOfTypes__label = "getNumberOfTypes:" and getNumberOfTypes = x.getNumberOfTypes() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getNumberOfTypes:", - getNumberOfTypes +} + +query predicate getType(TupleType x, int index, Type getType) { + toBeTested(x) and not x.isUnknown() and getType = x.getType(index) +} + +query predicate getName(TupleType x, int index, string getName) { + toBeTested(x) and not x.isUnknown() and getName = x.getName(index) +} diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.expected b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.expected deleted file mode 100644 index 327e8795d7f..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.expected +++ /dev/null @@ -1,3 +0,0 @@ -| (Int, s: String, Double) | 1 | s | -| (x: Int, y: Int) | 0 | x | -| (x: Int, y: Int) | 1 | y | diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.ql b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.ql deleted file mode 100644 index f71ab6709d6..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getName.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from TupleType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getName(index) diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.expected b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.expected deleted file mode 100644 index 926411dedfa..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.expected +++ /dev/null @@ -1,17 +0,0 @@ -| (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | -| (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | -| (Builtin.IntLiteral, Builtin.IntLiteral) | 1 | Builtin.IntLiteral | -| (Builtin.IntLiteral, Builtin.IntLiteral) | 1 | Builtin.IntLiteral | -| (Int, Int, Int, Int, Int) | 0 | Int | -| (Int, Int, Int, Int, Int) | 1 | Int | -| (Int, Int, Int, Int, Int) | 2 | Int | -| (Int, Int, Int, Int, Int) | 3 | Int | -| (Int, Int, Int, Int, Int) | 4 | Int | -| (Int, String, Double) | 0 | Int | -| (Int, String, Double) | 1 | String | -| (Int, String, Double) | 2 | Double | -| (Int, s: String, Double) | 0 | Int | -| (Int, s: String, Double) | 1 | String | -| (Int, s: String, Double) | 2 | Double | -| (x: Int, y: Int) | 0 | Int | -| (x: Int, y: Int) | 1 | Int | diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.ql b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.ql deleted file mode 100644 index 431aefc42f1..00000000000 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType_getType.ql +++ /dev/null @@ -1,7 +0,0 @@ -// generated by codegen/codegen.py, do not edit -import codeql.swift.elements -import TestUtils - -from TupleType x, int index -where toBeTested(x) and not x.isUnknown() -select x, index, x.getType(index) diff --git a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql index a69efd50492..b10012dfad6 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnmanagedStorageType/UnmanagedStorageType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from UnmanagedStorageType x, string getName, Type getCanonicalType, Type getReferentType -where +query predicate instances( + UnmanagedStorageType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getReferentType__label, Type getReferentType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getReferentType__label = "getReferentType:" and getReferentType = x.getReferentType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", - getReferentType +} diff --git a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql index b08407203f7..e0370d0b948 100644 --- a/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/UnownedStorageType/UnownedStorageType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from UnownedStorageType x, string getName, Type getCanonicalType, Type getReferentType -where +query predicate instances( + UnownedStorageType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getReferentType__label, Type getReferentType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getReferentType__label = "getReferentType:" and getReferentType = x.getReferentType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", - getReferentType +} diff --git a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql index d87743fc4f4..d9002625031 100644 --- a/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql +++ b/swift/ql/test/extractor-tests/generated/type/VariadicSequenceType/VariadicSequenceType.ql @@ -2,11 +2,16 @@ import codeql.swift.elements import TestUtils -from VariadicSequenceType x, string getName, Type getCanonicalType, Type getBaseType -where +query predicate instances( + VariadicSequenceType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getBaseType__label, Type getBaseType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getBaseType__label = "getBaseType:" and getBaseType = x.getBaseType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getBaseType:", getBaseType +} diff --git a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql index 8cbe22fd154..fe1c2537fbc 100644 --- a/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql +++ b/swift/ql/test/extractor-tests/generated/type/WeakStorageType/WeakStorageType.ql @@ -2,12 +2,16 @@ import codeql.swift.elements import TestUtils -from WeakStorageType x, string getName, Type getCanonicalType, Type getReferentType -where +query predicate instances( + WeakStorageType x, string getName__label, string getName, string getCanonicalType__label, + Type getCanonicalType, string getReferentType__label, Type getReferentType +) { toBeTested(x) and not x.isUnknown() and + getName__label = "getName:" and getName = x.getName() and + getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and + getReferentType__label = "getReferentType:" and getReferentType = x.getReferentType() -select x, "getName:", getName, "getCanonicalType:", getCanonicalType, "getReferentType:", - getReferentType +} From 355fd85c2306115b573016b557947863d9149f94 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Jun 2025 12:02:13 +0200 Subject: [PATCH 303/340] Codegen: remove unneeded `has|getNumberOf` in instance tests --- misc/codegen/generators/qlgen.py | 4 - misc/codegen/test/test_qlgen.py | 4 - rust/ql/.generated.list | 298 +++++++++--------- .../generated/Abi/Abi.expected | 2 +- .../test/extractor-tests/generated/Abi/Abi.ql | 7 +- .../generated/ArgList/ArgList.expected | 2 +- .../generated/ArgList/ArgList.ql | 7 +- .../ArrayListExpr/ArrayListExpr.expected | 2 +- .../generated/ArrayListExpr/ArrayListExpr.ql | 12 +- .../ArrayRepeatExpr/ArrayRepeatExpr.expected | 2 +- .../ArrayRepeatExpr/ArrayRepeatExpr.ql | 9 +- .../ArrayTypeRepr/ArrayTypeRepr.expected | 2 +- .../generated/ArrayTypeRepr/ArrayTypeRepr.ql | 12 +- .../generated/AsmConst/AsmConst.expected | 2 +- .../generated/AsmConst/AsmConst.ql | 6 +- .../generated/AsmExpr/AsmExpr.expected | 2 +- .../generated/AsmExpr/AsmExpr.ql | 15 +- .../generated/AsmLabel/AsmLabel.expected | 2 +- .../generated/AsmLabel/AsmLabel.ql | 7 +- .../AsmOperandExpr/AsmOperandExpr.expected | 4 +- .../AsmOperandExpr/AsmOperandExpr.ql | 12 +- .../AsmOperandNamed/AsmOperandNamed.expected | 4 +- .../AsmOperandNamed/AsmOperandNamed.ql | 12 +- .../AsmOptionsList/AsmOptionsList.expected | 2 +- .../AsmOptionsList/AsmOptionsList.ql | 9 +- .../AsmRegOperand/AsmRegOperand.expected | 4 +- .../generated/AsmRegOperand/AsmRegOperand.ql | 15 +- .../generated/AsmRegSpec/AsmRegSpec.expected | 4 +- .../generated/AsmRegSpec/AsmRegSpec.ql | 7 +- .../generated/AsmSym/AsmSym.expected | 2 +- .../generated/AsmSym/AsmSym.ql | 7 +- .../AssocTypeArg/AssocTypeArg.expected | 2 +- .../generated/AssocTypeArg/AssocTypeArg.ql | 27 +- .../generated/Attr/Attr.expected | 2 +- .../extractor-tests/generated/Attr/Attr.ql | 7 +- .../generated/AwaitExpr/AwaitExpr.expected | 2 +- .../generated/AwaitExpr/AwaitExpr.ql | 12 +- .../generated/BecomeExpr/BecomeExpr.expected | 2 +- .../generated/BecomeExpr/BecomeExpr.ql | 12 +- .../generated/BinaryExpr/BinaryExpr.expected | 10 +- .../generated/BinaryExpr/BinaryExpr.ql | 17 +- .../generated/BlockExpr/BlockExpr.expected | 6 +- .../generated/BlockExpr/BlockExpr.ql | 16 +- .../generated/BoxPat/BoxPat.expected | 4 +- .../generated/BoxPat/BoxPat.ql | 7 +- .../generated/BreakExpr/BreakExpr.expected | 6 +- .../generated/BreakExpr/BreakExpr.ql | 14 +- .../generated/CallExpr/CallExpr.expected | 8 +- .../generated/CallExpr/CallExpr.ql | 17 +- .../generated/CastExpr/CastExpr.expected | 2 +- .../generated/CastExpr/CastExpr.ql | 14 +- .../ClosureBinder/ClosureBinder.expected | 2 +- .../generated/ClosureBinder/ClosureBinder.ql | 9 +- .../ClosureExpr/ClosureExpr.expected | 10 +- .../generated/ClosureExpr/ClosureExpr.ql | 23 +- .../generated/Const/Const.expected | 2 +- .../extractor-tests/generated/Const/Const.ql | 39 +-- .../generated/ConstArg/ConstArg.expected | 2 +- .../generated/ConstArg/ConstArg.ql | 7 +- .../ConstBlockPat/ConstBlockPat.expected | 2 +- .../generated/ConstBlockPat/ConstBlockPat.ql | 7 +- .../generated/ConstParam/ConstParam.expected | 2 +- .../generated/ConstParam/ConstParam.ql | 16 +- .../ContinueExpr/ContinueExpr.expected | 4 +- .../generated/ContinueExpr/ContinueExpr.ql | 12 +- .../DynTraitTypeRepr.expected | 2 +- .../DynTraitTypeRepr/DynTraitTypeRepr.ql | 9 +- .../generated/Enum/Enum.expected | 2 +- .../extractor-tests/generated/Enum/Enum.ql | 41 +-- .../generated/ExprStmt/ExprStmt.expected | 4 +- .../generated/ExprStmt/ExprStmt.ql | 7 +- .../ExternBlock/ExternBlock.expected | 2 +- .../generated/ExternBlock/ExternBlock.ql | 28 +- .../ExternCrate/ExternCrate.expected | 2 +- .../generated/ExternCrate/ExternCrate.ql | 33 +- .../ExternItemList/ExternItemList.expected | 2 +- .../ExternItemList/ExternItemList.ql | 12 +- .../generated/FieldExpr/FieldExpr.expected | 2 +- .../generated/FieldExpr/FieldExpr.ql | 14 +- .../FnPtrTypeRepr/FnPtrTypeRepr.expected | 2 +- .../generated/FnPtrTypeRepr/FnPtrTypeRepr.ql | 13 +- .../generated/ForExpr/ForExpr.expected | 2 +- .../generated/ForExpr/ForExpr.ql | 19 +- .../ForTypeRepr/ForTypeRepr.expected | 2 +- .../generated/ForTypeRepr/ForTypeRepr.ql | 12 +- .../generated/FormatArgsExpr/Format.expected | 34 +- .../generated/FormatArgsExpr/Format.ql | 12 +- .../FormatArgsExpr/FormatArgsArg.expected | 32 +- .../generated/FormatArgsExpr/FormatArgsArg.ql | 11 +- .../FormatArgsExpr/FormatArgsExpr.expected | 30 +- .../FormatArgsExpr/FormatArgsExpr.ql | 17 +- .../FormatArgsExpr/FormatArgument.expected | 38 +-- .../FormatArgsExpr/FormatArgument.ql | 9 +- .../generated/Function/Function.expected | 4 +- .../generated/Function/Function.ql | 47 +-- .../GenericArgList/GenericArgList.expected | 2 +- .../GenericArgList/GenericArgList.ql | 9 +- .../GenericParamList.expected | 4 +- .../GenericParamList/GenericParamList.ql | 9 +- .../generated/IdentPat/IdentPat.expected | 4 +- .../generated/IdentPat/IdentPat.ql | 12 +- .../generated/IfExpr/IfExpr.expected | 4 +- .../generated/IfExpr/IfExpr.ql | 16 +- .../generated/Impl/Impl.expected | 2 +- .../extractor-tests/generated/Impl/Impl.ql | 40 +-- .../ImplTraitTypeRepr.expected | 2 +- .../ImplTraitTypeRepr/ImplTraitTypeRepr.ql | 9 +- .../generated/IndexExpr/IndexExpr.expected | 4 +- .../generated/IndexExpr/IndexExpr.ql | 14 +- .../generated/ItemList/ItemList.expected | 2 +- .../generated/ItemList/ItemList.ql | 12 +- .../generated/Label/Label.expected | 2 +- .../extractor-tests/generated/Label/Label.ql | 7 +- .../generated/LetElse/LetElse.expected | 2 +- .../generated/LetElse/LetElse.ql | 7 +- .../generated/LetExpr/LetExpr.expected | 2 +- .../generated/LetExpr/LetExpr.ql | 14 +- .../generated/LetStmt/LetStmt.expected | 12 +- .../generated/LetStmt/LetStmt.ql | 19 +- .../generated/Lifetime/Lifetime.expected | 4 +- .../generated/Lifetime/Lifetime.ql | 7 +- .../LifetimeArg/LifetimeArg.expected | 2 +- .../generated/LifetimeArg/LifetimeArg.ql | 7 +- .../LifetimeParam/LifetimeParam.expected | 2 +- .../generated/LifetimeParam/LifetimeParam.ql | 14 +- .../LiteralExpr/LiteralExpr.expected | 16 +- .../generated/LiteralExpr/LiteralExpr.ql | 12 +- .../generated/LiteralPat/LiteralPat.expected | 2 +- .../generated/LiteralPat/LiteralPat.ql | 7 +- .../generated/LoopExpr/LoopExpr.expected | 6 +- .../generated/LoopExpr/LoopExpr.ql | 14 +- .../MacroBlockExpr/MacroBlockExpr.expected | 2 +- .../MacroBlockExpr/MacroBlockExpr.ql | 12 +- .../generated/MacroCall/MacroCall.expected | 4 +- .../generated/MacroCall/MacroCall.ql | 33 +- .../generated/MacroDef/MacroDef.expected | 2 +- .../generated/MacroDef/MacroDef.ql | 35 +- .../generated/MacroExpr/MacroExpr.expected | 2 +- .../generated/MacroExpr/MacroExpr.ql | 7 +- .../generated/MacroItems/MacroItems.expected | 4 +- .../generated/MacroItems/MacroItems.ql | 7 +- .../generated/MacroPat/MacroPat.expected | 2 +- .../generated/MacroPat/MacroPat.ql | 7 +- .../generated/MacroRules/MacroRules.expected | 2 +- .../generated/MacroRules/MacroRules.ql | 33 +- .../MacroTypeRepr/MacroTypeRepr.expected | 2 +- .../generated/MacroTypeRepr/MacroTypeRepr.ql | 7 +- .../generated/MatchArm/MatchArm.expected | 8 +- .../generated/MatchArm/MatchArm.ql | 16 +- .../MatchArmList/MatchArmList.expected | 2 +- .../generated/MatchArmList/MatchArmList.ql | 12 +- .../generated/MatchExpr/MatchExpr.expected | 4 +- .../generated/MatchExpr/MatchExpr.ql | 14 +- .../generated/MatchGuard/MatchGuard.expected | 2 +- .../generated/MatchGuard/MatchGuard.ql | 7 +- .../generated/Meta/Meta.expected | 4 +- .../extractor-tests/generated/Meta/Meta.ql | 13 +- .../MethodCallExpr/MethodCallExpr.expected | 4 +- .../MethodCallExpr/MethodCallExpr.ql | 31 +- .../generated/Module/Module.expected | 6 +- .../generated/Module/Module.ql | 33 +- .../generated/Name/Name.expected | 6 +- .../extractor-tests/generated/Name/Name.ql | 7 +- .../generated/NameRef/NameRef.expected | 2 +- .../generated/NameRef/NameRef.ql | 7 +- .../OffsetOfExpr/OffsetOfExpr.expected | 2 +- .../generated/OffsetOfExpr/OffsetOfExpr.ql | 15 +- .../generated/OrPat/OrPat.expected | 2 +- .../extractor-tests/generated/OrPat/OrPat.ql | 7 +- .../generated/Param/Param.expected | 2 +- .../extractor-tests/generated/Param/Param.ql | 14 +- .../generated/ParamList/ParamList.expected | 4 +- .../generated/ParamList/ParamList.ql | 12 +- .../generated/ParenExpr/ParenExpr.expected | 2 +- .../generated/ParenExpr/ParenExpr.ql | 12 +- .../generated/ParenPat/ParenPat.expected | 2 +- .../generated/ParenPat/ParenPat.ql | 7 +- .../ParenTypeRepr/ParenTypeRepr.expected | 2 +- .../generated/ParenTypeRepr/ParenTypeRepr.ql | 7 +- .../ParenthesizedArgList.expected | 2 +- .../ParenthesizedArgList.ql | 9 +- .../generated/Path/Path.expected | 50 +-- .../extractor-tests/generated/Path/Path.ql | 12 +- .../generated/Path/PathExpr.expected | 12 +- .../generated/Path/PathExpr.ql | 21 +- .../generated/Path/PathPat.expected | 2 +- .../extractor-tests/generated/Path/PathPat.ql | 19 +- .../generated/Path/PathSegment.expected | 50 +-- .../generated/Path/PathSegment.ql | 29 +- .../generated/Path/PathTypeRepr.expected | 14 +- .../generated/Path/PathTypeRepr.ql | 7 +- .../generated/PrefixExpr/PrefixExpr.expected | 6 +- .../generated/PrefixExpr/PrefixExpr.ql | 14 +- .../PtrTypeRepr/PtrTypeRepr.expected | 4 +- .../generated/PtrTypeRepr/PtrTypeRepr.ql | 7 +- .../generated/RangeExpr/RangeExpr.expected | 12 +- .../generated/RangeExpr/RangeExpr.ql | 17 +- .../generated/RangePat/RangePat.expected | 6 +- .../generated/RangePat/RangePat.ql | 14 +- .../generated/RefExpr/RefExpr.expected | 8 +- .../generated/RefExpr/RefExpr.ql | 7 +- .../generated/RefPat/RefPat.expected | 4 +- .../generated/RefPat/RefPat.ql | 8 +- .../RefTypeRepr/RefTypeRepr.expected | 4 +- .../generated/RefTypeRepr/RefTypeRepr.ql | 11 +- .../generated/Rename/Rename.expected | 2 +- .../generated/Rename/Rename.ql | 7 +- .../generated/RestPat/RestPat.expected | 2 +- .../generated/RestPat/RestPat.ql | 7 +- .../RetTypeRepr/RetTypeRepr.expected | 4 +- .../generated/RetTypeRepr/RetTypeRepr.ql | 7 +- .../generated/ReturnExpr/ReturnExpr.expected | 4 +- .../generated/ReturnExpr/ReturnExpr.ql | 12 +- .../generated/SelfParam/SelfParam.expected | 10 +- .../generated/SelfParam/SelfParam.ql | 14 +- .../generated/SlicePat/SlicePat.expected | 6 +- .../generated/SlicePat/SlicePat.ql | 7 +- .../SliceTypeRepr/SliceTypeRepr.expected | 2 +- .../generated/SliceTypeRepr/SliceTypeRepr.ql | 7 +- .../generated/SourceFile/SourceFile.expected | 4 +- .../generated/SourceFile/SourceFile.ql | 12 +- .../generated/Static/Static.expected | 2 +- .../generated/Static/Static.ql | 34 +- .../generated/StmtList/StmtList.expected | 4 +- .../generated/StmtList/StmtList.ql | 15 +- .../generated/Struct/Struct.expected | 2 +- .../generated/Struct/Struct.ql | 41 +-- .../generated/StructExpr/StructExpr.expected | 8 +- .../generated/StructExpr/StructExpr.ql | 23 +- .../StructExprField/StructExprField.expected | 4 +- .../StructExprField/StructExprField.ql | 14 +- .../StructExprFieldList.expected | 2 +- .../StructExprFieldList.ql | 14 +- .../StructField/StructField.expected | 2 +- .../generated/StructField/StructField.ql | 18 +- .../StructFieldList/StructFieldList.expected | 2 +- .../StructFieldList/StructFieldList.ql | 7 +- .../generated/StructPat/StructPat.expected | 4 +- .../generated/StructPat/StructPat.ql | 21 +- .../StructPatField/StructPatField.expected | 4 +- .../StructPatField/StructPatField.ql | 14 +- .../StructPatFieldList.expected | 2 +- .../StructPatFieldList/StructPatFieldList.ql | 12 +- .../generated/Trait/AssocItemList.expected | 4 +- .../generated/Trait/AssocItemList.ql | 12 +- .../generated/Trait/Trait.expected | 4 +- .../extractor-tests/generated/Trait/Trait.ql | 39 +-- .../generated/TraitAlias/TraitAlias.expected | 2 +- .../generated/TraitAlias/TraitAlias.ql | 39 +-- .../generated/TryExpr/TryExpr.expected | 2 +- .../generated/TryExpr/TryExpr.ql | 12 +- .../generated/TupleExpr/TupleExpr.expected | 4 +- .../generated/TupleExpr/TupleExpr.ql | 12 +- .../generated/TupleField/TupleField.expected | 4 +- .../generated/TupleField/TupleField.ql | 14 +- .../TupleFieldList/TupleFieldList.expected | 2 +- .../TupleFieldList/TupleFieldList.ql | 7 +- .../generated/TuplePat/TuplePat.expected | 4 +- .../generated/TuplePat/TuplePat.ql | 7 +- .../TupleStructPat/TupleStructPat.expected | 6 +- .../TupleStructPat/TupleStructPat.ql | 21 +- .../TupleTypeRepr/TupleTypeRepr.expected | 4 +- .../generated/TupleTypeRepr/TupleTypeRepr.ql | 7 +- .../generated/TypeAlias/TypeAlias.expected | 4 +- .../generated/TypeAlias/TypeAlias.ql | 41 +-- .../generated/TypeArg/TypeArg.expected | 2 +- .../generated/TypeArg/TypeArg.ql | 7 +- .../generated/TypeBound/TypeBound.expected | 2 +- .../generated/TypeBound/TypeBound.ql | 14 +- .../TypeBoundList/TypeBoundList.expected | 2 +- .../generated/TypeBoundList/TypeBoundList.ql | 7 +- .../generated/TypeParam/TypeParam.expected | 2 +- .../generated/TypeParam/TypeParam.ql | 17 +- .../UnderscoreExpr/UnderscoreExpr.expected | 2 +- .../UnderscoreExpr/UnderscoreExpr.ql | 7 +- .../generated/Union/Union.expected | 2 +- .../extractor-tests/generated/Union/Union.ql | 42 +-- .../generated/Use/Use.expected | 2 +- .../test/extractor-tests/generated/Use/Use.ql | 30 +- .../UseBoundGenericArgs.expected | 2 +- .../UseBoundGenericArgs.ql | 10 +- .../generated/UseTree/UseTree.expected | 14 +- .../generated/UseTree/UseTree.ql | 13 +- .../UseTreeList/UseTreeList.expected | 2 +- .../generated/UseTreeList/UseTreeList.ql | 7 +- .../generated/Variant/Variant.expected | 6 +- .../generated/Variant/Variant.ql | 29 +- .../VariantList/VariantList.expected | 2 +- .../generated/VariantList/VariantList.ql | 7 +- .../generated/Visibility/Visibility.expected | 2 +- .../generated/Visibility/Visibility.ql | 7 +- .../WhereClause/WhereClause.expected | 2 +- .../generated/WhereClause/WhereClause.ql | 9 +- .../generated/WherePred/WherePred.expected | 4 +- .../generated/WherePred/WherePred.ql | 17 +- .../generated/WhileExpr/WhileExpr.expected | 2 +- .../generated/WhileExpr/WhileExpr.ql | 17 +- .../generated/YeetExpr/YeetExpr.expected | 2 +- .../generated/YeetExpr/YeetExpr.ql | 12 +- .../generated/YieldExpr/YieldExpr.expected | 2 +- .../generated/YieldExpr/YieldExpr.ql | 12 +- swift/ql/.generated.list | 110 +++---- .../AvailabilityInfo.expected | 4 +- .../AvailabilityInfo/AvailabilityInfo.ql | 9 +- .../KeyPathComponent.expected | 28 +- .../KeyPathComponent/KeyPathComponent.ql | 12 +- .../generated/decl/Accessor/Accessor.expected | 72 ++--- .../generated/decl/Accessor/Accessor.ql | 27 +- .../AssociatedTypeDecl.expected | 4 +- .../AssociatedTypeDecl/AssociatedTypeDecl.ql | 10 +- .../decl/CapturedDecl/CapturedDecl.expected | 82 ++--- .../decl/CapturedDecl/CapturedDecl.ql | 8 +- .../decl/ClassDecl/ClassDecl.expected | 6 +- .../generated/decl/ClassDecl/ClassDecl.ql | 13 +- .../ConcreteVarDecl/ConcreteVarDecl.expected | 56 ++-- .../decl/ConcreteVarDecl/ConcreteVarDecl.ql | 52 +-- .../decl/EnumDecl/EnumCaseDecl.expected | 24 +- .../generated/decl/EnumDecl/EnumCaseDecl.ql | 11 +- .../generated/decl/EnumDecl/EnumDecl.expected | 10 +- .../generated/decl/EnumDecl/EnumDecl.ql | 13 +- .../decl/EnumDecl/EnumElementDecl.expected | 36 +-- .../decl/EnumDecl/EnumElementDecl.ql | 12 +- .../decl/ExtensionDecl/ExtensionDecl.expected | 8 +- .../decl/ExtensionDecl/ExtensionDecl.ql | 14 +- .../decl/IfConfigDecl/IfConfigDecl.ql | 11 +- .../decl/ImportDecl/ImportDecl.expected | 10 +- .../generated/decl/ImportDecl/ImportDecl.ql | 14 +- .../decl/MacroDecl/MacroDecl.expected | 6 +- .../generated/decl/MacroDecl/MacroDecl.ql | 17 +- .../decl/MacroDecl/MacroRole.expected | 40 +-- .../generated/decl/MacroDecl/MacroRole.ql | 10 +- .../decl/ModuleDecl/ModuleDecl.expected | 6 +- .../generated/decl/ModuleDecl/ModuleDecl.ql | 20 +- .../decl/NamedFunction/NamedFunction.expected | 10 +- .../decl/NamedFunction/NamedFunction.ql | 22 +- .../OpaqueTypeDecl/OpaqueTypeDecl.expected | 8 +- .../decl/OpaqueTypeDecl/OpaqueTypeDecl.ql | 19 +- .../decl/ParamDecl/ParamDecl.expected | 118 +++---- .../generated/decl/ParamDecl/ParamDecl.ql | 67 +--- .../PoundDiagnosticDecl.expected | 4 +- .../PoundDiagnosticDecl.ql | 7 +- .../AppliedPropertyWrapperExpr.ql | 6 +- .../expr/CopyExpr/ConsumeExpr.expected | 2 +- .../generated/expr/CopyExpr/ConsumeExpr.ql | 6 +- .../generated/expr/CopyExpr/CopyExpr.expected | 2 +- .../generated/expr/CopyExpr/CopyExpr.ql | 6 +- .../DotSyntaxCallExpr/DotSyntaxCallExpr.ql | 9 +- .../DynamicLookupExpr.expected | 4 +- .../DynamicLookupExpr/DynamicLookupExpr.ql | 9 +- .../EnumIsCaseExpr/EnumIsCaseExpr.expected | 20 +- .../expr/EnumIsCaseExpr/EnumIsCaseExpr.ql | 6 +- .../ExtractFunctionIsolationExpr.expected | 2 +- .../ExtractFunctionIsolationExpr.ql | 5 +- .../expr/IdentityExpr/IdentityExpr.expected | 18 +- .../expr/IdentityExpr/IdentityExpr.ql | 5 +- .../ImplicitConversionExpr.expected | 14 +- .../ImplicitConversionExpr.ql | 5 +- .../InitializerRefCallExpr.ql | 9 +- .../expr/KeyPathExpr/KeyPathExpr.expected | 16 +- .../generated/expr/KeyPathExpr/KeyPathExpr.ql | 14 +- .../MethodLookupExpr.expected | 58 ++-- .../expr/MethodLookupExpr/MethodLookupExpr.ql | 8 +- .../ObjectLiteralExpr.expected | 6 +- .../ObjectLiteralExpr/ObjectLiteralExpr.ql | 11 +- .../OpenExistentialExpr.expected | 2 +- .../OpenExistentialExpr.ql | 7 +- .../PackExpansionExpr/MaterializePackExpr.ql | 7 +- .../PackElementExpr.expected | 2 +- .../expr/PackExpansionExpr/PackElementExpr.ql | 7 +- .../PackExpansionExpr.expected | 2 +- .../PackExpansionExpr/PackExpansionExpr.ql | 7 +- .../PostfixUnaryExpr.expected | 4 +- .../expr/PostfixUnaryExpr/PostfixUnaryExpr.ql | 11 +- ...opertyWrapperValuePlaceholderExpr.expected | 2 +- .../PropertyWrapperValuePlaceholderExpr.ql | 7 +- .../SingleValueStmtExpr.expected | 4 +- .../SingleValueStmtExpr.ql | 6 +- .../expr/TypeValueExpr/TypeValueExpr.expected | 4 +- .../expr/TypeValueExpr/TypeValueExpr.ql | 7 +- .../stmt/ForEachStmt/ForEachStmt.expected | 6 +- .../generated/stmt/ForEachStmt/ForEachStmt.ql | 16 +- .../stmt/SwitchStmt/CaseLabelItem.expected | 26 +- .../stmt/SwitchStmt/CaseLabelItem.ql | 9 +- .../stmt/SwitchStmt/CaseStmt.expected | 24 +- .../generated/stmt/SwitchStmt/CaseStmt.ql | 9 +- .../stmt/SwitchStmt/SwitchStmt.expected | 8 +- .../generated/stmt/SwitchStmt/SwitchStmt.ql | 11 +- .../BuiltinIntegerType.expected | 10 +- .../BuiltinIntegerType/BuiltinIntegerType.ql | 6 +- .../OpaqueTypeArchetypeType.expected | 8 +- .../OpaqueTypeArchetypeType.ql | 7 +- .../OpenedArchetypeType.expected | 2 +- .../OpenedArchetypeType.ql | 10 +- .../PackType/ElementArchetypeType.expected | 2 +- .../type/PackType/ElementArchetypeType.ql | 10 +- .../type/PackType/PackArchetypeType.expected | 4 +- .../type/PackType/PackArchetypeType.ql | 10 +- .../generated/type/PackType/PackType.expected | 2 +- .../generated/type/PackType/PackType.ql | 6 +- .../ParameterizedProtocolType.expected | 34 +- .../ParameterizedProtocolType.ql | 7 +- .../PrimaryArchetypeType.expected | 16 +- .../PrimaryArchetypeType.ql | 10 +- .../ProtocolCompositionType.expected | 6 +- .../ProtocolCompositionType.ql | 6 +- .../type/TupleType/TupleType.expected | 12 +- .../generated/type/TupleType/TupleType.ql | 6 +- 407 files changed, 1294 insertions(+), 3572 deletions(-) diff --git a/misc/codegen/generators/qlgen.py b/misc/codegen/generators/qlgen.py index f8eb0b75ab7..271046404b1 100755 --- a/misc/codegen/generators/qlgen.py +++ b/misc/codegen/generators/qlgen.py @@ -361,10 +361,6 @@ def _get_all_properties_to_be_tested( type=p.type if not p.is_predicate else None, is_indexed=p.is_indexed, ) - if p.is_repeated and not p.is_optional: - yield ql.PropertyForTest(f"getNumberOf{p.plural}", type="int") - elif p.is_optional and not p.is_repeated: - yield ql.PropertyForTest(f"has{p.singular}") def _partition_iter(x, pred): diff --git a/misc/codegen/test/test_qlgen.py b/misc/codegen/test/test_qlgen.py index 4c3d759009d..71fba74bee6 100644 --- a/misc/codegen/test/test_qlgen.py +++ b/misc/codegen/test/test_qlgen.py @@ -1038,16 +1038,13 @@ def test_test_partial_properties(opts, generate_tests): class_name="B", properties=[ ql.PropertyForTest(getter="getX", is_total=False, type="string"), - ql.PropertyForTest(getter="hasX"), ql.PropertyForTest( getter="getY", is_total=False, is_indexed=True, type="bool" ), - ql.PropertyForTest(getter="getNumberOfYs", type="int"), ql.PropertyForTest( getter="getZ", is_total=False, is_indexed=True, type="int" ), ql.PropertyForTest(getter="getAW", is_total=False, type="string"), - ql.PropertyForTest(getter="getNumberOfWs", type="int"), ], ), } @@ -1077,7 +1074,6 @@ def test_test_properties_deduplicated(opts, generate_tests): ql.PropertyForTest( getter="getY", is_total=False, is_indexed=True, type="bool" ), - ql.PropertyForTest(getter="getNumberOfYs", type="int"), ], ), } diff --git a/rust/ql/.generated.list b/rust/ql/.generated.list index 41d62fdd3eb..29ed698c64e 100644 --- a/rust/ql/.generated.list +++ b/rust/ql/.generated.list @@ -657,163 +657,163 @@ lib/codeql/rust/elements/internal/generated/WildcardPat.qll d74b70b57a0a66bfae01 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 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 6ebcf16ef214075bc43562c246c11f8b90c089ff1b5041ab1b39ab9f4a40e9b3 -test/extractor-tests/generated/Abi/Abi.ql 87ab06a93ccafe134a1411824b074e503a04f6fe22bb8c96d8253ae64334772d 7bca5e6b911703d6a098458aaa6db1ad16a52d1f5e3f3a76000156f1071052b5 -test/extractor-tests/generated/ArgList/ArgList.ql a497188303fe07cf772bbc56632d6cc3b8b8e7ee6bbb6eb155307c75b9b9be3c bc2ae847d8f39b7afc787476b5b1d7a51da542a7646889ddf2fab39fa63d7b67 -test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql d061a7434b0060655b7997a580cddade9acf48af1ffe52b750cc4616d42a2cac 4bb5bd3c159b8e86fd0fbc9deef34cdb2d7a8cef6d78104aaf76374cce44bf37 -test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql 5545ae3bf6d7805946a5daaa9460a6ddf882bcb128cf82c5ca34f52577e15f52 028dc4c48cc8e4763c52d5883aef714576f9b9bdffe5083b61b5c95cdf947f27 -test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql 543e8066a765cd819552c866f59fd402e073f7d6b164e68f6d7a9d30edced27a df17b62ef6521a63160b671869540ebd1052f30498be5a1b57511485d20e7828 +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 +test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql 339629d69e2d7db153e2c738d70d2df33f395ae2377f07eb247132ede87b9899 07e0611667c09456241aabf80dc420fe1f5c13b1bce324da92e6b18d250c3896 +test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql b262300235ab5bf4fe7712c0208390c7e876413a37a433340fbc078318233e83 68cfb18e8fb73b53cf8a8e73e8bf5e7ba11f32ca6b4695a64ebab51ac7d58d1b test/extractor-tests/generated/AsmClobberAbi/AsmClobberAbi.ql adfcfcdc6ac2a9a4849ea592e37da4221b6279cf2ea1112d32b6c89fda33e85e 7438490536e27b7173dec731f6925531a0e3fa839639c97a53905ba72d7efbe5 -test/extractor-tests/generated/AsmConst/AsmConst.ql 5a4c0a21d640d7ab4735f78b548a391dec4402e31f6d7684039e822c33683833 b20c6739d5615ea74965598d63b374f76e8e7fdde27efa273854f31f2bb21afc +test/extractor-tests/generated/AsmConst/AsmConst.ql 82f322fc8a01f4ccc86b3ecca86a9515313120764c6a3ac00b968e4441625422 62831f204c5c2d0f155152c661f9b5d4a4b685df6e40693106fbef0379378981 test/extractor-tests/generated/AsmDirSpec/AsmDirSpec.ql 518a739c91481f67b27bfd1989d9dcbada12de54901eb6d598c896cd72f1f5fe 4567661eecf475fb05e13749b9250bcec51056b6db5a6ae7df24b7ba5cfb88c2 -test/extractor-tests/generated/AsmExpr/AsmExpr.ql 475a2553186e3ad1cfad94068e244f3fdc9f540fca99b55d3937e36aa3eec376 b83a9d11206f4a125b2801ee12a005e6ef0f8366df60e6577ba49dedcf89c87c -test/extractor-tests/generated/AsmLabel/AsmLabel.ql 5e34c4c7df6a7b2322369ff1880e6083fa4a3701af7c72f5687a98a1d47b7d95 fd4b3cd2ad69feede0a214f6f214185da2ef30e6203791067ae2f8facce01294 -test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql 63dc56ef014c49b513532c79b9fe1948a74b8f1c9a48091787588993c1b37809 d6e62c7c0992667df1948d09b11e39b634e12313a09655fe84517293312e7b00 -test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql 65b4ff566b3252ad481b1e42ac7b62545df326e00ffcc95e2d9117b3117b101b b797be42864330fa36db8a13b38f2d769871def41425cdd28ee47675d903375b +test/extractor-tests/generated/AsmExpr/AsmExpr.ql c6c0128b252a13d5acea9a07b3854625aa51ebcce9dd93c11b423c9929d441fb 7618977e43f202af5b7d21b67531c4795bb791abe3cb03ba4077913c430b31d5 +test/extractor-tests/generated/AsmLabel/AsmLabel.ql 130bf49dc1f5ae79e3588415b9a4c25dfdcbcac1884db9b2fb802a68e33180e5 c087e47d8953d312488fcc0b1bcbfca02521e3683e2063eaf380d76399bca037 +test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql e866fd4715e78511352bb286c1120cbd52c4d960664d57dd99f0380eb1db7109 081d6a6267a3e251a123099b4c1e7d3c5a3b56e0efe9db7c7db24db1c08b7e0d +test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql fb1eb1f275ad251ba2e0876cf1d097bb33f20d06b0e50f8c01f7c11c71057688 e308567ffd18671cf172853a5c594f0f211d492c7e2fb58be412703d1b342b41 test/extractor-tests/generated/AsmOption/AsmOption.ql d613c40391f4985414cc3541f900b6e3f5f9ef157d2bfb96a773710af4b059ed 8450ef57a5a891db514e8340151d161e515b59ae7b963fd5eebf3bf862eaff08 -test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql cac59185594ffe635d48b3493a7b597a3848ed77d5f1db4dca78fe5b81e1bca0 9ba5c822f17c479fe62cd9fa747a7dd08bf50714a672bfe67b8c17e413dabcb9 -test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql cd7e3a22fe65052641f63096c08abb152bf7e211178c639ba4014eac1d09b6cb b921c7f1a322a24b221f1480d8cab2d8a2c91b02335d8cc60c340b18cc732941 -test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql 23b4e90991d3f7d22f91dc4eb036280bc18a27a2890711268ed21a5f708e5d72 35c585c95f9fd611ec171ac97a32b0b7ddf3852b7fe1d8eba3f0028b254cadce -test/extractor-tests/generated/AsmSym/AsmSym.ql f58f7020d924b2a03174ba0cb0b9bd2f909bdf609e7c1ab14458c70b03f95e00 8b320237d857be3a0b14ffbac652806a58fce782de3bdd6af2ad7df4adf848cd -test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql a2119629513df2b9242564b61cff74612a909c071904913a2a52a8a5b17aff63 9a377a477bb2313d4ef815e359e92dbfee7acd980d8e54599ff7e1a88c8dd2a3 -test/extractor-tests/generated/Attr/Attr.ql 5b066cc3363368e20f7f434219aed0ef137e3ce56469aef0566be0531858c74f 92fefe89a0a9a70abd0eac0ac719b2e7a3c958c0c54a5ce7f3f58e3e78552ba3 -test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql c78e4a1d09b51d30ea8afbc512863c78f22b283f6886942cffa782dbc6aceaec ce5abb705e02cb69960ae5d68c973e3d096dc7aff57f38626d09b05eb2ef511f -test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql 0802a7416d6b01ed60637528b1aafc5f719219cd95b006c402b7456bdc15a56a 5d3071fd1938ccd47c3dfefc7e88ce20dc93021bb9c0166905c6ec89f6d8b2cf -test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql 5291e45119668d5f0084bae39ac18666e466e5e780170e7595da1dc607cec7cd 40829d46132cf38719f2d76768ead166626402722cd8189d626095a1f1fb7494 -test/extractor-tests/generated/BlockExpr/BlockExpr.ql 6219fba04071aeaa9e6ccd4b8b87ca99761b57b475f7742dfd8f39562636f934 db35d18bcc678a9d38698a82a1964e4febf7c8ed7b71b910a0c5ec54f9ecd31a -test/extractor-tests/generated/BoxPat/BoxPat.ql 0d4d81ad2414ebb593df7fa545c0da845ee1b65228af6e513c9516435688993d 66e56ad5e81488b85112ff8ff595db332a12967646f1f6b0aabcb7bf469efd33 -test/extractor-tests/generated/BreakExpr/BreakExpr.ql c879c5140cd2d537b225bbbb8650344ff8f08873e451e1c9229d914de8a0dc4c 0c71d378988ad805c1cda4a63aca1720cb82310b5204349b1de35ca5fc39b053 -test/extractor-tests/generated/CallExpr/CallExpr.ql ad956f12c89a8be873c8a3d3069f29ecf61f24ea6283e0903ed1c45ca8bd71ea 2726391717cd98e52c4c33e3a39dbae5e9e90d8cfa644ca8926ac4bdf61e71f9 -test/extractor-tests/generated/CastExpr/CastExpr.ql 67b7b17f946553936b5e3f8a524814c54fc052d5267e6e48be789228fca58849 95b1407a097b5a70cd206037a82e51f0fbdcfabbe642eb28db06b262171b5120 -test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql 576e6d91c75744644db4f3a94d904a707c5b3e99b424f4802417546b15b168df 9904cc2162ace5515fee867d5916896799f487f8a8c409b1c3cd79b3365add02 -test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 836d86eb07ece80b7141f310b946320730ee9e8e6088356a2eb46f3cb0246df5 64dabada0b9c5b5645e53a48c7cb9ebc21362a197ea537ec68faebc4ba9abd97 +test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql e0e76f1d6e454c60db632baabd29642f315c4bf9284bab9ff8368604df15e77a 8450851f062232e7ea92845f406287f945c16e1e1a69a3189773e6e86df8a64f +test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql 4ad6aa224e980602aaa77a601bda1065b1814249d889b54eda4da99dfcb53a8c b2503095957c7e3cdd345e8ccc594aa0f7590954e64a831660aed9a515f74d80 +test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql 3ae5068254b83bc4663230d2d21f16e189d213acbb4f25924819288b433d4a7c eea94d02b9bccb20d9ac9627667b84eeb486b5976b1b37fa0b94767c83c44a3e +test/extractor-tests/generated/AsmSym/AsmSym.ql b3dadbd288d92dad7517f7997aa3e5974f807a30793486d174bfa9cc67128fc3 4f82ca31ef7e5a7d9a86567516a257a212ecca911c02d9a67de792ae66960def +test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql 553cf7850a60985438e85079d3b55ec821fff6912d2076c2847e19626e9443c0 6c1c52cc2d4823b450bf3f3c9b166514863155f842faeaeae4bac8587a63efc8 +test/extractor-tests/generated/Attr/Attr.ql 88f9a524b557e81006a5079ac6d703c42df03ee510b7bc10cd22b481275d1939 49580ff1d1c34fd2ff636b983a19a96af0e36da939b5ac556817a741bb3b0435 +test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql 93ccb34e00b37deecd6d3019bb47948daffe55a2d5d031c60b4f6fa7a61412a4 5502459743efd8346ab943ff3334545407b21aaf0771bf422be58a5df5d27381 +test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql 7076b3f965c680e8f03bccd9ecb4495d03d35a4f460ec43628c19314eae8b49e 961e6e656e467ba389bbc6db39f345d9a8afaae4584d357dfe47484c6afadb99 +test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql 4e849e6eaae581f487aa74d09d1106e441c876b06474389687a04df446690a4d 6cd36dfdb0af25396d2219fe2789f898e2393cc3f10a25410b2ede5d216707cd +test/extractor-tests/generated/BlockExpr/BlockExpr.ql cd6ef66de9e56ebb74964e59617d47999fb8c9081e885acece17a3b747a35ae1 6766844c1b87e518688565f2469575af5ca4e0ff4eb0c0b620df73a451d86a0b +test/extractor-tests/generated/BoxPat/BoxPat.ql 854c9ba4e045dbe7ea1666866c1c443a92597df0ce02f4ca5993142925941c39 a22c17cce0bff7d1df51b817d2cb1a61045357f91be14465166971efa5f5daad +test/extractor-tests/generated/BreakExpr/BreakExpr.ql c2181211da3dfe983cfca93ead32d5d211e91181899b9477152c58124eaa846d 57e57b926e14db2efb2e88e04699608b2ba9797ee4f6c4f710135b6858982256 +test/extractor-tests/generated/CallExpr/CallExpr.ql 2a1cd4485ccd8d4eb24a75889e832612adef9bb7feae414c90572796380bc6d7 95060b92aa04d7ad1fc6603c5ec14a275a5788ecb5a19932732e28105607a3b7 +test/extractor-tests/generated/CastExpr/CastExpr.ql 3480ec51072399409b7553ab6139c832db6ed4ca991f3a7a2282a39afe07c6f2 614c8ea7a2fe30d57583dbf84ed7a12743c2aba49d8c6252d31af3ed10853a39 +test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql b68285fec6224b156754f51ee75a9b7ed32edaa16527e6f657a73bf6dd97eba3 d02b1b6d66dea1da892447d7b309f9b6e4eda0dd02055d71706d52aa73b5b9c4 +test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql 849c874de45781b8491cee428cc00fefc8cdc76f87de8a373a181b16ce930ab1 5e570193befae7bfe6c21ce91e20afd52bb94f234e2be89d0974bd6337221508 test/extractor-tests/generated/Comment/Comment.ql 0e0454911d2cf2e7ef5c6d860b84c57b9d490090914ebcf4fa0e8a70f777f066 cbd1c195276ef163f8d3c122344738c884dc9fb70eb2f9b7067829d735d48c4c -test/extractor-tests/generated/Const/Const.ql 784485603447ea3fa1e90913a7b00749927b62519035027b764c3a4dd705ef40 5969f2bca03114027b580c2a31621a948f3b41dc0d35437796a84b35ed793caa -test/extractor-tests/generated/ConstArg/ConstArg.ql 1f9c1317bad8a56482761355ac9245ec7e9f6a4c6b46f03215cac5c66a8b0897 6b3590000e5acbef9f00988d8b0e1f010f3e39f700d60370dbbfac70a6a5ee23 -test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql 78ca1c2ebd7acbc1714691d16ed6fd5f29cf290f93bdb6f3c345ec840c1b3705 2635b135d259c78b1449dda0b66bf46c970a87b9431210eed82323a194ad0468 -test/extractor-tests/generated/ConstParam/ConstParam.ql 3a6aeb3af80f0cf842614ec49a2207c622fa91f45913095084b401f9ccc0dafd 625318a52f2ac2a0fc4245eb2bb26dd9b38c99e97f17729b4cf7101ebe23d00a -test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 1d7a8da67f931c4ef23bab2d0a747fff8eca9b71f9fa4fe38b8327a172dfa743 fb38f3b04f4ae11825ba22a87ee24d13581d4d728fe92ababa448e43a446155d +test/extractor-tests/generated/Const/Const.ql 28a0f2debbf73ae867fc2d08d8e54d9e96fea69522b7180a48495c9b7fce9367 54d4a68a2b67db95ceb856535a8b27860ce2b502da17a7eeea3bb554d7fb5e43 +test/extractor-tests/generated/ConstArg/ConstArg.ql 21c7caf1939ff9fcc1bf0fe6dec5c6a6929f714cf1e17faf7a2f4a31c910194b 61eac00f4727f7269f926c53f53a62b5fae82ce7a02b42d23b9de6337b6f9d6e +test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql e2198f9ef913f7ecb9e96a4e5e4849737b664dbdf1ef67428d372ea1c29bbb35 c49aaaafd65c4dfadd1fae42a2078dba90bbd3fa1bcb09b88501c5085ab22c49 +test/extractor-tests/generated/ConstParam/ConstParam.ql 6facb2402e1cbf23d836f619ef68e2d8496b3c0c438e71266de24d8690852468 211ed6f7384f86d849f559410b2ac09da3df278bdeea9e77c4d9c26a727a6990 +test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql 58b5046a4da06a4cd2d942720603313126888b2249b218bef6f7c44ca469ccfa eeb84a04deb4c4496b7f9b38798cc7fdc179a486c8beaa0b33bf87e7f9482b1a test/extractor-tests/generated/Crate/MISSING_SOURCE.txt b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 b6cf5771fdbbe981aeb3f443ec7a40517b6e99ffc9817fd8872c2e344240dae1 -test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql 3b3d434c12f3642ff4f5d37efa2dced9c992d2364e3a0222e4f27914b7a10ebc 5f131d71ee6bb43492bc7af8b5fcce6c8e7db4be6f157af586c24aae7f87bb1b -test/extractor-tests/generated/Enum/Enum.ql d23aa08076db097960186afbaf72f0be3fa0b211dd36ced0e9a0fafa001f44ba eda75e1efc81076f8c7636acaecb2173eed24a86b57fc01731b6f134f69a01a7 -test/extractor-tests/generated/ExprStmt/ExprStmt.ql 0f99b73f380380a7159f1d046b959810a133af33c98aa35fde18247a99a09555 ecc5f7f63550659af92d50617ce67ac8dc4630ad2d5c5cd666a697c20aa9ff7b -test/extractor-tests/generated/ExternBlock/ExternBlock.ql 3d489a71460616d428b57d5c89564081fc24ca7b423be16598dbdd13e108f6a8 7d45f7e5c21af9e8c8c0ccf99e11333df8f30ac6f9e291434a258f21f2974fc9 -test/extractor-tests/generated/ExternCrate/ExternCrate.ql 55d6575506d0a6a11b5e86caf99b2d462c5260af11d82d1ad5b028c0003bac8f b0bfed75b10603532c657bde4f807d2e6685ab81ec360c4ae8e256006732cb43 -test/extractor-tests/generated/ExternItemList/ExternItemList.ql 7442c42f2a9e6d7d2660e3012f70b6db501ab327ac171ef0ad5241c38dce333e b5db54f716cc7c07a1282640bb6d2de891737548b3935f446693145f9306a2ec -test/extractor-tests/generated/FieldExpr/FieldExpr.ql b1463e8330de001220c1925aaa625c712b1fda760f780e83afbf83c15c31c79f 207382059e8c5660c5657524e987bd716b5bc29fda7311266c6ad87476f0d3d8 -test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql cb23d43d8a7b5162ee888922bf0e92cc5d15df45359eafc56241fc405e71f002 9cb69b8cf4e1ef19fccaf17d57bd34aa75cfed97e4b6d64f1b3d7b787e6547c5 -test/extractor-tests/generated/ForExpr/ForExpr.ql 98746a8beb7ba3fd59ca06f11f077205305f8beb0a9ec0af77f5b625f9ab1915 abe4492a468a1769cbca45a3282ea77d9e21477c99585cf8851b3c3a4e7521ee -test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql 4f90e94fc617637eab0f28895c46ca48de3c4667a32d43a973def28f3f926948 d4e740ba92dd781ff37ab63b32236392a1e9da876db84b4941122f572704027c -test/extractor-tests/generated/FormatArgsExpr/Format.ql 4824294ec21124b0e44a5b5a2666b6bb38123810758a55edb402b761ccaec262 7c6d5aef2112760b4b1b6519af149c2fd0a531fb817718291129223649a29246 -test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 0a853aa4c5fd67ff5c42247f56b838c1b025e8d9364b758ee3855e33ee49e551 20016b1ed5207b0ffed889b0054780865308e41286c4e223ed723656c7e9f82d -test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 6c1400071f13633649b33342d636e2c0901a9199d5476e65c9e86ed43bc4d6bd ab22f0454f46ccc4923188128fe08c31a97db3340a9b4e02d5ac634c4c24c1c8 -test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 379469864a349847ede6505fee76d4334cff08f830051ec627124ffbd134d5b7 927443d5db95d1bceb17c23396b0a311f127eb93f28f6032bfcdc14f55f7deb2 +test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql ff54195d2e09424faaac4e145a40208bf0e57acc57dfa8247b3751862a317c4b 583d5b98aa31a9af6ad73df000ca529f57f67aa6daaa50ca5673a56eb57bf507 +test/extractor-tests/generated/Enum/Enum.ql 11b8b502f0e79e0447a3d014616798448130ec5d686b5b12e0db687786065f4f 5ea58a9b57ece63253a82599c096ebbbd0a3c4ad136ca20662f47a4bafd2df41 +test/extractor-tests/generated/ExprStmt/ExprStmt.ql 7c62a97f7f910ae6e0e9aff7fdd78b369d21257ccab52afe6307ddea2e15dad1 2d32a366c4acbea3136ff1f9f9dadf76b148f82ad1d7170f02efd977d8a07ae9 +test/extractor-tests/generated/ExternBlock/ExternBlock.ql ceb04a9596c73dc2e750ce1950cefcf0b5fffd1ab7dc3e723e4a6500b3ef3ab2 4f6ab037d307ff351a9e48c37b47b8f8f25de5f3d5ecb78cb8c39d7275751d29 +test/extractor-tests/generated/ExternCrate/ExternCrate.ql 7cd54aa65300453fc031e69fde24466d01cdfb8ba73e24e4d134fbd3847b15a8 6a6fdeaee88c74caf7345dc8b85f326032eb27e63aa63a6ed883256e4da86d3b +test/extractor-tests/generated/ExternItemList/ExternItemList.ql 7f4d538d8878a0166b1868f391abf34df1d5e986a7a2e9ceaddb36d95bc7f46c 37072596f5a1e28ad98cc87dbfed00afadd83fa007f03d5b17d4dee8922b100f +test/extractor-tests/generated/FieldExpr/FieldExpr.ql 2a04baaf57a22b65bd5b9e142e59cc2b7d3dd3174910ddc0c2510094f2dd32b1 d8e4fb4384aade1770c907d16795a4af9884051390a5a05935ad4b4df2e757a0 +test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql 1501730f1e02e9d22b07b18bb42a5372e1d327bda62bdc81d75f9966946cb97d 28625f0b7ee4d7ab37fc13206585961e89a5e509a93215c16136d2382418b7af +test/extractor-tests/generated/ForExpr/ForExpr.ql 3bac38bf33e140ae9f88371ec90409f7de867e39cdea46f02b15519b236b57cb aade1baf6e6081b3b9bce5b7e95fe4b7ffe00ea9450fd6e1d6692ad97cf93fe9 +test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql b74c0034bf5d1bb4a1a73ab822daca4572e80983a0c88620abe92bb794dd9cd8 a18f9a6d95b46b808c3a25e11fc54d2564ace67fb98d0c76632c5d5894b31030 +test/extractor-tests/generated/FormatArgsExpr/Format.ql 237ed2e01d9a75ee8521d6578333a7b1d566f09ef2102c4efcbb34ea58f2f9e8 09007ce4de701c0d1c0967f4f728ea9e627d9db19431bd9caebbf28ee51a1f36 +test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql 5abcb565dcd2822e2ea142d19b8c92194ee17c71c3db7595248690034559d174 1ffa743fc678701ffeefff6c14c1414bb9158e6756f32380dd590ff44b19ca5a +test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql 243c2f9d830f1eae915749e81ac78d3c140280385b0002d10fcc4d2feaf14711 72b90a99a8b1c16baf1e254e1e3463c3ce5409624a2a90829122717d4e5a2b74 +test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql 0a345eb48dba8e535d12a00e88008e71b3ce692fbf8f9686c8885e158635dffe eab1f230fd572474a3f304f97d05bbf4a004c52773aaf2d34f999192244c0b80 test/extractor-tests/generated/FormatArgsExpr/FormatTemplateVariableAccess.ql 24108cdc54feb77c24bb7894744e36e374f0c03d46d6e6c3fcb2012b1ad117f6 05a6b6f51029ee1a15039aa9d738bb1fd7145148f1aad790198fba832572c719 -test/extractor-tests/generated/Function/Function.ql b273ee86be20a1f6a01195e9494382e2f19d30360a602fce19edfde2050486a9 003b56d91eb8d258523103c9abd08c8926d34c8aaa54475724edbf83c5d2dab7 -test/extractor-tests/generated/GenericArgList/GenericArgList.ql f061e626a68a5d238ecb3fd8302e6fdc2b38928e13d94157fe2ea91d05d9224b 6295a253438ce8bf437154de31699aad2ad447224845e8ad9ae2ef66a0ebe448 -test/extractor-tests/generated/GenericParamList/GenericParamList.ql 7d25f71e2b68e65af2104c2c0c8d4d37ba9f6281b2ee0f4af14895e0d9897e56 8820bd3591b29535766645f11d460de36274ee8cf0f0d1d5fb4be744fe5853ed -test/extractor-tests/generated/IdentPat/IdentPat.ql 015f2df2a1910f3834695dd204b2b60451c8a6e25ceac5dcd4c0fa03fadb45be 845aa839ba0acdb8486b14421a317ca8a048bd6dd717b0828ff6d66e6173f669 -test/extractor-tests/generated/IfExpr/IfExpr.ql 5ae88009f6136564dbf1d5cd5a6a53e7a5940926fc641eaec1ea5cf07bcb875f 7f55fa91360b9ca8aae137a71a18b139e5ff3f25a9fabe5eef807b710ecd3e9f -test/extractor-tests/generated/Impl/Impl.ql 82c7c230f1a304bb5aedb5521b79ffafae57befaa14a02d32c4fd8dec339b982 c51e5b4a5ebfc505bd4deaeed6c558abeb03b946ac2e60b04205bea6ee64461f -test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql d93e9852c32d8a5c63b88c535194733ce0df644e5508c356b917213d19c61b51 4386f864a9fe7255d6ba2d055a55ce285aa1aed1ba7bd2d2fb0c8e9e4d41b49e -test/extractor-tests/generated/IndexExpr/IndexExpr.ql 9e98dcafdd8448072eafd200f356ecabc7ae6d198e783b3e656e8d3edf9328cc 358f941e2964e0cc988a900a111e382b1ad7daf68edf96573724054c23214bad +test/extractor-tests/generated/Function/Function.ql 3fccfb248ffe18fb1df1c12feba1c07f1a41edac58c9d77087971a8f94a013d7 1500438db913c101747911fd570a2f2197e4282f0156d1acd9a0026aec3cceb8 +test/extractor-tests/generated/GenericArgList/GenericArgList.ql 9bd6873e56a381a693fed0f595d60d973d0073ba7afa303750d5c6a0b887a811 0b373079f65aa91cacabfc9729c91215082a915197eb657b66bcdb3b6d5e7e53 +test/extractor-tests/generated/GenericParamList/GenericParamList.ql 206f270690f5c142777d43cf87b65d6dda5ec9f3953c17ee943fe3d0e7b7761c 38a6e0bbca916778f85b106609df6d5929baed006d55811ec0d71c75fe137e92 +test/extractor-tests/generated/IdentPat/IdentPat.ql 23006eddf0ca1188e11ba5ee25ad62a83157b83e0b99119bf924c7f74fd8e70d 6e572f48f607f0ced309113304019ccc0a828f6ddd71e818369504dcf832a0b5 +test/extractor-tests/generated/IfExpr/IfExpr.ql 540b21838ad3e1ed879b66c1903eb8517d280f99babcbf3c5307c278db42f003 a6f84a7588ce7587936f24375518a365c571210844b99cb614596e14dd5e4dfd +test/extractor-tests/generated/Impl/Impl.ql 6db0831b8b6bbb0168a63b49aae27022546256c19cc9b36d7fdebbea6a51f2f3 4d2e6b46a9a9397e6da6a58fcea6e75c5b5df37360cdfb2d6d477140c3958fb7 +test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql 311c6c1e18bd74fbcd367f940d2cf91777eaba6b3d6307149beb529216d086fb 16c7c81618d7f49da30b4f026dcacfb23ed130dbfcfa19b5cb44dc6e15101401 +test/extractor-tests/generated/IndexExpr/IndexExpr.ql ecfca80175a78b633bf41684a0f8f5eebe0b8a23f8de9ff27142936687711263 27d4832911f7272376a199550d57d8488e75e0eeeeb7abbfb3b135350a30d277 test/extractor-tests/generated/InferTypeRepr/InferTypeRepr.ql 6ba01a9e229e7dfdb2878a0bdbeb6c0888c4a068984b820e7a48d4b84995daa2 7120cafd267e956dbb4af5e19d57237275d334ffe5ff0fb635d65d309381aa46 -test/extractor-tests/generated/ItemList/ItemList.ql a7cd12269cbfcd323a91183747e45b16fd03987508a70b522fa4c5f06c6b4a24 c3a0ba31bd36b831f24081e1ed2dece4fc26448e8d7d68708dcbdc37fc3b06ce -test/extractor-tests/generated/Label/Label.ql bf876f5435c5c1ceaeae3e280b59e2afe4081d4f16e31f870344c4a0dc559f83 d1683de377912cdc3bdc09993c0e5620b580df218137a765499934b515688286 -test/extractor-tests/generated/LetElse/LetElse.ql b1e858a70daaabec1fc1956f27bde6d9b6cae4d73e9848645de3fbf4d076080a 26fbe7215a35f118cbdede1f4f7606bb826801512fc28ecff9cdf3bc2643221d -test/extractor-tests/generated/LetExpr/LetExpr.ql 93420800fab65ce0614c29b0086dfa8f9702eb739cd9cfaf182ec42ea49ecaea 29c8c612340d4da4fdbea8253f3ad639c1bcbab02c770f05be91fec90f4a30d6 -test/extractor-tests/generated/LetStmt/LetStmt.ql f34f80df9702a2b5b5b9aaf51fdee9639fe31c04a395d10178b4d06aeba6eca7 8deafa420a0946a71b96d3443691e626b1726679774ab31a3b4659eab88c920b -test/extractor-tests/generated/Lifetime/Lifetime.ql 6928ea6d1734506b1749540bad2e4a09b077c9e2e3ad36cee968b6637ac3713a 83d3a1a226c8fc0c19ac0dbf8fb1c292e312162ffd37ae93ab306b4c0c1f45fd -test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql 1ef4cf0a6d58d54560d28aa3ca3773acf932b67bb5ff6ac3198e88f9f764597b 81fb0d408265e07b6a789940471d2e113d6bfd14c0e4633b29458523a5b4f93c -test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql db8cbff79d914ac806b93c158af7b53a973bd65327eeffabc2705dde75e55b2c 2a4e28b31d63879e2f0bb9b63a08eeea67cc3e5348c44e265f56a1728fa9a10d -test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql ff85f118a182a295f1f39c4eab99b28aec196c972f6234ce288ca61bdcd6ed7a ef30de8bee944569438f5710498ab6e96bd62c608202256e088e678ea1fa813b -test/extractor-tests/generated/LiteralPat/LiteralPat.ql e0992ef23bad7ef7cd586140c2f3ae060647e40029aabfeecc7e228413d86ef6 bea1a2b29323bc6bfcba19c180649f08d9be7cee077481dc038c1ed667bf6379 -test/extractor-tests/generated/LoopExpr/LoopExpr.ql 6ecf1073cb59a8ef6b1f73189a019a756b4fb77713aab49dc9d6f9650d8c7d67 2fc3a44c2f630f9c75b9090cca52b6b2c64d14efd6ab3751799993f0820df76a -test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql c568f1a3ea0c675e6eac74c92b8fd634917e58e25522538db772010c41bd959a 00c66f0596ba2c084f8d9266d3a79fdd0b2ff5fa5bc5b217322099d2bbc2fd01 -test/extractor-tests/generated/MacroCall/MacroCall.ql 419ba05a1b98aa63025a3589f30811af4281333e3b2765737dfca5dda39716e0 c75ab05b651956d1117095776a552af530e287b647f827b02b1ed4b118b31599 -test/extractor-tests/generated/MacroDef/MacroDef.ql 3285243993f01ba7908656862eae742ae78ef24c4df6dd36dd816710e1fa753f 7dbd43bff8ab823d3caaa254e142d89595beb76ab30edb90f11d8235b2c4b851 -test/extractor-tests/generated/MacroExpr/MacroExpr.ql bbf9f82fd797b5a0947d8d3ba31c754df5f6468cc5b5c74fc0c9ae51fbc0fc97 72cebdde9f4eb42241b2bd68d6a725eb05ea333dc2c6792de0ee0bbb8087e7ec -test/extractor-tests/generated/MacroItems/MacroItems.ql 5754c284ed6aae44c692cdc5994ff95bf3eae1a9cf594f7c9e9587c5352452ec 1f2658a8f8056be0bcfcec43fc547ca9894b18fc9d2213dc6e7078ae3e6e6367 -test/extractor-tests/generated/MacroPat/MacroPat.ql e317b4ebee68c315f4268e2d8805a8d17623a0091e12f5efb54be1cdf40a8655 c24ba7ed5a384add19bf040a106b288a815b660df69de3f9c7799f03756ee600 -test/extractor-tests/generated/MacroRules/MacroRules.ql 9695d6b4974a209ed4cfceb3a89b4ca3d1f6eebea8ccceb5516ec46f71be2e3b 1850e44310fb311900ffc33d8480fd2d4afc4be0f1c8554936b59fc6906ade2a -test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql 6f3c500f7b1fbb3eae00b741cb10de0cb2c2ec3b952bf0f14cbd8d294b48e041 8c87acf65bdf32fdd735f655cecb677fe7246db43923c1b02a3696c7201974b6 -test/extractor-tests/generated/MatchArm/MatchArm.ql a1c9b74d6b887aa3bd928bd06e7959e2ace699edfa94b4e082130222551cb081 395f96810204bfc30e65662a2efbcaaf03e70c69130fe6ba154576efa4cf7ddb -test/extractor-tests/generated/MatchArmList/MatchArmList.ql 2961e39e7a6eebfc4533932bf84503de77ca1bab8c11f1d31854d572757ee1c1 c2327313fffbb63b0b958cf408bdf34f6fef5c7bf902e3a44499dc2b8b7506e8 -test/extractor-tests/generated/MatchExpr/MatchExpr.ql f2389e43d5d02845c3c30a5ecb8742cadc0c0b18d12503c2872448124927a5d3 c5be399f884ee03e9765f186b8d167710c4ae6e4ac50ef405e5e810bf42839af -test/extractor-tests/generated/MatchGuard/MatchGuard.ql f2f6e4401de989324c1bf26278b82f10f3b224a0618a76c0b45f6ca5967f7930 d3cee06f93b20d075f35da86b48b17d8220b5e0c3660577065e451f2088da99e -test/extractor-tests/generated/Meta/Meta.ql 476e200756fe7baf9a0e8f92af7364fc0b357de4055cea8663010635c9e978cb f43bfed9324dc0e1c64e184d5e200da5952c5c908838206034fd800330b94813 -test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 35709db709f4a561baba8b1b1c56bc2fab8dcab05b38e678692a3ffeb2ca1f33 dfaea39dd709ae496a8c60bcc53cae98cf5349235b88ff47bea9e5a3b12f7214 -test/extractor-tests/generated/Module/Module.ql 7cce1064b28139f5741df98ccc88f0d62af9926a20b59f4f756f3979e28bf318 5f3734c328aeaaccde2e4f83bdd5144bb968c08880730da0e94a636adfb3094e -test/extractor-tests/generated/Name/Name.ql 5359807d0eb6fc90841b3d5ec1ee0f09540d13adfae0a4f73eee7df2b0294e80 0c49cf53d89c28e9ca6f348b6d242a64fa6bb3fb9b8205a591e46095110fb2d1 -test/extractor-tests/generated/NameRef/NameRef.ql f8795c2f9f096b40d681a79e37d489e810b5941ea8036b46d0f09de2b105f82b 7bb59e7019a6b80ecd2e87cb97d6935d7827e3869c5c06d8a916c05f1bb26a5a +test/extractor-tests/generated/ItemList/ItemList.ql e29302a9212b07fdaf93618852be30adfac64b292e9a0ddbf63addb803daaa98 7e69a78b0f58ef9344892113799092149024c1352b0965a6326d8a45cd44771a +test/extractor-tests/generated/Label/Label.ql da1f302da6cb31e6ccb73c722d9d5cfaad6a26d9869b3fa09fe50b03e26f3d9b 5fbfabfef6567ec6609be1af7859eba8ecb1f7f1878b8fac426e0d7098c17ba1 +test/extractor-tests/generated/LetElse/LetElse.ql ec8e7362ce9f903731ed6bfc190fc18a6f60abf150f5cee878a0fb9adaa20b94 2e019b6e246caabe4800ab940bc150bd8e466d59dde87bd614bf064adb703c8f +test/extractor-tests/generated/LetExpr/LetExpr.ql 59f70af49ba496559a7ccfe30e737597fb473794d677627d344a9285f85dad33 b59d1f665c600055666a422c4008878cecf17d9ff847cd02b6e0e82ca73073bc +test/extractor-tests/generated/LetStmt/LetStmt.ql d89291bb071484b1e79b009b2a310a5104a2ac0e85a8581ed73135e1351c27c8 45e20da515173e372c1d1d87392eae64d6d482eab0393f9753d1ebe792241d39 +test/extractor-tests/generated/Lifetime/Lifetime.ql 9ca2da890633be36338a60e41c19a32ed03a7397ffd5c2271de964ded59b380f 475925d5aaa3c7763f3fdc703b8510408b6f729a4855d9e7ed2cf642cb7e0f98 +test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql ba052a01e76251c45960451fa183cd33e7435dd2906a8a085d99ce7bfba8ee05 bfa2de807b23f139342ef820d05f50e3b3573027427d0c77b710aea5a94fc839 +test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql a96f586af332969878a4e9df8f9dfca99e5c98b6f60315dd1b3fea47c4cbace9 01d87c8d686466e15e19f85aa9b2536f7b8035181444d532ff11286c77b14dcb +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 62859a25b88c93db1d47055f682f1b8ed97ef227c870bc14041af106cb9593fd 14c5831920249ef2e0799ddacca62805e2e2d8b8a6cbd244acb3a20c4542bf7b +test/extractor-tests/generated/MacroCall/MacroCall.ql f98017f6070e2a5e4b191d5380cc0491d7358c456e8459b313235e44eb368794 437129210d9b7f6850adf4d2c8ef7d0644193418645d631b8edf229656fc57ac +test/extractor-tests/generated/MacroDef/MacroDef.ql 9e3647a92713d32f87e876f37d703081855ea88a7a3104757f90bd94eb382fa9 b50e9797c1b8ea5491267ddb6778862f0541617ee60bd8e167cc23a499e36733 +test/extractor-tests/generated/MacroExpr/MacroExpr.ql 83fadb88fd8f913bb1b1cda26d21b173bdc94bb6682a74eaddce650ebf72aa41 1c502cde6a95ec637e43d348c613be3dec4092b69d2c8692abdc5a9377e37f5f +test/extractor-tests/generated/MacroItems/MacroItems.ql 0f8c1d134a28b80c70d5fff7c120f17350f6116689fdd7f67bdbfbaa0302c224 9f0594aa6d96c4f368d6c6521d0b58ab456611842afbfd040cb84f8858241677 +test/extractor-tests/generated/MacroPat/MacroPat.ql 71f65d80e670ec43db768693b8d44d627278a69e938517dc9068c76785ffd102 b1577dd669cafa9cf97aa998a7f30ac4a94aff129787a2d5a1cdac553fd56397 +test/extractor-tests/generated/MacroRules/MacroRules.ql d97daa29929a5bc4e25e65755c1929f9854beb1d2a183579a1ebec1d4b346dca 8b81026fa36152d870f91981a020ed0fa06cae0380d4e8d9496fea12a95b0326 +test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql ebe8451a9256c9d7e77749beca88d0fd5ab73c76404bed4ff6e0c75f126159cc 72dd6d5ca4133e318fd51bb9007519b938e618cd4ef27bfe52b9c8c8cbd484ea +test/extractor-tests/generated/MatchArm/MatchArm.ql 704976bd48e56a0a2fce7c2d9454b6cd24b1bf924633702ebcd71d8521b9b171 7c2bb501002c997a680c69b6d0856da13868125913e726f1a12b97907f32064a +test/extractor-tests/generated/MatchArmList/MatchArmList.ql bbc679fe6d8dedf9131d0fa5faa7b44c138c5f56b9cf3cb209fd3ccd614b689c 916c53a2b68646b52f2d28eca2a19218ba9d12eb8edf7c6cc4140dace1bf4e0d +test/extractor-tests/generated/MatchExpr/MatchExpr.ql b75a5936401bb5ca38686f1413f5c8267ad685722560a2e9041dacf2f8d54abc 7da57118fe5b1f7f5cbe8d6b5f3ae70816fd4837b1c2e6401b98175b36ca233f +test/extractor-tests/generated/MatchGuard/MatchGuard.ql 91de18a0a18d120db568b2c329e5cb26f83e327cf22c5825c555ea17249d7d23 0bcdb25895362128517227c860b9dad76851215c2cdf9b2d0e5cc3534278f4ec +test/extractor-tests/generated/Meta/Meta.ql 43dd1cd669099b38396b316616992af6d84b0c1cee953b19235a00ab3d3bb43c 80b1885809aa074357e21707d1f8c6dca19f0b968ccff43229bb0d5c6fffb2b2 +test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql 617bc809816dc3cc1de1c0b49c494568164fe2a048472f4cce1b83f0a1f54a42 1b323e0b1812dbfdd78ee58798353e20326a3ca7529f52d5c984d1d92889a65f +test/extractor-tests/generated/Module/Module.ql 4e154af13f19ee06e88ce8ff85e143bf6ddde798b2ec6fecebf43b8015211087 78f91c2827883ea7ed1f546de80d0909f4ac57b06027439f07dcdc0a09d7888d +test/extractor-tests/generated/Name/Name.ql b2fe417f7c816f71d12622b4f84ece74eba3c128c806266a55b53f8120fa4fb3 8bc65bbf3f2909637485f5db7830d6fc110a94c9b12eefe12d7627f41eae2256 +test/extractor-tests/generated/NameRef/NameRef.ql 210a70e0957f3444195eed3a3dfbb5806e349238c0b390dc00597e6b8b05fcec d74fbce3c71aa7b08ae4cb646ccb114335767cb4fe000322f9dd371c1bb3784f test/extractor-tests/generated/NeverTypeRepr/NeverTypeRepr.ql 4e73ec96fccb00fe241546ff12c47329a9c67b7ae40a58a5afa39ecb611b84d4 bb716f72db039e0a82de959e390259a82cf99ba4482070602b7b6b42511976e5 -test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql cfab8e4bc2531c25a49ebe3128dd76d52fb870d4540d8890df6ef8fadc594a03 c8aa854fa3bd77b5adcabba67cc491f125a96760dab451446ebd33cd91d2c620 -test/extractor-tests/generated/OrPat/OrPat.ql 7f78903ac374921770648aaa359a5be157da60fe92ee522776fc326db4cec11d 38a85313488b9c5dc1187c3f85b7f5f87cf4ba0b4745e2df24cf2e4185e05760 -test/extractor-tests/generated/Param/Param.ql 1dd558b6b02351929eaffe958315cde68574c83a2f5d4ac48b1053d2c780332e d751dbccd80b2ca7dc5718dd0c8edbdffd3aa78ce7aa5a434b8c0d8960dcdafb -test/extractor-tests/generated/ParamList/ParamList.ql 113e7c56a50a6c6ccabcffffc35214215be8d3c86e1d2d34ed4a57869c71f0bc ae7ba6fc184369ebc1ad3acf09845122d26604e9e9925c62be4a4f2ede32a075 -test/extractor-tests/generated/ParenExpr/ParenExpr.ql 01cce66baeb671e6557ed1f9ff19db8f0852840fb15aea510a9625b1fef5953e 12aec5a7489c52798b370faed18eb1d2d9346e31c7cc8f08a595278f835332a8 -test/extractor-tests/generated/ParenPat/ParenPat.ql 57ffaca029076fbf4c6f179ffdf9f45c40bac1116c5af5458d5a82ae4361565b a287cf79c646a6639a1ecfe2c9a227003e59255ddf2a1c9b46a1403f6931fa88 -test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql d09151c7071e03375e3b81b9adb050ed6c7bea8c1d688f4a66834400dcc739e2 2f297fcff16d8bbe383233d3eea969bb5c5af3a4e60880c5b113c7628fe0bf02 -test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql c6965c802eea155b03cf7879353beaadce3ac3eaed71a44a9045b9dbf91efb56 674dcbcee9d3851b21da0dfebdeeadfd304305629aa511b562ac7fe0b0eca419 -test/extractor-tests/generated/Path/Path.ql be4fca0eb7b974eea321d86e076896af4cabedf7aa88ba8cb7e628665abf8fa6 8f94c5685ed975c8a455c3096d3e03b2bb1494687d42b7eca966489d994d3ddf -test/extractor-tests/generated/Path/PathExpr.ql 7955350830d15101f583cf18ac7612c64cdf1032e0ca65d73c23d26c27e75229 47ea59e1c1384fd5d06ddc4ea52cc79cbc5f43d3c927ed41faf9bbe8371a165b -test/extractor-tests/generated/Path/PathPat.ql c61f8e24ef2025f59137853705188a7854564768045a1936dac6a724d34b3a5b 08f5268a2179146a757edc2a6908d97716c2fd30722cbdf2e065f127fb94b431 -test/extractor-tests/generated/Path/PathSegment.ql 33d39c172dc6635b39295e5a57db9b7a8fae1b344f8ed1714cce52259c10024f 0ffadac8dff4521cbf72fbcbe99cc2cd74b7e2e5ab84e3a498edffe4df8b70d7 -test/extractor-tests/generated/Path/PathTypeRepr.ql 865aa4993abeeff57f8b4bac8543d10074c4e9090ab1d20671f2cd320cf82939 b5e6cf368abeefdfc1c455000fb2315de1bc6f0c2e263900ee532447978688ba -test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 98a73d8db6ec8f658eca2f9fd6878487c7401ffb9ea5ab7af8183edf1ae89907 caf3f89fc01830d50e01b9884dd113d325e689ce5bed88cbb7ded50d6ef7fc3c -test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql e95c20198e875405d057eb66091ae7554d88fa182f4e65c117348b7156294f14 4d12531b4521e82d85b57f480dd9302cb3d0b6cda7ecca4a69b4b17939eec1bc -test/extractor-tests/generated/RangeExpr/RangeExpr.ql 7677a75919ff26462e19253dba20bd18d6bd6e57fccd617c8b1365da22ecf782 59d2ad612b96b06551876f5562a233bd4c57de25a574d04f4d9ea3eddbb5e080 -test/extractor-tests/generated/RangePat/RangePat.ql 8b1919d87bb0b3a0cac4c3dd16026b29b1f2cc5f6ca70f51eeedfc578bd13618 948efa05eb63a6e3a3717c09314c090120f9607d637bdedd5936b14cdbcd028a -test/extractor-tests/generated/RefExpr/RefExpr.ql 971d00561693ee6c4bfed4931dd3ff9f8eda95ad7000868f6935bb95ffc897db fabfa54dce3da4a4b6cf0d86c8d01d55ca164053a4e57d75232614987f9d6542 -test/extractor-tests/generated/RefPat/RefPat.ql c39727f608a3d5376d78f6972b2e2040665fe6a87d962ea9dd2fefb049232ca4 5efe77286c990abc730b136e1bb26b3e61663406b5cc386e5db0ff6852bf6326 -test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql 28122f3106eb76b6b663c1b50469ef557b40bc19261b3e54f17de69de31c60a1 d79479e038a916d0047b34cb69405c413d2e998f92dcf82568b1a781f29e643d -test/extractor-tests/generated/Rename/Rename.ql a7a23af1ce58a9b259846a03e29f53bc36bf0665e39ecf2c979cef45ba91083e 8e135b8c863a0a7f78f91db04cd6627dda16472065fe32732208c1f2681d800b -test/extractor-tests/generated/RestPat/RestPat.ql 461e45119253061f1bb81b52fe710d363c9506a9a86ed1aa25e0f03dbd2f50f1 a91b8b97cfc24ffd0d2750fa3f06f9597ceb181cf64628aea34750d4345a36d5 -test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql 4e99e977ccb0ce043b7cd6dae57f2a03e79f3a4353dce2ef5cb25d7b65ec676d ee4777400d40d0376353bc41182f31aa5e514cf586494f37fda9a287312fddb2 -test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql 163c5b049d38254cfb7678073abf672e980ea6340423df0c3d26f84236b7b8a1 49dce8d5f5e476af46fc0102a86625c8a4306d6c6e0b95e7ad70d4c5376b1d74 +test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql 851d84073f4a14cef24ce945a099bc43b22381fc21672ba9ba424623d66d9e0e b3ca3309da0054501dc49f83b9e1b51c155966a14504521565ea980cf1600f55 +test/extractor-tests/generated/OrPat/OrPat.ql 8742e1708da0bcc172c8cc637082672c92a136aa50bb2f0ef928387337aefa3e 1901c223502e8cc046c233a10d923226373bad0837264e2b837fd549929020e3 +test/extractor-tests/generated/Param/Param.ql de90709cbd61e1852c857ffb6cedd17818464c93bb7bdc92c900ee04f4d2a27c a105ee30716345987989d48c4fa6194c34741fc48528515aeca673662b5259cb +test/extractor-tests/generated/ParamList/ParamList.ql 015cfeec048fc89698d75a04492a0e39303b1264f80e2b6977d178aba18a745d 349455ea6fe026a482bf9d63e9581ed2f368de3331bd2f0b9591ec20ee2a5f21 +test/extractor-tests/generated/ParenExpr/ParenExpr.ql 5ac9654a149f32638a663894db769152ce5a5abff7051e4d865bf0ac2485759a 3fa0afc9522c241d7530cc6d1e52b662d920f0459684bec82fcfda30d2ec9871 +test/extractor-tests/generated/ParenPat/ParenPat.ql 50f99c6a7e5e2f76dc5bbc10a6b2db5f5f40b85e80a992aa616e424744a7606d 5ae681b09e7b8793d2d8fa36e9e7d9b6c32fc94d6c26d43425407d05d351fcb3 +test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql 86a45a9f9696a55562a7125f08297bcd50b368225a13cd31b6e9eb4071d04e13 53c0b8c4f453a748c9534220960c6ce8c52bd7501cf1d1f74e3928fc6512667c +test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql 6d0e3f7cbcc835f2a5784ccb09b0d65c2bb063c1904edded2e7fc8c9fb57c4fa e41c898b8b0d61078e0d76c6e2e141251dca71f79ad5fa119c012220c54cc409 +test/extractor-tests/generated/Path/Path.ql 0f6b63c723da7f140411c8e9a4bb9fbe043a997a1748a4a491add4bd6e81fd6e 5081db5bd590b72780c3c8032532e65b5d453c327c8771da6b87c10e30071523 +test/extractor-tests/generated/Path/PathExpr.ql 2b032a00d8f5570b34f44bdb4209f199f821e093011472b5c686918a063442a5 9f10b1e38863da09365fc45f749578dde74bbb64d35972fa34b83e6814f0004a +test/extractor-tests/generated/Path/PathPat.ql 8d8053588dba1f35fff3bb89eb66f1534f637cf3b56338a6f3c19d748db7e1ca d7405ca5bf3bfa6960426964be3ea32562e1367c74b1f438c0827573eeaf773a +test/extractor-tests/generated/Path/PathSegment.ql 87774cc2e9d1be7aaf8748d418b151d7ec03fb20fda9430ebabd86ddaebf5538 699545d8eb2d6325bcd2c253d56339bd71170b34e80efe5155189fbbdde9fbbc +test/extractor-tests/generated/Path/PathTypeRepr.ql 32023340cb9aa1fbf52a1a3e330c6f3206e1c64c9dce2f795d9e434aa5a1533b f451de0d4941ab79014d2883b46291f9f05f79d479fcdcab387020ab3ed68703 +test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql 63e9dbae0d0b46d5e9d60c313e408c4c7ee1a93c5a26fe4c01a632911de961d0 09fcc28bb22553356aebf9ea93811703e5404b88022be8dab61ac81d3b187b75 +test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql d9289bfe1e72d9560b3878e4557f8cfda578ef7bce67eb29d7320921c0ba46a5 f3ea108aa25635bffa7673bb66b2581ce246d3aae86edf878c6f1abca2493c16 +test/extractor-tests/generated/RangeExpr/RangeExpr.ql c9776706d933606d1463bb08ed76457ac03a9558f6dac0218ef2012bc5e8e48f 77cafee86abc2680e1f9c925fbe664c05ba1b9a2533b1873242ef01dde1ce308 +test/extractor-tests/generated/RangePat/RangePat.ql 72b6a5e250fcec844f96623f265762462966775326ad0ad4df03203ff17f0066 04c375e98d6c7d336ebf7dee522f0fc716b7ec8141752534ed083c5d2550c679 +test/extractor-tests/generated/RefExpr/RefExpr.ql 4359b9e10727fc505213a896c4c8761258f355b572e11675a5081d811affb4ea 0c46fcbd866334d168e1c4c481b4ad419df048e4ba74488875b2799d316291a7 +test/extractor-tests/generated/RefPat/RefPat.ql c83d5e79a7d5977f658d64e8caea471b948400bcb90a3610283bdb5e9757b99e 26fa8a337e242ce660eb0dc25709148b837fff3229b259bfcd2987261c58c38b +test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql c545689e4cee2035d79fdc3d9b720e7231232f57f35d16848b20d4659650a8c0 f248b342115cb0691f3ebe38ec9a65c8a36440cdf2f28b3ca7faed779a6d4164 +test/extractor-tests/generated/Rename/Rename.ql b65855515219a5fc1889f619d76e3fbb8fbe6a631f931e313608964640f68abe 7da9373ceb58054189036fcf5a262d9cb6897ea9d1008c963f8a18c34b99a60b +test/extractor-tests/generated/RestPat/RestPat.ql 59fbb7dc4bbad60a0a7ec91d8997ccf8a7036d4bb20c88332791906d88672c1f b104f06c2d350a9d703abdb28619672618d0082a0fbe7bcc67fa8df5526b266d +test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql a6a8ad01a54f8f4384d3e1ab6352cca1e55c9041673705658b9feec3e3a1d3b4 d9ba5a13087e7731019d947219f20af547664965b2b304bd23155994ea1aa397 +test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql b44ca36c30cd584c9f976e625a6bc09242792016d5e78057f9ec4174f3a0341f f61dcce549d282a9b7f0bbdcb612909799156231f22f2b5824ec6083630013ec test/extractor-tests/generated/ReturnTypeSyntax/ReturnTypeSyntax.ql b08a4d4ad63ea6e62f8b9646fd838cac9d122a93f5716ee91ff7c62fa987a1d0 264d485a301f4220eaa580ae90964b05c1a2b19b898698e7cdcc86b624ba3aba -test/extractor-tests/generated/SelfParam/SelfParam.ql c1d46b7a3786f0ddb20dcc1516f9dda890b19e0f2a938487f7fb025ebd821652 6a5382306b6a5ddf4617f10d5f9c58918719017e3f9f8a09b96e079e229b0263 -test/extractor-tests/generated/SlicePat/SlicePat.ql 5cebafa861e59823969023c0261c89756b164ff4b66d6d0b27e81a2e32791ba7 f7860597662cfd764ca858ced12d57a00efa0fdd8c8165343923388accae8f52 -test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql e247427510d6db23508bc88ce67a9ef653437b283a7a3cbc66bddd66ea256ac9 76142b987624281dbda5b6c661f1f0d8235d5c5b85d1959d0e8ff37f3bd78abb -test/extractor-tests/generated/SourceFile/SourceFile.ql 008e056aa3b5767db02f473e085997ee1f685cf61489a3f5ee94acbd0fddb05e 6a239712c44a6d04d737d0aac3a4c5e057db580e1b98fc2d44c879fa3ea8d3b0 -test/extractor-tests/generated/Static/Static.ql e5fee6156a5940a007a5f7103c8a3be0a42662384c4899f2824efb3471c187cc 53f51bcc61c4c71608b9518c5953fb0740ff91a1bd45ef2a1f24a354639efbdc -test/extractor-tests/generated/StmtList/StmtList.ql 3837f40540137cbed13e5a655c07a3030c1d1e12e1e7d461551f19d11dc600e7 332b132fae5b35f047a3221e6481e414a25a714d4c163c1940335d2700560e06 -test/extractor-tests/generated/Struct/Struct.ql 88065f0b52096fb90af497f7e9b340e7d3974d6ca9af9715a4706446f9a6c877 600484b716d5fb1dbe953cee92c1aeeeb7028ebea7e6c08dd84be9756b0769a2 -test/extractor-tests/generated/StructExpr/StructExpr.ql 219563f630469270f162cbab43091300e2441768d77c402c9ad135320c5059a0 ed50862bc7ac9ec2a76a75bc4a318d845a52f5aac87256d56bec8078b3c6cf88 -test/extractor-tests/generated/StructExprField/StructExprField.ql bd0a520d229544a186f03b9eff803fb1358f8e661d24997f3025e40a9a0680d4 d3073dbc5a65fcbf094ef6a9b803a6bcf68c1e5faa8bd8962924a832937ad746 -test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 95559d69ef1a343c6329da7eb004b4ee6e7cce1553ba9899da3f827f3d69885a f9dbcc7dce8371e23a827f91dd07f7da97bdda19107214c1a1e1cd39e4378e31 -test/extractor-tests/generated/StructField/StructField.ql 2ea449886dea1b6528001d318e25bbbe31804db9c15da505cda3f64bc83f0b94 10e0bb0a1d64a385cb9dd588b732684265ba66c3dbe80e7dc790aaff7d49bbea -test/extractor-tests/generated/StructFieldList/StructFieldList.ql fdeaed2216d64834c57b61c05ad45a2ebf1510561f3c68aac66988cc7c72c2bb 7567265ef5b878c269dcd311b7e23c1cb0946ee62c42b8bb47123ce33131cb01 -test/extractor-tests/generated/StructPat/StructPat.ql 130c5fbd23bd0fdf3ee10d94fc03572e40884e9c3c6242d3c43f44dc7edef0b3 4ee4eb291464273b0d17cc49ae2bb8aaa7ffe85bf5109a44848d92031cc7dc79 -test/extractor-tests/generated/StructPatField/StructPatField.ql 71707a256d378e9c4646bb3f69c04588f790cd1056ac54955f23356e516571c7 b78d2a04ef5749e2b0bf2d2190cbf467a2d6bb4af0b467195a2dc936e2250cec -test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql d458c2bd51dbea2ea8df9c9ec237edc49a7dd006e3800702dbbcc738dbbbd9be f1c061c750a42fcf7877300f27a935e608e3208deaeb79f55ec13e2822037690 +test/extractor-tests/generated/SelfParam/SelfParam.ql 7e57dd845ddc9142cce250c7e67e36044f2cc27b618a3b8876db7a6ac336d3e3 e546b5a690770e57bcfb07a662430f62128a3fed4eb46bd17c60c9e4595154ba +test/extractor-tests/generated/SlicePat/SlicePat.ql ec056b803471d22c8575313e0caca89a3d527d228719375e87cc6061c3da4ffe fb0af765ce9d04805cdd445e2222d6f956c6789285705bb1079e540935ae6cc5 +test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql a009f2ba47f3b082db274b6bd7068d65c0205bd11b13d2c202e43a6b9b48e76b a3092ea5f2b7113235aec5136800205265f1607c5cfac9f5a3552bed5d98cdf2 +test/extractor-tests/generated/SourceFile/SourceFile.ql 19ae5570a88b9e2d82db66685a31b01cc8e0c86c622a4bfaabe8c5b397b27eea 60e2ba5eb82518d6408254fb4ec01277b6c6c0e4316d4f3cdc809da9c32c4a57 +test/extractor-tests/generated/Static/Static.ql 103276adfe23b609b5965439d024007d4ed6831562452f880ee89300aab3e3a6 0418668d83b2e570bddb6edbf4eb7927f4fa6933ccda86c0354463bb839f724f +test/extractor-tests/generated/StmtList/StmtList.ql 4c6b9d5d8fd7535f97d81b968d4f67fc50e10c5d0f980e7c2704bbf5cd07481e ad972adb8d9a7892e6f8a12d96649340441f947afc99e633ea438c4d5c795ce4 +test/extractor-tests/generated/Struct/Struct.ql 197de8de01ede52110d827c4a673fcedc9175b1245b736a211b8724b4345902b fdf5d848a3b5dde164f1a540d7212fd3a3f6b0228c4645ddca773190830e2eb4 +test/extractor-tests/generated/StructExpr/StructExpr.ql 1e577f7cc83aa86fc82e4ac467bfb8a0c239408d4217f92a0a689957ea4fe6fe 35568a6cb7f0aaa3026e11a3b0e750eb5e93d4c0b6f737171e27c84f5dc967ac +test/extractor-tests/generated/StructExprField/StructExprField.ql b65375963aa24f0d1dd4c10784e32ab8c337ad431462ea1d081a0e456fbb1362 7f5a49e8df03ed0890b51c2e941d636fbbf70445a53d3af2c0f34a04f26bc6ef +test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql 01dc3ef66d79836a3d372464f05454015648ab093f9547c5d9c5d55271acb718 83625301c097fa38d4e6021ea28b8adc6338076c8c2aa88a86a22aac412839f6 +test/extractor-tests/generated/StructField/StructField.ql dbdb627202975a0ca07ed441449ecc95d9d0764084a49a18e7849164b2e65ce2 8e7f32f28d15104575eaa985e892c162ec775adf3481c227ef618b5668168de7 +test/extractor-tests/generated/StructFieldList/StructFieldList.ql 292170b20f3a55c0cd6a8d78ce99474ca68daf6fb380cffe00b2bd7074e1b73a 404bab780f290ae04d1d71d3c6d4e0092bb3d8c55e956168d2a445cbd6d1f06d +test/extractor-tests/generated/StructPat/StructPat.ql 73bd755ffb8d5ff3c77d7570c6d50eab7b51d8d4a44b638cf5904c37065f496e 9589dc8d8abd80d9f48d445af3dbdbd906a9c19dc75582688bf9c3abaa16861e +test/extractor-tests/generated/StructPatField/StructPatField.ql 92cb6a4b5234359c02d66085b10d41f37b77370491ed478ad6d4d9b12b943ecf 14bc2079763b53bc6ab11356f3bb21820ae9e4dd1b2a42a78665c32181c4ef92 +test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql a3ba3e99d3c87d5e0ae0ad82cbea3600ac1745e9364d54d8d51224b51a5a09a5 5942ed2722c006bae99de9174249110bfc79594c5ef9a6dfc098ae2be269b8f3 test/extractor-tests/generated/TokenTree/TokenTree.ql 55592f43a6fe99045d0b0b1e2323211d3a3fd64a8c7d2b083f2518d4c3e2e4b0 8eeef2060c80b0918857ba9b3a8543a4b866ca04be3d5ca18aae8a26cbdb836e -test/extractor-tests/generated/Trait/AssocItemList.ql 46a0cf0c5805dbd7f6f4618e4340fcc73c1b46c925446d2def373791fbc42fad 246d726e6d84d804f1bb6dac464352f78cc3f8c3f3700335a3557436b19cdfd7 -test/extractor-tests/generated/Trait/Trait.ql add2a891978f85b28274fe8ba2e2968a146b0775a16d3e1afa910b001f173efe 10bd9f99e90bac1f78318be5be50ef896e8ec6ef4fcdb4fdb9b963e3c64fc849 -test/extractor-tests/generated/TraitAlias/TraitAlias.ql 74853b3529a99f19bd3e9738052582f684459f9c6ca8d0835696eeb6a8575001 bcdb41a27aa1a4d25c006504ba1a52705233d64483c249d2ff66f74271f1dfe9 -test/extractor-tests/generated/TryExpr/TryExpr.ql 117b4d1b0c2b75f02a46c595efbbdc1f6f12914882c4d7e7a10c93ee6d777e24 381556ac2dfe36e6625b5f3d688ac89540efb09974aa7260437867108df084d7 -test/extractor-tests/generated/TupleExpr/TupleExpr.ql c5a18a976c1efbc8d0b0a187e0412d92c76e7dbbb568ea69da10d168a2148711 ed927c16e72b5320aa7cda120bfc2213874db4b7c5b32ea8afcd53361b7550e0 -test/extractor-tests/generated/TupleField/TupleField.ql 611cd986b821b25e7e537d61251904807c33b3635fd0c422b09ee70fc6cee665 89a9c0ba49d80bc0d97eb413d5e714d527dcddc8be821396f63c9d5696522fa3 -test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql 2d3f8a1338f1d01377d629b5a7eac29cfdd0cafb16d81e1f1d140a6455a6bcf7 f6c6accbe702a9a27aa87ee4d35a35e64bbf4f4a7498e412a96c49788196c044 -test/extractor-tests/generated/TuplePat/TuplePat.ql f6ba04e5cd2b02b46d09a23c99ef2f161616aab77bb1afbc2ea0a3166b4ab42e 05892d8c5f731a4abe877bbaa85e050d8df2a1044db026ebd761ed2b72179e4e -test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql 14efc97b6c7b657fda082a88367da78eb6222f625cd81f5dae63cd919687fb80 179686ba04d01e13b10bffa203a5d08ef4b764897c254b8a91d84af015d23e9d -test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 042d2bdcfd80894ff1dde1a1d267e6518ed8f860abc51304653f15526f41f222 e2cfe1d40fdde8018278dbbcfedd39f368d203a550ebda6d4efab16082d8b20b -test/extractor-tests/generated/TypeAlias/TypeAlias.ql ef7b8b47bf61330618e4bdef60b12ef8b1c4aa22f7dd06018b784192b8098b69 2130448d770d6f4e8a69db1481fcb778a5ddeb62572ee63ecdc15e69d8207d64 -test/extractor-tests/generated/TypeArg/TypeArg.ql f461f3151f37bdcf1da2212bfaec703573c387d82c7c71113964a526a93d9f5b 4eb7e89236d07ca6ebaa05296ccd76b9bc57bc3098f2f67c099975db20a11b5a -test/extractor-tests/generated/TypeBound/TypeBound.ql 570ba4456e76523ecdb8139713a7a63d1f90829c105c211c828dfe302898310a 00acce8eacd21bc0be57bb65fc7b0dd267f5678e1db389430023ecff327af7bc -test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql e3c13bbd169c3f8e4d6d0243bc1b2bb474b05b8e86c6eaad7eb842b51dd0aec5 e45984b4bdbc9f05614ec345c5a4626750ef8ae469a21a8486350d285f5af219 -test/extractor-tests/generated/TypeParam/TypeParam.ql 795e8b9d80e43a55418443981278b9f62abdc342795de7afa0e1956cd59799ba e83faaa1c48d9b8c89ac31fa47754f9ff147aec3d397f13b1d44dff281761a8f -test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql fd8e3f02dbcb660d76a8f567896026fc05d34a7377ccbff194b419c43f93071f 020ff884ed0ab6b08806b604450aad662b2214c131e8422495eaa591b7731c38 -test/extractor-tests/generated/Union/Union.ql bcaee20c97bd89ed10104df86da104d1f09538cb8b0208ce41dfaf7acada6360 ace13464c76107885d499463d96dc12b762aec08b46e454ba87871875a6d9067 -test/extractor-tests/generated/Use/Use.ql ed960f411be6d98bfed41d16640af9a070b06e2234f108da16b31720f936ca1b 2ec31c90f95c7b6771eabea338147329fc06bc0b876507b1a1589fcb03f3c526 -test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 2573dc28f705a1016724605d7860bbca4d389d33ffdb188b40be2d03d3345826 3898939cdcd333b25bd7f2fd8014519bde7fc9805af0cafb5ddbec612d8ceee9 -test/extractor-tests/generated/UseTree/UseTree.ql 6a7e7ab1e52afc0644d336f21d6bdfeb14cc43f04577d146cf14e6057134f08f 14b822ac2ff2fdc363b6ba4c8f8211edfb480a628c5c4d9e71c4700f5ff36c91 -test/extractor-tests/generated/UseTreeList/UseTreeList.ql 26c99ec196cd97cdc32dc770dc3aedc89622eca98bd984590f109d5aa7de21bf 8d114ced9062417f7cea485addc9f14658ac157514ec6b06e26c94cc7f76891c -test/extractor-tests/generated/Variant/Variant.ql 48768edd1cc9006288847e3efcbfd5361fe64ec9ff2db72fa65d4787558a9a6a ca35d4aaa6a5722c30e10f5a0cd16e0f5b7dfddfa983badf500f7b285278959f -test/extractor-tests/generated/VariantList/VariantList.ql 102856a74ef5409a2fc2d079a8d9c7dad8622aa017432e510709421527a17183 d0fd9f19c02814a8beb41cea7566854b90fc2cf0b679f743272bb3a380411457 -test/extractor-tests/generated/Visibility/Visibility.ql 0db452f1bf77c271b001745958ec226103bf6bc99f81bb0722d16e950644e186 7752fcc2f54cf7d19ec2ecac674977aff35e5912dd565bbe9a15f633153d0f8a -test/extractor-tests/generated/WhereClause/WhereClause.ql 6ae112390006c6af5b8296d95b528b5d48d8156183db4e1a5e24b3ffc35431ca 6d268bf500316b22ecbfe93eb126fc2aae75070e1c3ce2e03526b0c4d1b6251c -test/extractor-tests/generated/WherePred/WherePred.ql c74328a8e99d97c9dd01a135de35caef5a2f5b5c7cd3d08ed8e2db84b47e43cd a409013c55b46acefb0a43d7aaea0b6526df40896d470a523ac1e5c318d04745 -test/extractor-tests/generated/WhileExpr/WhileExpr.ql 70989278938c6e541dabb431a80cea8f4368adb1e891db1fa6c98569cbd78407 f28ac4090143a7ffc1d52ee8bd6c6809b4f09d718ea26d1637c22802f5c1735b +test/extractor-tests/generated/Trait/AssocItemList.ql 065c4903992500423d796800e7dc9a5835a07cbada595108f3af6efa72517782 aa797bf5ddefb800d5ca7f49c19c5124b1007e1658129b27c8c3de34427c7f08 +test/extractor-tests/generated/Trait/Trait.ql ba40c2de2e8f2225ea7876c36b2510079838c0f4a99232bf0f3a3ab56b7705c4 c34364d0425f597a645fbb8b6a3874588cc652044909f1db73b09f2b6deae072 +test/extractor-tests/generated/TraitAlias/TraitAlias.ql 434558e26e1cdc4054536dd7a3e5e636509cd0f8576ba1612224a9873882a383 c904109afa94cffeacd6749dd4ad8b9d2e2cb3b228c275898d88625615dbedfc +test/extractor-tests/generated/TryExpr/TryExpr.ql 4e3c224a7d5fb8f01654c7d3c79414daa575897cfa6f351fcd5b5832f53a151f d961a497c304c1c5aa1d94e04aed2bf17a2c422e315f05986e1a9027e69dbd2a +test/extractor-tests/generated/TupleExpr/TupleExpr.ql 4011d94438903e96fa321285558f5791bee7e1d1fb26be0381586511cf439d1b c6bc8d08a8d5d98d7a52b72d5c597b63754fe12cec653c520833e4b71a9dcea4 +test/extractor-tests/generated/TupleField/TupleField.ql ed681b7fee5e68d24db4999389727b2589e5af793d3c2ddc8b1e245713c0e1f8 4f867b29adf91b4bfa5052e16d392c16bf260e858aad11b60c42f1eddb476e61 +test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql 3c3fcef21231550bbbf6804314b94d44cc18d445987c23cb6f2c88015570cc4a 8958e6748296bc6d0ad469e52852c38445fe462a8599a2e71867aa5d7066595e +test/extractor-tests/generated/TuplePat/TuplePat.ql 80609f1c525e90e13f34d55a81d47a83a03e064241f8d33232e2a79eaeea5159 d289b19dae4cbae0180cc58bb946f41646bb9dc008f5ce8a0e12eaddbc7e63e9 +test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql d00b185013bb4e5f878a5ec261ab2cfbf1fe2f67d1ad2e05d062629211f677ec 24254631a28c24ca78b4fa1b89c53b0b002cb43fe585e274155fcca0c481056c +test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql 2f1503734d272cd0616e5885cd344659cbd0ae7309a375c8351f57f2b86c3302 276a4fe91b8dc64cdca4467343e2bb2e240c66ec1e4e11bf8cba73819c6532cc +test/extractor-tests/generated/TypeAlias/TypeAlias.ql 2b120c7fe640b233540f6982153fddf50ddc089b8284dca321b4c48eecf93dfd 6d40a0d8c927dd499fd92fd95638c50eeca8f956aa1706c17913dbf83f0f500c +test/extractor-tests/generated/TypeArg/TypeArg.ql e1ca286c03bd2d44054f5dd75aac250382037f243046c49ec752ad8d65e4c0ba f316d5fa84a721427c0aadf6bfa0ed4cfd86e4d318cfb0fe82efc52e65c4733b +test/extractor-tests/generated/TypeBound/TypeBound.ql 4f5a2a49075c01c982988e66759f61c5285343d78cda94e228e17593d16fee6e 7aae320e881d6ea969e31b1e8fe586feb07b1db43c65da684cbac66157354851 +test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql 6827529eca62f5e7be87538af6231099f5932f39d8694f7a76369273b93f28ea 539dac4ccda7e51b7ae1a9e05d8a56a98176d9de25d5ed4347ebe2fbea8adeb1 +test/extractor-tests/generated/TypeParam/TypeParam.ql c5f8f62f2877c719c3cf069f9d0ca83cebc14f7611c6c2dce86c85114ea2635c 751c630986f35a8d0d32fbeb61ca6ff801c96cd1829dbccc874fbf5f5158e98d +test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql a7b7a93104fff28515154cf8e79045d3eea2494b5c46f1caf36639c53b1c64a7 070ee2e1664e3291646ea56681b5c93331f94dcc519deb28622beca3e26e16f3 +test/extractor-tests/generated/Union/Union.ql ef31f8b10ced5ed3a441f8ad0640e2fb46e566c859856e84f5a7fd6c85424b2c 1066561577ab19bf028ea29622750adc17de5b4d5dd0a8f77a8a50c8a15062b6 +test/extractor-tests/generated/Use/Use.ql a12b9867cc71a681cd4602c4045e75288a7cca502d48e20ccf17e155be130b3b 2b9dcac18670b062461193a6b40fcf569f19605b14daff82239fb39fd7fa3408 +test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql 46ff2cf0fc8b561b21f8dff3230550f2feafbe52a7ea8b28bf183abef94ff241 92646f3bd15a8cf4c23ee9de4d857ac5c147e570ef0eb223423a109b4b79aedf +test/extractor-tests/generated/UseTree/UseTree.ql 3c2bc924b54b9af5c95784023d4098924571ba464c5982124acea712c3ce0e93 8d9f963b61a9a8a83efd93438ce8b43d4aa763493338ad9afd2a3dc7a440892d +test/extractor-tests/generated/UseTreeList/UseTreeList.ql faff7bfc060d5b0a922f38b37bf586596566186f704c9921651785580e86d684 81e5b90edeef0d3883547844a030e72b555d714de1ed8dded1c22a3772b4449a +test/extractor-tests/generated/Variant/Variant.ql 9405704e9192cac4838dcba8625261d5c1f839bb8c26dac44c2d517d172a06da 7236de83eb542cb4024e07d2cb5a899c851116a3a66b3896270ecf663439c6fe +test/extractor-tests/generated/VariantList/VariantList.ql 1c1d82ce3ecfa7daaae1920662510e81892ed899a3c2f785e2ff3670245a03cd 29d4c5ab2b737a92c7525789e10a4aa9848f1a327e34f4e9543018021106b303 +test/extractor-tests/generated/Visibility/Visibility.ql 725d47d7444332133df603f9b06592dc40b0f83bf5e21ad4781c5658e001a3aa 2d65a30702a8bb5bc91caf6ae2d0e4c769b3eeb0d72ffbd9cdb81048be4061ad +test/extractor-tests/generated/WhereClause/WhereClause.ql a6f0e69ffa6b997cac04d4da442eb8bde517a576840c953abcc40863b9099ba1 7ce888fffc3038d5b18f8c94d3b045815cd45500e1bb3849c05fc874edbeb695 +test/extractor-tests/generated/WherePred/WherePred.ql 504d00a40e418542c3e0ff30d43c4d2d0e7218b2a31fcf32c9310d705d97b9fe 61c53dde539a9e1e3d6bf13ca1d0dab8af6ea6b54ab698a0a5a5f49bf627934b +test/extractor-tests/generated/WhileExpr/WhileExpr.ql dcfe1ed375514a7b7513272767ed195cdbf339b56e00e62d207ca1eee080f164 f067283510655f0cf810cae834ac29ad2c6007ba312d027ebcdf695a23ec33e4 test/extractor-tests/generated/WildcardPat/WildcardPat.ql d36f52a1d00d338b43894b6f8e198ad0c409542f436e3e57d527205c3dfee38c 4e1321e714cedb606e0d84f10ed37c72da61b3a1616754b967f721ff0bc0e4ee -test/extractor-tests/generated/YeetExpr/YeetExpr.ql 59c3aba09061d43a5af7ff06319b5c55b389fdbe1f823331e9dec77790e9be56 64f033fb000762ab818f2b448449ccb7f26e9ec62d55c5a76029b62c1baad90d -test/extractor-tests/generated/YieldExpr/YieldExpr.ql f2aa61b98ed1251ee89da61a6f60e2b93094ec393c98d029614307ab37909ea9 fd3ec990dc1d7d47253db528c7eaf01131b0bb48a6bd1efba4937de58de7c4ae +test/extractor-tests/generated/YeetExpr/YeetExpr.ql 5c552b490ccf5b123f7a2fa3e73d03d008e4df5928ffa0bd503dc6bd7736462c 09a4f413ae045051abe392f29949d6feab1a808d666c6b8dac0901f84a8a4740 +test/extractor-tests/generated/YieldExpr/YieldExpr.ql 1d948eaa69ccffb12a2f832b84918d36becfd356d1c6d7cfa9315df03e77ca95 c31281830aee6866b0d4757a427183df4d2f06245345db61f69e9bfa5cd09a63 diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi.expected b/rust/ql/test/extractor-tests/generated/Abi/Abi.expected index 9a92f0924dd..158233ee757 100644 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi.expected +++ b/rust/ql/test/extractor-tests/generated/Abi/Abi.expected @@ -1,4 +1,4 @@ instances -| gen_abi.rs:7:5:7:14 | Abi | hasAbiString: | yes | +| gen_abi.rs:7:5:7:14 | Abi | getAbiString | gen_abi.rs:7:5:7:14 | Abi | "C" | diff --git a/rust/ql/test/extractor-tests/generated/Abi/Abi.ql b/rust/ql/test/extractor-tests/generated/Abi/Abi.ql index 5b39b23704b..bbf211911a4 100644 --- a/rust/ql/test/extractor-tests/generated/Abi/Abi.ql +++ b/rust/ql/test/extractor-tests/generated/Abi/Abi.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Abi x, string hasAbiString__label, string hasAbiString) { - toBeTested(x) and - not x.isUnknown() and - hasAbiString__label = "hasAbiString:" and - if x.hasAbiString() then hasAbiString = "yes" else hasAbiString = "no" -} +query predicate instances(Abi x) { toBeTested(x) and not x.isUnknown() } query predicate getAbiString(Abi x, string getAbiString) { toBeTested(x) and not x.isUnknown() and getAbiString = x.getAbiString() diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected index 8b04d7ad717..cf6f3a3a058 100644 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected +++ b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.expected @@ -1,5 +1,5 @@ instances -| gen_arg_list.rs:7:8:7:16 | ArgList | getNumberOfArgs: | 3 | +| gen_arg_list.rs:7:8:7:16 | ArgList | getArg | gen_arg_list.rs:7:8:7:16 | ArgList | 0 | gen_arg_list.rs:7:9:7:9 | 1 | | gen_arg_list.rs:7:8:7:16 | ArgList | 1 | gen_arg_list.rs:7:12:7:12 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql index 82b819a3305..91bbcef10e6 100644 --- a/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql +++ b/rust/ql/test/extractor-tests/generated/ArgList/ArgList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(ArgList x, string getNumberOfArgs__label, int getNumberOfArgs) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfArgs__label = "getNumberOfArgs:" and - getNumberOfArgs = x.getNumberOfArgs() -} +query predicate instances(ArgList x) { toBeTested(x) and not x.isUnknown() } query predicate getArg(ArgList x, int index, Expr getArg) { toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected index 28e164ab0d9..fbe635d579d 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.expected @@ -1,5 +1,5 @@ instances -| gen_array_list_expr.rs:5:5:5:13 | [...] | getNumberOfExprs: | 3 | getNumberOfAttrs: | 0 | +| gen_array_list_expr.rs:5:5:5:13 | [...] | getExpr | gen_array_list_expr.rs:5:5:5:13 | [...] | 0 | gen_array_list_expr.rs:5:6:5:6 | 1 | | gen_array_list_expr.rs:5:5:5:13 | [...] | 1 | gen_array_list_expr.rs:5:9:5:9 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql index 30e5dd7b631..36f7bb41db9 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayListExpr/ArrayListExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ArrayListExpr x, string getNumberOfExprs__label, int getNumberOfExprs, - string getNumberOfAttrs__label, int getNumberOfAttrs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfExprs__label = "getNumberOfExprs:" and - getNumberOfExprs = x.getNumberOfExprs() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(ArrayListExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getExpr(ArrayListExpr x, int index, Expr getExpr) { toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr(index) diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected index bf13b122edc..39bb2b685be 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.expected @@ -1,5 +1,5 @@ instances -| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getNumberOfExprs: | 2 | getNumberOfAttrs: | 0 | getRepeatOperand: | gen_array_repeat_expr.rs:5:6:5:6 | 1 | getRepeatLength: | gen_array_repeat_expr.rs:5:9:5:10 | 10 | +| gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | getRepeatOperand: | gen_array_repeat_expr.rs:5:6:5:6 | 1 | getRepeatLength: | gen_array_repeat_expr.rs:5:9:5:10 | 10 | getExpr | gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 0 | gen_array_repeat_expr.rs:5:6:5:6 | 1 | | gen_array_repeat_expr.rs:5:5:5:11 | [1; 10] | 1 | gen_array_repeat_expr.rs:5:9:5:10 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql index ab822b84c41..7f337fc87b5 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayRepeatExpr/ArrayRepeatExpr.ql @@ -3,16 +3,11 @@ import codeql.rust.elements import TestUtils query predicate instances( - ArrayRepeatExpr x, string getNumberOfExprs__label, int getNumberOfExprs, - string getNumberOfAttrs__label, int getNumberOfAttrs, string getRepeatOperand__label, - Expr getRepeatOperand, string getRepeatLength__label, Expr getRepeatLength + ArrayRepeatExpr x, string getRepeatOperand__label, Expr getRepeatOperand, + string getRepeatLength__label, Expr getRepeatLength ) { toBeTested(x) and not x.isUnknown() and - getNumberOfExprs__label = "getNumberOfExprs:" and - getNumberOfExprs = x.getNumberOfExprs() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and getRepeatOperand__label = "getRepeatOperand:" and getRepeatOperand = x.getRepeatOperand() and getRepeatLength__label = "getRepeatLength:" and diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected index 42cc87636b6..98da7c6b5a9 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.expected @@ -1,5 +1,5 @@ instances -| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | hasConstArg: | yes | hasElementTypeRepr: | yes | +| gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | getConstArg | gen_array_type_repr.rs:7:14:7:21 | ArrayTypeRepr | gen_array_type_repr.rs:7:20:7:20 | ConstArg | getElementTypeRepr diff --git a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql index 3bc2a65f431..e12f81b7b71 100644 --- a/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ArrayTypeRepr/ArrayTypeRepr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ArrayTypeRepr x, string hasConstArg__label, string hasConstArg, string hasElementTypeRepr__label, - string hasElementTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - hasConstArg__label = "hasConstArg:" and - (if x.hasConstArg() then hasConstArg = "yes" else hasConstArg = "no") and - hasElementTypeRepr__label = "hasElementTypeRepr:" and - if x.hasElementTypeRepr() then hasElementTypeRepr = "yes" else hasElementTypeRepr = "no" -} +query predicate instances(ArrayTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getConstArg(ArrayTypeRepr x, ConstArg getConstArg) { toBeTested(x) and not x.isUnknown() and getConstArg = x.getConstArg() diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected index 40e656f638e..30ed42e46f9 100644 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected +++ b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.expected @@ -1,4 +1,4 @@ instances -| gen_asm_const.rs:8:30:8:37 | AsmConst | hasExpr: | yes | isConst: | yes | +| gen_asm_const.rs:8:30:8:37 | AsmConst | isConst: | yes | getExpr | gen_asm_const.rs:8:30:8:37 | AsmConst | gen_asm_const.rs:8:36:8:37 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql index 01a77897fde..dbec4fe27e3 100644 --- a/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql +++ b/rust/ql/test/extractor-tests/generated/AsmConst/AsmConst.ql @@ -2,13 +2,9 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmConst x, string hasExpr__label, string hasExpr, string isConst__label, string isConst -) { +query predicate instances(AsmConst x, string isConst__label, string isConst) { toBeTested(x) and not x.isUnknown() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and isConst__label = "isConst:" and if x.isConst() then isConst = "yes" else isConst = "no" } diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected index 444113fa963..2091c3814d5 100644 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.expected @@ -1,5 +1,5 @@ instances -| gen_asm_expr.rs:6:9:7:59 | AsmExpr | getNumberOfAsmPieces: | 2 | getNumberOfAttrs: | 1 | getNumberOfTemplates: | 1 | +| gen_asm_expr.rs:6:9:7:59 | AsmExpr | getAsmPiece | gen_asm_expr.rs:6:9:7:59 | AsmExpr | 0 | gen_asm_expr.rs:7:39:7:47 | AsmOperandNamed | | gen_asm_expr.rs:6:9:7:59 | AsmExpr | 1 | gen_asm_expr.rs:7:50:7:58 | AsmOperandNamed | diff --git a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql index 3c7748a5058..11cc082dae0 100644 --- a/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AsmExpr/AsmExpr.ql @@ -2,20 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmExpr x, string getNumberOfAsmPieces__label, int getNumberOfAsmPieces, - string getNumberOfAttrs__label, int getNumberOfAttrs, string getNumberOfTemplates__label, - int getNumberOfTemplates -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAsmPieces__label = "getNumberOfAsmPieces:" and - getNumberOfAsmPieces = x.getNumberOfAsmPieces() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfTemplates__label = "getNumberOfTemplates:" and - getNumberOfTemplates = x.getNumberOfTemplates() -} +query predicate instances(AsmExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAsmPiece(AsmExpr x, int index, AsmPiece getAsmPiece) { toBeTested(x) and not x.isUnknown() and getAsmPiece = x.getAsmPiece(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected index 75bc10f415e..cbd9eac398a 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.expected @@ -1,4 +1,4 @@ instances -| gen_asm_label.rs:10:9:10:47 | AsmLabel | hasBlockExpr: | yes | +| gen_asm_label.rs:10:9:10:47 | AsmLabel | getBlockExpr | gen_asm_label.rs:10:9:10:47 | AsmLabel | gen_asm_label.rs:10:15:10:47 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql index 80f265240b3..d2517cdd413 100644 --- a/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql +++ b/rust/ql/test/extractor-tests/generated/AsmLabel/AsmLabel.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(AsmLabel x, string hasBlockExpr__label, string hasBlockExpr) { - toBeTested(x) and - not x.isUnknown() and - hasBlockExpr__label = "hasBlockExpr:" and - if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no" -} +query predicate instances(AsmLabel x) { toBeTested(x) and not x.isUnknown() } query predicate getBlockExpr(AsmLabel x, BlockExpr getBlockExpr) { toBeTested(x) and not x.isUnknown() and getBlockExpr = x.getBlockExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected index 7874d02d91d..262ca3ada57 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.expected @@ -1,6 +1,6 @@ instances -| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | hasInExpr: | yes | hasOutExpr: | yes | -| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | hasInExpr: | yes | hasOutExpr: | yes | +| gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | +| gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | getInExpr | gen_asm_operand_expr.rs:8:35:8:35 | AsmOperandExpr | gen_asm_operand_expr.rs:8:35:8:35 | x | | gen_asm_operand_expr.rs:8:46:8:46 | AsmOperandExpr | gen_asm_operand_expr.rs:8:46:8:46 | y | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql index ee316dd283f..c8dda7a07e0 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOperandExpr/AsmOperandExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmOperandExpr x, string hasInExpr__label, string hasInExpr, string hasOutExpr__label, - string hasOutExpr -) { - toBeTested(x) and - not x.isUnknown() and - hasInExpr__label = "hasInExpr:" and - (if x.hasInExpr() then hasInExpr = "yes" else hasInExpr = "no") and - hasOutExpr__label = "hasOutExpr:" and - if x.hasOutExpr() then hasOutExpr = "yes" else hasOutExpr = "no" -} +query predicate instances(AsmOperandExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getInExpr(AsmOperandExpr x, Expr getInExpr) { toBeTested(x) and not x.isUnknown() and getInExpr = x.getInExpr() diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected index 0401b9208bb..c8aec731ff8 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.expected @@ -1,6 +1,6 @@ instances -| gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | hasAsmOperand: | yes | hasName: | no | -| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | hasAsmOperand: | yes | hasName: | yes | +| gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | +| gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | getAsmOperand | gen_asm_operand_named.rs:8:34:8:43 | AsmOperandNamed | gen_asm_operand_named.rs:8:34:8:43 | AsmRegOperand | | gen_asm_operand_named.rs:8:46:8:62 | AsmOperandNamed | gen_asm_operand_named.rs:8:54:8:62 | AsmRegOperand | diff --git a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql index d47556b27e8..9c900afe42e 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOperandNamed/AsmOperandNamed.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmOperandNamed x, string hasAsmOperand__label, string hasAsmOperand, string hasName__label, - string hasName -) { - toBeTested(x) and - not x.isUnknown() and - hasAsmOperand__label = "hasAsmOperand:" and - (if x.hasAsmOperand() then hasAsmOperand = "yes" else hasAsmOperand = "no") and - hasName__label = "hasName:" and - if x.hasName() then hasName = "yes" else hasName = "no" -} +query predicate instances(AsmOperandNamed x) { toBeTested(x) and not x.isUnknown() } query predicate getAsmOperand(AsmOperandNamed x, AsmOperand getAsmOperand) { toBeTested(x) and not x.isUnknown() and getAsmOperand = x.getAsmOperand() diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected index 35242695ee1..cf9ec35d070 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected +++ b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.expected @@ -1,5 +1,5 @@ instances -| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | getNumberOfAsmOptions: | 2 | +| gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | getAsmOption | gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 0 | gen_asm_options_list.rs:8:22:8:28 | AsmOption | | gen_asm_options_list.rs:8:14:8:36 | AsmOptionsList | 1 | gen_asm_options_list.rs:8:31:8:35 | AsmOption | diff --git a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql index f4b36d1a97c..a4806cce353 100644 --- a/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql +++ b/rust/ql/test/extractor-tests/generated/AsmOptionsList/AsmOptionsList.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmOptionsList x, string getNumberOfAsmOptions__label, int getNumberOfAsmOptions -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAsmOptions__label = "getNumberOfAsmOptions:" and - getNumberOfAsmOptions = x.getNumberOfAsmOptions() -} +query predicate instances(AsmOptionsList x) { toBeTested(x) and not x.isUnknown() } query predicate getAsmOption(AsmOptionsList x, int index, AsmOption getAsmOption) { toBeTested(x) and not x.isUnknown() and getAsmOption = x.getAsmOption(index) diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected index 10c0e5fbc8d..a141f1a25c2 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected +++ b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.expected @@ -1,6 +1,6 @@ instances -| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | hasAsmDirSpec: | yes | hasAsmOperandExpr: | yes | hasAsmRegSpec: | yes | -| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | hasAsmDirSpec: | yes | hasAsmOperandExpr: | yes | hasAsmRegSpec: | yes | +| gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | +| gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | getAsmDirSpec | gen_asm_reg_operand.rs:8:26:8:35 | AsmRegOperand | gen_asm_reg_operand.rs:8:26:8:28 | AsmDirSpec | | gen_asm_reg_operand.rs:8:38:8:46 | AsmRegOperand | gen_asm_reg_operand.rs:8:38:8:39 | AsmDirSpec | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql index 64105ef2d77..ae7a9bb84f1 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql +++ b/rust/ql/test/extractor-tests/generated/AsmRegOperand/AsmRegOperand.ql @@ -2,20 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AsmRegOperand x, string hasAsmDirSpec__label, string hasAsmDirSpec, - string hasAsmOperandExpr__label, string hasAsmOperandExpr, string hasAsmRegSpec__label, - string hasAsmRegSpec -) { - toBeTested(x) and - not x.isUnknown() and - hasAsmDirSpec__label = "hasAsmDirSpec:" and - (if x.hasAsmDirSpec() then hasAsmDirSpec = "yes" else hasAsmDirSpec = "no") and - hasAsmOperandExpr__label = "hasAsmOperandExpr:" and - (if x.hasAsmOperandExpr() then hasAsmOperandExpr = "yes" else hasAsmOperandExpr = "no") and - hasAsmRegSpec__label = "hasAsmRegSpec:" and - if x.hasAsmRegSpec() then hasAsmRegSpec = "yes" else hasAsmRegSpec = "no" -} +query predicate instances(AsmRegOperand x) { toBeTested(x) and not x.isUnknown() } query predicate getAsmDirSpec(AsmRegOperand x, AsmDirSpec getAsmDirSpec) { toBeTested(x) and not x.isUnknown() and getAsmDirSpec = x.getAsmDirSpec() diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected index ed7ef775969..120ba8d2093 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected +++ b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.expected @@ -1,5 +1,5 @@ instances -| gen_asm_reg_spec.rs:8:30:8:34 | AsmRegSpec | hasIdentifier: | no | -| gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | hasIdentifier: | yes | +| gen_asm_reg_spec.rs:8:30:8:34 | AsmRegSpec | +| gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | getIdentifier | gen_asm_reg_spec.rs:8:43:8:45 | AsmRegSpec | gen_asm_reg_spec.rs:8:43:8:45 | EBX | diff --git a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql index dfa5dad3e23..a84d2843da2 100644 --- a/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql +++ b/rust/ql/test/extractor-tests/generated/AsmRegSpec/AsmRegSpec.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(AsmRegSpec x, string hasIdentifier__label, string hasIdentifier) { - toBeTested(x) and - not x.isUnknown() and - hasIdentifier__label = "hasIdentifier:" and - if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -} +query predicate instances(AsmRegSpec x) { toBeTested(x) and not x.isUnknown() } query predicate getIdentifier(AsmRegSpec x, NameRef getIdentifier) { toBeTested(x) and not x.isUnknown() and getIdentifier = x.getIdentifier() diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected index 3644a5399a2..e3f8fbc9ec7 100644 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected +++ b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.expected @@ -1,4 +1,4 @@ instances -| gen_asm_sym.rs:8:30:8:44 | AsmSym | hasPath: | yes | +| gen_asm_sym.rs:8:30:8:44 | AsmSym | getPath | gen_asm_sym.rs:8:30:8:44 | AsmSym | gen_asm_sym.rs:8:34:8:44 | my_function | diff --git a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql index d138bd6b7aa..d105903ad16 100644 --- a/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql +++ b/rust/ql/test/extractor-tests/generated/AsmSym/AsmSym.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(AsmSym x, string hasPath__label, string hasPath) { - toBeTested(x) and - not x.isUnknown() and - hasPath__label = "hasPath:" and - if x.hasPath() then hasPath = "yes" else hasPath = "no" -} +query predicate instances(AsmSym x) { toBeTested(x) and not x.isUnknown() } query predicate getPath(AsmSym x, Path getPath) { toBeTested(x) and not x.isUnknown() and getPath = x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected index c7c15f5b58b..83bfd832501 100644 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected +++ b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.expected @@ -1,5 +1,5 @@ instances -| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | hasConstArg: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasParamList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTypeBoundList: | yes | +| gen_assoc_type_arg.rs:9:21:9:31 | AssocTypeArg | getConstArg getGenericArgList getIdentifier diff --git a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql index 7555e6b2b2a..1117c934180 100644 --- a/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql +++ b/rust/ql/test/extractor-tests/generated/AssocTypeArg/AssocTypeArg.ql @@ -2,32 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AssocTypeArg x, string hasConstArg__label, string hasConstArg, string hasGenericArgList__label, - string hasGenericArgList, string hasIdentifier__label, string hasIdentifier, - string hasParamList__label, string hasParamList, string hasRetType__label, string hasRetType, - string hasReturnTypeSyntax__label, string hasReturnTypeSyntax, string hasTypeRepr__label, - string hasTypeRepr, string hasTypeBoundList__label, string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - hasConstArg__label = "hasConstArg:" and - (if x.hasConstArg() then hasConstArg = "yes" else hasConstArg = "no") and - hasGenericArgList__label = "hasGenericArgList:" and - (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and - hasIdentifier__label = "hasIdentifier:" and - (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and - hasParamList__label = "hasParamList:" and - (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and - hasRetType__label = "hasRetType:" and - (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and - hasReturnTypeSyntax__label = "hasReturnTypeSyntax:" and - (if x.hasReturnTypeSyntax() then hasReturnTypeSyntax = "yes" else hasReturnTypeSyntax = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(AssocTypeArg x) { toBeTested(x) and not x.isUnknown() } query predicate getConstArg(AssocTypeArg x, ConstArg getConstArg) { toBeTested(x) and not x.isUnknown() and getConstArg = x.getConstArg() diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr.expected b/rust/ql/test/extractor-tests/generated/Attr/Attr.expected index 6b994a76ae4..1272453173d 100644 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr.expected +++ b/rust/ql/test/extractor-tests/generated/Attr/Attr.expected @@ -1,4 +1,4 @@ instances -| gen_attr.rs:7:5:7:20 | Attr | hasMeta: | yes | +| gen_attr.rs:7:5:7:20 | Attr | getMeta | gen_attr.rs:7:5:7:20 | Attr | gen_attr.rs:7:7:7:19 | Meta | diff --git a/rust/ql/test/extractor-tests/generated/Attr/Attr.ql b/rust/ql/test/extractor-tests/generated/Attr/Attr.ql index 9ef4096d2ac..4f717cc7f4d 100644 --- a/rust/ql/test/extractor-tests/generated/Attr/Attr.ql +++ b/rust/ql/test/extractor-tests/generated/Attr/Attr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Attr x, string hasMeta__label, string hasMeta) { - toBeTested(x) and - not x.isUnknown() and - hasMeta__label = "hasMeta:" and - if x.hasMeta() then hasMeta = "yes" else hasMeta = "no" -} +query predicate instances(Attr x) { toBeTested(x) and not x.isUnknown() } query predicate getMeta(Attr x, Meta getMeta) { toBeTested(x) and not x.isUnknown() and getMeta = x.getMeta() diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected index 0d562cf3c06..1135e3b3e45 100644 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected +++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.expected @@ -1,5 +1,5 @@ instances -| gen_await_expr.rs:6:17:6:27 | await ... | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_await_expr.rs:6:17:6:27 | await ... | getAttr getExpr | gen_await_expr.rs:6:17:6:27 | await ... | gen_await_expr.rs:6:17:6:21 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql index 825cb9959b4..d98d833c951 100644 --- a/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql +++ b/rust/ql/test/extractor-tests/generated/AwaitExpr/AwaitExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AwaitExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(AwaitExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(AwaitExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected index 75146fedb5c..2ec05480e36 100644 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.expected @@ -1,5 +1,5 @@ instances -| gen_become_expr.rs:8:10:8:36 | become ... | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_become_expr.rs:8:10:8:36 | become ... | getAttr getExpr | gen_become_expr.rs:8:10:8:36 | become ... | gen_become_expr.rs:8:17:8:36 | fact_a(...) | diff --git a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql index 2842afad332..d8b5775da70 100644 --- a/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BecomeExpr/BecomeExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - BecomeExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(BecomeExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(BecomeExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected index e435ece76b3..f1b99f24258 100644 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.expected @@ -1,9 +1,9 @@ instances -| gen_binary_expr.rs:5:5:5:9 | ... + ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | -| gen_binary_expr.rs:6:5:6:10 | ... && ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | -| gen_binary_expr.rs:7:5:7:10 | ... <= ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | -| gen_binary_expr.rs:8:5:8:9 | ... = ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | -| gen_binary_expr.rs:9:5:9:10 | ... += ... | getNumberOfAttrs: | 0 | hasLhs: | yes | hasOperatorName: | yes | hasRhs: | yes | +| gen_binary_expr.rs:5:5:5:9 | ... + ... | +| gen_binary_expr.rs:6:5:6:10 | ... && ... | +| gen_binary_expr.rs:7:5:7:10 | ... <= ... | +| gen_binary_expr.rs:8:5:8:9 | ... = ... | +| gen_binary_expr.rs:9:5:9:10 | ... += ... | getAttr getLhs | gen_binary_expr.rs:5:5:5:9 | ... + ... | gen_binary_expr.rs:5:5:5:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql index dec60b16d6c..6b5bf4ba206 100644 --- a/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BinaryExpr/BinaryExpr.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - BinaryExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLhs__label, - string hasLhs, string hasOperatorName__label, string hasOperatorName, string hasRhs__label, - string hasRhs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasLhs__label = "hasLhs:" and - (if x.hasLhs() then hasLhs = "yes" else hasLhs = "no") and - hasOperatorName__label = "hasOperatorName:" and - (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and - hasRhs__label = "hasRhs:" and - if x.hasRhs() then hasRhs = "yes" else hasRhs = "no" -} +query predicate instances(BinaryExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(BinaryExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected index 6dfca050bfe..0423524834b 100644 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.expected @@ -1,7 +1,7 @@ instances -| gen_block_expr.rs:3:28:12:1 | { ... } | hasLabel: | no | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | -| gen_block_expr.rs:5:5:7:5 | { ... } | hasLabel: | no | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | -| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | hasLabel: | yes | getNumberOfAttrs: | 0 | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | hasStmtList: | yes | +| gen_block_expr.rs:3:28:12:1 | { ... } | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | +| gen_block_expr.rs:5:5:7:5 | { ... } | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | +| gen_block_expr.rs:8:5:11:5 | 'label: { ... } | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isTry: | no | isUnsafe: | no | getLabel | gen_block_expr.rs:8:5:11:5 | 'label: { ... } | gen_block_expr.rs:8:5:8:11 | 'label | getAttr diff --git a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql index 8c411738753..4b69689bb91 100644 --- a/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BlockExpr/BlockExpr.ql @@ -3,18 +3,12 @@ import codeql.rust.elements import TestUtils query predicate instances( - BlockExpr x, string hasLabel__label, string hasLabel, string getNumberOfAttrs__label, - int getNumberOfAttrs, string isAsync__label, string isAsync, string isConst__label, - string isConst, string isGen__label, string isGen, string isMove__label, string isMove, - string isTry__label, string isTry, string isUnsafe__label, string isUnsafe, - string hasStmtList__label, string hasStmtList + BlockExpr x, string isAsync__label, string isAsync, string isConst__label, string isConst, + string isGen__label, string isGen, string isMove__label, string isMove, string isTry__label, + string isTry, string isUnsafe__label, string isUnsafe ) { toBeTested(x) and not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and isConst__label = "isConst:" and @@ -26,9 +20,7 @@ query predicate instances( isTry__label = "isTry:" and (if x.isTry() then isTry = "yes" else isTry = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasStmtList__label = "hasStmtList:" and - if x.hasStmtList() then hasStmtList = "yes" else hasStmtList = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getLabel(BlockExpr x, Label getLabel) { diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected index 5ef37d197bc..67b2f917b49 100644 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected +++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.expected @@ -1,6 +1,6 @@ instances -| gen_box_pat.rs:6:9:6:27 | box ... | hasPat: | yes | -| gen_box_pat.rs:7:9:7:24 | box ...::None | hasPat: | yes | +| gen_box_pat.rs:6:9:6:27 | box ... | +| gen_box_pat.rs:7:9:7:24 | box ...::None | getPat | gen_box_pat.rs:6:9:6:27 | box ... | gen_box_pat.rs:6:13:6:27 | ...::Some(...) | | gen_box_pat.rs:7:9:7:24 | box ...::None | gen_box_pat.rs:7:13:7:24 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql index add8284cfba..3bed43b630a 100644 --- a/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql +++ b/rust/ql/test/extractor-tests/generated/BoxPat/BoxPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(BoxPat x, string hasPat__label, string hasPat) { - toBeTested(x) and - not x.isUnknown() and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(BoxPat x) { toBeTested(x) and not x.isUnknown() } query predicate getPat(BoxPat x, Pat getPat) { toBeTested(x) and not x.isUnknown() and getPat = x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected index 1d42933c102..6901bc607f4 100644 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected +++ b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.expected @@ -1,7 +1,7 @@ instances -| gen_break_expr.rs:7:13:7:17 | break | getNumberOfAttrs: | 0 | hasExpr: | no | hasLifetime: | no | -| gen_break_expr.rs:12:13:12:27 | break 'label 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasLifetime: | yes | -| gen_break_expr.rs:17:13:17:27 | break 'label 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasLifetime: | yes | +| gen_break_expr.rs:7:13:7:17 | break | +| gen_break_expr.rs:12:13:12:27 | break 'label 42 | +| gen_break_expr.rs:17:13:17:27 | break 'label 42 | getAttr getExpr | gen_break_expr.rs:12:13:12:27 | break 'label 42 | gen_break_expr.rs:12:26:12:27 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql index 821f1e73fa2..c9d9fb9ee66 100644 --- a/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql +++ b/rust/ql/test/extractor-tests/generated/BreakExpr/BreakExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - BreakExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string hasLifetime__label, string hasLifetime -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasLifetime__label = "hasLifetime:" and - if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -} +query predicate instances(BreakExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(BreakExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected index 181a7dbff8c..3aaaed00da2 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.expected @@ -1,8 +1,8 @@ instances -| gen_call_expr.rs:5:5:5:11 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:7:5:7:14 | ...(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | -| gen_call_expr.rs:8:5:8:10 | foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasFunction: | yes | +| gen_call_expr.rs:5:5:5:11 | foo(...) | +| gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | +| gen_call_expr.rs:7:5:7:14 | ...(...) | +| gen_call_expr.rs:8:5:8:10 | foo(...) | getArgList | gen_call_expr.rs:5:5:5:11 | foo(...) | gen_call_expr.rs:5:8:5:11 | ArgList | | gen_call_expr.rs:6:5:6:23 | foo::<...>(...) | gen_call_expr.rs:6:20:6:23 | ArgList | diff --git a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql index fae788451cf..e16ab837325 100644 --- a/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CallExpr/CallExpr.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - CallExpr x, string hasArgList__label, string hasArgList, string getNumberOfAttrs__label, - int getNumberOfAttrs, string getNumberOfArgs__label, int getNumberOfArgs, - string hasFunction__label, string hasFunction -) { - toBeTested(x) and - not x.isUnknown() and - hasArgList__label = "hasArgList:" and - (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfArgs__label = "getNumberOfArgs:" and - getNumberOfArgs = x.getNumberOfArgs() and - hasFunction__label = "hasFunction:" and - if x.hasFunction() then hasFunction = "yes" else hasFunction = "no" -} +query predicate instances(CallExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getArgList(CallExpr x, ArgList getArgList) { toBeTested(x) and not x.isUnknown() and getArgList = x.getArgList() diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected index 8ed3a2a8416..05f618ced10 100644 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected +++ b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.expected @@ -1,5 +1,5 @@ instances -| gen_cast_expr.rs:5:5:5:16 | value as u64 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasTypeRepr: | yes | +| gen_cast_expr.rs:5:5:5:16 | value as u64 | getAttr getExpr | gen_cast_expr.rs:5:5:5:16 | value as u64 | gen_cast_expr.rs:5:5:5:9 | value | diff --git a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql index c649242b576..46c06b4c21c 100644 --- a/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql +++ b/rust/ql/test/extractor-tests/generated/CastExpr/CastExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - CastExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string hasTypeRepr__label, string hasTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(CastExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(CastExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected index 38a6da316b0..dfd2bd58d07 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.expected @@ -1,4 +1,4 @@ instances -| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | hasGenericParamList: | yes | +| gen_closure_binder.rs:7:21:7:43 | ClosureBinder | getGenericParamList | gen_closure_binder.rs:7:21:7:43 | ClosureBinder | gen_closure_binder.rs:7:24:7:43 | <...> | diff --git a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql index a791e16c442..d204c5fbde1 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureBinder/ClosureBinder.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ClosureBinder x, string hasGenericParamList__label, string hasGenericParamList -) { - toBeTested(x) and - not x.isUnknown() and - hasGenericParamList__label = "hasGenericParamList:" and - if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no" -} +query predicate instances(ClosureBinder x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericParamList(ClosureBinder x, GenericParamList getGenericParamList) { toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected index e76fbfeaf75..041669861b9 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.expected @@ -1,9 +1,9 @@ instances -| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | hasRetType: | yes | -| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 2 | hasBody: | yes | hasClosureBinder: | no | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | hasRetType: | no | -| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | hasParamList: | yes | getNumberOfAttrs: | 1 | getNumberOfParams: | 1 | hasBody: | yes | hasClosureBinder: | no | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | hasRetType: | no | +| gen_closure_expr.rs:5:5:5:13 | \|...\| ... | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | +| gen_closure_expr.rs:6:5:6:34 | \|...\| ... | isAsync: | no | isConst: | no | isGen: | no | isMove: | yes | isStatic: | no | +| gen_closure_expr.rs:7:5:7:27 | \|...\| ... | isAsync: | yes | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | +| gen_closure_expr.rs:8:6:9:15 | \|...\| ... | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | no | +| gen_closure_expr.rs:10:6:11:23 | \|...\| ... | isAsync: | no | isConst: | no | isGen: | no | isMove: | no | isStatic: | yes | getParamList | gen_closure_expr.rs:5:5:5:13 | \|...\| ... | gen_closure_expr.rs:5:5:5:7 | ParamList | | gen_closure_expr.rs:6:5:6:34 | \|...\| ... | gen_closure_expr.rs:6:10:6:17 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql index 88aebe283c9..acf3b130677 100644 --- a/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ClosureExpr/ClosureExpr.ql @@ -3,25 +3,12 @@ import codeql.rust.elements import TestUtils query predicate instances( - ClosureExpr x, string hasParamList__label, string hasParamList, string getNumberOfAttrs__label, - int getNumberOfAttrs, string getNumberOfParams__label, int getNumberOfParams, - string hasBody__label, string hasBody, string hasClosureBinder__label, string hasClosureBinder, - string isAsync__label, string isAsync, string isConst__label, string isConst, string isGen__label, - string isGen, string isMove__label, string isMove, string isStatic__label, string isStatic, - string hasRetType__label, string hasRetType + ClosureExpr x, string isAsync__label, string isAsync, string isConst__label, string isConst, + string isGen__label, string isGen, string isMove__label, string isMove, string isStatic__label, + string isStatic ) { toBeTested(x) and not x.isUnknown() and - hasParamList__label = "hasParamList:" and - (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - hasClosureBinder__label = "hasClosureBinder:" and - (if x.hasClosureBinder() then hasClosureBinder = "yes" else hasClosureBinder = "no") and isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and isConst__label = "isConst:" and @@ -31,9 +18,7 @@ query predicate instances( isMove__label = "isMove:" and (if x.isMove() then isMove = "yes" else isMove = "no") and isStatic__label = "isStatic:" and - (if x.isStatic() then isStatic = "yes" else isStatic = "no") and - hasRetType__label = "hasRetType:" and - if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" + if x.isStatic() then isStatic = "yes" else isStatic = "no" } query predicate getParamList(ClosureExpr x, ParamList getParamList) { diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.expected b/rust/ql/test/extractor-tests/generated/Const/Const.expected index 3a6cac12184..9dd51311bc4 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.expected +++ b/rust/ql/test/extractor-tests/generated/Const/Const.expected @@ -1,5 +1,5 @@ instances -| gen_const.rs:4:5:7:22 | Const | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | hasGenericParamList: | no | isConst: | yes | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | yes | +| gen_const.rs:4:5:7:22 | Const | isConst: | yes | isDefault: | no | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.ql b/rust/ql/test/extractor-tests/generated/Const/Const.ql index 536f02a0a27..ef88f980fc0 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.ql +++ b/rust/ql/test/extractor-tests/generated/Const/Const.ql @@ -3,50 +3,15 @@ import codeql.rust.elements import TestUtils query predicate instances( - Const x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasBody__label, string hasBody, string hasGenericParamList__label, - string hasGenericParamList, string isConst__label, string isConst, string isDefault__label, - string isDefault, string hasName__label, string hasName, string hasTypeRepr__label, - string hasTypeRepr, string hasVisibility__label, string hasVisibility, - string hasWhereClause__label, string hasWhereClause, string hasImplementation__label, - string hasImplementation + Const x, string isConst__label, string isConst, string isDefault__label, string isDefault, + string hasImplementation__label, string hasImplementation ) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - (if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and hasImplementation__label = "hasImplementation:" and if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no" } diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected index b6e35b39a8b..111690872fe 100644 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected +++ b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.expected @@ -1,4 +1,4 @@ instances -| gen_const_arg.rs:7:11:7:11 | ConstArg | hasExpr: | yes | +| gen_const_arg.rs:7:11:7:11 | ConstArg | getExpr | gen_const_arg.rs:7:11:7:11 | ConstArg | gen_const_arg.rs:7:11:7:11 | 3 | diff --git a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql index 57377f66c4a..c89b791090a 100644 --- a/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql +++ b/rust/ql/test/extractor-tests/generated/ConstArg/ConstArg.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(ConstArg x, string hasExpr__label, string hasExpr) { - toBeTested(x) and - not x.isUnknown() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(ConstArg x) { toBeTested(x) and not x.isUnknown() } query predicate getExpr(ConstArg x, Expr getExpr) { toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected index 36c06854a29..742ac11f985 100644 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected +++ b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.expected @@ -1,4 +1,4 @@ instances -| gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | hasBlockExpr: | yes | isConst: | yes | +| gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | isConst: | yes | getBlockExpr | gen_const_block_pat.rs:6:9:6:27 | ConstBlockPat | gen_const_block_pat.rs:6:15:6:27 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql index 1a0ba771a6c..324b275e007 100644 --- a/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql +++ b/rust/ql/test/extractor-tests/generated/ConstBlockPat/ConstBlockPat.ql @@ -2,14 +2,9 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ConstBlockPat x, string hasBlockExpr__label, string hasBlockExpr, string isConst__label, - string isConst -) { +query predicate instances(ConstBlockPat x, string isConst__label, string isConst) { toBeTested(x) and not x.isUnknown() and - hasBlockExpr__label = "hasBlockExpr:" and - (if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no") and isConst__label = "isConst:" and if x.isConst() then isConst = "yes" else isConst = "no" } diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected index 0ed9b2a27cb..f6067623d27 100644 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected +++ b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.expected @@ -1,5 +1,5 @@ instances -| gen_const_param.rs:7:17:7:30 | ConstParam | getNumberOfAttrs: | 0 | hasDefaultVal: | no | isConst: | yes | hasName: | yes | hasTypeRepr: | yes | +| gen_const_param.rs:7:17:7:30 | ConstParam | isConst: | yes | getAttr getDefaultVal getName diff --git a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql index 3cce74dd9d3..cfbf6f3cc45 100644 --- a/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql +++ b/rust/ql/test/extractor-tests/generated/ConstParam/ConstParam.ql @@ -2,23 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ConstParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefaultVal__label, - string hasDefaultVal, string isConst__label, string isConst, string hasName__label, - string hasName, string hasTypeRepr__label, string hasTypeRepr -) { +query predicate instances(ConstParam x, string isConst__label, string isConst) { toBeTested(x) and not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasDefaultVal__label = "hasDefaultVal:" and - (if x.hasDefaultVal() then hasDefaultVal = "yes" else hasDefaultVal = "no") and isConst__label = "isConst:" and - (if x.isConst() then isConst = "yes" else isConst = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" + if x.isConst() then isConst = "yes" else isConst = "no" } query predicate getAttr(ConstParam x, int index, Attr getAttr) { diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected index 9c3222ea810..e9547d569a3 100644 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.expected @@ -1,6 +1,6 @@ instances -| gen_continue_expr.rs:7:13:7:20 | continue | getNumberOfAttrs: | 0 | hasLifetime: | no | -| gen_continue_expr.rs:12:13:12:27 | continue 'label | getNumberOfAttrs: | 0 | hasLifetime: | yes | +| gen_continue_expr.rs:7:13:7:20 | continue | +| gen_continue_expr.rs:12:13:12:27 | continue 'label | getAttr getLifetime | gen_continue_expr.rs:12:13:12:27 | continue 'label | gen_continue_expr.rs:12:22:12:27 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql index 87cbb63a73f..590b8d1faa5 100644 --- a/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ContinueExpr/ContinueExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ContinueExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLifetime__label, - string hasLifetime -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasLifetime__label = "hasLifetime:" and - if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -} +query predicate instances(ContinueExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(ContinueExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected index 467ee4d57b5..14ff9874ffb 100644 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.expected @@ -1,4 +1,4 @@ instances -| gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | hasTypeBoundList: | yes | +| gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | getTypeBoundList | gen_dyn_trait_type_repr.rs:7:13:7:21 | DynTraitTypeRepr | gen_dyn_trait_type_repr.rs:7:17:7:21 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql index a3b42f5c602..e67423fadfd 100644 --- a/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/DynTraitTypeRepr/DynTraitTypeRepr.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - DynTraitTypeRepr x, string hasTypeBoundList__label, string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(DynTraitTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeBoundList(DynTraitTypeRepr x, TypeBoundList getTypeBoundList) { toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected index 97770de91d2..45154c93e48 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.expected +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.expected @@ -1,5 +1,5 @@ instances -| gen_enum.rs:4:5:7:34 | enum E | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasVariantList: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_enum.rs:4:5:7:34 | enum E | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql index 194230c7b22..e5c4c12693e 100644 --- a/rust/ql/test/extractor-tests/generated/Enum/Enum.ql +++ b/rust/ql/test/extractor-tests/generated/Enum/Enum.ql @@ -2,46 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Enum x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, - int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasGenericParamList__label, string hasGenericParamList, string hasName__label, - string hasName, string hasVariantList__label, string hasVariantList, string hasVisibility__label, - string hasVisibility, string hasWhereClause__label, string hasWhereClause -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and - getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasVariantList__label = "hasVariantList:" and - (if x.hasVariantList() then hasVariantList = "yes" else hasVariantList = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -} +query predicate instances(Enum x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Enum x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected index 16b3cc14c46..35db91b7cfb 100644 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected +++ b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.expected @@ -1,6 +1,6 @@ instances -| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | hasExpr: | yes | -| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | hasExpr: | yes | +| gen_expr_stmt.rs:5:5:5:12 | ExprStmt | +| gen_expr_stmt.rs:6:5:6:13 | ExprStmt | getExpr | gen_expr_stmt.rs:5:5:5:12 | ExprStmt | gen_expr_stmt.rs:5:5:5:11 | start(...) | | gen_expr_stmt.rs:6:5:6:13 | ExprStmt | gen_expr_stmt.rs:6:5:6:12 | finish(...) | diff --git a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql index 587fb6731d8..34995cf5014 100644 --- a/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql +++ b/rust/ql/test/extractor-tests/generated/ExprStmt/ExprStmt.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(ExprStmt x, string hasExpr__label, string hasExpr) { - toBeTested(x) and - not x.isUnknown() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(ExprStmt x) { toBeTested(x) and not x.isUnknown() } query predicate getExpr(ExprStmt x, Expr getExpr) { toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected index a523b209713..8e061f24a56 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.expected @@ -1,5 +1,5 @@ instances -| gen_extern_block.rs:7:5:9:5 | ExternBlock | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasAbi: | yes | getNumberOfAttrs: | 0 | hasExternItemList: | yes | isUnsafe: | no | +| gen_extern_block.rs:7:5:9:5 | ExternBlock | isUnsafe: | no | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql index 9985e3ceb0e..2f07e5dfcae 100644 --- a/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql +++ b/rust/ql/test/extractor-tests/generated/ExternBlock/ExternBlock.ql @@ -2,35 +2,9 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ExternBlock x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string hasAbi__label, string hasAbi, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExternItemList__label, - string hasExternItemList, string isUnsafe__label, string isUnsafe -) { +query predicate instances(ExternBlock x, string isUnsafe__label, string isUnsafe) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - hasAbi__label = "hasAbi:" and - (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExternItemList__label = "hasExternItemList:" and - (if x.hasExternItemList() then hasExternItemList = "yes" else hasExternItemList = "no") and isUnsafe__label = "isUnsafe:" and if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected index 5f58cb72be5..6e1b1a84e1a 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.expected @@ -1,5 +1,5 @@ instances -| gen_extern_crate.rs:4:5:7:23 | ExternCrate | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasRename: | no | hasVisibility: | no | +| gen_extern_crate.rs:4:5:7:23 | ExternCrate | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql index fd2054d942e..b0c2c372896 100644 --- a/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql +++ b/rust/ql/test/extractor-tests/generated/ExternCrate/ExternCrate.ql @@ -2,38 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ExternCrate x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasIdentifier__label, string hasIdentifier, string hasRename__label, string hasRename, - string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasIdentifier__label = "hasIdentifier:" and - (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and - hasRename__label = "hasRename:" and - (if x.hasRename() then hasRename = "yes" else hasRename = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(ExternCrate x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(ExternCrate x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected index 7d9cf0f9166..8b6eb94b1b2 100644 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected +++ b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.expected @@ -1,5 +1,5 @@ instances -| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | getNumberOfAttrs: | 0 | getNumberOfExternItems: | 2 | +| gen_extern_item_list.rs:7:16:10:5 | ExternItemList | getAttr getExternItem | gen_extern_item_list.rs:7:16:10:5 | ExternItemList | 0 | gen_extern_item_list.rs:8:9:8:17 | fn foo | diff --git a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql index d74448c8ce3..b947daaff64 100644 --- a/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql +++ b/rust/ql/test/extractor-tests/generated/ExternItemList/ExternItemList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ExternItemList x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfExternItems__label, int getNumberOfExternItems -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfExternItems__label = "getNumberOfExternItems:" and - getNumberOfExternItems = x.getNumberOfExternItems() -} +query predicate instances(ExternItemList x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(ExternItemList x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected index d527171975b..dab9e4a05b4 100644 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected +++ b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.expected @@ -1,5 +1,5 @@ instances -| gen_field_expr.rs:5:5:5:9 | x.foo | getNumberOfAttrs: | 0 | hasContainer: | yes | hasIdentifier: | yes | +| gen_field_expr.rs:5:5:5:9 | x.foo | getAttr getContainer | gen_field_expr.rs:5:5:5:9 | x.foo | gen_field_expr.rs:5:5:5:5 | x | diff --git a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql index d335d09c35d..49780f145b8 100644 --- a/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql +++ b/rust/ql/test/extractor-tests/generated/FieldExpr/FieldExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - FieldExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasContainer__label, - string hasContainer, string hasIdentifier__label, string hasIdentifier -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasContainer__label = "hasContainer:" and - (if x.hasContainer() then hasContainer = "yes" else hasContainer = "no") and - hasIdentifier__label = "hasIdentifier:" and - if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -} +query predicate instances(FieldExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(FieldExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected index 705459cf980..1e61549b3f3 100644 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.expected @@ -1,5 +1,5 @@ instances -| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | hasAbi: | no | isAsync: | no | isConst: | no | isUnsafe: | no | hasParamList: | yes | hasRetType: | yes | +| gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | isAsync: | no | isConst: | no | isUnsafe: | no | getAbi getParamList | gen_fn_ptr_type_repr.rs:7:12:7:25 | FnPtrTypeRepr | gen_fn_ptr_type_repr.rs:7:14:7:18 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql index a9504b4d1b6..47cbb8ee28c 100644 --- a/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/FnPtrTypeRepr/FnPtrTypeRepr.ql @@ -3,24 +3,17 @@ import codeql.rust.elements import TestUtils query predicate instances( - FnPtrTypeRepr x, string hasAbi__label, string hasAbi, string isAsync__label, string isAsync, - string isConst__label, string isConst, string isUnsafe__label, string isUnsafe, - string hasParamList__label, string hasParamList, string hasRetType__label, string hasRetType + FnPtrTypeRepr x, string isAsync__label, string isAsync, string isConst__label, string isConst, + string isUnsafe__label, string isUnsafe ) { toBeTested(x) and not x.isUnknown() and - hasAbi__label = "hasAbi:" and - (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasParamList__label = "hasParamList:" and - (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and - hasRetType__label = "hasRetType:" and - if x.hasRetType() then hasRetType = "yes" else hasRetType = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getAbi(FnPtrTypeRepr x, Abi getAbi) { diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected index 46d37f6db4f..2e91473136f 100644 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.expected @@ -1,5 +1,5 @@ instances -| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | hasIterable: | yes | hasPat: | yes | +| gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | getLabel getLoopBody | gen_for_expr.rs:7:5:9:5 | for ... in ... { ... } | gen_for_expr.rs:7:20:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql index 3d76f1e06d1..1bb7bba5c49 100644 --- a/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ForExpr/ForExpr.ql @@ -2,24 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ForExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, string hasLoopBody, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasIterable__label, - string hasIterable, string hasPat__label, string hasPat -) { - toBeTested(x) and - not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and - hasLoopBody__label = "hasLoopBody:" and - (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasIterable__label = "hasIterable:" and - (if x.hasIterable() then hasIterable = "yes" else hasIterable = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(ForExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getLabel(ForExpr x, Label getLabel) { toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected index c86e0a2a5b3..8f5ac12ec36 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.expected @@ -1,5 +1,5 @@ instances -| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | hasGenericParamList: | yes | hasTypeRepr: | yes | +| gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | getGenericParamList | gen_for_type_repr.rs:9:12:9:41 | ForTypeRepr | gen_for_type_repr.rs:9:15:9:18 | <...> | getTypeRepr diff --git a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql index 5efdf7267db..398a317a3dd 100644 --- a/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ForTypeRepr/ForTypeRepr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ForTypeRepr x, string hasGenericParamList__label, string hasGenericParamList, - string hasTypeRepr__label, string hasTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(ForTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericParamList(ForTypeRepr x, GenericParamList getGenericParamList) { toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected index 343766da1fe..ec9fba8965a 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.expected @@ -1,21 +1,21 @@ instances -| gen_format.rs:5:21:5:22 | {} | getParent: | gen_format.rs:5:14:5:32 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | getParent: | gen_format.rs:7:14:7:47 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | -| gen_format.rs:11:15:11:20 | {name} | getParent: | gen_format.rs:11:14:11:35 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format.rs:12:15:12:17 | {0} | getParent: | gen_format.rs:12:14:12:38 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format.rs:16:15:16:23 | {:width$} | getParent: | gen_format.rs:16:14:16:28 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | yes | hasPrecisionArgument: | no | -| gen_format.rs:17:15:17:19 | {:1$} | getParent: | gen_format.rs:17:14:17:31 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | yes | hasPrecisionArgument: | no | -| gen_format.rs:21:15:21:23 | {:.prec$} | getParent: | gen_format.rs:21:14:21:28 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | yes | -| gen_format.rs:22:15:22:20 | {:.1$} | getParent: | gen_format.rs:22:14:22:31 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | yes | -| gen_format_args_arg.rs:5:26:5:27 | {} | getParent: | gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:6:19:6:20 | {} | getParent: | gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:6:26:6:29 | {:?} | getParent: | gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | getIndex: | 3 | hasArgumentRef: | no | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:7:19:7:21 | {b} | getParent: | gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:7:27:7:31 | {a:?} | getParent: | gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | getIndex: | 3 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:9:19:9:21 | {x} | getParent: | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_args_expr.rs:9:24:9:26 | {y} | getParent: | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getIndex: | 3 | hasArgumentRef: | yes | hasWidthArgument: | no | hasPrecisionArgument: | no | -| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | getParent: | gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | -| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | getParent: | gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getIndex: | 1 | hasArgumentRef: | yes | hasWidthArgument: | yes | hasPrecisionArgument: | yes | +| gen_format.rs:5:21:5:22 | {} | getParent: | gen_format.rs:5:14:5:32 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:7:21:7:46 | {value:#width$.precision$} | getParent: | gen_format.rs:7:14:7:47 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:11:15:11:20 | {name} | getParent: | gen_format.rs:11:14:11:35 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:12:15:12:17 | {0} | getParent: | gen_format.rs:12:14:12:38 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:16:15:16:23 | {:width$} | getParent: | gen_format.rs:16:14:16:28 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:17:15:17:19 | {:1$} | getParent: | gen_format.rs:17:14:17:31 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:21:15:21:23 | {:.prec$} | getParent: | gen_format.rs:21:14:21:28 | FormatArgsExpr | getIndex: | 1 | +| gen_format.rs:22:15:22:20 | {:.1$} | getParent: | gen_format.rs:22:14:22:31 | FormatArgsExpr | getIndex: | 1 | +| gen_format_args_arg.rs:5:26:5:27 | {} | getParent: | gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | getIndex: | 1 | +| gen_format_args_expr.rs:6:19:6:20 | {} | getParent: | gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | getIndex: | 1 | +| gen_format_args_expr.rs:6:26:6:29 | {:?} | getParent: | gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | getIndex: | 3 | +| gen_format_args_expr.rs:7:19:7:21 | {b} | getParent: | gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | getIndex: | 1 | +| gen_format_args_expr.rs:7:27:7:31 | {a:?} | getParent: | gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | getIndex: | 3 | +| gen_format_args_expr.rs:9:19:9:21 | {x} | getParent: | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getIndex: | 1 | +| gen_format_args_expr.rs:9:24:9:26 | {y} | getParent: | gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getIndex: | 3 | +| gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | getParent: | gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | getIndex: | 1 | +| gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | getParent: | gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getIndex: | 1 | getArgumentRef | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | gen_format.rs:7:22:7:26 | value | | gen_format.rs:11:15:11:20 | {name} | gen_format.rs:11:16:11:19 | name | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql index d4338607d07..5a74e34cbaf 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/Format.ql @@ -3,22 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - Format x, string getParent__label, FormatArgsExpr getParent, string getIndex__label, int getIndex, - string hasArgumentRef__label, string hasArgumentRef, string hasWidthArgument__label, - string hasWidthArgument, string hasPrecisionArgument__label, string hasPrecisionArgument + Format x, string getParent__label, FormatArgsExpr getParent, string getIndex__label, int getIndex ) { toBeTested(x) and not x.isUnknown() and getParent__label = "getParent:" and getParent = x.getParent() and getIndex__label = "getIndex:" and - getIndex = x.getIndex() and - hasArgumentRef__label = "hasArgumentRef:" and - (if x.hasArgumentRef() then hasArgumentRef = "yes" else hasArgumentRef = "no") and - hasWidthArgument__label = "hasWidthArgument:" and - (if x.hasWidthArgument() then hasWidthArgument = "yes" else hasWidthArgument = "no") and - hasPrecisionArgument__label = "hasPrecisionArgument:" and - if x.hasPrecisionArgument() then hasPrecisionArgument = "yes" else hasPrecisionArgument = "no" + getIndex = x.getIndex() } query predicate getArgumentRef(Format x, FormatArgument getArgumentRef) { diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected index 7a5d087c888..32a73ae1c7c 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.expected @@ -1,20 +1,20 @@ instances -| gen_format.rs:5:26:5:32 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:12:35:12:38 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:16:27:16:28 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:17:23:17:24 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:17:27:17:31 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:21:27:21:28 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:22:24:22:25 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format.rs:22:28:22:31 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | hasExpr: | yes | hasName: | yes | -| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | hasExpr: | yes | hasName: | yes | -| gen_format_argument.rs:7:34:7:38 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_argument.rs:7:41:7:45 | FormatArgsArg | hasExpr: | yes | hasName: | no | -| gen_format_argument.rs:7:48:7:56 | FormatArgsArg | hasExpr: | yes | hasName: | no | +| gen_format.rs:5:26:5:32 | FormatArgsArg | +| gen_format.rs:12:35:12:38 | FormatArgsArg | +| gen_format.rs:16:27:16:28 | FormatArgsArg | +| gen_format.rs:17:23:17:24 | FormatArgsArg | +| gen_format.rs:17:27:17:31 | FormatArgsArg | +| gen_format.rs:21:27:21:28 | FormatArgsArg | +| gen_format.rs:22:24:22:25 | FormatArgsArg | +| gen_format.rs:22:28:22:31 | FormatArgsArg | +| gen_format_args_arg.rs:5:32:5:38 | FormatArgsArg | +| gen_format_args_expr.rs:6:33:6:33 | FormatArgsArg | +| gen_format_args_expr.rs:6:36:6:36 | FormatArgsArg | +| gen_format_args_expr.rs:7:35:7:37 | FormatArgsArg | +| gen_format_args_expr.rs:7:40:7:42 | FormatArgsArg | +| gen_format_argument.rs:7:34:7:38 | FormatArgsArg | +| gen_format_argument.rs:7:41:7:45 | FormatArgsArg | +| gen_format_argument.rs:7:48:7:56 | FormatArgsArg | getExpr | gen_format.rs:5:26:5:32 | FormatArgsArg | gen_format.rs:5:26:5:32 | "world" | | gen_format.rs:12:35:12:38 | FormatArgsArg | gen_format.rs:12:35:12:38 | name | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql index 5da9bdc575e..d3931f98511 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsArg.ql @@ -2,16 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - FormatArgsArg x, string hasExpr__label, string hasExpr, string hasName__label, string hasName -) { - toBeTested(x) and - not x.isUnknown() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasName__label = "hasName:" and - if x.hasName() then hasName = "yes" else hasName = "no" -} +query predicate instances(FormatArgsArg x) { toBeTested(x) and not x.isUnknown() } query predicate getExpr(FormatArgsArg x, Expr getExpr) { toBeTested(x) and not x.isUnknown() and getExpr = x.getExpr() diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected index 06d53d41b5c..36afee17dac 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.expected @@ -1,19 +1,19 @@ instances -| gen_format.rs:5:14:5:32 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:7:14:7:47 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:11:14:11:35 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:12:14:12:38 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:16:14:16:28 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:17:14:17:31 | FormatArgsExpr | getNumberOfArgs: | 2 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:21:14:21:28 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format.rs:22:14:22:31 | FormatArgsExpr | getNumberOfArgs: | 2 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | getNumberOfArgs: | 1 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format_args_expr.rs:5:17:5:27 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 0 | -| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | getNumberOfArgs: | 2 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 2 | -| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | getNumberOfArgs: | 2 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 2 | -| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 2 | -| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | getNumberOfArgs: | 0 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | -| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getNumberOfArgs: | 3 | getNumberOfAttrs: | 0 | hasTemplate: | yes | getNumberOfFormats: | 1 | +| gen_format.rs:5:14:5:32 | FormatArgsExpr | +| gen_format.rs:7:14:7:47 | FormatArgsExpr | +| gen_format.rs:11:14:11:35 | FormatArgsExpr | +| gen_format.rs:12:14:12:38 | FormatArgsExpr | +| gen_format.rs:16:14:16:28 | FormatArgsExpr | +| gen_format.rs:17:14:17:31 | FormatArgsExpr | +| gen_format.rs:21:14:21:28 | FormatArgsExpr | +| gen_format.rs:22:14:22:31 | FormatArgsExpr | +| gen_format_args_arg.rs:5:17:5:39 | FormatArgsExpr | +| gen_format_args_expr.rs:5:17:5:27 | FormatArgsExpr | +| gen_format_args_expr.rs:6:17:6:37 | FormatArgsExpr | +| gen_format_args_expr.rs:7:17:7:43 | FormatArgsExpr | +| gen_format_args_expr.rs:9:17:9:28 | FormatArgsExpr | +| gen_format_argument.rs:5:14:5:47 | FormatArgsExpr | +| gen_format_argument.rs:7:14:7:56 | FormatArgsExpr | getArg | gen_format.rs:5:14:5:32 | FormatArgsExpr | 0 | gen_format.rs:5:26:5:32 | FormatArgsArg | | gen_format.rs:12:14:12:38 | FormatArgsExpr | 0 | gen_format.rs:12:35:12:38 | FormatArgsArg | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql index 25a605ba291..04e7a007e67 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgsExpr.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - FormatArgsExpr x, string getNumberOfArgs__label, int getNumberOfArgs, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTemplate__label, - string hasTemplate, string getNumberOfFormats__label, int getNumberOfFormats -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfArgs__label = "getNumberOfArgs:" and - getNumberOfArgs = x.getNumberOfArgs() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasTemplate__label = "hasTemplate:" and - (if x.hasTemplate() then hasTemplate = "yes" else hasTemplate = "no") and - getNumberOfFormats__label = "getNumberOfFormats:" and - getNumberOfFormats = x.getNumberOfFormats() -} +query predicate instances(FormatArgsExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getArg(FormatArgsExpr x, int index, FormatArgsArg getArg) { toBeTested(x) and not x.isUnknown() and getArg = x.getArg(index) diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected index 05488044629..d51a409ea94 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.expected @@ -1,23 +1,23 @@ instances -| gen_format.rs:7:22:7:26 | value | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format.rs:7:29:7:33 | width | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format.rs:7:36:7:44 | precision | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format.rs:11:16:11:19 | name | getParent: | gen_format.rs:11:15:11:20 | {name} | hasVariable: | yes | -| gen_format.rs:12:16:12:16 | 0 | getParent: | gen_format.rs:12:15:12:17 | {0} | hasVariable: | no | -| gen_format.rs:16:17:16:21 | width | getParent: | gen_format.rs:16:15:16:23 | {:width$} | hasVariable: | yes | -| gen_format.rs:17:17:17:17 | 1 | getParent: | gen_format.rs:17:15:17:19 | {:1$} | hasVariable: | no | -| gen_format.rs:21:18:21:21 | prec | getParent: | gen_format.rs:21:15:21:23 | {:.prec$} | hasVariable: | yes | -| gen_format.rs:22:18:22:18 | 1 | getParent: | gen_format.rs:22:15:22:20 | {:.1$} | hasVariable: | no | -| gen_format_args_expr.rs:7:20:7:20 | b | getParent: | gen_format_args_expr.rs:7:19:7:21 | {b} | hasVariable: | no | -| gen_format_args_expr.rs:7:28:7:28 | a | getParent: | gen_format_args_expr.rs:7:27:7:31 | {a:?} | hasVariable: | no | -| gen_format_args_expr.rs:9:20:9:20 | x | getParent: | gen_format_args_expr.rs:9:19:9:21 | {x} | hasVariable: | yes | -| gen_format_args_expr.rs:9:25:9:25 | y | getParent: | gen_format_args_expr.rs:9:24:9:26 | {y} | hasVariable: | yes | -| gen_format_argument.rs:5:22:5:26 | value | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format_argument.rs:5:29:5:33 | width | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format_argument.rs:5:36:5:44 | precision | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | hasVariable: | yes | -| gen_format_argument.rs:7:22:7:22 | 0 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | -| gen_format_argument.rs:7:25:7:25 | 1 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | -| gen_format_argument.rs:7:28:7:28 | 2 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | hasVariable: | no | +| gen_format.rs:7:22:7:26 | value | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | +| gen_format.rs:7:29:7:33 | width | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | +| gen_format.rs:7:36:7:44 | precision | getParent: | gen_format.rs:7:21:7:46 | {value:#width$.precision$} | +| gen_format.rs:11:16:11:19 | name | getParent: | gen_format.rs:11:15:11:20 | {name} | +| gen_format.rs:12:16:12:16 | 0 | getParent: | gen_format.rs:12:15:12:17 | {0} | +| gen_format.rs:16:17:16:21 | width | getParent: | gen_format.rs:16:15:16:23 | {:width$} | +| gen_format.rs:17:17:17:17 | 1 | getParent: | gen_format.rs:17:15:17:19 | {:1$} | +| gen_format.rs:21:18:21:21 | prec | getParent: | gen_format.rs:21:15:21:23 | {:.prec$} | +| gen_format.rs:22:18:22:18 | 1 | getParent: | gen_format.rs:22:15:22:20 | {:.1$} | +| gen_format_args_expr.rs:7:20:7:20 | b | getParent: | gen_format_args_expr.rs:7:19:7:21 | {b} | +| gen_format_args_expr.rs:7:28:7:28 | a | getParent: | gen_format_args_expr.rs:7:27:7:31 | {a:?} | +| gen_format_args_expr.rs:9:20:9:20 | x | getParent: | gen_format_args_expr.rs:9:19:9:21 | {x} | +| gen_format_args_expr.rs:9:25:9:25 | y | getParent: | gen_format_args_expr.rs:9:24:9:26 | {y} | +| gen_format_argument.rs:5:22:5:26 | value | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | +| gen_format_argument.rs:5:29:5:33 | width | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | +| gen_format_argument.rs:5:36:5:44 | precision | getParent: | gen_format_argument.rs:5:21:5:46 | {value:#width$.precision$} | +| gen_format_argument.rs:7:22:7:22 | 0 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | +| gen_format_argument.rs:7:25:7:25 | 1 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | +| gen_format_argument.rs:7:28:7:28 | 2 | getParent: | gen_format_argument.rs:7:21:7:30 | {0:#1$.2$} | getVariable | gen_format.rs:7:22:7:26 | value | gen_format.rs:7:22:7:26 | value | | gen_format.rs:7:29:7:33 | width | gen_format.rs:7:29:7:33 | width | diff --git a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql index 803f657e089..0c8498fba86 100644 --- a/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql +++ b/rust/ql/test/extractor-tests/generated/FormatArgsExpr/FormatArgument.ql @@ -2,16 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - FormatArgument x, string getParent__label, Format getParent, string hasVariable__label, - string hasVariable -) { +query predicate instances(FormatArgument x, string getParent__label, Format getParent) { toBeTested(x) and not x.isUnknown() and getParent__label = "getParent:" and - getParent = x.getParent() and - hasVariable__label = "hasVariable:" and - if x.hasVariable() then hasVariable = "yes" else hasVariable = "no" + getParent = x.getParent() } query predicate getVariable(FormatArgument x, FormatTemplateVariableAccess getVariable) { diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index 2bcd8aa2f59..f2df1f154b4 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,6 +1,6 @@ instances -| gen_function.rs:3:1:4:38 | fn foo | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 1 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | yes | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | yes | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | yes | -| gen_function.rs:7:5:7:13 | fn bar | hasParamList: | yes | getNumberOfAttrs: | 0 | getNumberOfParams: | 0 | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAbi: | no | hasBody: | no | hasGenericParamList: | no | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasName: | yes | hasRetType: | no | hasVisibility: | no | hasWhereClause: | no | hasImplementation: | no | +| gen_function.rs:3:1:4:38 | fn foo | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | +| gen_function.rs:7:5:7:13 | fn bar | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | getParamList | gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:7:4:14 | ParamList | | gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:11:7:12 | ParamList | diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.ql b/rust/ql/test/extractor-tests/generated/Function/Function.ql index 3eeabcbe35c..81f578573b0 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.ql +++ b/rust/ql/test/extractor-tests/generated/Function/Function.ql @@ -3,47 +3,12 @@ import codeql.rust.elements import TestUtils query predicate instances( - Function x, string hasParamList__label, string hasParamList, string getNumberOfAttrs__label, - int getNumberOfAttrs, string getNumberOfParams__label, int getNumberOfParams, - string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string hasAbi__label, string hasAbi, string hasBody__label, - string hasBody, string hasGenericParamList__label, string hasGenericParamList, - string isAsync__label, string isAsync, string isConst__label, string isConst, + Function x, string isAsync__label, string isAsync, string isConst__label, string isConst, string isDefault__label, string isDefault, string isGen__label, string isGen, - string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, - string hasRetType__label, string hasRetType, string hasVisibility__label, string hasVisibility, - string hasWhereClause__label, string hasWhereClause, string hasImplementation__label, - string hasImplementation + string isUnsafe__label, string isUnsafe, string hasImplementation__label, string hasImplementation ) { toBeTested(x) and not x.isUnknown() and - hasParamList__label = "hasParamList:" and - (if x.hasParamList() then hasParamList = "yes" else hasParamList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - hasAbi__label = "hasAbi:" and - (if x.hasAbi() then hasAbi = "yes" else hasAbi = "no") and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and isConst__label = "isConst:" and @@ -54,14 +19,6 @@ query predicate instances( (if x.isGen() then isGen = "yes" else isGen = "no") and isUnsafe__label = "isUnsafe:" and (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasRetType__label = "hasRetType:" and - (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - (if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no") and hasImplementation__label = "hasImplementation:" and if x.hasImplementation() then hasImplementation = "yes" else hasImplementation = "no" } diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected index 12c897e3ba9..79282232386 100644 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected +++ b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.expected @@ -1,5 +1,5 @@ instances -| gen_generic_arg_list.rs:5:10:5:21 | <...> | getNumberOfGenericArgs: | 2 | +| gen_generic_arg_list.rs:5:10:5:21 | <...> | getGenericArg | gen_generic_arg_list.rs:5:10:5:21 | <...> | 0 | gen_generic_arg_list.rs:5:13:5:15 | TypeArg | | gen_generic_arg_list.rs:5:10:5:21 | <...> | 1 | gen_generic_arg_list.rs:5:18:5:20 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql index 6d4d6790931..3ba930f204a 100644 --- a/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql +++ b/rust/ql/test/extractor-tests/generated/GenericArgList/GenericArgList.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - GenericArgList x, string getNumberOfGenericArgs__label, int getNumberOfGenericArgs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfGenericArgs__label = "getNumberOfGenericArgs:" and - getNumberOfGenericArgs = x.getNumberOfGenericArgs() -} +query predicate instances(GenericArgList x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericArg(GenericArgList x, int index, GenericArg getGenericArg) { toBeTested(x) and not x.isUnknown() and getGenericArg = x.getGenericArg(index) diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected index e5cfac8b7f8..be0b98eb2c5 100644 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected +++ b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.expected @@ -1,6 +1,6 @@ instances -| gen_generic_param_list.rs:5:9:5:14 | <...> | getNumberOfGenericParams: | 2 | -| gen_generic_param_list.rs:7:13:7:20 | <...> | getNumberOfGenericParams: | 2 | +| gen_generic_param_list.rs:5:9:5:14 | <...> | +| gen_generic_param_list.rs:7:13:7:20 | <...> | getGenericParam | gen_generic_param_list.rs:5:9:5:14 | <...> | 0 | gen_generic_param_list.rs:5:10:5:10 | A | | gen_generic_param_list.rs:5:9:5:14 | <...> | 1 | gen_generic_param_list.rs:5:13:5:13 | B | diff --git a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql index 3fc02a5ce09..c09637a5757 100644 --- a/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql +++ b/rust/ql/test/extractor-tests/generated/GenericParamList/GenericParamList.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - GenericParamList x, string getNumberOfGenericParams__label, int getNumberOfGenericParams -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfGenericParams__label = "getNumberOfGenericParams:" and - getNumberOfGenericParams = x.getNumberOfGenericParams() -} +query predicate instances(GenericParamList x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericParam(GenericParamList x, int index, GenericParam getGenericParam) { toBeTested(x) and not x.isUnknown() and getGenericParam = x.getGenericParam(index) diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected index b70e2bfec0c..931a1e9069a 100644 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected +++ b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.expected @@ -1,6 +1,6 @@ instances -| gen_ident_pat.rs:6:22:6:22 | y | getNumberOfAttrs: | 0 | isMut: | no | isRef: | no | hasName: | yes | hasPat: | no | -| gen_ident_pat.rs:10:9:10:25 | y @ ... | getNumberOfAttrs: | 0 | isMut: | no | isRef: | no | hasName: | yes | hasPat: | yes | +| gen_ident_pat.rs:6:22:6:22 | y | isMut: | no | isRef: | no | +| gen_ident_pat.rs:10:9:10:25 | y @ ... | isMut: | no | isRef: | no | getAttr getName | gen_ident_pat.rs:6:22:6:22 | y | gen_ident_pat.rs:6:22:6:22 | y | diff --git a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql index 11414905db3..a70bc32ca79 100644 --- a/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql +++ b/rust/ql/test/extractor-tests/generated/IdentPat/IdentPat.ql @@ -3,22 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - IdentPat x, string getNumberOfAttrs__label, int getNumberOfAttrs, string isMut__label, - string isMut, string isRef__label, string isRef, string hasName__label, string hasName, - string hasPat__label, string hasPat + IdentPat x, string isMut__label, string isMut, string isRef__label, string isRef ) { toBeTested(x) and not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and isRef__label = "isRef:" and - (if x.isRef() then isRef = "yes" else isRef = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" + if x.isRef() then isRef = "yes" else isRef = "no" } query predicate getAttr(IdentPat x, int index, Attr getAttr) { diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected index e4f4ca3a621..3051c69d10e 100644 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected +++ b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.expected @@ -1,6 +1,6 @@ instances -| gen_if_expr.rs:5:5:7:5 | if ... {...} | getNumberOfAttrs: | 0 | hasCondition: | yes | hasElse: | no | hasThen: | yes | -| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | getNumberOfAttrs: | 0 | hasCondition: | yes | hasElse: | yes | hasThen: | yes | +| gen_if_expr.rs:5:5:7:5 | if ... {...} | +| gen_if_expr.rs:8:13:12:5 | if ... {...} else {...} | getAttr getCondition | gen_if_expr.rs:5:5:7:5 | if ... {...} | gen_if_expr.rs:5:8:5:14 | ... == ... | diff --git a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql index 68623b44d2e..c41248fa322 100644 --- a/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql +++ b/rust/ql/test/extractor-tests/generated/IfExpr/IfExpr.ql @@ -2,21 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - IfExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasCondition__label, - string hasCondition, string hasElse__label, string hasElse, string hasThen__label, string hasThen -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasCondition__label = "hasCondition:" and - (if x.hasCondition() then hasCondition = "yes" else hasCondition = "no") and - hasElse__label = "hasElse:" and - (if x.hasElse() then hasElse = "yes" else hasElse = "no") and - hasThen__label = "hasThen:" and - if x.hasThen() then hasThen = "yes" else hasThen = "no" -} +query predicate instances(IfExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(IfExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.expected b/rust/ql/test/extractor-tests/generated/Impl/Impl.expected index 8984fd58233..2a47a4e20f6 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.expected +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.expected @@ -1,5 +1,5 @@ instances -| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isConst: | no | isDefault: | no | isUnsafe: | no | hasSelfTy: | yes | hasTrait: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_impl.rs:4:5:9:5 | impl MyTrait for MyType { ... } | isConst: | no | isDefault: | no | isUnsafe: | no | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql index d8f94a612ad..c64bae752c3 100644 --- a/rust/ql/test/extractor-tests/generated/Impl/Impl.ql +++ b/rust/ql/test/extractor-tests/generated/Impl/Impl.ql @@ -3,51 +3,17 @@ import codeql.rust.elements import TestUtils query predicate instances( - Impl x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string hasAssocItemList__label, string hasAssocItemList, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasGenericParamList__label, - string hasGenericParamList, string isConst__label, string isConst, string isDefault__label, - string isDefault, string isUnsafe__label, string isUnsafe, string hasSelfTy__label, - string hasSelfTy, string hasTrait__label, string hasTrait, string hasVisibility__label, - string hasVisibility, string hasWhereClause__label, string hasWhereClause + Impl x, string isConst__label, string isConst, string isDefault__label, string isDefault, + string isUnsafe__label, string isUnsafe ) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - hasAssocItemList__label = "hasAssocItemList:" and - (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and isDefault__label = "isDefault:" and (if x.isDefault() then isDefault = "yes" else isDefault = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasSelfTy__label = "hasSelfTy:" and - (if x.hasSelfTy() then hasSelfTy = "yes" else hasSelfTy = "no") and - hasTrait__label = "hasTrait:" and - (if x.hasTrait() then hasTrait = "yes" else hasTrait = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getExtendedCanonicalPath(Impl x, string getExtendedCanonicalPath) { diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected index fc8f34a4858..aa04363dc44 100644 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.expected @@ -1,4 +1,4 @@ instances -| gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | hasTypeBoundList: | yes | +| gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | getTypeBoundList | gen_impl_trait_type_repr.rs:7:17:7:41 | ImplTraitTypeRepr | gen_impl_trait_type_repr.rs:7:22:7:41 | TypeBoundList | diff --git a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql index d46c574cf36..e877ba909ff 100644 --- a/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ImplTraitTypeRepr/ImplTraitTypeRepr.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ImplTraitTypeRepr x, string hasTypeBoundList__label, string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(ImplTraitTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeBoundList(ImplTraitTypeRepr x, TypeBoundList getTypeBoundList) { toBeTested(x) and not x.isUnknown() and getTypeBoundList = x.getTypeBoundList() diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected index 68d241a9f93..d951344b17e 100644 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected +++ b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.expected @@ -1,6 +1,6 @@ instances -| gen_index_expr.rs:5:5:5:12 | list[42] | getNumberOfAttrs: | 0 | hasBase: | yes | hasIndex: | yes | -| gen_index_expr.rs:6:5:6:12 | list[42] | getNumberOfAttrs: | 0 | hasBase: | yes | hasIndex: | yes | +| gen_index_expr.rs:5:5:5:12 | list[42] | +| gen_index_expr.rs:6:5:6:12 | list[42] | getAttr getBase | gen_index_expr.rs:5:5:5:12 | list[42] | gen_index_expr.rs:5:5:5:8 | list | diff --git a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql index f899d8c5995..a7a870b1423 100644 --- a/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql +++ b/rust/ql/test/extractor-tests/generated/IndexExpr/IndexExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - IndexExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasBase__label, - string hasBase, string hasIndex__label, string hasIndex -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasBase__label = "hasBase:" and - (if x.hasBase() then hasBase = "yes" else hasBase = "no") and - hasIndex__label = "hasIndex:" and - if x.hasIndex() then hasIndex = "yes" else hasIndex = "no" -} +query predicate instances(IndexExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(IndexExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected index 1f5e35e1d2b..2efc834b622 100644 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected +++ b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.expected @@ -1,5 +1,5 @@ instances -| gen_item_list.rs:7:11:10:5 | ItemList | getNumberOfAttrs: | 0 | getNumberOfItems: | 2 | +| gen_item_list.rs:7:11:10:5 | ItemList | getAttr getItem | gen_item_list.rs:7:11:10:5 | ItemList | 0 | gen_item_list.rs:8:9:8:19 | fn foo | diff --git a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql index 8272b2d6ab9..015b8f79125 100644 --- a/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql +++ b/rust/ql/test/extractor-tests/generated/ItemList/ItemList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ItemList x, string getNumberOfAttrs__label, int getNumberOfAttrs, string getNumberOfItems__label, - int getNumberOfItems -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfItems__label = "getNumberOfItems:" and - getNumberOfItems = x.getNumberOfItems() -} +query predicate instances(ItemList x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(ItemList x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Label/Label.expected b/rust/ql/test/extractor-tests/generated/Label/Label.expected index 567a5114c57..1028afbe3f6 100644 --- a/rust/ql/test/extractor-tests/generated/Label/Label.expected +++ b/rust/ql/test/extractor-tests/generated/Label/Label.expected @@ -1,4 +1,4 @@ instances -| gen_label.rs:5:5:5:11 | 'label | hasLifetime: | yes | +| gen_label.rs:5:5:5:11 | 'label | getLifetime | gen_label.rs:5:5:5:11 | 'label | gen_label.rs:5:5:5:10 | 'label | diff --git a/rust/ql/test/extractor-tests/generated/Label/Label.ql b/rust/ql/test/extractor-tests/generated/Label/Label.ql index 55e2e69abb0..e8cfb2a2b13 100644 --- a/rust/ql/test/extractor-tests/generated/Label/Label.ql +++ b/rust/ql/test/extractor-tests/generated/Label/Label.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Label x, string hasLifetime__label, string hasLifetime) { - toBeTested(x) and - not x.isUnknown() and - hasLifetime__label = "hasLifetime:" and - if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -} +query predicate instances(Label x) { toBeTested(x) and not x.isUnknown() } query predicate getLifetime(Label x, Lifetime getLifetime) { toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected index 550258840ce..f0816731e30 100644 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected +++ b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.expected @@ -1,4 +1,4 @@ instances -| gen_let_else.rs:7:23:9:5 | else {...} | hasBlockExpr: | yes | +| gen_let_else.rs:7:23:9:5 | else {...} | getBlockExpr | gen_let_else.rs:7:23:9:5 | else {...} | gen_let_else.rs:7:28:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql index e09442cec21..12302dcd6fa 100644 --- a/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql +++ b/rust/ql/test/extractor-tests/generated/LetElse/LetElse.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(LetElse x, string hasBlockExpr__label, string hasBlockExpr) { - toBeTested(x) and - not x.isUnknown() and - hasBlockExpr__label = "hasBlockExpr:" and - if x.hasBlockExpr() then hasBlockExpr = "yes" else hasBlockExpr = "no" -} +query predicate instances(LetElse x) { toBeTested(x) and not x.isUnknown() } query predicate getBlockExpr(LetElse x, BlockExpr getBlockExpr) { toBeTested(x) and not x.isUnknown() and getBlockExpr = x.getBlockExpr() diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected index 4d6657846b1..ad1544b9f97 100644 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.expected @@ -1,5 +1,5 @@ instances -| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasPat: | yes | +| gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | getAttr getScrutinee | gen_let_expr.rs:5:8:5:31 | let ... = maybe_some | gen_let_expr.rs:5:22:5:31 | maybe_some | diff --git a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql index 6947eb900db..2f8de7cd2d7 100644 --- a/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LetExpr/LetExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - LetExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasScrutinee__label, - string hasScrutinee, string hasPat__label, string hasPat -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasScrutinee__label = "hasScrutinee:" and - (if x.hasScrutinee() then hasScrutinee = "yes" else hasScrutinee = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(LetExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(LetExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected index 3518fb2b863..235eb5e04b5 100644 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected +++ b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.expected @@ -1,10 +1,10 @@ instances -| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | -| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | yes | -| gen_let_stmt.rs:7:5:7:15 | let ... | getNumberOfAttrs: | 0 | hasInitializer: | no | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | yes | -| gen_let_stmt.rs:8:5:8:10 | let ... | getNumberOfAttrs: | 0 | hasInitializer: | no | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | -| gen_let_stmt.rs:9:5:9:24 | let ... = ... | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | no | hasPat: | yes | hasTypeRepr: | no | -| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | getNumberOfAttrs: | 0 | hasInitializer: | yes | hasLetElse: | yes | hasPat: | yes | hasTypeRepr: | no | +| gen_let_stmt.rs:5:5:5:15 | let ... = 42 | +| gen_let_stmt.rs:6:5:6:20 | let ... = 42 | +| gen_let_stmt.rs:7:5:7:15 | let ... | +| gen_let_stmt.rs:8:5:8:10 | let ... | +| gen_let_stmt.rs:9:5:9:24 | let ... = ... | +| gen_let_stmt.rs:10:5:12:6 | let ... = ... else {...} | getAttr getInitializer | gen_let_stmt.rs:5:5:5:15 | let ... = 42 | gen_let_stmt.rs:5:13:5:14 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql index 34a6ba11adf..07feca93399 100644 --- a/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql +++ b/rust/ql/test/extractor-tests/generated/LetStmt/LetStmt.ql @@ -2,24 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - LetStmt x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasInitializer__label, - string hasInitializer, string hasLetElse__label, string hasLetElse, string hasPat__label, - string hasPat, string hasTypeRepr__label, string hasTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasInitializer__label = "hasInitializer:" and - (if x.hasInitializer() then hasInitializer = "yes" else hasInitializer = "no") and - hasLetElse__label = "hasLetElse:" and - (if x.hasLetElse() then hasLetElse = "yes" else hasLetElse = "no") and - hasPat__label = "hasPat:" and - (if x.hasPat() then hasPat = "yes" else hasPat = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(LetStmt x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(LetStmt x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected index c56c25c82b4..e55b5553b5c 100644 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected +++ b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.expected @@ -1,6 +1,6 @@ instances -| gen_lifetime.rs:7:12:7:13 | 'a | hasText: | yes | -| gen_lifetime.rs:7:20:7:21 | 'a | hasText: | yes | +| gen_lifetime.rs:7:12:7:13 | 'a | +| gen_lifetime.rs:7:20:7:21 | 'a | getText | gen_lifetime.rs:7:12:7:13 | 'a | 'a | | gen_lifetime.rs:7:20:7:21 | 'a | 'a | diff --git a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql index da18e00fec8..fa2a2e90910 100644 --- a/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql +++ b/rust/ql/test/extractor-tests/generated/Lifetime/Lifetime.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Lifetime x, string hasText__label, string hasText) { - toBeTested(x) and - not x.isUnknown() and - hasText__label = "hasText:" and - if x.hasText() then hasText = "yes" else hasText = "no" -} +query predicate instances(Lifetime x) { toBeTested(x) and not x.isUnknown() } query predicate getText(Lifetime x, string getText) { toBeTested(x) and not x.isUnknown() and getText = x.getText() diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected index 7e443594c8a..0e80f0af319 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected +++ b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.expected @@ -1,4 +1,4 @@ instances -| gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | hasLifetime: | yes | +| gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | getLifetime | gen_lifetime_arg.rs:7:20:7:21 | LifetimeArg | gen_lifetime_arg.rs:7:20:7:21 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql index 46bcdc8080a..9d0c48958d8 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql +++ b/rust/ql/test/extractor-tests/generated/LifetimeArg/LifetimeArg.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(LifetimeArg x, string hasLifetime__label, string hasLifetime) { - toBeTested(x) and - not x.isUnknown() and - hasLifetime__label = "hasLifetime:" and - if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no" -} +query predicate instances(LifetimeArg x) { toBeTested(x) and not x.isUnknown() } query predicate getLifetime(LifetimeArg x, Lifetime getLifetime) { toBeTested(x) and not x.isUnknown() and getLifetime = x.getLifetime() diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected index c6ac19d43d2..7e33b58d17f 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected +++ b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.expected @@ -1,5 +1,5 @@ instances -| gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | getNumberOfAttrs: | 0 | hasLifetime: | yes | hasTypeBoundList: | no | +| gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | getAttr getLifetime | gen_lifetime_param.rs:7:12:7:13 | LifetimeParam | gen_lifetime_param.rs:7:12:7:13 | 'a | diff --git a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql index bae165c98f0..bddc4418ba4 100644 --- a/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql +++ b/rust/ql/test/extractor-tests/generated/LifetimeParam/LifetimeParam.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - LifetimeParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasLifetime__label, - string hasLifetime, string hasTypeBoundList__label, string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasLifetime__label = "hasLifetime:" and - (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(LifetimeParam x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(LifetimeParam x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected index 402e4027459..1cd7c4573ee 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.expected @@ -1,12 +1,12 @@ instances -| gen_literal_expr.rs:5:5:5:6 | 42 | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:6:5:6:8 | 42.0 | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:7:5:7:19 | "Hello, world!" | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:8:5:8:20 | b"Hello, world!" | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:9:5:9:7 | 'x' | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:10:5:10:8 | b'x' | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:11:5:11:20 | r"Hello, world!" | getNumberOfAttrs: | 0 | hasTextValue: | yes | -| gen_literal_expr.rs:12:5:12:8 | true | getNumberOfAttrs: | 0 | hasTextValue: | yes | +| gen_literal_expr.rs:5:5:5:6 | 42 | +| gen_literal_expr.rs:6:5:6:8 | 42.0 | +| gen_literal_expr.rs:7:5:7:19 | "Hello, world!" | +| gen_literal_expr.rs:8:5:8:20 | b"Hello, world!" | +| gen_literal_expr.rs:9:5:9:7 | 'x' | +| gen_literal_expr.rs:10:5:10:8 | b'x' | +| gen_literal_expr.rs:11:5:11:20 | r"Hello, world!" | +| gen_literal_expr.rs:12:5:12:8 | true | getAttr getTextValue | gen_literal_expr.rs:5:5:5:6 | 42 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql index 1fd80258c3d..0b49e28cff2 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LiteralExpr/LiteralExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - LiteralExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTextValue__label, - string hasTextValue -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasTextValue__label = "hasTextValue:" and - if x.hasTextValue() then hasTextValue = "yes" else hasTextValue = "no" -} +query predicate instances(LiteralExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(LiteralExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected index e5995b6603d..104913be1a1 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected +++ b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.expected @@ -1,4 +1,4 @@ instances -| gen_literal_pat.rs:6:9:6:10 | 42 | hasLiteral: | yes | +| gen_literal_pat.rs:6:9:6:10 | 42 | getLiteral | gen_literal_pat.rs:6:9:6:10 | 42 | gen_literal_pat.rs:6:9:6:10 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql index 7923514d942..ede49533726 100644 --- a/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql +++ b/rust/ql/test/extractor-tests/generated/LiteralPat/LiteralPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(LiteralPat x, string hasLiteral__label, string hasLiteral) { - toBeTested(x) and - not x.isUnknown() and - hasLiteral__label = "hasLiteral:" and - if x.hasLiteral() then hasLiteral = "yes" else hasLiteral = "no" -} +query predicate instances(LiteralPat x) { toBeTested(x) and not x.isUnknown() } query predicate getLiteral(LiteralPat x, LiteralExpr getLiteral) { toBeTested(x) and not x.isUnknown() and getLiteral = x.getLiteral() diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected index 2266e27c495..970ebd6911b 100644 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected +++ b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.expected @@ -1,7 +1,7 @@ instances -| gen_loop_expr.rs:5:5:7:5 | loop { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | -| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | hasLabel: | yes | hasLoopBody: | yes | getNumberOfAttrs: | 0 | -| gen_loop_expr.rs:13:5:19:5 | loop { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | +| gen_loop_expr.rs:5:5:7:5 | loop { ... } | +| gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | +| gen_loop_expr.rs:13:5:19:5 | loop { ... } | getLabel | gen_loop_expr.rs:8:5:11:5 | 'label: loop { ... } | gen_loop_expr.rs:8:5:8:11 | 'label | getLoopBody diff --git a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql index a4d08c56bff..c266b1c064e 100644 --- a/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql +++ b/rust/ql/test/extractor-tests/generated/LoopExpr/LoopExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - LoopExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, - string hasLoopBody, string getNumberOfAttrs__label, int getNumberOfAttrs -) { - toBeTested(x) and - not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and - hasLoopBody__label = "hasLoopBody:" and - (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(LoopExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getLabel(LoopExpr x, Label getLabel) { toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected index ddcc6c03f09..67d330d937e 100644 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.expected @@ -1,5 +1,5 @@ instances -| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | hasTailExpr: | yes | getNumberOfStatements: | 0 | +| gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | getTailExpr | gen_macro_block_expr.rs:5:14:5:28 | MacroBlockExpr | gen_macro_block_expr.rs:5:14:5:28 | { ... } | getStatement diff --git a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql index 6dfa2128609..82502ad4ec0 100644 --- a/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroBlockExpr/MacroBlockExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MacroBlockExpr x, string hasTailExpr__label, string hasTailExpr, - string getNumberOfStatements__label, int getNumberOfStatements -) { - toBeTested(x) and - not x.isUnknown() and - hasTailExpr__label = "hasTailExpr:" and - (if x.hasTailExpr() then hasTailExpr = "yes" else hasTailExpr = "no") and - getNumberOfStatements__label = "getNumberOfStatements:" and - getNumberOfStatements = x.getNumberOfStatements() -} +query predicate instances(MacroBlockExpr x) { toBeTested(x) and not x.isUnknown() } 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/MacroCall/MacroCall.expected b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected index d39e22f331f..0fae1d5e49d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.expected @@ -1,6 +1,6 @@ instances -| gen_macro_call.rs:7:5:7:29 | println!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasMacroCallExpansion: | yes | -| gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasPath: | yes | hasTokenTree: | yes | hasMacroCallExpansion: | yes | +| gen_macro_call.rs:7:5:7:29 | println!... | +| gen_macro_call.rs:7:14:7:28 | ...::format_args_nl!... | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql index ca0c5d1d28f..48fddccf341 100644 --- a/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql +++ b/rust/ql/test/extractor-tests/generated/MacroCall/MacroCall.ql @@ -2,38 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MacroCall x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasPath__label, string hasPath, string hasTokenTree__label, string hasTokenTree, - string hasMacroCallExpansion__label, string hasMacroCallExpansion -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - hasTokenTree__label = "hasTokenTree:" and - (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and - hasMacroCallExpansion__label = "hasMacroCallExpansion:" and - if x.hasMacroCallExpansion() then hasMacroCallExpansion = "yes" else hasMacroCallExpansion = "no" -} +query predicate instances(MacroCall x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(MacroCall x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected index 44df502e99a..b9b6ddc10cd 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.expected @@ -1,5 +1,5 @@ instances -| gen_macro_def.rs:4:5:9:5 | MacroDef | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | hasArgs: | yes | getNumberOfAttrs: | 0 | hasBody: | yes | hasName: | yes | hasVisibility: | yes | +| gen_macro_def.rs:4:5:9:5 | MacroDef | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql index cd18500210a..e85173597cb 100644 --- a/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql +++ b/rust/ql/test/extractor-tests/generated/MacroDef/MacroDef.ql @@ -2,40 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MacroDef x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string hasArgs__label, string hasArgs, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasBody__label, string hasBody, - string hasName__label, string hasName, string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - hasArgs__label = "hasArgs:" and - (if x.hasArgs() then hasArgs = "yes" else hasArgs = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(MacroDef x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(MacroDef x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected index 552aa2b6c5c..32cb0efaaef 100644 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.expected @@ -1,4 +1,4 @@ instances -| gen_macro_expr.rs:7:13:7:25 | MacroExpr | hasMacroCall: | yes | +| gen_macro_expr.rs:7:13:7:25 | MacroExpr | getMacroCall | gen_macro_expr.rs:7:13:7:25 | MacroExpr | gen_macro_expr.rs:7:13:7:25 | vec!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql index ec98b02d40d..0787ed7392c 100644 --- a/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroExpr/MacroExpr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(MacroExpr x, string hasMacroCall__label, string hasMacroCall) { - toBeTested(x) and - not x.isUnknown() and - hasMacroCall__label = "hasMacroCall:" and - if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -} +query predicate instances(MacroExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getMacroCall(MacroExpr x, MacroCall getMacroCall) { toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected index 03c22ed5d1d..90daafd5817 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.expected @@ -1,6 +1,6 @@ instances -| gen_macro_items.rs:5:5:5:38 | MacroItems | getNumberOfItems: | 2 | -| gen_macro_items.rs:13:12:13:14 | MacroItems | getNumberOfItems: | 1 | +| gen_macro_items.rs:5:5:5:38 | MacroItems | +| gen_macro_items.rs:13:12:13:14 | MacroItems | getItem | gen_macro_items.rs:5:5:5:38 | MacroItems | 0 | gen_macro_items.rs:5:5:5:38 | use ...::Path | | gen_macro_items.rs:5:5:5:38 | MacroItems | 1 | gen_macro_items.rs:5:5:5:38 | fn get_parent | diff --git a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql index e0b156e5f52..3a9cd1c8499 100644 --- a/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql +++ b/rust/ql/test/extractor-tests/generated/MacroItems/MacroItems.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(MacroItems x, string getNumberOfItems__label, int getNumberOfItems) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfItems__label = "getNumberOfItems:" and - getNumberOfItems = x.getNumberOfItems() -} +query predicate instances(MacroItems x) { toBeTested(x) and not x.isUnknown() } query predicate getItem(MacroItems x, int index, Item getItem) { toBeTested(x) and not x.isUnknown() and getItem = x.getItem(index) diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected index 8849d48a788..029b7554987 100644 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected +++ b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.expected @@ -1,4 +1,4 @@ instances -| gen_macro_pat.rs:13:9:13:19 | MacroPat | hasMacroCall: | yes | +| gen_macro_pat.rs:13:9:13:19 | MacroPat | getMacroCall | gen_macro_pat.rs:13:9:13:19 | MacroPat | gen_macro_pat.rs:13:9:13:19 | my_macro!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql index 29ee657cf7b..6d9d7ba17fd 100644 --- a/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql +++ b/rust/ql/test/extractor-tests/generated/MacroPat/MacroPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(MacroPat x, string hasMacroCall__label, string hasMacroCall) { - toBeTested(x) and - not x.isUnknown() and - hasMacroCall__label = "hasMacroCall:" and - if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -} +query predicate instances(MacroPat x) { toBeTested(x) and not x.isUnknown() } query predicate getMacroCall(MacroPat x, MacroCall getMacroCall) { toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected index 02be2612b26..4bfb98220f2 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.expected @@ -1,5 +1,5 @@ instances -| gen_macro_rules.rs:4:5:9:5 | MacroRules | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasName: | yes | hasTokenTree: | yes | hasVisibility: | no | +| gen_macro_rules.rs:4:5:9:5 | MacroRules | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql index 09b4f896913..ef051f77c9e 100644 --- a/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql +++ b/rust/ql/test/extractor-tests/generated/MacroRules/MacroRules.ql @@ -2,38 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MacroRules x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasName__label, string hasName, string hasTokenTree__label, string hasTokenTree, - string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTokenTree__label = "hasTokenTree:" and - (if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(MacroRules x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(MacroRules x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected index afc7a2cd6a4..4047903cc5e 100644 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.expected @@ -1,4 +1,4 @@ instances -| gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | hasMacroCall: | yes | +| gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | getMacroCall | gen_macro_type_repr.rs:10:14:10:26 | MacroTypeRepr | gen_macro_type_repr.rs:10:14:10:26 | macro_type!... | diff --git a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql index 026653c1709..d946ec6d05d 100644 --- a/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/MacroTypeRepr/MacroTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(MacroTypeRepr x, string hasMacroCall__label, string hasMacroCall) { - toBeTested(x) and - not x.isUnknown() and - hasMacroCall__label = "hasMacroCall:" and - if x.hasMacroCall() then hasMacroCall = "yes" else hasMacroCall = "no" -} +query predicate instances(MacroTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getMacroCall(MacroTypeRepr x, MacroCall getMacroCall) { toBeTested(x) and not x.isUnknown() and getMacroCall = x.getMacroCall() diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected index 469d2098b99..964af263cd7 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected +++ b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.expected @@ -1,8 +1,8 @@ instances -| gen_match_arm.rs:6:9:6:29 | ... => y | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | -| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | -| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | yes | hasPat: | yes | -| gen_match_arm.rs:11:9:11:15 | _ => 0 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasGuard: | no | hasPat: | yes | +| gen_match_arm.rs:6:9:6:29 | ... => y | +| gen_match_arm.rs:7:9:7:26 | ...::None => 0 | +| gen_match_arm.rs:10:9:10:35 | ... if ... => ... | +| gen_match_arm.rs:11:9:11:15 | _ => 0 | getAttr getExpr | gen_match_arm.rs:6:9:6:29 | ... => y | gen_match_arm.rs:6:28:6:28 | y | diff --git a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql index b2b197d7d64..11450061ab0 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql +++ b/rust/ql/test/extractor-tests/generated/MatchArm/MatchArm.ql @@ -2,21 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MatchArm x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string hasGuard__label, string hasGuard, string hasPat__label, string hasPat -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasGuard__label = "hasGuard:" and - (if x.hasGuard() then hasGuard = "yes" else hasGuard = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(MatchArm x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(MatchArm x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected index c3b2d8d0fb0..fec09a4f9ba 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected +++ b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.expected @@ -1,5 +1,5 @@ instances -| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | getNumberOfArms: | 3 | getNumberOfAttrs: | 0 | +| gen_match_arm_list.rs:7:13:11:5 | MatchArmList | getArm | gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 0 | gen_match_arm_list.rs:8:9:8:19 | 1 => "one" | | gen_match_arm_list.rs:7:13:11:5 | MatchArmList | 1 | gen_match_arm_list.rs:9:9:9:19 | 2 => "two" | diff --git a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql index e255b1bd137..5565aeafc7d 100644 --- a/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql +++ b/rust/ql/test/extractor-tests/generated/MatchArmList/MatchArmList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MatchArmList x, string getNumberOfArms__label, int getNumberOfArms, - string getNumberOfAttrs__label, int getNumberOfAttrs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfArms__label = "getNumberOfArms:" and - getNumberOfArms = x.getNumberOfArms() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(MatchArmList x) { toBeTested(x) and not x.isUnknown() } query predicate getArm(MatchArmList x, int index, MatchArm getArm) { toBeTested(x) and not x.isUnknown() and getArm = x.getArm(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected index 10d265e63b1..9648a7aa6c7 100644 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.expected @@ -1,6 +1,6 @@ instances -| gen_match_expr.rs:5:5:8:5 | match x { ... } | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasMatchArmList: | yes | -| gen_match_expr.rs:9:5:12:5 | match x { ... } | getNumberOfAttrs: | 0 | hasScrutinee: | yes | hasMatchArmList: | yes | +| gen_match_expr.rs:5:5:8:5 | match x { ... } | +| gen_match_expr.rs:9:5:12:5 | match x { ... } | getAttr getScrutinee | gen_match_expr.rs:5:5:8:5 | match x { ... } | gen_match_expr.rs:5:11:5:11 | x | diff --git a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql index 9a57f43eda4..c8cc9448d5e 100644 --- a/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MatchExpr/MatchExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MatchExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasScrutinee__label, - string hasScrutinee, string hasMatchArmList__label, string hasMatchArmList -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasScrutinee__label = "hasScrutinee:" and - (if x.hasScrutinee() then hasScrutinee = "yes" else hasScrutinee = "no") and - hasMatchArmList__label = "hasMatchArmList:" and - if x.hasMatchArmList() then hasMatchArmList = "yes" else hasMatchArmList = "no" -} +query predicate instances(MatchExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(MatchExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected index dc85bdda7a1..bcddfde4c26 100644 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected +++ b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.expected @@ -1,4 +1,4 @@ instances -| gen_match_guard.rs:8:11:8:18 | MatchGuard | hasCondition: | yes | +| gen_match_guard.rs:8:11:8:18 | MatchGuard | getCondition | gen_match_guard.rs:8:11:8:18 | MatchGuard | gen_match_guard.rs:8:14:8:18 | ... > ... | diff --git a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql index 71038463195..b7051db22d6 100644 --- a/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql +++ b/rust/ql/test/extractor-tests/generated/MatchGuard/MatchGuard.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(MatchGuard x, string hasCondition__label, string hasCondition) { - toBeTested(x) and - not x.isUnknown() and - hasCondition__label = "hasCondition:" and - if x.hasCondition() then hasCondition = "yes" else hasCondition = "no" -} +query predicate instances(MatchGuard x) { toBeTested(x) and not x.isUnknown() } query predicate getCondition(MatchGuard x, Expr getCondition) { toBeTested(x) and not x.isUnknown() and getCondition = x.getCondition() diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta.expected b/rust/ql/test/extractor-tests/generated/Meta/Meta.expected index 94a040700ec..92385fa4da9 100644 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta.expected +++ b/rust/ql/test/extractor-tests/generated/Meta/Meta.expected @@ -1,6 +1,6 @@ instances -| gen_meta.rs:7:7:7:46 | Meta | hasExpr: | yes | isUnsafe: | yes | hasPath: | yes | hasTokenTree: | no | -| gen_meta.rs:9:7:9:72 | Meta | hasExpr: | no | isUnsafe: | no | hasPath: | yes | hasTokenTree: | yes | +| gen_meta.rs:7:7:7:46 | Meta | isUnsafe: | yes | +| gen_meta.rs:9:7:9:72 | Meta | isUnsafe: | no | getExpr | gen_meta.rs:7:7:7:46 | Meta | gen_meta.rs:7:27:7:45 | "reason_for_bypass" | getPath diff --git a/rust/ql/test/extractor-tests/generated/Meta/Meta.ql b/rust/ql/test/extractor-tests/generated/Meta/Meta.ql index 158986f1db3..dd054ea7e99 100644 --- a/rust/ql/test/extractor-tests/generated/Meta/Meta.ql +++ b/rust/ql/test/extractor-tests/generated/Meta/Meta.ql @@ -2,20 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Meta x, string hasExpr__label, string hasExpr, string isUnsafe__label, string isUnsafe, - string hasPath__label, string hasPath, string hasTokenTree__label, string hasTokenTree -) { +query predicate instances(Meta x, string isUnsafe__label, string isUnsafe) { toBeTested(x) and not x.isUnknown() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - hasTokenTree__label = "hasTokenTree:" and - if x.hasTokenTree() then hasTokenTree = "yes" else hasTokenTree = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getExpr(Meta x, Expr getExpr) { diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected index abb0f11e089..61054a3841a 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.expected @@ -1,6 +1,6 @@ instances -| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | no | hasIdentifier: | yes | hasReceiver: | yes | -| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | hasArgList: | yes | getNumberOfAttrs: | 0 | getNumberOfArgs: | 1 | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasGenericArgList: | yes | hasIdentifier: | yes | hasReceiver: | yes | +| gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | +| gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | getArgList | gen_method_call_expr.rs:5:5:5:13 | x.foo(...) | gen_method_call_expr.rs:5:10:5:13 | ArgList | | gen_method_call_expr.rs:6:5:6:25 | x.foo(...) | gen_method_call_expr.rs:6:22:6:25 | ArgList | diff --git a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql index 5d515f99a2b..73ddf8e7d2e 100644 --- a/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql +++ b/rust/ql/test/extractor-tests/generated/MethodCallExpr/MethodCallExpr.ql @@ -2,36 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - MethodCallExpr x, string hasArgList__label, string hasArgList, string getNumberOfAttrs__label, - int getNumberOfAttrs, string getNumberOfArgs__label, int getNumberOfArgs, - string hasResolvedPath__label, string hasResolvedPath, string hasResolvedCrateOrigin__label, - string hasResolvedCrateOrigin, string hasGenericArgList__label, string hasGenericArgList, - string hasIdentifier__label, string hasIdentifier, string hasReceiver__label, string hasReceiver -) { - toBeTested(x) and - not x.isUnknown() and - hasArgList__label = "hasArgList:" and - (if x.hasArgList() then hasArgList = "yes" else hasArgList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfArgs__label = "getNumberOfArgs:" and - getNumberOfArgs = x.getNumberOfArgs() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasGenericArgList__label = "hasGenericArgList:" and - (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and - hasIdentifier__label = "hasIdentifier:" and - (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and - hasReceiver__label = "hasReceiver:" and - if x.hasReceiver() then hasReceiver = "yes" else hasReceiver = "no" -} +query predicate instances(MethodCallExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getArgList(MethodCallExpr x, ArgList getArgList) { toBeTested(x) and not x.isUnknown() and getArgList = x.getArgList() diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.expected b/rust/ql/test/extractor-tests/generated/Module/Module.expected index b1d63ea22fa..a742b7145d3 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.expected +++ b/rust/ql/test/extractor-tests/generated/Module/Module.expected @@ -1,7 +1,7 @@ instances -| gen_module.rs:3:1:4:8 | mod foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | -| gen_module.rs:5:1:7:1 | mod bar | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | yes | hasName: | yes | hasVisibility: | no | -| lib.rs:1:1:1:15 | mod gen_module | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasItemList: | no | hasName: | yes | hasVisibility: | no | +| gen_module.rs:3:1:4:8 | mod foo | +| gen_module.rs:5:1:7:1 | mod bar | +| lib.rs:1:1:1:15 | mod gen_module | getExtendedCanonicalPath | gen_module.rs:3:1:4:8 | mod foo | crate::gen_module::foo | | gen_module.rs:5:1:7:1 | mod bar | crate::gen_module::bar | diff --git a/rust/ql/test/extractor-tests/generated/Module/Module.ql b/rust/ql/test/extractor-tests/generated/Module/Module.ql index 638cba130dd..48a141bbc1f 100644 --- a/rust/ql/test/extractor-tests/generated/Module/Module.ql +++ b/rust/ql/test/extractor-tests/generated/Module/Module.ql @@ -2,38 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Module x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasItemList__label, string hasItemList, string hasName__label, string hasName, - string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasItemList__label = "hasItemList:" and - (if x.hasItemList() then hasItemList = "yes" else hasItemList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(Module x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Module x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Name/Name.expected b/rust/ql/test/extractor-tests/generated/Name/Name.expected index d32b6f0e228..2bcd496ef2e 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name.expected +++ b/rust/ql/test/extractor-tests/generated/Name/Name.expected @@ -1,7 +1,7 @@ instances -| gen_name.rs:3:4:3:12 | test_name | hasText: | yes | -| gen_name.rs:7:9:7:11 | foo | hasText: | yes | -| lib.rs:1:5:1:12 | gen_name | hasText: | yes | +| gen_name.rs:3:4:3:12 | test_name | +| gen_name.rs:7:9:7:11 | foo | +| lib.rs:1:5:1:12 | gen_name | getText | gen_name.rs:3:4:3:12 | test_name | test_name | | gen_name.rs:7:9:7:11 | foo | foo | diff --git a/rust/ql/test/extractor-tests/generated/Name/Name.ql b/rust/ql/test/extractor-tests/generated/Name/Name.ql index 66c4076f98e..141042ac6a8 100644 --- a/rust/ql/test/extractor-tests/generated/Name/Name.ql +++ b/rust/ql/test/extractor-tests/generated/Name/Name.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Name x, string hasText__label, string hasText) { - toBeTested(x) and - not x.isUnknown() and - hasText__label = "hasText:" and - if x.hasText() then hasText = "yes" else hasText = "no" -} +query predicate instances(Name x) { toBeTested(x) and not x.isUnknown() } query predicate getText(Name x, string getText) { toBeTested(x) and not x.isUnknown() and getText = x.getText() diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected index acefbd4cf95..a77dc575a77 100644 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected +++ b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.expected @@ -1,4 +1,4 @@ instances -| gen_name_ref.rs:7:7:7:9 | foo | hasText: | yes | +| gen_name_ref.rs:7:7:7:9 | foo | getText | gen_name_ref.rs:7:7:7:9 | foo | foo | diff --git a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql index 77dc3cc6802..00af6f1dbcf 100644 --- a/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql +++ b/rust/ql/test/extractor-tests/generated/NameRef/NameRef.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(NameRef x, string hasText__label, string hasText) { - toBeTested(x) and - not x.isUnknown() and - hasText__label = "hasText:" and - if x.hasText() then hasText = "yes" else hasText = "no" -} +query predicate instances(NameRef x) { toBeTested(x) and not x.isUnknown() } query predicate getText(NameRef x, string getText) { toBeTested(x) and not x.isUnknown() and getText = x.getText() diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected index 0c32955b483..eb8b19babfe 100644 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected +++ b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.expected @@ -1,5 +1,5 @@ instances -| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 1 | hasTypeRepr: | yes | +| gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | getAttr getField | gen_offset_of_expr.rs:5:5:5:38 | OffsetOfExpr | 0 | gen_offset_of_expr.rs:5:33:5:37 | field | diff --git a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql index f9c837932bb..64208e34bbf 100644 --- a/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql +++ b/rust/ql/test/extractor-tests/generated/OffsetOfExpr/OffsetOfExpr.ql @@ -2,20 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - OffsetOfExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfFields__label, int getNumberOfFields, string hasTypeRepr__label, - string hasTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(OffsetOfExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(OffsetOfExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected index a077d8de689..8dcc1baa8d5 100644 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected +++ b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.expected @@ -1,5 +1,5 @@ instances -| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | getNumberOfPats: | 2 | +| gen_or_pat.rs:6:9:6:38 | ... \| ...::None | getPat | gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 0 | gen_or_pat.rs:6:9:6:23 | ...::Some(...) | | gen_or_pat.rs:6:9:6:38 | ... \| ...::None | 1 | gen_or_pat.rs:6:27:6:38 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql index 2487f6f2365..0c60f19278f 100644 --- a/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql +++ b/rust/ql/test/extractor-tests/generated/OrPat/OrPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(OrPat x, string getNumberOfPats__label, int getNumberOfPats) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfPats__label = "getNumberOfPats:" and - getNumberOfPats = x.getNumberOfPats() -} +query predicate instances(OrPat x) { toBeTested(x) and not x.isUnknown() } query predicate getPat(OrPat x, int index, Pat getPat) { toBeTested(x) and not x.isUnknown() and getPat = x.getPat(index) diff --git a/rust/ql/test/extractor-tests/generated/Param/Param.expected b/rust/ql/test/extractor-tests/generated/Param/Param.expected index 304467f0b76..929e72c51fb 100644 --- a/rust/ql/test/extractor-tests/generated/Param/Param.expected +++ b/rust/ql/test/extractor-tests/generated/Param/Param.expected @@ -1,5 +1,5 @@ instances -| gen_param.rs:5:12:5:15 | ...: T | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasPat: | yes | +| gen_param.rs:5:12:5:15 | ...: T | getAttr getTypeRepr | gen_param.rs:5:12:5:15 | ...: T | gen_param.rs:5:15:5:15 | T | diff --git a/rust/ql/test/extractor-tests/generated/Param/Param.ql b/rust/ql/test/extractor-tests/generated/Param/Param.ql index ba1d62c59d1..ff1a261ef04 100644 --- a/rust/ql/test/extractor-tests/generated/Param/Param.ql +++ b/rust/ql/test/extractor-tests/generated/Param/Param.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Param x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, - string hasTypeRepr, string hasPat__label, string hasPat -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(Param x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(Param x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected index 57db5f779fa..5b95cf48ca8 100644 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected +++ b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.expected @@ -1,6 +1,6 @@ instances -| gen_param_list.rs:3:19:3:20 | ParamList | getNumberOfParams: | 0 | hasSelfParam: | no | -| gen_param_list.rs:7:11:7:26 | ParamList | getNumberOfParams: | 2 | hasSelfParam: | no | +| gen_param_list.rs:3:19:3:20 | ParamList | +| gen_param_list.rs:7:11:7:26 | ParamList | getParam | gen_param_list.rs:7:11:7:26 | ParamList | 0 | gen_param_list.rs:7:12:7:17 | ...: i32 | | gen_param_list.rs:7:11:7:26 | ParamList | 1 | gen_param_list.rs:7:20:7:25 | ...: i32 | diff --git a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql index d60469a20fb..36af8b9eafa 100644 --- a/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql +++ b/rust/ql/test/extractor-tests/generated/ParamList/ParamList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ParamList x, string getNumberOfParams__label, int getNumberOfParams, string hasSelfParam__label, - string hasSelfParam -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() and - hasSelfParam__label = "hasSelfParam:" and - if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no" -} +query predicate instances(ParamList x) { toBeTested(x) and not x.isUnknown() } query predicate getParam(ParamList x, int index, Param getParam) { toBeTested(x) and not x.isUnknown() and getParam = x.getParam(index) diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected index b279ca134ad..57a89a35cde 100644 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.expected @@ -1,5 +1,5 @@ instances -| gen_paren_expr.rs:7:5:7:11 | (...) | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_paren_expr.rs:7:5:7:11 | (...) | getAttr getExpr | gen_paren_expr.rs:7:5:7:11 | (...) | gen_paren_expr.rs:7:6:7:10 | ... + ... | diff --git a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql index df5520d210c..1074fc3cd00 100644 --- a/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ParenExpr/ParenExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ParenExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(ParenExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(ParenExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected index e0b1631be04..2e26da6da78 100644 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected +++ b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.expected @@ -1,4 +1,4 @@ instances -| gen_paren_pat.rs:7:9:7:11 | (...) | hasPat: | yes | +| gen_paren_pat.rs:7:9:7:11 | (...) | getPat | gen_paren_pat.rs:7:9:7:11 | (...) | gen_paren_pat.rs:7:10:7:10 | x | diff --git a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql index 7e235b04873..18b7c74b94b 100644 --- a/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql +++ b/rust/ql/test/extractor-tests/generated/ParenPat/ParenPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(ParenPat x, string hasPat__label, string hasPat) { - toBeTested(x) and - not x.isUnknown() and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(ParenPat x) { toBeTested(x) and not x.isUnknown() } query predicate getPat(ParenPat x, Pat getPat) { toBeTested(x) and not x.isUnknown() and getPat = x.getPat() diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected index 98d26b50c12..1e77f93912f 100644 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.expected @@ -1,4 +1,4 @@ instances -| gen_paren_type_repr.rs:7:12:7:16 | (i32) | hasTypeRepr: | yes | +| gen_paren_type_repr.rs:7:12:7:16 | (i32) | getTypeRepr | gen_paren_type_repr.rs:7:12:7:16 | (i32) | gen_paren_type_repr.rs:7:13:7:15 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql index 92f1d241d20..8df81166aa5 100644 --- a/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/ParenTypeRepr/ParenTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(ParenTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { - toBeTested(x) and - not x.isUnknown() and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(ParenTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeRepr(ParenTypeRepr x, TypeRepr getTypeRepr) { toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected index cb6c4c651bb..b787bde1ae2 100644 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected +++ b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.expected @@ -1,5 +1,5 @@ instances -| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | getNumberOfTypeArgs: | 2 | +| gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | getTypeArg | gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 0 | gen_parenthesized_arg_list.rs:9:15:9:17 | TypeArg | | gen_parenthesized_arg_list.rs:9:14:9:26 | ParenthesizedArgList | 1 | gen_parenthesized_arg_list.rs:9:20:9:25 | TypeArg | diff --git a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql index 72a7ac182ef..b35858d3ad0 100644 --- a/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql +++ b/rust/ql/test/extractor-tests/generated/ParenthesizedArgList/ParenthesizedArgList.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ParenthesizedArgList x, string getNumberOfTypeArgs__label, int getNumberOfTypeArgs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfTypeArgs__label = "getNumberOfTypeArgs:" and - getNumberOfTypeArgs = x.getNumberOfTypeArgs() -} +query predicate instances(ParenthesizedArgList x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeArg(ParenthesizedArgList x, int index, TypeArg getTypeArg) { toBeTested(x) and not x.isUnknown() and getTypeArg = x.getTypeArg(index) diff --git a/rust/ql/test/extractor-tests/generated/Path/Path.expected b/rust/ql/test/extractor-tests/generated/Path/Path.expected index c0a0e4b5515..e188cc32fec 100644 --- a/rust/ql/test/extractor-tests/generated/Path/Path.expected +++ b/rust/ql/test/extractor-tests/generated/Path/Path.expected @@ -1,29 +1,29 @@ instances -| gen_path.rs:5:9:5:18 | some_crate | hasQualifier: | no | hasSegment: | yes | -| gen_path.rs:5:9:5:31 | ...::some_module | hasQualifier: | yes | hasSegment: | yes | -| gen_path.rs:5:9:5:42 | ...::some_item | hasQualifier: | yes | hasSegment: | yes | -| gen_path.rs:6:5:6:7 | foo | hasQualifier: | no | hasSegment: | yes | -| gen_path.rs:6:5:6:12 | ...::bar | hasQualifier: | yes | hasSegment: | yes | -| gen_path_expr.rs:5:13:5:20 | variable | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:6:13:6:15 | foo | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:6:13:6:20 | ...::bar | hasQualifier: | yes | hasSegment: | yes | -| gen_path_expr.rs:7:13:7:15 | <...> | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:7:13:7:20 | ...::foo | hasQualifier: | yes | hasSegment: | yes | -| gen_path_expr.rs:7:14:7:14 | T | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:8:13:8:31 | <...> | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:8:13:8:36 | ...::foo | hasQualifier: | yes | hasSegment: | yes | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | hasQualifier: | no | hasSegment: | yes | -| gen_path_expr.rs:8:26:8:30 | Trait | hasQualifier: | no | hasSegment: | yes | -| gen_path_pat.rs:5:11:5:11 | x | hasQualifier: | no | hasSegment: | yes | -| gen_path_pat.rs:6:9:6:11 | Foo | hasQualifier: | no | hasSegment: | yes | -| gen_path_pat.rs:6:9:6:16 | ...::Bar | hasQualifier: | yes | hasSegment: | yes | -| gen_path_type_repr.rs:5:14:5:16 | std | hasQualifier: | no | hasSegment: | yes | -| gen_path_type_repr.rs:5:14:5:29 | ...::collections | hasQualifier: | yes | hasSegment: | yes | -| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | hasQualifier: | yes | hasSegment: | yes | -| gen_path_type_repr.rs:5:40:5:42 | i32 | hasQualifier: | no | hasSegment: | yes | -| gen_path_type_repr.rs:5:45:5:47 | i32 | hasQualifier: | no | hasSegment: | yes | -| gen_path_type_repr.rs:6:14:6:14 | X | hasQualifier: | no | hasSegment: | yes | -| gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasQualifier: | yes | hasSegment: | yes | +| gen_path.rs:5:9:5:18 | some_crate | +| gen_path.rs:5:9:5:31 | ...::some_module | +| gen_path.rs:5:9:5:42 | ...::some_item | +| gen_path.rs:6:5:6:7 | foo | +| gen_path.rs:6:5:6:12 | ...::bar | +| gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:15 | foo | +| gen_path_expr.rs:6:13:6:20 | ...::bar | +| gen_path_expr.rs:7:13:7:15 | <...> | +| gen_path_expr.rs:7:13:7:20 | ...::foo | +| gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:8:13:8:31 | <...> | +| gen_path_expr.rs:8:13:8:36 | ...::foo | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_pat.rs:5:11:5:11 | x | +| gen_path_pat.rs:6:9:6:11 | Foo | +| gen_path_pat.rs:6:9:6:16 | ...::Bar | +| gen_path_type_repr.rs:5:14:5:16 | std | +| gen_path_type_repr.rs:5:14:5:29 | ...::collections | +| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | +| gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:14 | X | +| gen_path_type_repr.rs:6:14:6:20 | ...::Item | getQualifier | gen_path.rs:5:9:5:31 | ...::some_module | gen_path.rs:5:9:5:18 | some_crate | | gen_path.rs:5:9:5:42 | ...::some_item | gen_path.rs:5:9:5:31 | ...::some_module | diff --git a/rust/ql/test/extractor-tests/generated/Path/Path.ql b/rust/ql/test/extractor-tests/generated/Path/Path.ql index 10440b7f626..183fcbb24a6 100644 --- a/rust/ql/test/extractor-tests/generated/Path/Path.ql +++ b/rust/ql/test/extractor-tests/generated/Path/Path.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Path x, string hasQualifier__label, string hasQualifier, string hasSegment__label, - string hasSegment -) { - toBeTested(x) and - not x.isUnknown() and - hasQualifier__label = "hasQualifier:" and - (if x.hasQualifier() then hasQualifier = "yes" else hasQualifier = "no") and - hasSegment__label = "hasSegment:" and - if x.hasSegment() then hasSegment = "yes" else hasSegment = "no" -} +query predicate instances(Path x) { toBeTested(x) and not x.isUnknown() } query predicate getQualifier(Path x, Path getQualifier) { toBeTested(x) and not x.isUnknown() and getQualifier = x.getQualifier() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected b/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected index 5befb7ad87f..5a2df7ee29f 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathExpr.expected @@ -1,10 +1,10 @@ instances -| gen_path.rs:6:5:6:12 | ...::bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | -| gen_path_expr.rs:5:13:5:20 | variable | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | -| gen_path_expr.rs:6:13:6:20 | ...::bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | -| gen_path_expr.rs:7:13:7:20 | ...::foo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | -| gen_path_expr.rs:8:13:8:36 | ...::foo | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | -| gen_path_pat.rs:5:11:5:11 | x | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfAttrs: | 0 | +| gen_path.rs:6:5:6:12 | ...::bar | +| gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:20 | ...::bar | +| gen_path_expr.rs:7:13:7:20 | ...::foo | +| gen_path_expr.rs:8:13:8:36 | ...::foo | +| gen_path_pat.rs:5:11:5:11 | x | getResolvedPath getResolvedCrateOrigin getPath diff --git a/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql b/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql index df7d4e6b054..70bff600ace 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathExpr.ql @@ -2,26 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - PathExpr x, string hasResolvedPath__label, string hasResolvedPath, - string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, - string hasPath, string getNumberOfAttrs__label, int getNumberOfAttrs -) { - toBeTested(x) and - not x.isUnknown() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(PathExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getResolvedPath(PathExpr x, string getResolvedPath) { toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat.expected b/rust/ql/test/extractor-tests/generated/Path/PathPat.expected index 44b0c407ce7..9bcce903558 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathPat.expected @@ -1,5 +1,5 @@ instances -| gen_path_pat.rs:6:9:6:16 | ...::Bar | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | +| gen_path_pat.rs:6:9:6:16 | ...::Bar | getResolvedPath getResolvedCrateOrigin getPath diff --git a/rust/ql/test/extractor-tests/generated/Path/PathPat.ql b/rust/ql/test/extractor-tests/generated/Path/PathPat.ql index babe2238d2d..9c5a874cabf 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathPat.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathPat.ql @@ -2,24 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - PathPat x, string hasResolvedPath__label, string hasResolvedPath, - string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, - string hasPath -) { - toBeTested(x) and - not x.isUnknown() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasPath__label = "hasPath:" and - if x.hasPath() then hasPath = "yes" else hasPath = "no" -} +query predicate instances(PathPat x) { toBeTested(x) and not x.isUnknown() } query predicate getResolvedPath(PathPat x, string getResolvedPath) { toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected b/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected index 28347072ffe..cf9e4501366 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathSegment.expected @@ -1,29 +1,29 @@ instances -| gen_path.rs:5:9:5:18 | some_crate | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path.rs:5:21:5:31 | some_module | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path.rs:5:34:5:42 | some_item | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path.rs:6:5:6:7 | foo | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path.rs:6:10:6:12 | bar | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:5:13:5:20 | variable | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:6:13:6:15 | foo | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:6:18:6:20 | bar | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:7:13:7:15 | <...> | hasGenericArgList: | no | hasIdentifier: | no | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | yes | hasTraitTypeRepr: | no | -| gen_path_expr.rs:7:14:7:14 | T | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:7:18:7:20 | foo | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:8:13:8:31 | <...> | hasGenericArgList: | no | hasIdentifier: | no | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | yes | hasTraitTypeRepr: | yes | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:8:26:8:30 | Trait | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_expr.rs:8:34:8:36 | foo | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_pat.rs:5:11:5:11 | x | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_pat.rs:6:9:6:11 | Foo | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_pat.rs:6:14:6:16 | Bar | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:5:14:5:16 | std | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:5:19:5:29 | collections | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | hasGenericArgList: | yes | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:5:40:5:42 | i32 | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:5:45:5:47 | i32 | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:6:14:6:14 | X | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | -| gen_path_type_repr.rs:6:17:6:20 | Item | hasGenericArgList: | no | hasIdentifier: | yes | hasParenthesizedArgList: | no | hasRetType: | no | hasReturnTypeSyntax: | no | hasTypeRepr: | no | hasTraitTypeRepr: | no | +| gen_path.rs:5:9:5:18 | some_crate | +| gen_path.rs:5:21:5:31 | some_module | +| gen_path.rs:5:34:5:42 | some_item | +| gen_path.rs:6:5:6:7 | foo | +| gen_path.rs:6:10:6:12 | bar | +| gen_path_expr.rs:5:13:5:20 | variable | +| gen_path_expr.rs:6:13:6:15 | foo | +| gen_path_expr.rs:6:18:6:20 | bar | +| gen_path_expr.rs:7:13:7:15 | <...> | +| gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:7:18:7:20 | foo | +| gen_path_expr.rs:8:13:8:31 | <...> | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_expr.rs:8:34:8:36 | foo | +| gen_path_pat.rs:5:11:5:11 | x | +| gen_path_pat.rs:6:9:6:11 | Foo | +| gen_path_pat.rs:6:14:6:16 | Bar | +| gen_path_type_repr.rs:5:14:5:16 | std | +| gen_path_type_repr.rs:5:19:5:29 | collections | +| gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | +| gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:14 | X | +| gen_path_type_repr.rs:6:17:6:20 | Item | getGenericArgList | gen_path_type_repr.rs:5:32:5:48 | HashMap::<...> | gen_path_type_repr.rs:5:39:5:48 | <...> | getIdentifier diff --git a/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql b/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql index bdaf115d135..2e0800706f0 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathSegment.ql @@ -2,34 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - PathSegment x, string hasGenericArgList__label, string hasGenericArgList, - string hasIdentifier__label, string hasIdentifier, string hasParenthesizedArgList__label, - string hasParenthesizedArgList, string hasRetType__label, string hasRetType, - string hasReturnTypeSyntax__label, string hasReturnTypeSyntax, string hasTypeRepr__label, - string hasTypeRepr, string hasTraitTypeRepr__label, string hasTraitTypeRepr -) { - toBeTested(x) and - not x.isUnknown() and - hasGenericArgList__label = "hasGenericArgList:" and - (if x.hasGenericArgList() then hasGenericArgList = "yes" else hasGenericArgList = "no") and - hasIdentifier__label = "hasIdentifier:" and - (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and - hasParenthesizedArgList__label = "hasParenthesizedArgList:" and - ( - if x.hasParenthesizedArgList() - then hasParenthesizedArgList = "yes" - else hasParenthesizedArgList = "no" - ) and - hasRetType__label = "hasRetType:" and - (if x.hasRetType() then hasRetType = "yes" else hasRetType = "no") and - hasReturnTypeSyntax__label = "hasReturnTypeSyntax:" and - (if x.hasReturnTypeSyntax() then hasReturnTypeSyntax = "yes" else hasReturnTypeSyntax = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasTraitTypeRepr__label = "hasTraitTypeRepr:" and - if x.hasTraitTypeRepr() then hasTraitTypeRepr = "yes" else hasTraitTypeRepr = "no" -} +query predicate instances(PathSegment x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericArgList(PathSegment x, GenericArgList getGenericArgList) { toBeTested(x) and not x.isUnknown() and getGenericArgList = x.getGenericArgList() diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected index 1877b675dcd..841a1e6eb77 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.expected @@ -1,11 +1,11 @@ instances -| gen_path_expr.rs:7:14:7:14 | T | hasPath: | yes | -| gen_path_expr.rs:8:14:8:21 | TypeRepr | hasPath: | yes | -| gen_path_expr.rs:8:26:8:30 | Trait | hasPath: | yes | -| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | hasPath: | yes | -| gen_path_type_repr.rs:5:40:5:42 | i32 | hasPath: | yes | -| gen_path_type_repr.rs:5:45:5:47 | i32 | hasPath: | yes | -| gen_path_type_repr.rs:6:14:6:20 | ...::Item | hasPath: | yes | +| gen_path_expr.rs:7:14:7:14 | T | +| gen_path_expr.rs:8:14:8:21 | TypeRepr | +| gen_path_expr.rs:8:26:8:30 | Trait | +| gen_path_type_repr.rs:5:14:5:48 | ...::HashMap::<...> | +| gen_path_type_repr.rs:5:40:5:42 | i32 | +| gen_path_type_repr.rs:5:45:5:47 | i32 | +| gen_path_type_repr.rs:6:14:6:20 | ...::Item | getPath | gen_path_expr.rs:7:14:7:14 | T | gen_path_expr.rs:7:14:7:14 | T | | gen_path_expr.rs:8:14:8:21 | TypeRepr | gen_path_expr.rs:8:14:8:21 | TypeRepr | diff --git a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql index cb641af4078..5ec18fd220a 100644 --- a/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/Path/PathTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(PathTypeRepr x, string hasPath__label, string hasPath) { - toBeTested(x) and - not x.isUnknown() and - hasPath__label = "hasPath:" and - if x.hasPath() then hasPath = "yes" else hasPath = "no" -} +query predicate instances(PathTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getPath(PathTypeRepr x, Path getPath) { toBeTested(x) and not x.isUnknown() and getPath = x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected index 9a7bf83a06e..056a1a6dd5d 100644 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected +++ b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.expected @@ -1,7 +1,7 @@ instances -| gen_prefix_expr.rs:5:13:5:15 | - ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | -| gen_prefix_expr.rs:6:13:6:17 | ! ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | -| gen_prefix_expr.rs:7:13:7:16 | * ... | getNumberOfAttrs: | 0 | hasExpr: | yes | hasOperatorName: | yes | +| gen_prefix_expr.rs:5:13:5:15 | - ... | +| gen_prefix_expr.rs:6:13:6:17 | ! ... | +| gen_prefix_expr.rs:7:13:7:16 | * ... | getAttr getExpr | gen_prefix_expr.rs:5:13:5:15 | - ... | gen_prefix_expr.rs:5:14:5:15 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql index b263291ff6e..0765d6e07d9 100644 --- a/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql +++ b/rust/ql/test/extractor-tests/generated/PrefixExpr/PrefixExpr.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - PrefixExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string hasOperatorName__label, string hasOperatorName -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasOperatorName__label = "hasOperatorName:" and - if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no" -} +query predicate instances(PrefixExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(PrefixExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected index f66639667e1..6414c8ce04a 100644 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.expected @@ -1,6 +1,6 @@ instances -| gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | isConst: | yes | isMut: | no | hasTypeRepr: | yes | -| gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | isConst: | no | isMut: | yes | hasTypeRepr: | yes | +| gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | isConst: | yes | isMut: | no | +| gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | isConst: | no | isMut: | yes | getTypeRepr | gen_ptr_type_repr.rs:7:12:7:21 | PtrTypeRepr | gen_ptr_type_repr.rs:7:19:7:21 | i32 | | gen_ptr_type_repr.rs:8:12:8:19 | PtrTypeRepr | gen_ptr_type_repr.rs:8:17:8:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql index 6220e06fc0d..d2a41eb9e59 100644 --- a/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/PtrTypeRepr/PtrTypeRepr.ql @@ -3,17 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - PtrTypeRepr x, string isConst__label, string isConst, string isMut__label, string isMut, - string hasTypeRepr__label, string hasTypeRepr + PtrTypeRepr x, string isConst__label, string isConst, string isMut__label, string isMut ) { toBeTested(x) and not x.isUnknown() and isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and isMut__label = "isMut:" and - (if x.isMut() then isMut = "yes" else isMut = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" + if x.isMut() then isMut = "yes" else isMut = "no" } query predicate getTypeRepr(PtrTypeRepr x, TypeRepr getTypeRepr) { diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected index 25ce7a4fe32..a79ce67401a 100644 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected +++ b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.expected @@ -1,10 +1,10 @@ instances -| gen_range_expr.rs:5:13:5:18 | 1..=10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | -| gen_range_expr.rs:6:13:6:17 | 1..10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | -| gen_range_expr.rs:7:13:7:16 | 10.. | getNumberOfAttrs: | 0 | hasEnd: | no | hasOperatorName: | yes | hasStart: | yes | -| gen_range_expr.rs:8:13:8:16 | ..10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | -| gen_range_expr.rs:9:13:9:17 | ..=10 | getNumberOfAttrs: | 0 | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | -| gen_range_expr.rs:10:13:10:14 | .. | getNumberOfAttrs: | 0 | hasEnd: | no | hasOperatorName: | yes | hasStart: | no | +| gen_range_expr.rs:5:13:5:18 | 1..=10 | +| gen_range_expr.rs:6:13:6:17 | 1..10 | +| gen_range_expr.rs:7:13:7:16 | 10.. | +| gen_range_expr.rs:8:13:8:16 | ..10 | +| gen_range_expr.rs:9:13:9:17 | ..=10 | +| gen_range_expr.rs:10:13:10:14 | .. | getAttr getEnd | gen_range_expr.rs:5:13:5:18 | 1..=10 | gen_range_expr.rs:5:17:5:18 | 10 | diff --git a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql index cd6baaf169d..69a699f14be 100644 --- a/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql +++ b/rust/ql/test/extractor-tests/generated/RangeExpr/RangeExpr.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - RangeExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasEnd__label, - string hasEnd, string hasOperatorName__label, string hasOperatorName, string hasStart__label, - string hasStart -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasEnd__label = "hasEnd:" and - (if x.hasEnd() then hasEnd = "yes" else hasEnd = "no") and - hasOperatorName__label = "hasOperatorName:" and - (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and - hasStart__label = "hasStart:" and - if x.hasStart() then hasStart = "yes" else hasStart = "no" -} +query predicate instances(RangeExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(RangeExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected index 6cbb8331bfe..969ccf754df 100644 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected +++ b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.expected @@ -1,7 +1,7 @@ instances -| gen_range_pat.rs:6:9:6:12 | RangePat | hasEnd: | yes | hasOperatorName: | yes | hasStart: | no | -| gen_range_pat.rs:7:9:7:15 | RangePat | hasEnd: | yes | hasOperatorName: | yes | hasStart: | yes | -| gen_range_pat.rs:8:9:8:12 | RangePat | hasEnd: | no | hasOperatorName: | yes | hasStart: | yes | +| gen_range_pat.rs:6:9:6:12 | RangePat | +| gen_range_pat.rs:7:9:7:15 | RangePat | +| gen_range_pat.rs:8:9:8:12 | RangePat | getEnd | gen_range_pat.rs:6:9:6:12 | RangePat | gen_range_pat.rs:6:11:6:12 | 15 | | gen_range_pat.rs:7:9:7:15 | RangePat | gen_range_pat.rs:7:14:7:15 | 25 | diff --git a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql index feb5488d4ab..19070c77f26 100644 --- a/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql +++ b/rust/ql/test/extractor-tests/generated/RangePat/RangePat.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - RangePat x, string hasEnd__label, string hasEnd, string hasOperatorName__label, - string hasOperatorName, string hasStart__label, string hasStart -) { - toBeTested(x) and - not x.isUnknown() and - hasEnd__label = "hasEnd:" and - (if x.hasEnd() then hasEnd = "yes" else hasEnd = "no") and - hasOperatorName__label = "hasOperatorName:" and - (if x.hasOperatorName() then hasOperatorName = "yes" else hasOperatorName = "no") and - hasStart__label = "hasStart:" and - if x.hasStart() then hasStart = "yes" else hasStart = "no" -} +query predicate instances(RangePat x) { toBeTested(x) and not x.isUnknown() } query predicate getEnd(RangePat x, Pat getEnd) { toBeTested(x) and not x.isUnknown() and getEnd = x.getEnd() diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected index 31d723fb1f4..031daf88888 100644 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected +++ b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.expected @@ -1,8 +1,8 @@ instances -| gen_ref_expr.rs:5:25:5:28 | &foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | no | isRaw: | no | -| gen_ref_expr.rs:6:23:6:30 | &mut foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | yes | isRaw: | no | -| gen_ref_expr.rs:7:35:7:48 | &raw const foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | yes | isMut: | no | isRaw: | yes | -| gen_ref_expr.rs:8:33:8:44 | &raw mut foo | getNumberOfAttrs: | 0 | hasExpr: | yes | isConst: | no | isMut: | yes | isRaw: | yes | +| gen_ref_expr.rs:5:25:5:28 | &foo | isConst: | no | isMut: | no | isRaw: | no | +| gen_ref_expr.rs:6:23:6:30 | &mut foo | isConst: | no | isMut: | yes | isRaw: | no | +| gen_ref_expr.rs:7:35:7:48 | &raw const foo | isConst: | yes | isMut: | no | isRaw: | yes | +| gen_ref_expr.rs:8:33:8:44 | &raw mut foo | isConst: | no | isMut: | yes | isRaw: | yes | getAttr getExpr | gen_ref_expr.rs:5:25:5:28 | &foo | gen_ref_expr.rs:5:26:5:28 | foo | diff --git a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql index 5d7b325e202..a9ae1f9ae8d 100644 --- a/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql +++ b/rust/ql/test/extractor-tests/generated/RefExpr/RefExpr.ql @@ -3,16 +3,11 @@ import codeql.rust.elements import TestUtils query predicate instances( - RefExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string isConst__label, string isConst, string isMut__label, string isMut, + RefExpr x, string isConst__label, string isConst, string isMut__label, string isMut, string isRaw__label, string isRaw ) { toBeTested(x) and not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and isConst__label = "isConst:" and (if x.isConst() then isConst = "yes" else isConst = "no") and isMut__label = "isMut:" and diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected index 3bbcbc2fed7..0babab322d3 100644 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected +++ b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.expected @@ -1,6 +1,6 @@ instances -| gen_ref_pat.rs:6:9:6:28 | &mut ... | isMut: | yes | hasPat: | yes | -| gen_ref_pat.rs:7:9:7:21 | &...::None | isMut: | no | hasPat: | yes | +| gen_ref_pat.rs:6:9:6:28 | &mut ... | isMut: | yes | +| gen_ref_pat.rs:7:9:7:21 | &...::None | isMut: | no | getPat | gen_ref_pat.rs:6:9:6:28 | &mut ... | gen_ref_pat.rs:6:14:6:28 | ...::Some(...) | | gen_ref_pat.rs:7:9:7:21 | &...::None | gen_ref_pat.rs:7:10:7:21 | ...::None | diff --git a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql index c6b6afa5854..3e8ec464569 100644 --- a/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql +++ b/rust/ql/test/extractor-tests/generated/RefPat/RefPat.ql @@ -2,15 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - RefPat x, string isMut__label, string isMut, string hasPat__label, string hasPat -) { +query predicate instances(RefPat x, string isMut__label, string isMut) { toBeTested(x) and not x.isUnknown() and isMut__label = "isMut:" and - (if x.isMut() then isMut = "yes" else isMut = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" + if x.isMut() then isMut = "yes" else isMut = "no" } query predicate getPat(RefPat x, Pat getPat) { diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected index 30f641c5dc7..d48b8b7b998 100644 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.expected @@ -1,6 +1,6 @@ instances -| gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | isMut: | no | hasLifetime: | no | hasTypeRepr: | yes | -| gen_ref_type_repr.rs:8:12:8:19 | RefTypeRepr | isMut: | yes | hasLifetime: | no | hasTypeRepr: | yes | +| gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | isMut: | no | +| gen_ref_type_repr.rs:8:12:8:19 | RefTypeRepr | isMut: | yes | getLifetime getTypeRepr | gen_ref_type_repr.rs:7:12:7:15 | RefTypeRepr | gen_ref_type_repr.rs:7:13:7:15 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql index 61918497373..a414e9a3e66 100644 --- a/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/RefTypeRepr/RefTypeRepr.ql @@ -2,18 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - RefTypeRepr x, string isMut__label, string isMut, string hasLifetime__label, string hasLifetime, - string hasTypeRepr__label, string hasTypeRepr -) { +query predicate instances(RefTypeRepr x, string isMut__label, string isMut) { toBeTested(x) and not x.isUnknown() and isMut__label = "isMut:" and - (if x.isMut() then isMut = "yes" else isMut = "no") and - hasLifetime__label = "hasLifetime:" and - (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" + if x.isMut() then isMut = "yes" else isMut = "no" } query predicate getLifetime(RefTypeRepr x, Lifetime getLifetime) { diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename.expected b/rust/ql/test/extractor-tests/generated/Rename/Rename.expected index a4131b35c0e..73137c57c98 100644 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename.expected +++ b/rust/ql/test/extractor-tests/generated/Rename/Rename.expected @@ -1,4 +1,4 @@ instances -| gen_rename.rs:7:13:7:18 | Rename | hasName: | yes | +| gen_rename.rs:7:13:7:18 | Rename | getName | gen_rename.rs:7:13:7:18 | Rename | gen_rename.rs:7:16:7:18 | bar | diff --git a/rust/ql/test/extractor-tests/generated/Rename/Rename.ql b/rust/ql/test/extractor-tests/generated/Rename/Rename.ql index 5875619c2ab..170b5e8bd7b 100644 --- a/rust/ql/test/extractor-tests/generated/Rename/Rename.ql +++ b/rust/ql/test/extractor-tests/generated/Rename/Rename.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Rename x, string hasName__label, string hasName) { - toBeTested(x) and - not x.isUnknown() and - hasName__label = "hasName:" and - if x.hasName() then hasName = "yes" else hasName = "no" -} +query predicate instances(Rename x) { toBeTested(x) and not x.isUnknown() } query predicate getName(Rename x, Name getName) { toBeTested(x) and not x.isUnknown() and getName = x.getName() diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected index 8dfb600e638..6fd34b7cf23 100644 --- a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected +++ b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.expected @@ -1,3 +1,3 @@ instances -| gen_rest_pat.rs:7:13:7:14 | .. | getNumberOfAttrs: | 0 | +| gen_rest_pat.rs:7:13:7:14 | .. | getAttr diff --git a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql index dbf8f55b0ed..3754d7fd2f2 100644 --- a/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql +++ b/rust/ql/test/extractor-tests/generated/RestPat/RestPat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(RestPat x, string getNumberOfAttrs__label, int getNumberOfAttrs) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(RestPat x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(RestPat x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected index 0729c6815bb..5b661298194 100644 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.expected @@ -1,6 +1,6 @@ instances -| gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | hasTypeRepr: | yes | -| gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | hasTypeRepr: | yes | +| gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | +| gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | getTypeRepr | gen_ret_type_repr.rs:3:25:3:29 | RetTypeRepr | gen_ret_type_repr.rs:3:28:3:29 | TupleTypeRepr | | gen_ret_type_repr.rs:7:14:7:19 | RetTypeRepr | gen_ret_type_repr.rs:7:17:7:19 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql index c892ab67a45..b92b05897e8 100644 --- a/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/RetTypeRepr/RetTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(RetTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { - toBeTested(x) and - not x.isUnknown() and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(RetTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeRepr(RetTypeRepr x, TypeRepr getTypeRepr) { toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected index 7a36d488d40..e978eca2e7c 100644 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected +++ b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.expected @@ -1,6 +1,6 @@ instances -| gen_return_expr.rs:5:5:5:13 | return 42 | getNumberOfAttrs: | 0 | hasExpr: | yes | -| gen_return_expr.rs:8:5:8:10 | return | getNumberOfAttrs: | 0 | hasExpr: | no | +| gen_return_expr.rs:5:5:5:13 | return 42 | +| gen_return_expr.rs:8:5:8:10 | return | getAttr getExpr | gen_return_expr.rs:5:5:5:13 | return 42 | gen_return_expr.rs:5:12:5:13 | 42 | diff --git a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql index b15b1483d67..11eeed2222c 100644 --- a/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql +++ b/rust/ql/test/extractor-tests/generated/ReturnExpr/ReturnExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - ReturnExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(ReturnExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(ReturnExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected index 373ea50f5ec..faa10f8e912 100644 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected +++ b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.expected @@ -1,9 +1,9 @@ instances -| gen_self_param.rs:6:10:6:14 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | no | hasLifetime: | no | hasName: | yes | -| gen_self_param.rs:7:10:7:18 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | yes | hasLifetime: | no | hasName: | yes | -| gen_self_param.rs:8:12:8:15 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | no | isMut: | no | hasLifetime: | no | hasName: | yes | -| gen_self_param.rs:9:11:9:18 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | no | isMut: | yes | hasLifetime: | no | hasName: | yes | -| gen_self_param.rs:10:15:10:22 | SelfParam | getNumberOfAttrs: | 0 | hasTypeRepr: | no | isRef: | yes | isMut: | no | hasLifetime: | yes | hasName: | yes | +| gen_self_param.rs:6:10:6:14 | SelfParam | isRef: | yes | isMut: | no | +| gen_self_param.rs:7:10:7:18 | SelfParam | isRef: | yes | isMut: | yes | +| gen_self_param.rs:8:12:8:15 | SelfParam | isRef: | no | isMut: | no | +| gen_self_param.rs:9:11:9:18 | SelfParam | isRef: | no | isMut: | yes | +| gen_self_param.rs:10:15:10:22 | SelfParam | isRef: | yes | isMut: | no | getAttr getTypeRepr getLifetime diff --git a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql index e785b0b8ba8..07dd03a406f 100644 --- a/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql +++ b/rust/ql/test/extractor-tests/generated/SelfParam/SelfParam.ql @@ -3,24 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - SelfParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, - string hasTypeRepr, string isRef__label, string isRef, string isMut__label, string isMut, - string hasLifetime__label, string hasLifetime, string hasName__label, string hasName + SelfParam x, string isRef__label, string isRef, string isMut__label, string isMut ) { toBeTested(x) and not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and isRef__label = "isRef:" and (if x.isRef() then isRef = "yes" else isRef = "no") and isMut__label = "isMut:" and - (if x.isMut() then isMut = "yes" else isMut = "no") and - hasLifetime__label = "hasLifetime:" and - (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and - hasName__label = "hasName:" and - if x.hasName() then hasName = "yes" else hasName = "no" + if x.isMut() then isMut = "yes" else isMut = "no" } query predicate getAttr(SelfParam x, int index, Attr getAttr) { diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected index dbdb09c2693..0594cf27e55 100644 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected +++ b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.expected @@ -1,7 +1,7 @@ instances -| gen_slice_pat.rs:6:9:6:23 | SlicePat | getNumberOfPats: | 5 | -| gen_slice_pat.rs:7:9:7:18 | SlicePat | getNumberOfPats: | 3 | -| gen_slice_pat.rs:8:9:8:24 | SlicePat | getNumberOfPats: | 5 | +| gen_slice_pat.rs:6:9:6:23 | SlicePat | +| gen_slice_pat.rs:7:9:7:18 | SlicePat | +| gen_slice_pat.rs:8:9:8:24 | SlicePat | getPat | gen_slice_pat.rs:6:9:6:23 | SlicePat | 0 | gen_slice_pat.rs:6:10:6:10 | 1 | | gen_slice_pat.rs:6:9:6:23 | SlicePat | 1 | gen_slice_pat.rs:6:13:6:13 | 2 | diff --git a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql index 0013b1df2b4..b4b0e943036 100644 --- a/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql +++ b/rust/ql/test/extractor-tests/generated/SlicePat/SlicePat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(SlicePat x, string getNumberOfPats__label, int getNumberOfPats) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfPats__label = "getNumberOfPats:" and - getNumberOfPats = x.getNumberOfPats() -} +query predicate instances(SlicePat x) { toBeTested(x) and not x.isUnknown() } query predicate getPat(SlicePat x, int index, Pat getPat) { toBeTested(x) and not x.isUnknown() and getPat = x.getPat(index) diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected index b87a8caad8c..20b1883e4d3 100644 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.expected @@ -1,4 +1,4 @@ instances -| gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | hasTypeRepr: | yes | +| gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | getTypeRepr | gen_slice_type_repr.rs:7:13:7:17 | SliceTypeRepr | gen_slice_type_repr.rs:7:14:7:16 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql index d43ab3185f9..b32b4edf6d3 100644 --- a/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/SliceTypeRepr/SliceTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(SliceTypeRepr x, string hasTypeRepr__label, string hasTypeRepr) { - toBeTested(x) and - not x.isUnknown() and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(SliceTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeRepr(SliceTypeRepr x, TypeRepr getTypeRepr) { toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected index e6b44060e33..e308c26daa8 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.expected @@ -1,6 +1,6 @@ instances -| gen_source_file.rs:1:1:9:2 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | -| lib.rs:1:1:1:20 | SourceFile | getNumberOfAttrs: | 0 | getNumberOfItems: | 1 | +| gen_source_file.rs:1:1:9:2 | SourceFile | +| lib.rs:1:1:1:20 | SourceFile | getAttr getItem | gen_source_file.rs:1:1:9:2 | SourceFile | 0 | gen_source_file.rs:3:1:9:1 | fn test_source_file | diff --git a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql index 2c1d76f6330..257752e706e 100644 --- a/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql +++ b/rust/ql/test/extractor-tests/generated/SourceFile/SourceFile.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - SourceFile x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfItems__label, int getNumberOfItems -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfItems__label = "getNumberOfItems:" and - getNumberOfItems = x.getNumberOfItems() -} +query predicate instances(SourceFile x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(SourceFile x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.expected b/rust/ql/test/extractor-tests/generated/Static/Static.expected index bb95e6994f0..ee87d07a2c1 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.expected +++ b/rust/ql/test/extractor-tests/generated/Static/Static.expected @@ -1,5 +1,5 @@ instances -| gen_static.rs:4:5:7:23 | Static | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasBody: | yes | isMut: | no | isStatic: | yes | isUnsafe: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | +| gen_static.rs:4:5:7:23 | Static | isMut: | no | isStatic: | yes | isUnsafe: | no | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Static/Static.ql b/rust/ql/test/extractor-tests/generated/Static/Static.ql index 67e70e864ea..58ade5f044f 100644 --- a/rust/ql/test/extractor-tests/generated/Static/Static.ql +++ b/rust/ql/test/extractor-tests/generated/Static/Static.ql @@ -3,45 +3,17 @@ import codeql.rust.elements import TestUtils query predicate instances( - Static x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasBody__label, string hasBody, string isMut__label, string isMut, string isStatic__label, - string isStatic, string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, - string hasTypeRepr__label, string hasTypeRepr, string hasVisibility__label, string hasVisibility + Static x, string isMut__label, string isMut, string isStatic__label, string isStatic, + string isUnsafe__label, string isUnsafe ) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and isMut__label = "isMut:" and (if x.isMut() then isMut = "yes" else isMut = "no") and isStatic__label = "isStatic:" and (if x.isStatic() then isStatic = "yes" else isStatic = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getExtendedCanonicalPath(Static x, string getExtendedCanonicalPath) { diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected index 6511305ed81..02f322734ca 100644 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected +++ b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.expected @@ -1,6 +1,6 @@ instances -| gen_stmt_list.rs:3:27:12:1 | StmtList | getNumberOfAttrs: | 0 | getNumberOfStatements: | 0 | hasTailExpr: | yes | -| gen_stmt_list.rs:7:5:10:5 | StmtList | getNumberOfAttrs: | 0 | getNumberOfStatements: | 2 | hasTailExpr: | no | +| gen_stmt_list.rs:3:27:12:1 | StmtList | +| gen_stmt_list.rs:7:5:10:5 | StmtList | getAttr getStatement | gen_stmt_list.rs:7:5:10:5 | StmtList | 0 | gen_stmt_list.rs:8:9:8:18 | let ... = 1 | diff --git a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql index a9717e52fe4..1dcc1ce6db1 100644 --- a/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql +++ b/rust/ql/test/extractor-tests/generated/StmtList/StmtList.ql @@ -2,20 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StmtList x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfStatements__label, int getNumberOfStatements, string hasTailExpr__label, - string hasTailExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfStatements__label = "getNumberOfStatements:" and - getNumberOfStatements = x.getNumberOfStatements() and - hasTailExpr__label = "hasTailExpr:" and - if x.hasTailExpr() then hasTailExpr = "yes" else hasTailExpr = "no" -} +query predicate instances(StmtList x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(StmtList x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected index 1432ab9864f..ad34c13babe 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.expected +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.expected @@ -1,5 +1,5 @@ instances -| gen_struct.rs:4:5:8:5 | struct Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasFieldList: | yes | hasGenericParamList: | no | hasName: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_struct.rs:4:5:8:5 | struct Point | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql index aa0faaab091..185c1125f5c 100644 --- a/rust/ql/test/extractor-tests/generated/Struct/Struct.ql +++ b/rust/ql/test/extractor-tests/generated/Struct/Struct.ql @@ -2,46 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Struct x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, - int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasFieldList__label, string hasFieldList, string hasGenericParamList__label, - string hasGenericParamList, string hasName__label, string hasName, string hasVisibility__label, - string hasVisibility, string hasWhereClause__label, string hasWhereClause -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and - getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasFieldList__label = "hasFieldList:" and - (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -} +query predicate instances(Struct x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Struct x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected index 1a7d410b7a9..477aa732ece 100644 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected +++ b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.expected @@ -1,8 +1,8 @@ instances -| gen_struct_expr.rs:5:17:5:34 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | -| gen_struct_expr.rs:6:18:6:38 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | -| gen_struct_expr.rs:7:5:7:22 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | -| gen_struct_expr.rs:8:5:8:14 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructExprFieldList: | yes | +| gen_struct_expr.rs:5:17:5:34 | Foo {...} | +| gen_struct_expr.rs:6:18:6:38 | Foo {...} | +| gen_struct_expr.rs:7:5:7:22 | Foo {...} | +| gen_struct_expr.rs:8:5:8:14 | Foo {...} | getResolvedPath getResolvedCrateOrigin getPath diff --git a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql index 4d9bf5d6a8e..4a71efa31ee 100644 --- a/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql +++ b/rust/ql/test/extractor-tests/generated/StructExpr/StructExpr.ql @@ -2,28 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructExpr x, string hasResolvedPath__label, string hasResolvedPath, - string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, - string hasPath, string hasStructExprFieldList__label, string hasStructExprFieldList -) { - toBeTested(x) and - not x.isUnknown() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - hasStructExprFieldList__label = "hasStructExprFieldList:" and - if x.hasStructExprFieldList() - then hasStructExprFieldList = "yes" - else hasStructExprFieldList = "no" -} +query predicate instances(StructExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getResolvedPath(StructExpr x, string getResolvedPath) { toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected index 84a6fd60682..3e275eb6a24 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected +++ b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.expected @@ -1,6 +1,6 @@ instances -| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasIdentifier: | yes | -| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | getNumberOfAttrs: | 0 | hasExpr: | yes | hasIdentifier: | yes | +| gen_struct_expr_field.rs:5:11:5:14 | a: 1 | +| gen_struct_expr_field.rs:5:17:5:20 | b: 2 | getAttr getExpr | gen_struct_expr_field.rs:5:11:5:14 | a: 1 | gen_struct_expr_field.rs:5:14:5:14 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql index a8142d07dc7..4b4703c8828 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql +++ b/rust/ql/test/extractor-tests/generated/StructExprField/StructExprField.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructExprField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr, string hasIdentifier__label, string hasIdentifier -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - (if x.hasExpr() then hasExpr = "yes" else hasExpr = "no") and - hasIdentifier__label = "hasIdentifier:" and - if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no" -} +query predicate instances(StructExprField x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(StructExprField x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected index b81d8eac119..188a3690d83 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.expected @@ -1,5 +1,5 @@ instances -| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | hasSpread: | no | +| gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | getAttr getField | gen_struct_expr_field_list.rs:7:9:7:22 | StructExprFieldList | 0 | gen_struct_expr_field_list.rs:7:11:7:14 | a: 1 | diff --git a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql index 4ce42a59421..dfa2ea4c324 100644 --- a/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructExprFieldList/StructExprFieldList.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructExprFieldList x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfFields__label, int getNumberOfFields, string hasSpread__label, string hasSpread -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() and - hasSpread__label = "hasSpread:" and - if x.hasSpread() then hasSpread = "yes" else hasSpread = "no" -} +query predicate instances(StructExprFieldList x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(StructExprFieldList x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField.expected b/rust/ql/test/extractor-tests/generated/StructField/StructField.expected index 1423f2e71d6..3b5d0d7b71c 100644 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField.expected +++ b/rust/ql/test/extractor-tests/generated/StructField/StructField.expected @@ -1,5 +1,5 @@ instances -| gen_struct_field.rs:7:16:7:21 | StructField | getNumberOfAttrs: | 0 | hasDefault: | no | isUnsafe: | no | hasName: | yes | hasTypeRepr: | yes | hasVisibility: | no | +| gen_struct_field.rs:7:16:7:21 | StructField | isUnsafe: | no | getAttr getDefault getName diff --git a/rust/ql/test/extractor-tests/generated/StructField/StructField.ql b/rust/ql/test/extractor-tests/generated/StructField/StructField.ql index 455dc16438b..773f282e36b 100644 --- a/rust/ql/test/extractor-tests/generated/StructField/StructField.ql +++ b/rust/ql/test/extractor-tests/generated/StructField/StructField.ql @@ -2,25 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefault__label, - string hasDefault, string isUnsafe__label, string isUnsafe, string hasName__label, string hasName, - string hasTypeRepr__label, string hasTypeRepr, string hasVisibility__label, string hasVisibility -) { +query predicate instances(StructField x, string isUnsafe__label, string isUnsafe) { toBeTested(x) and not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasDefault__label = "hasDefault:" and - (if x.hasDefault() then hasDefault = "yes" else hasDefault = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getAttr(StructField x, int index, Attr getAttr) { diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected index 6d100043abd..847bfd3c937 100644 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.expected @@ -1,5 +1,5 @@ instances -| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | getNumberOfFields: | 2 | +| gen_struct_field_list.rs:7:14:7:31 | StructFieldList | getField | gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 0 | gen_struct_field_list.rs:7:16:7:21 | StructField | | gen_struct_field_list.rs:7:14:7:31 | StructFieldList | 1 | gen_struct_field_list.rs:7:24:7:29 | StructField | diff --git a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql index 81f5991e669..f8afe271d81 100644 --- a/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructFieldList/StructFieldList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(StructFieldList x, string getNumberOfFields__label, int getNumberOfFields) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(StructFieldList x) { toBeTested(x) and not x.isUnknown() } query predicate getField(StructFieldList x, int index, StructField getField) { toBeTested(x) and not x.isUnknown() and getField = x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected index e95115ae69a..894e52fb196 100644 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected +++ b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.expected @@ -1,6 +1,6 @@ instances -| gen_struct_pat.rs:6:9:6:26 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructPatFieldList: | yes | -| gen_struct_pat.rs:7:9:7:18 | Foo {...} | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | hasStructPatFieldList: | yes | +| gen_struct_pat.rs:6:9:6:26 | Foo {...} | +| gen_struct_pat.rs:7:9:7:18 | Foo {...} | getResolvedPath getResolvedCrateOrigin getPath diff --git a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql index 82f0034da47..4aad29aede9 100644 --- a/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql +++ b/rust/ql/test/extractor-tests/generated/StructPat/StructPat.ql @@ -2,26 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructPat x, string hasResolvedPath__label, string hasResolvedPath, - string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, - string hasPath, string hasStructPatFieldList__label, string hasStructPatFieldList -) { - toBeTested(x) and - not x.isUnknown() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - hasStructPatFieldList__label = "hasStructPatFieldList:" and - if x.hasStructPatFieldList() then hasStructPatFieldList = "yes" else hasStructPatFieldList = "no" -} +query predicate instances(StructPat x) { toBeTested(x) and not x.isUnknown() } query predicate getResolvedPath(StructPat x, string getResolvedPath) { toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected index a8c40fcb68f..c2efa2bda82 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected +++ b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.expected @@ -1,6 +1,6 @@ instances -| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasPat: | yes | -| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | getNumberOfAttrs: | 0 | hasIdentifier: | yes | hasPat: | yes | +| gen_struct_pat_field.rs:5:15:5:18 | a: 1 | +| gen_struct_pat_field.rs:5:21:5:24 | b: 2 | getAttr getIdentifier | gen_struct_pat_field.rs:5:15:5:18 | a: 1 | gen_struct_pat_field.rs:5:15:5:15 | a | diff --git a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql index 67eb1d7c99d..4b3c605590d 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql +++ b/rust/ql/test/extractor-tests/generated/StructPatField/StructPatField.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructPatField x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasIdentifier__label, string hasIdentifier, string hasPat__label, string hasPat -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasIdentifier__label = "hasIdentifier:" and - (if x.hasIdentifier() then hasIdentifier = "yes" else hasIdentifier = "no") and - hasPat__label = "hasPat:" and - if x.hasPat() then hasPat = "yes" else hasPat = "no" -} +query predicate instances(StructPatField x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(StructPatField x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected index 54c067a025b..a40c54bd30a 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.expected @@ -1,5 +1,5 @@ instances -| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | getNumberOfFields: | 2 | hasRestPat: | no | +| gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | getField | gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 0 | gen_struct_pat_field_list.rs:7:15:7:15 | ... | | gen_struct_pat_field_list.rs:7:13:7:20 | StructPatFieldList | 1 | gen_struct_pat_field_list.rs:7:18:7:18 | ... | diff --git a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql index f0e4c5f2185..2d9433fdb80 100644 --- a/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/StructPatFieldList/StructPatFieldList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - StructPatFieldList x, string getNumberOfFields__label, int getNumberOfFields, - string hasRestPat__label, string hasRestPat -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() and - hasRestPat__label = "hasRestPat:" and - if x.hasRestPat() then hasRestPat = "yes" else hasRestPat = "no" -} +query predicate instances(StructPatFieldList x) { toBeTested(x) and not x.isUnknown() } query predicate getField(StructPatFieldList x, int index, StructPatField getField) { toBeTested(x) and not x.isUnknown() and getField = x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected index 07cfc7acf83..526d4057b3c 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.expected @@ -1,6 +1,6 @@ instances -| gen_trait.rs:4:20:8:1 | AssocItemList | getNumberOfAssocItems: | 3 | getNumberOfAttrs: | 0 | -| gen_trait.rs:10:56:10:57 | AssocItemList | getNumberOfAssocItems: | 0 | getNumberOfAttrs: | 0 | +| gen_trait.rs:4:20:8:1 | AssocItemList | +| gen_trait.rs:10:56:10:57 | AssocItemList | getAssocItem | gen_trait.rs:4:20:8:1 | AssocItemList | 0 | gen_trait.rs:5:3:5:18 | type Frobinator | | gen_trait.rs:4:20:8:1 | AssocItemList | 1 | gen_trait.rs:6:3:6:20 | type Result | diff --git a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql index c0e5ffde800..bbef174971f 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/AssocItemList.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - AssocItemList x, string getNumberOfAssocItems__label, int getNumberOfAssocItems, - string getNumberOfAttrs__label, int getNumberOfAttrs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAssocItems__label = "getNumberOfAssocItems:" and - getNumberOfAssocItems = x.getNumberOfAssocItems() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(AssocItemList x) { toBeTested(x) and not x.isUnknown() } query predicate getAssocItem(AssocItemList x, int index, AssocItem getAssocItem) { toBeTested(x) and not x.isUnknown() and getAssocItem = x.getAssocItem(index) diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected index c7ed1fef545..ff60871f40b 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.expected +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.expected @@ -1,6 +1,6 @@ instances -| gen_trait.rs:3:1:8:1 | trait Frobinizable | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_trait.rs:10:1:10:57 | trait Foo | hasExtendedCanonicalPath: | yes | hasCrateOrigin: | yes | hasAttributeMacroExpansion: | no | hasAssocItemList: | yes | getNumberOfAttrs: | 0 | hasGenericParamList: | yes | isAuto: | no | isUnsafe: | no | hasName: | yes | hasTypeBoundList: | no | hasVisibility: | yes | hasWhereClause: | yes | +| gen_trait.rs:3:1:8:1 | trait Frobinizable | isAuto: | no | isUnsafe: | no | +| gen_trait.rs:10:1:10:57 | trait Foo | isAuto: | no | isUnsafe: | no | getExtendedCanonicalPath | gen_trait.rs:3:1:8:1 | trait Frobinizable | crate::gen_trait::Frobinizable | | gen_trait.rs:10:1:10:57 | trait Foo | crate::gen_trait::Foo | diff --git a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql index 9079f66cfc0..35725fcd526 100644 --- a/rust/ql/test/extractor-tests/generated/Trait/Trait.ql +++ b/rust/ql/test/extractor-tests/generated/Trait/Trait.ql @@ -3,49 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - Trait x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string hasAssocItemList__label, string hasAssocItemList, - string getNumberOfAttrs__label, int getNumberOfAttrs, string hasGenericParamList__label, - string hasGenericParamList, string isAuto__label, string isAuto, string isUnsafe__label, - string isUnsafe, string hasName__label, string hasName, string hasTypeBoundList__label, - string hasTypeBoundList, string hasVisibility__label, string hasVisibility, - string hasWhereClause__label, string hasWhereClause + Trait x, string isAuto__label, string isAuto, string isUnsafe__label, string isUnsafe ) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - hasAssocItemList__label = "hasAssocItemList:" and - (if x.hasAssocItemList() then hasAssocItemList = "yes" else hasAssocItemList = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and isAuto__label = "isAuto:" and (if x.isAuto() then isAuto = "yes" else isAuto = "no") and isUnsafe__label = "isUnsafe:" and - (if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" + if x.isUnsafe() then isUnsafe = "yes" else isUnsafe = "no" } query predicate getExtendedCanonicalPath(Trait x, string getExtendedCanonicalPath) { diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected index 62b759298c8..f8fc1628036 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.expected @@ -1,5 +1,5 @@ instances -| gen_trait_alias.rs:7:5:7:26 | TraitAlias | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasTypeBoundList: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_trait_alias.rs:7:5:7:26 | TraitAlias | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql index 5a6d695ae6e..2d65541f50c 100644 --- a/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TraitAlias/TraitAlias.ql @@ -2,44 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TraitAlias x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasGenericParamList__label, string hasGenericParamList, string hasName__label, - string hasName, string hasTypeBoundList__label, string hasTypeBoundList, - string hasVisibility__label, string hasVisibility, string hasWhereClause__label, - string hasWhereClause -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -} +query predicate instances(TraitAlias x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(TraitAlias x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected index 1a81eb0f477..7bfee39ff2a 100644 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected +++ b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.expected @@ -1,5 +1,5 @@ instances -| gen_try_expr.rs:7:13:7:18 | TryExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_try_expr.rs:7:13:7:18 | TryExpr | getAttr getExpr | gen_try_expr.rs:7:13:7:18 | TryExpr | gen_try_expr.rs:7:13:7:17 | foo(...) | diff --git a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql index 6f22b28067c..fc42bca14a9 100644 --- a/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql +++ b/rust/ql/test/extractor-tests/generated/TryExpr/TryExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TryExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(TryExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(TryExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected index c78dbfcbcbd..3a35afd6630 100644 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected +++ b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.expected @@ -1,6 +1,6 @@ instances -| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | -| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | getNumberOfAttrs: | 0 | getNumberOfFields: | 2 | +| gen_tuple_expr.rs:5:5:5:14 | TupleExpr | +| gen_tuple_expr.rs:6:5:6:14 | TupleExpr | getAttr getField | gen_tuple_expr.rs:5:5:5:14 | TupleExpr | 0 | gen_tuple_expr.rs:5:6:5:6 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql index d3d04608a5f..0b49fca4cee 100644 --- a/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql +++ b/rust/ql/test/extractor-tests/generated/TupleExpr/TupleExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TupleExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, - string getNumberOfFields__label, int getNumberOfFields -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(TupleExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(TupleExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected index 86985a0ceb1..6c653a9c37f 100644 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected +++ b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.expected @@ -1,6 +1,6 @@ instances -| gen_tuple_field.rs:7:14:7:16 | TupleField | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasVisibility: | no | -| gen_tuple_field.rs:7:19:7:24 | TupleField | getNumberOfAttrs: | 0 | hasTypeRepr: | yes | hasVisibility: | no | +| gen_tuple_field.rs:7:14:7:16 | TupleField | +| gen_tuple_field.rs:7:19:7:24 | TupleField | getAttr getTypeRepr | gen_tuple_field.rs:7:14:7:16 | TupleField | gen_tuple_field.rs:7:14:7:16 | i32 | diff --git a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql index 52720718de5..01c15ace3dd 100644 --- a/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql +++ b/rust/ql/test/extractor-tests/generated/TupleField/TupleField.ql @@ -2,19 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TupleField x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasTypeRepr__label, - string hasTypeRepr, string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(TupleField x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(TupleField x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected index 59c97d1032d..48940b31c34 100644 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected +++ b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.expected @@ -1,5 +1,5 @@ instances -| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | getNumberOfFields: | 2 | +| gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | getField | gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 0 | gen_tuple_field_list.rs:7:14:7:16 | TupleField | | gen_tuple_field_list.rs:7:13:7:25 | TupleFieldList | 1 | gen_tuple_field_list.rs:7:19:7:24 | TupleField | diff --git a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql index 1edeb8b3060..90b61236db3 100644 --- a/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql +++ b/rust/ql/test/extractor-tests/generated/TupleFieldList/TupleFieldList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(TupleFieldList x, string getNumberOfFields__label, int getNumberOfFields) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(TupleFieldList x) { toBeTested(x) and not x.isUnknown() } query predicate getField(TupleFieldList x, int index, TupleField getField) { toBeTested(x) and not x.isUnknown() and getField = x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected index 3d4877a21b7..8e769296d5f 100644 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected +++ b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.expected @@ -1,6 +1,6 @@ instances -| gen_tuple_pat.rs:5:9:5:14 | TuplePat | getNumberOfFields: | 2 | -| gen_tuple_pat.rs:6:9:6:22 | TuplePat | getNumberOfFields: | 4 | +| gen_tuple_pat.rs:5:9:5:14 | TuplePat | +| gen_tuple_pat.rs:6:9:6:22 | TuplePat | getField | gen_tuple_pat.rs:5:9:5:14 | TuplePat | 0 | gen_tuple_pat.rs:5:10:5:10 | x | | gen_tuple_pat.rs:5:9:5:14 | TuplePat | 1 | gen_tuple_pat.rs:5:13:5:13 | y | diff --git a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql index 514e7aed8b2..1692fe6758c 100644 --- a/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql +++ b/rust/ql/test/extractor-tests/generated/TuplePat/TuplePat.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(TuplePat x, string getNumberOfFields__label, int getNumberOfFields) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(TuplePat x) { toBeTested(x) and not x.isUnknown() } query predicate getField(TuplePat x, int index, Pat getField) { toBeTested(x) and not x.isUnknown() and getField = x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected index 1c703883b79..c5ce2e2640a 100644 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected +++ b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.expected @@ -1,7 +1,7 @@ instances -| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 4 | -| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 2 | -| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | hasResolvedPath: | no | hasResolvedCrateOrigin: | no | hasPath: | yes | getNumberOfFields: | 1 | +| gen_tuple_struct_pat.rs:6:9:6:27 | Tuple(...) | +| gen_tuple_struct_pat.rs:7:9:7:20 | Tuple(...) | +| gen_tuple_struct_pat.rs:8:9:8:17 | Tuple(...) | getResolvedPath getResolvedCrateOrigin getPath diff --git a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql index dafac11e38f..408c892ea3c 100644 --- a/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql +++ b/rust/ql/test/extractor-tests/generated/TupleStructPat/TupleStructPat.ql @@ -2,26 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TupleStructPat x, string hasResolvedPath__label, string hasResolvedPath, - string hasResolvedCrateOrigin__label, string hasResolvedCrateOrigin, string hasPath__label, - string hasPath, string getNumberOfFields__label, int getNumberOfFields -) { - toBeTested(x) and - not x.isUnknown() and - hasResolvedPath__label = "hasResolvedPath:" and - (if x.hasResolvedPath() then hasResolvedPath = "yes" else hasResolvedPath = "no") and - hasResolvedCrateOrigin__label = "hasResolvedCrateOrigin:" and - ( - if x.hasResolvedCrateOrigin() - then hasResolvedCrateOrigin = "yes" - else hasResolvedCrateOrigin = "no" - ) and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(TupleStructPat x) { toBeTested(x) and not x.isUnknown() } query predicate getResolvedPath(TupleStructPat x, string getResolvedPath) { toBeTested(x) and not x.isUnknown() and getResolvedPath = x.getResolvedPath() diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected index 17dfb6a02f6..1682ee89d08 100644 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected +++ b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.expected @@ -1,6 +1,6 @@ instances -| gen_tuple_type_repr.rs:3:30:3:31 | TupleTypeRepr | getNumberOfFields: | 0 | -| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | getNumberOfFields: | 2 | +| gen_tuple_type_repr.rs:3:30:3:31 | TupleTypeRepr | +| gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | getField | gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 0 | gen_tuple_type_repr.rs:7:13:7:15 | i32 | | gen_tuple_type_repr.rs:7:12:7:24 | TupleTypeRepr | 1 | gen_tuple_type_repr.rs:7:18:7:23 | String | diff --git a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql index d8e508fa30a..6e0cbbe65fe 100644 --- a/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql +++ b/rust/ql/test/extractor-tests/generated/TupleTypeRepr/TupleTypeRepr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(TupleTypeRepr x, string getNumberOfFields__label, int getNumberOfFields) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfFields__label = "getNumberOfFields:" and - getNumberOfFields = x.getNumberOfFields() -} +query predicate instances(TupleTypeRepr x) { toBeTested(x) and not x.isUnknown() } query predicate getField(TupleTypeRepr x, int index, TypeRepr getField) { toBeTested(x) and not x.isUnknown() and getField = x.getField(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected index cc59e1cb15c..b9b58485752 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.expected @@ -1,6 +1,6 @@ instances -| gen_type_alias.rs:4:5:5:26 | type Point | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | yes | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | -| gen_type_alias.rs:8:9:8:20 | type Output | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasGenericParamList: | no | isDefault: | no | hasName: | yes | hasTypeRepr: | no | hasTypeBoundList: | no | hasVisibility: | no | hasWhereClause: | no | +| gen_type_alias.rs:4:5:5:26 | type Point | isDefault: | no | +| gen_type_alias.rs:8:9:8:20 | type Output | isDefault: | no | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql index 0cfc0006d9b..014bd119d33 100644 --- a/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql +++ b/rust/ql/test/extractor-tests/generated/TypeAlias/TypeAlias.ql @@ -2,48 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TypeAlias x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasGenericParamList__label, string hasGenericParamList, string isDefault__label, - string isDefault, string hasName__label, string hasName, string hasTypeRepr__label, - string hasTypeRepr, string hasTypeBoundList__label, string hasTypeBoundList, - string hasVisibility__label, string hasVisibility, string hasWhereClause__label, - string hasWhereClause -) { +query predicate instances(TypeAlias x, string isDefault__label, string isDefault) { toBeTested(x) and not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and isDefault__label = "isDefault:" and - (if x.isDefault() then isDefault = "yes" else isDefault = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - (if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" + if x.isDefault() then isDefault = "yes" else isDefault = "no" } query predicate getExtendedCanonicalPath(TypeAlias x, string getExtendedCanonicalPath) { diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected index c38de158720..e628c7daee7 100644 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected +++ b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.expected @@ -1,4 +1,4 @@ instances -| gen_type_arg.rs:7:11:7:13 | TypeArg | hasTypeRepr: | yes | +| gen_type_arg.rs:7:11:7:13 | TypeArg | getTypeRepr | gen_type_arg.rs:7:11:7:13 | TypeArg | gen_type_arg.rs:7:11:7:13 | u32 | diff --git a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql index dffd1c7e8d6..57178cd8502 100644 --- a/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql +++ b/rust/ql/test/extractor-tests/generated/TypeArg/TypeArg.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(TypeArg x, string hasTypeRepr__label, string hasTypeRepr) { - toBeTested(x) and - not x.isUnknown() and - hasTypeRepr__label = "hasTypeRepr:" and - if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no" -} +query predicate instances(TypeArg x) { toBeTested(x) and not x.isUnknown() } query predicate getTypeRepr(TypeArg x, TypeRepr getTypeRepr) { toBeTested(x) and not x.isUnknown() and getTypeRepr = x.getTypeRepr() diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected index 76122292da0..e0ed9fcdd6c 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected +++ b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.expected @@ -1,5 +1,5 @@ instances -| gen_type_bound.rs:7:15:7:19 | TypeBound | isAsync: | no | isConst: | no | hasLifetime: | no | hasTypeRepr: | yes | hasUseBoundGenericArgs: | no | +| gen_type_bound.rs:7:15:7:19 | TypeBound | isAsync: | no | isConst: | no | getLifetime getTypeRepr | gen_type_bound.rs:7:15:7:19 | TypeBound | gen_type_bound.rs:7:15:7:19 | Debug | diff --git a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql index e14a26d735c..e4b2b6127dc 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql +++ b/rust/ql/test/extractor-tests/generated/TypeBound/TypeBound.ql @@ -3,24 +3,14 @@ import codeql.rust.elements import TestUtils query predicate instances( - TypeBound x, string isAsync__label, string isAsync, string isConst__label, string isConst, - string hasLifetime__label, string hasLifetime, string hasTypeRepr__label, string hasTypeRepr, - string hasUseBoundGenericArgs__label, string hasUseBoundGenericArgs + TypeBound x, string isAsync__label, string isAsync, string isConst__label, string isConst ) { toBeTested(x) and not x.isUnknown() and isAsync__label = "isAsync:" and (if x.isAsync() then isAsync = "yes" else isAsync = "no") and isConst__label = "isConst:" and - (if x.isConst() then isConst = "yes" else isConst = "no") and - hasLifetime__label = "hasLifetime:" and - (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasUseBoundGenericArgs__label = "hasUseBoundGenericArgs:" and - if x.hasUseBoundGenericArgs() - then hasUseBoundGenericArgs = "yes" - else hasUseBoundGenericArgs = "no" + if x.isConst() then isConst = "yes" else isConst = "no" } query predicate getLifetime(TypeBound x, Lifetime getLifetime) { diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected index a842c9926e5..e195424d097 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected +++ b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.expected @@ -1,5 +1,5 @@ instances -| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | getNumberOfBounds: | 2 | +| gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | getBound | gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 0 | gen_type_bound_list.rs:7:15:7:19 | TypeBound | | gen_type_bound_list.rs:7:15:7:27 | TypeBoundList | 1 | gen_type_bound_list.rs:7:23:7:27 | TypeBound | diff --git a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql index 99900b675ba..8af2507e772 100644 --- a/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql +++ b/rust/ql/test/extractor-tests/generated/TypeBoundList/TypeBoundList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(TypeBoundList x, string getNumberOfBounds__label, int getNumberOfBounds) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfBounds__label = "getNumberOfBounds:" and - getNumberOfBounds = x.getNumberOfBounds() -} +query predicate instances(TypeBoundList x) { toBeTested(x) and not x.isUnknown() } query predicate getBound(TypeBoundList x, int index, TypeBound getBound) { toBeTested(x) and not x.isUnknown() and getBound = x.getBound(index) diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected index 6d42fbae86a..c856ca9c69e 100644 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected +++ b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.expected @@ -1,5 +1,5 @@ instances -| gen_type_param.rs:7:12:7:12 | T | getNumberOfAttrs: | 0 | hasDefaultType: | no | hasName: | yes | hasTypeBoundList: | no | +| gen_type_param.rs:7:12:7:12 | T | getAttr getDefaultType getName diff --git a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql index 31c20f55813..61f38aab835 100644 --- a/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql +++ b/rust/ql/test/extractor-tests/generated/TypeParam/TypeParam.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - TypeParam x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasDefaultType__label, - string hasDefaultType, string hasName__label, string hasName, string hasTypeBoundList__label, - string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasDefaultType__label = "hasDefaultType:" and - (if x.hasDefaultType() then hasDefaultType = "yes" else hasDefaultType = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(TypeParam x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(TypeParam x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected index 5c4feab55f8..b4ff46aa5d0 100644 --- a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected +++ b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.expected @@ -1,3 +1,3 @@ instances -| gen_underscore_expr.rs:5:5:5:5 | _ | getNumberOfAttrs: | 0 | +| gen_underscore_expr.rs:5:5:5:5 | _ | getAttr diff --git a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql index 58f09bb43f4..13324f21bf2 100644 --- a/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql +++ b/rust/ql/test/extractor-tests/generated/UnderscoreExpr/UnderscoreExpr.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(UnderscoreExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() -} +query predicate instances(UnderscoreExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(UnderscoreExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.expected b/rust/ql/test/extractor-tests/generated/Union/Union.expected index 9cad6b80520..110643aeac9 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.expected +++ b/rust/ql/test/extractor-tests/generated/Union/Union.expected @@ -1,5 +1,5 @@ instances -| gen_union.rs:4:5:7:32 | union U | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfDeriveMacroExpansions: | 0 | getNumberOfAttrs: | 0 | hasGenericParamList: | no | hasName: | yes | hasStructFieldList: | yes | hasVisibility: | no | hasWhereClause: | no | +| gen_union.rs:4:5:7:32 | union U | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Union/Union.ql b/rust/ql/test/extractor-tests/generated/Union/Union.ql index a944a937360..147a8fca09e 100644 --- a/rust/ql/test/extractor-tests/generated/Union/Union.ql +++ b/rust/ql/test/extractor-tests/generated/Union/Union.ql @@ -2,47 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Union x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfDeriveMacroExpansions__label, - int getNumberOfDeriveMacroExpansions, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasGenericParamList__label, string hasGenericParamList, string hasName__label, - string hasName, string hasStructFieldList__label, string hasStructFieldList, - string hasVisibility__label, string hasVisibility, string hasWhereClause__label, - string hasWhereClause -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfDeriveMacroExpansions__label = "getNumberOfDeriveMacroExpansions:" and - getNumberOfDeriveMacroExpansions = x.getNumberOfDeriveMacroExpansions() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasStructFieldList__label = "hasStructFieldList:" and - (if x.hasStructFieldList() then hasStructFieldList = "yes" else hasStructFieldList = "no") and - hasVisibility__label = "hasVisibility:" and - (if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no") and - hasWhereClause__label = "hasWhereClause:" and - if x.hasWhereClause() then hasWhereClause = "yes" else hasWhereClause = "no" -} +query predicate instances(Union x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Union x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.expected b/rust/ql/test/extractor-tests/generated/Use/Use.expected index 6aa50c92f01..23057c691dc 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.expected +++ b/rust/ql/test/extractor-tests/generated/Use/Use.expected @@ -1,5 +1,5 @@ instances -| gen_use.rs:4:5:5:34 | use ...::HashMap | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | hasAttributeMacroExpansion: | no | getNumberOfAttrs: | 0 | hasUseTree: | yes | hasVisibility: | no | +| gen_use.rs:4:5:5:34 | use ...::HashMap | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion diff --git a/rust/ql/test/extractor-tests/generated/Use/Use.ql b/rust/ql/test/extractor-tests/generated/Use/Use.ql index 097c0ef76e5..bfce3bcc89c 100644 --- a/rust/ql/test/extractor-tests/generated/Use/Use.ql +++ b/rust/ql/test/extractor-tests/generated/Use/Use.ql @@ -2,35 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Use x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string hasAttributeMacroExpansion__label, - string hasAttributeMacroExpansion, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasUseTree__label, string hasUseTree, string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - hasAttributeMacroExpansion__label = "hasAttributeMacroExpansion:" and - ( - if x.hasAttributeMacroExpansion() - then hasAttributeMacroExpansion = "yes" - else hasAttributeMacroExpansion = "no" - ) and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasUseTree__label = "hasUseTree:" and - (if x.hasUseTree() then hasUseTree = "yes" else hasUseTree = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(Use x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Use x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected index a7df429d1de..6bd467ca708 100644 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected +++ b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.expected @@ -1,5 +1,5 @@ instances -| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | getNumberOfUseBoundGenericArgs: | 3 | +| gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | getUseBoundGenericArg | gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 0 | gen_use_bound_generic_args.rs:7:63:7:64 | 'a | | gen_use_bound_generic_args.rs:7:62:7:71 | UseBoundGenericArgs | 1 | gen_use_bound_generic_args.rs:7:67:7:67 | T | diff --git a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql index 7179177aeb1..7147be569b9 100644 --- a/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql +++ b/rust/ql/test/extractor-tests/generated/UseBoundGenericArgs/UseBoundGenericArgs.ql @@ -2,15 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - UseBoundGenericArgs x, string getNumberOfUseBoundGenericArgs__label, - int getNumberOfUseBoundGenericArgs -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfUseBoundGenericArgs__label = "getNumberOfUseBoundGenericArgs:" and - getNumberOfUseBoundGenericArgs = x.getNumberOfUseBoundGenericArgs() -} +query predicate instances(UseBoundGenericArgs x) { toBeTested(x) and not x.isUnknown() } query predicate getUseBoundGenericArg( UseBoundGenericArgs x, int index, UseBoundGenericArg getUseBoundGenericArg diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected index 480e15b3ae1..5e59c0c9f83 100644 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected +++ b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.expected @@ -1,11 +1,11 @@ instances -| gen_use_tree.rs:5:9:5:33 | ...::HashMap | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | -| gen_use_tree.rs:6:9:6:27 | ...::collections::* | isGlob: | yes | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | -| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | isGlob: | no | hasPath: | yes | hasRename: | yes | hasUseTreeList: | no | -| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | yes | -| gen_use_tree.rs:8:28:8:31 | self | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | -| gen_use_tree.rs:8:34:8:40 | HashMap | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | -| gen_use_tree.rs:8:43:8:49 | HashSet | isGlob: | no | hasPath: | yes | hasRename: | no | hasUseTreeList: | no | +| gen_use_tree.rs:5:9:5:33 | ...::HashMap | isGlob: | no | +| gen_use_tree.rs:6:9:6:27 | ...::collections::* | isGlob: | yes | +| gen_use_tree.rs:7:9:7:46 | ...::HashMap as MyHashMap | isGlob: | no | +| gen_use_tree.rs:8:9:8:50 | ...::collections::{...} | isGlob: | no | +| gen_use_tree.rs:8:28:8:31 | self | isGlob: | no | +| gen_use_tree.rs:8:34:8:40 | HashMap | isGlob: | no | +| gen_use_tree.rs:8:43:8:49 | HashSet | isGlob: | no | getPath | gen_use_tree.rs:5:9:5:33 | ...::HashMap | gen_use_tree.rs:5:9:5:33 | ...::HashMap | | gen_use_tree.rs:6:9:6:27 | ...::collections::* | gen_use_tree.rs:6:9:6:24 | ...::collections | diff --git a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql index d7ed0484402..5f4c010c7e4 100644 --- a/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql +++ b/rust/ql/test/extractor-tests/generated/UseTree/UseTree.ql @@ -2,20 +2,11 @@ import codeql.rust.elements import TestUtils -query predicate instances( - UseTree x, string isGlob__label, string isGlob, string hasPath__label, string hasPath, - string hasRename__label, string hasRename, string hasUseTreeList__label, string hasUseTreeList -) { +query predicate instances(UseTree x, string isGlob__label, string isGlob) { toBeTested(x) and not x.isUnknown() and isGlob__label = "isGlob:" and - (if x.isGlob() then isGlob = "yes" else isGlob = "no") and - hasPath__label = "hasPath:" and - (if x.hasPath() then hasPath = "yes" else hasPath = "no") and - hasRename__label = "hasRename:" and - (if x.hasRename() then hasRename = "yes" else hasRename = "no") and - hasUseTreeList__label = "hasUseTreeList:" and - if x.hasUseTreeList() then hasUseTreeList = "yes" else hasUseTreeList = "no" + if x.isGlob() then isGlob = "yes" else isGlob = "no" } query predicate getPath(UseTree x, Path getPath) { diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected index 65ebdac21c2..451bd9daf4a 100644 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected +++ b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.expected @@ -1,5 +1,5 @@ instances -| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | getNumberOfUseTrees: | 2 | +| gen_use_tree_list.rs:7:14:7:21 | UseTreeList | getUseTree | gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 0 | gen_use_tree_list.rs:7:15:7:16 | fs | | gen_use_tree_list.rs:7:14:7:21 | UseTreeList | 1 | gen_use_tree_list.rs:7:19:7:20 | io | diff --git a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql index 9f2dac1fc16..5e0058df86d 100644 --- a/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql +++ b/rust/ql/test/extractor-tests/generated/UseTreeList/UseTreeList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(UseTreeList x, string getNumberOfUseTrees__label, int getNumberOfUseTrees) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfUseTrees__label = "getNumberOfUseTrees:" and - getNumberOfUseTrees = x.getNumberOfUseTrees() -} +query predicate instances(UseTreeList x) { toBeTested(x) and not x.isUnknown() } query predicate getUseTree(UseTreeList x, int index, UseTree getUseTree) { toBeTested(x) and not x.isUnknown() and getUseTree = x.getUseTree(index) diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant.expected b/rust/ql/test/extractor-tests/generated/Variant/Variant.expected index a7c1184b925..ad970afe530 100644 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant.expected +++ b/rust/ql/test/extractor-tests/generated/Variant/Variant.expected @@ -1,7 +1,7 @@ instances -| gen_variant.rs:7:14:7:14 | A | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | no | hasName: | yes | hasVisibility: | no | -| gen_variant.rs:7:17:7:22 | B | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | yes | hasName: | yes | hasVisibility: | no | -| gen_variant.rs:7:25:7:36 | C | hasExtendedCanonicalPath: | no | hasCrateOrigin: | no | getNumberOfAttrs: | 0 | hasDiscriminant: | no | hasFieldList: | yes | hasName: | yes | hasVisibility: | no | +| gen_variant.rs:7:14:7:14 | A | +| gen_variant.rs:7:17:7:22 | B | +| gen_variant.rs:7:25:7:36 | C | getExtendedCanonicalPath getCrateOrigin getAttr diff --git a/rust/ql/test/extractor-tests/generated/Variant/Variant.ql b/rust/ql/test/extractor-tests/generated/Variant/Variant.ql index ccd2f09881c..088f610637a 100644 --- a/rust/ql/test/extractor-tests/generated/Variant/Variant.ql +++ b/rust/ql/test/extractor-tests/generated/Variant/Variant.ql @@ -2,34 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - Variant x, string hasExtendedCanonicalPath__label, string hasExtendedCanonicalPath, - string hasCrateOrigin__label, string hasCrateOrigin, string getNumberOfAttrs__label, - int getNumberOfAttrs, string hasDiscriminant__label, string hasDiscriminant, - string hasFieldList__label, string hasFieldList, string hasName__label, string hasName, - string hasVisibility__label, string hasVisibility -) { - toBeTested(x) and - not x.isUnknown() and - hasExtendedCanonicalPath__label = "hasExtendedCanonicalPath:" and - ( - if x.hasExtendedCanonicalPath() - then hasExtendedCanonicalPath = "yes" - else hasExtendedCanonicalPath = "no" - ) and - hasCrateOrigin__label = "hasCrateOrigin:" and - (if x.hasCrateOrigin() then hasCrateOrigin = "yes" else hasCrateOrigin = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasDiscriminant__label = "hasDiscriminant:" and - (if x.hasDiscriminant() then hasDiscriminant = "yes" else hasDiscriminant = "no") and - hasFieldList__label = "hasFieldList:" and - (if x.hasFieldList() then hasFieldList = "yes" else hasFieldList = "no") and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasVisibility__label = "hasVisibility:" and - if x.hasVisibility() then hasVisibility = "yes" else hasVisibility = "no" -} +query predicate instances(Variant x) { toBeTested(x) and not x.isUnknown() } query predicate getExtendedCanonicalPath(Variant x, string getExtendedCanonicalPath) { toBeTested(x) and not x.isUnknown() and getExtendedCanonicalPath = x.getExtendedCanonicalPath() diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected index 61ec4edbab7..9642b1fe308 100644 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected +++ b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.expected @@ -1,5 +1,5 @@ instances -| gen_variant_list.rs:7:12:7:22 | VariantList | getNumberOfVariants: | 3 | +| gen_variant_list.rs:7:12:7:22 | VariantList | getVariant | gen_variant_list.rs:7:12:7:22 | VariantList | 0 | gen_variant_list.rs:7:14:7:14 | A | | gen_variant_list.rs:7:12:7:22 | VariantList | 1 | gen_variant_list.rs:7:17:7:17 | B | diff --git a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql index c858f92bfab..85ecb0fe409 100644 --- a/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql +++ b/rust/ql/test/extractor-tests/generated/VariantList/VariantList.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(VariantList x, string getNumberOfVariants__label, int getNumberOfVariants) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfVariants__label = "getNumberOfVariants:" and - getNumberOfVariants = x.getNumberOfVariants() -} +query predicate instances(VariantList x) { toBeTested(x) and not x.isUnknown() } query predicate getVariant(VariantList x, int index, Variant getVariant) { toBeTested(x) and not x.isUnknown() and getVariant = x.getVariant(index) diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected index f9c6ebbeb7a..daae8776ad7 100644 --- a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected +++ b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.expected @@ -1,3 +1,3 @@ instances -| gen_visibility.rs:7:7:7:9 | Visibility | hasPath: | no | +| gen_visibility.rs:7:7:7:9 | Visibility | getPath diff --git a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql index d071e76cf33..651d0aecb2f 100644 --- a/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql +++ b/rust/ql/test/extractor-tests/generated/Visibility/Visibility.ql @@ -2,12 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances(Visibility x, string hasPath__label, string hasPath) { - toBeTested(x) and - not x.isUnknown() and - hasPath__label = "hasPath:" and - if x.hasPath() then hasPath = "yes" else hasPath = "no" -} +query predicate instances(Visibility x) { toBeTested(x) and not x.isUnknown() } query predicate getPath(Visibility x, Path getPath) { toBeTested(x) and not x.isUnknown() and getPath = x.getPath() diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected index cfa28e51e44..8dbec29fd90 100644 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected +++ b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.expected @@ -1,4 +1,4 @@ instances -| gen_where_clause.rs:7:21:7:34 | WhereClause | getNumberOfPredicates: | 1 | +| gen_where_clause.rs:7:21:7:34 | WhereClause | getPredicate | gen_where_clause.rs:7:21:7:34 | WhereClause | 0 | gen_where_clause.rs:7:27:7:34 | WherePred | diff --git a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql index df436c29f57..8890de0efaf 100644 --- a/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql +++ b/rust/ql/test/extractor-tests/generated/WhereClause/WhereClause.ql @@ -2,14 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - WhereClause x, string getNumberOfPredicates__label, int getNumberOfPredicates -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfPredicates__label = "getNumberOfPredicates:" and - getNumberOfPredicates = x.getNumberOfPredicates() -} +query predicate instances(WhereClause x) { toBeTested(x) and not x.isUnknown() } query predicate getPredicate(WhereClause x, int index, WherePred getPredicate) { toBeTested(x) and not x.isUnknown() and getPredicate = x.getPredicate(index) diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected index 8d5dc840361..4980b912b86 100644 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected +++ b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.expected @@ -1,6 +1,6 @@ instances -| gen_where_pred.rs:7:36:7:43 | WherePred | hasGenericParamList: | no | hasLifetime: | no | hasTypeRepr: | yes | hasTypeBoundList: | yes | -| gen_where_pred.rs:7:46:7:53 | WherePred | hasGenericParamList: | no | hasLifetime: | no | hasTypeRepr: | yes | hasTypeBoundList: | yes | +| gen_where_pred.rs:7:36:7:43 | WherePred | +| gen_where_pred.rs:7:46:7:53 | WherePred | getGenericParamList getLifetime getTypeRepr diff --git a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql index 7e18fec77c4..3d1ecb7339d 100644 --- a/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql +++ b/rust/ql/test/extractor-tests/generated/WherePred/WherePred.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - WherePred x, string hasGenericParamList__label, string hasGenericParamList, - string hasLifetime__label, string hasLifetime, string hasTypeRepr__label, string hasTypeRepr, - string hasTypeBoundList__label, string hasTypeBoundList -) { - toBeTested(x) and - not x.isUnknown() and - hasGenericParamList__label = "hasGenericParamList:" and - (if x.hasGenericParamList() then hasGenericParamList = "yes" else hasGenericParamList = "no") and - hasLifetime__label = "hasLifetime:" and - (if x.hasLifetime() then hasLifetime = "yes" else hasLifetime = "no") and - hasTypeRepr__label = "hasTypeRepr:" and - (if x.hasTypeRepr() then hasTypeRepr = "yes" else hasTypeRepr = "no") and - hasTypeBoundList__label = "hasTypeBoundList:" and - if x.hasTypeBoundList() then hasTypeBoundList = "yes" else hasTypeBoundList = "no" -} +query predicate instances(WherePred x) { toBeTested(x) and not x.isUnknown() } query predicate getGenericParamList(WherePred x, GenericParamList getGenericParamList) { toBeTested(x) and not x.isUnknown() and getGenericParamList = x.getGenericParamList() diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected index 7ec0c386713..8ff736a0af0 100644 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected +++ b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.expected @@ -1,5 +1,5 @@ instances -| gen_while_expr.rs:7:5:9:5 | while ... { ... } | hasLabel: | no | hasLoopBody: | yes | getNumberOfAttrs: | 0 | hasCondition: | yes | +| gen_while_expr.rs:7:5:9:5 | while ... { ... } | getLabel getLoopBody | gen_while_expr.rs:7:5:9:5 | while ... { ... } | gen_while_expr.rs:7:18:9:5 | { ... } | diff --git a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql index c33cb0b915d..67a0dc562ad 100644 --- a/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql +++ b/rust/ql/test/extractor-tests/generated/WhileExpr/WhileExpr.ql @@ -2,22 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - WhileExpr x, string hasLabel__label, string hasLabel, string hasLoopBody__label, - string hasLoopBody, string getNumberOfAttrs__label, int getNumberOfAttrs, - string hasCondition__label, string hasCondition -) { - toBeTested(x) and - not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and - hasLoopBody__label = "hasLoopBody:" and - (if x.hasLoopBody() then hasLoopBody = "yes" else hasLoopBody = "no") and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasCondition__label = "hasCondition:" and - if x.hasCondition() then hasCondition = "yes" else hasCondition = "no" -} +query predicate instances(WhileExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getLabel(WhileExpr x, Label getLabel) { toBeTested(x) and not x.isUnknown() and getLabel = x.getLabel() diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected index 6b644bf82e0..a77777c99fd 100644 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected +++ b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.expected @@ -1,5 +1,5 @@ instances -| gen_yeet_expr.rs:6:8:6:36 | YeetExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_yeet_expr.rs:6:8:6:36 | YeetExpr | getAttr getExpr | gen_yeet_expr.rs:6:8:6:36 | YeetExpr | gen_yeet_expr.rs:6:16:6:36 | "index out of bounds" | diff --git a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql index 18b65e5d174..88d4e570a1e 100644 --- a/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql +++ b/rust/ql/test/extractor-tests/generated/YeetExpr/YeetExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - YeetExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(YeetExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(YeetExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected index c2513181c84..da73c1be671 100644 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected +++ b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.expected @@ -1,5 +1,5 @@ instances -| gen_yield_expr.rs:7:13:7:19 | YieldExpr | getNumberOfAttrs: | 0 | hasExpr: | yes | +| gen_yield_expr.rs:7:13:7:19 | YieldExpr | getAttr getExpr | gen_yield_expr.rs:7:13:7:19 | YieldExpr | gen_yield_expr.rs:7:19:7:19 | 1 | diff --git a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql index 3d684a51dbf..68281d39d9e 100644 --- a/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql +++ b/rust/ql/test/extractor-tests/generated/YieldExpr/YieldExpr.ql @@ -2,17 +2,7 @@ import codeql.rust.elements import TestUtils -query predicate instances( - YieldExpr x, string getNumberOfAttrs__label, int getNumberOfAttrs, string hasExpr__label, - string hasExpr -) { - toBeTested(x) and - not x.isUnknown() and - getNumberOfAttrs__label = "getNumberOfAttrs:" and - getNumberOfAttrs = x.getNumberOfAttrs() and - hasExpr__label = "hasExpr:" and - if x.hasExpr() then hasExpr = "yes" else hasExpr = "no" -} +query predicate instances(YieldExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getAttr(YieldExpr x, int index, Attr getAttr) { toBeTested(x) and not x.isUnknown() and getAttr = x.getAttr(index) diff --git a/swift/ql/.generated.list b/swift/ql/.generated.list index 90d81e9a1bd..f8da120e0d4 100644 --- a/swift/ql/.generated.list +++ b/swift/ql/.generated.list @@ -1032,37 +1032,37 @@ lib/codeql/swift/generated/type/UnownedStorageType.qll bbab372902a625c16b2d9a058 lib/codeql/swift/generated/type/UnresolvedType.qll 3b99e19ca7177619fb79e6e8511df915811b7b9078c0bc9ae47cf3b79e923407 b715e01583738b5e8fb2f6640d8f390bad8f5ad6d8c25ad771dfabbe5736bfaa lib/codeql/swift/generated/type/VariadicSequenceType.qll 7ece2c953e24d1c51715610f2813bd97f6d9fc6e58e5df0aacadad31e1fd1d8f be0005d973fd7c4c937fc340711fafe7ceba592ac407b88731bc35a1c2800aeb lib/codeql/swift/generated/type/WeakStorageType.qll d46b67f2b7bcc8aa7599e38506e91c219f894df4668ff1f0b5b66c1858040f5b c8e34ec9df085d938e36492d172fbf84ca56fc9d805713b8ada92e1b4c7bef54 -test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql 6f199a90eff4f349ce695c84eeed2c64aa442a85cc1f1df5fe422b521d292016 967b1a60e51815af1d828528f2db568d6c88bfac2647211bad80492566f223f3 +test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql 0bb0cfe3f8c38af3b870f8c404c16a5715e80d5ea8fd7939cc13032d7b824809 142ae1e76138b287aa66e091683aae545d139ef2971624e2dfdd3ea454bc2d05 test/extractor-tests/generated/Comment/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/Diagnostics/Diagnostics.ql c1f8be2c283e13c1a4dadaa008e42f660ea09d9ee1de22b0e8493ef76384546e d84efa40eaecbce6b928a5b235e10bf1e4409a9d0778c365ec19d2fade7ab3ab test/extractor-tests/generated/File/File.ql a1385ef2080e04e8757f61b8e1d0129df9f955edf03fbb3b83cc9cb5498b4e95 0364d8c7f108d01b2641f996efedab7084956307e875e6bc078ea677d04267e0 -test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql 502cdf0e7f31922cb5cb4ab9904a4ce0d6c8f135f087f116de7822488f033eef 0b4ca2b92f850d51abbcccee6733d702620b32e8ca8ef99604000325b2a02fe7 +test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql 3fa617f8ed1b308d0c56f429ee8abe6d33ef60bf57d87f6dc89fdc8fe969a102 c2fa3153077dbe9e0fc608524dc03c82ff4ed460364d341ee6a817b0d75291c3 test/extractor-tests/generated/OtherAvailabilitySpec/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/PlatformVersionAvailabilitySpec/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/Accessor/Accessor.ql ae47bd44cd76d59a24307c02eef594880c5c2c5eb07730d3328218c52e6d7dee 6ccba4549134280101e208961947273586976155b8df0f2c942b29a0a71ab166 -test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql f3b9a5297b172476edd97088fb332d1e8abb590ed9f6796e7a4a490cd76fbd82 fef7c5b8eb37cd04a5e1ef5581f0514738568230788c16a75bc22434eecd5b6d -test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql 6a87d0369a845512af295909cdbfe2b1a4f87e9a0b6a91a15ef563b2459cb5fb 44a1560eaae49bf4cd060187e6da4088b4536f085c945c3916dd24cb9df3756a -test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql fe7d77e072686225c70b15c0c3dfdafde1680c758095dc814f483ff70f9a99ef 084c352b7019bc84463e4b6a46a7633987a3b75b26145698eba82634549168ee -test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql 4b003a42c171041ab0719e66cc9f398653600bdbaace200f3b96f508b8776209 ca793775f296c723d396bd0d1ae9327d94c3837127b5407defd8cbd598eff6b9 +test/extractor-tests/generated/decl/Accessor/Accessor.ql 74d288273f26d2551ed661f0c729ae561c76c21976c3f539d4ba135d92d3aba5 e237e6ca8db21afea6c96558aae873ede63feaa81b0e6038234ab7856a0d95d4 +test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql 55a78a6b96a17532178a39bd39aa4df23295f98019bb00de041ba15dfd4f84d9 51dbcd86203d5d031d748f77943a81c2c50de4ff559af20a4a1a682a19978d4f +test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql fd62be6c38d39f371c20e8c2f233e37a9da5aa234588920634f5db67e8beb3bd d51d35d4fd6a21cd596e064e0221d0c86e36312412a9bd4e64f431c123f3019a +test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql d5fa7f68307e2e3e7ad060a125bda148e4a28f6acbef08a1a975bbf9ba947641 46d1e4f801414f1c869601dc706e41393e5fcd399e51da593c1e58737f6ff427 +test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql 936ac4aa52a55bd5bb4c75c117fffcc00208b9f502ff7ee05acbaad7d48a52fb d80346fe34d40910f5ecdb33d7266b6e4d1ec79f8d767c7da5e2ab780f201457 test/extractor-tests/generated/decl/Deinitializer/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql 9ec947283ea1369cc0e22c767524e36c62ee1effc198b392b6142f9434918f03 272337f27bd6299737242a57ef06e0ab7b4fe542156e01030fca5614933c07bd -test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql ec9d008ff7683c76cf3574d24e499d687ffe18ca966202be8e55475895bf30c1 2fb78d8e466d4f3ec3daf8bfa41e8aba89387e2a7a7464341e3a52131ecb5632 -test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql f163fb082c06fa7d1d1f68b6b586bc597e0366ad8761c29cdd7506c3d45a5d03 eec3a2f7444bb766dea8d22ce3a660cf660b87477db8519d5ba2f498cb361397 -test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 6cfdfbe68b1cc3c31b61475c88b884dc10160fe1da26179e6394f6c03a542dda 511da6c1e4130c1af977452d2e9d7b0a89dac5312009735bec32ab0bc68c4660 +test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql 7436bb7dfaa471f5a21ea2e3faba97d61bf53f930720999abdcc6745a65f0a1a 0241b2bb07c17136f6099185f65ea1266cd912296dfe481dce30eb9e3d1dd23f +test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql 47f20279f49388a4850df4f5ee61634e30beed58567eff891688c09942862ec2 8e11af1ceb07cab9738ffb25ac877ced712d1883a6514de5e8895cd1809a7bd8 +test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql 16caf5b014dea42a36b23eee6932c0818d94b1416e151ce46ba06a1fd2fb73ba cac704575b50613c8f8f297ce37c6d09ef943c94df4289643a4496103ac8388e +test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql 7293da617df8d12dae74a8c7a97230d6b34b64d0afc8629988eac09dde8bcbc6 56f1e7edf6424f14ade4b99b6e1e93fbdf678e300367c07200230b640bf8d358 test/extractor-tests/generated/decl/GenericTypeParamDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql 014fbec10916b7b7f19c54e02c2c853a08dee971b8ed1d90d2cdba6729eda7e4 ab736878f14e3ad2658591d301fce3bbe9cd3036c396ff3b836b7ba5cbf3d1d3 -test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql cce94d0eeff92d5323aaa02a6faf3293c7ff3d54eb68183942b484d351f741b8 c442eec49ae84e5928013a6e6418d2bece51daeaa8cc7f3191bdf69e89409aac +test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql b33916c742a97ea687a46aa337738666a4cf4854b394e3296582be0e8f0b7fb3 d1b4caf8bf04af0f11685f6381e52ca62dffbb6a50256be78dd686bf0a53df1d +test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql d5d5475363155fad37fd3f60a8eb22c324b8af52a91c065ee5fffe0f855a3b03 ac642144ecd2c5fbdfe628a88394646e5047d0db284d83b6a449654545456286 test/extractor-tests/generated/decl/InfixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/Initializer/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql c9f9721356e659affa7cd868a1974dd5df11a323f0e0763a0c1ae7a5651d4baf e1443de1040786c4e79ed4c4477b30643d51712a7e2900197b5194bb8c3bba62 -test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql 53f52161bf7734b61164acc1312fb0ba2c95d8e00b855bf63284e3f7366860fe 0fe47abd9ae26b82527e3dd812d0c6f5666fa23deccb7013effefdace7ab60a8 -test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql 639397528c54774decbd4ae3c0dd39e27514a2c44c5c3f3c2b7e086fd682ea23 0988e38a30eaa20adbd474f4ca6222b4dd4ec96a661d7658158a0249a7944102 -test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql d6da7228a3db42d82fd8abfeb48242088c9c7bc60bd61fc66f17712a49e6294f 6a90aa7263ac62bb1f3aa169396032947619e1985ae0a8c52fc0b194c005cdb9 -test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql bb86d80f67c2011a780e981d6219de46f97e5237c7abc964a744e36b943a3e3d 045148b344759060166157277de19a71f3ac9d74e35a9c839294ee51f6e32cec -test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql d66a29d906e70d82c50ebe27520448961bfde2355db50fa6579c74afc29fa894 37b7e4f112462d55f703453f6b4d68669173992ddb33ae1a271f537c1e4e7c6f +test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql 61f092d4ed5972283b3eb0eeec81c8f299496dc548a98dca56a1aadaf8248d1d b9cd637cb0f6f34d8d0a4473f2c212a0534d49891d55593758bb03f8d225f32a +test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql 7ab0dc211663c1b09a54ccbee7d6be94ffa45f420b383d2e2f22b7ccfb8d7a48 92296b89fccf6aebe877e67796885bedd809ebb470f23f48f98b27c2922c4ba2 +test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql 63a41a3b393b29d19752379fe29f26fe649dad2927836e24832e07c503d092a6 927fa4056a5d7c65803f7baa1216e6bef9b3b6a223c4a2bb50f2a6a31580db6a +test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql f3d080cc8ed9c0f1753f20a21d700e0f95549510d8246971dc52a6ddcf2ee385 95cf0a0789df14593348b40ccfbce27b728eff368ffebb8137efc59065cd543d +test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql 85b041e1f791b40ff3d3c58c79e017cebf9ef535ea3d576984b7c093f25aa95b 9fcf314b02ac95fbd2c0e5fc95dc48c16522c74def57f5647dd5ad7e80f7c2c1 +test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql cc9d89731f7a5ecc2267923268e2d8046aa3f0eb9556c6a12e53b541347f45a4 6d06279172ff2c04be0f39293a2e9a9de5e41ff1efffd41a67d5a921e1afe9ea test/extractor-tests/generated/decl/PatternBindingDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/PostfixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql 2c1b4957764602352f820ce3fd3bacb80b0b9a3aa04d2b077ce7f20553c3958c ba28928fd8caa3f8b8f85b73fbb0d926120bc497fbfda4088795cdf45a78b901 +test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql bf730c1d84c4f6ac67f46962849bf38c4442bddb1dd70c379735ba889171d097 d58ce712bfd18d470f00c8ab7c023285fa651ab8f4f8dc6bc6c5f33df4de577b test/extractor-tests/generated/decl/PrecedenceGroupDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/PrefixOperatorDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/ProtocolDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1070,7 +1070,7 @@ test/extractor-tests/generated/decl/StructDecl/MISSING_SOURCE.txt 35fb32ea539315 test/extractor-tests/generated/decl/SubscriptDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/TopLevelCodeDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/decl/TypeAliasDecl/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql 88a9ba46c3437e48cd14d4190ae2e5603e1c50f52df49b0fb3095db591494d7b 4890daf58ac006f2023f8928dd32a93b2add05ce2b8008110f67a2dcf11ccde2 +test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql 612ed1b62baed51cb74ea682512de8042c71cc14c99f966f8de33c65c8be7cdf 390197357690dd42d23ee5f0670f1183139cfbdd63f67c7430dd62c51e5d9426 test/extractor-tests/generated/expr/Argument/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ArrayExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/AssignExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1082,56 +1082,56 @@ test/extractor-tests/generated/expr/CallExpr/MISSING_SOURCE.txt 35fb32ea5393152e test/extractor-tests/generated/expr/CaptureListExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/CoerceExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ConditionalCheckedCastExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql e06b95ffab44f50ef3c44803879bac739bdf3ecddaed64afc1f2c17a8136dcfc 07c7dfb15adeb56c2e6d8d8b8f237a313f48af6aa47d7a48069687187836a94a -test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql a78cb132bcbf2c9b4c1a3ad8c1c961915ad273869b80b797a772cae8033dc0a2 492672964a3cc0f53c0233d5392ce6fc1fa577246177ae6cafcb83918e1045bd +test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql bb2fc1efbc7ff3abe7cd812f2c906607307c30d160412e1c8be4b6162c12566c ac8a2623b7dfa1b5b406cb6e47d022e341ec3400fa22ab3017692a88cb497c51 +test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql 423e4b23c2a0b7166fd53457fcad656391f09c6a06e9a9f865ecebdf5b227ff1 9a55d96e7665cfac9adf0477119cb532645645f0a3181c5c5a16bf99f3b84ebc test/extractor-tests/generated/expr/DeclRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DefaultArgumentExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DictionaryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DiscardAssignmentExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/DotSyntaxBaseIgnoredExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql 31786adbee4984621937005dc268026d252dde7bf4d8de1889fef90e4db92250 3b0f2a276de100fa20f261091e00bc6c3ae49f09cfcf388662bb31d136634efa -test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql 4f8f20e27e34b1fcc57249621987339d9b0789b51e3e491842bbae82a0e20ff7 109968fd71a44c98231c555b8af53d15832ff1accf1a63429b44a1270538a63d +test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql 55a98af29e0f0ddc8b57b8e5a4c31bd83cd3c00effe096081f0ad842c909ad72 3d6122bd86461e28aa4712d3733d0fa6836554abed51cc2017d6569fd6c08103 +test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql d8c376e073a24922a0f5b41def0832813771dd20f2ff57af334120d8b685914e a3a5a93f213f3212545dde703b163aa61894f0c2c59b39aa1ad57ccf203471ac test/extractor-tests/generated/expr/DynamicTypeExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql cc82c780010a55b054b2a89b7721b593820659fe1333db491c4e3075245d0aa8 8c5ded1ed9a014f21065acb3a730b8085fb8fdaa29aed0637350b95718c13696 +test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql 7e9942e6cf4bbd72405b4f1dff3c5bc0f66940117e992bce151e1fa2fca2237a b033e79c3b2d9a776c95ca0ea8adc7d78601cf825eace86fdfea74cd52755413 test/extractor-tests/generated/expr/ExplicitClosureExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql d5bdd7a642d0856773c3f478ce7f5f6d96ade1263607be32f98b884c979005fc cdb84fd0afe23435e0a6f94e27f48e839cc248bbcad69ef7dd1198bfddc4098b +test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql b48618adfe1eb5fb2f71def3a786a00c1e8c7a6c3ca98a6223a9eaefa2df9b93 10ff1649b73698e2b89a56ba2ce950e5ce32c56eb50ee03151261ed11d20cd85 test/extractor-tests/generated/expr/FloatLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForceTryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForceValueExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/ForcedCheckedCastExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql 48854de45173d4e2c460efc689c9cdbfee0a310e1ab6164a1ddf64a84b50eb65 4e1254dd4dbab68510eafda4161761b757cfdb9321e0b31c151572541e468d6a +test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql 2e27b79f73c73d3950b1ac356e83b40e791c6a4dd5e88a425fea4b6158aa3ae7 7bd02c429e4dcbe3d40f139b07e74c409656b9dcfb6e996a7d0be24bb96e779b test/extractor-tests/generated/expr/IfExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql 9076b7dd47a4fd64aa33175167af5bb045a4168b858c70f1f05abab80a4120bd 7a5773c610f06274b9bc282aa7b71ee023ae22da707f68f0962f130d6ef150dc +test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql 846effaf47a53401f3cf13e5c58d169fa34ffd9abc8f746c65ad9f0da1edebca 37fa3a12598862abb2dd534861de5778638263173f87a8454f09a2f4173a7962 test/extractor-tests/generated/expr/InOutExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql 7e722ec2fa7692b8b988fb11d7a0809221bf2ba06bb420e4d60c5abe170bffd4 0706c0dd26023bf2b02bc9581513c8449318738b0e942124d1e2db196c8bc14f +test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql a34bcbeb9a03bd0c88055bb347407f5099104d2d2bbc6c10cada8ac63cccdf7c a553ffd8f71ca792235e306a82e3a8e19bf2cc9ab8fd288c71e2b1c01e3f51d6 test/extractor-tests/generated/expr/IntegerLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/InterpolatedStringLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/IsExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/KeyPathApplicationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/KeyPathDotExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql 22116bc9e6bc90c8ab5beb59ba69344ce2c0eca1ddb10f6bfc2c28156678b5a0 034abff6eb54649da0661798a0d73180feac2e6669e9424c5cea81e3d8c4e65d +test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql db48f476e6d7a1b179d90eca624351232fd6cf08db87e06e4967256839da47c5 6aaa88e54d2a58a867223d5c964da83d3e7fd2d943f3f3b9b9f2caa4bb72b7b5 test/extractor-tests/generated/expr/LazyInitializationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MagicIdentifierLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MakeTemporarilyEscapableExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/MemberRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql 436ae4c6fd6b1c870da204dc12def2a3ecad4cee5c10dd2af635d3964d7fec08 c1e089fc3612b1439b8b8e18c49b1de372a654e018671a7c37f0cf72c64941e0 +test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql ea84ba5e032d499a4ef941fcf22bf268bc3dcbe8777d27583456540ba2b3f77c c9cdeda32de8b7ac8b8cccb259458d9015d1564fae35773c041f8b48a899dec1 test/extractor-tests/generated/expr/NilLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql 05768e0d59e314b716e9cf3a41d57cf15bede2023c8466ef1e3ad762b582150c b7661b1052db0731365b4d1cffc38fd2ce141ffa2634714cff5c00764eee0a79 +test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql 620878a3c2f8dd25cfb1dc400b22fa20d549793a27edd419df0693bfd1d7b987 0af15ca80f025dad9e343e392e15f40b348b2efe670cbce230f4ebe1863ec45d test/extractor-tests/generated/expr/OneWayExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OpaqueValueExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql f324111c422127d9251c231f971da57a64c28bfa1fb61f1a8acaea6997996126 7f1bc62003ecc03897fb3c4e0389135277a9d56cb224a73a0f7e102c78cac127 +test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql 5486acdbada57e8b99e129b41fe7f674f42aa5cb1c1f01d7e3d39ddeac838db2 849a5378784006c65b8806582a8c5aa98642623a13a17e4d879ade4f682ff733 test/extractor-tests/generated/expr/OptionalEvaluationExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OptionalTryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/OtherInitializerRefExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql 7b3532a0b1c21100c2362f721f6f3f95277d9934bb22a2928070713f247b4480 9c6fb2be429fa21582b5babb8da9edf09e1e28a29e1c6e0cf1c9802b111e889b -test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql cf22bbffb7c0586a190324e56aecc3ecb0559257ff728ea7f4f9ecce1e67d6a3 1c3fb6ec13b61ed1eca88eb20f8c3b4f34018c28aaa88acec04a1b0e82a10412 -test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql 8c6c61391eca3058547ff66a374ce6578f25f358d917b24e3d0e8ee949fb6d30 2bd9310feedbe7a68700814519b95c5082345b4529c95684d367a5d659b44b2e -test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql bfa3b681b3e50aed4304dfdc11789a3875afd6a5a16072c090ce8ff382028c1b a0bbffd7f622bc0e7c9eaec948b2d4ac65c73ace45c136ccc41c4e70648ac1c8 +test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql fbcec327377a2f349824b82ba9d17556010cce52ce60d28ca4efee045d0d4225 2155d566e460db6b6693b3bdf93e304ed762abf5edf5072c1b4cc3b4cf3d18d1 +test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql fbf8f8ee6411c1c4bf241710eac37dde39efeae70a06f4bc7ac16dd941b52937 63e2ba99385a135a5503db87db98ad16eabf9297178baee42a9d4109511c08fd +test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql cf89d8c42bcb31ffb33283655823ac7afb086a44ba0245887cf4cef108f71ed8 1d7bc7969aae39435178177cb0494baa20e93b3195de5ccc05a05db123cd2708 +test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql 0fde7c56085ede00a4e5bd33c00f51cf7bd3cf678312610b12a52399d43700eb 1d469792c22b20fe7e317d46c40b533756e279a6c2acffdfa9b1faa156d43c24 test/extractor-tests/generated/expr/PrefixUnaryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql d1a7dee25b0b69ce898d305deea3f6f883595d0dda70dee8726cf3bc90504792 daec9bde6192c9b9e6fb87f1669d109a777fd16cef31a862e1d09f5da798f0f9 +test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql 9d5ed8460a0c906a44f7693fec6288313cc3ee73cdb09c1a54af525093f2ff10 c0fe8a5a88ce747e6f7977a2edd6123759725b6fbbed7f81e94fb1a5550d22fe test/extractor-tests/generated/expr/RebindSelfInInitializerExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/RegexLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql 974a773308132a076a2dded006658b5e61b2f72ab7192d9653239eeb7aea7168 ee603a1fce41760044475858de9df9b86d18b299d272324a2eac1193049712a6 +test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql 5414253ffcd24b16a2725d7e1f8b543dac9458e32d610a7722ddcafd00d31048 3bdd13684344dae067612345cef43b4a4b13ebad3157e3dd76edce4a40895df6 test/extractor-tests/generated/expr/SingleValueStmtExpr/ThenStmt.ql 5dea0a19b45feedee2808d81cda006b94c15d253ea80ef66dfc67d199bfec29b 49b07c7695a47935f1fdabbb547c6508360bd5269fbcd4743a486a6f9029d6c2 test/extractor-tests/generated/expr/StringLiteralExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/SubscriptExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1141,7 +1141,7 @@ test/extractor-tests/generated/expr/TryExpr/MISSING_SOURCE.txt 35fb32ea5393152eb test/extractor-tests/generated/expr/TupleElementExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TupleExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/expr/TypeExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql 6c961000667082800ce02e73f627124028826a6e9ae64b9a44a5f62c3b64cf6f e8298da860d16edd30ffff341cef248e0e4faa377842ebd2ba6639c79d208ff4 +test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql e4f1cd638a06cfd32e987e560777fc94d016944f4c87847c4bb059bfbba48dde 3864ad30240bdccff665f77621f361e192612c95a690b6f7b31ba62652bf6b00 test/extractor-tests/generated/expr/VarargExpansionExpr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/AnyPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/pattern/BindingPattern/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1164,16 +1164,16 @@ test/extractor-tests/generated/stmt/DoCatchStmt/MISSING_SOURCE.txt 35fb32ea53931 test/extractor-tests/generated/stmt/DoStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/FailStmt/FailStmt.ql 70eb21a0717e68bcf59ba9861d474aaa5f7791c39fccea4015bca47fc8d082f1 18eaafd230e4eaaeb114466db17bb480591af6357d5ed7bafe74a3352b806690 test/extractor-tests/generated/stmt/FallthroughStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql afb6c63f2114317b41c5d9ab33fdd83402badbba9d8761b1eaf51cad62598959 6454d689a0178bb6704e8e18a84fd8e6e3bd622fdba44838ea3576c37aebfd1e +test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql 72fc91069e68f975006d6d49a54ff92a23a27706a6d5d15acdcfef09cafa2f69 38a4c56c7ed6ec47b990ee79ae2fe45cf287db474b6dbf13b4e781205894e27f test/extractor-tests/generated/stmt/GuardStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/IfStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/PoundAssertStmt/PoundAssertStmt.ql dbe340f6f2468a6c5ff42785101d3529ca11ce49d28cc607cbc842678b9f0b61 96aea7859f0a606ea032850339d78907406dcdcc2d3ac5b15ea8c7bd2cd36eb1 test/extractor-tests/generated/stmt/RepeatWhileStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/ReturnStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/StmtCondition/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql 93280609dc6ed32a2a4bf841f5634be468b0cfbd292e350cd1da4551fce600f5 990ccf7781a13c132bde62ae78a5e988f65c56a882d73a7d4f1869b623c86d9b -test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql 776687b32f3817d41457b3c59ca06fba6566409b8746e91e03d2c06a53bc0879 5625c682730bae276505221411c49515f3dd9918af61b4c61439e25afbef781c -test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql 689815400a7f3c6b3cd9992fad5a66b7354ee6c3d0371e0f388ca8ff9f9d791f a0aa7adb9050bf6ecfb99d4737e57ee7e26745204c2767094757af7ca831979f +test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql 5119caff56f18954f8d01f21d7a381de9aa7c35cc8a7515205542574f9b161c1 5e122758bc0cdc44ad0d292dc5bfcfc36717ab5db3b363202659d0da5c6469a6 +test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql 1460fc714ab50c56afd608934a9a1081104b99c032b6d77954cb6e9dd7fa33a8 c15d9755ffbe45d447d55c5408d897cbff647ec97a458090c0ad9cf597e62859 +test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql 1d010c5ad6ece987163696d629ef073b6476d37794cc080ad5fcc4980dc9f64b 4b39d3945ef7419b277fa94eb15878b20e46811a5bedb03217577f507145734b test/extractor-tests/generated/stmt/ThrowStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/WhileStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/stmt/YieldStmt/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1181,7 +1181,7 @@ test/extractor-tests/generated/type/ArraySliceType/MISSING_SOURCE.txt 35fb32ea53 test/extractor-tests/generated/type/BoundGenericClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericEnumType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/BoundGenericStructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 73bc348dc4be941cd417da61d8f2043c04390e4435eccf7afc851a477829b110 4d8276ce10df5ee74a65d436261de4d2397404a65058320bfa4cad2de6c56d15 +test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql 78d10029fa696ec4bcc48ea666923b98aa120a4a66004c491314f4abf283eac4 d23455d2ec38a1bba726d2e8fb349dfa2cdc52b8751d9caabb438d0dcdff6ab7 test/extractor-tests/generated/type/BuiltinType/BuiltinType.ql 83a861b3ad63bed272f892031adc5bc651ed244cfcd53fc3090a2cea3f9d6a8d 197689774e28406b4bd798059fc57078695b43ca0833a7a4ef9dabd519e62d0d test/extractor-tests/generated/type/ClassType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/DependentMemberType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d @@ -1198,21 +1198,21 @@ test/extractor-tests/generated/type/IntegerType/IntegerType.ql 6f18b3b5b4c53ca5d test/extractor-tests/generated/type/LValueType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/MetatypeType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/ModuleType/ModuleType.ql 7d78142dc82b06e454b9875a47890d5c2364e51f6e496640d6c4d20327f535b7 cecd45f6a4b0f137cdd7e694259044016ab01da6a42e73c3a361b4d00b594133 -test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql 84e8d21e87bbac3057df2b87623681e7d18b191d58310e90bb9b5bc380d892fb b808ee970c1cda6a48b8b5f0987179b3f08c260ac2184ea7d286eebcf0c17257 -test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql 51f3a697bb924c7569ed4d3eaa66d8006aa627dc61c06a368aea693506f60f4d 617eff2e028ca1fc3d219d4518379f38ec347c3c14ef620a5e7ccbfb4af13db5 +test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql 86bc4823c19da17cbcebe3a4634eccff0a96cbebd174d8d4b1610e3fda3f8bdb 82179cb6e188a3a271428de4631c2a6fa4cec2e65a628fb56c2cbcff8a6a13d3 +test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql fdbbc1cffb209097480596d3be405188d045758da03a7980511d56874690b9c4 9ba8ffc028988a21cd751d25f0c363c3c37dfc0a13629379c8ca94b6b066bb7d test/extractor-tests/generated/type/OptionalType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql 69cedea6ad2fb2d8dab357f5c6442e59fd2c329548c3d414431b3ccbd8ccbab5 675c1bbde4e5652626cd8d11bf1f3890f2921c99ebca74a6146a3fd43cffcf4e -test/extractor-tests/generated/type/PackType/PackArchetypeType.ql 7abbf651e726374b2b5a74533b8adf7e48ba3b04306ab65a65fbba974eade7bf 44fdada7fa7f5a20e4238c391fd0572866247c1580a675795832b35699a3e105 +test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql d4d695dcd0e723cdc9f196d828e22a3650ac751f0488e257f3bc2e2afbc343ec ff20bf849e18621b6193699bf58b3d6d127c29113dc996100bc18938fdf4658c +test/extractor-tests/generated/type/PackType/PackArchetypeType.ql 56e7f72a2d6f03e394a5e7103e337aee06b8e1fa9198d8f6123c44c4e33d5b57 e7259313ade883242bffb8e812da64c77108b55acbf39d7b8cda47251ee5f5d3 test/extractor-tests/generated/type/PackType/PackElementType.ql 8f78e329812bb16d0ab644944c3dffba9701dffcd980018accf22c4540828315 adf4b155e1d5ba0c54177b9a296e0e5d06d2566dafcb43d60403fcf94a009009 test/extractor-tests/generated/type/PackType/PackExpansionType.ql 4ae76353b2312ca356a11191b3b8c235fc5a394b91c9a1de48da1fbc9986f14c c676192e609e434c1c617d9c32752f39d2aa7119a9c00bd092f30734099c89dc -test/extractor-tests/generated/type/PackType/PackType.ql c90ac94fe7a04c68c6be69efae60db4222b04cdccc66c621018a29e3440c9dce 9ffa5b1a5c5861c7a41304cb966dcd4c51e696e959f173a55bab10863866d3db -test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql 4f21c14b26c5caa56ecf1e920a4a28a44c39a7fc450a21379c214ba69457f6cd 0c2d519cdf6772ff03fb93eab88faefdc5988ea92601301c9949cfde4d476a93 +test/extractor-tests/generated/type/PackType/PackType.ql 9d235d6c608da8a3f2eaf3f1bc32a130cc36565c27d60f62654a2b4f3c95dfb4 760d5daf96ec4a903fa09b6ed3687f8a3e59525b1d621b6866cc7506ebe20888 +test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql d72a5ea146d99b43e0446f7e2c5b6999383de7b6962bce2f14c616a28c75a6be 0892b65674289bc7d1bdac0b7ab6da267876765641679ee2821aba258de563f2 test/extractor-tests/generated/type/ParenType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql 4091dea43f9581727efe73cdfb0020dd7e9142161c0e1e024da972fa215cac43 84f422c35ef2552fcbf93e641ee161b57314260276c8f5b9a69d61db002db549 -test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql 7464ecd9faf7fa1a2d1c73db8a9d0de83410f840cf35990fe173ef76c66f8d8a 20359be7f01a0d870331c96961d9cf05a6e51d4af6096657a31dad5a0936d1a5 +test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql 4355fd06fe5e9c775ce58c025f3a8383d94e48fd8461b69325905da551001e5a 8f200f8517191b6db86c65cbd7ef4efa537eb9b26d6a417112d25af5aa9632fd +test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql 5e9d97fb048d108fe3d52a69da929f93cb52afd694993cb2ed66155cb668ed0a 40888e1af510016ad7843f0e5194e4af10f6929567b63532f66667f466dcfb9e test/extractor-tests/generated/type/ProtocolType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/StructType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d -test/extractor-tests/generated/type/TupleType/TupleType.ql 566acfb4e12c09dc8cee7ac89244cb9b6209820cba633d4ef42e958bbec01882 974e270501e10e82d94653c181dc7bfd06d2b9903440ba1d7d44ec61f8b974d2 +test/extractor-tests/generated/type/TupleType/TupleType.ql 4b7c7db3decc5d901658e1a72943c48d661f5a69f0f1c36972bee2200d0532f5 2539d830cb6dd71789072bd87bd35a260e31dbe7ca7208e84f087f13fd7c9561 test/extractor-tests/generated/type/TypeAliasType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/TypeRepr/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d test/extractor-tests/generated/type/UnboundGenericType/MISSING_SOURCE.txt 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d 35fb32ea5393152eb7a875b20b4e3e4b8c7a997a8959c32417140d57a16a052d diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected index aaa2782bdea..e6b02e7a01b 100644 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected +++ b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.expected @@ -1,6 +1,6 @@ instances -| test.swift:1:4:1:27 | #available | isUnavailable: | no | getNumberOfSpecs: | 2 | -| test.swift:5:4:5:45 | #unavailable | isUnavailable: | yes | getNumberOfSpecs: | 3 | +| test.swift:1:4:1:27 | #available | isUnavailable: | no | +| test.swift:5:4:5:45 | #unavailable | isUnavailable: | yes | getSpec | test.swift:1:4:1:27 | #available | 0 | test.swift:1:15:1:21 | macOS 142 | | test.swift:1:4:1:27 | #available | 1 | test.swift:1:26:1:26 | * | diff --git a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql index 5bc4b6072a8..50d7addece8 100644 --- a/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql +++ b/swift/ql/test/extractor-tests/generated/AvailabilityInfo/AvailabilityInfo.ql @@ -2,16 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - AvailabilityInfo x, string isUnavailable__label, string isUnavailable, - string getNumberOfSpecs__label, int getNumberOfSpecs -) { +query predicate instances(AvailabilityInfo x, string isUnavailable__label, string isUnavailable) { toBeTested(x) and not x.isUnknown() and isUnavailable__label = "isUnavailable:" and - (if x.isUnavailable() then isUnavailable = "yes" else isUnavailable = "no") and - getNumberOfSpecs__label = "getNumberOfSpecs:" and - getNumberOfSpecs = x.getNumberOfSpecs() + if x.isUnavailable() then isUnavailable = "yes" else isUnavailable = "no" } query predicate getSpec(AvailabilityInfo x, int index, AvailabilitySpec getSpec) { diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected index edffa1037b7..9d51a6ed8d5 100644 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected +++ b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.expected @@ -1,18 +1,18 @@ instances -| file://:0:0:0:0 | KeyPathComponent | getKind: | 7 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int? | -| key_path_expr.swift:11:17:11:17 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | -| key_path_expr.swift:12:24:12:26 | KeyPathComponent | getKind: | 4 | getNumberOfSubscriptArguments: | 1 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | -| key_path_expr.swift:13:34:13:38 | KeyPathComponent | getKind: | 4 | getNumberOfSubscriptArguments: | 1 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int? | -| key_path_expr.swift:14:31:14:31 | KeyPathComponent | getKind: | 5 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int | -| key_path_expr.swift:14:31:14:31 | KeyPathComponent | getKind: | 8 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int? | -| key_path_expr.swift:15:21:15:21 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Bar? | -| key_path_expr.swift:15:24:15:24 | KeyPathComponent | getKind: | 6 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Bar | -| key_path_expr.swift:15:26:15:26 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int? | -| key_path_expr.swift:16:25:16:25 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Bar? | -| key_path_expr.swift:16:28:16:28 | KeyPathComponent | getKind: | 6 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Bar | -| key_path_expr.swift:16:30:16:30 | KeyPathComponent | getKind: | 3 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | yes | getComponentType: | Int | -| key_path_expr.swift:17:16:17:16 | KeyPathComponent | getKind: | 8 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | no | hasDeclRef: | no | getComponentType: | Int | -| key_path_expr.swift:18:32:18:32 | KeyPathComponent | getKind: | 9 | getNumberOfSubscriptArguments: | 0 | hasTupleIndex: | yes | hasDeclRef: | no | getComponentType: | Int | +| file://:0:0:0:0 | KeyPathComponent | getKind: | 7 | getComponentType: | Int? | +| key_path_expr.swift:11:17:11:17 | KeyPathComponent | getKind: | 3 | getComponentType: | Int | +| key_path_expr.swift:12:24:12:26 | KeyPathComponent | getKind: | 4 | getComponentType: | Int | +| key_path_expr.swift:13:34:13:38 | KeyPathComponent | getKind: | 4 | getComponentType: | Int? | +| key_path_expr.swift:14:31:14:31 | KeyPathComponent | getKind: | 5 | getComponentType: | Int | +| key_path_expr.swift:14:31:14:31 | KeyPathComponent | getKind: | 8 | getComponentType: | Int? | +| key_path_expr.swift:15:21:15:21 | KeyPathComponent | getKind: | 3 | getComponentType: | Bar? | +| key_path_expr.swift:15:24:15:24 | KeyPathComponent | getKind: | 6 | getComponentType: | Bar | +| key_path_expr.swift:15:26:15:26 | KeyPathComponent | getKind: | 3 | getComponentType: | Int? | +| key_path_expr.swift:16:25:16:25 | KeyPathComponent | getKind: | 3 | getComponentType: | Bar? | +| key_path_expr.swift:16:28:16:28 | KeyPathComponent | getKind: | 6 | getComponentType: | Bar | +| key_path_expr.swift:16:30:16:30 | KeyPathComponent | getKind: | 3 | getComponentType: | Int | +| key_path_expr.swift:17:16:17:16 | KeyPathComponent | getKind: | 8 | getComponentType: | Int | +| key_path_expr.swift:18:32:18:32 | KeyPathComponent | getKind: | 9 | getComponentType: | Int | getSubscriptArgument | key_path_expr.swift:12:24:12:26 | KeyPathComponent | 0 | key_path_expr.swift:12:25:12:25 | : 0 | | key_path_expr.swift:13:34:13:38 | KeyPathComponent | 0 | key_path_expr.swift:13:35:13:35 | : a | diff --git a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql index aaad6bfa8d6..a81df30d465 100644 --- a/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql +++ b/swift/ql/test/extractor-tests/generated/KeyPathComponent/KeyPathComponent.ql @@ -3,21 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - KeyPathComponent x, string getKind__label, int getKind, - string getNumberOfSubscriptArguments__label, int getNumberOfSubscriptArguments, - string hasTupleIndex__label, string hasTupleIndex, string hasDeclRef__label, string hasDeclRef, - string getComponentType__label, Type getComponentType + KeyPathComponent x, string getKind__label, int getKind, string getComponentType__label, + Type getComponentType ) { toBeTested(x) and not x.isUnknown() and getKind__label = "getKind:" and getKind = x.getKind() and - getNumberOfSubscriptArguments__label = "getNumberOfSubscriptArguments:" and - getNumberOfSubscriptArguments = x.getNumberOfSubscriptArguments() and - hasTupleIndex__label = "hasTupleIndex:" and - (if x.hasTupleIndex() then hasTupleIndex = "yes" else hasTupleIndex = "no") and - hasDeclRef__label = "hasDeclRef:" and - (if x.hasDeclRef() then hasDeclRef = "yes" else hasDeclRef = "no") and getComponentType__label = "getComponentType:" and getComponentType = x.getComponentType() } diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected index 853e0647575..ade62608569 100644 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected +++ b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.expected @@ -1,40 +1,40 @@ instances -| accessors.swift:2:9:2:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:2:9:2:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:2:9:2:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:3:9:3:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:4:9:4:28 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:5:9:5:42 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:7:9:7:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:7:9:7:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:7:9:7:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:8:9:8:29 | willSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:11:9:11:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:11:9:11:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:11:9:11:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:12:9:12:19 | willSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:15:9:15:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:15:9:15:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:15:9:15:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:16:9:16:28 | didSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:19:9:19:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:19:9:19:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:19:9:19:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:20:9:20:18 | didSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:23:9:23:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:23:9:23:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:23:9:23:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:24:9:24:19 | willSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:26:9:26:18 | didSet | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:29:9:29:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:29:9:29:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:30:9:32:9 | _read | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | yes | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:33:9:35:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:38:9:38:9 | _modify | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:38:9:38:9 | get | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:38:9:38:9 | set | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | -| accessors.swift:39:9:41:9 | unsafeAddress | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (Foo) -> () -> UnsafePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | yes | isUnsafeMutableAddress: | no | -| accessors.swift:42:9:44:9 | unsafeMutableAddress | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | accessors | getNumberOfMembers: | 0 | getInterfaceType: | (inout Foo) -> () -> UnsafeMutablePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | yes | +| accessors.swift:2:9:2:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:2:9:2:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:2:9:2:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:3:9:3:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:4:9:4:28 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:5:9:5:42 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:7:9:7:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:7:9:7:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:7:9:7:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:8:9:8:29 | willSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:11:9:11:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:11:9:11:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:11:9:11:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:12:9:12:19 | willSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:15:9:15:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:15:9:15:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:15:9:15:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:16:9:16:28 | didSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:19:9:19:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:19:9:19:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:19:9:19:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:20:9:20:18 | didSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:23:9:23:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:23:9:23:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:23:9:23:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:24:9:24:19 | willSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | no | isWillSet: | yes | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:26:9:26:18 | didSet | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | yes | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:29:9:29:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:29:9:29:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:30:9:32:9 | _read | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | yes | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:33:9:35:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:38:9:38:9 | _modify | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> () | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | yes | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:38:9:38:9 | get | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> Int | isGetter: | yes | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:38:9:38:9 | set | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> (Int) -> () | isGetter: | no | isSetter: | yes | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | no | +| accessors.swift:39:9:41:9 | unsafeAddress | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (Foo) -> () -> UnsafePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | yes | isUnsafeMutableAddress: | no | +| accessors.swift:42:9:44:9 | unsafeMutableAddress | getModule: | file://:0:0:0:0 | accessors | getInterfaceType: | (inout Foo) -> () -> UnsafeMutablePointer | isGetter: | no | isSetter: | no | isWillSet: | no | isDidSet: | no | isRead: | no | isModify: | no | isUnsafeAddress: | no | isUnsafeMutableAddress: | yes | getName | accessors.swift:2:9:2:9 | _modify | (unnamed function decl) | | accessors.swift:2:9:2:9 | get | (unnamed function decl) | diff --git a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql index 177163b71c2..8fd5bfbcd9e 100644 --- a/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql +++ b/swift/ql/test/extractor-tests/generated/decl/Accessor/Accessor.ql @@ -3,36 +3,17 @@ import codeql.swift.elements import TestUtils query predicate instances( - Accessor x, string hasName__label, string hasName, string hasSelfParam__label, - string hasSelfParam, string getNumberOfParams__label, int getNumberOfParams, - string hasBody__label, string hasBody, string getNumberOfCaptures__label, int getNumberOfCaptures, - string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string isGetter__label, string isGetter, string isSetter__label, string isSetter, - string isWillSet__label, string isWillSet, string isDidSet__label, string isDidSet, - string isRead__label, string isRead, string isModify__label, string isModify, + Accessor x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string isGetter__label, string isGetter, string isSetter__label, + string isSetter, string isWillSet__label, string isWillSet, string isDidSet__label, + string isDidSet, string isRead__label, string isRead, string isModify__label, string isModify, string isUnsafeAddress__label, string isUnsafeAddress, string isUnsafeMutableAddress__label, string isUnsafeMutableAddress ) { toBeTested(x) and not x.isUnknown() and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasSelfParam__label = "hasSelfParam:" and - (if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no") and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - getNumberOfCaptures__label = "getNumberOfCaptures:" and - getNumberOfCaptures = x.getNumberOfCaptures() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and isGetter__label = "isGetter:" and diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected index 232470336aa..9daa87b09cc 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.expected @@ -1,6 +1,6 @@ instances -| associated_type.swift:2:5:2:20 | Bar | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Bar.Type | getName: | Bar | getNumberOfInheritedTypes: | 0 | -| associated_type.swift:3:5:3:25 | Baz | getModule: | file://:0:0:0:0 | associated_type | getNumberOfMembers: | 0 | getInterfaceType: | Self.Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 1 | +| associated_type.swift:2:5:2:20 | Bar | getModule: | file://:0:0:0:0 | associated_type | getInterfaceType: | Self.Bar.Type | getName: | Bar | +| associated_type.swift:3:5:3:25 | Baz | getModule: | file://:0:0:0:0 | associated_type | getInterfaceType: | Self.Baz.Type | getName: | Baz | getMember getInheritedType | associated_type.swift:3:5:3:25 | Baz | 0 | Equatable | diff --git a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql index b81a9b93e63..41cc9d349a4 100644 --- a/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/AssociatedTypeDecl/AssociatedTypeDecl.ql @@ -4,22 +4,16 @@ import TestUtils query predicate instances( AssociatedTypeDecl x, string getModule__label, ModuleDecl getModule, - string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, - Type getInterfaceType, string getName__label, string getName, - string getNumberOfInheritedTypes__label, int getNumberOfInheritedTypes + string getInterfaceType__label, Type getInterfaceType, string getName__label, string getName ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and - getName = x.getName() and - getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and - getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() + getName = x.getName() } query predicate getMember(AssociatedTypeDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected index 8c20593f598..cbf62d5bd64 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.expected @@ -1,43 +1,43 @@ instances -| closures.swift:8:12:8:12 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:7:6:7:6 | x | isDirect: | yes | isEscaping: | no | -| closures.swift:9:12:9:12 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:6:7:6:7 | y | isDirect: | yes | isEscaping: | no | -| closures.swift:16:3:16:3 | escape | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:12:5:12:5 | escape | isDirect: | yes | isEscaping: | yes | -| closures.swift:17:5:17:5 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:15:7:15:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:24:3:24:3 | escape | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:12:5:12:5 | escape | isDirect: | yes | isEscaping: | yes | -| closures.swift:31:11:31:11 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:29:7:29:7 | x | isDirect: | no | isEscaping: | no | -| closures.swift:32:14:32:14 | f | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:28:7:28:7 | f | isDirect: | no | isEscaping: | no | -| closures.swift:32:14:32:14 | f | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:28:7:28:7 | f | isDirect: | yes | isEscaping: | no | -| closures.swift:32:17:32:17 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:29:7:29:7 | x | isDirect: | yes | isEscaping: | no | -| closures.swift:39:20:39:20 | callback | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:36:21:36:58 | callback | isDirect: | yes | isEscaping: | yes | -| closures.swift:42:35:42:35 | wrapper(_:) | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:38:5:40:5 | wrapper(_:) | isDirect: | no | isEscaping: | yes | -| closures.swift:52:18:52:18 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:51:7:51:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:54:13:54:13 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:51:7:51:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:61:18:61:18 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:60:7:60:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:63:13:63:13 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:60:7:60:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:71:3:71:3 | g | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:68:5:68:5 | g | isDirect: | yes | isEscaping: | yes | -| closures.swift:71:14:71:14 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:70:7:70:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:73:13:73:13 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:70:7:70:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:85:7:85:7 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | no | isEscaping: | yes | -| closures.swift:85:7:85:7 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | yes | isEscaping: | yes | -| closures.swift:85:18:85:18 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:82:9:82:9 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:88:9:88:9 | b() | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:92:5:98:5 | b() | isDirect: | no | isEscaping: | yes | -| closures.swift:93:7:93:7 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | yes | isEscaping: | yes | -| closures.swift:93:20:93:20 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:82:9:82:9 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:96:9:96:9 | a() | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:84:5:90:5 | a() | isDirect: | no | isEscaping: | yes | -| closures.swift:111:15:111:15 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:110:9:110:9 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:111:27:111:27 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:110:9:110:9 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:115:5:115:5 | incrX | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:109:8:109:8 | incrX | isDirect: | yes | isEscaping: | yes | -| closures.swift:130:25:130:25 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:133:20:133:20 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | no | isEscaping: | yes | -| closures.swift:133:20:133:20 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:133:24:133:24 | y | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:132:22:132:22 | y | isDirect: | yes | isEscaping: | yes | -| closures.swift:151:21:151:21 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:149:10:149:15 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:154:16:154:16 | g(_:) | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:158:3:165:3 | g(_:) | isDirect: | no | isEscaping: | yes | -| closures.swift:155:21:155:21 | next | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:154:9:154:9 | next | isDirect: | yes | isEscaping: | yes | -| closures.swift:155:34:155:34 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:149:10:149:15 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:160:21:160:21 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:158:10:158:15 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:163:16:163:16 | f(_:) | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:149:3:156:3 | f(_:) | isDirect: | no | isEscaping: | yes | -| closures.swift:164:21:164:21 | next | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:163:9:163:9 | next | isDirect: | yes | isEscaping: | yes | -| closures.swift:164:36:164:36 | x | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:158:10:158:15 | x | isDirect: | yes | isEscaping: | yes | -| closures.swift:195:3:195:3 | g | getModule: | file://:0:0:0:0 | closures | getNumberOfMembers: | 0 | getDecl: | closures.swift:68:5:68:5 | g | isDirect: | yes | isEscaping: | yes | +| closures.swift:8:12:8:12 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:7:6:7:6 | x | isDirect: | yes | isEscaping: | no | +| closures.swift:9:12:9:12 | y | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:6:7:6:7 | y | isDirect: | yes | isEscaping: | no | +| closures.swift:16:3:16:3 | escape | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:12:5:12:5 | escape | isDirect: | yes | isEscaping: | yes | +| closures.swift:17:5:17:5 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:15:7:15:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:24:3:24:3 | escape | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:12:5:12:5 | escape | isDirect: | yes | isEscaping: | yes | +| closures.swift:31:11:31:11 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:29:7:29:7 | x | isDirect: | no | isEscaping: | no | +| closures.swift:32:14:32:14 | f | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:28:7:28:7 | f | isDirect: | no | isEscaping: | no | +| closures.swift:32:14:32:14 | f | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:28:7:28:7 | f | isDirect: | yes | isEscaping: | no | +| closures.swift:32:17:32:17 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:29:7:29:7 | x | isDirect: | yes | isEscaping: | no | +| closures.swift:39:20:39:20 | callback | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:36:21:36:58 | callback | isDirect: | yes | isEscaping: | yes | +| closures.swift:42:35:42:35 | wrapper(_:) | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:38:5:40:5 | wrapper(_:) | isDirect: | no | isEscaping: | yes | +| closures.swift:52:18:52:18 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:51:7:51:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:54:13:54:13 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:51:7:51:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:61:18:61:18 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:60:7:60:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:63:13:63:13 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:60:7:60:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:71:3:71:3 | g | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:68:5:68:5 | g | isDirect: | yes | isEscaping: | yes | +| closures.swift:71:14:71:14 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:70:7:70:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:73:13:73:13 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:70:7:70:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:85:7:85:7 | y | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | no | isEscaping: | yes | +| closures.swift:85:7:85:7 | y | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | yes | isEscaping: | yes | +| closures.swift:85:18:85:18 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:82:9:82:9 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:88:9:88:9 | b() | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:92:5:98:5 | b() | isDirect: | no | isEscaping: | yes | +| closures.swift:93:7:93:7 | y | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:79:7:79:7 | y | isDirect: | yes | isEscaping: | yes | +| closures.swift:93:20:93:20 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:82:9:82:9 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:96:9:96:9 | a() | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:84:5:90:5 | a() | isDirect: | no | isEscaping: | yes | +| closures.swift:111:15:111:15 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:110:9:110:9 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:111:27:111:27 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:110:9:110:9 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:115:5:115:5 | incrX | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:109:8:109:8 | incrX | isDirect: | yes | isEscaping: | yes | +| closures.swift:130:25:130:25 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:133:20:133:20 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | no | isEscaping: | yes | +| closures.swift:133:20:133:20 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:128:7:128:7 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:133:24:133:24 | y | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:132:22:132:22 | y | isDirect: | yes | isEscaping: | yes | +| closures.swift:151:21:151:21 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:149:10:149:15 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:154:16:154:16 | g(_:) | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:158:3:165:3 | g(_:) | isDirect: | no | isEscaping: | yes | +| closures.swift:155:21:155:21 | next | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:154:9:154:9 | next | isDirect: | yes | isEscaping: | yes | +| closures.swift:155:34:155:34 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:149:10:149:15 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:160:21:160:21 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:158:10:158:15 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:163:16:163:16 | f(_:) | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:149:3:156:3 | f(_:) | isDirect: | no | isEscaping: | yes | +| closures.swift:164:21:164:21 | next | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:163:9:163:9 | next | isDirect: | yes | isEscaping: | yes | +| closures.swift:164:36:164:36 | x | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:158:10:158:15 | x | isDirect: | yes | isEscaping: | yes | +| closures.swift:195:3:195:3 | g | getModule: | file://:0:0:0:0 | closures | getDecl: | closures.swift:68:5:68:5 | g | isDirect: | yes | isEscaping: | yes | getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql index 1f76d90ee2e..d4f39d659bc 100644 --- a/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/CapturedDecl/CapturedDecl.ql @@ -3,16 +3,14 @@ import codeql.swift.elements import TestUtils query predicate instances( - CapturedDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getDecl__label, ValueDecl getDecl, string isDirect__label, - string isDirect, string isEscaping__label, string isEscaping + CapturedDecl x, string getModule__label, ModuleDecl getModule, string getDecl__label, + ValueDecl getDecl, string isDirect__label, string isDirect, string isEscaping__label, + string isEscaping ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getDecl__label = "getDecl:" and getDecl = x.getDecl() and isDirect__label = "isDirect:" and diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected index ad3f2429988..b15a1cc649d 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.expected @@ -1,7 +1,7 @@ instances -| class.swift:1:1:7:1 | Foo | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 4 | getInterfaceType: | Foo.Type | getName: | Foo | getNumberOfInheritedTypes: | 0 | getType: | Foo | -| class.swift:11:1:14:1 | Generic | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 6 | getInterfaceType: | Generic.Type | getName: | Generic | getNumberOfInheritedTypes: | 0 | getType: | Generic | -| class.swift:16:1:17:1 | Baz | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | class | getNumberOfMembers: | 2 | getInterfaceType: | Baz.Type | getName: | Baz | getNumberOfInheritedTypes: | 2 | getType: | Baz | +| class.swift:1:1:7:1 | Foo | getModule: | file://:0:0:0:0 | class | getInterfaceType: | Foo.Type | getName: | Foo | getType: | Foo | +| class.swift:11:1:14:1 | Generic | getModule: | file://:0:0:0:0 | class | getInterfaceType: | Generic.Type | getName: | Generic | getType: | Generic | +| class.swift:16:1:17:1 | Baz | getModule: | file://:0:0:0:0 | class | getInterfaceType: | Baz.Type | getName: | Baz | getType: | Baz | getGenericTypeParam | class.swift:11:1:14:1 | Generic | 0 | class.swift:11:15:11:15 | X | | class.swift:11:1:14:1 | Generic | 1 | class.swift:11:18:11:18 | Y | diff --git a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql index a9e86d07108..e32a98ca2bc 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ClassDecl/ClassDecl.ql @@ -3,26 +3,17 @@ import codeql.swift.elements import TestUtils query predicate instances( - ClassDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getName__label, string getName, string getNumberOfInheritedTypes__label, - int getNumberOfInheritedTypes, string getType__label, Type getType + ClassDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getType__label, Type getType ) { toBeTested(x) and not x.isUnknown() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and getName = x.getName() and - getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and - getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getType__label = "getType:" and getType = x.getType() } diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected index 75fc7aa41cd..85fef3f52ca 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.expected @@ -1,32 +1,32 @@ instances -| var_decls.swift:2:7:2:7 | i | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | i | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | -| var_decls.swift:2:12:2:12 | $i$generator | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | IndexingIterator> | getNumberOfAccessors: | 0 | getName: | $i$generator | getType: | IndexingIterator> | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:4:7:4:7 | i | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | i | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:7:5:7:5 | numbers | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | [Int] | getNumberOfAccessors: | 0 | getName: | numbers | getType: | [Int] | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:10:12:10:12 | numbers | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | [Int] | getNumberOfAccessors: | 1 | getName: | numbers | getType: | [Int] | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | -| var_decls.swift:15:7:15:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | T | getNumberOfAccessors: | 3 | getName: | wrappedValue | getType: | T | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:20:7:20:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 3 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:24:15:24:15 | _wrapped | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | X | getNumberOfAccessors: | 3 | getName: | _wrapped | getType: | X | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:24:15:24:15 | wrapped | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 3 | getName: | wrapped | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:28:7:28:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 3 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:34:7:34:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 3 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:35:7:35:7 | projectedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 3 | getName: | projectedValue | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:39:7:39:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 3 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:40:7:40:7 | projectedValue | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 3 | getName: | projectedValue | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:54:10:54:10 | _w1 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | X | getNumberOfAccessors: | 0 | getName: | _w1 | getType: | X | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:54:10:54:10 | w1 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 2 | getName: | w1 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:55:24:55:24 | _w2 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithInit | getNumberOfAccessors: | 0 | getName: | _w2 | getType: | WrapperWithInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:55:24:55:24 | w2 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 2 | getName: | w2 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:56:29:56:29 | $w3 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 2 | getName: | $w3 | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:56:29:56:29 | _w3 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | _w3 | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:56:29:56:29 | w3 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 2 | getName: | w3 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | yes | hasPropertyWrapperProjectionVar: | yes | getIntroducerInt: | 1 | -| var_decls.swift:57:36:57:36 | $w4 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 2 | getName: | $w4 | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:57:36:57:36 | _w4 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | _w4 | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 1 | -| var_decls.swift:57:36:57:36 | w4 | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 2 | getName: | w4 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | yes | hasParentInitializer: | yes | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | yes | hasPropertyWrapperProjectionVar: | yes | getIntroducerInt: | 1 | -| var_decls.swift:65:19:65:19 | case_variable | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | case_variable | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | -| var_decls.swift:65:34:65:34 | $match | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | $match | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | -| var_decls.swift:67:15:67:15 | $match | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | $match | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | -| var_decls.swift:67:22:67:22 | unused_case_variable | getModule: | file://:0:0:0:0 | var_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | unused_case_variable | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | yes | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | getIntroducerInt: | 0 | +| var_decls.swift:2:7:2:7 | i | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | i | getType: | Int | getIntroducerInt: | 0 | +| var_decls.swift:2:12:2:12 | $i$generator | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | IndexingIterator> | getName: | $i$generator | getType: | IndexingIterator> | getIntroducerInt: | 1 | +| var_decls.swift:4:7:4:7 | i | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | i | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:7:5:7:5 | numbers | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | [Int] | getName: | numbers | getType: | [Int] | getIntroducerInt: | 1 | +| var_decls.swift:10:12:10:12 | numbers | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | [Int] | getName: | numbers | getType: | [Int] | getIntroducerInt: | 0 | +| var_decls.swift:15:7:15:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | T | getName: | wrappedValue | getType: | T | getIntroducerInt: | 1 | +| var_decls.swift:20:7:20:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:24:15:24:15 | _wrapped | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | X | getName: | _wrapped | getType: | X | getIntroducerInt: | 1 | +| var_decls.swift:24:15:24:15 | wrapped | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | wrapped | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:28:7:28:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:34:7:34:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:35:7:35:7 | projectedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Bool | getName: | projectedValue | getType: | Bool | getIntroducerInt: | 1 | +| var_decls.swift:39:7:39:7 | wrappedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:40:7:40:7 | projectedValue | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Bool | getName: | projectedValue | getType: | Bool | getIntroducerInt: | 1 | +| var_decls.swift:54:10:54:10 | _w1 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | X | getName: | _w1 | getType: | X | getIntroducerInt: | 1 | +| var_decls.swift:54:10:54:10 | w1 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | w1 | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:55:24:55:24 | _w2 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | WrapperWithInit | getName: | _w2 | getType: | WrapperWithInit | getIntroducerInt: | 1 | +| var_decls.swift:55:24:55:24 | w2 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | w2 | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:56:29:56:29 | $w3 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Bool | getName: | $w3 | getType: | Bool | getIntroducerInt: | 1 | +| var_decls.swift:56:29:56:29 | _w3 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | WrapperWithProjected | getName: | _w3 | getType: | WrapperWithProjected | getIntroducerInt: | 1 | +| var_decls.swift:56:29:56:29 | w3 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | w3 | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:57:36:57:36 | $w4 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Bool | getName: | $w4 | getType: | Bool | getIntroducerInt: | 1 | +| var_decls.swift:57:36:57:36 | _w4 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | _w4 | getType: | WrapperWithProjectedAndInit | getIntroducerInt: | 1 | +| var_decls.swift:57:36:57:36 | w4 | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | w4 | getType: | Int | getIntroducerInt: | 1 | +| var_decls.swift:65:19:65:19 | case_variable | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | case_variable | getType: | Int | getIntroducerInt: | 0 | +| var_decls.swift:65:34:65:34 | $match | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | $match | getType: | Int | getIntroducerInt: | 0 | +| var_decls.swift:67:15:67:15 | $match | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | $match | getType: | Int | getIntroducerInt: | 0 | +| var_decls.swift:67:22:67:22 | unused_case_variable | getModule: | file://:0:0:0:0 | var_decls | getInterfaceType: | Int | getName: | unused_case_variable | getType: | Int | getIntroducerInt: | 0 | getMember getAccessor | var_decls.swift:10:12:10:12 | numbers | 0 | var_decls.swift:10:12:10:12 | get | diff --git a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql index 6569901dcbe..f6c7b554143 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ConcreteVarDecl/ConcreteVarDecl.ql @@ -3,66 +3,20 @@ import codeql.swift.elements import TestUtils query predicate instances( - ConcreteVarDecl x, string getModule__label, ModuleDecl getModule, - string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, - Type getInterfaceType, string getNumberOfAccessors__label, int getNumberOfAccessors, - string getName__label, string getName, string getType__label, Type getType, - string hasAttachedPropertyWrapperType__label, string hasAttachedPropertyWrapperType, - string hasParentPattern__label, string hasParentPattern, string hasParentInitializer__label, - string hasParentInitializer, string hasPropertyWrapperBackingVarBinding__label, - string hasPropertyWrapperBackingVarBinding, string hasPropertyWrapperBackingVar__label, - string hasPropertyWrapperBackingVar, string hasPropertyWrapperProjectionVarBinding__label, - string hasPropertyWrapperProjectionVarBinding, string hasPropertyWrapperProjectionVar__label, - string hasPropertyWrapperProjectionVar, string getIntroducerInt__label, int getIntroducerInt + ConcreteVarDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getType__label, Type getType, + string getIntroducerInt__label, int getIntroducerInt ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and - getNumberOfAccessors__label = "getNumberOfAccessors:" and - getNumberOfAccessors = x.getNumberOfAccessors() and getName__label = "getName:" and getName = x.getName() and getType__label = "getType:" and getType = x.getType() and - hasAttachedPropertyWrapperType__label = "hasAttachedPropertyWrapperType:" and - ( - if x.hasAttachedPropertyWrapperType() - then hasAttachedPropertyWrapperType = "yes" - else hasAttachedPropertyWrapperType = "no" - ) and - hasParentPattern__label = "hasParentPattern:" and - (if x.hasParentPattern() then hasParentPattern = "yes" else hasParentPattern = "no") and - hasParentInitializer__label = "hasParentInitializer:" and - (if x.hasParentInitializer() then hasParentInitializer = "yes" else hasParentInitializer = "no") and - hasPropertyWrapperBackingVarBinding__label = "hasPropertyWrapperBackingVarBinding:" and - ( - if x.hasPropertyWrapperBackingVarBinding() - then hasPropertyWrapperBackingVarBinding = "yes" - else hasPropertyWrapperBackingVarBinding = "no" - ) and - hasPropertyWrapperBackingVar__label = "hasPropertyWrapperBackingVar:" and - ( - if x.hasPropertyWrapperBackingVar() - then hasPropertyWrapperBackingVar = "yes" - else hasPropertyWrapperBackingVar = "no" - ) and - hasPropertyWrapperProjectionVarBinding__label = "hasPropertyWrapperProjectionVarBinding:" and - ( - if x.hasPropertyWrapperProjectionVarBinding() - then hasPropertyWrapperProjectionVarBinding = "yes" - else hasPropertyWrapperProjectionVarBinding = "no" - ) and - hasPropertyWrapperProjectionVar__label = "hasPropertyWrapperProjectionVar:" and - ( - if x.hasPropertyWrapperProjectionVar() - then hasPropertyWrapperProjectionVar = "yes" - else hasPropertyWrapperProjectionVar = "no" - ) and getIntroducerInt__label = "getIntroducerInt:" and getIntroducerInt = x.getIntroducerInt() } diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected index 4f4fe8cfa1b..b6e400b30fa 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.expected @@ -1,16 +1,16 @@ instances -| enums.swift:2:5:2:18 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 2 | -| enums.swift:3:5:3:26 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 3 | -| enums.swift:8:5:8:18 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 2 | -| enums.swift:9:5:9:26 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 3 | -| enums.swift:13:5:13:22 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:14:5:14:21 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:15:5:15:35 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:19:5:19:10 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:20:5:20:16 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:24:5:24:25 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:25:5:25:24 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | -| enums.swift:26:5:26:44 | case ... | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getNumberOfElements: | 1 | +| enums.swift:2:5:2:18 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:3:5:3:26 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:8:5:8:18 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:9:5:9:26 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:13:5:13:22 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:14:5:14:21 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:15:5:15:35 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:19:5:19:10 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:20:5:20:16 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:24:5:24:25 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:25:5:25:24 | case ... | getModule: | file://:0:0:0:0 | enums | +| enums.swift:26:5:26:44 | case ... | getModule: | file://:0:0:0:0 | enums | getMember getElement | enums.swift:2:5:2:18 | case ... | 0 | enums.swift:2:10:2:10 | value1 | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql index 77c68ef40e9..fffe694415c 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumCaseDecl.ql @@ -2,18 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - EnumCaseDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getNumberOfElements__label, int getNumberOfElements -) { +query predicate instances(EnumCaseDecl x, string getModule__label, ModuleDecl getModule) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and - getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and - getNumberOfElements__label = "getNumberOfElements:" and - getNumberOfElements = x.getNumberOfElements() + getModule = x.getModule() } query predicate getMember(EnumCaseDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected index 3f499934751..06c1789b3bc 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.expected @@ -1,9 +1,9 @@ instances -| enums.swift:1:1:4:1 | EnumValues | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValues.Type | getName: | EnumValues | getNumberOfInheritedTypes: | 0 | getType: | EnumValues | -| enums.swift:7:1:10:1 | EnumValuesWithBase | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 11 | getInterfaceType: | EnumValuesWithBase.Type | getName: | EnumValuesWithBase | getNumberOfInheritedTypes: | 1 | getType: | EnumValuesWithBase | -| enums.swift:12:1:16:1 | EnumWithParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithParams.Type | getName: | EnumWithParams | getNumberOfInheritedTypes: | 0 | getType: | EnumWithParams | -| enums.swift:18:1:21:1 | GenericEnum | getNumberOfGenericTypeParams: | 1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 4 | getInterfaceType: | GenericEnum.Type | getName: | GenericEnum | getNumberOfInheritedTypes: | 0 | getType: | GenericEnum | -| enums.swift:23:1:27:1 | EnumWithNamedParams | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 6 | getInterfaceType: | EnumWithNamedParams.Type | getName: | EnumWithNamedParams | getNumberOfInheritedTypes: | 0 | getType: | EnumWithNamedParams | +| enums.swift:1:1:4:1 | EnumValues | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | EnumValues.Type | getName: | EnumValues | getType: | EnumValues | +| enums.swift:7:1:10:1 | EnumValuesWithBase | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | EnumValuesWithBase.Type | getName: | EnumValuesWithBase | getType: | EnumValuesWithBase | +| enums.swift:12:1:16:1 | EnumWithParams | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | EnumWithParams.Type | getName: | EnumWithParams | getType: | EnumWithParams | +| enums.swift:18:1:21:1 | GenericEnum | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | GenericEnum.Type | getName: | GenericEnum | getType: | GenericEnum | +| enums.swift:23:1:27:1 | EnumWithNamedParams | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | EnumWithNamedParams.Type | getName: | EnumWithNamedParams | getType: | EnumWithNamedParams | getGenericTypeParam | enums.swift:18:1:21:1 | GenericEnum | 0 | enums.swift:18:18:18:18 | T | getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql index 3eee947b9f6..dabf9078cea 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumDecl.ql @@ -3,26 +3,17 @@ import codeql.swift.elements import TestUtils query predicate instances( - EnumDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getName__label, string getName, string getNumberOfInheritedTypes__label, - int getNumberOfInheritedTypes, string getType__label, Type getType + EnumDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getType__label, Type getType ) { toBeTested(x) and not x.isUnknown() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and getName = x.getName() and - getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and - getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getType__label = "getType:" and getType = x.getType() } diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected index dd0bc7bdc22..70601a44e2a 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.expected @@ -1,22 +1,22 @@ instances -| enums.swift:2:10:2:10 | value1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value1 | getNumberOfParams: | 0 | -| enums.swift:2:18:2:18 | value2 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value2 | getNumberOfParams: | 0 | -| enums.swift:3:10:3:10 | value3 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value3 | getNumberOfParams: | 0 | -| enums.swift:3:18:3:18 | value4 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value4 | getNumberOfParams: | 0 | -| enums.swift:3:26:3:26 | value5 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value5 | getNumberOfParams: | 0 | -| enums.swift:8:10:8:10 | value1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value1 | getNumberOfParams: | 0 | -| enums.swift:8:18:8:18 | value2 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value2 | getNumberOfParams: | 0 | -| enums.swift:9:10:9:10 | value3 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value3 | getNumberOfParams: | 0 | -| enums.swift:9:18:9:18 | value4 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value4 | getNumberOfParams: | 0 | -| enums.swift:9:26:9:26 | value5 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value5 | getNumberOfParams: | 0 | -| enums.swift:13:10:13:22 | nodata1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithParams.Type) -> (Void) -> EnumWithParams | getName: | nodata1 | getNumberOfParams: | 1 | -| enums.swift:14:10:14:21 | intdata | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithParams.Type) -> (Int) -> EnumWithParams | getName: | intdata | getNumberOfParams: | 1 | -| enums.swift:15:10:15:35 | tuple | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithParams.Type) -> (Int, String, Double) -> EnumWithParams | getName: | tuple | getNumberOfParams: | 3 | -| enums.swift:19:10:19:10 | none | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (GenericEnum.Type) -> GenericEnum | getName: | none | getNumberOfParams: | 0 | -| enums.swift:20:10:20:16 | some | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (GenericEnum.Type) -> (T) -> GenericEnum | getName: | some | getNumberOfParams: | 1 | -| enums.swift:24:10:24:25 | nodata1 | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Void) -> EnumWithNamedParams | getName: | nodata1 | getNumberOfParams: | 1 | -| enums.swift:25:10:25:24 | intdata | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int) -> EnumWithNamedParams | getName: | intdata | getNumberOfParams: | 1 | -| enums.swift:26:10:26:44 | tuple | getModule: | file://:0:0:0:0 | enums | getNumberOfMembers: | 0 | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int, String, Double) -> EnumWithNamedParams | getName: | tuple | getNumberOfParams: | 3 | +| enums.swift:2:10:2:10 | value1 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value1 | +| enums.swift:2:18:2:18 | value2 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value2 | +| enums.swift:3:10:3:10 | value3 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value3 | +| enums.swift:3:18:3:18 | value4 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value4 | +| enums.swift:3:26:3:26 | value5 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValues.Type) -> EnumValues | getName: | value5 | +| enums.swift:8:10:8:10 | value1 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value1 | +| enums.swift:8:18:8:18 | value2 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value2 | +| enums.swift:9:10:9:10 | value3 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value3 | +| enums.swift:9:18:9:18 | value4 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value4 | +| enums.swift:9:26:9:26 | value5 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumValuesWithBase.Type) -> EnumValuesWithBase | getName: | value5 | +| enums.swift:13:10:13:22 | nodata1 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithParams.Type) -> (Void) -> EnumWithParams | getName: | nodata1 | +| enums.swift:14:10:14:21 | intdata | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithParams.Type) -> (Int) -> EnumWithParams | getName: | intdata | +| enums.swift:15:10:15:35 | tuple | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithParams.Type) -> (Int, String, Double) -> EnumWithParams | getName: | tuple | +| enums.swift:19:10:19:10 | none | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (GenericEnum.Type) -> GenericEnum | getName: | none | +| enums.swift:20:10:20:16 | some | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (GenericEnum.Type) -> (T) -> GenericEnum | getName: | some | +| enums.swift:24:10:24:25 | nodata1 | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithNamedParams.Type) -> (Void) -> EnumWithNamedParams | getName: | nodata1 | +| enums.swift:25:10:25:24 | intdata | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int) -> EnumWithNamedParams | getName: | intdata | +| enums.swift:26:10:26:44 | tuple | getModule: | file://:0:0:0:0 | enums | getInterfaceType: | (EnumWithNamedParams.Type) -> (Int, String, Double) -> EnumWithNamedParams | getName: | tuple | getMember getParam | enums.swift:13:10:13:22 | nodata1 | 0 | enums.swift:13:18:13:18 | _ | diff --git a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql index 13e0e10ea54..23f6fdd8e72 100644 --- a/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/EnumDecl/EnumElementDecl.ql @@ -3,23 +3,17 @@ import codeql.swift.elements import TestUtils query predicate instances( - EnumElementDecl x, string getModule__label, ModuleDecl getModule, - string getNumberOfMembers__label, int getNumberOfMembers, string getInterfaceType__label, - Type getInterfaceType, string getName__label, string getName, string getNumberOfParams__label, - int getNumberOfParams + EnumElementDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and - getName = x.getName() and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() + getName = x.getName() } query predicate getMember(EnumElementDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected index 712149164f6..581c5d53fc8 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.expected @@ -1,8 +1,8 @@ instances -| extensions.swift:5:1:9:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 0 | -| extensions.swift:11:1:15:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 3 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 0 | -| extensions.swift:21:1:23:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | getNumberOfProtocols: | 1 | -| extensions.swift:27:1:29:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getNumberOfMembers: | 1 | getNumberOfGenericTypeParams: | 0 | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getNumberOfProtocols: | 2 | +| extensions.swift:5:1:9:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | +| extensions.swift:11:1:15:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | +| extensions.swift:21:1:23:1 | extension of S | getModule: | file://:0:0:0:0 | extensions | getExtendedTypeDecl: | extensions.swift:1:1:1:11 | S | +| extensions.swift:27:1:29:1 | extension of C | getModule: | file://:0:0:0:0 | extensions | getExtendedTypeDecl: | extensions.swift:3:1:3:10 | C | getMember | extensions.swift:5:1:9:1 | extension of S | 0 | extensions.swift:6:5:6:37 | var ... = ... | | extensions.swift:5:1:9:1 | extension of S | 1 | extensions.swift:6:9:6:9 | x | diff --git a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql index 05fdef80f8e..f5900f76e5f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ExtensionDecl/ExtensionDecl.ql @@ -3,23 +3,15 @@ import codeql.swift.elements import TestUtils query predicate instances( - ExtensionDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getNumberOfGenericTypeParams__label, - int getNumberOfGenericTypeParams, string getExtendedTypeDecl__label, - NominalTypeDecl getExtendedTypeDecl, string getNumberOfProtocols__label, int getNumberOfProtocols + ExtensionDecl x, string getModule__label, ModuleDecl getModule, string getExtendedTypeDecl__label, + NominalTypeDecl getExtendedTypeDecl ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getExtendedTypeDecl__label = "getExtendedTypeDecl:" and - getExtendedTypeDecl = x.getExtendedTypeDecl() and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() + getExtendedTypeDecl = x.getExtendedTypeDecl() } query predicate getMember(ExtensionDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql index 31bf9b9c00e..b9948cf8d48 100644 --- a/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/IfConfigDecl/IfConfigDecl.ql @@ -2,18 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - IfConfigDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getNumberOfActiveElements__label, int getNumberOfActiveElements -) { +query predicate instances(IfConfigDecl x, string getModule__label, ModuleDecl getModule) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and - getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and - getNumberOfActiveElements__label = "getNumberOfActiveElements:" and - getNumberOfActiveElements = x.getNumberOfActiveElements() + getModule = x.getModule() } query predicate getMember(IfConfigDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected index b20c6b2f2f9..0e4b0b1d19a 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.expected @@ -1,9 +1,9 @@ instances -| import.swift:1:1:1:8 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 0 | -| import.swift:2:1:2:24 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | -| import.swift:3:12:3:32 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | yes | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | -| import.swift:4:1:4:19 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 2 | -| import.swift:5:1:5:23 | import ... | getModule: | file://:0:0:0:0 | import | getNumberOfMembers: | 0 | isExported: | no | hasImportedModule: | yes | getNumberOfDeclarations: | 1 | +| import.swift:1:1:1:8 | import ... | getModule: | file://:0:0:0:0 | import | isExported: | no | +| import.swift:2:1:2:24 | import ... | getModule: | file://:0:0:0:0 | import | isExported: | no | +| import.swift:3:12:3:32 | import ... | getModule: | file://:0:0:0:0 | import | isExported: | yes | +| import.swift:4:1:4:19 | import ... | getModule: | file://:0:0:0:0 | import | isExported: | no | +| import.swift:5:1:5:23 | import ... | getModule: | file://:0:0:0:0 | import | isExported: | no | getMember getImportedModule | import.swift:1:1:1:8 | import ... | file://:0:0:0:0 | Swift | diff --git a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql index 247e10d9fa4..505c5f820a7 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ImportDecl/ImportDecl.ql @@ -3,23 +3,15 @@ import codeql.swift.elements import TestUtils query predicate instances( - ImportDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string isExported__label, string isExported, - string hasImportedModule__label, string hasImportedModule, string getNumberOfDeclarations__label, - int getNumberOfDeclarations + ImportDecl x, string getModule__label, ModuleDecl getModule, string isExported__label, + string isExported ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and isExported__label = "isExported:" and - (if x.isExported() then isExported = "yes" else isExported = "no") and - hasImportedModule__label = "hasImportedModule:" and - (if x.hasImportedModule() then hasImportedModule = "yes" else hasImportedModule = "no") and - getNumberOfDeclarations__label = "getNumberOfDeclarations:" and - getNumberOfDeclarations = x.getNumberOfDeclarations() + if x.isExported() then isExported = "yes" else isExported = "no" } query predicate getMember(ImportDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected index 58d9959602b..add8617f94f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.expected @@ -1,7 +1,7 @@ instances -| test.swift:2:1:2:50 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | A() | getNumberOfParameters: | 0 | getNumberOfRoles: | 1 | -| test.swift:4:1:4:15 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | B() | getNumberOfParameters: | 0 | getNumberOfRoles: | 1 | -| test.swift:7:1:7:15 | MacroDecl | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | test | getNumberOfMembers: | 0 | getInterfaceType: | () -> () | getName: | C() | getNumberOfParameters: | 0 | getNumberOfRoles: | 2 | +| test.swift:2:1:2:50 | MacroDecl | getModule: | file://:0:0:0:0 | test | getInterfaceType: | () -> () | getName: | A() | +| test.swift:4:1:4:15 | MacroDecl | getModule: | file://:0:0:0:0 | test | getInterfaceType: | () -> () | getName: | B() | +| test.swift:7:1:7:15 | MacroDecl | getModule: | file://:0:0:0:0 | test | getInterfaceType: | () -> () | getName: | C() | getGenericTypeParam getMember getParameter diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql index 0e9c8fdd337..2a675c60910 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroDecl.ql @@ -3,28 +3,17 @@ import codeql.swift.elements import TestUtils query predicate instances( - MacroDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getName__label, string getName, string getNumberOfParameters__label, - int getNumberOfParameters, string getNumberOfRoles__label, int getNumberOfRoles + MacroDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName ) { toBeTested(x) and not x.isUnknown() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and - getName = x.getName() and - getNumberOfParameters__label = "getNumberOfParameters:" and - getNumberOfParameters = x.getNumberOfParameters() and - getNumberOfRoles__label = "getNumberOfRoles:" and - getNumberOfRoles = x.getNumberOfRoles() + getName = x.getName() } query predicate getGenericTypeParam(MacroDecl x, int index, GenericTypeParamDecl getGenericTypeParam) { diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected index 31f4cfbf929..eca30375b24 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.expected @@ -1,24 +1,24 @@ instances -| file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | @attached(accessor) | getKind: | 4 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | @attached(memberAttribute) | getKind: | 8 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 1 | -| file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 1 | -| test.swift:1:2:1:26 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| test.swift:3:2:3:25 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| test.swift:5:2:5:17 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | -| test.swift:6:2:6:20 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | getNumberOfConformances: | 0 | getNumberOfNames: | 0 | +| file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| file://:0:0:0:0 | @attached(accessor) | getKind: | 4 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(memberAttribute) | getKind: | 8 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | +| file://:0:0:0:0 | @attached(peer) | getKind: | 32 | getMacroSyntax: | 1 | +| test.swift:1:2:1:26 | #freestanding(declaration) | getKind: | 2 | getMacroSyntax: | 0 | +| test.swift:3:2:3:25 | #freestanding(expression) | getKind: | 1 | getMacroSyntax: | 0 | +| test.swift:5:2:5:17 | @attached(member) | getKind: | 16 | getMacroSyntax: | 1 | +| test.swift:6:2:6:20 | @attached(extension) | getKind: | 256 | getMacroSyntax: | 1 | getConformance getName | file://:0:0:0:0 | @attached(peer) | 0 | $() | diff --git a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql index 0b8c8b53113..5edff519fb8 100644 --- a/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql +++ b/swift/ql/test/extractor-tests/generated/decl/MacroDecl/MacroRole.ql @@ -3,20 +3,14 @@ import codeql.swift.elements import TestUtils query predicate instances( - MacroRole x, string getKind__label, int getKind, string getMacroSyntax__label, int getMacroSyntax, - string getNumberOfConformances__label, int getNumberOfConformances, - string getNumberOfNames__label, int getNumberOfNames + MacroRole x, string getKind__label, int getKind, string getMacroSyntax__label, int getMacroSyntax ) { toBeTested(x) and not x.isUnknown() and getKind__label = "getKind:" and getKind = x.getKind() and getMacroSyntax__label = "getMacroSyntax:" and - getMacroSyntax = x.getMacroSyntax() and - getNumberOfConformances__label = "getNumberOfConformances:" and - getNumberOfConformances = x.getNumberOfConformances() and - getNumberOfNames__label = "getNumberOfNames:" and - getNumberOfNames = x.getNumberOfNames() + getMacroSyntax = x.getMacroSyntax() } query predicate getConformance(MacroRole x, int index, Expr getConformance) { diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected index da5bfd2898f..42d051d0a4f 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.expected @@ -1,7 +1,7 @@ instances -| file://:0:0:0:0 | Foo | getModule: | file://:0:0:0:0 | Foo | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | Foo | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 5 | getNumberOfExportedModules: | 1 | -| file://:0:0:0:0 | __ObjC | getModule: | file://:0:0:0:0 | __ObjC | getNumberOfMembers: | 0 | getInterfaceType: | module<__ObjC> | getName: | __ObjC | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 1 | getNumberOfExportedModules: | 0 | -| file://:0:0:0:0 | default_module_name | getModule: | file://:0:0:0:0 | default_module_name | getNumberOfMembers: | 0 | getInterfaceType: | module | getName: | default_module_name | getNumberOfInheritedTypes: | 0 | isBuiltinModule: | no | isSystemModule: | no | getNumberOfImportedModules: | 5 | getNumberOfExportedModules: | 0 | +| file://:0:0:0:0 | Foo | getModule: | file://:0:0:0:0 | Foo | getInterfaceType: | module | getName: | Foo | isBuiltinModule: | no | isSystemModule: | no | +| file://:0:0:0:0 | __ObjC | getModule: | file://:0:0:0:0 | __ObjC | getInterfaceType: | module<__ObjC> | getName: | __ObjC | isBuiltinModule: | no | isSystemModule: | no | +| file://:0:0:0:0 | default_module_name | getModule: | file://:0:0:0:0 | default_module_name | getInterfaceType: | module | getName: | default_module_name | isBuiltinModule: | no | isSystemModule: | no | getMember getInheritedType getAnImportedModule diff --git a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql index d6224946d4b..911474839d4 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ModuleDecl/ModuleDecl.ql @@ -3,34 +3,22 @@ import codeql.swift.elements import TestUtils query predicate instances( - ModuleDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getName__label, string getName, string getNumberOfInheritedTypes__label, - int getNumberOfInheritedTypes, string isBuiltinModule__label, string isBuiltinModule, - string isSystemModule__label, string isSystemModule, string getNumberOfImportedModules__label, - int getNumberOfImportedModules, string getNumberOfExportedModules__label, - int getNumberOfExportedModules + ModuleDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string isBuiltinModule__label, + string isBuiltinModule, string isSystemModule__label, string isSystemModule ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and getName = x.getName() and - getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and - getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and isBuiltinModule__label = "isBuiltinModule:" and (if x.isBuiltinModule() then isBuiltinModule = "yes" else isBuiltinModule = "no") and isSystemModule__label = "isSystemModule:" and - (if x.isSystemModule() then isSystemModule = "yes" else isSystemModule = "no") and - getNumberOfImportedModules__label = "getNumberOfImportedModules:" and - getNumberOfImportedModules = x.getNumberOfImportedModules() and - getNumberOfExportedModules__label = "getNumberOfExportedModules:" and - getNumberOfExportedModules = x.getNumberOfExportedModules() + if x.isSystemModule() then isSystemModule = "yes" else isSystemModule = "no" } query predicate getMember(ModuleDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected index cfb439d0246..df6bc9c9761 100644 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected +++ b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.expected @@ -1,9 +1,9 @@ instances -| functions.swift:1:1:3:1 | foo() | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 0 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | () -> Int | -| functions.swift:5:1:7:1 | bar(_:d:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int, Double) -> Int | -| functions.swift:10:5:10:28 | noBody(x:) | hasName: | yes | hasSelfParam: | yes | getNumberOfParams: | 1 | hasBody: | no | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Self) -> (Int) -> Int | -| functions.swift:13:1:15:1 | variadic(_:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 1 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (Int...) -> () | -| functions.swift:17:1:19:1 | generic(x:y:) | hasName: | yes | hasSelfParam: | no | getNumberOfParams: | 2 | hasBody: | yes | getNumberOfCaptures: | 0 | getNumberOfGenericTypeParams: | 2 | getModule: | file://:0:0:0:0 | functions | getNumberOfMembers: | 0 | getInterfaceType: | (X, Y) -> () | +| functions.swift:1:1:3:1 | foo() | getModule: | file://:0:0:0:0 | functions | getInterfaceType: | () -> Int | +| functions.swift:5:1:7:1 | bar(_:d:) | getModule: | file://:0:0:0:0 | functions | getInterfaceType: | (Int, Double) -> Int | +| functions.swift:10:5:10:28 | noBody(x:) | getModule: | file://:0:0:0:0 | functions | getInterfaceType: | (Self) -> (Int) -> Int | +| functions.swift:13:1:15:1 | variadic(_:) | getModule: | file://:0:0:0:0 | functions | getInterfaceType: | (Int...) -> () | +| functions.swift:17:1:19:1 | generic(x:y:) | getModule: | file://:0:0:0:0 | functions | getInterfaceType: | (X, Y) -> () | getName | functions.swift:1:1:3:1 | foo() | foo() | | functions.swift:5:1:7:1 | bar(_:d:) | bar(_:d:) | diff --git a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql index ce58d119f3c..ef59d8da5d6 100644 --- a/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql +++ b/swift/ql/test/extractor-tests/generated/decl/NamedFunction/NamedFunction.ql @@ -3,31 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - NamedFunction x, string hasName__label, string hasName, string hasSelfParam__label, - string hasSelfParam, string getNumberOfParams__label, int getNumberOfParams, - string hasBody__label, string hasBody, string getNumberOfCaptures__label, int getNumberOfCaptures, - string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType + NamedFunction x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType ) { toBeTested(x) and not x.isUnknown() and - hasName__label = "hasName:" and - (if x.hasName() then hasName = "yes" else hasName = "no") and - hasSelfParam__label = "hasSelfParam:" and - (if x.hasSelfParam() then hasSelfParam = "yes" else hasSelfParam = "no") and - getNumberOfParams__label = "getNumberOfParams:" and - getNumberOfParams = x.getNumberOfParams() and - hasBody__label = "hasBody:" and - (if x.hasBody() then hasBody = "yes" else hasBody = "no") and - getNumberOfCaptures__label = "getNumberOfCaptures:" and - getNumberOfCaptures = x.getNumberOfCaptures() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() } diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected index 1e73472bcfe..8a5d39063f5 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.expected @@ -1,8 +1,8 @@ instances -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some Base).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:9:1:9:51 | baz(_:) | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:5:1:5:45 | bar(_:) | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some P).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:13:1:13:59 | bazz() | getNumberOfOpaqueGenericParams: | 1 | -| file://:0:0:0:0 | _ | getNumberOfGenericTypeParams: | 0 | getModule: | file://:0:0:0:0 | opaque_types | getNumberOfMembers: | 0 | getInterfaceType: | (some SignedInteger).Type | getName: | _ | getNumberOfInheritedTypes: | 0 | getNamingDeclaration: | opaque_types.swift:1:1:1:45 | foo() | getNumberOfOpaqueGenericParams: | 1 | +| file://:0:0:0:0 | _ | getModule: | file://:0:0:0:0 | opaque_types | getInterfaceType: | (some Base).Type | getName: | _ | getNamingDeclaration: | opaque_types.swift:9:1:9:51 | baz(_:) | +| file://:0:0:0:0 | _ | getModule: | file://:0:0:0:0 | opaque_types | getInterfaceType: | (some P).Type | getName: | _ | getNamingDeclaration: | opaque_types.swift:5:1:5:45 | bar(_:) | +| file://:0:0:0:0 | _ | getModule: | file://:0:0:0:0 | opaque_types | getInterfaceType: | (some P).Type | getName: | _ | getNamingDeclaration: | opaque_types.swift:13:1:13:59 | bazz() | +| file://:0:0:0:0 | _ | getModule: | file://:0:0:0:0 | opaque_types | getInterfaceType: | (some SignedInteger).Type | getName: | _ | getNamingDeclaration: | opaque_types.swift:1:1:1:45 | foo() | getGenericTypeParam getMember getInheritedType diff --git a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql index a959441a79b..64b9149c1d0 100644 --- a/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/OpaqueTypeDecl/OpaqueTypeDecl.ql @@ -3,31 +3,20 @@ import codeql.swift.elements import TestUtils query predicate instances( - OpaqueTypeDecl x, string getNumberOfGenericTypeParams__label, int getNumberOfGenericTypeParams, - string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getName__label, string getName, string getNumberOfInheritedTypes__label, - int getNumberOfInheritedTypes, string getNamingDeclaration__label, ValueDecl getNamingDeclaration, - string getNumberOfOpaqueGenericParams__label, int getNumberOfOpaqueGenericParams + OpaqueTypeDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getNamingDeclaration__label, + ValueDecl getNamingDeclaration ) { toBeTested(x) and not x.isUnknown() and - getNumberOfGenericTypeParams__label = "getNumberOfGenericTypeParams:" and - getNumberOfGenericTypeParams = x.getNumberOfGenericTypeParams() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and getName__label = "getName:" and getName = x.getName() and - getNumberOfInheritedTypes__label = "getNumberOfInheritedTypes:" and - getNumberOfInheritedTypes = x.getNumberOfInheritedTypes() and getNamingDeclaration__label = "getNamingDeclaration:" and - getNamingDeclaration = x.getNamingDeclaration() and - getNumberOfOpaqueGenericParams__label = "getNumberOfOpaqueGenericParams:" and - getNumberOfOpaqueGenericParams = x.getNumberOfOpaqueGenericParams() + getNamingDeclaration = x.getNamingDeclaration() } query predicate getGenericTypeParam( diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected index 558f987e504..f67d25dc31b 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.expected @@ -1,63 +1,63 @@ instances -| file://:0:0:0:0 | x | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | x | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| file://:0:0:0:0 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | y | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:1:10:1:13 | _ | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | _ | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:1:18:1:29 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Double | getNumberOfAccessors: | 0 | getName: | y | getType: | Double | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:2:10:2:13 | _ | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | _ | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:2:18:2:29 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Double | getNumberOfAccessors: | 0 | getName: | y | getType: | Double | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:4:8:4:8 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | S | getNumberOfAccessors: | 0 | getName: | self | getType: | S | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:5:5:5 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | S | getNumberOfAccessors: | 0 | getName: | self | getType: | S | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:15:5:15 | x | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | x | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:15:5:15 | x | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | x | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:15:5:18 | x | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | x | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:23:5:23 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | y | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:23:5:23 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | y | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:5:23:5:26 | y | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | y | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:6:9:6:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | S | getNumberOfAccessors: | 0 | getName: | self | getType: | S | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:7:9:7:9 | newValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int? | getNumberOfAccessors: | 0 | getName: | newValue | getType: | Int? | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:7:9:7:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | S | getNumberOfAccessors: | 0 | getName: | self | getType: | S | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:12:13:12:22 | s | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | String | getNumberOfAccessors: | 0 | getName: | s | getType: | String | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:13:13:13:22 | s | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | String | getNumberOfAccessors: | 0 | getName: | s | getType: | String | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:14:26:14:26 | $0 | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | $0 | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:17:25:17:25 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Wrapper | getNumberOfAccessors: | 0 | getName: | self | getType: | Wrapper | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:17:25:17:25 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Wrapper | getNumberOfAccessors: | 0 | getName: | self | getType: | Wrapper | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:17:25:17:25 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Wrapper | getNumberOfAccessors: | 0 | getName: | self | getType: | Wrapper | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Wrapper | getNumberOfAccessors: | 0 | getName: | self | getType: | Wrapper | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Wrapper | getNumberOfAccessors: | 0 | getName: | self | getType: | Wrapper | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:18:9:18:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | value | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:22:9:22:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | value | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:24:5:24:5 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:24:10:24:24 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:27:25:27:25 | projectedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 0 | getName: | projectedValue | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:27:25:27:25 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:27:25:27:25 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:27:25:27:25 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:28:9:28:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | value | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjected | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjected | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:29:9:29:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 0 | getName: | value | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:33:9:33:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | value | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:34:9:34:9 | value | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 0 | getName: | value | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:36:5:36:5 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:36:10:36:24 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | wrappedValue | getType: | Int | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:41:5:41:5 | self | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | WrapperWithProjectedAndInit | getNumberOfAccessors: | 0 | getName: | self | getType: | WrapperWithProjectedAndInit | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | yes | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:41:10:41:26 | projectedValue | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Bool | getNumberOfAccessors: | 0 | getName: | projectedValue | getType: | Bool | hasAttachedPropertyWrapperType: | no | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | no | hasPropertyWrapperBackingVar: | no | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | no | -| param_decls.swift:48:18:48:22 | p1 | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | p1 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | yes | -| param_decls.swift:49:26:49:30 | p2 | getModule: | file://:0:0:0:0 | param_decls | getNumberOfMembers: | 0 | getInterfaceType: | Int | getNumberOfAccessors: | 0 | getName: | p2 | getType: | Int | hasAttachedPropertyWrapperType: | yes | hasParentPattern: | no | hasParentInitializer: | no | hasPropertyWrapperBackingVarBinding: | yes | hasPropertyWrapperBackingVar: | yes | hasPropertyWrapperProjectionVarBinding: | no | hasPropertyWrapperProjectionVar: | no | isInout: | no | hasPropertyWrapperLocalWrappedVarBinding: | no | hasPropertyWrapperLocalWrappedVar: | yes | +| file://:0:0:0:0 | x | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| file://:0:0:0:0 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:1:10:1:13 | _ | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | _ | getType: | Int | isInout: | no | +| param_decls.swift:1:18:1:29 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Double | getName: | y | getType: | Double | isInout: | yes | +| param_decls.swift:2:10:2:13 | _ | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | _ | getType: | Int | isInout: | no | +| param_decls.swift:2:18:2:29 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Double | getName: | y | getType: | Double | isInout: | yes | +| param_decls.swift:4:8:4:8 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | S | getName: | self | getType: | S | isInout: | yes | +| param_decls.swift:5:5:5:5 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | S | getName: | self | getType: | S | isInout: | yes | +| param_decls.swift:5:15:5:15 | x | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:15:5:15 | x | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:15:5:18 | x | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | x | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:23 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:23 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:5:23:5:26 | y | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | y | getType: | Int | isInout: | no | +| param_decls.swift:6:9:6:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | S | getName: | self | getType: | S | isInout: | no | +| param_decls.swift:7:9:7:9 | newValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int? | getName: | newValue | getType: | Int? | isInout: | no | +| param_decls.swift:7:9:7:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | S | getName: | self | getType: | S | isInout: | yes | +| param_decls.swift:12:13:12:22 | s | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | String | getName: | s | getType: | String | isInout: | yes | +| param_decls.swift:13:13:13:22 | s | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | String | getName: | s | getType: | String | isInout: | yes | +| param_decls.swift:14:26:14:26 | $0 | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | $0 | getType: | Int | isInout: | no | +| param_decls.swift:17:25:17:25 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Wrapper | getName: | self | getType: | Wrapper | isInout: | yes | +| param_decls.swift:17:25:17:25 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Wrapper | getName: | self | getType: | Wrapper | isInout: | yes | +| param_decls.swift:17:25:17:25 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | isInout: | no | +| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Wrapper | getName: | self | getType: | Wrapper | isInout: | no | +| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Wrapper | getName: | self | getType: | Wrapper | isInout: | yes | +| param_decls.swift:18:9:18:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Wrapper | getName: | self | getType: | Wrapper | isInout: | yes | +| param_decls.swift:18:9:18:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | value | getType: | Int | isInout: | no | +| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithInit | getName: | self | getType: | WrapperWithInit | isInout: | no | +| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithInit | getName: | self | getType: | WrapperWithInit | isInout: | yes | +| param_decls.swift:22:9:22:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithInit | getName: | self | getType: | WrapperWithInit | isInout: | yes | +| param_decls.swift:22:9:22:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | value | getType: | Int | isInout: | no | +| param_decls.swift:24:5:24:5 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithInit | getName: | self | getType: | WrapperWithInit | isInout: | yes | +| param_decls.swift:24:10:24:24 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | isInout: | no | +| param_decls.swift:27:25:27:25 | projectedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Bool | getName: | projectedValue | getType: | Bool | isInout: | no | +| param_decls.swift:27:25:27:25 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:27:25:27:25 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:27:25:27:25 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | isInout: | no | +| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | no | +| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:28:9:28:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:28:9:28:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | value | getType: | Int | isInout: | no | +| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | no | +| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:29:9:29:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjected | getName: | self | getType: | WrapperWithProjected | isInout: | yes | +| param_decls.swift:29:9:29:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Bool | getName: | value | getType: | Bool | isInout: | no | +| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | no | +| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:33:9:33:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:33:9:33:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | value | getType: | Int | isInout: | no | +| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | no | +| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:34:9:34:9 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:34:9:34:9 | value | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Bool | getName: | value | getType: | Bool | isInout: | no | +| param_decls.swift:36:5:36:5 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:36:10:36:24 | wrappedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | wrappedValue | getType: | Int | isInout: | no | +| param_decls.swift:41:5:41:5 | self | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | WrapperWithProjectedAndInit | getName: | self | getType: | WrapperWithProjectedAndInit | isInout: | yes | +| param_decls.swift:41:10:41:26 | projectedValue | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Bool | getName: | projectedValue | getType: | Bool | isInout: | no | +| param_decls.swift:48:18:48:22 | p1 | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | p1 | getType: | Int | isInout: | no | +| param_decls.swift:49:26:49:30 | p2 | getModule: | file://:0:0:0:0 | param_decls | getInterfaceType: | Int | getName: | p2 | getType: | Int | isInout: | no | getMember getAccessor getAttachedPropertyWrapperType diff --git a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql index a308ceb3fc8..1af06c1a464 100644 --- a/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/ParamDecl/ParamDecl.ql @@ -3,81 +3,22 @@ import codeql.swift.elements import TestUtils query predicate instances( - ParamDecl x, string getModule__label, ModuleDecl getModule, string getNumberOfMembers__label, - int getNumberOfMembers, string getInterfaceType__label, Type getInterfaceType, - string getNumberOfAccessors__label, int getNumberOfAccessors, string getName__label, - string getName, string getType__label, Type getType, string hasAttachedPropertyWrapperType__label, - string hasAttachedPropertyWrapperType, string hasParentPattern__label, string hasParentPattern, - string hasParentInitializer__label, string hasParentInitializer, - string hasPropertyWrapperBackingVarBinding__label, string hasPropertyWrapperBackingVarBinding, - string hasPropertyWrapperBackingVar__label, string hasPropertyWrapperBackingVar, - string hasPropertyWrapperProjectionVarBinding__label, - string hasPropertyWrapperProjectionVarBinding, string hasPropertyWrapperProjectionVar__label, - string hasPropertyWrapperProjectionVar, string isInout__label, string isInout, - string hasPropertyWrapperLocalWrappedVarBinding__label, - string hasPropertyWrapperLocalWrappedVarBinding, string hasPropertyWrapperLocalWrappedVar__label, - string hasPropertyWrapperLocalWrappedVar + ParamDecl x, string getModule__label, ModuleDecl getModule, string getInterfaceType__label, + Type getInterfaceType, string getName__label, string getName, string getType__label, Type getType, + string isInout__label, string isInout ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and - getNumberOfAccessors__label = "getNumberOfAccessors:" and - getNumberOfAccessors = x.getNumberOfAccessors() and getName__label = "getName:" and getName = x.getName() and getType__label = "getType:" and getType = x.getType() and - hasAttachedPropertyWrapperType__label = "hasAttachedPropertyWrapperType:" and - ( - if x.hasAttachedPropertyWrapperType() - then hasAttachedPropertyWrapperType = "yes" - else hasAttachedPropertyWrapperType = "no" - ) and - hasParentPattern__label = "hasParentPattern:" and - (if x.hasParentPattern() then hasParentPattern = "yes" else hasParentPattern = "no") and - hasParentInitializer__label = "hasParentInitializer:" and - (if x.hasParentInitializer() then hasParentInitializer = "yes" else hasParentInitializer = "no") and - hasPropertyWrapperBackingVarBinding__label = "hasPropertyWrapperBackingVarBinding:" and - ( - if x.hasPropertyWrapperBackingVarBinding() - then hasPropertyWrapperBackingVarBinding = "yes" - else hasPropertyWrapperBackingVarBinding = "no" - ) and - hasPropertyWrapperBackingVar__label = "hasPropertyWrapperBackingVar:" and - ( - if x.hasPropertyWrapperBackingVar() - then hasPropertyWrapperBackingVar = "yes" - else hasPropertyWrapperBackingVar = "no" - ) and - hasPropertyWrapperProjectionVarBinding__label = "hasPropertyWrapperProjectionVarBinding:" and - ( - if x.hasPropertyWrapperProjectionVarBinding() - then hasPropertyWrapperProjectionVarBinding = "yes" - else hasPropertyWrapperProjectionVarBinding = "no" - ) and - hasPropertyWrapperProjectionVar__label = "hasPropertyWrapperProjectionVar:" and - ( - if x.hasPropertyWrapperProjectionVar() - then hasPropertyWrapperProjectionVar = "yes" - else hasPropertyWrapperProjectionVar = "no" - ) and isInout__label = "isInout:" and - (if x.isInout() then isInout = "yes" else isInout = "no") and - hasPropertyWrapperLocalWrappedVarBinding__label = "hasPropertyWrapperLocalWrappedVarBinding:" and - ( - if x.hasPropertyWrapperLocalWrappedVarBinding() - then hasPropertyWrapperLocalWrappedVarBinding = "yes" - else hasPropertyWrapperLocalWrappedVarBinding = "no" - ) and - hasPropertyWrapperLocalWrappedVar__label = "hasPropertyWrapperLocalWrappedVar:" and - if x.hasPropertyWrapperLocalWrappedVar() - then hasPropertyWrapperLocalWrappedVar = "yes" - else hasPropertyWrapperLocalWrappedVar = "no" + if x.isInout() then isInout = "yes" else isInout = "no" } query predicate getMember(ParamDecl x, int index, Decl getMember) { diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected index baca0687415..aaa3b31e23e 100644 --- a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected +++ b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.expected @@ -1,4 +1,4 @@ instances -| diagnostics.swift:2:1:2:25 | #warning(...) | getModule: | file://:0:0:0:0 | diagnostics | getNumberOfMembers: | 0 | getKind: | 2 | getMessage: | diagnostics.swift:2:10:2:10 | I'm a warning | -| diagnostics.swift:3:1:3:26 | #error(...) | getModule: | file://:0:0:0:0 | diagnostics | getNumberOfMembers: | 0 | getKind: | 1 | getMessage: | diagnostics.swift:3:8:3:8 | And I'm an error | +| diagnostics.swift:2:1:2:25 | #warning(...) | getModule: | file://:0:0:0:0 | diagnostics | getKind: | 2 | getMessage: | diagnostics.swift:2:10:2:10 | I'm a warning | +| diagnostics.swift:3:1:3:26 | #error(...) | getModule: | file://:0:0:0:0 | diagnostics | getKind: | 1 | getMessage: | diagnostics.swift:3:8:3:8 | And I'm an error | getMember diff --git a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql index 438cb255468..acfb7f037da 100644 --- a/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql +++ b/swift/ql/test/extractor-tests/generated/decl/PoundDiagnosticDecl/PoundDiagnosticDecl.ql @@ -3,16 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - PoundDiagnosticDecl x, string getModule__label, ModuleDecl getModule, - string getNumberOfMembers__label, int getNumberOfMembers, string getKind__label, int getKind, - string getMessage__label, StringLiteralExpr getMessage + PoundDiagnosticDecl x, string getModule__label, ModuleDecl getModule, string getKind__label, + int getKind, string getMessage__label, StringLiteralExpr getMessage ) { toBeTested(x) and not x.isUnknown() and getModule__label = "getModule:" and getModule = x.getModule() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() and getKind__label = "getKind:" and getKind = x.getKind() and getMessage__label = "getMessage:" and diff --git a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql index ecbbcb102eb..863c0dfe647 100644 --- a/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/AppliedPropertyWrapperExpr/AppliedPropertyWrapperExpr.ql @@ -3,13 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - AppliedPropertyWrapperExpr x, string hasType__label, string hasType, string getKind__label, - int getKind, string getValue__label, Expr getValue, string getParam__label, ParamDecl getParam + AppliedPropertyWrapperExpr x, string getKind__label, int getKind, string getValue__label, + Expr getValue, string getParam__label, ParamDecl getParam ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getKind__label = "getKind:" and getKind = x.getKind() and getValue__label = "getValue:" and diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected index 383f4260b52..6d51478c433 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.expected @@ -1,4 +1,4 @@ instances -| move_semantics.swift:5:9:5:17 | ConsumeExpr | hasType: | yes | getSubExpr: | move_semantics.swift:5:17:5:17 | x | +| move_semantics.swift:5:9:5:17 | ConsumeExpr | getSubExpr: | move_semantics.swift:5:17:5:17 | x | getType | move_semantics.swift:5:9:5:17 | ConsumeExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql index b52718a1511..1521b525991 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/ConsumeExpr.ql @@ -2,13 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - ConsumeExpr x, string hasType__label, string hasType, string getSubExpr__label, Expr getSubExpr -) { +query predicate instances(ConsumeExpr x, string getSubExpr__label, Expr getSubExpr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected index 8355a090082..79797b15ae6 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.expected @@ -1,4 +1,4 @@ instances -| move_semantics.swift:4:9:4:14 | CopyExpr | hasType: | yes | getSubExpr: | move_semantics.swift:4:14:4:14 | x | +| move_semantics.swift:4:9:4:14 | CopyExpr | getSubExpr: | move_semantics.swift:4:14:4:14 | x | getType | move_semantics.swift:4:9:4:14 | CopyExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql index 8cd71d590a6..ab58e99444e 100644 --- a/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/CopyExpr/CopyExpr.ql @@ -2,13 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - CopyExpr x, string hasType__label, string hasType, string getSubExpr__label, Expr getSubExpr -) { +query predicate instances(CopyExpr x, string getSubExpr__label, Expr getSubExpr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql index ca06b579a22..276fa0a9aef 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DotSyntaxCallExpr/DotSyntaxCallExpr.ql @@ -3,18 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - DotSyntaxCallExpr x, string hasType__label, string hasType, string getFunction__label, - Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments, - string getBase__label, Expr getBase + DotSyntaxCallExpr x, string getFunction__label, Expr getFunction, string getBase__label, + Expr getBase ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getFunction__label = "getFunction:" and getFunction = x.getFunction() and - getNumberOfArguments__label = "getNumberOfArguments:" and - getNumberOfArguments = x.getNumberOfArguments() and getBase__label = "getBase:" and getBase = x.getBase() } diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected index ffb84297c49..2460a1e34fd 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.expected @@ -1,6 +1,6 @@ instances -| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | DynamicMemberRefExpr | hasType: | yes | getBase: | dynamic_lookup.swift:15:1:15:1 | OpaqueValueExpr | hasMember: | yes | -| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | DynamicSubscriptExpr | hasType: | yes | getBase: | dynamic_lookup.swift:16:5:16:5 | OpaqueValueExpr | hasMember: | yes | +| dynamic_lookup.swift:15:1:15:3 | .foo(_:) | DynamicMemberRefExpr | getBase: | dynamic_lookup.swift:15:1:15:1 | OpaqueValueExpr | +| dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | DynamicSubscriptExpr | getBase: | dynamic_lookup.swift:16:5:16:5 | OpaqueValueExpr | getType | dynamic_lookup.swift:15:1:15:3 | .foo(_:) | ((Int) -> ())? | | dynamic_lookup.swift:16:5:16:9 | subscript ...[...] | Int? | diff --git a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql index 02c7cd23191..79480f25f1e 100644 --- a/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/DynamicLookupExpr/DynamicLookupExpr.ql @@ -3,18 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - DynamicLookupExpr x, string primaryQlClasses, string hasType__label, string hasType, - string getBase__label, Expr getBase, string hasMember__label, string hasMember + DynamicLookupExpr x, string primaryQlClasses, string getBase__label, Expr getBase ) { toBeTested(x) and not x.isUnknown() and primaryQlClasses = x.getPrimaryQlClasses() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getBase__label = "getBase:" and - getBase = x.getBase() and - hasMember__label = "hasMember:" and - if x.hasMember() then hasMember = "yes" else hasMember = "no" + getBase = x.getBase() } query predicate getType(DynamicLookupExpr x, Type getType) { diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected index e428b7e7502..55e4538dc28 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.expected @@ -1,14 +1,14 @@ instances -| enum_is_case.swift:4:1:4:17 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:5:1:5:32 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:6:1:6:1 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:7:1:7:1 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:9:1:9:19 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:19:1:19:18 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:19:1:19:18 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:21:1:21:5 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:21:1:21:5 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:22:1:22:10 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:23:1:23:10 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getElement: | file://:0:0:0:0 | some | -| enum_is_case.swift:24:1:24:8 | ... is some | hasType: | yes | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to Set.init() | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:4:1:4:17 | ... is some | getSubExpr: | enum_is_case.swift:4:1:4:17 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:5:1:5:32 | ... is some | getSubExpr: | enum_is_case.swift:5:1:5:32 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:6:1:6:1 | ... is some | getSubExpr: | enum_is_case.swift:6:1:6:1 | 42 | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:7:1:7:1 | ... is some | getSubExpr: | enum_is_case.swift:7:1:7:1 | 42 | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:9:1:9:19 | ... is some | getSubExpr: | enum_is_case.swift:9:1:9:19 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:19:1:19:18 | ... is some | getSubExpr: | enum_is_case.swift:19:1:19:18 | OptionalEvaluationExpr | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:21:1:21:5 | ... is some | getSubExpr: | enum_is_case.swift:21:1:21:5 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:22:1:22:10 | ... is some | getSubExpr: | enum_is_case.swift:22:1:22:10 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:23:1:23:10 | ... is some | getSubExpr: | enum_is_case.swift:23:1:23:10 | [...] | getElement: | file://:0:0:0:0 | some | +| enum_is_case.swift:24:1:24:8 | ... is some | getSubExpr: | enum_is_case.swift:24:1:24:8 | call to Set.init() | getElement: | file://:0:0:0:0 | some | getType | enum_is_case.swift:4:1:4:17 | ... is some | Bool | | enum_is_case.swift:5:1:5:32 | ... is some | Bool | diff --git a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql index 804bf908fc5..b60785e57cc 100644 --- a/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/EnumIsCaseExpr/EnumIsCaseExpr.ql @@ -3,13 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - EnumIsCaseExpr x, string hasType__label, string hasType, string getSubExpr__label, - Expr getSubExpr, string getElement__label, EnumElementDecl getElement + EnumIsCaseExpr x, string getSubExpr__label, Expr getSubExpr, string getElement__label, + EnumElementDecl getElement ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() and getElement__label = "getElement:" and diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected index bf8aef3f595..ebd8475067d 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.expected @@ -1,4 +1,4 @@ instances -| extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | hasType: | yes | getFunctionExpr: | extract_function_isolation.swift:2:21:2:21 | x | +| extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | getFunctionExpr: | extract_function_isolation.swift:2:21:2:21 | x | getType | extract_function_isolation.swift:2:21:2:23 | ExtractFunctionIsolationExpr | (any Actor)? | diff --git a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql index 5128cab6a05..6e434d297c3 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ExtractFunctionIsolationExpr/ExtractFunctionIsolationExpr.ql @@ -3,13 +3,10 @@ import codeql.swift.elements import TestUtils query predicate instances( - ExtractFunctionIsolationExpr x, string hasType__label, string hasType, - string getFunctionExpr__label, Expr getFunctionExpr + ExtractFunctionIsolationExpr x, string getFunctionExpr__label, Expr getFunctionExpr ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getFunctionExpr__label = "getFunctionExpr:" and getFunctionExpr = x.getFunctionExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected index 57a2f657242..8eb957d6089 100644 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.expected @@ -1,13 +1,13 @@ instances -| identity_expressions.swift:5:9:5:14 | .self | DotSelfExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:9:5:9 | self | -| identity_expressions.swift:5:9:5:21 | .self | DotSelfExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:9:5:19 | .x | -| identity_expressions.swift:5:28:5:31 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:5:29:5:29 | 42 | -| identity_expressions.swift:9:5:9:9 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:9:6:9:8 | call to A.init() | -| identity_expressions.swift:12:28:12:43 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:12:29:12:42 | await ... | -| identity_expressions.swift:12:29:12:42 | await ... | AwaitExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:12:35:12:42 | call to create() | -| identity_expressions.swift:15:5:15:21 | await ... | AwaitExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:15:11:15:21 | call to process() | -| identity_expressions.swift:15:11:15:19 | (...) | ParenExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:15:12:15:12 | process() | -| identity_expressions.swift:18:9:18:17 | BorrowExpr | BorrowExpr | hasType: | yes | getSubExpr: | identity_expressions.swift:18:17:18:17 | x | +| identity_expressions.swift:5:9:5:14 | .self | DotSelfExpr | getSubExpr: | identity_expressions.swift:5:9:5:9 | self | +| identity_expressions.swift:5:9:5:21 | .self | DotSelfExpr | getSubExpr: | identity_expressions.swift:5:9:5:19 | .x | +| identity_expressions.swift:5:28:5:31 | (...) | ParenExpr | getSubExpr: | identity_expressions.swift:5:29:5:29 | 42 | +| identity_expressions.swift:9:5:9:9 | (...) | ParenExpr | getSubExpr: | identity_expressions.swift:9:6:9:8 | call to A.init() | +| identity_expressions.swift:12:28:12:43 | (...) | ParenExpr | getSubExpr: | identity_expressions.swift:12:29:12:42 | await ... | +| identity_expressions.swift:12:29:12:42 | await ... | AwaitExpr | getSubExpr: | identity_expressions.swift:12:35:12:42 | call to create() | +| identity_expressions.swift:15:5:15:21 | await ... | AwaitExpr | getSubExpr: | identity_expressions.swift:15:11:15:21 | call to process() | +| identity_expressions.swift:15:11:15:19 | (...) | ParenExpr | getSubExpr: | identity_expressions.swift:15:12:15:12 | process() | +| identity_expressions.swift:18:9:18:17 | BorrowExpr | BorrowExpr | getSubExpr: | identity_expressions.swift:18:17:18:17 | x | getType | identity_expressions.swift:5:9:5:14 | .self | A | | identity_expressions.swift:5:9:5:21 | .self | @lvalue Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql index 4753f00c190..67a23147b3b 100644 --- a/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/IdentityExpr/IdentityExpr.ql @@ -3,14 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - IdentityExpr x, string primaryQlClasses, string hasType__label, string hasType, - string getSubExpr__label, Expr getSubExpr + IdentityExpr x, string primaryQlClasses, string getSubExpr__label, Expr getSubExpr ) { toBeTested(x) and not x.isUnknown() and primaryQlClasses = x.getPrimaryQlClasses() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected index a1d053485a8..23713cba5cd 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.expected @@ -1,11 +1,11 @@ instances -| implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | StringToPointerExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:2:3:2:3 | Hello | -| implicit_conversions.swift:4:16:4:16 | (Int?) ... | InjectIntoOptionalExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:4:16:4:16 | 42 | -| implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | ErasureExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:5:25:5:25 | 42 | -| implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | AbiSafeConversionExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:12:3:12:5 | .b | -| implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | InjectIntoOptionalExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:12:9:12:10 | { ... } | -| implicit_conversions.swift:24:3:24:5 | (Array) ... | UnsafeCastExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | -| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | LoadExpr | hasType: | yes | getSubExpr: | implicit_conversions.swift:24:3:24:5 | .a | +| implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | StringToPointerExpr | getSubExpr: | implicit_conversions.swift:2:3:2:3 | Hello | +| implicit_conversions.swift:4:16:4:16 | (Int?) ... | InjectIntoOptionalExpr | getSubExpr: | implicit_conversions.swift:4:16:4:16 | 42 | +| implicit_conversions.swift:5:25:5:25 | (any Equatable) ... | ErasureExpr | getSubExpr: | implicit_conversions.swift:5:25:5:25 | 42 | +| implicit_conversions.swift:12:3:12:5 | (@lvalue (() -> Void)?) ... | AbiSafeConversionExpr | getSubExpr: | implicit_conversions.swift:12:3:12:5 | .b | +| implicit_conversions.swift:12:9:12:10 | ((() -> Void)?) ... | InjectIntoOptionalExpr | getSubExpr: | implicit_conversions.swift:12:9:12:10 | { ... } | +| implicit_conversions.swift:24:3:24:5 | (Array) ... | UnsafeCastExpr | getSubExpr: | implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | +| implicit_conversions.swift:24:3:24:5 | ([any Sendable]) ... | LoadExpr | getSubExpr: | implicit_conversions.swift:24:3:24:5 | .a | getType | implicit_conversions.swift:2:3:2:3 | (UnsafePointer) ... | UnsafePointer | | implicit_conversions.swift:4:16:4:16 | (Int?) ... | Int? | diff --git a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql index 962f5bf0f1d..5861080be05 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ImplicitConversionExpr/ImplicitConversionExpr.ql @@ -3,14 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - ImplicitConversionExpr x, string primaryQlClasses, string hasType__label, string hasType, - string getSubExpr__label, Expr getSubExpr + ImplicitConversionExpr x, string primaryQlClasses, string getSubExpr__label, Expr getSubExpr ) { toBeTested(x) and not x.isUnknown() and primaryQlClasses = x.getPrimaryQlClasses() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql index ab687383b32..190b919a498 100644 --- a/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/InitializerRefCallExpr/InitializerRefCallExpr.ql @@ -3,18 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - InitializerRefCallExpr x, string hasType__label, string hasType, string getFunction__label, - Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments, - string getBase__label, Expr getBase + InitializerRefCallExpr x, string getFunction__label, Expr getFunction, string getBase__label, + Expr getBase ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getFunction__label = "getFunction:" and getFunction = x.getFunction() and - getNumberOfArguments__label = "getNumberOfArguments:" and - getNumberOfArguments = x.getNumberOfArguments() and getBase__label = "getBase:" and getBase = x.getBase() } diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected index af54b35d8e1..69318676c73 100644 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.expected @@ -1,12 +1,12 @@ instances -| key_path_expr.swift:11:12:11:17 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | -| key_path_expr.swift:12:18:12:26 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | -| key_path_expr.swift:13:19:13:38 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | -| key_path_expr.swift:14:16:14:35 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 2 | -| key_path_expr.swift:15:16:15:26 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 3 | -| key_path_expr.swift:16:20:16:30 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 4 | -| key_path_expr.swift:17:11:17:16 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | -| key_path_expr.swift:18:20:18:32 | #keyPath(...) | hasType: | yes | hasRoot: | yes | getNumberOfComponents: | 1 | +| key_path_expr.swift:11:12:11:17 | #keyPath(...) | +| key_path_expr.swift:12:18:12:26 | #keyPath(...) | +| key_path_expr.swift:13:19:13:38 | #keyPath(...) | +| key_path_expr.swift:14:16:14:35 | #keyPath(...) | +| key_path_expr.swift:15:16:15:26 | #keyPath(...) | +| key_path_expr.swift:16:20:16:30 | #keyPath(...) | +| key_path_expr.swift:17:11:17:16 | #keyPath(...) | +| key_path_expr.swift:18:20:18:32 | #keyPath(...) | getType | key_path_expr.swift:11:12:11:17 | #keyPath(...) | WritableKeyPath | | key_path_expr.swift:12:18:12:26 | #keyPath(...) | WritableKeyPath<[Int], Int> | diff --git a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql index 781ca756dfe..67ca30250cf 100644 --- a/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/KeyPathExpr/KeyPathExpr.ql @@ -2,19 +2,7 @@ import codeql.swift.elements import TestUtils -query predicate instances( - KeyPathExpr x, string hasType__label, string hasType, string hasRoot__label, string hasRoot, - string getNumberOfComponents__label, int getNumberOfComponents -) { - toBeTested(x) and - not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and - hasRoot__label = "hasRoot:" and - (if x.hasRoot() then hasRoot = "yes" else hasRoot = "no") and - getNumberOfComponents__label = "getNumberOfComponents:" and - getNumberOfComponents = x.getNumberOfComponents() -} +query predicate instances(KeyPathExpr x) { toBeTested(x) and not x.isUnknown() } query predicate getType(KeyPathExpr x, Type getType) { toBeTested(x) and not x.isUnknown() and getType = x.getType() diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected index 6154c2a7958..66837f972f2 100644 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.expected @@ -1,33 +1,33 @@ instances -| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | UnownedSerialExecutor.Type | hasMember: | yes | getMethodRef: | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | -| method_lookups.swift:7:13:7:13 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:7:13:7:13 | self | hasMember: | no | getMethodRef: | method_lookups.swift:7:13:7:13 | { ... } | -| method_lookups.swift:7:13:7:13 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:7:13:7:13 | baz(_:) | -| method_lookups.swift:16:13:16:13 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:16:13:16:13 | self | hasMember: | no | getMethodRef: | method_lookups.swift:16:13:16:13 | { ... } | -| method_lookups.swift:16:13:16:13 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:16:13:16:13 | baz(_:) | -| method_lookups.swift:27:13:27:13 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:27:13:27:13 | self | hasMember: | no | getMethodRef: | method_lookups.swift:27:13:27:13 | { ... } | -| method_lookups.swift:27:13:27:13 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:27:13:27:13 | baz(_:) | -| method_lookups.swift:32:3:32:5 | .foo(_:_:) | hasType: | yes | getBase: | method_lookups.swift:32:3:32:3 | X.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:32:5:32:5 | foo(_:_:) | -| method_lookups.swift:33:3:33:5 | .bar() | hasType: | yes | getBase: | method_lookups.swift:33:3:33:3 | X.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:33:5:33:5 | bar() | -| method_lookups.swift:34:3:34:3 | X.init() | hasType: | yes | getBase: | method_lookups.swift:34:3:34:3 | X.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:34:3:34:3 | X.init() | -| method_lookups.swift:34:3:34:7 | .baz(_:) | hasType: | yes | getBase: | method_lookups.swift:34:3:34:5 | call to X.init() | hasMember: | yes | getMethodRef: | method_lookups.swift:34:7:34:7 | baz(_:) | -| method_lookups.swift:36:11:36:13 | .bar() | hasType: | yes | getBase: | method_lookups.swift:36:11:36:11 | X.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:36:13:36:13 | bar() | -| method_lookups.swift:37:11:37:11 | X.init() | hasType: | yes | getBase: | method_lookups.swift:37:11:37:11 | X.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:37:11:37:11 | X.init() | -| method_lookups.swift:37:11:37:15 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:37:11:37:13 | call to X.init() | hasMember: | no | getMethodRef: | method_lookups.swift:37:15:37:15 | { ... } | -| method_lookups.swift:37:15:37:15 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:37:15:37:15 | baz(_:) | -| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | hasType: | yes | getBase: | method_lookups.swift:40:1:40:1 | Task<(), Never>.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | -| method_lookups.swift:41:3:41:5 | .foo(_:_:) | hasType: | yes | getBase: | method_lookups.swift:41:3:41:3 | Y.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:41:5:41:5 | foo(_:_:) | -| method_lookups.swift:42:9:42:9 | Y.init() | hasType: | yes | getBase: | method_lookups.swift:42:9:42:9 | Y.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:42:9:42:9 | Y.init() | -| method_lookups.swift:42:9:42:13 | .baz(_:) | hasType: | yes | getBase: | method_lookups.swift:42:9:42:11 | call to Y.init() | hasMember: | yes | getMethodRef: | method_lookups.swift:42:13:42:13 | baz(_:) | -| method_lookups.swift:44:11:44:13 | .foo(_:_:) | hasType: | yes | getBase: | method_lookups.swift:44:11:44:11 | Y.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:44:13:44:13 | foo(_:_:) | -| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | hasType: | yes | getBase: | method_lookups.swift:47:1:47:1 | Task<(), Never>.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | -| method_lookups.swift:48:9:48:11 | .foo(_:_:) | hasType: | yes | getBase: | method_lookups.swift:48:9:48:9 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:48:11:48:11 | foo(_:_:) | -| method_lookups.swift:49:9:49:11 | .bar() | hasType: | yes | getBase: | method_lookups.swift:49:9:49:9 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:49:11:49:11 | bar() | -| method_lookups.swift:50:9:50:9 | Z.init() | hasType: | yes | getBase: | method_lookups.swift:50:9:50:9 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:50:9:50:9 | Z.init() | -| method_lookups.swift:50:9:50:13 | .baz(_:) | hasType: | yes | getBase: | method_lookups.swift:50:9:50:11 | call to Z.init() | hasMember: | yes | getMethodRef: | method_lookups.swift:50:13:50:13 | baz(_:) | -| method_lookups.swift:52:11:52:13 | .bar() | hasType: | yes | getBase: | method_lookups.swift:52:11:52:11 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:52:13:52:13 | bar() | -| method_lookups.swift:53:11:53:23 | (no string representation) | hasType: | yes | getBase: | method_lookups.swift:53:18:53:20 | call to Z.init() | hasMember: | no | getMethodRef: | method_lookups.swift:53:23:53:23 | { ... } | -| method_lookups.swift:53:18:53:18 | Z.init() | hasType: | yes | getBase: | method_lookups.swift:53:18:53:18 | Z.Type | hasMember: | yes | getMethodRef: | method_lookups.swift:53:18:53:18 | Z.init() | -| method_lookups.swift:53:23:53:23 | .baz(_:) | hasType: | yes | getBase: | file://:0:0:0:0 | self | hasMember: | yes | getMethodRef: | method_lookups.swift:53:23:53:23 | baz(_:) | +| file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | getBase: | file://:0:0:0:0 | UnownedSerialExecutor.Type | getMethodRef: | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | +| method_lookups.swift:7:13:7:13 | (no string representation) | getBase: | method_lookups.swift:7:13:7:13 | self | getMethodRef: | method_lookups.swift:7:13:7:13 | { ... } | +| method_lookups.swift:7:13:7:13 | .baz(_:) | getBase: | file://:0:0:0:0 | self | getMethodRef: | method_lookups.swift:7:13:7:13 | baz(_:) | +| method_lookups.swift:16:13:16:13 | (no string representation) | getBase: | method_lookups.swift:16:13:16:13 | self | getMethodRef: | method_lookups.swift:16:13:16:13 | { ... } | +| method_lookups.swift:16:13:16:13 | .baz(_:) | getBase: | file://:0:0:0:0 | self | getMethodRef: | method_lookups.swift:16:13:16:13 | baz(_:) | +| method_lookups.swift:27:13:27:13 | (no string representation) | getBase: | method_lookups.swift:27:13:27:13 | self | getMethodRef: | method_lookups.swift:27:13:27:13 | { ... } | +| method_lookups.swift:27:13:27:13 | .baz(_:) | getBase: | file://:0:0:0:0 | self | getMethodRef: | method_lookups.swift:27:13:27:13 | baz(_:) | +| method_lookups.swift:32:3:32:5 | .foo(_:_:) | getBase: | method_lookups.swift:32:3:32:3 | X.Type | getMethodRef: | method_lookups.swift:32:5:32:5 | foo(_:_:) | +| method_lookups.swift:33:3:33:5 | .bar() | getBase: | method_lookups.swift:33:3:33:3 | X.Type | getMethodRef: | method_lookups.swift:33:5:33:5 | bar() | +| method_lookups.swift:34:3:34:3 | X.init() | getBase: | method_lookups.swift:34:3:34:3 | X.Type | getMethodRef: | method_lookups.swift:34:3:34:3 | X.init() | +| method_lookups.swift:34:3:34:7 | .baz(_:) | getBase: | method_lookups.swift:34:3:34:5 | call to X.init() | getMethodRef: | method_lookups.swift:34:7:34:7 | baz(_:) | +| method_lookups.swift:36:11:36:13 | .bar() | getBase: | method_lookups.swift:36:11:36:11 | X.Type | getMethodRef: | method_lookups.swift:36:13:36:13 | bar() | +| method_lookups.swift:37:11:37:11 | X.init() | getBase: | method_lookups.swift:37:11:37:11 | X.Type | getMethodRef: | method_lookups.swift:37:11:37:11 | X.init() | +| method_lookups.swift:37:11:37:15 | (no string representation) | getBase: | method_lookups.swift:37:11:37:13 | call to X.init() | getMethodRef: | method_lookups.swift:37:15:37:15 | { ... } | +| method_lookups.swift:37:15:37:15 | .baz(_:) | getBase: | file://:0:0:0:0 | self | getMethodRef: | method_lookups.swift:37:15:37:15 | baz(_:) | +| method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | getBase: | method_lookups.swift:40:1:40:1 | Task<(), Never>.Type | getMethodRef: | method_lookups.swift:40:1:40:1 | Task.init(priority:operation:) | +| method_lookups.swift:41:3:41:5 | .foo(_:_:) | getBase: | method_lookups.swift:41:3:41:3 | Y.Type | getMethodRef: | method_lookups.swift:41:5:41:5 | foo(_:_:) | +| method_lookups.swift:42:9:42:9 | Y.init() | getBase: | method_lookups.swift:42:9:42:9 | Y.Type | getMethodRef: | method_lookups.swift:42:9:42:9 | Y.init() | +| method_lookups.swift:42:9:42:13 | .baz(_:) | getBase: | method_lookups.swift:42:9:42:11 | call to Y.init() | getMethodRef: | method_lookups.swift:42:13:42:13 | baz(_:) | +| method_lookups.swift:44:11:44:13 | .foo(_:_:) | getBase: | method_lookups.swift:44:11:44:11 | Y.Type | getMethodRef: | method_lookups.swift:44:13:44:13 | foo(_:_:) | +| method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | getBase: | method_lookups.swift:47:1:47:1 | Task<(), Never>.Type | getMethodRef: | method_lookups.swift:47:1:47:1 | Task.init(priority:operation:) | +| method_lookups.swift:48:9:48:11 | .foo(_:_:) | getBase: | method_lookups.swift:48:9:48:9 | Z.Type | getMethodRef: | method_lookups.swift:48:11:48:11 | foo(_:_:) | +| method_lookups.swift:49:9:49:11 | .bar() | getBase: | method_lookups.swift:49:9:49:9 | Z.Type | getMethodRef: | method_lookups.swift:49:11:49:11 | bar() | +| method_lookups.swift:50:9:50:9 | Z.init() | getBase: | method_lookups.swift:50:9:50:9 | Z.Type | getMethodRef: | method_lookups.swift:50:9:50:9 | Z.init() | +| method_lookups.swift:50:9:50:13 | .baz(_:) | getBase: | method_lookups.swift:50:9:50:11 | call to Z.init() | getMethodRef: | method_lookups.swift:50:13:50:13 | baz(_:) | +| method_lookups.swift:52:11:52:13 | .bar() | getBase: | method_lookups.swift:52:11:52:11 | Z.Type | getMethodRef: | method_lookups.swift:52:13:52:13 | bar() | +| method_lookups.swift:53:11:53:23 | (no string representation) | getBase: | method_lookups.swift:53:18:53:20 | call to Z.init() | getMethodRef: | method_lookups.swift:53:23:53:23 | { ... } | +| method_lookups.swift:53:18:53:18 | Z.init() | getBase: | method_lookups.swift:53:18:53:18 | Z.Type | getMethodRef: | method_lookups.swift:53:18:53:18 | Z.init() | +| method_lookups.swift:53:23:53:23 | .baz(_:) | getBase: | file://:0:0:0:0 | self | getMethodRef: | method_lookups.swift:53:23:53:23 | baz(_:) | getType | file://:0:0:0:0 | UnownedSerialExecutor.init(_:) | (Builtin.Executor) -> UnownedSerialExecutor | | method_lookups.swift:7:13:7:13 | (no string representation) | (Int) -> () | diff --git a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql index 42847d62bd5..d2006d3bc81 100644 --- a/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/MethodLookupExpr/MethodLookupExpr.ql @@ -3,17 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - MethodLookupExpr x, string hasType__label, string hasType, string getBase__label, Expr getBase, - string hasMember__label, string hasMember, string getMethodRef__label, Expr getMethodRef + MethodLookupExpr x, string getBase__label, Expr getBase, string getMethodRef__label, + Expr getMethodRef ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getBase__label = "getBase:" and getBase = x.getBase() and - hasMember__label = "hasMember:" and - (if x.hasMember() then hasMember = "yes" else hasMember = "no") and getMethodRef__label = "getMethodRef:" and getMethodRef = x.getMethodRef() } diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected index 74d12295b90..abf317e5a3b 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.expected @@ -1,7 +1,7 @@ instances -| object_literals.swift:5:5:5:42 | #fileLiteral(...) | hasType: | yes | getKind: | 0 | getNumberOfArguments: | 1 | -| object_literals.swift:6:5:6:61 | #colorLiteral(...) | hasType: | yes | getKind: | 2 | getNumberOfArguments: | 4 | -| object_literals.swift:7:5:7:44 | #imageLiteral(...) | hasType: | yes | getKind: | 1 | getNumberOfArguments: | 1 | +| object_literals.swift:5:5:5:42 | #fileLiteral(...) | getKind: | 0 | +| object_literals.swift:6:5:6:61 | #colorLiteral(...) | getKind: | 2 | +| object_literals.swift:7:5:7:44 | #imageLiteral(...) | getKind: | 1 | getType | object_literals.swift:5:5:5:42 | #fileLiteral(...) | <> | | object_literals.swift:6:5:6:61 | #colorLiteral(...) | <> | diff --git a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql index c4c48c022b0..f84367ab3bb 100644 --- a/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/ObjectLiteralExpr/ObjectLiteralExpr.ql @@ -2,18 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - ObjectLiteralExpr x, string hasType__label, string hasType, string getKind__label, int getKind, - string getNumberOfArguments__label, int getNumberOfArguments -) { +query predicate instances(ObjectLiteralExpr x, string getKind__label, int getKind) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getKind__label = "getKind:" and - getKind = x.getKind() and - getNumberOfArguments__label = "getNumberOfArguments:" and - getNumberOfArguments = x.getNumberOfArguments() + getKind = x.getKind() } query predicate getType(ObjectLiteralExpr x, Type getType) { diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected index bddb0fdef4c..14fd43b8fd5 100644 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.expected @@ -1,4 +1,4 @@ instances -| open_existentials.swift:14:5:14:19 | OpenExistentialExpr | hasType: | yes | getSubExpr: | open_existentials.swift:14:5:14:19 | call to foo() | getExistential: | open_existentials.swift:14:5:14:13 | call to createP() | getOpaqueExpr: | open_existentials.swift:14:5:14:13 | OpaqueValueExpr | +| open_existentials.swift:14:5:14:19 | OpenExistentialExpr | getSubExpr: | open_existentials.swift:14:5:14:19 | call to foo() | getExistential: | open_existentials.swift:14:5:14:13 | call to createP() | getOpaqueExpr: | open_existentials.swift:14:5:14:13 | OpaqueValueExpr | getType | open_existentials.swift:14:5:14:19 | OpenExistentialExpr | () | diff --git a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql index 26f8e8e9eaa..c94f907c4e9 100644 --- a/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/OpenExistentialExpr/OpenExistentialExpr.ql @@ -3,14 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - OpenExistentialExpr x, string hasType__label, string hasType, string getSubExpr__label, - Expr getSubExpr, string getExistential__label, Expr getExistential, string getOpaqueExpr__label, - OpaqueValueExpr getOpaqueExpr + OpenExistentialExpr x, string getSubExpr__label, Expr getSubExpr, string getExistential__label, + Expr getExistential, string getOpaqueExpr__label, OpaqueValueExpr getOpaqueExpr ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() and getExistential__label = "getExistential:" and diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql index 51d3a87b1ac..1863b6090b9 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/MaterializePackExpr.ql @@ -2,14 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - MaterializePackExpr x, string hasType__label, string hasType, string getSubExpr__label, - Expr getSubExpr -) { +query predicate instances(MaterializePackExpr x, string getSubExpr__label, Expr getSubExpr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected index 4f4eb6cd416..d970fe07944 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.expected @@ -1,4 +1,4 @@ instances -| test.swift:2:18:2:23 | PackElementExpr | hasType: | yes | getSubExpr: | test.swift:2:23:2:23 | t | +| test.swift:2:18:2:23 | PackElementExpr | getSubExpr: | test.swift:2:23:2:23 | t | getType | test.swift:2:18:2:23 | PackElementExpr | \u03c4_1_0 | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql index 11c6fe8d1b4..a9f6532242f 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackElementExpr.ql @@ -2,14 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - PackElementExpr x, string hasType__label, string hasType, string getSubExpr__label, - Expr getSubExpr -) { +query predicate instances(PackElementExpr x, string getSubExpr__label, Expr getSubExpr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getSubExpr__label = "getSubExpr:" and getSubExpr = x.getSubExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected index fc1acfc68c9..9815b9396c7 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.expected @@ -1,4 +1,4 @@ instances -| test.swift:2:11:2:23 | PackExpansionExpr | hasType: | yes | getPatternExpr: | test.swift:2:18:2:23 | PackElementExpr | +| test.swift:2:11:2:23 | PackExpansionExpr | getPatternExpr: | test.swift:2:18:2:23 | PackElementExpr | getType | test.swift:2:11:2:23 | PackExpansionExpr | repeat each T | diff --git a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql index 13b78136f54..2ef41d1f244 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PackExpansionExpr/PackExpansionExpr.ql @@ -2,14 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - PackExpansionExpr x, string hasType__label, string hasType, string getPatternExpr__label, - Expr getPatternExpr -) { +query predicate instances(PackExpansionExpr x, string getPatternExpr__label, Expr getPatternExpr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getPatternExpr__label = "getPatternExpr:" and getPatternExpr = x.getPatternExpr() } diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected index 9a52e0a25c8..33f82610039 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.expected @@ -1,6 +1,6 @@ instances -| postfix.swift:1:5:1:6 | call to ...(_:) | hasType: | yes | getFunction: | postfix.swift:1:6:1:6 | ....(_:) | getNumberOfArguments: | 1 | -| postfix.swift:7:1:7:2 | call to **(_:) | hasType: | yes | getFunction: | postfix.swift:7:2:7:2 | **(_:) | getNumberOfArguments: | 1 | +| postfix.swift:1:5:1:6 | call to ...(_:) | getFunction: | postfix.swift:1:6:1:6 | ....(_:) | +| postfix.swift:7:1:7:2 | call to **(_:) | getFunction: | postfix.swift:7:2:7:2 | **(_:) | getType | postfix.swift:1:5:1:6 | call to ...(_:) | PartialRangeFrom | | postfix.swift:7:1:7:2 | call to **(_:) | () | diff --git a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql index 6df8be9a8a6..101048cb5c1 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PostfixUnaryExpr/PostfixUnaryExpr.ql @@ -2,18 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - PostfixUnaryExpr x, string hasType__label, string hasType, string getFunction__label, - Expr getFunction, string getNumberOfArguments__label, int getNumberOfArguments -) { +query predicate instances(PostfixUnaryExpr x, string getFunction__label, Expr getFunction) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getFunction__label = "getFunction:" and - getFunction = x.getFunction() and - getNumberOfArguments__label = "getNumberOfArguments:" and - getNumberOfArguments = x.getNumberOfArguments() + getFunction = x.getFunction() } query predicate getType(PostfixUnaryExpr x, Type getType) { diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected index 54cba7a2a04..9276038c719 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.expected @@ -1,5 +1,5 @@ instances -| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | hasType: | yes | hasWrappedValue: | yes | getPlaceholder: | property_wrapper_value_placeholder.swift:12:26:12:26 | OpaqueValueExpr | +| property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | getPlaceholder: | property_wrapper_value_placeholder.swift:12:26:12:26 | OpaqueValueExpr | getType | property_wrapper_value_placeholder.swift:12:26:12:26 | PropertyWrapperValuePlaceholderExpr | Int | getWrappedValue diff --git a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql index 5bb768043f8..bdd44df47b6 100644 --- a/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/PropertyWrapperValuePlaceholderExpr/PropertyWrapperValuePlaceholderExpr.ql @@ -3,16 +3,11 @@ import codeql.swift.elements import TestUtils query predicate instances( - PropertyWrapperValuePlaceholderExpr x, string hasType__label, string hasType, - string hasWrappedValue__label, string hasWrappedValue, string getPlaceholder__label, + PropertyWrapperValuePlaceholderExpr x, string getPlaceholder__label, OpaqueValueExpr getPlaceholder ) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and - hasWrappedValue__label = "hasWrappedValue:" and - (if x.hasWrappedValue() then hasWrappedValue = "yes" else hasWrappedValue = "no") and getPlaceholder__label = "getPlaceholder:" and getPlaceholder = x.getPlaceholder() } diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected index a25d72d1157..a76ec56151d 100644 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.expected @@ -1,6 +1,6 @@ instances -| test.swift:2:3:7:3 | SingleValueStmtExpr | hasType: | yes | getStmt: | test.swift:2:3:7:3 | switch x { ... } | -| test.swift:11:3:11:30 | SingleValueStmtExpr | hasType: | yes | getStmt: | test.swift:11:3:11:30 | if ... then { ... } else { ... } | +| test.swift:2:3:7:3 | SingleValueStmtExpr | getStmt: | test.swift:2:3:7:3 | switch x { ... } | +| test.swift:11:3:11:30 | SingleValueStmtExpr | getStmt: | test.swift:11:3:11:30 | if ... then { ... } else { ... } | getType | test.swift:2:3:7:3 | SingleValueStmtExpr | Int | | test.swift:11:3:11:30 | SingleValueStmtExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql index 1ce8d70b9d1..a6093558118 100644 --- a/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/SingleValueStmtExpr/SingleValueStmtExpr.ql @@ -2,13 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - SingleValueStmtExpr x, string hasType__label, string hasType, string getStmt__label, Stmt getStmt -) { +query predicate instances(SingleValueStmtExpr x, string getStmt__label, Stmt getStmt) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getStmt__label = "getStmt:" and getStmt = x.getStmt() } diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected index b141bd02461..a495d6d72d8 100644 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.expected @@ -1,6 +1,6 @@ instances -| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | N | -| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | hasType: | yes | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | N | +| type_value_exprs.swift:4:13:4:13 | TypeValueExpr | getTypeRepr: | type_value_exprs.swift:4:13:4:13 | N | +| type_value_exprs.swift:5:13:5:13 | TypeValueExpr | getTypeRepr: | type_value_exprs.swift:5:13:5:13 | N | getType | type_value_exprs.swift:4:13:4:13 | TypeValueExpr | Int | | type_value_exprs.swift:5:13:5:13 | TypeValueExpr | Int | diff --git a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql index 7d8d93de33d..a8f3d7163fd 100644 --- a/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql +++ b/swift/ql/test/extractor-tests/generated/expr/TypeValueExpr/TypeValueExpr.ql @@ -2,14 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - TypeValueExpr x, string hasType__label, string hasType, string getTypeRepr__label, - TypeRepr getTypeRepr -) { +query predicate instances(TypeValueExpr x, string getTypeRepr__label, TypeRepr getTypeRepr) { toBeTested(x) and not x.isUnknown() and - hasType__label = "hasType:" and - (if x.hasType() then hasType = "yes" else hasType = "no") and getTypeRepr__label = "getTypeRepr:" and getTypeRepr = x.getTypeRepr() } diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected index e31e88b4abb..55fc86a8fdb 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.expected @@ -1,7 +1,7 @@ instances -| for.swift:4:5:6:5 | for ... in ... where ... { ... } | hasLabel: | no | getNumberOfVariables: | 2 | getPattern: | for.swift:4:9:4:9 | x | hasWhere: | yes | hasIteratorVar: | yes | hasNextCall: | yes | getBody: | for.swift:4:32:6:5 | { ... } | -| for.swift:7:5:9:5 | for ... in ... { ... } | hasLabel: | no | getNumberOfVariables: | 2 | getPattern: | for.swift:7:9:7:9 | s | hasWhere: | no | hasIteratorVar: | yes | hasNextCall: | yes | getBody: | for.swift:7:23:9:5 | { ... } | -| for.swift:13:5:17:5 | for ... in ... { ... } | hasLabel: | no | getNumberOfVariables: | 1 | getPattern: | for.swift:13:9:13:9 | x | hasWhere: | no | hasIteratorVar: | no | hasNextCall: | no | getBody: | for.swift:13:32:17:5 | { ... } | +| for.swift:4:5:6:5 | for ... in ... where ... { ... } | getPattern: | for.swift:4:9:4:9 | x | getBody: | for.swift:4:32:6:5 | { ... } | +| for.swift:7:5:9:5 | for ... in ... { ... } | getPattern: | for.swift:7:9:7:9 | s | getBody: | for.swift:7:23:9:5 | { ... } | +| for.swift:13:5:17:5 | for ... in ... { ... } | getPattern: | for.swift:13:9:13:9 | x | getBody: | for.swift:13:32:17:5 | { ... } | getLabel getVariable | for.swift:4:5:6:5 | for ... in ... where ... { ... } | 0 | for.swift:4:9:4:9 | x | diff --git a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql index 043e77e5e45..8b9bcabc816 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/ForEachStmt/ForEachStmt.ql @@ -3,25 +3,13 @@ import codeql.swift.elements import TestUtils query predicate instances( - ForEachStmt x, string hasLabel__label, string hasLabel, string getNumberOfVariables__label, - int getNumberOfVariables, string getPattern__label, Pattern getPattern, string hasWhere__label, - string hasWhere, string hasIteratorVar__label, string hasIteratorVar, string hasNextCall__label, - string hasNextCall, string getBody__label, BraceStmt getBody + ForEachStmt x, string getPattern__label, Pattern getPattern, string getBody__label, + BraceStmt getBody ) { toBeTested(x) and not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and - getNumberOfVariables__label = "getNumberOfVariables:" and - getNumberOfVariables = x.getNumberOfVariables() and getPattern__label = "getPattern:" and getPattern = x.getPattern() and - hasWhere__label = "hasWhere:" and - (if x.hasWhere() then hasWhere = "yes" else hasWhere = "no") and - hasIteratorVar__label = "hasIteratorVar:" and - (if x.hasIteratorVar() then hasIteratorVar = "yes" else hasIteratorVar = "no") and - hasNextCall__label = "hasNextCall:" and - (if x.hasNextCall() then hasNextCall = "yes" else hasNextCall = "no") and getBody__label = "getBody:" and getBody = x.getBody() } diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected index 5f8b4bd6e34..981203c520d 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.expected @@ -1,17 +1,17 @@ instances -| switch.swift:3:9:3:9 | =~ ... | getPattern: | switch.swift:3:9:3:9 | =~ ... | hasGuard: | no | -| switch.swift:6:9:6:9 | =~ ... | getPattern: | switch.swift:6:9:6:9 | =~ ... | hasGuard: | no | -| switch.swift:6:12:6:12 | =~ ... | getPattern: | switch.swift:6:12:6:12 | =~ ... | hasGuard: | no | -| switch.swift:8:9:8:26 | x where ... | getPattern: | switch.swift:8:13:8:13 | x | hasGuard: | yes | -| switch.swift:10:4:10:4 | _ | getPattern: | switch.swift:10:4:10:4 | _ | hasGuard: | no | -| switch.swift:22:8:22:9 | .one | getPattern: | switch.swift:22:8:22:9 | .one | hasGuard: | no | -| switch.swift:24:8:24:40 | .two(...) where ... | getPattern: | switch.swift:24:8:24:25 | .two(...) | hasGuard: | yes | -| switch.swift:26:8:26:25 | .two(...) | getPattern: | switch.swift:26:8:26:25 | .two(...) | hasGuard: | no | -| switch.swift:28:8:28:23 | .three(...) | getPattern: | switch.swift:28:8:28:23 | .three(...) | hasGuard: | no | -| switch.swift:33:8:33:21 | .two(...) | getPattern: | switch.swift:33:8:33:21 | .two(...) | hasGuard: | no | -| switch.swift:35:13:35:13 | =~ ... | getPattern: | switch.swift:35:13:35:13 | =~ ... | hasGuard: | no | -| switch.swift:37:8:37:8 | _ | getPattern: | switch.swift:37:8:37:8 | _ | hasGuard: | no | -| switch.swift:40:3:40:3 | _ | getPattern: | switch.swift:40:3:40:3 | _ | hasGuard: | no | +| switch.swift:3:9:3:9 | =~ ... | getPattern: | switch.swift:3:9:3:9 | =~ ... | +| switch.swift:6:9:6:9 | =~ ... | getPattern: | switch.swift:6:9:6:9 | =~ ... | +| switch.swift:6:12:6:12 | =~ ... | getPattern: | switch.swift:6:12:6:12 | =~ ... | +| switch.swift:8:9:8:26 | x where ... | getPattern: | switch.swift:8:13:8:13 | x | +| switch.swift:10:4:10:4 | _ | getPattern: | switch.swift:10:4:10:4 | _ | +| switch.swift:22:8:22:9 | .one | getPattern: | switch.swift:22:8:22:9 | .one | +| switch.swift:24:8:24:40 | .two(...) where ... | getPattern: | switch.swift:24:8:24:25 | .two(...) | +| switch.swift:26:8:26:25 | .two(...) | getPattern: | switch.swift:26:8:26:25 | .two(...) | +| switch.swift:28:8:28:23 | .three(...) | getPattern: | switch.swift:28:8:28:23 | .three(...) | +| switch.swift:33:8:33:21 | .two(...) | getPattern: | switch.swift:33:8:33:21 | .two(...) | +| switch.swift:35:13:35:13 | =~ ... | getPattern: | switch.swift:35:13:35:13 | =~ ... | +| switch.swift:37:8:37:8 | _ | getPattern: | switch.swift:37:8:37:8 | _ | +| switch.swift:40:3:40:3 | _ | getPattern: | switch.swift:40:3:40:3 | _ | getGuard | switch.swift:8:9:8:26 | x where ... | switch.swift:8:21:8:26 | ... .>=(_:_:) ... | | switch.swift:24:8:24:40 | .two(...) where ... | switch.swift:24:33:24:40 | ... .==(_:_:) ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql index 9c4f6e85dde..6838d62dbae 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseLabelItem.ql @@ -2,16 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - CaseLabelItem x, string getPattern__label, Pattern getPattern, string hasGuard__label, - string hasGuard -) { +query predicate instances(CaseLabelItem x, string getPattern__label, Pattern getPattern) { toBeTested(x) and not x.isUnknown() and getPattern__label = "getPattern:" and - getPattern = x.getPattern() and - hasGuard__label = "hasGuard:" and - if x.hasGuard() then hasGuard = "yes" else hasGuard = "no" + getPattern = x.getPattern() } query predicate getGuard(CaseLabelItem x, Expr getGuard) { diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected index c00a1ba287d..52dd5204487 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.expected @@ -1,16 +1,16 @@ instances -| switch.swift:3:4:5:7 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:4:7:5:7 | { ... } | -| switch.swift:6:4:7:20 | case ... | getNumberOfLabels: | 2 | getNumberOfVariables: | 0 | getBody: | switch.swift:7:7:7:20 | { ... } | -| switch.swift:8:4:9:18 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 1 | getBody: | switch.swift:9:7:9:18 | { ... } | -| switch.swift:10:4:11:22 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:11:7:11:22 | { ... } | -| switch.swift:22:3:23:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:23:5:23:5 | { ... } | -| switch.swift:24:3:25:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 2 | getBody: | switch.swift:25:5:25:5 | { ... } | -| switch.swift:26:3:27:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 2 | getBody: | switch.swift:27:5:27:5 | { ... } | -| switch.swift:28:3:29:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 1 | getBody: | switch.swift:29:5:29:5 | { ... } | -| switch.swift:33:3:39:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 1 | getBody: | switch.swift:34:5:39:5 | { ... } | -| switch.swift:35:8:36:16 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:36:10:36:16 | { ... } | -| switch.swift:37:8:38:16 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:38:10:38:16 | { ... } | -| switch.swift:40:3:41:5 | case ... | getNumberOfLabels: | 1 | getNumberOfVariables: | 0 | getBody: | switch.swift:41:5:41:5 | { ... } | +| switch.swift:3:4:5:7 | case ... | getBody: | switch.swift:4:7:5:7 | { ... } | +| switch.swift:6:4:7:20 | case ... | getBody: | switch.swift:7:7:7:20 | { ... } | +| switch.swift:8:4:9:18 | case ... | getBody: | switch.swift:9:7:9:18 | { ... } | +| switch.swift:10:4:11:22 | case ... | getBody: | switch.swift:11:7:11:22 | { ... } | +| switch.swift:22:3:23:5 | case ... | getBody: | switch.swift:23:5:23:5 | { ... } | +| switch.swift:24:3:25:5 | case ... | getBody: | switch.swift:25:5:25:5 | { ... } | +| switch.swift:26:3:27:5 | case ... | getBody: | switch.swift:27:5:27:5 | { ... } | +| switch.swift:28:3:29:5 | case ... | getBody: | switch.swift:29:5:29:5 | { ... } | +| switch.swift:33:3:39:5 | case ... | getBody: | switch.swift:34:5:39:5 | { ... } | +| switch.swift:35:8:36:16 | case ... | getBody: | switch.swift:36:10:36:16 | { ... } | +| switch.swift:37:8:38:16 | case ... | getBody: | switch.swift:38:10:38:16 | { ... } | +| switch.swift:40:3:41:5 | case ... | getBody: | switch.swift:41:5:41:5 | { ... } | getLabel | switch.swift:3:4:5:7 | case ... | 0 | switch.swift:3:9:3:9 | =~ ... | | switch.swift:6:4:7:20 | case ... | 0 | switch.swift:6:9:6:9 | =~ ... | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql index e1b30f7ec9b..b248ecf3840 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/CaseStmt.ql @@ -2,16 +2,9 @@ import codeql.swift.elements import TestUtils -query predicate instances( - CaseStmt x, string getNumberOfLabels__label, int getNumberOfLabels, - string getNumberOfVariables__label, int getNumberOfVariables, string getBody__label, Stmt getBody -) { +query predicate instances(CaseStmt x, string getBody__label, Stmt getBody) { toBeTested(x) and not x.isUnknown() and - getNumberOfLabels__label = "getNumberOfLabels:" and - getNumberOfLabels = x.getNumberOfLabels() and - getNumberOfVariables__label = "getNumberOfVariables:" and - getNumberOfVariables = x.getNumberOfVariables() and getBody__label = "getBody:" and getBody = x.getBody() } diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected index 235550c775b..ad4fed60062 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.expected @@ -1,8 +1,8 @@ instances -| switch.swift:2:1:12:1 | switch index { ... } | hasLabel: | no | getExpr: | switch.swift:2:8:2:8 | index | getNumberOfCases: | 4 | -| switch.swift:21:1:30:1 | switch x { ... } | hasLabel: | no | getExpr: | switch.swift:21:8:21:8 | x | getNumberOfCases: | 4 | -| switch.swift:32:1:42:1 | switch x { ... } | hasLabel: | yes | getExpr: | switch.swift:32:15:32:15 | x | getNumberOfCases: | 2 | -| switch.swift:34:5:39:5 | switch a { ... } | hasLabel: | yes | getExpr: | switch.swift:34:19:34:19 | a | getNumberOfCases: | 2 | +| switch.swift:2:1:12:1 | switch index { ... } | getExpr: | switch.swift:2:8:2:8 | index | +| switch.swift:21:1:30:1 | switch x { ... } | getExpr: | switch.swift:21:8:21:8 | x | +| switch.swift:32:1:42:1 | switch x { ... } | getExpr: | switch.swift:32:15:32:15 | x | +| switch.swift:34:5:39:5 | switch a { ... } | getExpr: | switch.swift:34:19:34:19 | a | getLabel | switch.swift:32:1:42:1 | switch x { ... } | outer | | switch.swift:34:5:39:5 | switch a { ... } | inner | diff --git a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql index ebc79dacf4e..bd817bcb416 100644 --- a/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql +++ b/swift/ql/test/extractor-tests/generated/stmt/SwitchStmt/SwitchStmt.ql @@ -2,18 +2,11 @@ import codeql.swift.elements import TestUtils -query predicate instances( - SwitchStmt x, string hasLabel__label, string hasLabel, string getExpr__label, Expr getExpr, - string getNumberOfCases__label, int getNumberOfCases -) { +query predicate instances(SwitchStmt x, string getExpr__label, Expr getExpr) { toBeTested(x) and not x.isUnknown() and - hasLabel__label = "hasLabel:" and - (if x.hasLabel() then hasLabel = "yes" else hasLabel = "no") and getExpr__label = "getExpr:" and - getExpr = x.getExpr() and - getNumberOfCases__label = "getNumberOfCases:" and - getNumberOfCases = x.getNumberOfCases() + getExpr = x.getExpr() } query predicate getLabel(SwitchStmt x, string getLabel) { diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected index db9d4a652c5..7bc36b2f4e0 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.expected @@ -1,9 +1,9 @@ instances -| Builtin.Int8 | getName: | Int8 | getCanonicalType: | Builtin.Int8 | hasWidth: | yes | -| Builtin.Int16 | getName: | Int16 | getCanonicalType: | Builtin.Int16 | hasWidth: | yes | -| Builtin.Int32 | getName: | Int32 | getCanonicalType: | Builtin.Int32 | hasWidth: | yes | -| Builtin.Int64 | getName: | Int64 | getCanonicalType: | Builtin.Int64 | hasWidth: | yes | -| Builtin.Word | getName: | Word | getCanonicalType: | Builtin.Word | hasWidth: | no | +| Builtin.Int8 | getName: | Int8 | getCanonicalType: | Builtin.Int8 | +| Builtin.Int16 | getName: | Int16 | getCanonicalType: | Builtin.Int16 | +| Builtin.Int32 | getName: | Int32 | getCanonicalType: | Builtin.Int32 | +| Builtin.Int64 | getName: | Int64 | getCanonicalType: | Builtin.Int64 | +| Builtin.Word | getName: | Word | getCanonicalType: | Builtin.Word | getWidth | Builtin.Int8 | 8 | | Builtin.Int16 | 16 | diff --git a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql index 65c78478d15..47e8d4cfe5c 100644 --- a/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql +++ b/swift/ql/test/extractor-tests/generated/type/BuiltinIntegerType/BuiltinIntegerType.ql @@ -4,16 +4,14 @@ import TestUtils query predicate instances( BuiltinIntegerType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string hasWidth__label, string hasWidth + Type getCanonicalType ) { toBeTested(x) and not x.isUnknown() and getName__label = "getName:" and getName = x.getName() and getCanonicalType__label = "getCanonicalType:" and - getCanonicalType = x.getCanonicalType() and - hasWidth__label = "hasWidth:" and - if x.hasWidth() then hasWidth = "yes" else hasWidth = "no" + getCanonicalType = x.getCanonicalType() } query predicate getWidth(BuiltinIntegerType x, int getWidth) { diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected index c700d4be751..27dbc0ef445 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.expected @@ -1,8 +1,8 @@ instances -| some Base | getName: | some Base | getCanonicalType: | some Base | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | yes | getNumberOfProtocols: | 0 | getDeclaration: | file://:0:0:0:0 | _ | -| some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | -| some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | -| some SignedInteger | getName: | some SignedInteger | getCanonicalType: | some SignedInteger | getInterfaceType: | \u03c4_0_0 | hasSuperclass: | no | getNumberOfProtocols: | 1 | getDeclaration: | file://:0:0:0:0 | _ | +| some Base | getName: | some Base | getCanonicalType: | some Base | getInterfaceType: | \u03c4_1_0 | getDeclaration: | file://:0:0:0:0 | _ | +| some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | getDeclaration: | file://:0:0:0:0 | _ | +| some P | getName: | some P | getCanonicalType: | some P | getInterfaceType: | \u03c4_1_0 | getDeclaration: | file://:0:0:0:0 | _ | +| some SignedInteger | getName: | some SignedInteger | getCanonicalType: | some SignedInteger | getInterfaceType: | \u03c4_0_0 | getDeclaration: | file://:0:0:0:0 | _ | getSuperclass | some Base | Base | getProtocol diff --git a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql index 9e5aae9eeba..a3a9f5f8411 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/OpaqueTypeArchetypeType/OpaqueTypeArchetypeType.ql @@ -5,8 +5,7 @@ import TestUtils query predicate instances( OpaqueTypeArchetypeType x, string getName__label, string getName, string getCanonicalType__label, Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, - string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, - int getNumberOfProtocols, string getDeclaration__label, OpaqueTypeDecl getDeclaration + string getDeclaration__label, OpaqueTypeDecl getDeclaration ) { toBeTested(x) and not x.isUnknown() and @@ -16,10 +15,6 @@ query predicate instances( getCanonicalType = x.getCanonicalType() and getInterfaceType__label = "getInterfaceType:" and getInterfaceType = x.getInterfaceType() and - hasSuperclass__label = "hasSuperclass:" and - (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() and getDeclaration__label = "getDeclaration:" and getDeclaration = x.getDeclaration() } diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected index 88adae3da25..3400ffa5fdc 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.expected @@ -1,5 +1,5 @@ instances -| any C & P1 & P2 | getName: | any C & P1 & P2 | getCanonicalType: | any C & P1 & P2 | getInterfaceType: | \u03c4_0_0 | hasSuperclass: | yes | getNumberOfProtocols: | 2 | +| any C & P1 & P2 | getName: | any C & P1 & P2 | getCanonicalType: | any C & P1 & P2 | getInterfaceType: | \u03c4_0_0 | getSuperclass | any C & P1 & P2 | C | getProtocol diff --git a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql index c17fe10d5a4..2d5f19580a7 100644 --- a/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/OpenedArchetypeType/OpenedArchetypeType.ql @@ -4,9 +4,7 @@ import TestUtils query predicate instances( OpenedArchetypeType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, - string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, - int getNumberOfProtocols + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType ) { toBeTested(x) and not x.isUnknown() and @@ -15,11 +13,7 @@ query predicate instances( getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and getInterfaceType__label = "getInterfaceType:" and - getInterfaceType = x.getInterfaceType() and - hasSuperclass__label = "hasSuperclass:" and - (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() + getInterfaceType = x.getInterfaceType() } query predicate getSuperclass(OpenedArchetypeType x, Type getSuperclass) { diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected index 4b4b7087b89..de765f97081 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.expected @@ -1,5 +1,5 @@ instances -| \u03c4_1_0 | getName: | \u03c4_1_0 | getCanonicalType: | \u03c4_1_0 | getInterfaceType: | \u03c4_1_0 | hasSuperclass: | no | getNumberOfProtocols: | 2 | +| \u03c4_1_0 | getName: | \u03c4_1_0 | getCanonicalType: | \u03c4_1_0 | getInterfaceType: | \u03c4_1_0 | getSuperclass getProtocol | \u03c4_1_0 | 0 | file://:0:0:0:0 | Copyable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql index 25aff50f211..fb8b5e0f02e 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/ElementArchetypeType.ql @@ -4,9 +4,7 @@ import TestUtils query predicate instances( ElementArchetypeType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, - string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, - int getNumberOfProtocols + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType ) { toBeTested(x) and not x.isUnknown() and @@ -15,11 +13,7 @@ query predicate instances( getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and getInterfaceType__label = "getInterfaceType:" and - getInterfaceType = x.getInterfaceType() and - hasSuperclass__label = "hasSuperclass:" and - (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() + getInterfaceType = x.getInterfaceType() } query predicate getSuperclass(ElementArchetypeType x, Type getSuperclass) { diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected index 3bfdff36c41..564700dd68d 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.expected @@ -1,6 +1,6 @@ instances -| each Arg | getName: | each Arg | getCanonicalType: | each Arg | getInterfaceType: | each Arg | hasSuperclass: | no | getNumberOfProtocols: | 2 | -| each T | getName: | each T | getCanonicalType: | each T | getInterfaceType: | each T | hasSuperclass: | no | getNumberOfProtocols: | 2 | +| each Arg | getName: | each Arg | getCanonicalType: | each Arg | getInterfaceType: | each Arg | +| each T | getName: | each T | getCanonicalType: | each T | getInterfaceType: | each T | getSuperclass getProtocol | each Arg | 0 | file://:0:0:0:0 | Copyable | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql index 279d7f1bba0..e66b73e0f77 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackArchetypeType.ql @@ -4,9 +4,7 @@ import TestUtils query predicate instances( PackArchetypeType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, - string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, - int getNumberOfProtocols + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType ) { toBeTested(x) and not x.isUnknown() and @@ -15,11 +13,7 @@ query predicate instances( getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and getInterfaceType__label = "getInterfaceType:" and - getInterfaceType = x.getInterfaceType() and - hasSuperclass__label = "hasSuperclass:" and - (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() + getInterfaceType = x.getInterfaceType() } query predicate getSuperclass(PackArchetypeType x, Type getSuperclass) { diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected index 17c5639053f..96fc0c165bb 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.expected @@ -1,5 +1,5 @@ instances -| Pack{String, Int} | getName: | Pack{String, Int} | getCanonicalType: | Pack{String, Int} | getNumberOfElements: | 2 | +| Pack{String, Int} | getName: | Pack{String, Int} | getCanonicalType: | Pack{String, Int} | getElement | Pack{String, Int} | 0 | String | | Pack{String, Int} | 1 | Int | diff --git a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql index 26a787908f6..bbdd989ed59 100644 --- a/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PackType/PackType.ql @@ -4,16 +4,14 @@ import TestUtils query predicate instances( PackType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getNumberOfElements__label, int getNumberOfElements + Type getCanonicalType ) { toBeTested(x) and not x.isUnknown() and getName__label = "getName:" and getName = x.getName() and getCanonicalType__label = "getCanonicalType:" and - getCanonicalType = x.getCanonicalType() and - getNumberOfElements__label = "getNumberOfElements:" and - getNumberOfElements = x.getNumberOfElements() + getCanonicalType = x.getCanonicalType() } query predicate getElement(PackType x, int index, Type getElement) { diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected index efc7ef07fa2..71292b2a41d 100644 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.expected @@ -1,21 +1,21 @@ instances -| P | getName: | P | getCanonicalType: | P | getBase: | P | getNumberOfArgs: | 2 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | -| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getNumberOfArgs: | 1 | +| P | getName: | P | getCanonicalType: | P | getBase: | P | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | +| RawRepresentable | getName: | RawRepresentable | getCanonicalType: | RawRepresentable | getBase: | RawRepresentable | getArg | P | 0 | Int | | P | 1 | String | diff --git a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql index 7bbf5794693..839b1aa9c92 100644 --- a/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ParameterizedProtocolType/ParameterizedProtocolType.ql @@ -4,8 +4,7 @@ import TestUtils query predicate instances( ParameterizedProtocolType x, string getName__label, string getName, - string getCanonicalType__label, Type getCanonicalType, string getBase__label, - ProtocolType getBase, string getNumberOfArgs__label, int getNumberOfArgs + string getCanonicalType__label, Type getCanonicalType, string getBase__label, ProtocolType getBase ) { toBeTested(x) and not x.isUnknown() and @@ -14,9 +13,7 @@ query predicate instances( getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and getBase__label = "getBase:" and - getBase = x.getBase() and - getNumberOfArgs__label = "getNumberOfArgs:" and - getNumberOfArgs = x.getNumberOfArgs() + getBase = x.getBase() } query predicate getArg(ParameterizedProtocolType x, int index, Type getArg) { diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected index 1382d4439e2..6874035ae54 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.expected @@ -1,12 +1,12 @@ instances -| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | no | getNumberOfProtocols: | 1 | -| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | no | getNumberOfProtocols: | 1 | -| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | yes | getNumberOfProtocols: | 0 | -| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | hasSuperclass: | yes | getNumberOfProtocols: | 0 | -| Param | getName: | Param | getCanonicalType: | Param | getInterfaceType: | Param | hasSuperclass: | no | getNumberOfProtocols: | 2 | -| ParamWithProtocols | getName: | ParamWithProtocols | getCanonicalType: | ParamWithProtocols | getInterfaceType: | ParamWithProtocols | hasSuperclass: | no | getNumberOfProtocols: | 2 | -| ParamWithSuperclass | getName: | ParamWithSuperclass | getCanonicalType: | ParamWithSuperclass | getInterfaceType: | ParamWithSuperclass | hasSuperclass: | yes | getNumberOfProtocols: | 0 | -| ParamWithSuperclassAndProtocols | getName: | ParamWithSuperclassAndProtocols | getCanonicalType: | ParamWithSuperclassAndProtocols | getInterfaceType: | ParamWithSuperclassAndProtocols | hasSuperclass: | yes | getNumberOfProtocols: | 2 | +| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | +| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | +| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | +| Base | getName: | Base | getCanonicalType: | Base | getInterfaceType: | Base | +| Param | getName: | Param | getCanonicalType: | Param | getInterfaceType: | Param | +| ParamWithProtocols | getName: | ParamWithProtocols | getCanonicalType: | ParamWithProtocols | getInterfaceType: | ParamWithProtocols | +| ParamWithSuperclass | getName: | ParamWithSuperclass | getCanonicalType: | ParamWithSuperclass | getInterfaceType: | ParamWithSuperclass | +| ParamWithSuperclassAndProtocols | getName: | ParamWithSuperclassAndProtocols | getCanonicalType: | ParamWithSuperclassAndProtocols | getInterfaceType: | ParamWithSuperclassAndProtocols | getSuperclass | Base | S | | Base | S2 | diff --git a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql index f91f41253e9..4d9ff951f79 100644 --- a/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql +++ b/swift/ql/test/extractor-tests/generated/type/PrimaryArchetypeType/PrimaryArchetypeType.ql @@ -4,9 +4,7 @@ import TestUtils query predicate instances( PrimaryArchetypeType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType, - string hasSuperclass__label, string hasSuperclass, string getNumberOfProtocols__label, - int getNumberOfProtocols + Type getCanonicalType, string getInterfaceType__label, Type getInterfaceType ) { toBeTested(x) and not x.isUnknown() and @@ -15,11 +13,7 @@ query predicate instances( getCanonicalType__label = "getCanonicalType:" and getCanonicalType = x.getCanonicalType() and getInterfaceType__label = "getInterfaceType:" and - getInterfaceType = x.getInterfaceType() and - hasSuperclass__label = "hasSuperclass:" and - (if x.hasSuperclass() then hasSuperclass = "yes" else hasSuperclass = "no") and - getNumberOfProtocols__label = "getNumberOfProtocols:" and - getNumberOfProtocols = x.getNumberOfProtocols() + getInterfaceType = x.getInterfaceType() } query predicate getSuperclass(PrimaryArchetypeType x, Type getSuperclass) { diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected index 41ed05fc067..869e4caeb26 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.expected @@ -1,7 +1,7 @@ instances -| P1 & P2 & P3 | getName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | getNumberOfMembers: | 3 | -| P1 & P23 | getName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | getNumberOfMembers: | 2 | -| P2 & P4 | getName: | P2 & P4 | getCanonicalType: | P2 & P4 | getNumberOfMembers: | 2 | +| P1 & P2 & P3 | getName: | P1 & P2 & P3 | getCanonicalType: | P1 & P2 & P3 | +| P1 & P23 | getName: | P1 & P23 | getCanonicalType: | P1 & P2 & P3 | +| P2 & P4 | getName: | P2 & P4 | getCanonicalType: | P2 & P4 | getMember | P1 & P2 & P3 | 0 | P1 | | P1 & P2 & P3 | 1 | P2 | diff --git a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql index 8513b85251e..6e27ea1d9a1 100644 --- a/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql +++ b/swift/ql/test/extractor-tests/generated/type/ProtocolCompositionType/ProtocolCompositionType.ql @@ -4,16 +4,14 @@ import TestUtils query predicate instances( ProtocolCompositionType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getNumberOfMembers__label, int getNumberOfMembers + Type getCanonicalType ) { toBeTested(x) and not x.isUnknown() and getName__label = "getName:" and getName = x.getName() and getCanonicalType__label = "getCanonicalType:" and - getCanonicalType = x.getCanonicalType() and - getNumberOfMembers__label = "getNumberOfMembers:" and - getNumberOfMembers = x.getNumberOfMembers() + getCanonicalType = x.getCanonicalType() } query predicate getMember(ProtocolCompositionType x, int index, Type getMember) { diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected index 13d906d36c2..1e2b58f226d 100644 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected +++ b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.expected @@ -1,10 +1,10 @@ instances -| (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | getNumberOfTypes: | 2 | -| (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | getNumberOfTypes: | 2 | -| (Int, Int, Int, Int, Int) | getName: | (Int, Int, Int, Int, Int) | getCanonicalType: | (Int, Int, Int, Int, Int) | getNumberOfTypes: | 5 | -| (Int, String, Double) | getName: | (Int, String, Double) | getCanonicalType: | (Int, String, Double) | getNumberOfTypes: | 3 | -| (Int, s: String, Double) | getName: | (Int, s: String, Double) | getCanonicalType: | (Int, s: String, Double) | getNumberOfTypes: | 3 | -| (x: Int, y: Int) | getName: | (x: Int, y: Int) | getCanonicalType: | (x: Int, y: Int) | getNumberOfTypes: | 2 | +| (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | +| (Builtin.IntLiteral, Builtin.IntLiteral) | getName: | (IntLiteral, IntLiteral) | getCanonicalType: | (Builtin.IntLiteral, Builtin.IntLiteral) | +| (Int, Int, Int, Int, Int) | getName: | (Int, Int, Int, Int, Int) | getCanonicalType: | (Int, Int, Int, Int, Int) | +| (Int, String, Double) | getName: | (Int, String, Double) | getCanonicalType: | (Int, String, Double) | +| (Int, s: String, Double) | getName: | (Int, s: String, Double) | getCanonicalType: | (Int, s: String, Double) | +| (x: Int, y: Int) | getName: | (x: Int, y: Int) | getCanonicalType: | (x: Int, y: Int) | getType | (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | | (Builtin.IntLiteral, Builtin.IntLiteral) | 0 | Builtin.IntLiteral | diff --git a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql index f03c545171e..9d301e217a4 100644 --- a/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql +++ b/swift/ql/test/extractor-tests/generated/type/TupleType/TupleType.ql @@ -4,16 +4,14 @@ import TestUtils query predicate instances( TupleType x, string getName__label, string getName, string getCanonicalType__label, - Type getCanonicalType, string getNumberOfTypes__label, int getNumberOfTypes + Type getCanonicalType ) { toBeTested(x) and not x.isUnknown() and getName__label = "getName:" and getName = x.getName() and getCanonicalType__label = "getCanonicalType:" and - getCanonicalType = x.getCanonicalType() and - getNumberOfTypes__label = "getNumberOfTypes:" and - getNumberOfTypes = x.getNumberOfTypes() + getCanonicalType = x.getCanonicalType() } query predicate getType(TupleType x, int index, Type getType) { From a9ddf0026baadcc161b391e5d2d1eddb3bb61ac7 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Fri, 6 Jun 2025 18:06:13 +0100 Subject: [PATCH 304/340] Ruby: generate overlay discard predicates --- ruby/extractor/src/extractor.rs | 1 - .../codeql/ruby/ast/internal/TreeSitter.qll | 52 +++++ .../src/generator/mod.rs | 29 ++- .../tree-sitter-extractor/src/generator/ql.rs | 25 +++ .../src/generator/ql_gen.rs | 183 ++++++++++++++++++ 5 files changed, 287 insertions(+), 3 deletions(-) diff --git a/ruby/extractor/src/extractor.rs b/ruby/extractor/src/extractor.rs index 7a78bbdd1ae..6807d09e9be 100644 --- a/ruby/extractor/src/extractor.rs +++ b/ruby/extractor/src/extractor.rs @@ -2,7 +2,6 @@ use clap::Args; use codeql_extractor::file_paths::PathTransformer; use lazy_static::lazy_static; use rayon::prelude::*; -use serde_json; use std::borrow::Cow; use std::collections::HashSet; use std::fs; diff --git a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll index e339b07d35b..3532a5d2a21 100644 --- a/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll +++ b/ruby/ql/lib/codeql/ruby/ast/internal/TreeSitter.qll @@ -5,6 +5,10 @@ import codeql.Locations as L +/** Holds if the database is an overlay. */ +overlay[local] +private predicate isOverlay() { databaseMetadata("isOverlay", "true") } + module Ruby { /** The base class for all AST nodes */ class AstNode extends @ruby_ast_node { @@ -48,6 +52,30 @@ module Ruby { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@ruby_ast_node node) { + exists(@location_default loc | ruby_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @ruby_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@ruby_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + class UnderscoreArg extends @ruby_underscore_arg, AstNode { } class UnderscoreCallOperator extends @ruby_underscore_call_operator, AstNode { } @@ -1970,6 +1998,30 @@ module Erb { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@erb_ast_node node) { + exists(@location_default loc | erb_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @erb_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@erb_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + /** A class representing `code` tokens. */ class Code extends @erb_token_code, Token { /** Gets the name of the primary QL class for this element. */ diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index cb35f7ab768..fc0abc7f273 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -17,7 +17,7 @@ pub fn generate( languages: Vec, dbscheme_path: PathBuf, ql_library_path: PathBuf, - add_metadata_relation: bool, + overlay_support: bool, ) -> std::io::Result<()> { let dbscheme_file = File::create(dbscheme_path).map_err(|e| { tracing::error!("Failed to create dbscheme file: {}", e); @@ -35,7 +35,7 @@ pub fn generate( // Eventually all languages will have the metadata relation (for overlay support), at which // point this could be moved to prefix.dbscheme. - if add_metadata_relation { + if overlay_support { writeln!(dbscheme_writer, "/*- Database metadata -*/",)?; dbscheme::write( &mut dbscheme_writer, @@ -60,6 +60,15 @@ pub fn generate( })], )?; + if overlay_support { + ql::write( + &mut ql_writer, + &[ql::TopLevel::Predicate( + ql_gen::create_is_overlay_predicate(), + )], + )?; + } + for language in languages { let prefix = node_types::to_snake_case(&language.name); let ast_node_name = format!("{}_ast_node", &prefix); @@ -103,6 +112,22 @@ pub fn generate( ql::TopLevel::Class(ql_gen::create_token_class(&token_name, &tokeninfo_name)), ql::TopLevel::Class(ql_gen::create_reserved_word_class(&reserved_word_name)), ]; + + if overlay_support { + body.push(ql::TopLevel::Predicate( + ql_gen::create_get_node_file_predicate(&ast_node_name, &node_location_table_name), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discard_file_predicate(), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discardable_ast_node_predicate(&ast_node_name), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discard_ast_node_predicate(&ast_node_name), + )); + } + body.append(&mut ql_gen::convert_nodes(&nodes)); ql::write( &mut ql_writer, diff --git a/shared/tree-sitter-extractor/src/generator/ql.rs b/shared/tree-sitter-extractor/src/generator/ql.rs index 8e899462ac3..e4c87b61bdb 100644 --- a/shared/tree-sitter-extractor/src/generator/ql.rs +++ b/shared/tree-sitter-extractor/src/generator/ql.rs @@ -6,6 +6,7 @@ pub enum TopLevel<'a> { Class(Class<'a>), Import(Import<'a>), Module(Module<'a>), + Predicate(Predicate<'a>), } impl fmt::Display for TopLevel<'_> { @@ -14,6 +15,7 @@ impl fmt::Display for TopLevel<'_> { TopLevel::Import(imp) => write!(f, "{}", imp), TopLevel::Class(cls) => write!(f, "{}", cls), TopLevel::Module(m) => write!(f, "{}", m), + TopLevel::Predicate(pred) => write!(f, "{}", pred), } } } @@ -68,10 +70,12 @@ impl fmt::Display for Class<'_> { qldoc: None, name: self.name, overridden: false, + is_private: false, is_final: false, return_type: None, formal_parameters: vec![], body: charpred.clone(), + overlay: None, } )?; } @@ -150,6 +154,7 @@ pub enum Expression<'a> { expr: Box>, second_expr: Option>>, }, + Negation(Box>), } impl fmt::Display for Expression<'_> { @@ -231,19 +236,28 @@ impl fmt::Display for Expression<'_> { } write!(f, ")") } + Expression::Negation(e) => write!(f, "not ({})", e), } } } +#[derive(Clone, Eq, PartialEq, Hash)] +pub enum OverlayAnnotation { + Local, + DiscardEntity, +} + #[derive(Clone, Eq, PartialEq, Hash)] pub struct Predicate<'a> { pub qldoc: Option, pub name: &'a str, pub overridden: bool, + pub is_private: bool, pub is_final: bool, pub return_type: Option>, pub formal_parameters: Vec>, pub body: Expression<'a>, + pub overlay: Option, } impl fmt::Display for Predicate<'_> { @@ -251,6 +265,17 @@ impl fmt::Display for Predicate<'_> { if let Some(qldoc) = &self.qldoc { write!(f, "/** {} */", qldoc)?; } + if let Some(overlay_annotation) = &self.overlay { + write!(f, "overlay[")?; + match overlay_annotation { + OverlayAnnotation::Local => write!(f, "local")?, + OverlayAnnotation::DiscardEntity => write!(f, "discard_entity")?, + } + write!(f, "] ")?; + } + if self.is_private { + write!(f, "private ")?; + } if self.is_final { write!(f, "final ")?; } diff --git a/shared/tree-sitter-extractor/src/generator/ql_gen.rs b/shared/tree-sitter-extractor/src/generator/ql_gen.rs index 919ff43af42..b5853410c1d 100644 --- a/shared/tree-sitter-extractor/src/generator/ql_gen.rs +++ b/shared/tree-sitter-extractor/src/generator/ql_gen.rs @@ -16,6 +16,7 @@ pub fn create_ast_node_class<'a>( )), name: "toString", overridden: false, + is_private: false, is_final: false, return_type: Some(ql::Type::String), formal_parameters: vec![], @@ -27,11 +28,13 @@ pub fn create_ast_node_class<'a>( vec![], )), ), + overlay: None, }; let get_location = ql::Predicate { name: "getLocation", qldoc: Some(String::from("Gets the location of this element.")), overridden: false, + is_private: false, is_final: true, return_type: Some(ql::Type::Normal("L::Location")), formal_parameters: vec![], @@ -39,6 +42,7 @@ pub fn create_ast_node_class<'a>( node_location_table, vec![ql::Expression::Var("this"), ql::Expression::Var("result")], ), + overlay: None, }; let get_a_field_or_child = create_none_predicate( Some(String::from("Gets a field or child node of this node.")), @@ -50,6 +54,7 @@ pub fn create_ast_node_class<'a>( qldoc: Some(String::from("Gets the parent of this element.")), name: "getParent", overridden: false, + is_private: false, is_final: true, return_type: Some(ql::Type::Normal("AstNode")), formal_parameters: vec![], @@ -61,6 +66,7 @@ pub fn create_ast_node_class<'a>( ql::Expression::Var("_"), ], ), + overlay: None, }; let get_parent_index = ql::Predicate { qldoc: Some(String::from( @@ -68,6 +74,7 @@ pub fn create_ast_node_class<'a>( )), name: "getParentIndex", overridden: false, + is_private: false, is_final: true, return_type: Some(ql::Type::Int), formal_parameters: vec![], @@ -79,6 +86,7 @@ pub fn create_ast_node_class<'a>( ql::Expression::Var("result"), ], ), + overlay: None, }; let get_a_primary_ql_class = ql::Predicate { qldoc: Some(String::from( @@ -86,6 +94,7 @@ pub fn create_ast_node_class<'a>( )), name: "getAPrimaryQlClass", overridden: false, + is_private: false, is_final: false, return_type: Some(ql::Type::String), formal_parameters: vec![], @@ -93,6 +102,7 @@ pub fn create_ast_node_class<'a>( Box::new(ql::Expression::Var("result")), Box::new(ql::Expression::String("???")), ), + overlay: None, }; let get_primary_ql_classes = ql::Predicate { qldoc: Some( @@ -102,6 +112,7 @@ pub fn create_ast_node_class<'a>( ), name: "getPrimaryQlClasses", overridden: false, + is_private: false, is_final: false, return_type: Some(ql::Type::String), formal_parameters: vec![], @@ -119,6 +130,7 @@ pub fn create_ast_node_class<'a>( second_expr: Some(Box::new(ql::Expression::String(","))), }), ), + overlay: None, }; ql::Class { qldoc: Some(String::from("The base class for all AST nodes")), @@ -144,10 +156,12 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl qldoc: Some(String::from("Gets the value of this token.")), name: "getValue", overridden: false, + is_private: false, is_final: true, return_type: Some(ql::Type::String), formal_parameters: vec![], body: create_get_field_expr_for_column_storage("result", tokeninfo, 1, tokeninfo_arity), + overlay: None, }; let to_string = ql::Predicate { qldoc: Some(String::from( @@ -155,6 +169,7 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl )), name: "toString", overridden: true, + is_private: false, is_final: true, return_type: Some(ql::Type::String), formal_parameters: vec![], @@ -166,6 +181,7 @@ pub fn create_token_class<'a>(token_type: &'a str, tokeninfo: &'a str) -> ql::Cl vec![], )), ), + overlay: None, }; ql::Class { qldoc: Some(String::from("A token.")), @@ -210,10 +226,12 @@ fn create_none_predicate<'a>( qldoc, name, overridden, + is_private: false, is_final: false, return_type, formal_parameters: Vec::new(), body: ql::Expression::Pred("none", vec![]), + overlay: None, } } @@ -226,6 +244,7 @@ fn create_get_a_primary_ql_class(class_name: &str, is_final: bool) -> ql::Predic )), name: "getAPrimaryQlClass", overridden: true, + is_private: false, is_final, return_type: Some(ql::Type::String), formal_parameters: vec![], @@ -233,6 +252,166 @@ fn create_get_a_primary_ql_class(class_name: &str, is_final: bool) -> ql::Predic Box::new(ql::Expression::Var("result")), Box::new(ql::Expression::String(class_name)), ), + overlay: None, + } +} + +pub fn create_is_overlay_predicate() -> ql::Predicate<'static> { + ql::Predicate { + name: "isOverlay", + qldoc: Some(String::from("Holds if the database is an overlay.")), + overridden: false, + is_private: true, + is_final: false, + return_type: None, + overlay: Some(ql::OverlayAnnotation::Local), + formal_parameters: vec![], + body: ql::Expression::Pred( + "databaseMetadata", + vec![ + ql::Expression::String("isOverlay"), + ql::Expression::String("true"), + ], + ), + } +} + +pub fn create_get_node_file_predicate<'a>( + ast_node_name: &'a str, + node_location_table_name: &'a str, +) -> ql::Predicate<'a> { + ql::Predicate { + name: "getNodeFile", + qldoc: Some(String::from("Gets the file containing the given `node`.")), + overridden: false, + is_private: true, + is_final: false, + overlay: Some(ql::OverlayAnnotation::Local), + return_type: Some(ql::Type::At("file")), + formal_parameters: vec![ql::FormalParameter { + name: "node", + param_type: ql::Type::At(ast_node_name), + }], + body: ql::Expression::Aggregate { + name: "exists", + vars: vec![ql::FormalParameter { + name: "loc", + param_type: ql::Type::At("location_default"), + }], + range: Some(Box::new(ql::Expression::Pred( + node_location_table_name, + vec![ql::Expression::Var("node"), ql::Expression::Var("loc")], + ))), + expr: Box::new(ql::Expression::Pred( + "locations_default", + vec![ + ql::Expression::Var("loc"), + ql::Expression::Var("result"), + ql::Expression::Var("_"), + ql::Expression::Var("_"), + ql::Expression::Var("_"), + ql::Expression::Var("_"), + ], + )), + second_expr: None, + }, + } +} + +pub fn create_discard_file_predicate<'a>() -> ql::Predicate<'a> { + ql::Predicate { + name: "discardFile", + qldoc: Some(String::from( + "Holds if `file` was extracted as part of the overlay database.", + )), + overridden: false, + is_private: true, + is_final: false, + overlay: Some(ql::OverlayAnnotation::Local), + return_type: None, + formal_parameters: vec![ql::FormalParameter { + name: "file", + param_type: ql::Type::At("file"), + }], + body: ql::Expression::And(vec![ + ql::Expression::Pred("isOverlay", vec![]), + ql::Expression::Equals( + Box::new(ql::Expression::Var("file")), + Box::new(ql::Expression::Pred( + "getNodeFile", + vec![ql::Expression::Var("_")], + )), + ), + ]), + } +} + +pub fn create_discardable_ast_node_predicate(ast_node_name: &str) -> ql::Predicate { + ql::Predicate { + name: "discardableAstNode", + qldoc: Some(String::from( + "Holds if `node` is in the `file` and is part of the overlay base database.", + )), + overridden: false, + is_private: true, + is_final: false, + overlay: Some(ql::OverlayAnnotation::Local), + return_type: None, + formal_parameters: vec![ + ql::FormalParameter { + name: "file", + param_type: ql::Type::At("file"), + }, + ql::FormalParameter { + name: "node", + param_type: ql::Type::At(ast_node_name), + }, + ], + body: ql::Expression::And(vec![ + ql::Expression::Negation(Box::new(ql::Expression::Pred("isOverlay", vec![]))), + ql::Expression::Equals( + Box::new(ql::Expression::Var("file")), + Box::new(ql::Expression::Pred( + "getNodeFile", + vec![ql::Expression::Var("node")], + )), + ), + ]), + } +} + +pub fn create_discard_ast_node_predicate(ast_node_name: &str) -> ql::Predicate { + ql::Predicate { + name: "discardAstNode", + qldoc: Some(String::from( + "Holds if `node` should be discarded, because it is part of the overlay base \ + and is in a file that was also extracted as part of the overlay database.", + )), + overridden: false, + is_private: true, + is_final: false, + overlay: Some(ql::OverlayAnnotation::DiscardEntity), + return_type: None, + formal_parameters: vec![ql::FormalParameter { + name: "node", + param_type: ql::Type::At(ast_node_name), + }], + body: ql::Expression::Aggregate { + name: "exists", + vars: vec![ql::FormalParameter { + name: "file", + param_type: ql::Type::At("file"), + }], + range: None, + expr: Box::new(ql::Expression::And(vec![ + ql::Expression::Pred( + "discardableAstNode", + vec![ql::Expression::Var("file"), ql::Expression::Var("node")], + ), + ql::Expression::Pred("discardFile", vec![ql::Expression::Var("file")]), + ])), + second_expr: None, + }, } } @@ -435,10 +614,12 @@ fn create_field_getters<'a>( qldoc: Some(qldoc), name: &field.getter_name, overridden: false, + is_private: false, is_final: true, return_type, formal_parameters, body, + overlay: None, }, optional_expr, ) @@ -548,10 +729,12 @@ pub fn convert_nodes(nodes: &node_types::NodeTypeMap) -> Vec { qldoc: Some(String::from("Gets a field or child node of this node.")), name: "getAFieldOrChild", overridden: true, + is_private: false, is_final: true, return_type: Some(ql::Type::Normal("AstNode")), formal_parameters: vec![], body: ql::Expression::Or(get_child_exprs), + overlay: None, }); classes.push(ql::TopLevel::Class(main_class)); From 1f66f902e568a17876f5bfed8816eb0ebed98210 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Jun 2025 14:08:51 +0200 Subject: [PATCH 305/340] Rust: fix parallel execution of tests using the nightly toolchain Since we dropped checked in toolchain files for tests requiring nightly, the `setup.sh` script was not doing its job of setting up the toolchains and the `rust-src` component, occasionally leading to test failures. --- rust/extractor/BUILD.bazel | 5 ++++- .../src/nightly-toolchain/rust-toolchain.toml | 3 +++ rust/extractor/src/qltest.rs | 3 +-- rust/ql/test/setup.sh | 13 +++++-------- 4 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 rust/extractor/src/nightly-toolchain/rust-toolchain.toml diff --git a/rust/extractor/BUILD.bazel b/rust/extractor/BUILD.bazel index fe5d8e50859..52b551f6335 100644 --- a/rust/extractor/BUILD.bazel +++ b/rust/extractor/BUILD.bazel @@ -7,7 +7,10 @@ codeql_rust_binary( name = "extractor", srcs = glob(["src/**/*.rs"]), aliases = aliases(), - compile_data = ["src/qltest_cargo.mustache"], + compile_data = [ + "src/qltest_cargo.mustache", + "src/nightly-toolchain/rust-toolchain.toml", + ], proc_macro_deps = all_crate_deps( proc_macro = True, ) + [ diff --git a/rust/extractor/src/nightly-toolchain/rust-toolchain.toml b/rust/extractor/src/nightly-toolchain/rust-toolchain.toml new file mode 100644 index 00000000000..7ed21df9121 --- /dev/null +++ b/rust/extractor/src/nightly-toolchain/rust-toolchain.toml @@ -0,0 +1,3 @@ +[toolchain] +channel = "nightly-2025-06-01" +components = [ "rust-src" ] diff --git a/rust/extractor/src/qltest.rs b/rust/extractor/src/qltest.rs index f989ecf2eaa..92ed9d62505 100644 --- a/rust/extractor/src/qltest.rs +++ b/rust/extractor/src/qltest.rs @@ -9,7 +9,6 @@ use std::process::Command; use tracing::info; const EDITION: &str = "2021"; -const NIGHTLY: &str = "nightly-2025-06-01"; fn dump_lib() -> anyhow::Result<()> { let path_iterator = glob("*.rs").context("globbing test sources")?; @@ -76,7 +75,7 @@ fn dump_cargo_manifest(dependencies: &[String]) -> anyhow::Result<()> { fn dump_nightly_toolchain() -> anyhow::Result<()> { fs::write( "rust-toolchain.toml", - format!("[toolchain]\nchannel = \"{NIGHTLY}\"\n"), + include_str!("nightly-toolchain/rust-toolchain.toml"), ) .context("writing rust-toolchain.toml")?; Ok(()) diff --git a/rust/ql/test/setup.sh b/rust/ql/test/setup.sh index f087e7bc32b..1d7feb284ed 100755 --- a/rust/ql/test/setup.sh +++ b/rust/ql/test/setup.sh @@ -5,14 +5,11 @@ set -euo pipefail # This script is run by the CI to set up the test environment for the Rust QL tests # We run this as rustup is not meant to be run in parallel, and will this setup will be run by rust-analyzer in the # parallel QL tests unless we do the setup prior to launching the tests. -# We do this for each `rust-toolchain.toml` we use in the tests (and the root one in `rust` last, so it becomes the -# default). +# no need to install rust-src explicitly, it's listed in both toolchains cd "$(dirname "$0")" - -find . -name rust-toolchain.toml \ - -execdir rustup install \; \ - -execdir rustup component add rust-src \; - -# no to install rust-src explicitly, it's listed in ql/rust/rust-toolchain.toml +pushd ../../extractor/src/nightly-toolchain +rustup install +popd +# this needs to be last to set the default toolchain rustup install From fa006e3ea507d6b8864a7beaa6d6b97e863878c0 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Jun 2025 14:17:14 +0200 Subject: [PATCH 306/340] Rust: fix test --- .../test/extractor-tests/generated/Function/Function.expected | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/ql/test/extractor-tests/generated/Function/Function.expected b/rust/ql/test/extractor-tests/generated/Function/Function.expected index f2df1f154b4..4c5e331252d 100644 --- a/rust/ql/test/extractor-tests/generated/Function/Function.expected +++ b/rust/ql/test/extractor-tests/generated/Function/Function.expected @@ -1,6 +1,6 @@ instances -| gen_function.rs:3:1:4:38 | fn foo | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | -| gen_function.rs:7:5:7:13 | fn bar | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | +| gen_function.rs:3:1:4:38 | fn foo | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasImplementation: | yes | +| gen_function.rs:7:5:7:13 | fn bar | isAsync: | no | isConst: | no | isDefault: | no | isGen: | no | isUnsafe: | no | hasImplementation: | no | getParamList | gen_function.rs:3:1:4:38 | fn foo | gen_function.rs:4:7:4:14 | ParamList | | gen_function.rs:7:5:7:13 | fn bar | gen_function.rs:7:11:7:12 | ParamList | From 6a0140d3c960ecfbeddbe9b82227f5ff4a4f1697 Mon Sep 17 00:00:00 2001 From: Paolo Tranquilli Date: Wed, 25 Jun 2025 14:42:03 +0200 Subject: [PATCH 307/340] Rust: fix `Const` test --- rust/ql/test/extractor-tests/generated/Const/Const.expected | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/ql/test/extractor-tests/generated/Const/Const.expected b/rust/ql/test/extractor-tests/generated/Const/Const.expected index 9dd51311bc4..64b20c95e26 100644 --- a/rust/ql/test/extractor-tests/generated/Const/Const.expected +++ b/rust/ql/test/extractor-tests/generated/Const/Const.expected @@ -1,5 +1,5 @@ instances -| gen_const.rs:4:5:7:22 | Const | isConst: | yes | isDefault: | no | +| gen_const.rs:4:5:7:22 | Const | isConst: | yes | isDefault: | no | hasImplementation: | yes | getExtendedCanonicalPath getCrateOrigin getAttributeMacroExpansion From 9021168725c4c5f15d1bd00b175d27535bbed5b5 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Wed, 25 Jun 2025 15:10:15 +0100 Subject: [PATCH 308/340] QL: fix stats-collection workflow --- .github/workflows/ql-for-ql-dataset_measure.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ql-for-ql-dataset_measure.yml b/.github/workflows/ql-for-ql-dataset_measure.yml index d133eb0ad35..c3441ffa407 100644 --- a/.github/workflows/ql-for-ql-dataset_measure.yml +++ b/.github/workflows/ql-for-ql-dataset_measure.yml @@ -53,7 +53,7 @@ jobs: - name: Create database run: | "${CODEQL}" database create \ - --search-path "${{ github.workspace }}" + --search-path "${{ github.workspace }}" \ --threads 4 \ --language ql --source-root "${{ github.workspace }}/repo" \ "${{ runner.temp }}/database" From 57b866bbe147da8a7c5876f8afb99a4a5e633507 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Wed, 25 Jun 2025 12:34:06 +0100 Subject: [PATCH 309/340] Ruby/Rust/QL: move databaseMetadata to prefix.dbscheme This has no effect on ruby.dbscheme, and adds the relation to ql.dbscheme and rust.dbscheme. (The relation will be required for overlay support). --- ql/ql/src/ql.dbscheme | 6 + ql/ql/src/ql.dbscheme.stats | 36 + .../old.dbscheme | 3638 +++++++++++++++++ .../rust.dbscheme | 3632 ++++++++++++++++ .../upgrade.properties | 3 + rust/ql/lib/rust.dbscheme | 6 + .../old.dbscheme | 3632 ++++++++++++++++ .../rust.dbscheme | 3638 +++++++++++++++++ .../upgrade.properties | 2 + .../src/generator/mod.rs | 33 - .../src/generator/prefix.dbscheme | 6 + 11 files changed, 14599 insertions(+), 33 deletions(-) create mode 100644 rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/old.dbscheme create mode 100644 rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/rust.dbscheme create mode 100644 rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/upgrade.properties create mode 100644 rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme create mode 100644 rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme create mode 100644 rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties diff --git a/ql/ql/src/ql.dbscheme b/ql/ql/src/ql.dbscheme index 6b7646b90f9..d2a00208469 100644 --- a/ql/ql/src/ql.dbscheme +++ b/ql/ql/src/ql.dbscheme @@ -108,6 +108,12 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + /*- QL dbscheme -*/ @ql_add_expr_left_type = @ql_add_expr | @ql_aggregate | @ql_call_or_unqual_agg_expr | @ql_comp_term | @ql_conjunction | @ql_disjunction | @ql_expr_annotation | @ql_if_term | @ql_implication | @ql_in_expr | @ql_instance_of | @ql_literal | @ql_mul_expr | @ql_negation | @ql_par_expr | @ql_prefix_cast | @ql_qualified_expr | @ql_quantified | @ql_range | @ql_set_literal | @ql_special_call | @ql_super_ref | @ql_unary_expr | @ql_variable diff --git a/ql/ql/src/ql.dbscheme.stats b/ql/ql/src/ql.dbscheme.stats index 1e992f7d7a4..8a586681263 100644 --- a/ql/ql/src/ql.dbscheme.stats +++ b/ql/ql/src/ql.dbscheme.stats @@ -22436,5 +22436,41 @@ + + databaseMetadata + 1 + + + metadataKey + 1 + + + value + 1 + + + + + metadataKey + value + + + 12 + + + + + + value + metadataKey + + + 12 + + + + + + diff --git a/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/old.dbscheme b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/old.dbscheme new file mode 100644 index 00000000000..f72a3d8d021 --- /dev/null +++ b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/old.dbscheme @@ -0,0 +1,3638 @@ +// 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 +); + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/f72a3d8d021c81c67ba046c6af15c61a79cb8163/rust.dbscheme b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/rust.dbscheme new file mode 100644 index 00000000000..e3b3765116e --- /dev/null +++ b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/rust.dbscheme @@ -0,0 +1,3632 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/f72a3d8d021c81c67ba046c6af15c61a79cb8163/upgrade.properties b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/upgrade.properties new file mode 100644 index 00000000000..1d437ec8ac6 --- /dev/null +++ b/rust/downgrades/f72a3d8d021c81c67ba046c6af15c61a79cb8163/upgrade.properties @@ -0,0 +1,3 @@ +description: Add databaseMetadata relation +compatibility: full +databaseMetadata.rel: delete diff --git a/rust/ql/lib/rust.dbscheme b/rust/ql/lib/rust.dbscheme index e3b3765116e..f72a3d8d021 100644 --- a/rust/ql/lib/rust.dbscheme +++ b/rust/ql/lib/rust.dbscheme @@ -108,6 +108,12 @@ yaml_locations(unique int locatable: @yaml_locatable ref, @yaml_locatable = @yaml_node | @yaml_error; +/*- Database metadata -*/ +databaseMetadata( + string metadataKey: string ref, + string value: string ref +); + // from prefix.dbscheme #keyset[id] diff --git a/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme new file mode 100644 index 00000000000..e3b3765116e --- /dev/null +++ b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/old.dbscheme @@ -0,0 +1,3632 @@ +// 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; + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme new file mode 100644 index 00000000000..f72a3d8d021 --- /dev/null +++ b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/rust.dbscheme @@ -0,0 +1,3638 @@ +// 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 +); + + +// 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 +| @assoc_item_list +| @attr +| @callable +| @closure_binder +| @expr +| @extern_item +| @extern_item_list +| @field_list +| @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_segment +| @rename +| @resolvable +| @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 +; + +#keyset[id] +addressable_extended_canonical_paths( + int id: @addressable ref, + string extended_canonical_path: string ref +); + +#keyset[id] +addressable_crate_origins( + int id: @addressable ref, + string crate_origin: string ref +); + +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 = + @const +| @function +| @macro_call +| @type_alias +; + +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 +); + +closure_binders( + unique int id: @closure_binder +); + +#keyset[id] +closure_binder_generic_param_lists( + int id: @closure_binder ref, + int generic_param_list: @generic_param_list ref +); + +@expr = + @array_expr_internal +| @asm_expr +| @await_expr +| @become_expr +| @binary_expr +| @break_expr +| @call_expr_base +| @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 +| @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 = + @function +| @macro_call +| @static +| @type_alias +; + +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 +; + +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_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 +); + +@resolvable = + @method_call_expr +| @path_ast_node +; + +#keyset[id] +resolvable_resolved_paths( + int id: @resolvable ref, + string resolved_path: string ref +); + +#keyset[id] +resolvable_resolved_crate_origins( + int id: @resolvable ref, + string resolved_crate_origin: string 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_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_generic_param_lists( + int id: @where_pred ref, + int generic_param_list: @generic_param_list 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_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 +); + +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_expr_base = + @call_expr +| @method_call_expr +; + +#keyset[id] +call_expr_base_arg_lists( + int id: @call_expr_base ref, + int arg_list: @arg_list ref +); + +#keyset[id, index] +call_expr_base_attrs( + int id: @call_expr_base ref, + int index: int ref, + int attr: @attr 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_bodies( + int id: @closure_expr ref, + int body: @expr ref +); + +#keyset[id] +closure_expr_closure_binders( + int id: @closure_expr ref, + int closure_binder: @closure_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_generic_param_lists( + int id: @for_type_repr ref, + int generic_param_list: @generic_param_list 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 = + @adt +| @const +| @extern_block +| @extern_crate +| @function +| @impl +| @macro_call +| @macro_def +| @macro_rules +| @module +| @static +| @trait +| @trait_alias +| @type_alias +| @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] +macro_block_expr_tail_exprs( + int id: @macro_block_expr ref, + int tail_expr: @expr ref +); + +#keyset[id, index] +macro_block_expr_statements( + int id: @macro_block_expr ref, + int index: int ref, + int statement: @stmt 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 +); + +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_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_expr_base = + @path_expr +; + +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_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 +); + +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_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 +); + +@adt = + @enum +| @struct +| @union +; + +#keyset[id, index] +adt_derive_macro_expansions( + int id: @adt ref, + int index: int ref, + int derive_macro_expansion: @macro_items ref +); + +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 +); + +call_exprs( + unique int id: @call_expr +); + +#keyset[id] +call_expr_functions( + int id: @call_expr ref, + int function: @expr 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 +); + +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 +); + +functions( + unique int id: @function +); + +#keyset[id] +function_abis( + int id: @function ref, + int abi: @abi ref +); + +#keyset[id] +function_bodies( + int id: @function ref, + int 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 +); + +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_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 +); + +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 +); + +method_call_exprs( + unique int id: @method_call_expr +); + +#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 +); + +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 +); + +path_pats( + unique int id: @path_pat +); + +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 +); + +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_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 +); + +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 +); + +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 +); + +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 +); + +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 +); + +enums( + unique int id: @enum +); + +#keyset[id, index] +enum_attrs( + int id: @enum ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +enum_generic_param_lists( + int id: @enum ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +enum_names( + int id: @enum ref, + int name: @name ref +); + +#keyset[id] +enum_variant_lists( + int id: @enum ref, + int variant_list: @variant_list ref +); + +#keyset[id] +enum_visibilities( + int id: @enum ref, + int visibility: @visibility ref +); + +#keyset[id] +enum_where_clauses( + int id: @enum ref, + int where_clause: @where_clause 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 +); + +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 +); + +structs( + unique int id: @struct +); + +#keyset[id, index] +struct_attrs( + int id: @struct ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +struct_field_lists_( + int id: @struct ref, + int field_list: @field_list ref +); + +#keyset[id] +struct_generic_param_lists( + int id: @struct ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +struct_names( + int id: @struct ref, + int name: @name ref +); + +#keyset[id] +struct_visibilities( + int id: @struct ref, + int visibility: @visibility ref +); + +#keyset[id] +struct_where_clauses( + int id: @struct ref, + int where_clause: @where_clause ref +); + +unions( + unique int id: @union +); + +#keyset[id, index] +union_attrs( + int id: @union ref, + int index: int ref, + int attr: @attr ref +); + +#keyset[id] +union_generic_param_lists( + int id: @union ref, + int generic_param_list: @generic_param_list ref +); + +#keyset[id] +union_names( + int id: @union ref, + int name: @name ref +); + +#keyset[id] +union_struct_field_lists( + int id: @union ref, + int struct_field_list: @struct_field_list ref +); + +#keyset[id] +union_visibilities( + int id: @union ref, + int visibility: @visibility ref +); + +#keyset[id] +union_where_clauses( + int id: @union ref, + int where_clause: @where_clause 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/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties new file mode 100644 index 00000000000..9b83871fb9b --- /dev/null +++ b/rust/ql/lib/upgrades/e3b3765116ecb8d796979f0b4787926cb8d691b5/upgrade.properties @@ -0,0 +1,2 @@ +description: Add databaseMetadata relation +compatibility: full diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index fc0abc7f273..6652e8ebefb 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -33,16 +33,6 @@ pub fn generate( writeln!(dbscheme_writer, include_str!("prefix.dbscheme"))?; - // Eventually all languages will have the metadata relation (for overlay support), at which - // point this could be moved to prefix.dbscheme. - if overlay_support { - writeln!(dbscheme_writer, "/*- Database metadata -*/",)?; - dbscheme::write( - &mut dbscheme_writer, - &[dbscheme::Entry::Table(create_database_metadata())], - )?; - } - let mut ql_writer = LineWriter::new(File::create(ql_library_path)?); writeln!( ql_writer, @@ -478,26 +468,3 @@ fn create_token_case<'a>(name: &'a str, token_kinds: Map<&'a str, usize>) -> dbs branches, } } - -fn create_database_metadata() -> dbscheme::Table<'static> { - dbscheme::Table { - name: "databaseMetadata", - keysets: None, - columns: vec![ - dbscheme::Column { - db_type: dbscheme::DbColumnType::String, - name: "metadataKey", - unique: false, - ql_type: ql::Type::String, - ql_type_is_ref: true, - }, - dbscheme::Column { - db_type: dbscheme::DbColumnType::String, - name: "value", - unique: false, - ql_type: ql::Type::String, - ql_type_is_ref: true, - }, - ], - } -} diff --git a/shared/tree-sitter-extractor/src/generator/prefix.dbscheme b/shared/tree-sitter-extractor/src/generator/prefix.dbscheme index 96c7feaaf19..16921105a72 100644 --- a/shared/tree-sitter-extractor/src/generator/prefix.dbscheme +++ b/shared/tree-sitter-extractor/src/generator/prefix.dbscheme @@ -104,3 +104,9 @@ 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 +); From 867826466e7e1936bfaaf5df74cbbd4292c93809 Mon Sep 17 00:00:00 2001 From: Nick Rolfe Date: Wed, 25 Jun 2025 13:49:02 +0100 Subject: [PATCH 310/340] Ruby/QL: unconditionally generate discard predicates --- ql/extractor/src/generator.rs | 2 +- .../src/codeql_ql/ast/internal/TreeSitter.qll | 100 ++++++++++++++++++ ruby/extractor/src/generator.rs | 2 +- .../src/generator/mod.rs | 42 ++++---- 4 files changed, 121 insertions(+), 25 deletions(-) diff --git a/ql/extractor/src/generator.rs b/ql/extractor/src/generator.rs index ea663896e64..1dca6969f34 100644 --- a/ql/extractor/src/generator.rs +++ b/ql/extractor/src/generator.rs @@ -36,5 +36,5 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library, false) + generate(languages, options.dbscheme, options.library) } diff --git a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll index 562af993d89..a83095629ab 100644 --- a/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll +++ b/ql/ql/src/codeql_ql/ast/internal/TreeSitter.qll @@ -5,6 +5,10 @@ import codeql.Locations as L +/** Holds if the database is an overlay. */ +overlay[local] +private predicate isOverlay() { databaseMetadata("isOverlay", "true") } + module QL { /** The base class for all AST nodes */ class AstNode extends @ql_ast_node { @@ -48,6 +52,30 @@ module QL { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@ql_ast_node node) { + exists(@location_default loc | ql_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @ql_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@ql_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + /** A class representing `add_expr` nodes. */ class AddExpr extends @ql_add_expr, AstNode { /** Gets the name of the primary QL class for this element. */ @@ -1318,6 +1346,30 @@ module Dbscheme { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@dbscheme_ast_node node) { + exists(@location_default loc | dbscheme_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @dbscheme_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@dbscheme_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + /** A class representing `annotName` tokens. */ class AnnotName extends @dbscheme_token_annot_name, Token { /** Gets the name of the primary QL class for this element. */ @@ -1654,6 +1706,30 @@ module Blame { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@blame_ast_node node) { + exists(@location_default loc | blame_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @blame_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@blame_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + /** A class representing `blame_entry` nodes. */ class BlameEntry extends @blame_blame_entry, AstNode { /** Gets the name of the primary QL class for this element. */ @@ -1767,6 +1843,30 @@ module JSON { final override string getAPrimaryQlClass() { result = "ReservedWord" } } + /** Gets the file containing the given `node`. */ + overlay[local] + private @file getNodeFile(@json_ast_node node) { + exists(@location_default loc | json_ast_node_location(node, loc) | + locations_default(loc, result, _, _, _, _) + ) + } + + /** Holds if `file` was extracted as part of the overlay database. */ + overlay[local] + private predicate discardFile(@file file) { isOverlay() and file = getNodeFile(_) } + + /** Holds if `node` is in the `file` and is part of the overlay base database. */ + overlay[local] + private predicate discardableAstNode(@file file, @json_ast_node node) { + not isOverlay() and file = getNodeFile(node) + } + + /** Holds if `node` should be discarded, because it is part of the overlay base and is in a file that was also extracted as part of the overlay database. */ + overlay[discard_entity] + private predicate discardAstNode(@json_ast_node node) { + exists(@file file | discardableAstNode(file, node) and discardFile(file)) + } + class UnderscoreValue extends @json_underscore_value, AstNode { } /** A class representing `array` nodes. */ diff --git a/ruby/extractor/src/generator.rs b/ruby/extractor/src/generator.rs index 1601d2edda6..00d878243ae 100644 --- a/ruby/extractor/src/generator.rs +++ b/ruby/extractor/src/generator.rs @@ -28,5 +28,5 @@ pub fn run(options: Options) -> std::io::Result<()> { }, ]; - generate(languages, options.dbscheme, options.library, true) + generate(languages, options.dbscheme, options.library) } diff --git a/shared/tree-sitter-extractor/src/generator/mod.rs b/shared/tree-sitter-extractor/src/generator/mod.rs index 6652e8ebefb..e4bd1ac4eb0 100644 --- a/shared/tree-sitter-extractor/src/generator/mod.rs +++ b/shared/tree-sitter-extractor/src/generator/mod.rs @@ -17,7 +17,6 @@ pub fn generate( languages: Vec, dbscheme_path: PathBuf, ql_library_path: PathBuf, - overlay_support: bool, ) -> std::io::Result<()> { let dbscheme_file = File::create(dbscheme_path).map_err(|e| { tracing::error!("Failed to create dbscheme file: {}", e); @@ -50,14 +49,12 @@ pub fn generate( })], )?; - if overlay_support { - ql::write( - &mut ql_writer, - &[ql::TopLevel::Predicate( - ql_gen::create_is_overlay_predicate(), - )], - )?; - } + ql::write( + &mut ql_writer, + &[ql::TopLevel::Predicate( + ql_gen::create_is_overlay_predicate(), + )], + )?; for language in languages { let prefix = node_types::to_snake_case(&language.name); @@ -103,20 +100,19 @@ pub fn generate( ql::TopLevel::Class(ql_gen::create_reserved_word_class(&reserved_word_name)), ]; - if overlay_support { - body.push(ql::TopLevel::Predicate( - ql_gen::create_get_node_file_predicate(&ast_node_name, &node_location_table_name), - )); - body.push(ql::TopLevel::Predicate( - ql_gen::create_discard_file_predicate(), - )); - body.push(ql::TopLevel::Predicate( - ql_gen::create_discardable_ast_node_predicate(&ast_node_name), - )); - body.push(ql::TopLevel::Predicate( - ql_gen::create_discard_ast_node_predicate(&ast_node_name), - )); - } + // Overlay discard predicates + body.push(ql::TopLevel::Predicate( + ql_gen::create_get_node_file_predicate(&ast_node_name, &node_location_table_name), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discard_file_predicate(), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discardable_ast_node_predicate(&ast_node_name), + )); + body.push(ql::TopLevel::Predicate( + ql_gen::create_discard_ast_node_predicate(&ast_node_name), + )); body.append(&mut ql_gen::convert_nodes(&nodes)); ql::write( From 2291e10ce62d8a8cc93c3eb59b530cd77beca51c Mon Sep 17 00:00:00 2001 From: Chris Smowton Date: Wed, 25 Jun 2025 21:38:22 +0200 Subject: [PATCH 311/340] Fix typo Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- go/ql/lib/semmle/go/Types.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/ql/lib/semmle/go/Types.qll b/go/ql/lib/semmle/go/Types.qll index df4c853cf79..4a4f8ec6b0d 100644 --- a/go/ql/lib/semmle/go/Types.qll +++ b/go/ql/lib/semmle/go/Types.qll @@ -1042,7 +1042,7 @@ class DefinedType extends @definedtype, CompositeType { * Gets the type which this type is defined to be, if available. * * Note that this is only defined for types declared in the project being - * analyzed. It will not be defined for type declared in external packages. + * analyzed. It will not be defined for types declared in external packages. */ Type getBaseType() { result = this.getEntity().(DeclaredType).getSpec().getTypeExpr().getType() } From 9663ecad2110905af6ffd1b595bd51a18640fb1d Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Thu, 26 Jun 2025 01:46:14 +0100 Subject: [PATCH 312/340] Avoid using deprecated class --- go/ql/lib/semmle/go/Types.qll | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/go/ql/lib/semmle/go/Types.qll b/go/ql/lib/semmle/go/Types.qll index 4a4f8ec6b0d..d377cb2c9d8 100644 --- a/go/ql/lib/semmle/go/Types.qll +++ b/go/ql/lib/semmle/go/Types.qll @@ -1044,7 +1044,9 @@ class DefinedType extends @definedtype, CompositeType { * Note that this is only defined for types declared in the project being * analyzed. It will not be defined for types declared in external packages. */ - Type getBaseType() { result = this.getEntity().(DeclaredType).getSpec().getTypeExpr().getType() } + Type getBaseType() { + result = this.getEntity().(DeclaredTypeEntity).getSpec().getTypeExpr().getType() + } override Method getMethod(string m) { result = CompositeType.super.getMethod(m) From a0c849139c1d8ec29b4d5f67c03da44c6cdda554 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 1 May 2025 13:51:13 +0200 Subject: [PATCH 313/340] Java: Add guards-logic qltest with inline expectation. --- java/ql/test/library-tests/guards/Guards.java | 130 ++++++++++++++++++ .../guards/GuardsInline.expected | 56 ++++++++ .../test/library-tests/guards/GuardsInline.ql | 42 ++++++ .../library-tests/guards/GuardsInline.qlref | 2 + 4 files changed, 230 insertions(+) create mode 100644 java/ql/test/library-tests/guards/Guards.java create mode 100644 java/ql/test/library-tests/guards/GuardsInline.expected create mode 100644 java/ql/test/library-tests/guards/GuardsInline.ql create mode 100644 java/ql/test/library-tests/guards/GuardsInline.qlref diff --git a/java/ql/test/library-tests/guards/Guards.java b/java/ql/test/library-tests/guards/Guards.java new file mode 100644 index 00000000000..a524c237f13 --- /dev/null +++ b/java/ql/test/library-tests/guards/Guards.java @@ -0,0 +1,130 @@ +public class Guards { + static void chk() { } + + static boolean g(Object lbl) { return lbl.hashCode() > 10; } + + static void checkTrue(boolean b, String msg) { + if (!b) throw new Error(msg); + } + + static void checkFalse(boolean b, String msg) { + checkTrue(!b, msg); + } + + void t1(int[] a, String s) { + if (g("A")) { + chk(); // $ guarded=g(A):true + } else { + chk(); // $ guarded=g(A):false + } + + boolean b = g(1) ? g(2) : true; + if (b != false) { + chk(); // $ guarded=...?...:...:true guarded='b != false:true' guarded=b:true + } else { + chk(); // $ guarded=...?...:...:false guarded='b != false:false' guarded=b:false guarded=g(1):true guarded=g(2):false + } + int sz = a != null ? a.length : 0; + for (int i = 0; i < sz; i++) { + chk(); // $ guarded='a != null:true' guarded='i < sz:true' + int e = a[i]; + if (e > 2) break; + } + chk(); // nothing guards here + + if (g(3)) + s = "bar"; + switch (s) { + case "bar": + chk(); // $ guarded='s:match "bar"' + break; + case "foo": + chk(); // $ guarded='s:match "foo"' guarded=g(3):false + break; + default: + chk(); // $ guarded='s:non-match "bar"' guarded='s:non-match "foo"' guarded='s:match default' guarded=g(3):false + break; + } + + Object o = g(4) ? null : s; + if (o instanceof String) { + chk(); // $ guarded=...instanceof...:true guarded=g(4):false + } + } + + void t2() { + checkTrue(g(1), "A"); + checkFalse(g(2), "B"); + chk(); // $ guarded=checkTrue(A):true guarded=g(1):true guarded=checkFalse(B):false guarded=g(2):false + } + + void t3() { + boolean b = g(1) && (g(2) || g(3)); + if (b) { + chk(); // $ guarded=b:true guarded='g(...) && ... \|\| ...:true' guarded=g(1):true guarded='g(...) \|\| g(...):true' + } else { + chk(); // $ guarded=b:false guarded='g(...) && ... \|\| ...:false' + } + b = g(4) || !g(5); + if (b) { + chk(); // $ guarded=b:true guarded='g(...) \|\| !...:true' + } else { + chk(); // $ guarded=b:false guarded='g(...) \|\| !...:false' guarded=g(4):false guarded=!...:false guarded=g(5):true + } + } + + enum Val { + E1, + E2, + E3 + } + + void t4() { + Val x = null; // unique value + if (g(1)) x = Val.E1; // unique value + if (g(2)) x = Val.E2; + if (g("Alt2")) x = Val.E2; + if (g(3)) x = Val.E3; // unique value + if (x == null) + chk(); // $ guarded='x == null:true' guarded=g(3):false + switch (x) { + case E1: + chk(); // $ guarded='x:match E1' guarded=g(1):true guarded=g(3):false + break; + case E2: + chk(); // $ guarded='x:match E2' guarded=g(3):false + break; + case E3: + chk(); // $ guarded='x:match E3' guarded=g(3):true + break; + } + Object o = g(4) ? new Object() : null; + if (o == null) { + chk(); // $ guarded='o == null:true' guarded=g(4):false + } else { + chk(); // $ guarded='o == null:false' guarded=g(4):true + } + } + + void t5(String foo) { + String base = foo; + if (base == null) { + base = "/user"; + } + if (base.equals("/")) + chk(); // $ guarded=equals(/):true guarded='base == null:false' + } + + void t6() { + Object o = null; + if (g(1)) { + o = new Object(); + if (g(2)) { } + } + if (o != null) { + chk(); // $ guarded='o != null:true' + } else { + chk(); // $ guarded='o != null:false' guarded=g(1):false + } + } +} diff --git a/java/ql/test/library-tests/guards/GuardsInline.expected b/java/ql/test/library-tests/guards/GuardsInline.expected new file mode 100644 index 00000000000..665424c2f5b --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.expected @@ -0,0 +1,56 @@ +| Guards.java:16:7:16:11 | chk(...) | g(A):true | +| Guards.java:18:7:18:11 | chk(...) | g(A):false | +| Guards.java:23:7:23:11 | chk(...) | 'b != false:true' | +| Guards.java:23:7:23:11 | chk(...) | ...?...:...:true | +| Guards.java:23:7:23:11 | chk(...) | b:true | +| Guards.java:25:7:25:11 | chk(...) | 'b != false:false' | +| Guards.java:25:7:25:11 | chk(...) | ...?...:...:false | +| Guards.java:25:7:25:11 | chk(...) | b:false | +| Guards.java:25:7:25:11 | chk(...) | g(1):true | +| Guards.java:25:7:25:11 | chk(...) | g(2):false | +| Guards.java:29:7:29:11 | chk(...) | 'a != null:true' | +| Guards.java:29:7:29:11 | chk(...) | 'i < sz:true' | +| Guards.java:39:9:39:13 | chk(...) | 's:match "bar"' | +| Guards.java:42:9:42:13 | chk(...) | 's:match "foo"' | +| Guards.java:42:9:42:13 | chk(...) | g(3):false | +| Guards.java:45:9:45:13 | chk(...) | 's:match default' | +| Guards.java:45:9:45:13 | chk(...) | 's:non-match "bar"' | +| Guards.java:45:9:45:13 | chk(...) | 's:non-match "foo"' | +| Guards.java:45:9:45:13 | chk(...) | g(3):false | +| Guards.java:51:7:51:11 | chk(...) | ...instanceof...:true | +| Guards.java:51:7:51:11 | chk(...) | g(4):false | +| Guards.java:58:5:58:9 | chk(...) | checkFalse(B):false | +| Guards.java:58:5:58:9 | chk(...) | checkTrue(A):true | +| Guards.java:58:5:58:9 | chk(...) | g(1):true | +| Guards.java:58:5:58:9 | chk(...) | g(2):false | +| Guards.java:64:7:64:11 | chk(...) | 'g(...) && ... \|\| ...:true' | +| Guards.java:64:7:64:11 | chk(...) | 'g(...) \|\| g(...):true' | +| Guards.java:64:7:64:11 | chk(...) | b:true | +| Guards.java:64:7:64:11 | chk(...) | g(1):true | +| Guards.java:66:7:66:11 | chk(...) | 'g(...) && ... \|\| ...:false' | +| Guards.java:66:7:66:11 | chk(...) | b:false | +| Guards.java:70:7:70:11 | chk(...) | 'g(...) \|\| !...:true' | +| Guards.java:70:7:70:11 | chk(...) | b:true | +| Guards.java:72:7:72:11 | chk(...) | !...:false | +| Guards.java:72:7:72:11 | chk(...) | 'g(...) \|\| !...:false' | +| Guards.java:72:7:72:11 | chk(...) | b:false | +| Guards.java:72:7:72:11 | chk(...) | g(4):false | +| Guards.java:72:7:72:11 | chk(...) | g(5):true | +| Guards.java:89:7:89:11 | chk(...) | 'x == null:true' | +| Guards.java:89:7:89:11 | chk(...) | g(3):false | +| Guards.java:92:9:92:13 | chk(...) | 'x:match E1' | +| Guards.java:92:9:92:13 | chk(...) | g(1):true | +| Guards.java:92:9:92:13 | chk(...) | g(3):false | +| Guards.java:95:9:95:13 | chk(...) | 'x:match E2' | +| Guards.java:95:9:95:13 | chk(...) | g(3):false | +| Guards.java:98:9:98:13 | chk(...) | 'x:match E3' | +| Guards.java:98:9:98:13 | chk(...) | g(3):true | +| Guards.java:103:7:103:11 | chk(...) | 'o == null:true' | +| Guards.java:103:7:103:11 | chk(...) | g(4):false | +| Guards.java:105:7:105:11 | chk(...) | 'o == null:false' | +| Guards.java:105:7:105:11 | chk(...) | g(4):true | +| Guards.java:115:7:115:11 | chk(...) | 'base == null:false' | +| Guards.java:115:7:115:11 | chk(...) | equals(/):true | +| Guards.java:125:7:125:11 | chk(...) | 'o != null:true' | +| Guards.java:127:7:127:11 | chk(...) | 'o != null:false' | +| Guards.java:127:7:127:11 | chk(...) | g(1):false | diff --git a/java/ql/test/library-tests/guards/GuardsInline.ql b/java/ql/test/library-tests/guards/GuardsInline.ql new file mode 100644 index 00000000000..54386f9777a --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.ql @@ -0,0 +1,42 @@ +import java +import semmle.code.java.controlflow.Guards +import codeql.util.Boolean + +string ppGuard(Guard g, Boolean branch) { + exists(MethodCall mc, Literal s | + mc = g and + mc.getAnArgument() = s and + result = mc.getMethod().getName() + "(" + s.getValue() + ")" + ":" + branch + ) + or + exists(BinaryExpr bin | + bin = g and + result = "'" + bin.getLeftOperand() + bin.getOp() + bin.getRightOperand() + ":" + branch + "'" + ) + or + exists(SwitchCase cc, Expr s, string match, string value | + cc = g and + cc.getSelectorExpr() = s and + ( + cc.(ConstCase).getValue().toString() = value + or + cc instanceof DefaultCase and value = "default" + ) and + if branch = true then match = ":match " else match = ":non-match " + | + result = "'" + s.toString() + match + value + "'" + ) +} + +query predicate guarded(MethodCall mc, string guard) { + mc.getMethod().hasName("chk") and + exists(Guard g, BasicBlock bb, boolean branch | + g.controls(bb, branch) and + mc.getBasicBlock() = bb + | + guard = ppGuard(g, branch) + or + not exists(ppGuard(g, branch)) and + guard = g.toString() + ":" + branch + ) +} diff --git a/java/ql/test/library-tests/guards/GuardsInline.qlref b/java/ql/test/library-tests/guards/GuardsInline.qlref new file mode 100644 index 00000000000..a9492ac8f23 --- /dev/null +++ b/java/ql/test/library-tests/guards/GuardsInline.qlref @@ -0,0 +1,2 @@ +query: GuardsInline.ql +postprocess: utils/test/InlineExpectationsTestQuery.ql From 994c1f6427c0d65f2fc7fce5c8d70016e33647b1 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 2 May 2025 12:42:21 +0200 Subject: [PATCH 314/340] Java: Add hasInputFromBlock predicate in BaseSSA. --- java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll index 874aca87183..ec56822d585 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/BaseSSA.qll @@ -372,5 +372,10 @@ class BaseSsaImplicitInit extends BaseSsaVariable instanceof Impl::WriteDefiniti /** An SSA phi node. */ class BaseSsaPhiNode extends BaseSsaVariable instanceof Impl::PhiNode { /** Gets an input to the phi node defining the SSA variable. */ - BaseSsaVariable getAPhiInput() { phiHasInputFromBlock(this, result, _) } + BaseSsaVariable getAPhiInput() { this.hasInputFromBlock(result, _) } + + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ + predicate hasInputFromBlock(BaseSsaVariable inp, BasicBlock bb) { + phiHasInputFromBlock(this, inp, bb) + } } From 1d75008eba73914b6f7cf3344fcc02fa7d9134aa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 2 May 2025 14:44:28 +0200 Subject: [PATCH 315/340] Shared: Add a shared Guards library inspired by the Java and C# versions. --- .../controlflow/codeql/controlflow/Guards.qll | 792 ++++++++++++++++++ 1 file changed, 792 insertions(+) create mode 100644 shared/controlflow/codeql/controlflow/Guards.qll diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll new file mode 100644 index 00000000000..db5727fd7af --- /dev/null +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -0,0 +1,792 @@ +/** + * Provides classes and predicates for determining "guard-controls" + * relationships. + * + * In their most general form, these relate a guard expression, a value, and a + * basic block, and state that execution of the basic block implies that + * control flow must have passed through the guard in order to reach the basic + * block, and when it did, the guard evaluated to the given value. + * + * For example, in `if (x == 0) { A }`, the guard `x == 0` evaluating to `true` + * controls the basic block `A`, in this case because the true branch dominates + * `A`, but more elaborate controls-relationships may also hold. + * For example, in + * ``` + * int sz = a != null ? a.length : 0; + * if (sz != 0) { + * // this block is controlled by: + * // sz != 0 evaluating to true + * // sz evaluating to not 0 + * // a.length evaluating to not 0 + * // a != null evaluating to true + * // a evaluating to not null + * } + * ``` + * + * The implementation is nested in two parameterized modules intended to + * facilitate multiple instantiations of the nested module with different + * precision levels + */ + +private import codeql.util.Boolean +private import codeql.util.Location + +signature module InputSig { + class SuccessorType { + /** Gets a textual representation of this successor type. */ + string toString(); + } + + class ConditionalSuccessor extends SuccessorType { + /** Gets the Boolean value of this successor. */ + boolean getValue(); + } + + class BooleanSuccessor extends ConditionalSuccessor; + + class NullnessSuccessor extends ConditionalSuccessor; + + /** A control flow node. */ + class ControlFlowNode { + /** Gets a textual representation of this control flow node. */ + string toString(); + + /** Gets the location of this control flow node. */ + Location getLocation(); + } + + /** + * A basic block, that is, a maximal straight-line sequence of control flow nodes + * without branches or joins. + */ + class BasicBlock { + /** Gets a textual representation of this basic block. */ + string toString(); + + /** Gets the `i`th node in this basic block. */ + ControlFlowNode getNode(int i); + + /** Gets the last control flow node in this basic block. */ + ControlFlowNode getLastNode(); + + /** Gets the length of this basic block. */ + int length(); + + /** Gets the location of this basic block. */ + Location getLocation(); + + BasicBlock getASuccessor(SuccessorType t); + + predicate dominates(BasicBlock bb); + + predicate strictlyDominates(BasicBlock bb); + } + + predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2); + + class Expr { + /** Gets a textual representation of this expression. */ + string toString(); + + /** Gets the location of this expression. */ + Location getLocation(); + + /** Gets the associated control flow node. */ + ControlFlowNode getControlFlowNode(); + + /** Gets the basic block containing this expression. */ + BasicBlock getBasicBlock(); + } + + class ConstantValue { + /** Gets a textual representation of this constant value. */ + string toString(); + } + + class ConstantExpr extends Expr { + predicate isNull(); + + boolean asBooleanValue(); + + int asIntegerValue(); + + ConstantValue asConstantValue(); + } + + class NonNullExpr extends Expr; + + class Case { + /** Gets a textual representation of this switch case. */ + string toString(); + + Location getLocation(); + + Expr getSwitchExpr(); + + predicate isDefaultCase(); + + ConstantExpr asConstantCase(); + + predicate matchEdge(BasicBlock bb1, BasicBlock bb2); + + predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2); + } + + class AndExpr extends Expr { + /** Gets an operand of this expression. */ + Expr getAnOperand(); + } + + class OrExpr extends Expr { + /** Gets an operand of this expression. */ + Expr getAnOperand(); + } + + class NotExpr extends Expr { + /** Gets the operand of this expression. */ + Expr getOperand(); + } + + /** + * An expression that has the same value as a specific sub-expression. + * + * For example, in Java, the assignment `x = rhs` has the same value as `rhs`. + */ + class IdExpr extends Expr { + Expr getEqualChildExpr(); + } + + class EqualityTest extends Expr { + /** Gets an operand of this expression. */ + Expr getAnOperand(); + + /** Gets a boolean indicating whether this test is equality (true) or inequality (false). */ + boolean polarity(); + } + + class ConditionalExpr extends Expr { + /** Gets the condition of this expression. */ + Expr getCondition(); + + /** Gets the true branch of this expression. */ + Expr getThen(); + + /** Gets the false branch of this expression. */ + Expr getElse(); + } +} + +module Make Input> { + private import Input + + private newtype TAbstractSingleValue = + TValueNull() or + TValueTrue() or + TValueInt(int i) { exists(ConstantExpr c | c.asIntegerValue() = i) or i = 0 } or + TValueConstant(ConstantValue c) { exists(ConstantExpr ce | ce.asConstantValue() = c) } + + private newtype TGuardValue = + TValue(TAbstractSingleValue val, Boolean isVal) or + TCaseMatch(Case c, Boolean match) + + private class AbstractSingleValue extends TAbstractSingleValue { + /** Gets a textual representation of this value. */ + string toString() { + result = "null" and this instanceof TValueNull + or + result = "true" and this instanceof TValueTrue + or + exists(int i | result = i.toString() and this = TValueInt(i)) + or + exists(ConstantValue c | result = c.toString() and this = TValueConstant(c)) + } + } + + /** An abstract value that a `Guard` may evaluate to. */ + class GuardValue extends TGuardValue { + /** + * Gets the dual value. Examples of dual values include: + * - null vs. not null + * - true vs. false + * - evaluating to a specific value vs. evaluating to any other value + * - matching a specific case vs. not matching that case + */ + GuardValue getDualValue() { + exists(AbstractSingleValue val, boolean isVal | + this = TValue(val, isVal) and + result = TValue(val, isVal.booleanNot()) + ) + or + exists(Case c, boolean match | + this = TCaseMatch(c, match) and + result = TCaseMatch(c, match.booleanNot()) + ) + } + + /** Holds if this value represents `null`. */ + predicate isNullValue() { this = TValue(TValueNull(), true) } + + /** Gets the integer that this value represents, if any. */ + int asIntValue() { this = TValue(TValueInt(result), true) } + + /** Gets the boolean that this value represents, if any. */ + boolean asBooleanValue() { this = TValue(TValueTrue(), result) } + + /** Gets the constant that this value represents, if any. */ + ConstantValue asConstantValue() { this = TValue(TValueConstant(result), true) } + + /** Gets a textual representation of this value. */ + string toString() { + result = this.asBooleanValue().toString() + or + exists(AbstractSingleValue val | not val instanceof TValueTrue | + this = TValue(val, true) and result = val.toString() + or + this = TValue(val, false) and result = "not " + val.toString() + ) + or + exists(Case c, boolean match, string s | this = TCaseMatch(c, match) | + ( + exists(ConstantExpr ce | c.asConstantCase() = ce and s = ce.toString()) + or + not exists(c.asConstantCase()) and s = c.toString() + ) and + ( + match = true and result = "match " + s + or + match = false and result = "non-match " + s + ) + ) + } + } + + bindingset[a, b] + pragma[inline_late] + private predicate disjointValues(GuardValue a, GuardValue b) { + a = b.getDualValue() + or + exists(AbstractSingleValue a1, AbstractSingleValue b1 | + a = TValue(a1, true) and + b = TValue(b1, true) and + a1 != b1 + ) + } + + private predicate constantHasValue(ConstantExpr c, GuardValue v) { + c.isNull() and v = TValue(TValueNull(), true) + or + v = TValue(TValueTrue(), c.asBooleanValue()) + or + v = TValue(TValueInt(c.asIntegerValue()), true) + or + v = TValue(TValueConstant(c.asConstantValue()), true) + } + + private predicate exprHasValue(Expr e, GuardValue v) { + constantHasValue(e, v) + or + e instanceof NonNullExpr and v = TValue(TValueNull(), false) + } + + private predicate branchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { + exists(ConditionalSuccessor s | + bb1.getASuccessor(s) = bb2 and + exists(AbstractSingleValue val | + s instanceof NullnessSuccessor and val = TValueNull() + or + s instanceof BooleanSuccessor and val = TValueTrue() + | + v = TValue(val, s.getValue()) + ) + ) + or + exists(Case c | + v = TCaseMatch(c, true) and + c.matchEdge(bb1, bb2) + or + v = TCaseMatch(c, false) and + c.nonMatchEdge(bb1, bb2) + ) + } + + pragma[nomagic] + private predicate eqtestHasOperands(EqualityTest eqtest, Expr e1, Expr e2, boolean polarity) { + eqtest.getAnOperand() = e1 and + eqtest.getAnOperand() = e2 and + e1 != e2 and + eqtest.polarity() = polarity + } + + private predicate caseGuard(PreGuard g, Case c, Expr switchExpr) { + g.hasValueBranchEdge(_, _, TCaseMatch(c, _)) and + switchExpr = c.getSwitchExpr() + } + + private predicate constcaseEquality(PreGuard g, Expr e1, ConstantExpr e2, GuardValue eqval) { + exists(Case c | + caseGuard(g, c, e1) and + c.asConstantCase() = e2 and + eqval = TCaseMatch(c, true) + ) + } + + final private class ExprFinal = Expr; + + /** + * A guard. This may be any expression whose value determines subsequent + * control flow. + */ + final class PreGuard extends ExprFinal { + /** + * Holds if this guard is the last node in `bb1` and that its successor is + * `bb2` exactly when evaluating to `v`. + */ + predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { + bb1.getLastNode() = this.getControlFlowNode() and + branchEdge(bb1, bb2, v) + } + + /** + * Holds if this guard evaluating to `v` directly controls the basic block `bb`. + * + * That is, `bb` is dominated by the `v`-successor edge of this guard. + */ + predicate directlyValueControls(BasicBlock bb, GuardValue v) { + exists(BasicBlock guard, BasicBlock succ | + this.hasValueBranchEdge(guard, succ, v) and + dominatingEdge(guard, succ) and + succ.dominates(bb) + ) + } + + /** + * Holds if this guard is the last node in `bb1` and that its successor is + * `bb2` exactly when evaluating to `branch`. + */ + predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + this.hasValueBranchEdge(bb1, bb2, TValue(TValueTrue(), branch)) + } + + /** + * Holds if this guard evaluating to `branch` directly controls the basic + * block `bb`. + * + * That is, `bb` is dominated by the `branch`-successor edge of this guard. + */ + predicate directlyControls(BasicBlock bb, boolean branch) { + this.directlyValueControls(bb, TValue(TValueTrue(), branch)) + } + + /** + * Holds if this guard tests equality between `e1` and `e2` upon evaluating + * to `eqval`. + */ + predicate isEquality(Expr e1, Expr e2, GuardValue eqval) { + eqtestHasOperands(this, e1, e2, eqval.asBooleanValue()) + or + constcaseEquality(this, e1, e2, eqval) + or + constcaseEquality(this, e2, e1, eqval) + } + } + + private Expr getBranchExpr(ConditionalExpr cond, boolean branch) { + branch = true and result = cond.getThen() + or + branch = false and result = cond.getElse() + } + + bindingset[g1, v1] + pragma[inline_late] + private predicate unboundBaseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { + g1.(IdExpr).getEqualChildExpr() = g2 and v1 = v2 + or + exists(ConditionalExpr cond, boolean branch, Expr e, GuardValue ev | + cond = g1 and + e = getBranchExpr(cond, branch) and + exprHasValue(e, ev) and + disjointValues(v1, ev) + | + // g1 === g2 ? e : ...; + // g1 === g2 ? ... : e; + g2 = cond.getCondition() and + v2 = TValue(TValueTrue(), branch.booleanNot()) + or + // g1 === ... ? g2 : e + // g1 === ... ? e : g2 + g2 = getBranchExpr(cond, branch.booleanNot()) and + v2 = v1 and + not exprHasValue(g2, v2) // disregard trivial guard + ) + } + + private predicate baseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { + g1.(AndExpr).getAnOperand() = g2 and v1 = TValue(TValueTrue(), true) and v2 = v1 + or + g1.(OrExpr).getAnOperand() = g2 and v1 = TValue(TValueTrue(), false) and v2 = v1 + or + g1.(NotExpr).getOperand() = g2 and v1.asBooleanValue().booleanNot() = v2.asBooleanValue() + or + exists(GuardValue eqval, ConstantExpr constant, GuardValue cv | + g1.isEquality(g2, constant, eqval) and + constantHasValue(constant, cv) + | + v1 = eqval and v2 = cv + or + v1 = eqval.getDualValue() and v2 = cv.getDualValue() + ) + or + exists(NonNullExpr nonnull | + eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and + v2 = TValue(TValueNull(), false) + ) + or + exists(Case c1, Case c2, Expr switchExpr | + caseGuard(g1, c1, switchExpr) and + v1 = TCaseMatch(c1, true) and + c1.isDefaultCase() and + caseGuard(g2, c2, switchExpr) and + v2 = TCaseMatch(c2, false) and + c1 != c2 + ) + } + + signature module LogicInputSig { + class SsaDefinition { + /** Gets the basic block to which this SSA definition belongs. */ + BasicBlock getBasicBlock(); + + Expr getARead(); + } + + class SsaWriteDefinition extends SsaDefinition { + Expr getDefinition(); + } + + class SsaPhiNode extends SsaDefinition { + /** Holds if `inp` is an input to the phi node along the edge originating in `bb`. */ + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb); + } + + /** + * Holds if `guard` evaluating to `val` ensures that: + * `e <= k` when `upper = true` + * `e >= k` when `upper = false` + */ + default predicate rangeGuard(PreGuard guard, GuardValue val, Expr e, int k, boolean upper) { + none() + } + + /** + * Holds if `guard` evaluating to `val` ensures that: + * `e == null` when `isNull = true` + * `e != null` when `isNull = false` + */ + default predicate additionalNullCheck(PreGuard guard, GuardValue val, Expr e, boolean isNull) { + none() + } + } + + module Logic { + private import LogicInput + + private predicate guardControlsPhiBranch( + Guard guard, GuardValue v, SsaPhiNode phi, Expr input, BasicBlock bbInput, BasicBlock bbPhi + ) { + exists(SsaWriteDefinition inp | + phi.hasInputFromBlock(inp, bbInput) and + phi.getBasicBlock() = bbPhi and + inp.getDefinition() = input and + guard.directlyValueControls(bbInput, v) and + guard.getBasicBlock().strictlyDominates(bbPhi) and + not guard.directlyValueControls(bbPhi, _) + ) + } + + /** + * Holds if `phi` takes `input` exactly when `guard` is `v`. That is, + * `guard == v` directly controls `input` and `guard == v.getDualValue()` + * directly controls all other inputs to `phi`. + * + * This makes `phi` similar to the conditional `phi = guard==v ? input : ...`. + */ + private predicate guardDeterminesPhiInput(Guard guard, GuardValue v, SsaPhiNode phi, Expr input) { + exists(GuardValue dv, BasicBlock bbInput, BasicBlock bbPhi | + guardControlsPhiBranch(guard, v, phi, input, bbInput, bbPhi) and + dv = v.getDualValue() and + forall(BasicBlock other | phi.hasInputFromBlock(_, other) and other != bbInput | + guard.directlyValueControls(other, dv) + or + guard.hasValueBranchEdge(other, bbPhi, dv) + ) + ) + } + + pragma[nomagic] + private predicate guardChecksEqualVars( + Guard guard, SsaDefinition v1, SsaDefinition v2, boolean branch + ) { + eqtestHasOperands(guard, v1.getARead(), v2.getARead(), branch) + } + + private predicate guardReadsSsaVar(Guard guard, SsaDefinition def) { + def.getARead() = guard + or + exists(Guard eqtest, SsaDefinition other, boolean branch | + guardChecksEqualVars(eqtest, def, other, branch) and + other.getARead() = guard and + eqtest.directlyControls(guard.getBasicBlock(), branch) + ) + } + + private predicate valueStep(Expr e1, Expr e2) { + e2.(ConditionalExpr).getThen() = e1 or + e2.(ConditionalExpr).getElse() = e1 or + e2.(IdExpr).getEqualChildExpr() = e1 + } + + /** + * Gets a sub-expression of `e` whose value can flow to `e` through + * `valueStep`s + */ + private Expr possibleValue(Expr e) { + result = possibleValue(any(Expr e1 | valueStep(e1, e))) + or + result = e and not valueStep(_, e) + } + + /** + * Gets an ultimate definition of `v` that is not itself a phi node. The + * boolean `fromBackEdge` indicates whether the flow from `result` to `v` goes + * through a back edge. + */ + private SsaDefinition getADefinition(SsaDefinition v, boolean fromBackEdge) { + result = v and not v instanceof SsaPhiNode and fromBackEdge = false + or + exists(SsaDefinition inp, BasicBlock bb, boolean fbe | + v.(SsaPhiNode).hasInputFromBlock(inp, bb) and + result = getADefinition(inp, fbe) and + (if v.getBasicBlock().dominates(bb) then fromBackEdge = true else fromBackEdge = fbe) + ) + } + + /** + * Holds if `v` can have a value that is not representable as an `GuardValue`. + */ + private predicate hasPossibleUnknownValue(SsaDefinition v) { + exists(SsaDefinition def | def = getADefinition(v, _) | + not exists(def.(SsaWriteDefinition).getDefinition()) + or + exists(Expr e | e = possibleValue(def.(SsaWriteDefinition).getDefinition()) | + not constantHasValue(e, _) + ) + ) + } + + /** + * Holds if `e` equals `k` and may be assigned to `v`. The boolean + * `fromBackEdge` indicates whether the flow from `e` to `v` goes through a + * back edge. + */ + private predicate possibleValue(SsaDefinition v, boolean fromBackEdge, Expr e, GuardValue k) { + not hasPossibleUnknownValue(v) and + exists(SsaWriteDefinition def | + def = getADefinition(v, fromBackEdge) and + e = possibleValue(def.getDefinition()) and + constantHasValue(e, k) + ) + } + + /** + * Holds if `e` equals `k` and may be assigned to `v` without going through + * back edges, and all other possible ultimate definitions of `v` are different + * from `k`. The trivial case where `v` is an `SsaWriteDefinition` with `e` as + * the only possible value is excluded. + */ + private predicate uniqueValue(SsaDefinition v, Expr e, GuardValue k) { + possibleValue(v, false, e, k) and + forex(Expr other, GuardValue otherval | possibleValue(v, _, other, otherval) and other != e | + disjointValues(otherval, k) + ) + } + + /** + * Holds if `phi` has exactly two inputs, `def1` and `e2`, and that `def1` + * does not come from a back-edge into `phi`. + */ + private predicate phiWithTwoInputs(SsaPhiNode phi, SsaDefinition def1, Expr e2) { + exists(SsaWriteDefinition def2, BasicBlock bb1 | + 2 = strictcount(SsaDefinition inp, BasicBlock bb | phi.hasInputFromBlock(inp, bb)) and + phi.hasInputFromBlock(def1, bb1) and + phi.hasInputFromBlock(def2, _) and + def1 != def2 and + not phi.getBasicBlock().dominates(bb1) and + def2.getDefinition() = e2 + ) + } + + /** Holds if `e` may take the value `k` */ + private predicate relevantInt(Expr e, int k) { + e.(ConstantExpr).asIntegerValue() = k + or + relevantInt(any(Expr e1 | valueStep(e1, e)), k) + or + exists(SsaDefinition def | + guardReadsSsaVar(e, def) and + relevantInt(getADefinition(def, _).(SsaWriteDefinition).getDefinition(), k) + ) + } + + private predicate impliesStep(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { + baseImpliesStep(g1, v1, g2, v2) + or + exists(SsaDefinition def, Expr e | + // If `def = g2 ? v1 : ...` and all other assignments to `def` are different from + // `v1` then a guard proving `def == v1` ensures that `g2` evaluates to `v2`. + uniqueValue(def, e, v1) and + guardReadsSsaVar(g1, def) and + g2.directlyValueControls(e.getBasicBlock(), v2) and + not g2.directlyValueControls(g1.getBasicBlock(), v2) + ) + or + exists(int k1, int k2, boolean upper | + rangeGuard(g1, v1, g2, k1, upper) and + relevantInt(g2, k2) and + v2 = TValue(TValueInt(k2), false) + | + upper = true and k1 < k2 // g2 <= k1 < k2 ==> g2 != k2 + or + upper = false and k1 > k2 // g2 >= k1 > k2 ==> g2 != k2 + ) + or + exists(boolean isNull | + additionalNullCheck(g1, v1, g2, isNull) and + v2 = TValue(TValueNull(), isNull) + ) + } + + bindingset[g1, v1] + pragma[inline_late] + private predicate unboundImpliesStep(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { + unboundBaseImpliesStep(g1, v1, g2, v2) + } + + bindingset[def1, v1] + pragma[inline_late] + private predicate impliesStepSsaGuard(SsaDefinition def1, GuardValue v1, Guard g2, GuardValue v2) { + def1.(SsaWriteDefinition).getDefinition() = g2 and + v1 = v2 and + not exprHasValue(g2, v2) // disregard trivial guard + or + exists(Expr e, GuardValue ev | + guardDeterminesPhiInput(g2, v2.getDualValue(), def1, e) and + exprHasValue(e, ev) and + disjointValues(v1, ev) + ) + } + + bindingset[def1, v] + pragma[inline_late] + private predicate impliesStepSsa(SsaDefinition def1, GuardValue v, SsaDefinition def2) { + exists(Expr e, GuardValue ev | + phiWithTwoInputs(def1, def2, e) and + exprHasValue(e, ev) and + disjointValues(v, ev) + ) + } + + pragma[nomagic] + private predicate guardControlsBranchEdge( + Guard guard, BasicBlock bb1, BasicBlock bb2, GuardValue v + ) { + guard.hasValueBranchEdge(bb1, bb2, v) + or + exists(Guard g0, GuardValue v0 | + guardControlsBranchEdge(g0, bb1, bb2, v0) and + impliesStep(g0, v0, guard, v) + ) + or + exists(Guard g0, GuardValue v0 | + guardControlsBranchEdge(g0, bb1, bb2, v0) and + unboundImpliesStep(g0, v0, guard, v) + ) + or + exists(SsaDefinition def0, GuardValue v0 | + ssaControlsBranchEdge(def0, bb1, bb2, v0) and + impliesStepSsaGuard(def0, v0, guard, v) + ) + } + + pragma[nomagic] + private predicate ssaControlsBranchEdge( + SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v + ) { + exists(Guard g0 | + guardControlsBranchEdge(g0, bb1, bb2, v) and + guardReadsSsaVar(g0, def) + ) + or + exists(SsaDefinition def0 | + ssaControlsBranchEdge(def0, bb1, bb2, v) and + impliesStepSsa(def0, v, def) + ) + } + + /** + * A guard. This may be any expression whose value determines subsequent + * control flow. + */ + final class Guard extends PreGuard { + /** + * Holds if this guard evaluating to `v` controls the control-flow branch + * edge from `bb1` to `bb2`. That is, following the edge from `bb1` to + * `bb2` implies that this guard evaluated to `v`. + * + * Note that this goes beyond mere control-flow graph dominance, as it + * also considers additional logical reasoning. + */ + predicate valueControlsBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { + guardControlsBranchEdge(this, bb1, bb2, v) + } + + /** + * Holds if this guard evaluating to `v` controls the basic block `bb`. + * That is, execution of `bb` implies that this guard evaluated to `v`. + * + * Note that this goes beyond mere control-flow graph dominance, as it + * also considers additional logical reasoning. + */ + predicate valueControls(BasicBlock bb, GuardValue v) { + exists(BasicBlock guard, BasicBlock succ | + this.valueControlsBranchEdge(guard, succ, v) and + dominatingEdge(guard, succ) and + succ.dominates(bb) + ) + } + + /** + * Holds if this guard evaluating to `branch` controls the control-flow + * branch edge from `bb1` to `bb2`. That is, following the edge from + * `bb1` to `bb2` implies that this guard evaluated to `branch`. + * + * Note that this goes beyond mere control-flow graph dominance, as it + * also considers additional logical reasoning. + */ + predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { + this.valueControlsBranchEdge(bb1, bb2, TValue(TValueTrue(), branch)) + } + + /** + * Holds if this guard evaluating to `branch` controls the basic block + * `bb`. That is, execution of `bb` implies that this guard evaluated to + * `branch`. + * + * Note that this goes beyond mere control-flow graph dominance, as it + * also considers additional logical reasoning. + */ + predicate controls(BasicBlock bb, boolean branch) { + this.valueControls(bb, TValue(TValueTrue(), branch)) + } + } + } +} From 14b87f97b96e83a9005c7b4d6d88c7e20227f54a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 13 May 2025 15:57:39 +0200 Subject: [PATCH 316/340] Shared: Extend the shared Guards library with support for custom wrappers. --- .../controlflow/codeql/controlflow/Guards.qll | 203 +++++++++++++++--- 1 file changed, 175 insertions(+), 28 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index db5727fd7af..7d9b9fe283f 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -485,6 +485,17 @@ module Make Input> { default predicate additionalNullCheck(PreGuard guard, GuardValue val, Expr e, boolean isNull) { none() } + + /** + * Holds if the assumption that `g1` has been evaluated to `v1` implies that + * `g2` has been evaluated to `v2`, that is, the evaluation of `g2` to `v2` + * dominates the evaluation of `g1` to `v1`. + * + * This predicate can be instantiated with `CustomGuard<..>::additionalImpliesStep`. + */ + default predicate additionalImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { + none() + } } module Logic { @@ -695,41 +706,177 @@ module Make Input> { ) } - pragma[nomagic] + private signature predicate baseGuardValueSig(Guard guard, GuardValue v); + + /** + * Calculates the transitive closure of all the guard implication steps + * starting from a given set of base cases. + */ + private module ImpliesTC { + pragma[nomagic] + predicate guardControls(Guard guard, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { + baseGuardValue(tgtGuard, tgtVal) and + guard = tgtGuard and + v = tgtVal + or + exists(Guard g0, GuardValue v0 | + guardControls(g0, v0, tgtGuard, tgtVal) and + impliesStep(g0, v0, guard, v) + ) + or + exists(Guard g0, GuardValue v0 | + guardControls(g0, v0, tgtGuard, tgtVal) and + unboundImpliesStep(g0, v0, guard, v) + ) + or + exists(SsaDefinition def0, GuardValue v0 | + ssaControls(def0, v0, tgtGuard, tgtVal) and + impliesStepSsaGuard(def0, v0, guard, v) + ) + or + exists(Guard g0, GuardValue v0 | + guardControls(g0, v0, tgtGuard, tgtVal) and + additionalImpliesStep(g0, v0, guard, v) + ) + } + + pragma[nomagic] + predicate ssaControls(SsaDefinition def, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { + exists(Guard g0 | + guardControls(g0, v, tgtGuard, tgtVal) and + guardReadsSsaVar(g0, def) + ) + or + exists(SsaDefinition def0 | + ssaControls(def0, v, tgtGuard, tgtVal) and + impliesStepSsa(def0, v, def) + ) + } + } + + private predicate hasAValueBranchEdge(Guard guard, GuardValue v) { + guard.hasValueBranchEdge(_, _, v) + } + + private module BranchImplies = ImpliesTC; + private predicate guardControlsBranchEdge( Guard guard, BasicBlock bb1, BasicBlock bb2, GuardValue v ) { - guard.hasValueBranchEdge(bb1, bb2, v) - or exists(Guard g0, GuardValue v0 | - guardControlsBranchEdge(g0, bb1, bb2, v0) and - impliesStep(g0, v0, guard, v) - ) - or - exists(Guard g0, GuardValue v0 | - guardControlsBranchEdge(g0, bb1, bb2, v0) and - unboundImpliesStep(g0, v0, guard, v) - ) - or - exists(SsaDefinition def0, GuardValue v0 | - ssaControlsBranchEdge(def0, bb1, bb2, v0) and - impliesStepSsaGuard(def0, v0, guard, v) + g0.hasValueBranchEdge(bb1, bb2, v0) and + BranchImplies::guardControls(guard, v, g0, v0) ) } - pragma[nomagic] - private predicate ssaControlsBranchEdge( - SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v - ) { - exists(Guard g0 | - guardControlsBranchEdge(g0, bb1, bb2, v) and - guardReadsSsaVar(g0, def) - ) - or - exists(SsaDefinition def0 | - ssaControlsBranchEdge(def0, bb1, bb2, v) and - impliesStepSsa(def0, v, def) - ) + signature module CustomGuardInputSig { + class ParameterPosition { + /** Gets a textual representation of this element. */ + bindingset[this] + string toString(); + } + + class ArgumentPosition { + /** Gets a textual representation of this element. */ + bindingset[this] + string toString(); + } + + /** + * Holds if the parameter position `ppos` matches the argument position + * `apos`. + */ + predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos); + + /** A non-overridable method with a boolean return value. */ + class BooleanMethod { + SsaDefinition getParameter(ParameterPosition ppos); + + Expr getAReturnExpr(); + } + + class BooleanMethodCall extends Expr { + BooleanMethod getMethod(); + + Expr getArgument(ArgumentPosition apos); + } + } + + /** + * Provides an implementation of guard implication logic for custom + * wrappers. This can be used to instantiate the `additionalImpliesStep` + * predicate. + */ + module CustomGuard { + private import CustomGuardInput + + private class ReturnExpr extends ExprFinal { + ReturnExpr() { any(BooleanMethod m).getAReturnExpr() = this } + + pragma[nomagic] + BasicBlock getBasicBlock() { result = super.getBasicBlock() } + } + + private predicate booleanReturnGuard(Guard guard, GuardValue val) { + guard instanceof ReturnExpr and exists(val.asBooleanValue()) + } + + private module ReturnImplies = ImpliesTC; + + /** + * Holds if `ret` is a return expression in a non-overridable method that + * on a return value of `retval` allows the conclusion that the `ppos`th + * parameter has the value `val`. + */ + private predicate validReturnInCustomGuard( + ReturnExpr ret, ParameterPosition ppos, boolean retval, GuardValue val + ) { + exists(BooleanMethod m, SsaDefinition param | + m.getAReturnExpr() = ret and + m.getParameter(ppos) = param and + not val instanceof TCaseMatch + | + exists(Guard g0, GuardValue v0 | + g0.directlyValueControls(ret.getBasicBlock(), v0) and + BranchImplies::ssaControls(param, val, g0, v0) and + retval = [true, false] + ) + or + ReturnImplies::ssaControls(param, val, ret, + any(GuardValue r | r.asBooleanValue() = retval)) + ) + } + + /** + * Gets a non-overridable method with a boolean return value that performs a check + * on the `ppos`th parameter. A return value equal to `retval` allows us to conclude + * that the argument has the value `val`. + */ + private BooleanMethod customGuard(ParameterPosition ppos, boolean retval, GuardValue val) { + forex(ReturnExpr ret | + result.getAReturnExpr() = ret and + not ret.(ConstantExpr).asBooleanValue() = retval.booleanNot() + | + validReturnInCustomGuard(ret, ppos, retval, val) + ) + } + + /** + * Holds if the assumption that `g1` has been evaluated to `v1` implies that + * `g2` has been evaluated to `v2`, that is, the evaluation of `g2` to `v2` + * dominates the evaluation of `g1` to `v1`. + * + * This predicate covers the implication steps that arise from calls to + * custom guard wrappers. + */ + predicate additionalImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { + exists(BooleanMethodCall call, ParameterPosition ppos, ArgumentPosition apos | + g1 = call and + call.getMethod() = customGuard(ppos, v1.asBooleanValue(), v2) and + call.getArgument(apos) = g2 and + parameterMatch(pragma[only_bind_out](ppos), pragma[only_bind_out](apos)) + ) + } } /** From 16c5b57953fef53fe94e3d1585c62648f55df5c2 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 15 May 2025 16:07:47 +0200 Subject: [PATCH 317/340] Shared: Extend the shared Guards library with support for exception branch points. --- .../controlflow/codeql/controlflow/Guards.qll | 34 +++++++++++++++++-- 1 file changed, 32 insertions(+), 2 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 7d9b9fe283f..62308a6a105 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -37,6 +37,8 @@ signature module InputSig { string toString(); } + class ExceptionSuccessor extends SuccessorType; + class ConditionalSuccessor extends SuccessorType { /** Gets the Boolean value of this successor. */ boolean getValue(); @@ -187,7 +189,8 @@ module Make Input> { private newtype TGuardValue = TValue(TAbstractSingleValue val, Boolean isVal) or - TCaseMatch(Case c, Boolean match) + TCaseMatch(Case c, Boolean match) or + TException(Boolean throws) private class AbstractSingleValue extends TAbstractSingleValue { /** Gets a textual representation of this value. */ @@ -221,6 +224,11 @@ module Make Input> { this = TCaseMatch(c, match) and result = TCaseMatch(c, match.booleanNot()) ) + or + exists(boolean throws | + this = TException(throws) and + result = TException(throws.booleanNot()) + ) } /** Holds if this value represents `null`. */ @@ -235,6 +243,9 @@ module Make Input> { /** Gets the constant that this value represents, if any. */ ConstantValue asConstantValue() { this = TValue(TValueConstant(result), true) } + /** Holds if this value represents throwing an exception. */ + predicate isThrowsException() { this = TException(true) } + /** Gets a textual representation of this value. */ string toString() { result = this.asBooleanValue().toString() @@ -257,6 +268,12 @@ module Make Input> { match = false and result = "non-match " + s ) ) + or + exists(boolean throws | this = TException(throws) | + throws = true and result = "exception" + or + throws = false and result = "no exception" + ) } } @@ -288,6 +305,15 @@ module Make Input> { e instanceof NonNullExpr and v = TValue(TValueNull(), false) } + private predicate exceptionBranchPoint(BasicBlock bb1, BasicBlock normalSucc, BasicBlock excSucc) { + exists(SuccessorType norm, ExceptionSuccessor exc | + bb1.getASuccessor(norm) = normalSucc and + bb1.getASuccessor(exc) = excSucc and + normalSucc != excSucc and + not norm instanceof ExceptionSuccessor + ) + } + private predicate branchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { exists(ConditionalSuccessor s | bb1.getASuccessor(s) = bb2 and @@ -307,6 +333,10 @@ module Make Input> { v = TCaseMatch(c, false) and c.nonMatchEdge(bb1, bb2) ) + or + exceptionBranchPoint(bb1, bb2, _) and v = TException(false) + or + exceptionBranchPoint(bb1, _, bb2) and v = TException(true) } pragma[nomagic] @@ -399,7 +429,7 @@ module Make Input> { bindingset[g1, v1] pragma[inline_late] private predicate unboundBaseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { - g1.(IdExpr).getEqualChildExpr() = g2 and v1 = v2 + g1.(IdExpr).getEqualChildExpr() = g2 and v1 = v2 and not v1 instanceof TException or exists(ConditionalExpr cond, boolean branch, Expr e, GuardValue ev | cond = g1 and From c212d0ac8fbc15a0ca898b1cf6b2be5cb110b452 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 20 May 2025 14:00:10 +0200 Subject: [PATCH 318/340] Shared: Improve shared guards lib. --- .../controlflow/codeql/controlflow/Guards.qll | 122 +++++++++++------- 1 file changed, 77 insertions(+), 45 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 62308a6a105..e30f87341ce 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -299,12 +299,6 @@ module Make Input> { v = TValue(TValueConstant(c.asConstantValue()), true) } - private predicate exprHasValue(Expr e, GuardValue v) { - constantHasValue(e, v) - or - e instanceof NonNullExpr and v = TValue(TValueNull(), false) - } - private predicate exceptionBranchPoint(BasicBlock bb1, BasicBlock normalSucc, BasicBlock excSucc) { exists(SuccessorType norm, ExceptionSuccessor exc | bb1.getASuccessor(norm) = normalSucc and @@ -426,30 +420,6 @@ module Make Input> { branch = false and result = cond.getElse() } - bindingset[g1, v1] - pragma[inline_late] - private predicate unboundBaseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { - g1.(IdExpr).getEqualChildExpr() = g2 and v1 = v2 and not v1 instanceof TException - or - exists(ConditionalExpr cond, boolean branch, Expr e, GuardValue ev | - cond = g1 and - e = getBranchExpr(cond, branch) and - exprHasValue(e, ev) and - disjointValues(v1, ev) - | - // g1 === g2 ? e : ...; - // g1 === g2 ? ... : e; - g2 = cond.getCondition() and - v2 = TValue(TValueTrue(), branch.booleanNot()) - or - // g1 === ... ? g2 : e - // g1 === ... ? e : g2 - g2 = getBranchExpr(cond, branch.booleanNot()) and - v2 = v1 and - not exprHasValue(g2, v2) // disregard trivial guard - ) - } - private predicate baseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { g1.(AndExpr).getAnOperand() = g2 and v1 = TValue(TValueTrue(), true) and v2 = v1 or @@ -532,15 +502,17 @@ module Make Input> { private import LogicInput private predicate guardControlsPhiBranch( - Guard guard, GuardValue v, SsaPhiNode phi, Expr input, BasicBlock bbInput, BasicBlock bbPhi + Guard guard, GuardValue v, SsaPhiNode phi, SsaDefinition inp ) { - exists(SsaWriteDefinition inp | - phi.hasInputFromBlock(inp, bbInput) and + exists(BasicBlock bbPhi | + phi.hasInputFromBlock(inp, _) and phi.getBasicBlock() = bbPhi and - inp.getDefinition() = input and - guard.directlyValueControls(bbInput, v) and guard.getBasicBlock().strictlyDominates(bbPhi) and - not guard.directlyValueControls(bbPhi, _) + not guard.directlyValueControls(bbPhi, _) and + forex(BasicBlock bbInput | phi.hasInputFromBlock(inp, bbInput) | + guard.directlyValueControls(bbInput, v) or + guard.hasValueBranchEdge(bbInput, bbPhi, v) + ) ) } @@ -552,13 +524,12 @@ module Make Input> { * This makes `phi` similar to the conditional `phi = guard==v ? input : ...`. */ private predicate guardDeterminesPhiInput(Guard guard, GuardValue v, SsaPhiNode phi, Expr input) { - exists(GuardValue dv, BasicBlock bbInput, BasicBlock bbPhi | - guardControlsPhiBranch(guard, v, phi, input, bbInput, bbPhi) and + exists(GuardValue dv, SsaWriteDefinition inp | + guardControlsPhiBranch(guard, v, phi, inp) and + inp.getDefinition() = input and dv = v.getDualValue() and - forall(BasicBlock other | phi.hasInputFromBlock(_, other) and other != bbInput | - guard.directlyValueControls(other, dv) - or - guard.hasValueBranchEdge(other, bbPhi, dv) + forall(SsaDefinition other | phi.hasInputFromBlock(other, _) and other != inp | + guardControlsPhiBranch(guard, dv, phi, other) ) ) } @@ -702,14 +673,67 @@ module Make Input> { or exists(boolean isNull | additionalNullCheck(g1, v1, g2, isNull) and - v2 = TValue(TValueNull(), isNull) + v2 = TValue(TValueNull(), isNull) and + not (g2 instanceof NonNullExpr and isNull = false) // disregard trivial guard + ) + } + + /** + * Holds if `g` evaluating to `v` implies that `def` evaluates to `ssaVal`. + * The included set of implications is somewhat restricted to avoid a + * recursive dependency on `exprHasValue`. + */ + private predicate baseSsaValueCheck(SsaDefinition def, GuardValue ssaVal, Guard g, GuardValue v) { + exists(Guard g0, GuardValue v0 | + guardReadsSsaVar(g0, def) and v0 = ssaVal + or + baseSsaValueCheck(def, ssaVal, g0, v0) + | + impliesStep(g, v, g0, v0) + ) + } + + private predicate exprHasValue(Expr e, GuardValue v) { + constantHasValue(e, v) + or + e instanceof NonNullExpr and v = TValue(TValueNull(), false) + or + exprHasValue(e.(IdExpr).getEqualChildExpr(), v) + or + exists(SsaDefinition def, Guard g, GuardValue gv | + e = def.getARead() and + g.directlyValueControls(e.getBasicBlock(), gv) and + baseSsaValueCheck(def, v, g, gv) + ) + or + exists(SsaWriteDefinition def | + exprHasValue(def.getDefinition(), v) and + e = def.getARead() ) } bindingset[g1, v1] pragma[inline_late] private predicate unboundImpliesStep(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { - unboundBaseImpliesStep(g1, v1, g2, v2) + g1.(IdExpr).getEqualChildExpr() = g2 and v1 = v2 and not v1 instanceof TException + or + exists(ConditionalExpr cond, boolean branch, Expr e, GuardValue ev | + cond = g1 and + e = getBranchExpr(cond, branch) and + exprHasValue(e, ev) and + disjointValues(v1, ev) + | + // g1 === g2 ? e : ...; + // g1 === g2 ? ... : e; + g2 = cond.getCondition() and + v2 = TValue(TValueTrue(), branch.booleanNot()) + or + // g1 === ... ? g2 : e + // g1 === ... ? e : g2 + g2 = getBranchExpr(cond, branch.booleanNot()) and + v2 = v1 and + not exprHasValue(g2, v2) // disregard trivial guard + ) } bindingset[def1, v1] @@ -742,7 +766,11 @@ module Make Input> { * Calculates the transitive closure of all the guard implication steps * starting from a given set of base cases. */ - private module ImpliesTC { + module ImpliesTC { + /** + * Holds if `tgtGuard` evaluating to `tgtVal` implies that `guard` + * evaluates to `v`. + */ pragma[nomagic] predicate guardControls(Guard guard, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { baseGuardValue(tgtGuard, tgtVal) and @@ -770,6 +798,10 @@ module Make Input> { ) } + /** + * Holds if `tgtGuard` evaluating to `tgtVal` implies that `def` + * evaluates to `v`. + */ pragma[nomagic] predicate ssaControls(SsaDefinition def, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { exists(Guard g0 | From 73ae613b7af5fb4a6aeee274fb678000192119ac Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 08:46:42 +0200 Subject: [PATCH 319/340] Shared: Many tweaks to Guards. --- .../controlflow/codeql/controlflow/Guards.qll | 93 +++++++++++++++++-- 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index e30f87341ce..54ee848bd87 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -234,6 +234,9 @@ module Make Input> { /** Holds if this value represents `null`. */ predicate isNullValue() { this = TValue(TValueNull(), true) } + /** Holds if this value represents `null` or non-`null` as indicated by `isNull`. */ + predicate isNullness(boolean isNull) { this = TValue(TValueNull(), isNull) } + /** Gets the integer that this value represents, if any. */ int asIntValue() { this = TValue(TValueInt(result), true) } @@ -320,17 +323,19 @@ module Make Input> { ) ) or - exists(Case c | + exceptionBranchPoint(bb1, bb2, _) and v = TException(false) + or + exceptionBranchPoint(bb1, _, bb2) and v = TException(true) + } + + private predicate caseBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v, Expr switchExpr) { + exists(Case c | switchExpr = c.getSwitchExpr() | v = TCaseMatch(c, true) and c.matchEdge(bb1, bb2) or v = TCaseMatch(c, false) and c.nonMatchEdge(bb1, bb2) ) - or - exceptionBranchPoint(bb1, bb2, _) and v = TException(false) - or - exceptionBranchPoint(bb1, _, bb2) and v = TException(true) } pragma[nomagic] @@ -362,12 +367,16 @@ module Make Input> { */ final class PreGuard extends ExprFinal { /** - * Holds if this guard is the last node in `bb1` and that its successor is - * `bb2` exactly when evaluating to `v`. + * Holds if this guard evaluating to `v` corresponds to taking the edge + * from `bb1` to `bb2`. For ordinary conditional branching this guard is + * the last node in `bb1`, but for switch case matching it is the switch + * expression, which may either be in `bb1` or an earlier basic block. */ predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { bb1.getLastNode() = this.getControlFlowNode() and branchEdge(bb1, bb2, v) + or + caseBranchEdge(bb1, bb2, v, this) } /** @@ -457,6 +466,12 @@ module Make Input> { BasicBlock getBasicBlock(); Expr getARead(); + + /** Gets a textual representation of this SSA definition. */ + string toString(); + + /** Gets the location of this SSA definition. */ + Location getLocation(); } class SsaWriteDefinition extends SsaDefinition { @@ -549,6 +564,9 @@ module Make Input> { other.getARead() = guard and eqtest.directlyControls(guard.getBasicBlock(), branch) ) + or + // An expression `x = ...` can be considered as a read of `x`. + guard.(IdExpr).getEqualChildExpr() = def.(SsaWriteDefinition).getDefinition() } private predicate valueStep(Expr e1, Expr e2) { @@ -649,7 +667,7 @@ module Make Input> { ) } - private predicate impliesStep(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { + private predicate impliesStep1(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { baseImpliesStep(g1, v1, g2, v2) or exists(SsaDefinition def, Expr e | @@ -689,7 +707,7 @@ module Make Input> { or baseSsaValueCheck(def, ssaVal, g0, v0) | - impliesStep(g, v, g0, v0) + impliesStep1(g, v, g0, v0) ) } @@ -712,6 +730,16 @@ module Make Input> { ) } + private predicate impliesStep2(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { + impliesStep1(g1, v1, g2, v2) + or + exists(Expr nonnull | + exprHasValue(nonnull, v2) and + eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and + v2 = TValue(TValueNull(), false) + ) + } + bindingset[g1, v1] pragma[inline_late] private predicate unboundImpliesStep(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { @@ -779,7 +807,7 @@ module Make Input> { or exists(Guard g0, GuardValue v0 | guardControls(g0, v0, tgtGuard, tgtVal) and - impliesStep(g0, v0, guard, v) + impliesStep2(g0, v0, guard, v) ) or exists(Guard g0, GuardValue v0 | @@ -816,6 +844,27 @@ module Make Input> { } } + private predicate booleanGuard(Guard guard, GuardValue val) { + exists(guard) and exists(val.asBooleanValue()) + } + + private module BooleanImplies = ImpliesTC; + + /** INTERNAL: Don't use. */ + predicate boolImplies(Guard g1, GuardValue v1, Guard g2, GuardValue v2) { + BooleanImplies::guardControls(g2, v2, g1, v1) and + g2 != g1 + } + + /** + * Holds if `guard` evaluating to `v` implies that `e` is guaranteed to be + * null if `isNull` is true, and non-null if `isNull` is false. + */ + predicate nullGuard(Guard guard, GuardValue v, Expr e, boolean isNull) { + impliesStep2(guard, v, e, TValue(TValueNull(), isNull)) or + additionalImpliesStep(guard, v, e, TValue(TValueNull(), isNull)) + } + private predicate hasAValueBranchEdge(Guard guard, GuardValue v) { guard.hasValueBranchEdge(_, _, v) } @@ -831,6 +880,30 @@ module Make Input> { ) } + /** + * Holds if `def` evaluating to `v` controls the control-flow branch + * edge from `bb1` to `bb2`. That is, following the edge from `bb1` to + * `bb2` implies that `def` evaluated to `v`. + */ + predicate ssaControlsBranchEdge(SsaDefinition def, BasicBlock bb1, BasicBlock bb2, GuardValue v) { + exists(Guard g0, GuardValue v0 | + g0.hasValueBranchEdge(bb1, bb2, v0) and + BranchImplies::ssaControls(def, v, g0, v0) + ) + } + + /** + * Holds if `def` evaluating to `v` controls the basic block `bb`. + * That is, execution of `bb` implies that `def` evaluated to `v`. + */ + predicate ssaControls(SsaDefinition def, BasicBlock bb, GuardValue v) { + exists(BasicBlock guard, BasicBlock succ | + ssaControlsBranchEdge(def, guard, succ, v) and + dominatingEdge(guard, succ) and + succ.dominates(bb) + ) + } + signature module CustomGuardInputSig { class ParameterPosition { /** Gets a textual representation of this element. */ From f772493f4ccf83a04fd698c8f6a6c9ae6a52bc38 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Fri, 23 May 2025 15:21:01 +0200 Subject: [PATCH 320/340] Shared: Elaborate qldoc. --- .../controlflow/codeql/controlflow/Guards.qll | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 54ee848bd87..ff616147fc0 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -23,9 +23,29 @@ * } * ``` * + * The provided predicates are separated into general "controls" predicates and + * "directly controls" predicates. The former use all possible implication + * logic as described above, whereas the latter only use control flow dominance + * of the corresponding conditional successor edges. + * + * In some cases, a guard may have a successor edge that can be relevant for + * controlling the input to an SSA phi node, but does not dominate the + * preceding block. To support this, the `hasBranchEdge` and + * `controlsBranchEdge` predicates are provided, where the former only uses the + * control flow graph similar to the `directlyControls` predicate, and the + * latter uses the full implication logic. + * + * All of these predicates are also available in the more general form that refers + * to `GuardValue`s instead of `boolean`s. + * * The implementation is nested in two parameterized modules intended to * facilitate multiple instantiations of the nested module with different - * precision levels + * precision levels. For example, more implications are available if the result + * of Range Analysis is available, but Range Analysis depends on Guards. This + * allows an initial instantiation of the `Logic` module without Range Analysis + * that can be used as input to Range Analysis, and a second instantiation + * using the result of Range Analysis to provide a final and more complete + * controls relation. */ private import codeql.util.Boolean @@ -178,6 +198,7 @@ signature module InputSig { } } +/** Provides guards-related predicates and classes. */ module Make Input> { private import Input @@ -513,6 +534,10 @@ module Make Input> { } } + /** + * Provides the `Guard` class with suitable 'controls' predicates augmented + * with logical implications based on SSA. + */ module Logic { private import LogicInput @@ -1016,7 +1041,8 @@ module Make Input> { /** * A guard. This may be any expression whose value determines subsequent - * control flow. + * control flow. It may also be a switch case, which as a guard is considered + * to evaluate to either true or false depending on whether the case matches. */ final class Guard extends PreGuard { /** From b19bff9a4e80d4bf825cc3d460ba7916a311ec42 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 26 May 2025 16:02:37 +0200 Subject: [PATCH 321/340] Shared: Switch case guards to be the case statements. --- .../controlflow/codeql/controlflow/Guards.qll | 113 ++++++++---------- 1 file changed, 49 insertions(+), 64 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index ff616147fc0..c991d44f2e8 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -106,13 +106,15 @@ signature module InputSig { predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2); - class Expr { - /** Gets a textual representation of this expression. */ + class AstNode { + /** Gets a textual representation of this AST node. */ string toString(); - /** Gets the location of this expression. */ + /** Gets the location of this AST node. */ Location getLocation(); + } + class Expr extends AstNode { /** Gets the associated control flow node. */ ControlFlowNode getControlFlowNode(); @@ -137,12 +139,7 @@ signature module InputSig { class NonNullExpr extends Expr; - class Case { - /** Gets a textual representation of this switch case. */ - string toString(); - - Location getLocation(); - + class Case extends AstNode { Expr getSwitchExpr(); predicate isDefaultCase(); @@ -210,7 +207,6 @@ module Make Input> { private newtype TGuardValue = TValue(TAbstractSingleValue val, Boolean isVal) or - TCaseMatch(Case c, Boolean match) or TException(Boolean throws) private class AbstractSingleValue extends TAbstractSingleValue { @@ -233,7 +229,7 @@ module Make Input> { * - null vs. not null * - true vs. false * - evaluating to a specific value vs. evaluating to any other value - * - matching a specific case vs. not matching that case + * - throwing an exception vs. not throwing an exception */ GuardValue getDualValue() { exists(AbstractSingleValue val, boolean isVal | @@ -241,11 +237,6 @@ module Make Input> { result = TValue(val, isVal.booleanNot()) ) or - exists(Case c, boolean match | - this = TCaseMatch(c, match) and - result = TCaseMatch(c, match.booleanNot()) - ) - or exists(boolean throws | this = TException(throws) and result = TException(throws.booleanNot()) @@ -280,19 +271,6 @@ module Make Input> { this = TValue(val, false) and result = "not " + val.toString() ) or - exists(Case c, boolean match, string s | this = TCaseMatch(c, match) | - ( - exists(ConstantExpr ce | c.asConstantCase() = ce and s = ce.toString()) - or - not exists(c.asConstantCase()) and s = c.toString() - ) and - ( - match = true and result = "match " + s - or - match = false and result = "non-match " + s - ) - ) - or exists(boolean throws | this = TException(throws) | throws = true and result = "exception" or @@ -349,14 +327,12 @@ module Make Input> { exceptionBranchPoint(bb1, _, bb2) and v = TException(true) } - private predicate caseBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v, Expr switchExpr) { - exists(Case c | switchExpr = c.getSwitchExpr() | - v = TCaseMatch(c, true) and - c.matchEdge(bb1, bb2) - or - v = TCaseMatch(c, false) and - c.nonMatchEdge(bb1, bb2) - ) + private predicate caseBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v, Case c) { + v = TValue(TValueTrue(), true) and + c.matchEdge(bb1, bb2) + or + v = TValue(TValueTrue(), false) and + c.nonMatchEdge(bb1, bb2) } pragma[nomagic] @@ -367,26 +343,22 @@ module Make Input> { eqtest.polarity() = polarity } - private predicate caseGuard(PreGuard g, Case c, Expr switchExpr) { - g.hasValueBranchEdge(_, _, TCaseMatch(c, _)) and - switchExpr = c.getSwitchExpr() - } - - private predicate constcaseEquality(PreGuard g, Expr e1, ConstantExpr e2, GuardValue eqval) { + private predicate constcaseEquality(PreGuard g, Expr e1, ConstantExpr e2) { exists(Case c | - caseGuard(g, c, e1) and - c.asConstantCase() = e2 and - eqval = TCaseMatch(c, true) + g = c and + e1 = c.getSwitchExpr() and + e2 = c.asConstantCase() ) } - final private class ExprFinal = Expr; + final private class FinalAstNode = AstNode; /** * A guard. This may be any expression whose value determines subsequent - * control flow. + * control flow. It may also be a switch case, which as a guard is considered + * to evaluate to either true or false depending on whether the case matches. */ - final class PreGuard extends ExprFinal { + final class PreGuard extends FinalAstNode { /** * Holds if this guard evaluating to `v` corresponds to taking the edge * from `bb1` to `bb2`. For ordinary conditional branching this guard is @@ -394,7 +366,7 @@ module Make Input> { * expression, which may either be in `bb1` or an earlier basic block. */ predicate hasValueBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v) { - bb1.getLastNode() = this.getControlFlowNode() and + bb1.getLastNode() = this.(Expr).getControlFlowNode() and branchEdge(bb1, bb2, v) or caseBranchEdge(bb1, bb2, v, this) @@ -435,12 +407,23 @@ module Make Input> { * Holds if this guard tests equality between `e1` and `e2` upon evaluating * to `eqval`. */ - predicate isEquality(Expr e1, Expr e2, GuardValue eqval) { - eqtestHasOperands(this, e1, e2, eqval.asBooleanValue()) + predicate isEquality(Expr e1, Expr e2, boolean eqval) { + eqtestHasOperands(this, e1, e2, eqval) or - constcaseEquality(this, e1, e2, eqval) + constcaseEquality(this, e1, e2) and eqval = true or - constcaseEquality(this, e2, e1, eqval) + constcaseEquality(this, e2, e1) and eqval = true + } + + /** + * Gets the basic block of this guard. For expressions, this is the basic + * block of the expression itself, and for switch cases, this is the basic + * block of the expression being compared against the cases. + */ + BasicBlock getBasicBlock() { + result = this.(Expr).getBasicBlock() + or + result = this.(Case).getSwitchExpr().getBasicBlock() } } @@ -458,7 +441,7 @@ module Make Input> { g1.(NotExpr).getOperand() = g2 and v1.asBooleanValue().booleanNot() = v2.asBooleanValue() or exists(GuardValue eqval, ConstantExpr constant, GuardValue cv | - g1.isEquality(g2, constant, eqval) and + g1.isEquality(g2, constant, eqval.asBooleanValue()) and constantHasValue(constant, cv) | v1 = eqval and v2 = cv @@ -471,13 +454,14 @@ module Make Input> { v2 = TValue(TValueNull(), false) ) or - exists(Case c1, Case c2, Expr switchExpr | - caseGuard(g1, c1, switchExpr) and - v1 = TCaseMatch(c1, true) and + exists(Case c1, Expr switchExpr | + g1 = c1 and c1.isDefaultCase() and - caseGuard(g2, c2, switchExpr) and - v2 = TCaseMatch(c2, false) and - c1 != c2 + c1.getSwitchExpr() = switchExpr and + v1.asBooleanValue() = true and + g2.(Case).getSwitchExpr() = switchExpr and + v2.asBooleanValue() = false and + g1 != g2 ) } @@ -970,7 +954,9 @@ module Make Input> { module CustomGuard { private import CustomGuardInput - private class ReturnExpr extends ExprFinal { + final private class FinalExpr = Expr; + + private class ReturnExpr extends FinalExpr { ReturnExpr() { any(BooleanMethod m).getAReturnExpr() = this } pragma[nomagic] @@ -993,8 +979,7 @@ module Make Input> { ) { exists(BooleanMethod m, SsaDefinition param | m.getAReturnExpr() = ret and - m.getParameter(ppos) = param and - not val instanceof TCaseMatch + m.getParameter(ppos) = param | exists(Guard g0, GuardValue v0 | g0.directlyValueControls(ret.getBasicBlock(), v0) and From 378209a6ad0699efe40aecf4d1afcd3e09f97fe6 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 27 May 2025 14:19:01 +0200 Subject: [PATCH 322/340] Shared: Simplify and improve joins. --- .../controlflow/codeql/controlflow/Guards.qll | 43 ++++++++++--------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index c991d44f2e8..bbaea7b87ad 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -244,7 +244,10 @@ module Make Input> { } /** Holds if this value represents `null`. */ - predicate isNullValue() { this = TValue(TValueNull(), true) } + predicate isNullValue() { this.isNullness(true) } + + /** Holds if this value represents non-`null`. */ + predicate isNonNullValue() { this.isNullness(false) } /** Holds if this value represents `null` or non-`null` as indicated by `isNull`. */ predicate isNullness(boolean isNull) { this = TValue(TValueNull(), isNull) } @@ -292,13 +295,13 @@ module Make Input> { } private predicate constantHasValue(ConstantExpr c, GuardValue v) { - c.isNull() and v = TValue(TValueNull(), true) + c.isNull() and v.isNullValue() or - v = TValue(TValueTrue(), c.asBooleanValue()) + v.asBooleanValue() = c.asBooleanValue() or - v = TValue(TValueInt(c.asIntegerValue()), true) + v.asIntValue() = c.asIntegerValue() or - v = TValue(TValueConstant(c.asConstantValue()), true) + v.asConstantValue() = c.asConstantValue() } private predicate exceptionBranchPoint(BasicBlock bb1, BasicBlock normalSucc, BasicBlock excSucc) { @@ -328,10 +331,10 @@ module Make Input> { } private predicate caseBranchEdge(BasicBlock bb1, BasicBlock bb2, GuardValue v, Case c) { - v = TValue(TValueTrue(), true) and + v.asBooleanValue() = true and c.matchEdge(bb1, bb2) or - v = TValue(TValueTrue(), false) and + v.asBooleanValue() = false and c.nonMatchEdge(bb1, bb2) } @@ -390,7 +393,7 @@ module Make Input> { * `bb2` exactly when evaluating to `branch`. */ predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - this.hasValueBranchEdge(bb1, bb2, TValue(TValueTrue(), branch)) + this.hasValueBranchEdge(bb1, bb2, any(GuardValue gv | gv.asBooleanValue() = branch)) } /** @@ -400,7 +403,7 @@ module Make Input> { * That is, `bb` is dominated by the `branch`-successor edge of this guard. */ predicate directlyControls(BasicBlock bb, boolean branch) { - this.directlyValueControls(bb, TValue(TValueTrue(), branch)) + this.directlyValueControls(bb, any(GuardValue gv | gv.asBooleanValue() = branch)) } /** @@ -434,9 +437,9 @@ module Make Input> { } private predicate baseImpliesStep(PreGuard g1, GuardValue v1, PreGuard g2, GuardValue v2) { - g1.(AndExpr).getAnOperand() = g2 and v1 = TValue(TValueTrue(), true) and v2 = v1 + g1.(AndExpr).getAnOperand() = g2 and v1.asBooleanValue() = true and v2 = v1 or - g1.(OrExpr).getAnOperand() = g2 and v1 = TValue(TValueTrue(), false) and v2 = v1 + g1.(OrExpr).getAnOperand() = g2 and v1.asBooleanValue() = false and v2 = v1 or g1.(NotExpr).getOperand() = g2 and v1.asBooleanValue().booleanNot() = v2.asBooleanValue() or @@ -451,7 +454,7 @@ module Make Input> { or exists(NonNullExpr nonnull | eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and - v2 = TValue(TValueNull(), false) + v2.isNonNullValue() ) or exists(Case c1, Expr switchExpr | @@ -700,7 +703,7 @@ module Make Input> { or exists(boolean isNull | additionalNullCheck(g1, v1, g2, isNull) and - v2 = TValue(TValueNull(), isNull) and + v2.isNullness(isNull) and not (g2 instanceof NonNullExpr and isNull = false) // disregard trivial guard ) } @@ -723,7 +726,7 @@ module Make Input> { private predicate exprHasValue(Expr e, GuardValue v) { constantHasValue(e, v) or - e instanceof NonNullExpr and v = TValue(TValueNull(), false) + e instanceof NonNullExpr and v.isNonNullValue() or exprHasValue(e.(IdExpr).getEqualChildExpr(), v) or @@ -745,7 +748,7 @@ module Make Input> { exists(Expr nonnull | exprHasValue(nonnull, v2) and eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and - v2 = TValue(TValueNull(), false) + v2.isNonNullValue() ) } @@ -763,7 +766,7 @@ module Make Input> { // g1 === g2 ? e : ...; // g1 === g2 ? ... : e; g2 = cond.getCondition() and - v2 = TValue(TValueTrue(), branch.booleanNot()) + v2.asBooleanValue() = branch.booleanNot() or // g1 === ... ? g2 : e // g1 === ... ? e : g2 @@ -870,8 +873,8 @@ module Make Input> { * null if `isNull` is true, and non-null if `isNull` is false. */ predicate nullGuard(Guard guard, GuardValue v, Expr e, boolean isNull) { - impliesStep2(guard, v, e, TValue(TValueNull(), isNull)) or - additionalImpliesStep(guard, v, e, TValue(TValueNull(), isNull)) + impliesStep2(guard, v, e, any(GuardValue gv | gv.isNullness(isNull))) or + additionalImpliesStep(guard, v, e, any(GuardValue gv | gv.isNullness(isNull))) } private predicate hasAValueBranchEdge(Guard guard, GuardValue v) { @@ -1066,7 +1069,7 @@ module Make Input> { * also considers additional logical reasoning. */ predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - this.valueControlsBranchEdge(bb1, bb2, TValue(TValueTrue(), branch)) + this.valueControlsBranchEdge(bb1, bb2, any(GuardValue gv | gv.asBooleanValue() = branch)) } /** @@ -1078,7 +1081,7 @@ module Make Input> { * also considers additional logical reasoning. */ predicate controls(BasicBlock bb, boolean branch) { - this.valueControls(bb, TValue(TValueTrue(), branch)) + this.valueControls(bb, any(GuardValue gv | gv.asBooleanValue() = branch)) } } } From 22d5dc999a385acc3bea0301b3279876fea087f9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 16 Jun 2025 13:05:04 +0200 Subject: [PATCH 323/340] Shared: Bugfix for unique value implication. --- java/ql/test/library-tests/guards/Guards.java | 16 ++++++++++++++++ .../library-tests/guards/GuardsInline.expected | 4 ++++ shared/controlflow/codeql/controlflow/Guards.qll | 1 + 3 files changed, 21 insertions(+) diff --git a/java/ql/test/library-tests/guards/Guards.java b/java/ql/test/library-tests/guards/Guards.java index a524c237f13..877c1827166 100644 --- a/java/ql/test/library-tests/guards/Guards.java +++ b/java/ql/test/library-tests/guards/Guards.java @@ -127,4 +127,20 @@ public class Guards { chk(); // $ guarded='o != null:false' guarded=g(1):false } } + + void t7(int[] a) { + boolean found = false; + for (int i = 0; i < a.length; i++) { + boolean answer = a[i] == 42; + if (answer) { + found = true; + } + if (found) { + chk(); // $ guarded=found:true guarded='i < a.length:true' + } + } + if (found) { + chk(); // $ guarded=found:true guarded='i < a.length:false' + } + } } diff --git a/java/ql/test/library-tests/guards/GuardsInline.expected b/java/ql/test/library-tests/guards/GuardsInline.expected index 665424c2f5b..1aaf791acab 100644 --- a/java/ql/test/library-tests/guards/GuardsInline.expected +++ b/java/ql/test/library-tests/guards/GuardsInline.expected @@ -54,3 +54,7 @@ | Guards.java:125:7:125:11 | chk(...) | 'o != null:true' | | Guards.java:127:7:127:11 | chk(...) | 'o != null:false' | | Guards.java:127:7:127:11 | chk(...) | g(1):false | +| Guards.java:139:9:139:13 | chk(...) | 'i < a.length:true' | +| Guards.java:139:9:139:13 | chk(...) | found:true | +| Guards.java:143:7:143:11 | chk(...) | 'i < a.length:false' | +| Guards.java:143:7:143:11 | chk(...) | found:true | diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index bbaea7b87ad..9733114613b 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -647,6 +647,7 @@ module Make Input> { */ private predicate uniqueValue(SsaDefinition v, Expr e, GuardValue k) { possibleValue(v, false, e, k) and + not possibleValue(v, true, e, k) and forex(Expr other, GuardValue otherval | possibleValue(v, _, other, otherval) and other != e | disjointValues(otherval, k) ) From a2778eee75d9640a4c8c98e56f4bbc7e93406ac7 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 14 May 2025 11:22:58 +0200 Subject: [PATCH 324/340] Java: Refactor clearlyNotNullExpr into a base case that does not rely on SSA. --- .../semmle/code/java/dataflow/NullGuards.qll | 50 +++++++++++-------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll index 2dd72d78a2e..971fc3cf072 100644 --- a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll @@ -40,35 +40,45 @@ EqualityTest varEqualityTestExpr(SsaVariable v1, SsaVariable v2, boolean isEqual isEqualExpr = result.polarity() } -/** Gets an expression that is provably not `null`. */ -Expr clearlyNotNullExpr(Expr reason) { - result instanceof ClassInstanceExpr and reason = result +Expr baseNotNullExpr() { + result instanceof ClassInstanceExpr or - result instanceof ArrayCreationExpr and reason = result + result instanceof ArrayCreationExpr or - result instanceof TypeLiteral and reason = result + result instanceof TypeLiteral or - result instanceof ThisAccess and reason = result + result instanceof ThisAccess or - result instanceof StringLiteral and reason = result + result instanceof StringLiteral or - result instanceof AddExpr and result.getType() instanceof TypeString and reason = result + result instanceof AddExpr and result.getType() instanceof TypeString or exists(Field f | result = f.getAnAccess() and (f.hasName("TRUE") or f.hasName("FALSE")) and - f.getDeclaringType().hasQualifiedName("java.lang", "Boolean") and - reason = result + f.getDeclaringType().hasQualifiedName("java.lang", "Boolean") ) or + result = any(EnumConstant c).getAnAccess() + or + result instanceof ImplicitNotNullExpr + or + result instanceof ImplicitCoercionToUnitExpr + or + result + .(MethodCall) + .getMethod() + .hasQualifiedName("com.google.common.base", "Strings", "nullToEmpty") +} + +/** Gets an expression that is provably not `null`. */ +Expr clearlyNotNullExpr(Expr reason) { + result = baseNotNullExpr() and reason = result + or result.(CastExpr).getExpr() = clearlyNotNullExpr(reason) or result.(ImplicitCastExpr).getExpr() = clearlyNotNullExpr(reason) or - result instanceof ImplicitNotNullExpr and reason = result - or - result instanceof ImplicitCoercionToUnitExpr and reason = result - or result.(AssignExpr).getSource() = clearlyNotNullExpr(reason) or exists(ConditionalExpr c, Expr r1, Expr r2 | @@ -83,14 +93,14 @@ Expr clearlyNotNullExpr(Expr reason) { guard.controls(rval.getBasicBlock(), branch) and reason = guard and rval = v.getAUse() and - result = rval + result = rval and + not result = baseNotNullExpr() ) or - exists(SsaVariable v | clearlyNotNull(v, reason) and result = v.getAUse()) - or - exists(Method m | m = result.(MethodCall).getMethod() and reason = result | - m.getDeclaringType().hasQualifiedName("com.google.common.base", "Strings") and - m.hasName("nullToEmpty") + exists(SsaVariable v | + clearlyNotNull(v, reason) and + result = v.getAUse() and + not result = baseNotNullExpr() ) } From 0607fefc57bc35d6eb89067c837cde044f2b6559 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 19 May 2025 14:31:22 +0200 Subject: [PATCH 325/340] Java: Refactor integerGuard. --- .../code/java/dataflow/IntegerGuards.qll | 121 ++++++++---------- 1 file changed, 56 insertions(+), 65 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll index 58d77b64978..a91dbced456 100644 --- a/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/IntegerGuards.qll @@ -32,6 +32,58 @@ class IntComparableExpr extends Expr { } } +/** + * Holds if `comp` evaluating to `branch` ensures that `e1` is less than `e2`. + * When `strict` is true, `e1` is strictly less than `e2`, otherwise it is less + * than or equal to `e2`. + */ +private predicate comparison(ComparisonExpr comp, boolean branch, Expr e1, Expr e2, boolean strict) { + branch = true and + e1 = comp.getLesserOperand() and + e2 = comp.getGreaterOperand() and + (if comp.isStrict() then strict = true else strict = false) + or + branch = false and + e1 = comp.getGreaterOperand() and + e2 = comp.getLesserOperand() and + (if comp.isStrict() then strict = false else strict = true) +} + +/** + * Holds if `guard` evaluating to `branch` ensures that: + * `e <= k` when `upper = true` + * `e >= k` when `upper = false` + */ +pragma[nomagic] +predicate rangeGuard(Expr guard, boolean branch, Expr e, int k, boolean upper) { + exists(EqualityTest eqtest, Expr c | + eqtest = guard and + eqtest.hasOperands(e, c) and + bounded(c, any(ZeroBound zb), k, upper, _) and + branch = eqtest.polarity() + ) + or + exists(Expr c, int val, boolean strict, int d | + bounded(c, any(ZeroBound zb), val, upper, _) and + ( + upper = true and + comparison(guard, branch, e, c, strict) and + d = -1 + or + upper = false and + comparison(guard, branch, c, e, strict) and + d = 1 + ) and + ( + strict = false and k = val + or + // e < c <= val ==> e <= c - 1 <= val - 1 + // e > c >= val ==> e >= c + 1 >= val + 1 + strict = true and k = val + d + ) + ) +} + /** * An expression that directly tests whether a given expression is equal to `k` or not. * The set of `k`s is restricted to those that are relevant for the expression or @@ -53,75 +105,14 @@ Expr integerGuard(IntComparableExpr e, boolean branch, int k, boolean is_k) { ) ) or - exists(EqualityTest eqtest, int val, Expr c, boolean upper | + exists(int val, boolean upper | + rangeGuard(result, branch, e, val, upper) and k = e.relevantInt() and - eqtest = result and - eqtest.hasOperands(e, c) and - bounded(c, any(ZeroBound zb), val, upper, _) and - is_k = false and - ( - upper = true and val < k - or - upper = false and val > k - ) and - branch = eqtest.polarity() - ) - or - exists(ComparisonExpr comp, Expr c, int val, boolean upper | - k = e.relevantInt() and - comp = result and - comp.hasOperands(e, c) and - bounded(c, any(ZeroBound zb), val, upper, _) and is_k = false | - // k <= val <= c < e, so e != k - comp.getLesserOperand() = c and - comp.isStrict() and - branch = true and - val >= k and - upper = false + upper = true and val < k // e <= val < k ==> e != k or - comp.getLesserOperand() = c and - comp.isStrict() and - branch = false and - val < k and - upper = true - or - comp.getLesserOperand() = c and - not comp.isStrict() and - branch = true and - val > k and - upper = false - or - comp.getLesserOperand() = c and - not comp.isStrict() and - branch = false and - val <= k and - upper = true - or - comp.getGreaterOperand() = c and - comp.isStrict() and - branch = true and - val <= k and - upper = true - or - comp.getGreaterOperand() = c and - comp.isStrict() and - branch = false and - val > k and - upper = false - or - comp.getGreaterOperand() = c and - not comp.isStrict() and - branch = true and - val < k and - upper = true - or - comp.getGreaterOperand() = c and - not comp.isStrict() and - branch = false and - val >= k and - upper = false + upper = false and val > k // e >= val > k ==> e != k ) } From cc13193cb6a909513294da7312f031381de38293 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 21 May 2025 14:16:11 +0200 Subject: [PATCH 326/340] Java: Replace some references to basicNullGuard. --- .../semmle/code/java/dataflow/NullGuards.qll | 19 +++++++++++++++---- .../ql/src/Language Abuse/UselessNullCheck.ql | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll index 971fc3cf072..5fde238a4b6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll @@ -306,10 +306,21 @@ private Method customNullGuard(int index, boolean retval, boolean isnull) { } /** - * `guard` is a guard expression that suggests that `v` might be null. - * - * This is equivalent to `guard = basicNullGuard(sameValue(v, _), _, true)`. + * Holds if `guard` is a guard expression that suggests that `e` might be null. + */ +predicate guardSuggestsExprMaybeNull(Expr guard, Expr e) { + guard.(EqualityTest).hasOperands(e, any(NullLiteral n)) + or + exists(MethodCall call | + call = guard and + call.getAnArgument() = e and + nullCheckMethod(call.getMethod(), _, true) + ) +} + +/** + * Holds if `guard` is a guard expression that suggests that `v` might be null. */ predicate guardSuggestsVarMaybeNull(Expr guard, SsaVariable v) { - guard = basicNullGuard(sameValue(v, _), _, true) + guardSuggestsExprMaybeNull(guard, sameValue(v, _)) } diff --git a/java/ql/src/Language Abuse/UselessNullCheck.ql b/java/ql/src/Language Abuse/UselessNullCheck.ql index 1ad1c4c8e1e..d95b528c4c4 100644 --- a/java/ql/src/Language Abuse/UselessNullCheck.ql +++ b/java/ql/src/Language Abuse/UselessNullCheck.ql @@ -18,7 +18,7 @@ import semmle.code.java.controlflow.Guards from Expr guard, Expr e, Expr reason, string msg where - guard = basicNullGuard(e, _, true) and + guardSuggestsExprMaybeNull(guard, e) and e = clearlyNotNullExpr(reason) and ( if reason instanceof Guard From 5c0dcd980d2eb474863e49d4d9f17749ff7995f9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 15 May 2025 16:23:21 +0200 Subject: [PATCH 327/340] Java: Switch to the shared Guards library. --- .../code/java/controlflow/BasicBlocks.qll | 11 + .../semmle/code/java/controlflow/Guards.qll | 627 +++++++++++------- .../java/controlflow/internal/GuardsLogic.qll | 396 ----------- .../semmle/code/java/dataflow/NullGuards.qll | 110 +-- .../semmle/code/java/dataflow/Nullness.qll | 27 +- .../code/java/dataflow/RangeAnalysis.qll | 5 +- .../semmle/code/java/dataflow/RangeUtils.qll | 2 +- .../java/dataflow/internal/DataFlowNodes.qll | 2 - .../rangeanalysis/ModulusAnalysisSpecific.qll | 2 +- .../rangeanalysis/SignAnalysisSpecific.qll | 2 +- .../code/java/security/ArithmeticCommon.qll | 1 - .../ql/src/Language Abuse/UselessNullCheck.ql | 2 +- java/ql/test/library-tests/guards/Guards.java | 30 +- .../guards/GuardsInline.expected | 35 +- .../test/library-tests/guards/GuardsInline.ql | 9 + .../library-tests/guards12/guard.expected | 8 - java/ql/test/library-tests/guards12/guard.ql | 4 +- java/ql/test/query-tests/Nullness/C.java | 2 +- .../query-tests/Nullness/NullMaybe.expected | 1 - 19 files changed, 488 insertions(+), 788 deletions(-) delete mode 100644 java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll diff --git a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll index 284ee1dad0c..7c9e58b20ce 100644 --- a/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll +++ b/java/ql/lib/semmle/code/java/controlflow/BasicBlocks.qll @@ -85,6 +85,17 @@ class BasicBlock extends BbImpl::BasicBlock { */ predicate dominates(BasicBlock bb) { super.dominates(bb) } + /** + * Holds if this basic block strictly dominates basic block `bb`. + * + * That is, all paths reaching `bb` from the entry point basic block must + * go through this basic block and this basic block is different from `bb`. + */ + predicate strictlyDominates(BasicBlock bb) { super.strictlyDominates(bb) } + + /** Gets an immediate successor of this basic block of a given type, if any. */ + BasicBlock getASuccessor(Input::SuccessorType t) { result = super.getASuccessor(t) } + /** * DEPRECATED: Use `getASuccessor` instead. * diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index 4042e7b2962..be023939b8c 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -5,9 +5,9 @@ import java private import semmle.code.java.controlflow.Dominance -private import semmle.code.java.controlflow.internal.GuardsLogic private import semmle.code.java.controlflow.internal.Preconditions private import semmle.code.java.controlflow.internal.SwitchCases +private import codeql.controlflow.Guards as SharedGuards /** * A basic block that terminates in a condition, splitting the subsequent control flow. @@ -137,68 +137,382 @@ private predicate isNonFallThroughPredecessor(SwitchCase sc, ControlFlowNode pre ) } -/** - * A condition that can be evaluated to either true or false. This can either - * be an `Expr` of boolean type that isn't a boolean literal, or a case of a - * switch statement, or a method access that acts as a precondition check. - * - * Evaluating a switch case to true corresponds to taking that switch case, and - * evaluating it to false corresponds to taking some other branch. - */ -final class Guard extends ExprParent { - Guard() { - this.(Expr).getType() instanceof BooleanType and not this instanceof BooleanLiteral - or - this instanceof SwitchCase - or - conditionCheckArgument(this, _, _) +private module GuardsInput implements SharedGuards::InputSig { + private import java as J + private import semmle.code.java.dataflow.NullGuards as NullGuards + import SuccessorType + + class ControlFlowNode = J::ControlFlowNode; + + class BasicBlock = J::BasicBlock; + + predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2) { J::dominatingEdge(bb1, bb2) } + + class AstNode = ExprParent; + + class Expr = J::Expr; + + private newtype TConstantValue = + TCharValue(string c) { any(CharacterLiteral lit).getValue() = c } or + TStringValue(string value) { any(CompileTimeConstantExpr c).getStringValue() = value } or + TEnumValue(EnumConstant c) + + class ConstantValue extends TConstantValue { + string toString() { + this = TCharValue(result) + or + this = TStringValue(result) + or + exists(EnumConstant c | this = TEnumValue(c) and result = c.toString()) + } } + abstract class ConstantExpr extends Expr { + predicate isNull() { none() } + + boolean asBooleanValue() { none() } + + int asIntegerValue() { none() } + + ConstantValue asConstantValue() { none() } + } + + private class NullConstant extends ConstantExpr instanceof J::NullLiteral { + override predicate isNull() { any() } + } + + private class BooleanConstant extends ConstantExpr instanceof J::BooleanLiteral { + override boolean asBooleanValue() { result = super.getBooleanValue() } + } + + private class IntegerConstant extends ConstantExpr instanceof J::CompileTimeConstantExpr { + override int asIntegerValue() { result = super.getIntValue() } + } + + private class CharConstant extends ConstantExpr instanceof J::CharacterLiteral { + override ConstantValue asConstantValue() { result = TCharValue(super.getValue()) } + } + + private class StringConstant extends ConstantExpr instanceof J::CompileTimeConstantExpr { + override ConstantValue asConstantValue() { result = TStringValue(super.getStringValue()) } + } + + private class EnumConstantExpr extends ConstantExpr instanceof J::VarAccess { + override ConstantValue asConstantValue() { + exists(EnumConstant c | this = c.getAnAccess() and result = TEnumValue(c)) + } + } + + class NonNullExpr extends Expr { + NonNullExpr() { + this = NullGuards::baseNotNullExpr() + or + exists(Field f | + this = f.getAnAccess() and + f.isFinal() and + f.getInitializer() = NullGuards::baseNotNullExpr() + ) + } + } + + class Case extends ExprParent instanceof J::SwitchCase { + Expr getSwitchExpr() { result = super.getSelectorExpr() } + + predicate isDefaultCase() { this instanceof DefaultCase } + + ConstantExpr asConstantCase() { + exists(ConstCase cc | this = cc | + cc.getValue() = result and + strictcount(cc.getValue(_)) = 1 + ) + } + + private predicate hasPatternCaseMatchEdge(BasicBlock bb1, BasicBlock bb2, boolean isMatch) { + exists(ConditionNode patterncase | + this instanceof PatternCase and + patterncase = super.getControlFlowNode() and + bb1.getLastNode() = patterncase and + bb2.getFirstNode() = patterncase.getABranchSuccessor(isMatch) + ) + } + + predicate matchEdge(BasicBlock bb1, BasicBlock bb2) { + exists(ControlFlowNode pred | + // Pattern cases are handled as ConditionBlocks. + not this instanceof PatternCase and + bb2.getFirstNode() = super.getControlFlowNode() and + isNonFallThroughPredecessor(this, pred) and + bb1 = pred.getBasicBlock() + ) + or + this.hasPatternCaseMatchEdge(bb1, bb2, true) + } + + predicate nonMatchEdge(BasicBlock bb1, BasicBlock bb2) { + this.hasPatternCaseMatchEdge(bb1, bb2, false) + } + } + + abstract private class BinExpr extends Expr { + Expr getAnOperand() { + result = this.(BinaryExpr).getAnOperand() or result = this.(AssignOp).getSource() + } + } + + class AndExpr extends BinExpr { + AndExpr() { + this instanceof AndBitwiseExpr or + this instanceof AndLogicalExpr or + this instanceof AssignAndExpr + } + } + + class OrExpr extends BinExpr { + OrExpr() { + this instanceof OrBitwiseExpr or + this instanceof OrLogicalExpr or + this instanceof AssignOrExpr + } + } + + class NotExpr extends Expr instanceof J::LogNotExpr { + Expr getOperand() { result = this.(J::LogNotExpr).getExpr() } + } + + class IdExpr extends Expr { + IdExpr() { this instanceof AssignExpr or this instanceof CastExpr } + + Expr getEqualChildExpr() { + result = this.(AssignExpr).getSource() + or + result = this.(CastExpr).getExpr() + } + } + + private predicate objectsEquals(Method equals) { + equals.hasQualifiedName("java.util", "Objects", "equals") and + equals.getNumberOfParameters() = 2 + } + + class EqualityTest extends Expr { + EqualityTest() { + this instanceof J::EqualityTest or + this.(MethodCall).getMethod() instanceof EqualsMethod or + objectsEquals(this.(MethodCall).getMethod()) + } + + Expr getAnOperand() { + result = this.(J::EqualityTest).getAnOperand() + or + result = this.(MethodCall).getAnArgument() + or + this.(MethodCall).getMethod() instanceof EqualsMethod and + result = this.(MethodCall).getQualifier() + } + + boolean polarity() { + result = this.(J::EqualityTest).polarity() + or + result = true and not this instanceof J::EqualityTest + } + } + + class ConditionalExpr extends Expr instanceof J::ConditionalExpr { + Expr getCondition() { result = super.getCondition() } + + Expr getThen() { result = super.getTrueExpr() } + + Expr getElse() { result = super.getFalseExpr() } + } +} + +private module GuardsImpl = SharedGuards::Make; + +private module LogicInputCommon { + private import semmle.code.java.dataflow.NullGuards as NullGuards + + predicate additionalNullCheck( + GuardsImpl::PreGuard guard, GuardValue val, GuardsInput::Expr e, boolean isNull + ) { + guard.(InstanceOfExpr).getExpr() = e and val.asBooleanValue() = true and isNull = false + or + exists(MethodCall call | + call = guard and + call.getAnArgument() = e and + NullGuards::nullCheckMethod(call.getMethod(), val.asBooleanValue(), isNull) + ) + } +} + +private module LogicInput_v1 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.internal.BaseSSA + + final private class FinalBaseSsaVariable = BaseSsaVariable; + + class SsaDefinition extends FinalBaseSsaVariable { + GuardsInput::Expr getARead() { result = this.getAUse() } + } + + class SsaWriteDefinition extends SsaDefinition instanceof BaseSsaUpdate { + GuardsInput::Expr getDefinition() { + super.getDefiningExpr().(VariableAssign).getSource() = result or + super.getDefiningExpr().(AssignOp) = result + } + } + + class SsaPhiNode extends SsaDefinition instanceof BaseSsaPhiNode { + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { + super.hasInputFromBlock(inp, bb) + } + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep( + GuardsImpl::PreGuard g1, GuardValue v1, GuardsImpl::PreGuard g2, GuardValue v2 + ) { + exists(MethodCall check, int argIndex | + g1 = check and + v1.getDualValue().isThrowsException() and + conditionCheckArgument(check, argIndex, v2.asBooleanValue()) and + g2 = check.getArgument(argIndex) + ) + } +} + +private module LogicInput_v2 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.SSA as SSA + + final private class FinalSsaVariable = SSA::SsaVariable; + + class SsaDefinition extends FinalSsaVariable { + GuardsInput::Expr getARead() { result = this.getAUse() } + } + + class SsaWriteDefinition extends SsaDefinition instanceof SSA::SsaExplicitUpdate { + GuardsInput::Expr getDefinition() { + super.getDefiningExpr().(VariableAssign).getSource() = result or + super.getDefiningExpr().(AssignOp) = result + } + } + + class SsaPhiNode extends SsaDefinition instanceof SSA::SsaPhiNode { + predicate hasInputFromBlock(SsaDefinition inp, BasicBlock bb) { + super.hasInputFromBlock(inp, bb) + } + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep( + GuardsImpl::PreGuard g1, GuardValue v1, GuardsImpl::PreGuard g2, GuardValue v2 + ) { + LogicInput_v1::additionalImpliesStep(g1, v1, g2, v2) + or + CustomGuard::additionalImpliesStep(g1, v1, g2, v2) + } +} + +private module LogicInput_v3 implements GuardsImpl::LogicInputSig { + private import semmle.code.java.dataflow.IntegerGuards as IntegerGuards + import LogicInput_v2 + + predicate rangeGuard(GuardsImpl::PreGuard guard, GuardValue val, Expr e, int k, boolean upper) { + IntegerGuards::rangeGuard(guard, val.asBooleanValue(), e, k, upper) + } + + predicate additionalNullCheck = LogicInputCommon::additionalNullCheck/4; + + predicate additionalImpliesStep = LogicInput_v2::additionalImpliesStep/4; +} + +private module CustomGuardInput implements Guards_v2::CustomGuardInputSig { + private import semmle.code.java.dataflow.SSA + + private int parameterPosition() { result in [-1, any(Parameter p).getPosition()] } + + /** A parameter position represented by an integer. */ + class ParameterPosition extends int { + ParameterPosition() { this = parameterPosition() } + } + + /** An argument position represented by an integer. */ + class ArgumentPosition extends int { + ArgumentPosition() { this = parameterPosition() } + } + + /** Holds if arguments at position `apos` match parameters at position `ppos`. */ + pragma[inline] + predicate parameterMatch(ParameterPosition ppos, ArgumentPosition apos) { ppos = apos } + + final private class FinalMethod = Method; + + class BooleanMethod extends FinalMethod { + BooleanMethod() { + super.getReturnType().(PrimitiveType).hasName("boolean") and + not super.isOverridable() + } + + LogicInput_v2::SsaDefinition getParameter(ParameterPosition ppos) { + exists(Parameter p | + super.getParameter(ppos) = p and + not p.isVarargs() and + result.(SsaImplicitInit).isParameterDefinition(p) + ) + } + + GuardsInput::Expr getAReturnExpr() { + exists(ReturnStmt ret | + this = ret.getEnclosingCallable() and + ret.getResult() = result + ) + } + } + + private predicate booleanMethodCall(MethodCall call, BooleanMethod m) { + call.getMethod().getSourceDeclaration() = m + } + + class BooleanMethodCall extends GuardsInput::Expr instanceof MethodCall { + BooleanMethodCall() { booleanMethodCall(this, _) } + + BooleanMethod getMethod() { booleanMethodCall(this, result) } + + GuardsInput::Expr getArgument(ArgumentPosition apos) { result = super.getArgument(apos) } + } +} + +class GuardValue = GuardsImpl::GuardValue; + +private module CustomGuard = Guards_v2::CustomGuard; + +/** INTERNAL: Don't use. */ +module Guards_v1 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +module Guards_v2 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +module Guards_v3 = GuardsImpl::Logic; + +/** INTERNAL: Don't use. */ +predicate implies_v3(Guard g1, boolean b1, Guard g2, boolean b2) { + Guards_v3::boolImplies(g1, any(GuardValue v | v.asBooleanValue() = b1), g2, + any(GuardValue v | v.asBooleanValue() = b2)) +} + +/** + * A guard. This may be any expression whose value determines subsequent + * control flow. It may also be a switch case, which as a guard is considered + * to evaluate to either true or false depending on whether the case matches. + */ +final class Guard extends Guards_v3::Guard { /** Gets the immediately enclosing callable whose body contains this guard. */ Callable getEnclosingCallable() { result = this.(Expr).getEnclosingCallable() or result = this.(SwitchCase).getEnclosingCallable() } - /** Gets the statement containing this guard. */ - Stmt getEnclosingStmt() { - result = this.(Expr).getEnclosingStmt() or - result = this.(SwitchCase).getSwitch() or - result = this.(SwitchCase).getSwitchExpr().getEnclosingStmt() - } - - /** - * Gets the basic block containing this guard or the basic block that tests the - * applicability of this switch case -- for a pattern case this is the case statement - * itself; for a non-pattern case this is the most recent pattern case or the top of - * the switch block if there is none. - */ - BasicBlock getBasicBlock() { - // Not a switch case - result = this.(Expr).getBasicBlock() - or - // Return the closest pattern case statement before this one, including this one. - result = getClosestPrecedingPatternCase(this).getBasicBlock() - or - // Not a pattern case and no preceding pattern case -- return the top of the switch block. - not exists(getClosestPrecedingPatternCase(this)) and - result = this.(SwitchCase).getSelectorExpr().getBasicBlock() - } - - /** - * Holds if this guard is an equality test between `e1` and `e2`. The test - * can be either `==`, `!=`, `.equals`, or a switch case. If the test is - * negated, that is `!=`, then `polarity` is false, otherwise `polarity` is - * true. - */ - predicate isEquality(Expr e1, Expr e2, boolean polarity) { - exists(Expr exp1, Expr exp2 | equalityGuard(this, exp1, exp2, polarity) | - e1 = exp1 and e2 = exp2 - or - e2 = exp1 and e1 = exp2 - ) - } - /** * Holds if this guard tests whether `testedExpr` has type `testedType`. * @@ -231,211 +545,14 @@ final class Guard extends ExprParent { else restricted = false ) } - - /** - * Holds if the evaluation of this guard to `branch` corresponds to the edge - * from `bb1` to `bb2`. - */ - predicate hasBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - exists(ConditionBlock cb | - cb = bb1 and - cb.getCondition() = this and - bb2 = cb.getTestSuccessor(branch) - ) - or - exists(SwitchCase sc, ControlFlowNode pred | - sc = this and - // Pattern cases are handled as ConditionBlocks above. - not sc instanceof PatternCase and - branch = true and - bb2.getFirstNode() = sc.getControlFlowNode() and - isNonFallThroughPredecessor(sc, pred) and - bb1 = pred.getBasicBlock() - ) - or - preconditionBranchEdge(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly controls the block - * `controlled`. That is, the `true`- or `false`-successor of this guard (as - * given by `branch`) dominates `controlled`. - */ - predicate directlyControls(BasicBlock controlled, boolean branch) { - exists(ConditionBlock cb | - cb.getCondition() = this and - cb.controls(controlled, branch) - ) - or - switchCaseControls(this, controlled) and branch = true - or - preconditionControls(this, controlled, branch) - } - - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - guardControlsBranchEdge_v3(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly or indirectly controls - * the block `controlled`. That is, the evaluation of `controlled` is - * dominated by this guard evaluating to `branch`. - */ - predicate controls(BasicBlock controlled, boolean branch) { - guardControls_v3(this, controlled, branch) - } -} - -private predicate switchCaseControls(SwitchCase sc, BasicBlock bb) { - exists(BasicBlock caseblock | - // Pattern cases are handled as condition blocks - not sc instanceof PatternCase and - caseblock.getFirstNode() = sc.getControlFlowNode() and - caseblock.dominates(bb) and - // Check we can't fall through from a previous block: - forall(ControlFlowNode pred | pred = sc.getControlFlowNode().getAPredecessor() | - isNonFallThroughPredecessor(sc, pred) - ) - ) -} - -private predicate preconditionBranchEdge( - MethodCall ma, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - conditionCheckArgument(ma, _, branch) and - bb1.getLastNode() = ma.getControlFlowNode() and - bb2.getFirstNode() = bb1.getLastNode().getANormalSuccessor() -} - -private predicate preconditionControls(MethodCall ma, BasicBlock controlled, boolean branch) { - exists(BasicBlock check, BasicBlock succ | - preconditionBranchEdge(ma, check, succ, branch) and - dominatingEdge(check, succ) and - succ.dominates(controlled) - ) } /** - * INTERNAL: Use `Guards.controls` instead. + * INTERNAL: Use `Guard.controls` instead. * * Holds if `guard.controls(controlled, branch)`, except this only relies on * BaseSSA-based reasoning. */ -predicate guardControls_v1(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v1(g, controlled, b) and - implies_v1(g, b, guard, branch) - ) -} - -/** - * INTERNAL: Use `Guards.controls` instead. - * - * Holds if `guard.controls(controlled, branch)`, except this doesn't rely on - * RangeAnalysis. - */ -predicate guardControls_v2(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v2(g, controlled, b) and - implies_v2(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControls_v3(Guard guard, BasicBlock controlled, boolean branch) { - guard.directlyControls(controlled, branch) - or - exists(Guard g, boolean b | - guardControls_v3(g, controlled, b) and - implies_v3(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControlsBranchEdge_v2( - Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - guard.hasBranchEdge(bb1, bb2, branch) - or - exists(Guard g, boolean b | - guardControlsBranchEdge_v2(g, bb1, bb2, b) and - implies_v2(g, b, guard, branch) - ) -} - -pragma[nomagic] -private predicate guardControlsBranchEdge_v3( - Guard guard, BasicBlock bb1, BasicBlock bb2, boolean branch -) { - guard.hasBranchEdge(bb1, bb2, branch) - or - exists(Guard g, boolean b | - guardControlsBranchEdge_v3(g, bb1, bb2, b) and - implies_v3(g, b, guard, branch) - ) -} - -/** INTERNAL: Use `Guard` instead. */ -final class Guard_v2 extends Guard { - /** - * Holds if this guard evaluating to `branch` controls the control-flow - * branch edge from `bb1` to `bb2`. That is, following the edge from - * `bb1` to `bb2` implies that this guard evaluated to `branch`. - */ - predicate controlsBranchEdge(BasicBlock bb1, BasicBlock bb2, boolean branch) { - guardControlsBranchEdge_v2(this, bb1, bb2, branch) - } - - /** - * Holds if this guard evaluating to `branch` directly or indirectly controls - * the block `controlled`. That is, the evaluation of `controlled` is - * dominated by this guard evaluating to `branch`. - */ - predicate controls(BasicBlock controlled, boolean branch) { - guardControls_v2(this, controlled, branch) - } -} - -private predicate equalityGuard(Guard g, Expr e1, Expr e2, boolean polarity) { - exists(EqualityTest eqtest | - eqtest = g and - polarity = eqtest.polarity() and - eqtest.hasOperands(e1, e2) - ) - or - exists(MethodCall ma | - ma = g and - ma.getMethod() instanceof EqualsMethod and - polarity = true and - ma.getAnArgument() = e1 and - ma.getQualifier() = e2 - ) - or - exists(MethodCall ma, Method equals | - ma = g and - ma.getMethod() = equals and - polarity = true and - equals.hasName("equals") and - equals.getNumberOfParameters() = 2 and - equals.getDeclaringType().hasQualifiedName("java.util", "Objects") and - ma.getArgument(0) = e1 and - ma.getArgument(1) = e2 - ) - or - exists(ConstCase cc | - cc = g and - polarity = true and - cc.getSelectorExpr() = e1 and - cc.getValue() = e2 and - strictcount(cc.getValue(_)) = 1 - ) +predicate guardControls_v1(Guards_v1::Guard guard, BasicBlock controlled, boolean branch) { + guard.controls(controlled, branch) } diff --git a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll b/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll deleted file mode 100644 index 4cb3bc74f97..00000000000 --- a/java/ql/lib/semmle/code/java/controlflow/internal/GuardsLogic.qll +++ /dev/null @@ -1,396 +0,0 @@ -/** - * Provides predicates for working with the internal logic of the `Guards` - * library. - */ - -import java -import semmle.code.java.controlflow.Guards -private import Preconditions -private import semmle.code.java.dataflow.SSA -private import semmle.code.java.dataflow.internal.BaseSSA -private import semmle.code.java.dataflow.NullGuards -private import semmle.code.java.dataflow.IntegerGuards - -/** - * Holds if the assumption that `g1` has been evaluated to `b1` implies that - * `g2` has been evaluated to `b2`, that is, the evaluation of `g2` to `b2` - * dominates the evaluation of `g1` to `b1`. - * - * Restricted to BaseSSA-based reasoning. - */ -predicate implies_v1(Guard g1, boolean b1, Guard g2, boolean b2) { - g1.(AndBitwiseExpr).getAnOperand() = g2 and b1 = true and b2 = true - or - g1.(OrBitwiseExpr).getAnOperand() = g2 and b1 = false and b2 = false - or - g1.(AssignAndExpr).getSource() = g2 and b1 = true and b2 = true - or - g1.(AssignOrExpr).getSource() = g2 and b1 = false and b2 = false - or - g1.(AndLogicalExpr).getAnOperand() = g2 and b1 = true and b2 = true - or - g1.(OrLogicalExpr).getAnOperand() = g2 and b1 = false and b2 = false - or - g1.(LogNotExpr).getExpr() = g2 and - b1 = b2.booleanNot() and - b1 = [true, false] - or - exists(EqualityTest eqtest, boolean polarity, BooleanLiteral boollit | - eqtest = g1 and - eqtest.hasOperands(g2, boollit) and - eqtest.polarity() = polarity and - b1 = [true, false] and - b2 = b1.booleanXor(polarity).booleanXor(boollit.getBooleanValue()) - ) - or - exists(ConditionalExpr cond, boolean branch, BooleanLiteral boollit, boolean boolval | - cond.getBranchExpr(branch) = boollit and - cond = g1 and - boolval = boollit.getBooleanValue() and - b1 = boolval.booleanNot() and - ( - g2 = cond.getCondition() and b2 = branch.booleanNot() - or - g2 = cond.getABranchExpr() and b2 = b1 - ) - ) - or - g1.(DefaultCase).getSwitch().getAConstCase() = g2 and b1 = true and b2 = false - or - g1.(DefaultCase).getSwitchExpr().getAConstCase() = g2 and b1 = true and b2 = false - or - exists(MethodCall check, int argIndex | check = g1 | - conditionCheckArgument(check, argIndex, _) and - g2 = check.getArgument(argIndex) and - b1 = [true, false] and - b2 = b1 - ) - or - exists(BaseSsaUpdate vbool | - vbool.getDefiningExpr().(VariableAssign).getSource() = g2 or - vbool.getDefiningExpr().(AssignOp) = g2 - | - vbool.getAUse() = g1 and - b1 = [true, false] and - b2 = b1 - ) - or - g1.(AssignExpr).getSource() = g2 and b2 = b1 and b1 = [true, false] -} - -/** - * Holds if the assumption that `g1` has been evaluated to `b1` implies that - * `g2` has been evaluated to `b2`, that is, the evaluation of `g2` to `b2` - * dominates the evaluation of `g1` to `b1`. - * - * Allows full use of SSA but is restricted to pre-RangeAnalysis reasoning. - */ -predicate implies_v2(Guard g1, boolean b1, Guard g2, boolean b2) { - implies_v1(g1, b1, g2, b2) - or - exists(SsaExplicitUpdate vbool | - vbool.getDefiningExpr().(VariableAssign).getSource() = g2 or - vbool.getDefiningExpr().(AssignOp) = g2 - | - vbool.getAUse() = g1 and - b1 = [true, false] and - b2 = b1 - ) - or - exists(SsaVariable v, AbstractValue k | - // If `v = g2 ? k : ...` or `v = g2 ? ... : k` then a guard - // proving `v != k` ensures that `g2` evaluates to `b2`. - conditionalAssignVal(v, g2, b2.booleanNot(), k) and - guardImpliesNotEqual1(g1, b1, v, k) - ) - or - exists(SsaVariable v, Expr e, AbstractValue k | - // If `v = g2 ? k : ...` and all other assignments to `v` are different from - // `k` then a guard proving `v == k` ensures that `g2` evaluates to `b2`. - uniqueValue(v, e, k) and - guardImpliesEqual(g1, b1, v, k) and - g2.directlyControls(e.getBasicBlock(), b2) and - not g2.directlyControls(g1.getBasicBlock(), b2) - ) -} - -/** - * Holds if the assumption that `g1` has been evaluated to `b1` implies that - * `g2` has been evaluated to `b2`, that is, the evaluation of `g2` to `b2` - * dominates the evaluation of `g1` to `b1`. - */ -cached -predicate implies_v3(Guard g1, boolean b1, Guard g2, boolean b2) { - implies_v2(g1, b1, g2, b2) - or - exists(SsaVariable v, AbstractValue k | - // If `v = g2 ? k : ...` or `v = g2 ? ... : k` then a guard - // proving `v != k` ensures that `g2` evaluates to `b2`. - conditionalAssignVal(v, g2, b2.booleanNot(), k) and - guardImpliesNotEqual2(g1, b1, v, k) - ) - or - exists(SsaVariable v | - conditionalAssign(v, g2, b2.booleanNot(), clearlyNotNullExpr()) and - guardImpliesEqual(g1, b1, v, TAbsValNull()) - ) -} - -private newtype TAbstractValue = - TAbsValNull() or - TAbsValInt(int i) { exists(CompileTimeConstantExpr c | c.getIntValue() = i) } or - TAbsValChar(string c) { exists(CharacterLiteral lit | lit.getValue() = c) } or - TAbsValString(string s) { exists(StringLiteral lit | lit.getValue() = s) } or - TAbsValEnum(EnumConstant c) - -/** The value of a constant expression. */ -abstract private class AbstractValue extends TAbstractValue { - abstract string toString(); - - /** Gets an expression whose value is this abstract value. */ - abstract Expr getExpr(); -} - -private class AbsValNull extends AbstractValue, TAbsValNull { - override string toString() { result = "null" } - - override Expr getExpr() { result = alwaysNullExpr() } -} - -private class AbsValInt extends AbstractValue, TAbsValInt { - int i; - - AbsValInt() { this = TAbsValInt(i) } - - override string toString() { result = i.toString() } - - override Expr getExpr() { result.(CompileTimeConstantExpr).getIntValue() = i } -} - -private class AbsValChar extends AbstractValue, TAbsValChar { - string c; - - AbsValChar() { this = TAbsValChar(c) } - - override string toString() { result = c } - - override Expr getExpr() { result.(CharacterLiteral).getValue() = c } -} - -private class AbsValString extends AbstractValue, TAbsValString { - string s; - - AbsValString() { this = TAbsValString(s) } - - override string toString() { result = s } - - override Expr getExpr() { result.(CompileTimeConstantExpr).getStringValue() = s } -} - -private class AbsValEnum extends AbstractValue, TAbsValEnum { - EnumConstant c; - - AbsValEnum() { this = TAbsValEnum(c) } - - override string toString() { result = c.toString() } - - override Expr getExpr() { result = c.getAnAccess() } -} - -/** - * Holds if `v` can have a value that is not representable as an `AbstractValue`. - */ -private predicate hasPossibleUnknownValue(SsaVariable v) { - exists(SsaVariable def | v.getAnUltimateDefinition() = def | - def instanceof SsaImplicitUpdate - or - def instanceof SsaImplicitInit - or - exists(VariableUpdate upd | upd = def.(SsaExplicitUpdate).getDefiningExpr() | - not exists(upd.(VariableAssign).getSource()) - ) - or - exists(VariableAssign a, Expr e | - a = def.(SsaExplicitUpdate).getDefiningExpr() and - e = possibleValue(a.getSource()) and - not exists(AbstractValue val | val.getExpr() = e) - ) - ) -} - -/** - * Gets a sub-expression of `e` whose value can flow to `e` through - * `ConditionalExpr`s. - */ -private Expr possibleValue(Expr e) { - result = possibleValue(e.(ConditionalExpr).getABranchExpr()) - or - result = e and not e instanceof ConditionalExpr -} - -/** - * Gets an ultimate definition of `v` that is not itself a phi node. The - * boolean `fromBackEdge` indicates whether the flow from `result` to `v` goes - * through a back edge. - */ -SsaVariable getADefinition(SsaVariable v, boolean fromBackEdge) { - result = v and not v instanceof SsaPhiNode and fromBackEdge = false - or - exists(SsaVariable inp, BasicBlock bb, boolean fbe | - v.(SsaPhiNode).hasInputFromBlock(inp, bb) and - result = getADefinition(inp, fbe) and - (if v.getBasicBlock().dominates(bb) then fromBackEdge = true else fromBackEdge = fbe) - ) -} - -/** - * Holds if `e` equals `k` and may be assigned to `v`. The boolean - * `fromBackEdge` indicates whether the flow from `e` to `v` goes through a - * back edge. - */ -private predicate possibleValue(SsaVariable v, boolean fromBackEdge, Expr e, AbstractValue k) { - not hasPossibleUnknownValue(v) and - exists(SsaExplicitUpdate def | - def = getADefinition(v, fromBackEdge) and - e = possibleValue(def.getDefiningExpr().(VariableAssign).getSource()) and - k.getExpr() = e - ) -} - -/** - * Holds if `e` equals `k` and may be assigned to `v` without going through - * back edges, and all other possible ultimate definitions of `v` are different - * from `k`. The trivial case where `v` is an `SsaExplicitUpdate` with `e` as - * the only possible value is excluded. - */ -private predicate uniqueValue(SsaVariable v, Expr e, AbstractValue k) { - possibleValue(v, false, e, k) and - forex(Expr other, AbstractValue otherval | possibleValue(v, _, other, otherval) and other != e | - otherval != k - ) -} - -/** - * Holds if `v1` and `v2` have the same value in `bb`. - */ -private predicate equalVarsInBlock(BasicBlock bb, SsaVariable v1, SsaVariable v2) { - exists(Guard guard, boolean branch | - guard.isEquality(v1.getAUse(), v2.getAUse(), branch) and - guardControls_v1(guard, bb, branch) - ) -} - -/** - * Holds if `guard` evaluating to `branch` implies that `v` equals `k`. - */ -private predicate guardImpliesEqual(Guard guard, boolean branch, SsaVariable v, AbstractValue k) { - exists(SsaVariable v0 | - guard.isEquality(v0.getAUse(), k.getExpr(), branch) and - (v = v0 or equalVarsInBlock(guard.getBasicBlock(), v0, v)) - ) -} - -private BasicBlock getAGuardBranchSuccessor(Guard g, boolean branch) { - result.getFirstNode() = g.(Expr).getControlFlowNode().(ConditionNode).getABranchSuccessor(branch) - or - result.getFirstNode() = g.(SwitchCase).getControlFlowNode() and branch = true -} - -/** - * Holds if `guard` dominates `phi` and `guard` evaluating to `branch` controls the definition - * `upd = e` where `upd` is a possible input to `phi`. - */ -private predicate guardControlsPhiBranch( - SsaExplicitUpdate upd, SsaPhiNode phi, Guard guard, boolean branch, Expr e -) { - guard.directlyControls(upd.getBasicBlock(), branch) and - upd.getDefiningExpr().(VariableAssign).getSource() = e and - upd = phi.getAPhiInput() and - guard.getBasicBlock().strictlyDominates(phi.getBasicBlock()) -} - -/** - * Holds if `v` is conditionally assigned `e` under the condition that `guard` evaluates to `branch`. - * - * The evaluation of `guard` dominates the definition of `v` and `guard` evaluating to `branch` - * implies that `e` is assigned to `v`. In particular, this allows us to conclude that if `v` has - * a value different from `e` then `guard` must have evaluated to `branch.booleanNot()`. - */ -private predicate conditionalAssign(SsaVariable v, Guard guard, boolean branch, Expr e) { - exists(ConditionalExpr c | - v.(SsaExplicitUpdate).getDefiningExpr().(VariableAssign).getSource() = c and - guard = c.getCondition() - | - e = c.getBranchExpr(branch) - ) - or - exists(SsaExplicitUpdate upd, SsaPhiNode phi | - phi = v and - guardControlsPhiBranch(upd, phi, guard, branch, e) and - not guard.directlyControls(phi.getBasicBlock(), branch) and - forall(SsaVariable other | other != upd and other = phi.getAPhiInput() | - guard.directlyControls(other.getBasicBlock(), branch.booleanNot()) - or - other.getBasicBlock().dominates(guard.getBasicBlock()) and - not other.isLiveAtEndOfBlock(getAGuardBranchSuccessor(guard, branch)) - ) - ) -} - -/** - * Holds if `v` is conditionally assigned `val` under the condition that `guard` evaluates to `branch`. - */ -private predicate conditionalAssignVal(SsaVariable v, Guard guard, boolean branch, AbstractValue val) { - conditionalAssign(v, guard, branch, val.getExpr()) -} - -private predicate relevantEq(SsaVariable v, AbstractValue val) { - conditionalAssignVal(v, _, _, val) - or - exists(SsaVariable v0 | - conditionalAssignVal(v0, _, _, val) and - equalVarsInBlock(_, v0, v) - ) -} - -/** - * Holds if the evaluation of `guard` to `branch` implies that `v` does not have the value `val`. - */ -private predicate guardImpliesNotEqual1( - Guard guard, boolean branch, SsaVariable v, AbstractValue val -) { - exists(SsaVariable v0 | - relevantEq(v0, val) and - ( - guard.isEquality(v0.getAUse(), val.getExpr(), branch.booleanNot()) - or - exists(AbstractValue val2 | - guard.isEquality(v0.getAUse(), val2.getExpr(), branch) and - val != val2 - ) - or - guard.(InstanceOfExpr).getExpr() = sameValue(v0, _) and branch = true and val = TAbsValNull() - ) and - (v = v0 or equalVarsInBlock(guard.getBasicBlock(), v0, v)) - ) -} - -/** - * Holds if the evaluation of `guard` to `branch` implies that `v` does not have the value `val`. - */ -private predicate guardImpliesNotEqual2( - Guard guard, boolean branch, SsaVariable v, AbstractValue val -) { - exists(SsaVariable v0 | - relevantEq(v0, val) and - ( - guard = directNullGuard(v0, branch, false) and val = TAbsValNull() - or - exists(int k | - guard = integerGuard(v0.getAUse(), branch, k, false) and - val = TAbsValInt(k) - ) - ) and - (v = v0 or equalVarsInBlock(guard.getBasicBlock(), v0, v)) - ) -} diff --git a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll index 5fde238a4b6..d28a2e0e30c 100644 --- a/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll +++ b/java/ql/lib/semmle/code/java/dataflow/NullGuards.qll @@ -4,7 +4,7 @@ import java import SSA -private import semmle.code.java.controlflow.internal.GuardsLogic +private import semmle.code.java.controlflow.Guards private import semmle.code.java.frameworks.apache.Collections private import IntegerGuards @@ -40,6 +40,7 @@ EqualityTest varEqualityTestExpr(SsaVariable v1, SsaVariable v2, boolean isEqual isEqualExpr = result.polarity() } +/** Gets an expression that is provably not `null`. */ Expr baseNotNullExpr() { result instanceof ClassInstanceExpr or @@ -183,50 +184,19 @@ predicate nullCheckMethod(Method m, boolean branch, boolean isnull) { * is true, and non-null if `isnull` is false. */ Expr basicNullGuard(Expr e, boolean branch, boolean isnull) { - exists(EqualityTest eqtest, boolean polarity | - eqtest = result and - eqtest.hasOperands(e, any(NullLiteral n)) and - polarity = eqtest.polarity() and - ( - branch = true and isnull = polarity - or - branch = false and isnull = polarity.booleanNot() - ) - ) - or - result.(InstanceOfExpr).getExpr() = e and branch = true and isnull = false - or - exists(MethodCall call | - call = result and - call.getAnArgument() = e and - nullCheckMethod(call.getMethod(), branch, isnull) - ) - or - exists(EqualityTest eqtest | - eqtest = result and - eqtest.hasOperands(e, clearlyNotNullExpr()) and - isnull = false and - branch = eqtest.polarity() - ) - or - result = enumConstEquality(e, branch, _) and isnull = false + Guards_v3::nullGuard(result, any(GuardValue v | v.asBooleanValue() = branch), e, isnull) } /** + * DEPRECATED: Use `basicNullGuard` instead. + * * Gets an expression that directly tests whether a given expression, `e`, is null or not. * * If `result` evaluates to `branch`, then `e` is guaranteed to be null if `isnull` * is true, and non-null if `isnull` is false. */ -Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { +deprecated Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { result = basicNullGuard(e, branch, isnull) - or - exists(MethodCall call, Method m, int ix | - call = result and - call.getArgument(ix) = e and - call.getMethod().getSourceDeclaration() = m and - m = customNullGuard(ix, branch, isnull) - ) } /** @@ -236,72 +206,42 @@ Expr basicOrCustomNullGuard(Expr e, boolean branch, boolean isnull) { * is true, and non-null if `isnull` is false. */ Expr directNullGuard(SsaVariable v, boolean branch, boolean isnull) { - result = basicOrCustomNullGuard(sameValue(v, _), branch, isnull) + result = basicNullGuard(sameValue(v, _), branch, isnull) } /** + * DEPRECATED: Use `nullGuardControls`/`nullGuardControlsBranchEdge` instead. + * * Gets a `Guard` that tests (possibly indirectly) whether a given SSA variable is null or not. * * If `result` evaluates to `branch`, then `v` is guaranteed to be null if `isnull` * is true, and non-null if `isnull` is false. */ -Guard nullGuard(SsaVariable v, boolean branch, boolean isnull) { - result = directNullGuard(v, branch, isnull) or - exists(boolean branch0 | implies_v3(result, branch, nullGuard(v, branch0, isnull), branch0)) +deprecated Guard nullGuard(SsaVariable v, boolean branch, boolean isnull) { + result = directNullGuard(v, branch, isnull) } /** - * A return statement in a non-overridable method that on a return value of - * `retval` allows the conclusion that the parameter `p` either is null or - * non-null as specified by `isnull`. + * Holds if there exists a null check on `v`, such that taking the branch edge + * from `bb1` to `bb2` implies that `v` is guaranteed to be null if `isnull` is + * true, and non-null if `isnull` is false. */ -private predicate validReturnInCustomNullGuard( - ReturnStmt ret, Parameter p, boolean retval, boolean isnull -) { - exists(Method m | - ret.getEnclosingCallable() = m and - p.getCallable() = m and - m.getReturnType().(PrimitiveType).hasName("boolean") and - not p.isVarargs() and - p.getType() instanceof RefType and - not m.isOverridable() - ) and - exists(SsaImplicitInit ssa | ssa.isParameterDefinition(p) | - nullGuardedReturn(ret, ssa, isnull) and - (retval = true or retval = false) - or - exists(Expr res | res = ret.getResult() | res = nullGuard(ssa, retval, isnull)) +predicate nullGuardControlsBranchEdge(SsaVariable v, boolean isnull, BasicBlock bb1, BasicBlock bb2) { + exists(GuardValue gv | + Guards_v3::ssaControlsBranchEdge(v, bb1, bb2, gv) and + gv.isNullness(isnull) ) } -private predicate nullGuardedReturn(ReturnStmt ret, SsaImplicitInit ssa, boolean isnull) { - exists(boolean branch | - nullGuard(ssa, branch, isnull).directlyControls(ret.getBasicBlock(), branch) - ) -} - -pragma[nomagic] -private Method returnStmtGetEnclosingCallable(ReturnStmt ret) { - ret.getEnclosingCallable() = result -} - /** - * Gets a non-overridable method with a boolean return value that performs a null-check - * on the `index`th parameter. A return value equal to `retval` allows us to conclude - * that the argument either is null or non-null as specified by `isnull`. + * Holds if there exists a null check on `v` that controls `bb`, such that in + * `bb` `v` is guaranteed to be null if `isnull` is true, and non-null if + * `isnull` is false. */ -private Method customNullGuard(int index, boolean retval, boolean isnull) { - exists(Parameter p | - p.getCallable() = result and - p.getPosition() = index and - forex(ReturnStmt ret | - returnStmtGetEnclosingCallable(ret) = result and - exists(Expr res | res = ret.getResult() | - not res.(BooleanLiteral).getBooleanValue() = retval.booleanNot() - ) - | - validReturnInCustomNullGuard(ret, p, retval, isnull) - ) +predicate nullGuardControls(SsaVariable v, boolean isnull, BasicBlock bb) { + exists(GuardValue gv | + Guards_v3::ssaControls(v, bb, gv) and + gv.isNullness(isnull) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll index 36ad96c497f..a4b007e1b13 100644 --- a/java/ql/lib/semmle/code/java/dataflow/Nullness.qll +++ b/java/ql/lib/semmle/code/java/dataflow/Nullness.qll @@ -141,9 +141,9 @@ private ControlFlowNode varDereference(SsaVariable v, VarAccess va) { private ControlFlowNode ensureNotNull(SsaVariable v) { result = varDereference(v, _) or - exists(AssertTrueMethod m | result.asCall() = m.getACheck(nullGuard(v, true, false))) + exists(AssertTrueMethod m | result.asCall() = m.getACheck(directNullGuard(v, true, false))) or - exists(AssertFalseMethod m | result.asCall() = m.getACheck(nullGuard(v, false, false))) + exists(AssertFalseMethod m | result.asCall() = m.getACheck(directNullGuard(v, false, false))) or exists(AssertNotNullMethod m | result.asCall() = m.getACheck(v.getAUse())) or @@ -339,7 +339,7 @@ private predicate nullVarStep( not assertFail(mid, _) and bb = mid.getASuccessor() and not impossibleEdge(mid, bb) and - not exists(boolean branch | nullGuard(midssa, branch, false).hasBranchEdge(mid, bb, branch)) and + not nullGuardControlsBranchEdge(midssa, false, mid, bb) and not (leavingFinally(mid, bb, true) and midstoredcompletion = true) and if bb.getFirstNode().asStmt() = any(TryStmt try | | try.getFinally()) then @@ -476,6 +476,11 @@ private ConditionBlock ssaEnumConstEquality(SsaVariable v, boolean polarity, Enu result.getCondition() = enumConstEquality(v.getAUse(), polarity, c) } +private predicate conditionChecksNull(ConditionBlock cond, SsaVariable v, boolean branchIsNull) { + nullGuardControlsBranchEdge(v, true, cond, cond.getTestSuccessor(branchIsNull)) and + nullGuardControlsBranchEdge(v, false, cond, cond.getTestSuccessor(branchIsNull.booleanNot())) +} + /** A pair of correlated conditions for a given NPE candidate. */ private predicate correlatedConditions( SsaSourceVariable npecand, ConditionBlock cond1, ConditionBlock cond2, boolean inverted @@ -491,10 +496,8 @@ private predicate correlatedConditions( ) or exists(SsaVariable v, boolean branch1, boolean branch2 | - cond1.getCondition() = nullGuard(v, branch1, true) and - cond1.getCondition() = nullGuard(v, branch1.booleanNot(), false) and - cond2.getCondition() = nullGuard(v, branch2, true) and - cond2.getCondition() = nullGuard(v, branch2.booleanNot(), false) and + conditionChecksNull(cond1, v, branch1) and + conditionChecksNull(cond2, v, branch2) and inverted = branch1.booleanXor(branch2) ) or @@ -620,7 +623,7 @@ private Expr trackingVarGuard( SsaVariable trackssa, SsaSourceVariable trackvar, TrackVarKind kind, boolean branch, boolean isA ) { exists(Expr init | trackingVar(_, trackssa, trackvar, kind, init) | - result = basicOrCustomNullGuard(trackvar.getAnAccess(), branch, isA) and + result = basicNullGuard(trackvar.getAnAccess(), branch, isA) and kind = TrackVarKindNull() or result = trackvar.getAnAccess() and @@ -831,15 +834,13 @@ predicate alwaysNullDeref(SsaSourceVariable v, VarAccess va) { def.(SsaExplicitUpdate).getDefiningExpr().(VariableAssign).getSource() = alwaysNullExpr() ) or - exists(boolean branch | - nullGuard(ssa, branch, true).directlyControls(bb, branch) and - not clearlyNotNull(ssa) - ) + nullGuardControls(ssa, true, bb) and + not clearlyNotNull(ssa) | // Exclude fields as they might not have an accurate ssa representation. not v.getVariable() instanceof Field and firstVarDereferenceInBlock(bb, ssa, va) and ssa.getSourceVariable() = v and - not exists(boolean branch | nullGuard(ssa, branch, false).directlyControls(bb, branch)) + not nullGuardControls(ssa, false, bb) ) } diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll index 64f68b9c075..4bbac387c89 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeAnalysis.qll @@ -66,7 +66,6 @@ import java private import SSA private import RangeUtils -private import semmle.code.java.controlflow.internal.GuardsLogic private import semmle.code.java.security.RandomDataSource private import SignAnalysis private import semmle.code.java.Reflection @@ -79,7 +78,7 @@ module Sem implements Semantic { private import java as J private import SSA as SSA private import RangeUtils as RU - private import semmle.code.java.controlflow.internal.GuardsLogic as GL + private import semmle.code.java.controlflow.Guards as G class Expr = J::Expr; @@ -219,7 +218,7 @@ module Sem implements Semantic { int getBlockId1(BasicBlock bb) { idOf(bb, result) } - class Guard extends GL::Guard_v2 { + class Guard extends G::Guards_v2::Guard { Expr asExpr() { result = this } } diff --git a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll index 444fec8f865..a9b8abf90b6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll +++ b/java/ql/lib/semmle/code/java/dataflow/RangeUtils.qll @@ -4,7 +4,7 @@ import java private import SSA -private import semmle.code.java.controlflow.internal.GuardsLogic +private import semmle.code.java.controlflow.Guards private import semmle.code.java.Constants private import semmle.code.java.dataflow.RangeAnalysis private import codeql.rangeanalysis.internal.RangeUtils diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll index 7778f6ebc35..0a4e6c8d062 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowNodes.qll @@ -60,8 +60,6 @@ module SsaFlow { cached private module Cached { - private import semmle.code.java.controlflow.internal.GuardsLogic as GuardsLogic - cached newtype TNode = TExprNode(Expr e) { diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll index b639947793b..8aebfc67286 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/ModulusAnalysisSpecific.qll @@ -14,7 +14,7 @@ module Private { class Expr = J::Expr; - class Guard = G::Guard_v2; + class Guard = G::Guards_v2::Guard; class ConstantIntegerExpr = RU::ConstantIntegerExpr; diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll index 04e896b2601..72dd345d69e 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/rangeanalysis/SignAnalysisSpecific.qll @@ -12,7 +12,7 @@ module Private { class ConstantIntegerExpr = RU::ConstantIntegerExpr; - class Guard = G::Guard_v2; + class Guard = G::Guards_v2::Guard; class SsaVariable = Ssa::SsaVariable; diff --git a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll index 785dce3da7e..2628ae7ba4d 100644 --- a/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll +++ b/java/ql/lib/semmle/code/java/security/ArithmeticCommon.qll @@ -7,7 +7,6 @@ private import semmle.code.java.dataflow.DataFlow private import semmle.code.java.dataflow.RangeAnalysis private import semmle.code.java.dataflow.RangeUtils private import semmle.code.java.dataflow.SignAnalysis -private import semmle.code.java.controlflow.internal.GuardsLogic /** * Holds if the type of `exp` is narrower than or equal to `numType`, diff --git a/java/ql/src/Language Abuse/UselessNullCheck.ql b/java/ql/src/Language Abuse/UselessNullCheck.ql index d95b528c4c4..92041ca9e4a 100644 --- a/java/ql/src/Language Abuse/UselessNullCheck.ql +++ b/java/ql/src/Language Abuse/UselessNullCheck.ql @@ -21,7 +21,7 @@ where guardSuggestsExprMaybeNull(guard, e) and e = clearlyNotNullExpr(reason) and ( - if reason instanceof Guard + if reason = directNullGuard(_, _, _) then msg = "This check is useless. $@ cannot be null at this check, since it is guarded by $@." else if reason != e diff --git a/java/ql/test/library-tests/guards/Guards.java b/java/ql/test/library-tests/guards/Guards.java index 877c1827166..b75e549d166 100644 --- a/java/ql/test/library-tests/guards/Guards.java +++ b/java/ql/test/library-tests/guards/Guards.java @@ -26,7 +26,7 @@ public class Guards { } int sz = a != null ? a.length : 0; for (int i = 0; i < sz; i++) { - chk(); // $ guarded='a != null:true' guarded='i < sz:true' + chk(); // $ guarded='a != null:true' guarded='i < sz:true' guarded='sz:not 0' guarded='...?...:...:not 0' guarded='a.length:not 0' guarded='a:not null' int e = a[i]; if (e > 2) break; } @@ -36,26 +36,26 @@ public class Guards { s = "bar"; switch (s) { case "bar": - chk(); // $ guarded='s:match "bar"' + chk(); // $ guarded='s:match "bar"' guarded='s:bar' break; case "foo": - chk(); // $ guarded='s:match "foo"' guarded=g(3):false + chk(); // $ guarded='s:match "foo"' guarded='s:foo' guarded=g(3):false break; default: - chk(); // $ guarded='s:non-match "bar"' guarded='s:non-match "foo"' guarded='s:match default' guarded=g(3):false + chk(); // $ guarded='s:non-match "bar"' guarded='s:non-match "foo"' guarded='s:not bar' guarded='s:not foo' guarded='s:match default' guarded=g(3):false break; } Object o = g(4) ? null : s; if (o instanceof String) { - chk(); // $ guarded=...instanceof...:true guarded=g(4):false + chk(); // $ guarded=...instanceof...:true guarded='o:not null' guarded='...?...:...:not null' guarded=g(4):false guarded='s:not null' } } void t2() { checkTrue(g(1), "A"); checkFalse(g(2), "B"); - chk(); // $ guarded=checkTrue(A):true guarded=g(1):true guarded=checkFalse(B):false guarded=g(2):false + chk(); // $ guarded='checkTrue(...):no exception' guarded=g(1):true guarded='checkFalse(...):no exception' guarded=g(2):false } void t3() { @@ -86,23 +86,23 @@ public class Guards { if (g("Alt2")) x = Val.E2; if (g(3)) x = Val.E3; // unique value if (x == null) - chk(); // $ guarded='x == null:true' guarded=g(3):false + chk(); // $ guarded='x == null:true' guarded='x:null' guarded=g(1):false guarded=g(2):false guarded=g(Alt2):false guarded=g(3):false switch (x) { case E1: - chk(); // $ guarded='x:match E1' guarded=g(1):true guarded=g(3):false + chk(); // $ guarded='x:match E1' guarded='x:E1' guarded=g(1):true guarded=g(2):false guarded=g(Alt2):false guarded=g(3):false break; case E2: - chk(); // $ guarded='x:match E2' guarded=g(3):false + chk(); // $ guarded='x:match E2' guarded='x:E2' guarded=g(3):false break; case E3: - chk(); // $ guarded='x:match E3' guarded=g(3):true + chk(); // $ guarded='x:match E3' guarded='x:E3' guarded=g(3):true break; } Object o = g(4) ? new Object() : null; if (o == null) { - chk(); // $ guarded='o == null:true' guarded=g(4):false + chk(); // $ guarded='o == null:true' guarded='o:null' guarded='...?...:...:null' guarded=g(4):false } else { - chk(); // $ guarded='o == null:false' guarded=g(4):true + chk(); // $ guarded='o == null:false' guarded='o:not null' guarded='...?...:...:not null' guarded=g(4):true } } @@ -112,7 +112,7 @@ public class Guards { base = "/user"; } if (base.equals("/")) - chk(); // $ guarded=equals(/):true guarded='base == null:false' + chk(); // $ guarded=equals(/):true guarded='base:/' guarded='base:not null' guarded='base == null:false' guarded='foo:/' guarded='foo:not null' } void t6() { @@ -122,9 +122,9 @@ public class Guards { if (g(2)) { } } if (o != null) { - chk(); // $ guarded='o != null:true' + chk(); // $ guarded='o != null:true' guarded='o:not null' guarded=g(1):true } else { - chk(); // $ guarded='o != null:false' guarded=g(1):false + chk(); // $ guarded='o != null:false' guarded='o:null' guarded=g(1):false } } diff --git a/java/ql/test/library-tests/guards/GuardsInline.expected b/java/ql/test/library-tests/guards/GuardsInline.expected index 1aaf791acab..c45d536b7e9 100644 --- a/java/ql/test/library-tests/guards/GuardsInline.expected +++ b/java/ql/test/library-tests/guards/GuardsInline.expected @@ -8,19 +8,30 @@ | Guards.java:25:7:25:11 | chk(...) | b:false | | Guards.java:25:7:25:11 | chk(...) | g(1):true | | Guards.java:25:7:25:11 | chk(...) | g(2):false | +| Guards.java:29:7:29:11 | chk(...) | '...?...:...:not 0' | | Guards.java:29:7:29:11 | chk(...) | 'a != null:true' | +| Guards.java:29:7:29:11 | chk(...) | 'a.length:not 0' | +| Guards.java:29:7:29:11 | chk(...) | 'a:not null' | | Guards.java:29:7:29:11 | chk(...) | 'i < sz:true' | +| Guards.java:29:7:29:11 | chk(...) | 'sz:not 0' | +| Guards.java:39:9:39:13 | chk(...) | 's:bar' | | Guards.java:39:9:39:13 | chk(...) | 's:match "bar"' | +| Guards.java:42:9:42:13 | chk(...) | 's:foo' | | Guards.java:42:9:42:13 | chk(...) | 's:match "foo"' | | Guards.java:42:9:42:13 | chk(...) | g(3):false | | Guards.java:45:9:45:13 | chk(...) | 's:match default' | | Guards.java:45:9:45:13 | chk(...) | 's:non-match "bar"' | | Guards.java:45:9:45:13 | chk(...) | 's:non-match "foo"' | +| Guards.java:45:9:45:13 | chk(...) | 's:not bar' | +| Guards.java:45:9:45:13 | chk(...) | 's:not foo' | | Guards.java:45:9:45:13 | chk(...) | g(3):false | +| Guards.java:51:7:51:11 | chk(...) | '...?...:...:not null' | +| Guards.java:51:7:51:11 | chk(...) | 'o:not null' | +| Guards.java:51:7:51:11 | chk(...) | 's:not null' | | Guards.java:51:7:51:11 | chk(...) | ...instanceof...:true | | Guards.java:51:7:51:11 | chk(...) | g(4):false | -| Guards.java:58:5:58:9 | chk(...) | checkFalse(B):false | -| Guards.java:58:5:58:9 | chk(...) | checkTrue(A):true | +| Guards.java:58:5:58:9 | chk(...) | 'checkFalse(...):no exception' | +| Guards.java:58:5:58:9 | chk(...) | 'checkTrue(...):no exception' | | Guards.java:58:5:58:9 | chk(...) | g(1):true | | Guards.java:58:5:58:9 | chk(...) | g(2):false | | Guards.java:64:7:64:11 | chk(...) | 'g(...) && ... \|\| ...:true' | @@ -37,22 +48,42 @@ | Guards.java:72:7:72:11 | chk(...) | g(4):false | | Guards.java:72:7:72:11 | chk(...) | g(5):true | | Guards.java:89:7:89:11 | chk(...) | 'x == null:true' | +| Guards.java:89:7:89:11 | chk(...) | 'x:null' | +| Guards.java:89:7:89:11 | chk(...) | g(1):false | +| Guards.java:89:7:89:11 | chk(...) | g(2):false | | Guards.java:89:7:89:11 | chk(...) | g(3):false | +| Guards.java:89:7:89:11 | chk(...) | g(Alt2):false | +| Guards.java:92:9:92:13 | chk(...) | 'x:E1' | | Guards.java:92:9:92:13 | chk(...) | 'x:match E1' | | Guards.java:92:9:92:13 | chk(...) | g(1):true | +| Guards.java:92:9:92:13 | chk(...) | g(2):false | | Guards.java:92:9:92:13 | chk(...) | g(3):false | +| Guards.java:92:9:92:13 | chk(...) | g(Alt2):false | +| Guards.java:95:9:95:13 | chk(...) | 'x:E2' | | Guards.java:95:9:95:13 | chk(...) | 'x:match E2' | | Guards.java:95:9:95:13 | chk(...) | g(3):false | +| Guards.java:98:9:98:13 | chk(...) | 'x:E3' | | Guards.java:98:9:98:13 | chk(...) | 'x:match E3' | | Guards.java:98:9:98:13 | chk(...) | g(3):true | +| Guards.java:103:7:103:11 | chk(...) | '...?...:...:null' | | Guards.java:103:7:103:11 | chk(...) | 'o == null:true' | +| Guards.java:103:7:103:11 | chk(...) | 'o:null' | | Guards.java:103:7:103:11 | chk(...) | g(4):false | +| Guards.java:105:7:105:11 | chk(...) | '...?...:...:not null' | | Guards.java:105:7:105:11 | chk(...) | 'o == null:false' | +| Guards.java:105:7:105:11 | chk(...) | 'o:not null' | | Guards.java:105:7:105:11 | chk(...) | g(4):true | | Guards.java:115:7:115:11 | chk(...) | 'base == null:false' | +| Guards.java:115:7:115:11 | chk(...) | 'base:/' | +| Guards.java:115:7:115:11 | chk(...) | 'base:not null' | +| Guards.java:115:7:115:11 | chk(...) | 'foo:/' | +| Guards.java:115:7:115:11 | chk(...) | 'foo:not null' | | Guards.java:115:7:115:11 | chk(...) | equals(/):true | | Guards.java:125:7:125:11 | chk(...) | 'o != null:true' | +| Guards.java:125:7:125:11 | chk(...) | 'o:not null' | +| Guards.java:125:7:125:11 | chk(...) | g(1):true | | Guards.java:127:7:127:11 | chk(...) | 'o != null:false' | +| Guards.java:127:7:127:11 | chk(...) | 'o:null' | | Guards.java:127:7:127:11 | chk(...) | g(1):false | | Guards.java:139:9:139:13 | chk(...) | 'i < a.length:true' | | Guards.java:139:9:139:13 | chk(...) | found:true | diff --git a/java/ql/test/library-tests/guards/GuardsInline.ql b/java/ql/test/library-tests/guards/GuardsInline.ql index 54386f9777a..1b854659d87 100644 --- a/java/ql/test/library-tests/guards/GuardsInline.ql +++ b/java/ql/test/library-tests/guards/GuardsInline.ql @@ -39,4 +39,13 @@ query predicate guarded(MethodCall mc, string guard) { not exists(ppGuard(g, branch)) and guard = g.toString() + ":" + branch ) + or + mc.getMethod().hasName("chk") and + exists(Guard g, BasicBlock bb, GuardValue val | + g.valueControls(bb, val) and + not exists(val.asBooleanValue()) and + mc.getBasicBlock() = bb + | + guard = "'" + g.toString() + ":" + val + "'" + ) } diff --git a/java/ql/test/library-tests/guards12/guard.expected b/java/ql/test/library-tests/guards12/guard.expected index 0980e891d84..fade9fd4e8f 100644 --- a/java/ql/test/library-tests/guards12/guard.expected +++ b/java/ql/test/library-tests/guards12/guard.expected @@ -51,13 +51,5 @@ hasBranchEdge | Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | false | Test.java:13:7:13:16 | default | | Test.java:12:7:12:17 | case ... | Test.java:9:13:9:13 | s | Test.java:12:12:12:14 | "d" | true | true | Test.java:12:7:12:17 | case ... | | Test.java:17:26:17:33 | ... == ... | Test.java:17:26:17:28 | len | Test.java:17:33:17:33 | 4 | true | true | Test.java:17:38:17:40 | { ... } | -| Test.java:18:7:18:17 | case ... | Test.java:16:13:16:13 | s | Test.java:18:12:18:14 | "e" | true | false | Test.java:19:7:19:16 | default | -| Test.java:18:7:18:17 | case ... | Test.java:16:13:16:13 | s | Test.java:18:12:18:14 | "e" | true | true | Test.java:18:7:18:17 | case ... | -| Test.java:22:7:22:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:22:12:22:14 | "f" | true | false | Test.java:25:7:25:16 | default | -| Test.java:22:7:22:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:22:12:22:14 | "f" | true | true | Test.java:22:7:22:17 | case ... | | Test.java:23:27:23:34 | ... == ... | Test.java:23:27:23:29 | len | Test.java:23:34:23:34 | 4 | true | true | Test.java:23:39:23:41 | { ... } | -| Test.java:24:7:24:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:24:12:24:14 | "g" | true | false | Test.java:25:7:25:16 | default | -| Test.java:24:7:24:17 | case ... | Test.java:21:13:21:41 | ...?...:... | Test.java:24:12:24:14 | "g" | true | true | Test.java:24:7:24:17 | case ... | -| Test.java:28:7:28:15 | case ... | Test.java:27:13:27:13 | s | Test.java:28:12:28:14 | "h" | true | false | Test.java:33:7:33:14 | default | | Test.java:28:7:28:15 | case ... | Test.java:27:13:27:13 | s | Test.java:28:12:28:14 | "h" | true | true | Test.java:28:7:28:15 | case ... | -| Test.java:30:7:30:15 | case ... | Test.java:27:13:27:13 | s | Test.java:30:12:30:14 | "i" | true | false | Test.java:33:7:33:14 | default | diff --git a/java/ql/test/library-tests/guards12/guard.ql b/java/ql/test/library-tests/guards12/guard.ql index cff2845ad9f..d53dfdbc713 100644 --- a/java/ql/test/library-tests/guards12/guard.ql +++ b/java/ql/test/library-tests/guards12/guard.ql @@ -1,8 +1,8 @@ import java import semmle.code.java.controlflow.Guards -query predicate hasBranchEdge(Guard g, BasicBlock bb1, BasicBlock bb2, boolean branch) { - g.hasBranchEdge(bb1, bb2, branch) +query predicate hasBranchEdge(Guard g, BasicBlock bb1, BasicBlock bb2, GuardValue branch) { + g.hasValueBranchEdge(bb1, bb2, branch) } from Guard g, BasicBlock bb, boolean branch, Expr e1, Expr e2, boolean pol diff --git a/java/ql/test/query-tests/Nullness/C.java b/java/ql/test/query-tests/Nullness/C.java index ac6a5f291da..317569e64c1 100644 --- a/java/ql/test/query-tests/Nullness/C.java +++ b/java/ql/test/query-tests/Nullness/C.java @@ -60,7 +60,7 @@ public class C { arrLen = arr == null ? 0 : arr.length; } if (arrLen > 0) { - arr[0] = 0; // NPE - false positive + arr[0] = 0; // OK } } diff --git a/java/ql/test/query-tests/Nullness/NullMaybe.expected b/java/ql/test/query-tests/Nullness/NullMaybe.expected index 80cf8f00f8d..a19fae57e74 100644 --- a/java/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/java/ql/test/query-tests/Nullness/NullMaybe.expected @@ -24,7 +24,6 @@ | C.java:10:17:10:18 | a3 | Variable $@ may be null at this access because of $@ assignment. | C.java:8:5:8:21 | long[] a3 | a3 | C.java:8:12:8:20 | a3 | this | | C.java:21:7:21:8 | s1 | Variable $@ may be null at this access because of $@ assignment. | C.java:14:5:14:30 | String s1 | s1 | C.java:17:7:17:24 | ...=... | this | | C.java:51:7:51:11 | slice | Variable $@ may be null at this access because of $@ assignment. | C.java:43:5:43:30 | List slice | slice | C.java:43:18:43:29 | slice | this | -| C.java:63:7:63:9 | arr | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:57:35:57:43 | arr | arr | C.java:60:16:60:26 | ... == ... | this | | C.java:100:7:100:10 | arr2 | Variable $@ may be null at this access because of $@ assignment. | C.java:95:5:95:22 | int[] arr2 | arr2 | C.java:95:11:95:21 | arr2 | this | | C.java:110:25:110:27 | obj | Variable $@ may be null at this access because of $@ assignment. | C.java:106:5:106:30 | Object obj | obj | C.java:118:13:118:22 | ...=... | this | | C.java:137:7:137:10 | obj2 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:131:5:131:23 | Object obj2 | obj2 | C.java:132:9:132:20 | ... != ... | this | From 42b1b12aa10374e5eac2d2629d39f189183030b8 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 27 May 2025 10:43:35 +0200 Subject: [PATCH 328/340] Java: Fix qltests --- .../library-tests/guards/guardslogic.expected | 28 ++++++------- .../test/library-tests/guards/guardslogic.ql | 9 +++-- .../guards/guardspreconditions.expected | 40 +++++++++---------- .../guards/guardspreconditions.ql | 9 +++-- 4 files changed, 44 insertions(+), 42 deletions(-) diff --git a/java/ql/test/library-tests/guards/guardslogic.expected b/java/ql/test/library-tests/guards/guardslogic.expected index 6536ad3b69f..29c11ccd153 100644 --- a/java/ql/test/library-tests/guards/guardslogic.expected +++ b/java/ql/test/library-tests/guards/guardslogic.expected @@ -30,33 +30,33 @@ | Logic.java:29:16:29:19 | g(...) | false | Logic.java:30:30:31:5 | { ... } | | Logic.java:29:16:29:19 | g(...) | true | Logic.java:29:23:29:26 | null | | Logic.java:30:9:30:27 | ...instanceof... | true | Logic.java:30:30:31:5 | { ... } | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:36:5:36:28 | ; | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:37:5:37:15 | if (...) | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:37:17:39:5 | { ... } | -| Logic.java:35:5:35:29 | checkTrue(...) | true | Logic.java:40:5:40:18 | var ...; | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:36:5:36:28 | ; | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:37:5:37:15 | if (...) | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:37:17:39:5 | { ... } | +| Logic.java:35:5:35:29 | checkTrue(...) | no exception | Logic.java:40:5:40:18 | var ...; | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:36:5:36:28 | ; | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:37:5:37:15 | if (...) | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:37:17:39:5 | { ... } | | Logic.java:35:15:35:19 | ... > ... | true | Logic.java:40:5:40:18 | var ...; | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:37:5:37:15 | if (...) | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:37:17:39:5 | { ... } | -| Logic.java:36:5:36:27 | checkFalse(...) | false | Logic.java:40:5:40:18 | var ...; | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:37:5:37:15 | if (...) | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:37:17:39:5 | { ... } | +| Logic.java:36:5:36:27 | checkFalse(...) | no exception | Logic.java:40:5:40:18 | var ...; | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:37:5:37:15 | if (...) | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:37:17:39:5 | { ... } | | Logic.java:36:16:36:21 | g(...) | false | Logic.java:40:5:40:18 | var ...; | | Logic.java:37:9:37:14 | ... > ... | true | Logic.java:37:17:39:5 | { ... } | | Logic.java:44:10:44:10 | b | false | Logic.java:44:33:44:35 | msg | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:53:5:53:28 | ; | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:54:5:54:15 | if (...) | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:54:17:56:5 | { ... } | -| Logic.java:52:5:52:29 | checkTrue(...) | true | Logic.java:57:5:57:18 | var ...; | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:53:5:53:28 | ; | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:5:54:15 | if (...) | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:54:17:56:5 | { ... } | +| Logic.java:52:5:52:29 | checkTrue(...) | no exception | Logic.java:57:5:57:18 | var ...; | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:53:5:53:28 | ; | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:54:5:54:15 | if (...) | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:54:17:56:5 | { ... } | | Logic.java:52:24:52:28 | ... > ... | true | Logic.java:57:5:57:18 | var ...; | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:54:5:54:15 | if (...) | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:54:17:56:5 | { ... } | -| Logic.java:53:5:53:27 | checkFalse(...) | false | Logic.java:57:5:57:18 | var ...; | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:54:5:54:15 | if (...) | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:54:17:56:5 | { ... } | +| Logic.java:53:5:53:27 | checkFalse(...) | no exception | Logic.java:57:5:57:18 | var ...; | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:54:5:54:15 | if (...) | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:54:17:56:5 | { ... } | | Logic.java:53:21:53:26 | g(...) | false | Logic.java:57:5:57:18 | var ...; | diff --git a/java/ql/test/library-tests/guards/guardslogic.ql b/java/ql/test/library-tests/guards/guardslogic.ql index afbb313d664..f2ce9fdaa36 100644 --- a/java/ql/test/library-tests/guards/guardslogic.ql +++ b/java/ql/test/library-tests/guards/guardslogic.ql @@ -1,8 +1,9 @@ import java import semmle.code.java.controlflow.Guards -from Guard g, BasicBlock bb, boolean branch +from Guard g, BasicBlock bb, GuardValue gv where - g.controls(bb, branch) and - g.getEnclosingCallable().getDeclaringType().hasName("Logic") -select g, branch, bb + g.valueControls(bb, gv) and + g.getEnclosingCallable().getDeclaringType().hasName("Logic") and + (exists(gv.asBooleanValue()) or gv.isThrowsException() or gv.getDualValue().isThrowsException()) +select g, gv, bb diff --git a/java/ql/test/library-tests/guards/guardspreconditions.expected b/java/ql/test/library-tests/guards/guardspreconditions.expected index 9c0136c8e6e..41080a5dab6 100644 --- a/java/ql/test/library-tests/guards/guardspreconditions.expected +++ b/java/ql/test/library-tests/guards/guardspreconditions.expected @@ -1,20 +1,20 @@ -| Preconditions.java:8:9:8:31 | assertTrue(...) | true | Preconditions.java:9:9:9:18 | ; | -| Preconditions.java:13:9:13:32 | assertTrue(...) | true | Preconditions.java:14:9:14:18 | ; | -| Preconditions.java:18:9:18:33 | assertFalse(...) | false | Preconditions.java:19:9:19:18 | ; | -| Preconditions.java:23:9:23:32 | assertFalse(...) | false | Preconditions.java:24:9:24:18 | ; | -| Preconditions.java:28:9:28:41 | assertTrue(...) | true | Preconditions.java:29:9:29:18 | ; | -| Preconditions.java:33:9:33:42 | assertTrue(...) | true | Preconditions.java:34:9:34:18 | ; | -| Preconditions.java:38:9:38:43 | assertFalse(...) | false | Preconditions.java:39:9:39:18 | ; | -| Preconditions.java:43:9:43:42 | assertFalse(...) | false | Preconditions.java:44:9:44:18 | ; | -| Preconditions.java:48:9:48:35 | assertTrue(...) | true | Preconditions.java:49:9:49:18 | ; | -| Preconditions.java:53:9:53:36 | assertTrue(...) | true | Preconditions.java:54:9:54:18 | ; | -| Preconditions.java:58:9:58:37 | assertFalse(...) | false | Preconditions.java:59:9:59:18 | ; | -| Preconditions.java:63:9:63:36 | assertFalse(...) | false | Preconditions.java:64:9:64:18 | ; | -| Preconditions.java:68:9:68:45 | assertTrue(...) | true | Preconditions.java:69:9:69:18 | ; | -| Preconditions.java:73:9:73:46 | assertTrue(...) | true | Preconditions.java:74:9:74:18 | ; | -| Preconditions.java:78:9:78:47 | assertFalse(...) | false | Preconditions.java:79:9:79:18 | ; | -| Preconditions.java:83:9:83:46 | assertFalse(...) | false | Preconditions.java:84:9:84:18 | ; | -| Preconditions.java:88:9:88:15 | t(...) | true | Preconditions.java:89:9:89:18 | ; | -| Preconditions.java:93:9:93:16 | t(...) | true | Preconditions.java:94:9:94:18 | ; | -| Preconditions.java:98:9:98:16 | f(...) | false | Preconditions.java:99:9:99:18 | ; | -| Preconditions.java:103:9:103:15 | f(...) | false | Preconditions.java:104:9:104:18 | ; | +| Preconditions.java:8:9:8:31 | assertTrue(...) | no exception | Preconditions.java:9:9:9:18 | ; | +| Preconditions.java:13:9:13:32 | assertTrue(...) | no exception | Preconditions.java:14:9:14:18 | ; | +| Preconditions.java:18:9:18:33 | assertFalse(...) | no exception | Preconditions.java:19:9:19:18 | ; | +| Preconditions.java:23:9:23:32 | assertFalse(...) | no exception | Preconditions.java:24:9:24:18 | ; | +| Preconditions.java:28:9:28:41 | assertTrue(...) | no exception | Preconditions.java:29:9:29:18 | ; | +| Preconditions.java:33:9:33:42 | assertTrue(...) | no exception | Preconditions.java:34:9:34:18 | ; | +| Preconditions.java:38:9:38:43 | assertFalse(...) | no exception | Preconditions.java:39:9:39:18 | ; | +| Preconditions.java:43:9:43:42 | assertFalse(...) | no exception | Preconditions.java:44:9:44:18 | ; | +| Preconditions.java:48:9:48:35 | assertTrue(...) | no exception | Preconditions.java:49:9:49:18 | ; | +| Preconditions.java:53:9:53:36 | assertTrue(...) | no exception | Preconditions.java:54:9:54:18 | ; | +| Preconditions.java:58:9:58:37 | assertFalse(...) | no exception | Preconditions.java:59:9:59:18 | ; | +| Preconditions.java:63:9:63:36 | assertFalse(...) | no exception | Preconditions.java:64:9:64:18 | ; | +| Preconditions.java:68:9:68:45 | assertTrue(...) | no exception | Preconditions.java:69:9:69:18 | ; | +| Preconditions.java:73:9:73:46 | assertTrue(...) | no exception | Preconditions.java:74:9:74:18 | ; | +| Preconditions.java:78:9:78:47 | assertFalse(...) | no exception | Preconditions.java:79:9:79:18 | ; | +| Preconditions.java:83:9:83:46 | assertFalse(...) | no exception | Preconditions.java:84:9:84:18 | ; | +| Preconditions.java:88:9:88:15 | t(...) | no exception | Preconditions.java:89:9:89:18 | ; | +| Preconditions.java:93:9:93:16 | t(...) | no exception | Preconditions.java:94:9:94:18 | ; | +| Preconditions.java:98:9:98:16 | f(...) | no exception | Preconditions.java:99:9:99:18 | ; | +| Preconditions.java:103:9:103:15 | f(...) | no exception | Preconditions.java:104:9:104:18 | ; | diff --git a/java/ql/test/library-tests/guards/guardspreconditions.ql b/java/ql/test/library-tests/guards/guardspreconditions.ql index 12c823e9638..77e4a4e48c0 100644 --- a/java/ql/test/library-tests/guards/guardspreconditions.ql +++ b/java/ql/test/library-tests/guards/guardspreconditions.ql @@ -1,8 +1,9 @@ import java import semmle.code.java.controlflow.Guards -from Guard g, BasicBlock bb, boolean branch +from Guard g, BasicBlock bb, GuardValue gv where - g.controls(bb, branch) and - g.getEnclosingCallable().getDeclaringType().hasName("Preconditions") -select g, branch, bb + g.valueControls(bb, gv) and + g.getEnclosingCallable().getDeclaringType().hasName("Preconditions") and + (gv.isThrowsException() or gv.getDualValue().isThrowsException()) +select g, gv, bb From d4c897f8e2afdb364f5f57a5cf2c95baa0d55ae4 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 27 May 2025 14:40:54 +0200 Subject: [PATCH 329/340] Java: Fix perf issue. --- java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll index d081a6289ec..fb491e91e09 100644 --- a/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll +++ b/java/ql/lib/semmle/code/java/dataflow/FlowSteps.qll @@ -160,7 +160,7 @@ private class NumberTaintPreservingCallable extends TaintPreservingCallable { int argument; NumberTaintPreservingCallable() { - this.getDeclaringType().getAnAncestor().hasQualifiedName("java.lang", "Number") and + this.getDeclaringType().getASourceSupertype*().hasQualifiedName("java.lang", "Number") and ( this instanceof Constructor and argument = 0 From 5a34a1a51b1efb36bdfba48d1bcdf6d4318d7a00 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Mon, 16 Jun 2025 11:19:20 +0200 Subject: [PATCH 330/340] Shared: Try caching. --- shared/controlflow/codeql/controlflow/Guards.qll | 3 +++ 1 file changed, 3 insertions(+) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 9733114613b..275a3ee644b 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -807,12 +807,14 @@ module Make Input> { * Calculates the transitive closure of all the guard implication steps * starting from a given set of base cases. */ + cached module ImpliesTC { /** * Holds if `tgtGuard` evaluating to `tgtVal` implies that `guard` * evaluates to `v`. */ pragma[nomagic] + cached predicate guardControls(Guard guard, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { baseGuardValue(tgtGuard, tgtVal) and guard = tgtGuard and @@ -844,6 +846,7 @@ module Make Input> { * evaluates to `v`. */ pragma[nomagic] + cached predicate ssaControls(SsaDefinition def, GuardValue v, Guard tgtGuard, GuardValue tgtVal) { exists(Guard g0 | guardControls(g0, v, tgtGuard, tgtVal) and From 73810a6d859b0d7ff4873fb4e72ba6e048be58b9 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 17 Jun 2025 10:08:28 +0200 Subject: [PATCH 331/340] Java: Fix perf issue. --- .../ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll index 4200e83d4db..818296ba4b8 100644 --- a/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll +++ b/java/ql/lib/semmle/code/java/frameworks/struts/StrutsActions.qll @@ -130,7 +130,7 @@ class Struts2PrepareMethod extends Method { */ class Struts2ActionSupportClass extends Class { Struts2ActionSupportClass() { - this.getAStrictAncestor().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") + this.getASourceSupertype+().hasQualifiedName("com.opensymphony.xwork2", "ActionSupport") } /** From 4645856f09801909c95a0cd3466586c2ce07906f Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 17 Jun 2025 13:37:04 +0200 Subject: [PATCH 332/340] Java: document FP --- java/ql/test/query-tests/Nullness/C.java | 10 ++++++++++ java/ql/test/query-tests/Nullness/NullMaybe.expected | 3 +++ 2 files changed, 13 insertions(+) diff --git a/java/ql/test/query-tests/Nullness/C.java b/java/ql/test/query-tests/Nullness/C.java index 317569e64c1..eccf6382c15 100644 --- a/java/ql/test/query-tests/Nullness/C.java +++ b/java/ql/test/query-tests/Nullness/C.java @@ -244,4 +244,14 @@ public class C { } xs[0]++; // OK } + + public void ex18(boolean b, int[] xs, Object related) { + assert (!b && xs == null && related == null) || + (b && xs != null && related != null) || + (b && xs == null && related == null); + if (b) { + if (related == null) { return; } + xs[0] = 42; // FP - correlated conditions fails to recognize assert edges + } + } } diff --git a/java/ql/test/query-tests/Nullness/NullMaybe.expected b/java/ql/test/query-tests/Nullness/NullMaybe.expected index a19fae57e74..a65d1f643c1 100644 --- a/java/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/java/ql/test/query-tests/Nullness/NullMaybe.expected @@ -32,6 +32,9 @@ | C.java:207:9:207:11 | obj | Variable $@ may be null at this access because of $@ assignment. | C.java:201:5:201:22 | Object obj | obj | C.java:201:12:201:21 | obj | this | | C.java:219:9:219:10 | o1 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:212:20:212:28 | o1 | o1 | C.java:213:9:213:18 | ... == ... | this | | C.java:233:7:233:8 | xs | Variable $@ may be null at this access because of $@ assignment. | C.java:231:5:231:56 | int[] xs | xs | C.java:231:11:231:55 | xs | this | +| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:249:19:249:28 | ... == ... | this | +| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:250:18:250:27 | ... != ... | this | +| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:251:18:251:27 | ... == ... | this | | F.java:11:5:11:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | F.java:8:18:8:27 | obj | obj | F.java:9:9:9:19 | ... == ... | this | | F.java:17:5:17:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | F.java:14:18:14:27 | obj | obj | F.java:15:9:15:19 | ... == ... | this | | G.java:20:12:20:12 | s | Variable $@ may be null at this access as suggested by $@ null guard. | G.java:3:27:3:34 | s | s | G.java:5:9:5:17 | ... == ... | this | From 5ddddaecdcda0e0e0024ca1841a4dfcdef33878e Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 17 Jun 2025 14:01:23 +0200 Subject: [PATCH 333/340] Java: Add change note. --- java/ql/src/change-notes/2025-06-17-improved-guards.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 java/ql/src/change-notes/2025-06-17-improved-guards.md diff --git a/java/ql/src/change-notes/2025-06-17-improved-guards.md b/java/ql/src/change-notes/2025-06-17-improved-guards.md new file mode 100644 index 00000000000..b49710460f1 --- /dev/null +++ b/java/ql/src/change-notes/2025-06-17-improved-guards.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Java analysis of guards has been switched to use the new and improved shared guards library. This improves precision of a number of queries, in particular `java/dereferenced-value-may-be-null`, which now has fewer false positives, and `java/useless-null-check` and `java/constant-comparison`, which gain additional true positives. From 6f4adb889229d6bdff7468bfd78bdcc92546b73a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Wed, 25 Jun 2025 14:43:04 +0200 Subject: [PATCH 334/340] Shared: address review comments. --- .../controlflow/codeql/controlflow/Guards.qll | 41 +++++++++++++++---- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 275a3ee644b..627e0e1694f 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -11,7 +11,7 @@ * controls the basic block `A`, in this case because the true branch dominates * `A`, but more elaborate controls-relationships may also hold. * For example, in - * ``` + * ```java * int sz = a != null ? a.length : 0; * if (sz != 0) { * // this block is controlled by: @@ -104,6 +104,19 @@ signature module InputSig { predicate strictlyDominates(BasicBlock bb); } + /** + * Holds if `bb1` has `bb2` as a direct successor and the edge between `bb1` + * and `bb2` is a dominating edge. + * + * An edge `(bb1, bb2)` is dominating if there exists a basic block that can + * only be reached from the entry block by going through `(bb1, bb2)`. This + * implies that `(bb1, bb2)` dominates its endpoint `bb2`. I.e., `bb2` can + * only be reached from the entry block by going via `(bb1, bb2)`. + * + * This is a necessary and sufficient condition for an edge to dominate some + * block, and therefore `dominatingEdge(bb1, bb2) and bb2.dominates(bb3)` + * means that the edge `(bb1, bb2)` dominates `bb3`. + */ predicate dominatingEdge(BasicBlock bb1, BasicBlock bb2); class AstNode { @@ -528,6 +541,17 @@ module Make Input> { module Logic { private import LogicInput + /** + * Holds if `guard` evaluating to `v` directly controls `phi` taking the value + * `inp`. This means that `guard` evaluating to `v` must control all the input + * edges to `phi` that read `inp`. + * + * We also require that `guard` dominates `phi` in order to allow logical inferences + * from the value of `phi` to the value of `guard`. + * + * Trivial cases where `guard` controls `phi` itself are excluded, since that makes + * logical inferences from `phi` to `guard` trivial and irrelevant. + */ private predicate guardControlsPhiBranch( Guard guard, GuardValue v, SsaPhiNode phi, SsaDefinition inp ) { @@ -571,6 +595,7 @@ module Make Input> { private predicate guardReadsSsaVar(Guard guard, SsaDefinition def) { def.getARead() = guard or + // A read of `y` can be considered as a read of `x` if guarded by `x == y`. exists(Guard eqtest, SsaDefinition other, boolean branch | guardChecksEqualVars(eqtest, def, other, branch) and other.getARead() = guard and @@ -602,21 +627,21 @@ module Make Input> { * boolean `fromBackEdge` indicates whether the flow from `result` to `v` goes * through a back edge. */ - private SsaDefinition getADefinition(SsaDefinition v, boolean fromBackEdge) { + private SsaDefinition getAnUltimateDefinition(SsaDefinition v, boolean fromBackEdge) { result = v and not v instanceof SsaPhiNode and fromBackEdge = false or exists(SsaDefinition inp, BasicBlock bb, boolean fbe | v.(SsaPhiNode).hasInputFromBlock(inp, bb) and - result = getADefinition(inp, fbe) and + result = getAnUltimateDefinition(inp, fbe) and (if v.getBasicBlock().dominates(bb) then fromBackEdge = true else fromBackEdge = fbe) ) } /** - * Holds if `v` can have a value that is not representable as an `GuardValue`. + * Holds if `v` can have a value that is not representable as a `GuardValue`. */ private predicate hasPossibleUnknownValue(SsaDefinition v) { - exists(SsaDefinition def | def = getADefinition(v, _) | + exists(SsaDefinition def | def = getAnUltimateDefinition(v, _) | not exists(def.(SsaWriteDefinition).getDefinition()) or exists(Expr e | e = possibleValue(def.(SsaWriteDefinition).getDefinition()) | @@ -633,7 +658,7 @@ module Make Input> { private predicate possibleValue(SsaDefinition v, boolean fromBackEdge, Expr e, GuardValue k) { not hasPossibleUnknownValue(v) and exists(SsaWriteDefinition def | - def = getADefinition(v, fromBackEdge) and + def = getAnUltimateDefinition(v, fromBackEdge) and e = possibleValue(def.getDefinition()) and constantHasValue(e, k) ) @@ -676,7 +701,7 @@ module Make Input> { or exists(SsaDefinition def | guardReadsSsaVar(e, def) and - relevantInt(getADefinition(def, _).(SsaWriteDefinition).getDefinition(), k) + relevantInt(getAnUltimateDefinition(def, _).(SsaWriteDefinition).getDefinition(), k) ) } @@ -808,7 +833,7 @@ module Make Input> { * starting from a given set of base cases. */ cached - module ImpliesTC { + private module ImpliesTC { /** * Holds if `tgtGuard` evaluating to `tgtVal` implies that `guard` * evaluates to `v`. From 1d4c8197ec0f082645ec42f3dfc8a9777086958a Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Tue, 17 Jun 2025 14:43:45 +0200 Subject: [PATCH 335/340] Java: Fix assert CFG by properly tagging the false successor. --- .../lib/semmle/code/java/ControlFlowGraph.qll | 39 +++++++++++++++---- java/ql/test/query-tests/Nullness/C.java | 2 +- .../query-tests/Nullness/NullMaybe.expected | 3 -- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 0d9d685cc71..9ef33fe83c2 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -100,7 +100,8 @@ module ControlFlow { private newtype TNode = TExprNode(Expr e) { hasControlFlow(e) } or TStmtNode(Stmt s) or - TExitNode(Callable c) { exists(c.getBody()) } + TExitNode(Callable c) { exists(c.getBody()) } or + TAssertThrowNode(AssertStmt s) /** A node in the expression-level control-flow graph. */ class Node extends TNode { @@ -204,6 +205,25 @@ module ControlFlow { /** Gets the source location for this element. */ override Location getLocation() { result = c.getLocation() } } + + /** A control flow node indicating a failing assertion. */ + class AssertThrowNode extends Node, TAssertThrowNode { + AssertStmt s; + + AssertThrowNode() { this = TAssertThrowNode(s) } + + override Stmt getEnclosingStmt() { result = s } + + override Callable getEnclosingCallable() { result = s.getEnclosingCallable() } + + override ExprParent getAstNode() { result = s } + + /** Gets a textual representation of this element. */ + override string toString() { result = "Assert Throw" } + + /** Gets the source location for this element. */ + override Location getLocation() { result = s.getLocation() } + } } class ControlFlowNode = ControlFlow::Node; @@ -1123,12 +1143,7 @@ private module ControlFlowGraphImpl { or // `assert` statements may throw completion = ThrowCompletion(assertionError()) and - ( - last(assertstmt.getMessage(), last, NormalCompletion()) - or - not exists(assertstmt.getMessage()) and - last(assertstmt.getExpr(), last, BooleanCompletion(false, _)) - ) + last.(AssertThrowNode).getAstNode() = assertstmt ) or // `throw` statements or throwing calls give rise to `Throw` completion @@ -1547,7 +1562,15 @@ private module ControlFlowGraphImpl { or last(assertstmt.getExpr(), n, completion) and completion = BooleanCompletion(false, _) and - result = first(assertstmt.getMessage()) + ( + result = first(assertstmt.getMessage()) + or + not exists(assertstmt.getMessage()) and + result.(AssertThrowNode).getAstNode() = assertstmt + ) + or + last(assertstmt.getMessage(), n, NormalCompletion()) and + result.(AssertThrowNode).getAstNode() = assertstmt ) or // When expressions: diff --git a/java/ql/test/query-tests/Nullness/C.java b/java/ql/test/query-tests/Nullness/C.java index eccf6382c15..d195eea6acb 100644 --- a/java/ql/test/query-tests/Nullness/C.java +++ b/java/ql/test/query-tests/Nullness/C.java @@ -251,7 +251,7 @@ public class C { (b && xs == null && related == null); if (b) { if (related == null) { return; } - xs[0] = 42; // FP - correlated conditions fails to recognize assert edges + xs[0] = 42; // OK } } } diff --git a/java/ql/test/query-tests/Nullness/NullMaybe.expected b/java/ql/test/query-tests/Nullness/NullMaybe.expected index a65d1f643c1..a19fae57e74 100644 --- a/java/ql/test/query-tests/Nullness/NullMaybe.expected +++ b/java/ql/test/query-tests/Nullness/NullMaybe.expected @@ -32,9 +32,6 @@ | C.java:207:9:207:11 | obj | Variable $@ may be null at this access because of $@ assignment. | C.java:201:5:201:22 | Object obj | obj | C.java:201:12:201:21 | obj | this | | C.java:219:9:219:10 | o1 | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:212:20:212:28 | o1 | o1 | C.java:213:9:213:18 | ... == ... | this | | C.java:233:7:233:8 | xs | Variable $@ may be null at this access because of $@ assignment. | C.java:231:5:231:56 | int[] xs | xs | C.java:231:11:231:55 | xs | this | -| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:249:19:249:28 | ... == ... | this | -| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:250:18:250:27 | ... != ... | this | -| C.java:254:7:254:8 | xs | Variable $@ may be null at this access as suggested by $@ null guard. | C.java:248:31:248:38 | xs | xs | C.java:251:18:251:27 | ... == ... | this | | F.java:11:5:11:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | F.java:8:18:8:27 | obj | obj | F.java:9:9:9:19 | ... == ... | this | | F.java:17:5:17:7 | obj | Variable $@ may be null at this access as suggested by $@ null guard. | F.java:14:18:14:27 | obj | obj | F.java:15:9:15:19 | ... == ... | this | | G.java:20:12:20:12 | s | Variable $@ may be null at this access as suggested by $@ null guard. | G.java:3:27:3:34 | s | s | G.java:5:9:5:17 | ... == ... | this | From f07d9dda39282c7d54b75f7190a88475966cdfaa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Jun 2025 10:26:40 +0200 Subject: [PATCH 336/340] Guards: Refactor EqualityTest interface. --- .../semmle/code/java/controlflow/Guards.qll | 36 +++++++++---------- .../controlflow/codeql/controlflow/Guards.qll | 31 ++++++++-------- 2 files changed, 30 insertions(+), 37 deletions(-) diff --git a/java/ql/lib/semmle/code/java/controlflow/Guards.qll b/java/ql/lib/semmle/code/java/controlflow/Guards.qll index be023939b8c..8aa537cc24d 100644 --- a/java/ql/lib/semmle/code/java/controlflow/Guards.qll +++ b/java/ql/lib/semmle/code/java/controlflow/Guards.qll @@ -294,27 +294,23 @@ private module GuardsInput implements SharedGuards::InputSig { equals.getNumberOfParameters() = 2 } - class EqualityTest extends Expr { - EqualityTest() { - this instanceof J::EqualityTest or - this.(MethodCall).getMethod() instanceof EqualsMethod or - objectsEquals(this.(MethodCall).getMethod()) - } - - Expr getAnOperand() { - result = this.(J::EqualityTest).getAnOperand() + pragma[nomagic] + predicate equalityTest(Expr eqtest, Expr left, Expr right, boolean polarity) { + exists(EqualityTest eq | eq = eqtest | + eq.getLeftOperand() = left and + eq.getRightOperand() = right and + eq.polarity() = polarity + ) + or + exists(MethodCall call | call = eqtest and polarity = true | + call.getMethod() instanceof EqualsMethod and + call.getQualifier() = left and + call.getAnArgument() = right or - result = this.(MethodCall).getAnArgument() - or - this.(MethodCall).getMethod() instanceof EqualsMethod and - result = this.(MethodCall).getQualifier() - } - - boolean polarity() { - result = this.(J::EqualityTest).polarity() - or - result = true and not this instanceof J::EqualityTest - } + objectsEquals(call.getMethod()) and + call.getArgument(0) = left and + call.getArgument(1) = right + ) } class ConditionalExpr extends Expr instanceof J::ConditionalExpr { diff --git a/shared/controlflow/codeql/controlflow/Guards.qll b/shared/controlflow/codeql/controlflow/Guards.qll index 627e0e1694f..887eef9021a 100644 --- a/shared/controlflow/codeql/controlflow/Guards.qll +++ b/shared/controlflow/codeql/controlflow/Guards.qll @@ -188,13 +188,12 @@ signature module InputSig { Expr getEqualChildExpr(); } - class EqualityTest extends Expr { - /** Gets an operand of this expression. */ - Expr getAnOperand(); - - /** Gets a boolean indicating whether this test is equality (true) or inequality (false). */ - boolean polarity(); - } + /** + * Holds if `eqtest` is an equality or inequality test between `left` and + * `right`. The `polarity` indicates whether this is an equality test (true) + * or inequality test (false). + */ + predicate equalityTest(Expr eqtest, Expr left, Expr right, boolean polarity); class ConditionalExpr extends Expr { /** Gets the condition of this expression. */ @@ -351,12 +350,10 @@ module Make Input> { c.nonMatchEdge(bb1, bb2) } - pragma[nomagic] - private predicate eqtestHasOperands(EqualityTest eqtest, Expr e1, Expr e2, boolean polarity) { - eqtest.getAnOperand() = e1 and - eqtest.getAnOperand() = e2 and - e1 != e2 and - eqtest.polarity() = polarity + private predicate equalityTestSymmetric(Expr eqtest, Expr e1, Expr e2, boolean eqval) { + equalityTest(eqtest, e1, e2, eqval) + or + equalityTest(eqtest, e2, e1, eqval) } private predicate constcaseEquality(PreGuard g, Expr e1, ConstantExpr e2) { @@ -424,7 +421,7 @@ module Make Input> { * to `eqval`. */ predicate isEquality(Expr e1, Expr e2, boolean eqval) { - eqtestHasOperands(this, e1, e2, eqval) + equalityTestSymmetric(this, e1, e2, eqval) or constcaseEquality(this, e1, e2) and eqval = true or @@ -466,7 +463,7 @@ module Make Input> { ) or exists(NonNullExpr nonnull | - eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and + equalityTestSymmetric(g1, g2, nonnull, v1.asBooleanValue()) and v2.isNonNullValue() ) or @@ -589,7 +586,7 @@ module Make Input> { private predicate guardChecksEqualVars( Guard guard, SsaDefinition v1, SsaDefinition v2, boolean branch ) { - eqtestHasOperands(guard, v1.getARead(), v2.getARead(), branch) + equalityTestSymmetric(guard, v1.getARead(), v2.getARead(), branch) } private predicate guardReadsSsaVar(Guard guard, SsaDefinition def) { @@ -773,7 +770,7 @@ module Make Input> { or exists(Expr nonnull | exprHasValue(nonnull, v2) and - eqtestHasOperands(g1, g2, nonnull, v1.asBooleanValue()) and + equalityTestSymmetric(g1, g2, nonnull, v1.asBooleanValue()) and v2.isNonNullValue() ) } From 326f2b049873ff5cd6062eae168fc2eea24edb97 Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Jun 2025 11:03:39 +0200 Subject: [PATCH 337/340] Java: Accept qltest change showing FP removal. --- java/ql/test/query-tests/RangeAnalysis/A.java | 2 +- .../query-tests/RangeAnalysis/ArrayIndexOutOfBounds.expected | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/java/ql/test/query-tests/RangeAnalysis/A.java b/java/ql/test/query-tests/RangeAnalysis/A.java index 4fd1b87bb70..b68de9beaa7 100644 --- a/java/ql/test/query-tests/RangeAnalysis/A.java +++ b/java/ql/test/query-tests/RangeAnalysis/A.java @@ -64,7 +64,7 @@ public class A { int sum = 0; for (int i = 0; i < a.length; ) { sum += a[i++]; // OK - sum += a[i++]; // OK - FP + sum += a[i++]; // OK } int len = b.length; if ((len & 1) != 0) diff --git a/java/ql/test/query-tests/RangeAnalysis/ArrayIndexOutOfBounds.expected b/java/ql/test/query-tests/RangeAnalysis/ArrayIndexOutOfBounds.expected index dc0b87d68b2..92099db01cb 100644 --- a/java/ql/test/query-tests/RangeAnalysis/ArrayIndexOutOfBounds.expected +++ b/java/ql/test/query-tests/RangeAnalysis/ArrayIndexOutOfBounds.expected @@ -3,7 +3,6 @@ | A.java:45:14:45:22 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | | A.java:49:14:49:22 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | | A.java:58:14:58:19 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | -| A.java:67:14:67:19 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | | A.java:89:12:89:16 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | | A.java:100:18:100:31 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length + 8. | | A.java:113:14:113:21 | ...[...] | This array access might be out of bounds, as the index might be equal to the array length. | From c091fc585bc18b47d980b515c14039813809dcaa Mon Sep 17 00:00:00 2001 From: Anders Schack-Mulligen Date: Thu, 26 Jun 2025 11:03:59 +0200 Subject: [PATCH 338/340] Java: Account for AssertionError possibly not being extracted. --- java/ql/lib/semmle/code/java/ControlFlowGraph.qll | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll index 9ef33fe83c2..5ffb37b585f 100644 --- a/java/ql/lib/semmle/code/java/ControlFlowGraph.qll +++ b/java/ql/lib/semmle/code/java/ControlFlowGraph.qll @@ -347,7 +347,17 @@ private module ControlFlowGraphImpl { ) } - private ThrowableType assertionError() { result.hasQualifiedName("java.lang", "AssertionError") } + private ThrowableType actualAssertionError() { + result.hasQualifiedName("java.lang", "AssertionError") + } + + private ThrowableType assertionError() { + result = actualAssertionError() + or + // In case `AssertionError` is not extracted, we use `Error` as a fallback. + not exists(actualAssertionError()) and + result.hasQualifiedName("java.lang", "Error") + } /** * Gets an exception type that may be thrown during execution of the From 1e0dd2a935514a25dcfa751ecbb60aa90d4657b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tam=C3=A1s=20Vajk?= Date: Thu, 26 Jun 2025 11:34:43 +0200 Subject: [PATCH 339/340] Apply suggestion from @michaelnebel Co-authored-by: Michael Nebel --- .../Concurrency/ScheduledThreadPoolExecutorZeroThread.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md index 428414b8f1a..424407f5cc6 100644 --- a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.md @@ -1,6 +1,6 @@ ## Overview -According the Java documentation on `ScheduledThreadPoolExecutor`, it is not a good idea to set `corePoolSize` to zero, since doing so indicates the executor to keep 0 threads in its pool and the executor will serve no purpose. +According to the Java documentation on `ScheduledThreadPoolExecutor`, it is not a good idea to set `corePoolSize` to zero, since doing so indicates the executor to keep 0 threads in its pool and the executor will serve no purpose. ## Recommendation From 1bd543a8a26ca7f727f9f1662db3b6775101d331 Mon Sep 17 00:00:00 2001 From: Tamas Vajk Date: Thu, 26 Jun 2025 11:36:32 +0200 Subject: [PATCH 340/340] Improve readability of the ID --- .../Concurrency/ScheduledThreadPoolExecutorZeroThread.ql | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql index cb6928a5b80..0b8acb5a088 100644 --- a/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql +++ b/java/ql/src/Likely Bugs/Concurrency/ScheduledThreadPoolExecutorZeroThread.ql @@ -1,11 +1,12 @@ /** - * @id java/javautilconcurrentscheduledthreadpoolexecutor + * @id java/java-util-concurrent-scheduledthreadpoolexecutor * @name Zero threads set for `java.util.concurrent.ScheduledThreadPoolExecutor` * @description Setting `java.util.concurrent.ScheduledThreadPoolExecutor` to have 0 threads serves * no purpose and may indicate programmer error. * @kind problem * @precision very-high * @problem.severity recommendation + * @previous-id java/javautilconcurrentscheduledthreadpoolexecutor * @tags quality * reliability * correctness